Aave Governance V2: Listing a new asset

This repository facilitates the last step of the process of listing a new asset to the Aave protocol, that is creating the on-chain proposal to the Aave Governance.

You must have followed all the previous steps from the guide

Requirements

Following the guide

  • You must have agreed with the Aave Genesis team on risk parameters for your token during an ARC on the governance forum.
  • You must have deployed the AToken, VariableDebtToken, StableDebtToken, InterestStrategy overlying contracts for your token.
  • You must have created the associated AIP (here)
  • You must have enough Proposition Power.

Set the environment variables.

Copy the .default.env file, rename it to .env and update it to match with your tokens addresses and your risk parameters.

Example for the Curve Token listing:

## You need either an infura or alchemy key with archive node setup
INFURA_KEY= XXX
ALCHEMY_KEY= XXX
MNEMONIC= XXX
TOKEN=0xd533a949740bb3306d119cc777fa900ba034cd52
ATOKEN=0x84ddcafdece3b3e3a93372852b42455a644872a5
STABLE_DEBT_TOKEN=0x288672d311da6edc89765204a6d309701e7289d4
VARIABLE_DEBT_TOKEN=0xcbd8e12555ae7949dc4aea3a33385e25bfc4e0b2
INTEREST_STRATEGY=0xe3a3de71b827cb73663a24cdb6243ba7f986cc3b
LTV=4000
LIQUIDATION_THRESHOLD=5500
LIQUIDATION_BONUS=11500
RESERVE_FACTOR=500
DECIMALS=18
ENABLE_BORROW=false
ENABLE_AS_COLLATERAL=true
ENABLE_AS_RESERVE_COLLATERAL=false
IPFS_HASH=QmNfU4FMdQriJVQeqQTNxgY63iSJVh8yCJf8aFDkQDjaLQ
## For mainnet fork tests 
## Address of EOA that has TOKEN on mainnet
TOKEN_HOLDER=0x0e33be39b13c576ff48e14392fbf96b02f40cd34
## Recent Block for mainnet fork test (need to be more recent than assets deployment blocks)
FORKING_BLOCK=11538355

Node

Install

$ npm i

Run the test

$ npm run test

Run the deployment script

$ npm run propose-new-asset:kovan for kovan

$ npm run propose-new-asset:main for mainnet

docker-compose

In one terminal tab: docker-compose up

Enter the container in new tab: docker-compose exec contracts-env bash

In the container run:

$ npm run test

$ npm run propose-new-asset:kovan for kovan

$ npm run propose-new-asset:main for mainnet