Skip to content

Commit

Permalink
fix: l2 / l1 mismatch
Browse files Browse the repository at this point in the history
  • Loading branch information
praetoriansentry committed Oct 24, 2024
1 parent f7f2aa5 commit 78d261f
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 17 deletions.
1 change: 1 addition & 0 deletions lib/service.star
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ data_availability_package = import_module("./data_availability.star")
def get_contract_setup_addresses(plan, args):
extract = {
"zkevm_bridge_address": "fromjson | .polygonZkEVMBridgeAddress",
"zkevm_bridge_l2_address": "fromjson | .polygonZkEVML2BridgeAddress",
"zkevm_rollup_address": "fromjson | .rollupAddress",
"zkevm_rollup_manager_address": "fromjson | .polygonRollupManagerAddress",
"zkevm_rollup_manager_block_number": "fromjson | .deploymentRollupManagerBlockNumber",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ providers:
label: "L2"
contracts:
global_exit_root_l2_address: "{{.zkevm_global_exit_root_l2_address}}"
zkevm_bridge_address: "{{.zkevm_bridge_address}}"
zkevm_bridge_address: "{{.zkevm_bridge_l2_address}}"

# Observers control what metrics will be recorded. Remove the observer from the
# list to not track them, causing the metrics to be omitted from the metrics
Expand Down
25 changes: 14 additions & 11 deletions static_files/additional_services/tx-spammer-config/bridge.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,17 @@ zkevm_l2_network="1"

# Functions for deploying an ERC20 contract on LX.
deploy_erc20_contract_on_l1() {
deploy_erc20_contract "$ethereum_network" "{{.l1_rpc_url}}"
deploy_erc20_contract "$ethereum_network" "{{.l1_rpc_url}}" "{{.zkevm_bridge_address}}"
}

deploy_erc20_contract_on_l2() {
deploy_erc20_contract "$zkevm_l2_network" "{{.l2_rpc_url}}"
deploy_erc20_contract "$zkevm_l2_network" "{{.l2_rpc_url}}" "{{.zkevm_bridge_l2_address}}"
}

deploy_erc20_contract() {
network="$1"
rpc_url="$2"
bridge_address="$3"

echo "Deploying an ERC20 contract on network $network..."
cast send \
Expand All @@ -56,7 +57,7 @@ deploy_erc20_contract() {
--rpc-url "$rpc_url" \
--legacy \
"$erc20_address" \
"approve(address,uint256)" "{{.zkevm_bridge_address}}" 100
"approve(address,uint256)" "$bridge_address" 100
}

# Function for checking ERC20 balance on LX.
Expand All @@ -76,14 +77,14 @@ get_erc20_balance_on_lx() {
bridge_assets_from_l1_to_l2() {
erc20_address="$(jq -r '.contractAddress' /opt/erc20-network-${ethereum_network}-deployment-receipt.json)"
get_erc20_balance_on_lx "$ethereum_network" "{{.l1_rpc_url}}" "$erc20_address"
bridge_assets_from_lx_to_ly "$ethereum_network" "$zkevm_l2_network" "{{.l1_rpc_url}}" "$erc20_address"
bridge_assets_from_lx_to_ly "$ethereum_network" "$zkevm_l2_network" "{{.l1_rpc_url}}" "$erc20_address" "{{.zkevm_bridge_address}}"
get_erc20_balance_on_lx "$ethereum_network" "{{.l1_rpc_url}}" "$erc20_address"
}

bridge_assets_from_l2_to_l1() {
erc20_address="$(jq -r '.contractAddress' /opt/erc20-network-${zkevm_l2_network}-deployment-receipt.json)"
get_erc20_balance_on_lx "$zkevm_l2_network" "{{.l2_rpc_url}}" "$erc20_address"
bridge_assets_from_lx_to_ly "$zkevm_l2_network" "$ethereum_network" "{{.l2_rpc_url}}" "$erc20_address"
bridge_assets_from_lx_to_ly "$zkevm_l2_network" "$ethereum_network" "{{.l2_rpc_url}}" "$erc20_address" "{{.zkevm_bridge_l2_address}}"
get_erc20_balance_on_lx "$zkevm_l2_network" "{{.l2_rpc_url}}" "$erc20_address"
}

Expand All @@ -92,41 +93,43 @@ bridge_assets_from_lx_to_ly() {
ly_network="$2"
rpc_url="$3"
erc20_contract_address="$4"
bridge_address="$5"

echo "Bridging 10 ERC20 tokens from network $lx_network to network $ly_network..."
cast send \
--private-key "$private_key" \
--rpc-url "$rpc_url" \
--legacy \
"{{.zkevm_bridge_address}}" \
"$bridge_address" \
"bridgeAsset(uint32,address,uint256,address,bool,bytes)" \
"$ly_network" "$destination_address" 10 "$erc20_contract_address" true "0x"

echo; echo "Checking the amount of last updated deposit count to the GER..."
cast call \
--rpc-url "$rpc_url" \
"{{.zkevm_bridge_address}}" \
"$bridge_address" \
"lastUpdatedDepositCount()"
}

# Functions for claiming assets on LX.
claim_assets_on_l1() {
erc20_address="$(jq -r '.contractAddress' /opt/erc20-network-${zkevm_l2_network}-deployment-receipt.json)"
get_erc20_balance_on_lx "$ethereum_network" "{{.l1_rpc_url}}" "$erc20_address"
claim_assets "$ethereum_network" "{{.l1_rpc_url}}"
claim_assets "$ethereum_network" "{{.l1_rpc_url}}" "{{.zkevm_bridge_address}}"
get_erc20_balance_on_lx "$ethereum_network" "{{.l1_rpc_url}}" "$erc20_address"
}

claim_assets_on_l2() {
erc20_address="$(jq -r '.contractAddress' /opt/erc20-network-${ethereum_network}-deployment-receipt.json)"
get_erc20_balance_on_lx "$zkevm_l2_network" "{{.l2_rpc_url}}" "$erc20_address"
claim_assets "$zkevm_l2_network" "{{.l2_rpc_url}}"
claim_assets "$zkevm_l2_network" "{{.l2_rpc_url}}" "{{.zkevm_bridge_l2_address}}"
get_erc20_balance_on_lx "$zkevm_l2_network" "{{.l2_rpc_url}}" "$erc20_address"
}

claim_assets() {
network="$1"
rpc_url="$2"
bridge_address="$3"

# The signature for claiming assets.
claim_sig="claimAsset(bytes32[32],bytes32[32],uint256,bytes32,bytes32,uint32,address,uint32,address,uint256,bytes)"
Expand Down Expand Up @@ -165,15 +168,15 @@ claim_assets() {
echo; echo "Performing an eth call to make sure the bridge claim tx will work..."
cast call \
--rpc-url "$rpc_url" \
"{{.zkevm_bridge_address}}" \
"$bridge_address" \
"$claim_sig" "$in_merkle_proof" "$in_rollup_merkle_proof" "$in_global_index" "$in_main_exit_root" "$in_rollup_exit_root" "$in_orig_net" "$in_orig_addr" "$in_dest_net" "$in_dest_addr" "$in_amount" "$in_metadata"

echo; echo "Publishing the bridge claim tx..."
cast send \
--private-key "$private_key" \
--rpc-url "$rpc_url" \
--legacy \
"{{.zkevm_bridge_address}}" \
"$bridge_address" \
"$claim_sig" "$in_merkle_proof" "$in_rollup_merkle_proof" "$in_global_index" "$in_main_exit_root" "$in_rollup_exit_root" "$in_orig_net" "$in_orig_addr" "$in_dest_net" "$in_dest_addr" "$in_amount" "$in_metadata"
done
}
Expand Down
2 changes: 1 addition & 1 deletion templates/bridge-infra/.env
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ ETHEREUM_ROLLUP_MANAGER_ADDRESS={{.zkevm_rollup_manager_address}}
# POLYGON ZK EVM
POLYGON_ZK_EVM_RPC_URL=/l2rpc
POLYGON_ZK_EVM_EXPLORER_URL={{.zkevm_explorer_url}}
POLYGON_ZK_EVM_BRIDGE_CONTRACT_ADDRESS={{.zkevm_bridge_address}}
POLYGON_ZK_EVM_BRIDGE_CONTRACT_ADDRESS={{.zkevm_bridge_l2_address}}
POLYGON_ZK_EVM_NETWORK_ID=1

# BRIDGE API
Expand Down
2 changes: 1 addition & 1 deletion templates/bridge-infra/bridge-config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ PolygonBridgeAddress = "{{.zkevm_bridge_address}}"
PolygonZkEVMGlobalExitRootAddress = "{{.zkevm_global_exit_root_address}}"
PolygonRollupManagerAddress = "{{.zkevm_rollup_manager_address}}"
PolygonZkEVMAddress = "{{.zkevm_rollup_address}}"
L2PolygonBridgeAddresses = ["{{.zkevm_bridge_address}}"]
L2PolygonBridgeAddresses = ["{{.zkevm_bridge_l2_address}}"]

[ClaimTxManager]
FrequencyToMonitorTxs = "5s"
Expand Down
6 changes: 3 additions & 3 deletions templates/trusted-node/cdk-node-config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ InitialBlock = "{{.zkevm_rollup_manager_block_number}}"
DBPath = "/tmp/claimsponsor"
Enabled = true
SenderAddr = "{{.zkevm_l2_claimtxmanager_address}}"
BridgeAddrL2 = "{{.zkevm_bridge_address}}"
BridgeAddrL2 = "{{.zkevm_bridge_l2_address}}"
MaxGas = 200000
RetryAfterErrorPeriod = "1s"
MaxRetryAttemptsAfterError = -1
Expand Down Expand Up @@ -208,7 +208,7 @@ WaitForNewBlocksPeriod = "3s"
DBPath = "/tmp/lastgersync"
BlockFinality = "LatestBlock"
InitialBlockNum = 0
GlobalExitRootL2Addr = "{{.zkevm_global_exit_root_address}}"
GlobalExitRootL2Addr = "{{.zkevm_global_exit_root_l2_address}}"
RetryAfterErrorPeriod = "1s"
MaxRetryAttemptsAfterError = -1
WaitForNewBlocksPeriod = "1s"
Expand All @@ -218,7 +218,7 @@ DownloadBufferSize = 100
DBPath = "/tmp/bridgel2sync"
BlockFinality = "LatestBlock"
InitialBlockNum = 0
BridgeAddr = "{{.zkevm_bridge_address}}"
BridgeAddr = "{{.zkevm_bridge_l2_address}}"
SyncBlockChunkSize = 100
RetryAfterErrorPeriod = "1s"
MaxRetryAttemptsAfterError = -1
Expand Down

0 comments on commit 78d261f

Please sign in to comment.