Skip to content
This repository was archived by the owner on Aug 26, 2024. It is now read-only.

ionicprotocol/contracts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3d65787 · Aug 26, 2024
Jul 16, 2024
Jul 16, 2024
Aug 20, 2024
Aug 19, 2024
Aug 7, 2024
Aug 20, 2024
Aug 20, 2024
Jul 21, 2023
Aug 16, 2024
Aug 1, 2024
Aug 19, 2024
Jul 25, 2024
Aug 16, 2024
Jul 21, 2023
Jul 21, 2023
Aug 26, 2024
Jul 23, 2024
May 24, 2024
Aug 16, 2024
Aug 20, 2024
Jul 16, 2024
Aug 16, 2024
Jul 26, 2024
Jul 21, 2023
Jul 14, 2024
Jul 14, 2024

Repository files navigation

NOTE: This repo has been deprecated and is in read-only mode! The contracts have been moved into the main Ionic monorepo: https://github.com/ionicprotocol/monorepo/tree/development/packages/contracts

Contracts

Main repository for Ionic Protocol's contracts

Structure

 ┌── README.md                        <- The top-level README
 ├── .github/workflows                <- CICD pipeline definition
 ├── .vscode                          <- IDE configs
 │
 ├── out                              <- (forge-generated, git ignored)
 │    ├── *.sol/*.json                <- All the built contracts
 │    └──  ...
 │
 ├── lib                              <- git submodules with forge-based dependencies
 │    ├── flywheel-v2                 <- Tribe flywheel contracts
 │    ├── fuse-flywheel               <- Fuse flywheel contracts
 │    ├── oz-contracts-upgradeable    <- OpenZeppelin deps
 │    └──  ...                        <- other deps
 │
 ├── contracts                        <- All of our contracts
 │    ├── test                        <- Forge-based tests
 │    ├── compound                    <- Compound interfaces
 │    ├── external                    <- External contracts we require
 │    ├── oracles                     <- Oracle contracts
 │    ├── utils                       <- Utility contracts
 │    └──  ...                        <- Main Fuse contracts
 │
 ├── foundry.toml                     <- forge configs
 ├── remappings.txt                   <- forge remappings
 └── package.json                     <- npm deps

Dev Workflow

1. Install dependencies: npm & foundry (forge + cast)

Forge dependencies

>>> curl -L https://foundry.paradigm.xyz | bash
>>> foundryup
# ensure forge and cast are available in your $PATH
# install submodule libraries via forge
>>> forge install

NPM dependencies

>>> npm install

2. Build the contracts

>>> forge build

3. Run the tests for a specific chain id

# export the relevant env variables, or set them in an .env file
>>> export TEST_RUN_CHAINID=1
>>> export  ETHEREUM_MAINNET_RPC_URL=https://rpc.ankr.com/eth
>>> export ETHEREUM_MAINNET_ARCHIVE_RPC_URL=https://rpc.ankr.com/eth

Run the entire test suite

>>> forge test --no-match-contract 'Abstract|BeefyERC4626Test|DotDotERC4626Test|ArrakisERC4626Test|JarvisERC4626Test|CurveERC4626Test|EllipsisERC4626Test|HelioERC4626Test|WombatERC4626Test|AaveV3ERC4626Test'

Check the CI.yaml file to see what chains we run the tests against

4. Lint

>>> npm run prettier

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7