Skip to content

Commit

Permalink
fix: Generate all addresses, fix launchers (#130)
Browse files Browse the repository at this point in the history
  • Loading branch information
mslipper authored Jan 9, 2025
1 parent 6d6c96e commit 0bc10d1
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 16 deletions.
8 changes: 3 additions & 5 deletions main.star
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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,
Expand Down
1 change: 1 addition & 0 deletions src/cl/hildr/hildr_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ def launch(
existing_cl_clients,
l1_config_env_vars,
sequencer_enabled,
interop_params,
):
# beacon_node_identity_recipe = PostHttpRequestRecipe(
# endpoint="/",
Expand Down
10 changes: 8 additions & 2 deletions src/contracts/contract_deployer.star
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down Expand Up @@ -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),
}
Expand Down
1 change: 1 addition & 0 deletions src/el_cl_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,7 @@ def launch(
all_cl_contexts,
l1_config_env_vars,
False,
interop_params,
)
all_cl_contexts.append(cl_builder_context)

Expand Down
12 changes: 11 additions & 1 deletion src/wait/wait_for_sync.star
Original file line number Diff line number Diff line change
Expand Up @@ -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",
)
14 changes: 6 additions & 8 deletions static_files/scripts/fund.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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))
}

Expand All @@ -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"
Expand All @@ -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 \
Expand All @@ -66,3 +62,5 @@ done
echo "Wallet private key and addresses"
echo "$wallets_json" > "/network-data/wallets.json"
echo "$wallets_json"

wait

0 comments on commit 0bc10d1

Please sign in to comment.