1+ #! /bin/bash
2+
3+ set -exo pipefail
4+
5+ yarn zetachain localnet start --force-kill --no-analytics &
6+
7+ REGISTRY_FILE=" $HOME /.zetachain/localnet/registry.json"
8+ while [ ! -f " $REGISTRY_FILE " ]; do sleep 1; done
9+
10+ forge soldeer update
11+
12+ forge build
13+
14+ ZRC20_ETHEREUM=$( jq -r ' ."11155112".zrc20Tokens[] | select(.symbol=="ETH.ETH") | .address' " $REGISTRY_FILE " )
15+ USDC_ETHEREUM=$( jq -r ' ."11155112".zrc20Tokens[] | select(.symbol=="USDC.ETH") | .originAddress' " $REGISTRY_FILE " )
16+ ZRC20_USDC_BNB=$( jq -r ' ."98".zrc20Tokens[] | select(.symbol=="USDC.BNB") | .address' " $REGISTRY_FILE " )
17+ ZRC20_BNB=$( jq -r ' ."98".zrc20Tokens[] | select(.symbol=="BNB.BNB") | .address' " $REGISTRY_FILE " )
18+ GATEWAY_ETHEREUM=$( jq -r ' ."11155112".contracts[] | select(.contractType=="gateway") | .address' " $REGISTRY_FILE " )
19+ GATEWAY_ZETACHAIN=$( jq -r ' ."31337".contracts[] | select(.contractType=="gateway") | .address' " $REGISTRY_FILE " )
20+ GATEWAY_BNB=$( jq -r ' ."98".contracts[] | select(.contractType=="gateway") | .address' " $REGISTRY_FILE " )
21+ PRIVATE_KEY=$( jq -r ' .private_keys[0]' ~ /.zetachain/localnet/anvil.json) && echo $PRIVATE_KEY
22+ DEPLOYER_ADDRESS=$( cast wallet address $PRIVATE_KEY )
23+
24+ CONTRACT_ZETACHAIN=$( forge create --broadcast --json test/UniversalRouter.sol:UniversalRouter --rpc-url http://localhost:8545 --private-key $PRIVATE_KEY --constructor-args $DEPLOYER_ADDRESS | jq -r ' .deployedTo' )
25+
26+ CONTRACT_ETHEREUM=$( npx tsx commands deploy --rpc http://localhost:8545 --gateway " $GATEWAY_ETHEREUM " --router " $CONTRACT_ZETACHAIN " --private-key $PRIVATE_KEY | jq -r ' .contractAddress' )
27+
28+ CONTRACT_BNB=$( npx tsx commands deploy --rpc http://localhost:8545 --gateway " $GATEWAY_BNB " --router " $CONTRACT_ZETACHAIN " --private-key $PRIVATE_KEY | jq -r ' .contractAddress' )
29+
30+ npx tsx commands connect --rpc http://localhost:8545 --private-key $PRIVATE_KEY --contract " $CONTRACT_ETHEREUM " --target-chain-id 98 --target-contract " $CONTRACT_BNB "
31+ npx tsx commands connect --rpc http://localhost:8545 --private-key $PRIVATE_KEY --contract " $CONTRACT_BNB " --target-chain-id 11155112 --target-contract " $CONTRACT_ETHEREUM "
32+
33+ # Gas
34+ npx tsx commands message --rpc http://localhost:8545 --private-key $PRIVATE_KEY --contract " $CONTRACT_ETHEREUM " --target-contract " $CONTRACT_BNB " --amount 1 --call-on-revert --revert-address " $CONTRACT_ETHEREUM " --revert-message " hello" --types string --values alice --target-token " $ZRC20_BNB "
35+
36+ npx zetachain localnet check
37+
38+ # Source ERC-20
39+ npx tsx commands message --rpc http://localhost:8545 --private-key $PRIVATE_KEY --contract " $CONTRACT_ETHEREUM " --target-contract " $CONTRACT_BNB " --amount 1 --call-on-revert --revert-address " $CONTRACT_ETHEREUM " --revert-message " hello" --types string --values alice --erc20 " $USDC_ETHEREUM " --target-token " $ZRC20_BNB "
40+
41+ npx zetachain localnet check
42+
43+ yarn zetachain localnet stop
0 commit comments