Skip to content

Smart contracts and solc Solidity compiler for XGM godmode

Notifications You must be signed in to change notification settings

xGodMode/contract-library

Repository files navigation

GodMode Logo

Godmode Contract Library holds plug-and-play Godmode versions of smart contracts deployed on Ethereum mainnet.

You can use this package to easily import GM contracts from individual (or all) protocols we support into your test suite.

Usage

In your project that uses Godmode for testing, define the protocols that you want to pull in via your package.json file

  "godmode": {
    "protocols": [
      "Maker"
    ]
  }

Then run the following command to install the protocol's contracts into your project at ./build/protocols

Make sure you run the npx command from the same directory where your package.json lives.

npx install godmode

Development

Start by installing dependencies:

npm install

Then to add a new protocol:

  1. Create a directory called <new-protocol-name> under the appropriate EVM version ("byzantium"|"constantinople"|"istanbul")
  2. Add the required Solidity files to the directory
  3. IMPORTANT!! Prefix the GM-ified contracts with GM (e.g. GMDai)
  4. Run the compile command
npm run compile
  1. Check that the <new-protocol-name>.json file includes the ABI and bytecode of the GM contracts
  2. Check that the protocols.txt file includes the name of the protocol you added