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:
The architecture is broken up into three main areas: Governance, Registries and Tokenomics, with the Solana lockbox being complimentary to them:
- 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/npm10.1.0
and nodev18.6.0
). Foundry
is required to run the foundry tests.
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
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:
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
The audit is provided as development matures. The latest audit report for a specific subproject can be found here:
- Governance and Token audit;
- Agent Services Functionality audit;
- Tokenomics audit;
- Lockbox Solana audit.
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:
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
The list of mainnet addresses for different chains and their full contract configuration can be found in the following locations: