/oasis-earn-sc

Smart Contract for earn strategies

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

Summer Mono

Environment variables

Copy and populate an .env file according to the .env.template file.

Setup

  1. Install dependencies
yarn
  1. Clean packages
yarn clean
  1. Build packages
yarn build
  1. Compile contracts (optional) Contracts are automatically compiled when running yarn build but can also be compiled separately
yarn compile

Local development

Running a local node & deploying the system to a locally running node

  1. Running a local node
yarn dev
  1. Deploying the system to your local node
yarn deploy:dev

Running tests

  1. Run all tests in the monorepo
yarn test
  1. Run all unit tests in the monorepo
yarn test:unit
  1. Run all e2e tests in the monorepo
yarn test:e2e
  1. Run a specific test in the specific package (example) Command should be run from a respective package folder
yarn clean & yarn hardhat test <path-to-test>

Naming conventions

  • TS files and all folders are named using kebab-case
  • -Solidity files (interfaces, contracts etc) are named using Pascal case

Hardhat tasks

  1. Create multiply positions on a network of your choosing
cd packages/dma-contracts && yarn hardhat createMultiplyPositions --serviceregistry <service-registry-address> --accountfactory <account-factory-address> --network <insert-network>

Note: There's an issue with circular dependencies between packages. You'll need to ensure that tasks which causes circular dependencies are not included in the hardhat.config.ts file in @oasisdex/dma-contracts. For more info see the readme in the packages/dma-contracts folder

Deploy contracts

Please see the readme in the packages/dma-contracts folder for more information

Publishing

From package folder:

  • checkout dev
  • rum yarn publish

Prepublish will clean cache and build pkg, yarn will ask for a new version and create a new commit with a tag.