Skip to content

valory-xyz/autonolas-v1

Repository files navigation

Autonolas-v1

Introduction

This repository contains the entirety of contracts in form of cloned submodules, making up the full Autonolas on-chain protocol.

A graphical overview is available here:

architecture

The architecture is broken up into three main areas: Governance, Registries and Tokenomics, with the Solana lockbox being complimentary to them:

  1. Governance and OLAS token;
  2. Agent Services Functionality;
  3. Tokenomics;
  4. Lockbox Solana.

launch

Development

Prerequisites

  • This repository follows the standard Hardhat development process.
  • The code is written on Solidity starting from the version 0.8.15.
  • The standard versions of Node.js along with Yarn are required to proceed further (confirmed to work with Yarn 1.22.19 and npx/npm 10.1.0 and node v18.6.0).
  • Foundry is required to run the foundry tests.

Install the dependencies

The project has submodules to get the dependencies. Make sure you run git clone --recursive or init the submodules yourself. The dependency list is managed by the package.json file, and the setup parameters are stored in the hardhat.config.js file. Simply run the following command to install the project:

yarn install

Core components

The contracts, deploy scripts and tests are located in the following folders respectively:

contracts
deploy
test

This repository covers integration tests that combine functionality of other subprojects. Note that lockbox Solana is not the part of integration tests as it runs exclusively on Solana.

Compile the code and run

Compile the code:

npm run compile

Run tests with Hardhat:

npx hardhat test

Run tests with Foundry:

forge test --hh -vv

Run the code with its deployment on the node:

npx hardhat node

Audits

The audit is provided as development matures. The latest audit report for a specific subproject can be found here:

The initial internal audit of the overall autonolas-v1 pre-split repository is available here:

The initial external review of the autonolas-v1 pre-split repository is available here:

Linters

  • ESLint is used for JS code.
  • solhint is used for Solidity linting.

Github workflows

The PR process is managed by github workflows, where the code undergoes several steps in order to be verified. Those include:

  • code installation
  • running linters
  • running tests

Deployed Protocol

The list of mainnet addresses for different chains and their full contract configuration can be found in the following locations: