This repository contains the smart contracts of the Merkl product developed by Angle.
It basically contains two contracts:
DistributionCreator: to which DAOs and individuals can deposit their rewards to incentivize a poolDistributor: the contract where users can claim their rewards
You can learn more about the Merkl system in the documentation.
You can install all dependencies by running
yarn
forge iIn order to interact with non local networks, you must create an .env that has, for all supported networks (Ethereum, Polygon and Arbitrum):
MNEMONICETH_NODE_URIETHERSCAN_API_KEY
You can copy paste the .env.example file into .env and fill with your keys/RPCs.
Warning: always keep your confidential information safe.
Contracts in this repo rely on Hardhat tests. You can run tests as follows:
# Whole test suite
yarn hardhat:test
# Only one file
yarn hardhat:test ./test/hardhat/distributor/distributor.test.tsYou can also check the coverage of the tests with:
yarn hardhat:coverageyarn deploy mainnetcurl -L https://foundry.paradigm.xyz | bash
source /root/.zshrc
# or, if you're under bash: source /root/.bashrc
foundryupTo install the standard library:
forge install foundry-rs/forge-stdTo update libraries:
forge updateThe Merkl smart contracts have been audited by Code4rena, find the audit report here.
Don't hesitate to reach out on Twitter 🐦