feat(stellar): add deployment script for testing #539
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test Evm | |
on: pull_request | |
jobs: | |
test-evm: | |
runs-on: blacksmith-2vcpu-ubuntu-2204 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Node.js | |
uses: useblacksmith/setup-node@v5 | |
with: | |
node-version: 18.x | |
cache: 'npm' | |
- name: Install | |
run: npm ci | |
- name: Spin up Hardhat Network | |
run: npx hardhat node & | |
- name: Prepare local.json | |
run: | | |
echo '{ | |
"chains": { | |
"test": { | |
"name": "Test", | |
"id": "test", | |
"axelarId": "test", | |
"chainId": 31337, | |
"rpc": "http://127.0.0.1:8545", | |
"tokenSymbol": "TEST", | |
"contracts": { | |
"AxelarGasService": { | |
"collector": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" | |
}, | |
"InterchainGovernance": { | |
"minimumTimeDelay": 3600 | |
}, | |
"AxelarServiceGovernance": { | |
"minimumTimeDelay": 3600, | |
"multisig": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" | |
}, | |
"Multisig": { | |
"signers": [ | |
"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", | |
"0x70997970C51812dc3A010C7d01b50e0d17dc79C8", | |
"0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC" | |
], | |
"threshold": 2 | |
} | |
} | |
} | |
} | |
}' > ./axelar-chains-config/info/local.json | |
# Create .env file with default hardhat private key that's prefunded | |
- name: Prepare .env | |
run: | | |
echo 'PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80' >> .env | |
echo 'ENV=local' >> .env | |
echo 'CHAINS=test' >> .env | |
- name: Display local.json | |
run: cat ./axelar-chains-config/info/local.json | |
- name: Deploy ConstAddressDeployer | |
run: node evm/deploy-contract.js -c ConstAddressDeployer -m create -y | |
- name: Deploy Create3Deployer | |
run: node evm/deploy-contract.js -c Create3Deployer -m create2 -y | |
- name: Deploy AxelarAmplifierGateway | |
run: node evm/deploy-amplifier-gateway.js --deployMethod create3 -s "AxelarAmplifierGateway v5.8" --owner 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --keyID 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --domainSeparator 0x361b9fa2ae14de79d4b32164841b42ebc840b9d3ddb98cba1a45dc79a13214fc -y | |
- name: Deploy AxelarGateway | |
run: node evm/deploy-gateway-v6.2.x.js --deployMethod create3 -s "AxelarGateway v6.2" --governance 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --mintLimiter 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --keyID 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 -y | |
- name: Call Method on Gateway | |
run: node evm/gateway.js --action callContract --destinationChain test2 -y | |
- name: Deploy InterchainGovernance using create | |
run: node evm/deploy-contract.js -c InterchainGovernance -m create -y | |
- name: Deploy InterchainGovernance using create2 | |
run: node evm/deploy-contract.js -c InterchainGovernance -m create2 -y | |
- name: Deploy InterchainGovernance using create3 | |
run: node evm/deploy-contract.js -c InterchainGovernance -m create3 -y | |
- name: Transfer gateway governance | |
run: node evm/gateway.js --action transferGovernance -y | |
- name: Generate governance upgrade proposal | |
run: node evm/governance.js --targetContractName AxelarGateway --action upgrade --proposalAction schedule --date 2100-01-01T12:00:00 | |
- name: Deploy AxelarServiceGovernance using create3 | |
run: node evm/deploy-contract.js -c AxelarServiceGovernance -m create3 -y | |
- name: Deploy Multisig using create3 | |
run: node evm/deploy-contract.js -c Multisig -m create3 -y | |
- name: Deploy Operators using create3 | |
run: node evm/deploy-contract.js -c Operators -m create3 -y | |
- name: Deploy AxelarGasService using create2 | |
run: node evm/deploy-upgradable.js -c AxelarGasService -m create2 -y | |
- name: Deploy ITS using create2 | |
run: node evm/deploy-its.js -s "v1.0.0" -m create2 -y | |
- name: Deploy new ITS implementation | |
run: node evm/deploy-its.js -s "v1.1.0" -m create2 --reuseProxy -y | |
- name: Upgrade ITS using create2 | |
run: node evm/deploy-its.js -m create2 -u -y | |
- name: InterchainTokenService deploy interchain token on current chain | |
run: node evm/its.js --action deployInterchainToken --name "test" --symbol "TST" --decimals 18 --minter 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 --destinationChain '' --gasValue 0 --salt "salt" -y | |
- name: InterchainTokenService set hub | |
run: node evm/its.js --action setTrustedAddress --trustedChain axelar --trustedAddress axelar1xyz -y | |
- name: InterchainTokenService set trusted chain | |
run: node evm/its.js --action setTrustedAddress --trustedChain remote --trustedAddress hub -y | |
- name: InterchainTokenFactory deploy interchain token on current chain | |
run: node evm/interchainTokenFactory.js --action deployInterchainToken --name "test" --symbol "TST" --decimals 18 --minter 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --salt "salt" -y | |
- name: InterchainTokenFactory deploy interchain token to destination chain | |
run: node evm/interchainTokenFactory.js --action deployRemoteInterchainToken --destinationChain remote --minter 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --salt "salt" -y | |
# Note that tokenId is hardcoded since it's derivation must always be the same | |
- name: InterchainTokenService interchain transfer to destination chain | |
run: node evm/its.js --action interchainTransfer --destinationChain remote --tokenId 0x88a9d17b8f4e6e4aaceb3c8f53d54eedb144276f1dd2b9f2d17de784aa090be7 --destinationAddress 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --amount 1 --gasValue 0 -y | |
- name: Add gasOptions to local.json | |
run: | | |
jq '.chains.test += {"gasOptions": {"gasLimit": 8000000}} | .chains.test.contracts.AxelarGateway += {"gasOptions": {"gasLimit": 8000000}}' ./axelar-chains-config/info/local.json > temp.json && mv temp.json ./axelar-chains-config/info/local.json | |
- name: Redeploy AxelarGateway with gasOptions | |
run: node evm/deploy-gateway-v6.2.x.js -m create3 -s "AxelarGateway v6.2" --governance 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --mintLimiter 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --keyID 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 -y | |
- name: Redeploy ITS with gasOptions in Chain Config | |
run: node evm/deploy-its.js -s "v1.0.0" -m create2 -y | |
- name: Redeploy ITS with gasOptions override via CLI | |
run: | | |
node evm/deploy-its.js -s "v1.0.0" -m create2 -y --gasOptions \ | |
'{"gasLimit": 9000000,"gasPriceAdjustment": 1.1}' |