Skip to content

Latest commit

 

History

History
165 lines (109 loc) · 3.32 KB

README.md

File metadata and controls

165 lines (109 loc) · 3.32 KB

Angle Angle Tokens

CI

This repository contains all the contracts of the Angle Tokens with associated contracts (CoreBorrow, FlashAngle ...)

Starting

Install packages

You can install all dependencies by running

yarn
forge i

Create .env file

In order to interact with non local networks, you must create an .env that has:

  • PRIVATE_KEY
  • MNEMONIC
  • network key (eg. ALCHEMY_NETWORK_KEY)
  • ETHERSCAN_API_KEY

For additional keys, you can check the .env.example file.

Warning: always keep your confidential information safe.

Headers

To automatically create headers, follow: https://github.com/Picodes/headers

Hardhat Command line completion

Follow these instructions to have hardhat command line arguments completion: https://hardhat.org/hardhat-runner/docs/guides/command-line-completion

Foundry Installation

curl -L https://foundry.paradigm.xyz | bash

source /root/.zshrc
# or, if you're under bash: source /root/.bashrc

foundryup

To install the standard library:

forge install foundry-rs/forge-std

To update libraries:

forge update

Foundry on Docker 🐳

If you don’t want to install Rust and Foundry on your computer, you can use Docker Image is available here ghcr.io/foundry-rs/foundry.

docker pull ghcr.io/foundry-rs/foundry
docker tag ghcr.io/foundry-rs/foundry:latest foundry:latest

To run the container:

docker run -it --rm -v $(pwd):/app -w /app foundry sh

Then you are inside the container and can run Foundry’s commands.

Tests

You can run tests as follows:

forge test -vvvv --watch
forge test -vvvv --match-path contracts/forge-tests/KeeperMulticall.t.sol
forge test -vvvv --match-test "testAbc*"
forge test -vvvv --fork-url https://eth-mainnet.alchemyapi.io/v2/Lc7oIGYeL_QvInzI0Wiu_pOZZDEKBrdf

You can also list tests:

forge test --list
forge test --list --json --match-test "testXXX*"

Deploying

There is an example script in the scripts/foundry folder. Then you can run:

yarn foundry:deploy <FILE_NAME> --rpc-url <NETWORK_NAME>

Example:

yarn foundry:deploy scripts/foundry/DeployMockAgEUR.s.sol --rpc-url goerli

Coverage

We recommend the use of this vscode extension.

yarn hardhat:coverage
yarn foundry:coverage

Simulate

You can simulate your transaction live or in fork mode. For both option you need to complete the scripts/foundry/Simulate.s.sol with your values: address sending the tx, address caled and the data to give to this address call.

For live simulation

yarn foundry:simulate

For fork simulation

yarn foundry:fork
yarn foundry:simulate:fork

For fork simulation at a given block

yarn foundry:fork:block ${XXXX}
yarn foundry:simulate:fork

Gas report

yarn foundry:gas

Slither

pip3 install slither-analyzer
pip3 install solc-select
solc-select install 0.8.11
solc-select use 0.8.11
slither .

Media

Don't hesitate to reach out on Twitter 🐦