Using a Compound Protocol commit later than 1243a5e7498f943a6061a4dbf3b71041ec7c6c70
, deploy Governor Bravo to the testnet.
Copy the GovernorBravoHarness.sol
file (below, in this Gist) into the /contracts/
directory of compound-protocol
. This version is only to be used on testnets.
cd compound-protocol/
npx saddle deploy GovernorBravoDelegateTestnetHarness -n ropsten
After the instance
deploy, copy the contract address. Next we'll deploy the delegator.
The deploy parameters are timelock_address, comp_address, timelock_address, instance_address, voting_period_blocks, voting_delay_blocks, proposal_threshold
, followed by -n network_name
.
npx saddle deploy GovernorBravoDelegator 0x2079a734292094702f4d7d64a59e980c20652cae 0xf76d4a441e4ba86a923ce32b89aff89dbccaa075 0x2079a734292094702f4d7d64a59e980c20652cae 0xc5597F42620005bDccB5088e65438376c72B3604 60 1 100000000000000000000000 -n ropsten
Go to the Delegator Etherscan page, click contract, click more options, click "is this a proxy?" and mark the contract a proxy.
Go back to the terminal for compound-protocol
, and run this command with the specific testnet name (other than ropsten)
yarn console -n ropsten
Copy the addresses:
governorBravoDelegator: 0x087e98B40f988E0E1D1de476b2b8d2271Ac84B33
governorBravoDelegateTestnetHarness: 0xc5597F42620005bDccB5088e65438376c72B3604
Make a governance proposal on the testnet if you have >100k testnet COMP (https://app.compound.finance/vote).
Ther actions are:
Timelock.setPendingAdmin(GovernorBravoDelegator)
GovernorBravoDelegator._initiate(GovernorAlphaAddress)
Grab the ABI for governorBravoDelegateTestnetHarness
and use it in the proposal UI when you go to select the _initiate
function.