diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..c786817 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,13 @@ +# deploy.sh +CHAIN=$1 + +THE_COMPACT_ADDRESS=0x00000000000018DF021Ff2467dF97ff846E09f48 +MAILBOX_ADDRESS=$(cat ~/.hyperlane/chains/$CHAIN/addresses.yaml | yq '.mailbox') +RPC_URL=$(cat ~/.hyperlane/chains/$CHAIN/metadata.yaml | yq '.rpcUrls[0].http') +HYP_KEY=$(gcloud secrets versions access latest --secret "hyperlane-mainnet3-key-deployer" | jq ".privateKey" -c -r) +ARBITER_ADDRESS=$(forge create HyperlaneArbiter --json \ + --rpc-url $RPC_URL \ + --private-key $HYP_KEY \ + --constructor-args $MAILBOX_ADDRESS $THE_COMPACT_ADDRESS \ + | jq -r '.deployedTo') +echo "$CHAIN: $ARBITER_ADDRESS" >> hyperlane-arbiters.yaml diff --git a/enroll.sh b/enroll.sh new file mode 100755 index 0000000..6e34f4e --- /dev/null +++ b/enroll.sh @@ -0,0 +1,18 @@ +# enroll.sh +CHAIN=$1 +CHAINS=$2 + +RPC_URL=$(cat ~/.hyperlane/chains/$CHAIN/metadata.yaml | yq '.rpcUrls[0].http') +HYP_KEY=$(gcloud secrets versions access latest --secret "hyperlane-mainnet3-key-deployer" | jq ".privateKey" -c -r) +ARBITER_ADDRESS=$(cat hyperlane-arbiters.yaml | yq ".$CHAIN") + +# loop over each chain in chains +for DESTINATION in $CHAINS; do + DESTINATION_DOMAIN=$(cat ~/.hyperlane/chains/$DESTINATION/metadata.yaml | yq '.domainId') + ROUTER_ADDRESS=$(cat hyperlane-arbiters.yaml | yq ".$DESTINATION") + echo "Enrolling $DESTINATION on $CHAIN" + cast send $ARBITER_ADDRESS \ + --rpc-url $RPC_URL \ + --private-key $HYP_KEY \ + "enrollRemoteRouter(uint32,bytes32)" $DESTINATION_DOMAIN $(yarn leftpad $ROUTER_ADDRESS) +done diff --git a/hyperlane-arbiters.yaml b/hyperlane-arbiters.yaml new file mode 100644 index 0000000..fc0c7b1 --- /dev/null +++ b/hyperlane-arbiters.yaml @@ -0,0 +1,3 @@ +base: 0x92977f79ec5F085EEB32F464Cadf041aFd6cEEcc +ethereum: 0x7744381d9E068653FDB46a56320466aA16672f49 +optimism: 0x7968d0E0C3cee60921865E0B32fb50276d126DdE diff --git a/verify.sh b/verify.sh new file mode 100755 index 0000000..9cdb5fd --- /dev/null +++ b/verify.sh @@ -0,0 +1,18 @@ +# verify.sh +CHAIN=$1 + +set -x + +THE_COMPACT_ADDRESS=0x00000000000018DF021Ff2467dF97ff846E09f48 +MAILBOX_ADDRESS=$(cat ~/.hyperlane/chains/$CHAIN/addresses.yaml | yq '.mailbox') +ARBITER_ADDRESS=$(cat hyperlane-arbiters.yaml | yq ".$CHAIN") +RPC_URL=$(cat ~/.hyperlane/chains/$CHAIN/metadata.yaml | yq '.rpcUrls[0].http') +ETHERSCAN_API_KEY=$(gcloud secrets versions access latest --secret "explorer-api-keys" | jq -r ".$CHAIN") + +CONSTRUCTOR_ARGS=$(cast abi-encode "constructor(address,address)" $MAILBOX_ADDRESS $THE_COMPACT_ADDRESS) + +forge verify-contract $ARBITER_ADDRESS \ + --rpc-url $RPC_URL \ + --verifier-api-key $ETHERSCAN_API_KEY \ + --constructor-args $CONSTRUCTOR_ARGS \ + --watch