Skip to content

feat(stellar): add deployment script for testing #539

feat(stellar): add deployment script for testing

feat(stellar): add deployment script for testing #539

Workflow file for this run

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}'