mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-04 04:57:27 +00:00 
			
		
		
		
	dynamically set default contract addresses for bridged asset in testnet seed scripts
This commit is contained in:
		
							parent
							
								
									40f3c0b67b
								
							
						
					
					
						commit
						1dda67312e
					
				
							
								
								
									
										52
									
								
								.github/scripts/seed-internal-testnet.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										52
									
								
								.github/scripts/seed-internal-testnet.sh
									
									
									
									
										vendored
									
									
								
							@ -102,3 +102,55 @@ done
 | 
			
		||||
 | 
			
		||||
# create a text proposal
 | 
			
		||||
kava tx gov submit-proposal --deposit 1000000000ukava --type "Text" --title "Example Proposal" --description "This is an example proposal" --gas auto --gas-adjustment 1.2 --from dev-wallet --gas-prices 0.01ukava -y
 | 
			
		||||
 | 
			
		||||
# setup god's wallet
 | 
			
		||||
echo "${KAVA_TESTNET_GOD_MNEMONIC}" | kava keys add --recover god
 | 
			
		||||
 | 
			
		||||
# create template string for the proposal we want to enact
 | 
			
		||||
# https://kava-labs.atlassian.net/wiki/spaces/ENG/pages/1228537857/Submitting+Governance+Proposals+WIP
 | 
			
		||||
PARAM_CHANGE_PROP_TEMPLATE=$(cat <<'END_HEREDOC'
 | 
			
		||||
{
 | 
			
		||||
    "@type": "/cosmos.params.v1beta1.ParameterChangeProposal",
 | 
			
		||||
    "title": "Set Initial ERC-20 Contracts",
 | 
			
		||||
    "description": "Set Initial ERC-20 Contracts",
 | 
			
		||||
    "changes": [
 | 
			
		||||
        {
 | 
			
		||||
            "subspace": "evmutil",
 | 
			
		||||
            "key": "EnabledConversionPairs",
 | 
			
		||||
            "value": "[{\"kava_erc20_address\":\"MULTICHAIN_USDC_CONTRACT_ADDRESS\",\"denom\":\"erc20/multichain/usdc\"},{\"kava_erc20_address\":\"MULTICHAIN_USDT_CONTRACT_ADDRESS\",\"denom\":\"erc20/multichain/usdt\"},{\"kava_erc20_address\":\"MULTICHAIN_wBTC_CONTRACT_ADDRESS\",\"denom\":\"erc20/multichain/btc\"},{\"kava_erc20_address\":\"AXL_USDC_CONTRACT_ADDRESS\",\"denom\":\"erc20/axelar/usdc\"},{\"kava_erc20_address\":\"wBTC_CONTRACT_ADDRESS\",\"denom\":\"erc20/axelar/btc\"},{\"kava_erc20_address\":\"wETH_CONTRACT_ADDRESS\",\"denom\":\"erc20/axelar/eth\"}]"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
END_HEREDOC
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# substitute freshly deployed contract addresses
 | 
			
		||||
finalProposal=$PARAM_CHANGE_PROP_TEMPLATE
 | 
			
		||||
 | 
			
		||||
finalProposal="${finalProposal/MULTICHAIN_USDC_CONTRACT_ADDRESS/$MULTICHAIN_USDC_CONTRACT_ADDRESS}"
 | 
			
		||||
finalProposal="${finalProposal/MULTICHAIN_USDT_CONTRACT_ADDRESS/$MULTICHAIN_USDT_CONTRACT_ADDRESS}"
 | 
			
		||||
finalProposal="${finalProposal/MULTICHAIN_wBTC_CONTRACT_ADDRESS/$MULTICHAIN_wBTC_CONTRACT_ADDRESS}"
 | 
			
		||||
finalProposal="${finalProposal/AXL_USDC_CONTRACT_ADDRESS/$AXL_USDC_CONTRACT_ADDRESS}"
 | 
			
		||||
finalProposal="${finalProposal/wBTC_CONTRACT_ADDRESS/$wBTC_CONTRACT_ADDRESS}"
 | 
			
		||||
finalProposal="${finalProposal/wETH_CONTRACT_ADDRESS/$wETH_CONTRACT_ADDRESS}"
 | 
			
		||||
 | 
			
		||||
# create unique proposal filename
 | 
			
		||||
proposalFileName="$(date +%s)-proposal.json"
 | 
			
		||||
touch $proposalFileName
 | 
			
		||||
 | 
			
		||||
# save proposal as file to disk
 | 
			
		||||
echo "$finalProposal" > $proposalFileName
 | 
			
		||||
 | 
			
		||||
# snapshot original module params
 | 
			
		||||
originalEvmUtilParams=$(curl https://api.app.internal.testnet.us-east.production.kava.io/kava/evmutil/v1beta1/params)
 | 
			
		||||
printf "original evm util module params\n %s" , "$originalEvmUtilParams"
 | 
			
		||||
 | 
			
		||||
# change the params of the chain like a god - make it so 🖖🏽
 | 
			
		||||
# make sure to update god committee member permissions for the module
 | 
			
		||||
# and params being updated (see below for example)
 | 
			
		||||
# https://github.com/Kava-Labs/kava/pull/1556/files#diff-0bd6043650c708661f37bbe6fa5b29b52149e0ec0069103c3954168fc9f12612R900-R903
 | 
			
		||||
kava tx committee submit-proposal 1 "$proposalFileName" --gas 2000000 --gas-prices 0.01ukava --from god -y
 | 
			
		||||
 | 
			
		||||
# fetch current module params
 | 
			
		||||
updatedEvmUtilParams=$(curl https://api.app.internal.testnet.us-east.production.kava.io/kava/evmutil/v1beta1/params)
 | 
			
		||||
printf "updated evm util module params\n %s" , "$updatedEvmUtilParams"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										52
									
								
								.github/scripts/seed-protonet.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										52
									
								
								.github/scripts/seed-protonet.sh
									
									
									
									
										vendored
									
									
								
							@ -93,3 +93,55 @@ done
 | 
			
		||||
 | 
			
		||||
# create a text proposal
 | 
			
		||||
kava tx gov submit-legacy-proposal --deposit 1000000000ukava --type "Text" --title "Example Proposal" --description "This is an example proposal" --gas auto --gas-adjustment 1.2 --from dev-wallet --gas-prices 0.01ukava -y
 | 
			
		||||
 | 
			
		||||
# setup god's wallet
 | 
			
		||||
echo "${KAVA_TESTNET_GOD_MNEMONIC}" | kava keys add --recover god
 | 
			
		||||
 | 
			
		||||
# create template string for the proposal we want to enact
 | 
			
		||||
# https://kava-labs.atlassian.net/wiki/spaces/ENG/pages/1228537857/Submitting+Governance+Proposals+WIP
 | 
			
		||||
PARAM_CHANGE_PROP_TEMPLATE=$(cat <<'END_HEREDOC'
 | 
			
		||||
{
 | 
			
		||||
    "@type": "/cosmos.params.v1beta1.ParameterChangeProposal",
 | 
			
		||||
    "title": "Set Initial ERC-20 Contracts",
 | 
			
		||||
    "description": "Set Initial ERC-20 Contracts",
 | 
			
		||||
    "changes": [
 | 
			
		||||
        {
 | 
			
		||||
            "subspace": "evmutil",
 | 
			
		||||
            "key": "EnabledConversionPairs",
 | 
			
		||||
            "value": "[{\"kava_erc20_address\":\"MULTICHAIN_USDC_CONTRACT_ADDRESS\",\"denom\":\"erc20/multichain/usdc\"},{\"kava_erc20_address\":\"MULTICHAIN_USDT_CONTRACT_ADDRESS\",\"denom\":\"erc20/multichain/usdt\"},{\"kava_erc20_address\":\"MULTICHAIN_wBTC_CONTRACT_ADDRESS\",\"denom\":\"erc20/multichain/btc\"},{\"kava_erc20_address\":\"AXL_USDC_CONTRACT_ADDRESS\",\"denom\":\"erc20/axelar/usdc\"},{\"kava_erc20_address\":\"wBTC_CONTRACT_ADDRESS\",\"denom\":\"erc20/axelar/btc\"},{\"kava_erc20_address\":\"wETH_CONTRACT_ADDRESS\",\"denom\":\"erc20/axelar/eth\"}]"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
END_HEREDOC
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# substitute freshly deployed contract addresses
 | 
			
		||||
finalProposal=$PARAM_CHANGE_PROP_TEMPLATE
 | 
			
		||||
 | 
			
		||||
finalProposal="${finalProposal/MULTICHAIN_USDC_CONTRACT_ADDRESS/$MULTICHAIN_USDC_CONTRACT_ADDRESS}"
 | 
			
		||||
finalProposal="${finalProposal/MULTICHAIN_USDT_CONTRACT_ADDRESS/$MULTICHAIN_USDT_CONTRACT_ADDRESS}"
 | 
			
		||||
finalProposal="${finalProposal/MULTICHAIN_wBTC_CONTRACT_ADDRESS/$MULTICHAIN_wBTC_CONTRACT_ADDRESS}"
 | 
			
		||||
finalProposal="${finalProposal/AXL_USDC_CONTRACT_ADDRESS/$AXL_USDC_CONTRACT_ADDRESS}"
 | 
			
		||||
finalProposal="${finalProposal/wBTC_CONTRACT_ADDRESS/$wBTC_CONTRACT_ADDRESS}"
 | 
			
		||||
finalProposal="${finalProposal/wETH_CONTRACT_ADDRESS/$wETH_CONTRACT_ADDRESS}"
 | 
			
		||||
 | 
			
		||||
# create unique proposal filename
 | 
			
		||||
proposalFileName="$(date +%s)-proposal.json"
 | 
			
		||||
touch $proposalFileName
 | 
			
		||||
 | 
			
		||||
# save proposal as file to disk
 | 
			
		||||
echo "$finalProposal" > $proposalFileName
 | 
			
		||||
 | 
			
		||||
# snapshot original module params
 | 
			
		||||
originalEvmUtilParams=$(curl https://api.app.internal.testnet.us-east.production.kava.io/kava/evmutil/v1beta1/params)
 | 
			
		||||
printf "original evm util module params\n %s" , "$originalEvmUtilParams"
 | 
			
		||||
 | 
			
		||||
# change the params of the chain like a god - make it so 🖖🏽
 | 
			
		||||
# make sure to update god committee member permissions for the module
 | 
			
		||||
# and params being updated (see below for example)
 | 
			
		||||
# https://github.com/Kava-Labs/kava/pull/1556/files#diff-0bd6043650c708661f37bbe6fa5b29b52149e0ec0069103c3954168fc9f12612R900-R903
 | 
			
		||||
kava tx committee submit-proposal 1 "$proposalFileName" --gas 2000000 --gas-prices 0.01ukava --from god -y
 | 
			
		||||
 | 
			
		||||
# fetch current module params
 | 
			
		||||
updatedEvmUtilParams=$(curl https://api.app.internal.testnet.us-east.production.kava.io/kava/evmutil/v1beta1/params)
 | 
			
		||||
printf "updated evm util module params\n %s" , "$updatedEvmUtilParams"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								.github/workflows/cd-seed-chain.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/workflows/cd-seed-chain.yml
									
									
									
									
										vendored
									
									
								
							@ -24,6 +24,8 @@ on:
 | 
			
		||||
    secrets:
 | 
			
		||||
      DEV_WALLET_MNEMONIC:
 | 
			
		||||
        required: true
 | 
			
		||||
      KAVA_TESTNET_GOD_MNEMONIC:
 | 
			
		||||
        required: true
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  seed-chain-state:
 | 
			
		||||
@ -88,6 +90,7 @@ jobs:
 | 
			
		||||
          CHAIN_API_URL: ${{ inputs.chain-api-url }}
 | 
			
		||||
          CHAIN_ID: ${{ inputs.chain-id }}
 | 
			
		||||
          DEV_WALLET_MNEMONIC: ${{ secrets.DEV_WALLET_MNEMONIC }}
 | 
			
		||||
          KAVA_TESTNET_GOD_MNEMONIC: ${{ secrets.KAVA_TESTNET_GOD_MNEMONIC }}
 | 
			
		||||
          SEED_SCRIPT_FILENAME: ${{ inputs.seed-script-filename }}
 | 
			
		||||
          ERC20_DEPLOYER_NETWORK_NAME: ${{ inputs.erc20-deployer-network-name }}
 | 
			
		||||
          GENESIS_VALIDATOR_ADDRESSES: ${{ inputs.genesis_validator_addresses }}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user