Skip to content

Commit

Permalink
Merge branch 'main' into feat/script-optimizations
Browse files Browse the repository at this point in the history
  • Loading branch information
deanamiel authored Nov 4, 2023
2 parents 0cf0ba2 + 05756e3 commit f40357e
Show file tree
Hide file tree
Showing 8 changed files with 153 additions and 105 deletions.
4 changes: 1 addition & 3 deletions .example.env
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
PRIVATE_KEY = '0x...'
ENV = 'local'
SALT = 'ITS v0.1.0'
SKIP_EXISTING = true
ENV = 'testnet'
20 changes: 0 additions & 20 deletions axelar-chains-config/info/stagenet.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@
"implementationCodehash": "0x5703cdd5d9808d811ab9e516c6298a18ff926b2dc03abeba391e662f737df203",
"authModule": "0xa30225bE0D505c67028B49c7175a37ff4883980f",
"tokenDeployer": "0xD65b4CEde4733F08939719e228F76d13BC99cBBa",
"governance": "0xeeC07176Ed1d49D9cb6C52f86E278b82Dd006C3e",
"mintLimiter": "0xdae074A742cC3628aF70bCa2B410654dF0168a5A",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2"
},
Expand Down Expand Up @@ -97,8 +95,6 @@
"implementationCodehash": "0xc680513d76d4bb9ddebb68f3137e92cf5ee91ffd83f8153de0339b7c3f72c156",
"authModule": "0x56FdBc2a6b63D768BE38e0585175dC7956d741F3",
"tokenDeployer": "0x4e5Fd0f7046aBE327D637D5D4AB756769cB60A97",
"governance": "0xeeC07176Ed1d49D9cb6C52f86E278b82Dd006C3e",
"mintLimiter": "0xdae074A742cC3628aF70bCa2B410654dF0168a5A",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2"
},
Expand Down Expand Up @@ -180,8 +176,6 @@
"implementationCodehash": "0xa9ca57c139ac5ae7a0c65d6307c2b26b3a8624a7ab0a3e450be82d86482e2024",
"authModule": "0x68F66b5Ea49B43E4d29BDED1051B90a28EADC67d",
"tokenDeployer": "0x34bF216E0ae4aFCFf9283ED6D23A89cF1B0CCED1",
"governance": "0xeeC07176Ed1d49D9cb6C52f86E278b82Dd006C3e",
"mintLimiter": "0xdae074A742cC3628aF70bCa2B410654dF0168a5A",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2"
},
Expand Down Expand Up @@ -263,8 +257,6 @@
"implementationCodehash": "0x5703cdd5d9808d811ab9e516c6298a18ff926b2dc03abeba391e662f737df203",
"authModule": "0xa30225bE0D505c67028B49c7175a37ff4883980f",
"tokenDeployer": "0xD65b4CEde4733F08939719e228F76d13BC99cBBa",
"governance": "0xeeC07176Ed1d49D9cb6C52f86E278b82Dd006C3e",
"mintLimiter": "0xdae074A742cC3628aF70bCa2B410654dF0168a5A",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2"
},
Expand Down Expand Up @@ -346,8 +338,6 @@
"implementationCodehash": "0xa9ca57c139ac5ae7a0c65d6307c2b26b3a8624a7ab0a3e450be82d86482e2024",
"authModule": "0x68F66b5Ea49B43E4d29BDED1051B90a28EADC67d",
"tokenDeployer": "0x34bF216E0ae4aFCFf9283ED6D23A89cF1B0CCED1",
"governance": "0xeeC07176Ed1d49D9cb6C52f86E278b82Dd006C3e",
"mintLimiter": "0xdae074A742cC3628aF70bCa2B410654dF0168a5A",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2"
},
Expand Down Expand Up @@ -429,8 +419,6 @@
"implementationCodehash": "0x575efa6334e10e63128cb88913044c7c687f47d267640e41faac93b054ae6140",
"authModule": "0x34bF216E0ae4aFCFf9283ED6D23A89cF1B0CCED1",
"tokenDeployer": "0xdc9fA655094bBaD6840cd4b05c5658eE2042e122",
"governance": "0xeeC07176Ed1d49D9cb6C52f86E278b82Dd006C3e",
"mintLimiter": "0xdae074A742cC3628aF70bCa2B410654dF0168a5A",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2"
},
Expand Down Expand Up @@ -512,8 +500,6 @@
"implementationCodehash": "0x5703cdd5d9808d811ab9e516c6298a18ff926b2dc03abeba391e662f737df203",
"authModule": "0xa30225bE0D505c67028B49c7175a37ff4883980f",
"tokenDeployer": "0xD65b4CEde4733F08939719e228F76d13BC99cBBa",
"governance": "0xeeC07176Ed1d49D9cb6C52f86E278b82Dd006C3e",
"mintLimiter": "0xdae074A742cC3628aF70bCa2B410654dF0168a5A",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2"
},
Expand Down Expand Up @@ -598,8 +584,6 @@
"implementationCodehash": "0xf1c37572ed919c97c02f87c70f41e57dd513f335c53237e1af73330b00f04de0",
"authModule": "0xB0288E332552f87Ef51EEE5F4060D1A98e99548B",
"tokenDeployer": "0xef180cdD04aCec05E085963aCc61BaeD17b50894",
"governance": "0xeeC07176Ed1d49D9cb6C52f86E278b82Dd006C3e",
"mintLimiter": "0xdae074A742cC3628aF70bCa2B410654dF0168a5A",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2"
},
Expand Down Expand Up @@ -680,8 +664,6 @@
"implementationCodehash": "0x3eb48e5f48808ef13805b38cffaa69b898238f02ad768e5d1ee5bc73be6bb579",
"authModule": "0xD65b4CEde4733F08939719e228F76d13BC99cBBa",
"tokenDeployer": "0x68F66b5Ea49B43E4d29BDED1051B90a28EADC67d",
"governance": "0xeeC07176Ed1d49D9cb6C52f86E278b82Dd006C3e",
"mintLimiter": "0xdae074A742cC3628aF70bCa2B410654dF0168a5A",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2"
},
Expand Down Expand Up @@ -766,8 +748,6 @@
"implementationCodehash": "0x7fb0f83cf34549753919f6f16ed3e895fbe26eda1bfded31247048255b5d4331",
"authModule": "0x2F4d0bEecEE4559026A8093EDD0e16377202DBe8",
"tokenDeployer": "0xB0288E332552f87Ef51EEE5F4060D1A98e99548B",
"governance": "0xeeC07176Ed1d49D9cb6C52f86E278b82Dd006C3e",
"mintLimiter": "0xdae074A742cC3628aF70bCa2B410654dF0168a5A",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2"
},
Expand Down
52 changes: 13 additions & 39 deletions axelar-chains-config/info/testnet.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@
"authModule": "0xcbf7900138EBc9CdB3E933B9E6F7071587BD6cb8",
"tokenDeployer": "0xb28478319B64f8D47e19A120209A211D902F8b8f",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"salt": "AxelarGasService",
Expand Down Expand Up @@ -125,9 +123,7 @@
"authModule": "0xE39d7d526DFd7B6D10972708C77ED19c3f2f5625",
"tokenDeployer": "0xb28478319B64f8D47e19A120209A211D902F8b8f",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"salt": "AxelarGasService",
Expand Down Expand Up @@ -238,9 +234,7 @@
"authModule": "0xE39d7d526DFd7B6D10972708C77ED19c3f2f5625",
"tokenDeployer": "0xb28478319B64f8D47e19A120209A211D902F8b8f",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"salt": "AxelarGasService",
Expand Down Expand Up @@ -354,9 +348,7 @@
"authModule": "0xE39d7d526DFd7B6D10972708C77ED19c3f2f5625",
"tokenDeployer": "0xb28478319B64f8D47e19A120209A211D902F8b8f",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"salt": "AxelarGasService",
Expand Down Expand Up @@ -580,9 +572,7 @@
"authModule": "0xE39d7d526DFd7B6D10972708C77ED19c3f2f5625",
"tokenDeployer": "0xb28478319B64f8D47e19A120209A211D902F8b8f",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"salt": "AxelarGasService",
Expand Down Expand Up @@ -690,9 +680,7 @@
"authModule": "0x6e0e885F0957086e173D95aAA08191a6c1Ac860d",
"tokenDeployer": "0xb28478319B64f8D47e19A120209A211D902F8b8f",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"salt": "AxelarGasService",
Expand Down Expand Up @@ -800,9 +788,7 @@
"authModule": "0xD9Af006C3b33a87eE8168B9e25721DFb00FC3d2d",
"tokenDeployer": "0xb28478319B64f8D47e19A120209A211D902F8b8f",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"salt": "AxelarGasService",
Expand Down Expand Up @@ -910,9 +896,7 @@
"authModule": "0x7A599c9bB4D88F648701B653739688edEfd830E8",
"tokenDeployer": "0xb28478319B64f8D47e19A120209A211D902F8b8f",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"salt": "AxelarGasService",
Expand Down Expand Up @@ -1019,9 +1003,7 @@
"authModule": "0x6e0e885F0957086e173D95aAA08191a6c1Ac860d",
"tokenDeployer": "0xb28478319B64f8D47e19A120209A211D902F8b8f",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"salt": "AxelarGasService",
Expand Down Expand Up @@ -1133,9 +1115,7 @@
"authModule": "0x6e0e885F0957086e173D95aAA08191a6c1Ac860d",
"tokenDeployer": "0xb28478319B64f8D47e19A120209A211D902F8b8f",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"salt": "AxelarGasService",
Expand Down Expand Up @@ -1249,9 +1229,7 @@
"deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05",
"implementationCodehash": "0xc3516b0df24004564d42ebd7c4e4d3814655ea19ec2535627ebcdced0970cccd",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"collector": "0x7F83F5cA2AE4206AbFf8a3C3668e88ce5F11C0B5",
Expand Down Expand Up @@ -1356,9 +1334,7 @@
"deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05",
"implementationCodehash": "0x327eb5816918332c7b6787ef777587c8f9b39af4ec7b8710cdd037d976b65d5f",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"salt": "AxelarGasService",
Expand Down Expand Up @@ -1466,9 +1442,7 @@
"deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05",
"implementationCodehash": "0xf9c0cf2181e91d9a39b38b9b1b32a5f170ddd5b6361b9ae5489224cf65d214be",
"deploymentMethod": "create3",
"salt": "AxelarGateway v6.2",
"governance": "0x4F0f42bF41ba60895134EC99dE79A041E5269003",
"mintLimiter": "0xF0E17583C906f3e672e591791a88c1116F53081c"
"salt": "AxelarGateway v6.2"
},
"AxelarGasService": {
"collector": "0x7F83F5cA2AE4206AbFf8a3C3668e88ce5F11C0B5",
Expand Down
48 changes: 18 additions & 30 deletions evm/README.md
Original file line number Diff line number Diff line change
@@ -1,62 +1,50 @@
# EVM deployment scripts

This folder contains deployment scripts for the following contracts.
This folder contains deployment and operational scripts for various contracts.
By default the version of contracts specified in `package.json` will be used for deployment.

## Setup

`npm ci`

For contract verification to work, copy over the appropriate build `artifacts` and `contracts` folder from the source repo into this repo. And update the hardhat config to use the same compiler version and optimizer runs setting.

You also need to create a `keys.json` file. See `evm/.example.keys.json` for an example.
Add the deployer private key in `.env` folder (see `.example.env` for reference).

## AxelarGateway

1. Compile the contracts from the source repo
2. Copy the `artifacts` folder at the root level of this repo
3. Add the deployer private key in `.env` folder (see `.example.env` for reference)
4. Add additional params in `.env` such as admin addresses, governance etc.
5. If you'd like to auto-verify the contract on the explorer, then add the explorer API key under `keys.json` (see `.example.keys.json`), and add `--verify` flag
6. Run the following depending on the service,
`node evm/deploy-gateway-v5.0.x.js --env testnet -n fantom`
Deploy the gateway contract.

`node evm/deploy-gateway-v6.2.x.js -e testnet -n ethereum`

## Gateway Upgrade

1. When upgrading the gateway, the proxy contract will be reused.
2. Depending on the upgrade process, Axelar auth and token deployer helper contracts might be reused as well.
3. `node evm/deploy-gateway-v5.0.x.js -e testnet -n fantom --reuseProxy` OR
4. `node evm/deploy-gateway-v5.0.x.js -e testnet -n fantom --reuseProxy --reuseHelpers`
3. `node evm/deploy-gateway-v6.2.x.js -e testnet -n ethereum --reuseProxy` OR
4. `node evm/deploy-gateway-v6.2.x.js -e testnet -n ethereum --reuseProxy --reuseHelpers`
5. This sets the new `implementation` in the chain config.
6. Upgrade to the new implementation contract
`node evm/deploy-gateway-v5.0.x.js -e testnet -n fantom --upgrade`
`node evm/deploy-gateway-v6.2.x.js -e testnet -n ethereum --upgrade`

## AxelarGasService and AxelarDepositService

1. Compile the contracts from the source repo
2. Copy the `artifacts` folder at the root level of this repo
3. Add the deployer private key in `.env` folder (see `.example.env` for reference)
4. If you'd like to auto-verify the contract on the explorer, then add the explorer API key under `keys.json` (see `.example.keys.json`), and add `--verify` flag
5. Use the `--upgrade` flag to upgrade the contract instead
6. Run the following depending on the service,
`node evm/deploy-upgradable.js deploy --env testnet -n fantom -c AxelarGasService -a ../artifacts/contracts/gas-service/`
1. Run the following depending on the service,
`node evm/deploy-upgradable.js -e testnet -n ethereum -c AxelarGasService`
2. Use the `--upgrade` flag to upgrade the contract instead

## InterchainTokenService

Install and copy default setting with

```bash
npm ci && cp example.env .env
```

To test the Interchain Token Service deployment

```bash
node evm/deploy-its -n ${chain-name} -s [salt]
node evm/deploy-its -e testnet -n ethereum -s [salt]
```

Run again with `-v only` to verify deployed contracts.
Change the `-s SALT` to derive a new address.

## InterchainGovernance

You can change `.env` to run the above script to testnet instead of local. Change the `SALT` to get a new address.
To update the min deposit on Axelar with a param change proposal, you can generate the proposal via
`node evm/min-deposit-proposal.js -e mainnet -n all --deposit 1000000`

## Contract Verification

Expand Down
2 changes: 1 addition & 1 deletion evm/deploy-gateway-v4.3.x.js
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ async function deploy(config, options) {
if (skipExisting && contractConfig.implementation) {
implementation = gatewayFactory.attach(contractConfig.implementation);
} else {
implementation = await gatewayFactory.deploy(auth.address, tokenDeployer.address);
implementation = await gatewayFactory.deploy(auth.address, tokenDeployer.address, gasOptions);
await implementation.deployTransaction.wait(chain.confirmations);
}

Expand Down
Loading

0 comments on commit f40357e

Please sign in to comment.