npm

@chainlink/evm-gauntlet-mcm
TypeScript icon, indicating that this package has built-in type declarations

2.4.3 • Public • Published

EVM Gauntlet Many Chain Multisig Gauntlet

## Note

Commands are interfacing with the MCM / Timelock contracts version at this ccip-owner-contracts repository

Timelock Commands

The general format for a timelock gauntlet command is:

yarn gauntlet timelock:<OPERATION> --network=<NETWORK> [FLAGS] <TIMELOCK_ADDRESS>

Basic Commands

deploy:

yarn gauntlet timelock:deploy --network=<NETWORK> --minDelay=<NUMBER> --admin=<ADDRESS> --proposers=<COMMA_DELIMITED_PROPOSERS> --executors=<COMMA_DELIMITED_EXECUTORS> --cancellers=<COMMA_DELIMITED_CANCELLERS> --bypassers=<COMMA_DELIMITED_BYPASSERS>

scheduleBatch:

yarn gauntlet timelock:schedule_batch --network=<NETWORK> --targets=0x0,0x1,0x2 --values=30,20,10 --payloads=0x0,0x1,0x2 --predecessor=0x0 --salt=0x0 --delay=10

cancel:

yarn gauntlet timelock:cancel --network=<NETWORK> --id=<ID> <TIMELOCK_ADDRESS>

executeBatch

yarn gauntlet timelock:execute_batch --network=<NETWORK> --targets=0x0,0x1,0x2 --values=30,20,10 --payloads=0x0,0x1,0x2 --predecessor=0x0000000000000000000000000000000000000000000000000000000000000000 --salt=0x0000000000000000000000000000000000000000000000000000000000000000

bypasserExecuteBatch:

yarn gauntlet timelock:bypasser_execute_batch --network=<NETWORK> --targets=0x0,0x1,0x2 --values=30,20,10 --payloads=0x0,0x1,0x2 <TIMELOCK_ADDRESS>

grantRole:

yarn gauntlet timelock:grant_role --network=<NETWORK> --role=<proposer | executor | canceller | bypasser | admin> --address=<ADDRESS> <TIMELOCK_ADDRESS>

renounceRole:

yarn gauntlet timelock:renounce_role --network=<NETWORK> --role=<proposer | executor | canceller | bypasser | admin> --address=<ADDRESS> <TIMELOCK_ADDRESS>

revokeRole:

yarn gauntlet timelock:revoke_role --network=<NETWORK> --role=<proposer | executor | canceller | bypasser | admin> --address=<ADDRESS> <TIMELOCK_ADDRESS>

updateDelay:

yarn gauntlet timelock:update_delay --delay=1 <TIMELOCK_ADDRESS>

Wrapped Commands

The timelock wrapped commands (suffixed with keyword wrapped) allows users to pass in an input file with arbitrary low level gauntlet commands, which will then be batched and executed on the timelock.

For example, given an input file like:

{
    "transactions": [
      {
        "commandId": "ownership:accept_ownership",
        "input": {},
        "target": "0x1A61dc6d49490b18eD318033F8aaAC3260E281C0"
      },
      {
        "commandId": "ownership:accept_ownership",
        "input": {},
        "target": "0x2CcB80Bd7d0b0E10aCd401CDCA46a3486bf75a9a"
      },
      {
        "commandId": "ownership:accept_ownership",
        "input": {},
        "target": "0xD0792582d5d3Bdb022A7FC29e9976aaa4Fe75E03"
      },
      {
        "commandId": "ownership:accept_ownership",
        "input": {},
        "target": "0xe37d36db213f92daEAE8CCff628405340D8B5B38"
      }
    ]
  }

Calling yarn gauntlet timelock:<TIMELOCK_OPERATION>:wrapped --inputFile=<PATH_TO_FILE> --network=<NETWORK> <TIMELOCK_ADDRESS> will batch all of the transactions and execute the desired timelock operation

Note: each command has a few additional flags that might need to be set

schedule_batch: takes in required delay (in seconds) and optional predecessor and salt flags execute_batch: takes in optional predecessor and salt flags cancel: takes in optional predecessor and salt flags

Readme

Keywords

Package Sidebar

Install

npm i @chainlink/evm-gauntlet-mcm

Weekly Downloads

3,335

Version

2.4.3

License

none

Unpacked Size

11.7 MB

Total Files

162

Last publish

Collaborators

  • michelemin
  • notoriousenigma
  • secure.andrew
  • secure.javier
  • secure.ericz
  • npmserviceaccount-cll
  • secure.thanh
  • m4us