diff --git a/packages/contracts-bedrock/scripts/celo/gen_l2_token_cmds.fish b/packages/contracts-bedrock/scripts/celo/gen_l2_token_cmds.fish new file mode 100755 index 0000000000000..063ac29a34356 --- /dev/null +++ b/packages/contracts-bedrock/scripts/celo/gen_l2_token_cmds.fish @@ -0,0 +1,21 @@ +#!/usr/bin/env fish + +if [ -z "$argv" ]; + echo Create commands to deploy L2 tokens for bridging from Ethereum + echo + echo "Usage: $(status filename) [ ...]" + return +end + +echo +echo "Commands to deploy L2 tokens for bridging from Ethereum:" +echo + +set -x ETH_RPC_URL https://ethereum-rpc.publicnode.com + +for address in $argv + set symbol (cast call $address "symbol() returns (string)" --json | jq -r '.[0]') + set name (cast call $address "name() returns (string)" --json | jq -r '.[0]') + set decimals (cast call $address "decimals() returns (uint256)" --json | jq -r '.[0]') + echo cast send 0x4200000000000000000000000000000000000012 "\"createOptimismMintableERC20WithDecimals(address,string,string,uint8)\"" $address "\"$name (Celo native bridge)\"" \"$symbol\" $decimals --private-key \$PRIVKEY +end diff --git a/packages/contracts-bedrock/scripts/celo/verify_token_blockscout.sh b/packages/contracts-bedrock/scripts/celo/verify_token_blockscout.sh new file mode 100755 index 0000000000000..e43cc053a6d0d --- /dev/null +++ b/packages/contracts-bedrock/scripts/celo/verify_token_blockscout.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +if [ -z "$*" ]; then + echo "Verify L2 bridged tokens on Blockscout" + echo + echo "Usage: $0 [ ...]" + exit 1 +fi + +for BRIDGED_TOKEN in "$@"; do + forge verify-contract \ + --verifier=blockscout \ + --verifier-url=https://celo.blockscout.com/api/ \ + "$BRIDGED_TOKEN" \ + src/universal/OptimismMintableERC20.sol:OptimismMintableERC20 +done diff --git a/packages/contracts-bedrock/scripts/celo/verify_token_celoscan.sh b/packages/contracts-bedrock/scripts/celo/verify_token_celoscan.sh new file mode 100755 index 0000000000000..9e1e23a078b4b --- /dev/null +++ b/packages/contracts-bedrock/scripts/celo/verify_token_celoscan.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +if [ -z "$*" ]; then + echo "Verify L2 bridged tokens on Celoscan" + echo + echo "Usage: $0 [ ...]" + exit 1 +fi + +for BRIDGED_TOKEN in "$@"; do + # cast_call
+ function cast_call() { + cast call --json --rpc-url https://forno.celo.org "$1" "$2" | jq -r ".[0]" + } + + REMOTE_TOKEN=$(cast_call "$BRIDGED_TOKEN" "REMOTE_TOKEN()(address)") + NAME=$(cast_call "$BRIDGED_TOKEN" "name()(string)") + SYMBOL=$(cast_call "$BRIDGED_TOKEN" "symbol()(string)") + DECIMALS=$(cast_call "$BRIDGED_TOKEN" "decimals()(uint8)") + + CONSTRUCTOR_ARGS=$(cast abi-encode "constructor(address,address,string,string,uint8)" 0x4200000000000000000000000000000000000010 "$REMOTE_TOKEN" "$NAME" "$SYMBOL" "$DECIMALS") + CONSTRUCTOR_ARGS=${CONSTRUCTOR_ARGS#0x} + + forge verify-contract \ + --verifier=etherscan \ + --verifier-url=https://api.celoscan.io/api/ \ + --constructor-args="$CONSTRUCTOR_ARGS" \ + --skip-is-verified-check \ + "$BRIDGED_TOKEN" \ + src/universal/OptimismMintableERC20.sol:OptimismMintableERC20 +done