Skip to content

AMPL Meter Passport prod deployment

Aalavandhan edited this page Oct 15, 2021 · 9 revisions
  1. Setup deployer key
# create keyfile
export KEYFILE=[Path to key file]
export PASSPHRASE=
  1. Deploy AMPL contracts
# use existing deployment
yarn hardhat --network prodEthereumBaseChain deploy:use_deployed \
  --ampleforth-deployment-yaml "https://raw.githubusercontent.com/ampleforth/uFragments-eth-integration/master/migrations/deployments/mainnet-prod.yaml?token=ABPZMDVRUTAMJAQJVMZO7M3AVZRYA"

# deploy on bsc
export ETHERSCAN_API_KEY=BSC_API_KEY
yarn hardhat \
  --network prodBscSatChain \
  deploy:ampleforth_xc \
  --keyfile $KEYFILE --passphrase $PASSPHRASE \
  --token-name "Ampleforth secured by Meter Passport" \
  --token-symbol "AMPL" \
  --base-chain-network prodEthereumBaseChain

# deploy on avax-c-chain, verify manually
yarn hardhat \
  --network prodAvaxSatChain \
  deploy:ampleforth_xc \
  --keyfile $KEYFILE --passphrase $PASSPHRASE \
  --token-name "Ampleforth secured by Meter Passport" \
  --token-symbol "AMPL" \
  --base-chain-network prodEthereumBaseChain

# deploy on meter chain, verify manually
yarn hardhat \
  --network prodMeterSatChain \
  deploy:ampleforth_xc \
  --keyfile $KEYFILE --passphrase $PASSPHRASE \
  --token-name "Ampleforth secured by Meter Passport" \
  --token-symbol "AMPL" \
  --base-chain-network prodEthereumBaseChain
  1. Use deployed chain bridge contract and deploy handlers
export ETHERSCAN_API_KEY=ETH_API_KEY
yarn hardhat --network prodEthereumBaseChain deploy:chain_bridge_use_deployed \
  --bridge-address "0xbD515E41DF155112Cc883f8981CB763a286261be" \
  --generic-handler-address "0x517828d2549cEC09386f89a67E92825E26740240"

yarn hardhat --network prodEthereumBaseChain deploy:chain_bridge_base_chain \
  --keyfile $KEYFILE --passphrase $PASSPHRASE \
  --use-deployed true

#deploy on bsc
export ETHERSCAN_API_KEY=BSC_API_KEY
yarn hardhat --network prodBscSatChain deploy:chain_bridge_use_deployed \
  --bridge-address "0x223fafbc2cA53A75CcfF5B2369128d3d1a828F36" \
  --generic-handler-address "0x83Fc24eB56121FA2A05e0b5170E7310738425839"

yarn hardhat --network prodBscSatChain deploy:chain_bridge_satellite_chain \
  --keyfile $KEYFILE --passphrase $PASSPHRASE \
  --use-deployed true

# deploy on avax-c-chain, verify manually
yarn hardhat --network prodAvaxSatChain deploy:chain_bridge_use_deployed \
  --bridge-address "0xF41e7FC4eC990298d36f667B93951c9dba65224e" \
  --generic-handler-address "0x123455360bE78C9289B38bcb4DbA427D9a6cD440"

yarn hardhat --network prodAvaxSatChain deploy:chain_bridge_satellite_chain \
  --keyfile $KEYFILE --passphrase $PASSPHRASE \
  --use-deployed true

# deploy on meter, verify manually
yarn hardhat --network prodMeterSatChain deploy:chain_bridge_use_deployed \
  --bridge-address "0x3f396Af107049232Bc2804C171ecad65DBCC0323" \
  --generic-handler-address "0x89CA53Bf11d24D32A7aC3aDb7750868360c90590"

yarn hardhat --network prodMeterSatChain deploy:chain_bridge_satellite_chain \
  --keyfile $KEYFILE --passphrase $PASSPHRASE \
  --use-deployed true
  1. Inspect state
# prints ampl state
yarn hardhat info:ampl \
  --networks "[\"prodEthereumBaseChain\", \"prodBscSatChain\", \"prodAvaxSatChain\", \"prodMeterSatChain\"]" \
  --bridge chainBridge

# prints ampl balances across chains
yarn hardhat info:ampl:balance \
  --networks "[\"prodEthereumBaseChain\", \"prodBscSatChain\", \"prodAvaxSatChain\", \"prodMeterSatChain\"]" \
  --wallet "0x5A617f363674489339226E8A448307763a43108F"

# prints bridge state
yarn hardhat info:chain_bridge \
  --networks "[\"prodEthereumBaseChain\", \"prodBscSatChain\", \"prodAvaxSatChain\", \"prodMeterSatChain\"]"

# get transaction history
yarn hardhat info:cb_ampl_tx --networks "[\"prodEthereumBaseChain\", \"prodBscSatChain\", \"prodAvaxSatChain\"]" --output-csv-path prod-tx.csv
  1. Cross-chain transactions
# report rebase from base-chain to satellite-chains
yarn hardhat --network prodEthereumBaseChain chain_bridge:report_rebase \
  --satellite-chain-networks "[\"prodBscSatChain\", \"prodAvaxSatChain\"]" \
  --keyfile $KEYFILE --passphrase $PASSPHRASE

# wait for relayer to report rebase execute rebase on satellite chains
yarn hardhat rebase:satellite_chain \
  --networks "[\"prodBscSatChain\"]" \
  --keyfile $KEYFILE --passphrase $PASSPHRASE


# cross-chain transfer from base to satellite
yarn hardhat --network prodEthereumBaseChain chain_bridge:xc_transfer \
  --target-chain-network prodBscSatChain \
  --keyfile $KEYFILE --passphrase $PASSPHRASE \
  --recipient-address "0x5A617f363674489339226E8A448307763a43108F" \
  --amount 1 \
  --bridge chainBridge

# cross-chain transfer from satellite to base
yarn hardhat --network prodBscSatChain xc_transfer \
  --target-chain-network prodEthereumBaseChain \
  --keyfile $KEYFILE --passphrase $PASSPHRASE \
  --recipient-address "0x5A617f363674489339226E8A448307763a43108F" \
  --amount 1 \
  --bridge chainBridge
Clone this wiki locally