|
| 1 | +hex = import_module("../hex/hex.star") |
| 2 | +service_package = import_module("../../lib/service.star") |
| 3 | +wallet_module = import_module("../wallet/wallet.star") |
| 4 | + |
| 5 | +TEST_RUNNER_IMAGE = "leovct/e2e:454aadc" # https://github.com/agglayer/e2e/commit/454aadcc4008a2e95b0888521d770149d60ec6c1 |
| 6 | + |
| 7 | + |
| 8 | +def run(plan, args, contract_setup_addresses, deploy_optimism_rollup): |
| 9 | + l1_rpc_url = args.get("mitm_rpc_url").get("agglayer", args.get("l1_rpc_url")) |
| 10 | + |
| 11 | + # Note: Getting values this way is not clean at all!!! |
| 12 | + bridge_service_url = "" |
| 13 | + l2_rpc_url = "" |
| 14 | + l2_bridge_address = "" |
| 15 | + if deploy_optimism_rollup: |
| 16 | + # Bridge service url. |
| 17 | + bridge_service_name = "sovereign-bridge-service{}".format( |
| 18 | + args.get("deployment_suffix") |
| 19 | + ) |
| 20 | + bridge_service = plan.get_service(bridge_service_name) |
| 21 | + bridge_service_url = "http://{}:{}".format( |
| 22 | + bridge_service.name, |
| 23 | + bridge_service.ports.get("rpc").number, |
| 24 | + ) |
| 25 | + |
| 26 | + # L2 rpc url. |
| 27 | + op_el_rpc_name = "op-el-1-op-geth-op-node{}".format( |
| 28 | + args.get("deployment_suffix") |
| 29 | + ) |
| 30 | + op_el_rpc_service = plan.get_service(op_el_rpc_name) |
| 31 | + l2_rpc_url = "http://{}:{}".format( |
| 32 | + op_el_rpc_service.name, |
| 33 | + op_el_rpc_service.ports.get("rpc").number, |
| 34 | + ) |
| 35 | + |
| 36 | + # L2 bridge contract address. |
| 37 | + l2_bridge_address = contract_setup_addresses.get("sovereign_bridge_proxy_addr") |
| 38 | + else: |
| 39 | + # Bridge service url. |
| 40 | + bridge_service_name = "zkevm-bridge-service{}".format( |
| 41 | + args.get("deployment_suffix") |
| 42 | + ) |
| 43 | + bridge_service = plan.get_service(bridge_service_name) |
| 44 | + bridge_service_url = "http://{}:{}".format( |
| 45 | + bridge_service.name, |
| 46 | + bridge_service.ports.get("rpc").number, |
| 47 | + ) |
| 48 | + |
| 49 | + # L2 rpc url. |
| 50 | + l2_rpc_url = service_package.get_l2_rpc_url(plan, args).http |
| 51 | + |
| 52 | + # L2 bridge contract address. |
| 53 | + l2_bridge_address = contract_setup_addresses.get("zkevm_bridge_l2_address") |
| 54 | + |
| 55 | + # Generate a new wallet and fund it on L1 and L2. |
| 56 | + funder_private_key = args.get("zkevm_l2_admin_private_key") |
| 57 | + wallet = wallet_module.new(plan) |
| 58 | + wallet_module.fund( |
| 59 | + plan, |
| 60 | + address=wallet.address, |
| 61 | + rpc_url=l1_rpc_url, |
| 62 | + funder_private_key=funder_private_key, |
| 63 | + ) |
| 64 | + wallet_module.fund( |
| 65 | + plan, |
| 66 | + address=wallet.address, |
| 67 | + rpc_url=l2_rpc_url, |
| 68 | + funder_private_key=funder_private_key, |
| 69 | + ) |
| 70 | + |
| 71 | + plan.add_service( |
| 72 | + name="test-runner", |
| 73 | + config=ServiceConfig( |
| 74 | + image=TEST_RUNNER_IMAGE, |
| 75 | + env_vars={ |
| 76 | + # For now, we've only defined variables used by `tests/agglayer/bridges.bats`. |
| 77 | + # https://github.com/agglayer/e2e/blob/jhilliard/gas-token-test/tests/agglayer/bridges.bats |
| 78 | + # Agglayer and bridge. |
| 79 | + "AGGLAYER_RPC_URL": args.get("agglayer_readrpc_url"), |
| 80 | + "BRIDGE_SERVICE_URL": bridge_service_url, |
| 81 | + "CLAIMTXMANAGER_ADDR": args.get("zkevm_l2_claimtxmanager_address"), |
| 82 | + # L1. |
| 83 | + "L1_PRIVATE_KEY": wallet.private_key, |
| 84 | + "L1_RPC_URL": l1_rpc_url, |
| 85 | + "L1_BRIDGE_ADDR": contract_setup_addresses.get("zkevm_bridge_address"), |
| 86 | + # L2. |
| 87 | + "L2_PRIVATE_KEY": wallet.private_key, |
| 88 | + "L2_RPC_URL": l2_rpc_url, |
| 89 | + "L2_BRIDGE_ADDR": l2_bridge_address, |
| 90 | + }, |
| 91 | + entrypoint=["bash", "-c"], |
| 92 | + cmd=["sleep infinity"], |
| 93 | + ), |
| 94 | + ) |
0 commit comments