Skip to content

kuresh-isotrp/academy-learning-service-template

 
 

Repository files navigation

Learning Demo Service

A service which perform the below operations on each state

  • API Check to get the Balance of Wallet
  • Fetch and store the subgraph data into IPFS, In this service we are using Omen xDai subgraph for fetch data(https://gateway.thegraph.com/api/{api_key}/subgraphs/id/9fUVQpFwzpdWS9bq5WkAnmKbNNcoBwatMR4yZq81pbbz)
  • Retrive the IPFS for data validation
  • Decession making for Single Tx preparation / Multi Tx preparation Based on Balance
  • If Balance is more then the threashhold defined then preparaing Multi Tx for Native and a token
  • Genearate hash for the same and submit for Transcation

System requirements

Run you own agent

Get the code

  1. Clone this repo:

    git clone git@github.com:kuresh-isotrp/academy-learning-service-template.git
    
  2. Create the virtual environment:

    cd academy-learning-service
    poetry shell
    poetry install
    
  3. Sync packages:

    autonomy packages sync --update-packages
    

Prepare the data

  1. Prepare a keys.json file containing wallet address and the private key for each of the four agents.

    autonomy generate-key ethereum -n 4
    
  2. Prepare a ethereum_private_key.txt file containing one of the private keys from keys.json. Ensure that there is no newline at the end.

  3. Deploy a Safe on Gnosis (it's free) and set your agent addresses as signers. Set the signature threshold to 3 out of 4.

  4. Create a Tenderly account and from your dashboard create a fork of Gnosis chain (virtual testnet).

  5. From Tenderly, fund your agents and Safe with a small amount of xDAI, i.e. $0.02 each.

  6. Make a copy of the env file:

    cp sample.env .env
    
  7. Fill in the required environment variables in .env. These variables are: ALL_PARTICIPANTS, GNOSIS_LEDGER_RPC, COINGECKO_API_KEY , SAFE_CONTRACT_ADDRESS. You will need to get a Coingecko. Set GNOSIS_LEDGER_RPC to your Tenderly fork Admin RPC.

Run a single agent

  1. Verify that ALL_PARTICIPANTS in .env contains only 1 address.

  2. Run the agent:

    bash run_agent.sh
    

Run the service (4 agents)

  1. Check that Docker is running:

    docker
    
  2. Verify that ALL_PARTICIPANTS in .env contains 4 addresses.

  3. Run the service:

    bash run_service.sh
    
  4. Look at the service logs for one of the agents (on another terminal):

    docker logs -f learningservice_abci_0
    

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.4%
  • Makefile 2.7%
  • Shell 1.9%