# EVM Gauntlet Commands for Chainlink's Common Contracts


### AccessController
#### Deploy Access Controller
Use this command to deploy the LINK token contract. It takes no inputs besides the standard --network flag. 
Usage: `yarn gauntlet access_controller:deploy --network=goerli`


#### Add Access
Add access to the EOA address to the access list on Access Controller contract for future access restrictions
Usage: `yarn gauntlet access_controller:add_access --network=goerli <0xabc> --addresses=<0x123>` 
Where 0xabc is the address of the AccessController contract, 0x123 is the list of User addresses to be added to the access list


### Flags
#### Deploy
Use this command to deploy the Flags contract. It takes inputs of addressess of lowering and raising AccessControllers, Zero address if dont need to specify
Usage: `yarn gauntlet flag:deploy --loweringAC=0x0000000000000000000000000000000000000000 --raisingAC=0x0000000000000000000000000000000000000000 --network=goerli`


#### Raise Flags
Raise flags for the address. 
Usage: `yarn gauntlet flag:raise --network=goerli <0xabc> --addresses="[<0x123>,<0x234>]"` 
Where 0xabc is the address of the Flag Contract, 0x123, 0x234 is the list of aggregator addresses to raise the flags.


### Ownership
#### Transfer
Use this command to Transfer the ownership of a contract to another owner. It takes new owner address as input besides the standard --network flag. 
Usage: `yarn gauntlet ownership:transfer_ownership --network=goerli --to=<0x123> <0xabc>`
where 0x123 is the address of new owner & 0xabc is the address of any contract which implements Ownership interface


#### Accept
Run by the new Owner to accept the prosposed ownerhip of the contract. It takes no input besides the standard --network flag. 
Usage: `yarn gauntlet ownership:accept_ownership --network=goerli <0xabc>` 
Where 0xabc is the address of the contract for which ownership change is proposed


### Aggregator Proxies

#### Deploy
This command deploys a proxy to the aggregator. It takes an aggregator and accesscontroller address as inputs
Usage: `yarn gauntlet proxies:deploy  --network=goerli --aggregator=<0x123> --accessController=<0x234>`
where 0x123 is the address of Aggregator contract, 0x234 is the address of the access controller

#### Propose New Aggregator
Use this command to propose new aggregator contract to the proxy.
Usage: `yarn gauntlet proxies:propose_aggregator --network=goerli --aggregator=<0x123> <0xabc>`
where 0x123 is the address of new aggregator address & 0xabc is the address of any Proxy Contract

#### Confirm New Aggregator
Use this command to confirm the proposed new aggregator contract to the proxy by the proxy owner.
Usage: `yarn gauntlet proxies:confirm_aggregator --network=goerli --aggregator=<0x123> <0xabc>`
where 0x123 is the address of proposed new aggregator address & 0xabc is the address of any Proxy Contract
