diff --git a/main.star b/main.star index fe00ae2c..94d51d9b 100644 --- a/main.star +++ b/main.star @@ -58,6 +58,9 @@ def run(plan, args): "L1_WS_URL": external_l1_args.el_ws_url, "L1_CHAIN_ID": external_l1_args.network_id, } + + plan.print("Waiting for network to sync") + wait_for_sync.wait_for_sync(plan, l1_config_env_vars) else: plan.print("Deploying a local L1") l1 = ethereum_package.run(plan, ethereum_args) @@ -74,13 +77,8 @@ def run(plan, args): l1_config_env_vars = get_l1_config( all_l1_participants, l1_network_params, l1_network_id ) - - if l1_network == "kurtosis": plan.print("Waiting for L1 to start up") wait_for_sync.wait_for_startup(plan, l1_config_env_vars) - else: - plan.print("Waiting for network to sync") - wait_for_sync.wait_for_sync(plan, l1_config_env_vars) deployment_output = contract_deployer.deploy_contracts( plan, diff --git a/src/cl/hildr/hildr_launcher.star b/src/cl/hildr/hildr_launcher.star index 39b4dbd3..b169c07f 100644 --- a/src/cl/hildr/hildr_launcher.star +++ b/src/cl/hildr/hildr_launcher.star @@ -73,6 +73,7 @@ def launch( existing_cl_clients, l1_config_env_vars, sequencer_enabled, + interop_params, ): # beacon_node_identity_recipe = PostHttpRequestRecipe( # endpoint="/", diff --git a/src/contracts/contract_deployer.star b/src/contracts/contract_deployer.star index adaa9f80..61be674b 100644 --- a/src/contracts/contract_deployer.star +++ b/src/contracts/contract_deployer.star @@ -8,6 +8,10 @@ FUND_SCRIPT_FILEPATH = "../../static_files/scripts" utils = import_module("../util.star") +ethereum_package_genesis_constants = import_module( + "github.com/ethpandaops/ethereum-package/src/prelaunch_data_generator/genesis_constants/genesis_constants.star" +) + CANNED_VALUES = ( ("int", "eip1559Denominator", 50), @@ -48,12 +52,14 @@ def deploy_contracts(plan, priv_key, l1_config_env_vars, optimism_args, l1_netwo name="op-deployer-fund-script", ) - collect_fund = plan.run_sh( + plan.run_sh( name="op-deployer-fund", description="Collect keys, and fund addresses", image=utils.DEPLOYMENT_UTILS_IMAGE, env_vars={ - "PRIVATE_KEY": str(priv_key), + "PRIVATE_KEY": ethereum_package_genesis_constants.PRE_FUNDED_ACCOUNTS[ + 19 + ].private_key, "FUND_VALUE": "10ether", "L1_NETWORK": str(l1_network), } diff --git a/src/el_cl_launcher.star b/src/el_cl_launcher.star index 36588f3b..2bedd199 100644 --- a/src/el_cl_launcher.star +++ b/src/el_cl_launcher.star @@ -312,6 +312,7 @@ def launch( all_cl_contexts, l1_config_env_vars, False, + interop_params, ) all_cl_contexts.append(cl_builder_context) diff --git a/src/wait/wait_for_sync.star b/src/wait/wait_for_sync.star index 8448afc5..8f731f2e 100644 --- a/src/wait/wait_for_sync.star +++ b/src/wait/wait_for_sync.star @@ -26,10 +26,20 @@ def wait_for_sync(plan, l1_config_env_vars): def wait_for_startup(plan, l1_config_env_vars): plan.run_sh( - name="wait-for-l1-startup", + name="wait-for-l1-consensus-startup", description="Wait for L1 to start up - can take up to 2 minutes", image=utils.DEPLOYMENT_UTILS_IMAGE, env_vars=l1_config_env_vars, run="while true; do sleep 5; echo 'L1 Chain is starting up'; if [ \"$(curl -s $CL_RPC_URL/eth/v1/beacon/headers/ | jq -r '.data[0].header.message.slot')\" != \"0\" ]; then echo 'L1 Chain has started!'; break; fi; done", wait="300s", ) + + # wait for block 3 to avoid transaction indexing in progress errors + plan.run_sh( + name="wait-for-l1-execution-startup", + description="Wait for L1 execution to start up - can take up to 2 minutes", + image=utils.DEPLOYMENT_UTILS_IMAGE, + env_vars=l1_config_env_vars, + run='while true; do sleep 5; current_head=$(cast bn --rpc-url=$L1_RPC_URL); echo "L1 Execution is starting up"; if [ "$current_head" -ge "3" ]; then echo "L1 Execution has started!"; break; fi; done', + wait="5m", + ) diff --git a/static_files/scripts/fund.sh b/static_files/scripts/fund.sh index 760d5ce3..a13694a7 100644 --- a/static_files/scripts/fund.sh +++ b/static_files/scripts/fund.sh @@ -16,7 +16,7 @@ write_keyfile() { } send() { - cast send $1 --value "$FUND_VALUE" --private-key "$PRIVATE_KEY" --nonce "$nonce" --async + cast send $1 --value "$FUND_VALUE" --private-key "$PRIVATE_KEY" --timeout 60 --nonce "$nonce" & nonce=$((nonce+1)) } @@ -28,11 +28,6 @@ for chain_id in "${chain_ids[@]}"; do role="${roles[$index]}" role_idx=$((index+1)) - # Skip wallet addrs for anything other Proposer/Batcher/Sequencer/Challenger if not on local L1 - if [[ "${L1_NETWORK}" != "local" && $role_idx -gt 4 ]]; then - continue - fi - private_key=$(cast wallet private-key "$mnemonic" "m/44'/60'/2'/$chain_id/$role_idx") address=$(cast wallet address "${private_key}") write_keyfile "${address}" "${private_key}" "${role}-$chain_id" @@ -46,9 +41,10 @@ for chain_id in "${chain_ids[@]}"; do done # Add the L1 and L2 faucet information to each chain's wallet data + # Use chain 20 from the ethereum_package to prevent conflicts chain_wallets=$(echo "$chain_wallets" | jq \ - --arg addr "$addr" \ - --arg private_key "0x$PRIVATE_KEY" \ + --arg addr "0xafF0CA253b97e54440965855cec0A8a2E2399896" \ + --arg private_key "0x04b9f63ecf84210c5366c66d68fa1f5da1fa4f634fad6dfc86178e4d79ff9e59" \ '.["l1FaucetPrivateKey"] = $private_key | .["l1FaucetAddress"] = $addr') chain_wallets=$(echo "$chain_wallets" | jq \ @@ -66,3 +62,5 @@ done echo "Wallet private key and addresses" echo "$wallets_json" > "/network-data/wallets.json" echo "$wallets_json" + +wait