@aztec/end-to-end 0.0.1-commit.9ef841308 → 0.0.1-commit.a4600f49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/README.md +217 -14
  2. package/dest/automine/automine_test_context.d.ts +85 -0
  3. package/dest/automine/automine_test_context.d.ts.map +1 -0
  4. package/dest/automine/automine_test_context.js +98 -0
  5. package/dest/automine/contracts/fixtures/storage_proof_fetcher.d.ts +2 -0
  6. package/dest/automine/contracts/fixtures/storage_proof_fetcher.d.ts.map +1 -0
  7. package/dest/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fixture.d.ts +1 -1
  8. package/dest/automine/contracts/fixtures/storage_proof_fixture.d.ts.map +1 -0
  9. package/dest/automine/delivery/onchain_delivery_harness.d.ts +17 -0
  10. package/dest/automine/delivery/onchain_delivery_harness.d.ts.map +1 -0
  11. package/dest/automine/delivery/onchain_delivery_harness.js +123 -0
  12. package/dest/automine/token/blacklist_token_contract_test.d.ts +49 -0
  13. package/dest/automine/token/blacklist_token_contract_test.d.ts.map +1 -0
  14. package/dest/{e2e_blacklist_token_contract → automine/token}/blacklist_token_contract_test.js +23 -36
  15. package/dest/automine/token/token_contract_test.d.ts +40 -0
  16. package/dest/automine/token/token_contract_test.d.ts.map +1 -0
  17. package/dest/{e2e_token_contract → automine/token}/token_contract_test.js +24 -39
  18. package/dest/automine/token/token_test_helpers.d.ts +73 -0
  19. package/dest/automine/token/token_test_helpers.d.ts.map +1 -0
  20. package/dest/automine/token/token_test_helpers.js +97 -0
  21. package/dest/bench/client_flows/benchmark.d.ts +15 -1
  22. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  23. package/dest/bench/client_flows/benchmark.js +19 -0
  24. package/dest/bench/client_flows/client_flows_benchmark.d.ts +5 -5
  25. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  26. package/dest/bench/client_flows/client_flows_benchmark.js +43 -27
  27. package/dest/bench/client_flows/data_extractor.js +1 -0
  28. package/dest/bench/utils.d.ts +3 -3
  29. package/dest/bench/utils.d.ts.map +1 -1
  30. package/dest/bench/utils.js +97 -6
  31. package/dest/composed/ha/ha_full_setup.d.ts +77 -0
  32. package/dest/composed/ha/ha_full_setup.d.ts.map +1 -0
  33. package/dest/composed/ha/ha_full_setup.js +383 -0
  34. package/dest/composed/web3signer/multi_validator_keystore_utils.d.ts +12 -0
  35. package/dest/composed/web3signer/multi_validator_keystore_utils.d.ts.map +1 -0
  36. package/dest/fixtures/authwit_proxy.d.ts +1 -1
  37. package/dest/fixtures/authwit_proxy.d.ts.map +1 -1
  38. package/dest/fixtures/authwit_proxy.js +4 -0
  39. package/dest/fixtures/e2e_prover_test.d.ts +12 -9
  40. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  41. package/dest/fixtures/e2e_prover_test.js +50 -30
  42. package/dest/fixtures/fixtures.d.ts +78 -1
  43. package/dest/fixtures/fixtures.d.ts.map +1 -1
  44. package/dest/fixtures/fixtures.js +78 -0
  45. package/dest/fixtures/ha_setup.d.ts +4 -4
  46. package/dest/fixtures/ha_setup.d.ts.map +1 -1
  47. package/dest/fixtures/ha_setup.js +5 -2
  48. package/dest/fixtures/index.d.ts +2 -1
  49. package/dest/fixtures/index.d.ts.map +1 -1
  50. package/dest/fixtures/index.js +1 -0
  51. package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts +25 -0
  52. package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts.map +1 -0
  53. package/dest/fixtures/schnorr_hardcoded_account_contract.js +37 -0
  54. package/dest/fixtures/setup.d.ts +71 -41
  55. package/dest/fixtures/setup.d.ts.map +1 -1
  56. package/dest/fixtures/setup.js +277 -198
  57. package/dest/fixtures/setup_p2p_test.d.ts +10 -6
  58. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  59. package/dest/fixtures/setup_p2p_test.js +11 -11
  60. package/dest/fixtures/timing.d.ts +42 -0
  61. package/dest/fixtures/timing.d.ts.map +1 -0
  62. package/dest/fixtures/timing.js +72 -0
  63. package/dest/fixtures/token_utils.d.ts +22 -4
  64. package/dest/fixtures/token_utils.d.ts.map +1 -1
  65. package/dest/fixtures/token_utils.js +21 -1
  66. package/dest/fixtures/utils.d.ts +2 -2
  67. package/dest/fixtures/utils.d.ts.map +1 -1
  68. package/dest/fixtures/utils.js +1 -1
  69. package/dest/fixtures/wait_helpers.d.ts +135 -0
  70. package/dest/fixtures/wait_helpers.d.ts.map +1 -0
  71. package/dest/fixtures/wait_helpers.js +154 -0
  72. package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
  73. package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
  74. package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
  75. package/dest/forward-compatibility/wallet_service.d.ts +3 -0
  76. package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
  77. package/dest/forward-compatibility/wallet_service.js +109 -0
  78. package/dest/install_legacy_contracts.d.cts +10 -0
  79. package/dest/install_legacy_contracts.d.cts.map +1 -0
  80. package/dest/legacy-jest-resolver.d.cts +3 -0
  81. package/dest/legacy-jest-resolver.d.cts.map +1 -0
  82. package/dest/multi-node/block-production/setup.d.ts +97 -0
  83. package/dest/multi-node/block-production/setup.d.ts.map +1 -0
  84. package/dest/multi-node/block-production/setup.js +158 -0
  85. package/dest/multi-node/governance/setup.d.ts +67 -0
  86. package/dest/multi-node/governance/setup.d.ts.map +1 -0
  87. package/dest/multi-node/governance/setup.js +126 -0
  88. package/dest/multi-node/multi_node_test_context.d.ts +212 -0
  89. package/dest/multi-node/multi_node_test_context.d.ts.map +1 -0
  90. package/dest/multi-node/multi_node_test_context.js +347 -0
  91. package/dest/multi-node/slashing/inactivity_setup.d.ts +27 -0
  92. package/dest/multi-node/slashing/inactivity_setup.d.ts.map +1 -0
  93. package/dest/multi-node/slashing/inactivity_setup.js +111 -0
  94. package/dest/multi-node/slashing/setup.d.ts +167 -0
  95. package/dest/multi-node/slashing/setup.d.ts.map +1 -0
  96. package/dest/multi-node/slashing/setup.js +275 -0
  97. package/dest/{e2e_p2p → p2p}/p2p_network.d.ts +19 -10
  98. package/dest/p2p/p2p_network.d.ts.map +1 -0
  99. package/dest/{e2e_p2p → p2p}/p2p_network.js +81 -38
  100. package/dest/p2p/reqresp/utils.d.ts +19 -0
  101. package/dest/p2p/reqresp/utils.d.ts.map +1 -0
  102. package/dest/{e2e_p2p → p2p}/reqresp/utils.js +32 -29
  103. package/dest/p2p/shared.d.ts +72 -0
  104. package/dest/p2p/shared.d.ts.map +1 -0
  105. package/dest/p2p/shared.js +212 -0
  106. package/dest/shared/cross_chain_test_harness.d.ts +6 -4
  107. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  108. package/dest/shared/cross_chain_test_harness.js +25 -20
  109. package/dest/shared/gas_portal_test_harness.d.ts +8 -5
  110. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  111. package/dest/shared/gas_portal_test_harness.js +24 -12
  112. package/dest/shared/submit-transactions.d.ts +1 -1
  113. package/dest/shared/submit-transactions.d.ts.map +1 -1
  114. package/dest/shared/submit-transactions.js +12 -5
  115. package/dest/shared/timing_env.d.js +5 -0
  116. package/dest/shared/timing_env.js +365 -0
  117. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  118. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  119. package/dest/shared/uniswap_l1_l2.js +50 -37
  120. package/dest/shared/wait_for_l1_to_l2_message.d.ts +13 -0
  121. package/dest/shared/wait_for_l1_to_l2_message.d.ts.map +1 -0
  122. package/dest/shared/wait_for_l1_to_l2_message.js +10 -0
  123. package/dest/simulators/lending_simulator.d.ts +10 -3
  124. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  125. package/dest/simulators/lending_simulator.js +24 -12
  126. package/dest/single-node/cross-chain/cross_chain_messaging_test.d.ts +75 -0
  127. package/dest/single-node/cross-chain/cross_chain_messaging_test.d.ts.map +1 -0
  128. package/dest/single-node/cross-chain/cross_chain_messaging_test.js +209 -0
  129. package/dest/single-node/cross-chain/message_test_helpers.d.ts +38 -0
  130. package/dest/single-node/cross-chain/message_test_helpers.d.ts.map +1 -0
  131. package/dest/single-node/cross-chain/message_test_helpers.js +70 -0
  132. package/dest/{e2e_fees → single-node/fees}/bridging_race.notest.d.ts +1 -1
  133. package/dest/single-node/fees/bridging_race.notest.d.ts.map +1 -0
  134. package/dest/{e2e_fees → single-node/fees}/bridging_race.notest.js +17 -4
  135. package/dest/single-node/fees/fees_test.d.ts +93 -0
  136. package/dest/single-node/fees/fees_test.d.ts.map +1 -0
  137. package/dest/{e2e_fees → single-node/fees}/fees_test.js +78 -59
  138. package/dest/single-node/l1-reorgs/setup.d.ts +42 -0
  139. package/dest/single-node/l1-reorgs/setup.d.ts.map +1 -0
  140. package/dest/single-node/l1-reorgs/setup.js +57 -0
  141. package/dest/single-node/partial-proofs/setup.d.ts +5 -0
  142. package/dest/single-node/partial-proofs/setup.d.ts.map +1 -0
  143. package/dest/single-node/partial-proofs/setup.js +5 -0
  144. package/dest/single-node/proving/setup.d.ts +5 -0
  145. package/dest/single-node/proving/setup.d.ts.map +1 -0
  146. package/dest/single-node/proving/setup.js +5 -0
  147. package/dest/single-node/recovery/setup.d.ts +5 -0
  148. package/dest/single-node/recovery/setup.d.ts.map +1 -0
  149. package/dest/single-node/recovery/setup.js +5 -0
  150. package/dest/single-node/setup.d.ts +49 -0
  151. package/dest/single-node/setup.d.ts.map +1 -0
  152. package/dest/single-node/setup.js +56 -0
  153. package/dest/single-node/single_node_test_context.d.ts +360 -0
  154. package/dest/single-node/single_node_test_context.d.ts.map +1 -0
  155. package/dest/single-node/single_node_test_context.js +833 -0
  156. package/dest/spartan/setup_test_wallets.d.ts +1 -1
  157. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  158. package/dest/spartan/setup_test_wallets.js +26 -42
  159. package/dest/spartan/tx_metrics.d.ts +27 -4
  160. package/dest/spartan/tx_metrics.d.ts.map +1 -1
  161. package/dest/spartan/tx_metrics.js +105 -20
  162. package/dest/spartan/utils/config.d.ts +9 -35
  163. package/dest/spartan/utils/config.d.ts.map +1 -1
  164. package/dest/spartan/utils/nodes.js +2 -2
  165. package/dest/test-wallet/test_wallet.d.ts +38 -9
  166. package/dest/test-wallet/test_wallet.d.ts.map +1 -1
  167. package/dest/test-wallet/test_wallet.js +167 -57
  168. package/dest/test-wallet/utils.d.ts +38 -3
  169. package/dest/test-wallet/utils.d.ts.map +1 -1
  170. package/dest/test-wallet/utils.js +65 -10
  171. package/dest/test-wallet/wallet_worker_script.js +10 -2
  172. package/dest/test-wallet/worker_wallet.d.ts +7 -6
  173. package/dest/test-wallet/worker_wallet.d.ts.map +1 -1
  174. package/dest/test-wallet/worker_wallet.js +6 -2
  175. package/dest/test-wallet/worker_wallet_schema.d.ts +3 -273
  176. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -1
  177. package/dest/test-wallet/worker_wallet_schema.js +14 -2
  178. package/package.json +47 -42
  179. package/src/automine/README.md +60 -0
  180. package/src/automine/automine_test_context.ts +153 -0
  181. package/src/automine/delivery/onchain_delivery_harness.ts +177 -0
  182. package/src/{e2e_blacklist_token_contract → automine/token}/blacklist_token_contract_test.ts +24 -47
  183. package/src/{e2e_token_contract → automine/token}/token_contract_test.ts +25 -48
  184. package/src/automine/token/token_test_helpers.ts +138 -0
  185. package/src/bench/client_flows/benchmark.ts +21 -0
  186. package/src/bench/client_flows/client_flows_benchmark.ts +75 -54
  187. package/src/bench/client_flows/data_extractor.ts +1 -0
  188. package/src/bench/utils.ts +110 -6
  189. package/src/composed/ha/ha_full_setup.ts +466 -0
  190. package/src/fixtures/authwit_proxy.ts +4 -0
  191. package/src/fixtures/e2e_prover_test.ts +59 -48
  192. package/src/fixtures/fixtures.ts +98 -0
  193. package/src/fixtures/ha_setup.ts +11 -5
  194. package/src/fixtures/index.ts +1 -0
  195. package/src/fixtures/schnorr_hardcoded_account_contract.ts +49 -0
  196. package/src/fixtures/setup.ts +336 -255
  197. package/src/fixtures/setup_p2p_test.ts +15 -11
  198. package/src/fixtures/timing.ts +97 -0
  199. package/src/fixtures/token_utils.ts +39 -4
  200. package/src/fixtures/utils.ts +2 -3
  201. package/src/fixtures/wait_helpers.ts +333 -0
  202. package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
  203. package/src/forward-compatibility/wallet_service.ts +106 -0
  204. package/src/guides/up_quick_start.sh +5 -2
  205. package/src/infra/README.md +12 -0
  206. package/src/install_legacy_contracts.cjs +75 -0
  207. package/src/legacy-jest-resolver.cjs +112 -0
  208. package/src/multi-node/README.md +95 -0
  209. package/src/multi-node/block-production/setup.ts +272 -0
  210. package/src/multi-node/governance/setup.ts +172 -0
  211. package/src/multi-node/multi_node_test_context.ts +447 -0
  212. package/src/multi-node/slashing/inactivity_setup.ts +139 -0
  213. package/src/multi-node/slashing/setup.ts +433 -0
  214. package/src/p2p/README.md +78 -0
  215. package/src/{e2e_p2p → p2p}/p2p_network.ts +92 -49
  216. package/src/{e2e_p2p → p2p}/reqresp/utils.ts +35 -28
  217. package/src/p2p/shared.ts +329 -0
  218. package/src/shared/cross_chain_test_harness.ts +35 -14
  219. package/src/shared/gas_portal_test_harness.ts +32 -14
  220. package/src/shared/submit-transactions.ts +13 -5
  221. package/src/shared/timing_env.d.mts +39 -0
  222. package/src/shared/timing_env.mjs +363 -0
  223. package/src/shared/uniswap_l1_l2.ts +80 -43
  224. package/src/shared/wait_for_l1_to_l2_message.ts +23 -0
  225. package/src/simulators/lending_simulator.ts +28 -14
  226. package/src/single-node/README.md +60 -0
  227. package/src/single-node/cross-chain/cross_chain_messaging_test.ts +302 -0
  228. package/src/single-node/cross-chain/message_test_helpers.ts +125 -0
  229. package/src/{e2e_fees → single-node/fees}/bridging_race.notest.ts +19 -5
  230. package/src/{e2e_fees → single-node/fees}/fees_test.ts +103 -66
  231. package/src/single-node/l1-reorgs/setup.ts +93 -0
  232. package/src/single-node/partial-proofs/setup.ts +8 -0
  233. package/src/single-node/proving/setup.ts +15 -0
  234. package/src/single-node/recovery/setup.ts +8 -0
  235. package/src/single-node/setup.ts +63 -0
  236. package/src/single-node/single_node_test_context.ts +1041 -0
  237. package/src/spartan/setup_test_wallets.ts +21 -36
  238. package/src/spartan/tx_metrics.ts +107 -23
  239. package/src/spartan/utils/nodes.ts +2 -2
  240. package/src/test-wallet/test_wallet.ts +185 -57
  241. package/src/test-wallet/utils.ts +104 -11
  242. package/src/test-wallet/wallet_worker_script.ts +8 -2
  243. package/src/test-wallet/worker_wallet.ts +12 -11
  244. package/src/test-wallet/worker_wallet_schema.ts +4 -3
  245. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +0 -55
  246. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +0 -1
  247. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +0 -47
  248. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +0 -1
  249. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +0 -129
  250. package/dest/e2e_deploy_contract/deploy_test.d.ts +0 -37
  251. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +0 -1
  252. package/dest/e2e_deploy_contract/deploy_test.js +0 -50
  253. package/dest/e2e_epochs/epochs_test.d.ts +0 -104
  254. package/dest/e2e_epochs/epochs_test.d.ts.map +0 -1
  255. package/dest/e2e_epochs/epochs_test.js +0 -389
  256. package/dest/e2e_fees/bridging_race.notest.d.ts.map +0 -1
  257. package/dest/e2e_fees/fees_test.d.ts +0 -88
  258. package/dest/e2e_fees/fees_test.d.ts.map +0 -1
  259. package/dest/e2e_l1_publisher/write_json.d.ts +0 -11
  260. package/dest/e2e_l1_publisher/write_json.d.ts.map +0 -1
  261. package/dest/e2e_l1_publisher/write_json.js +0 -56
  262. package/dest/e2e_multi_validator/utils.d.ts +0 -12
  263. package/dest/e2e_multi_validator/utils.d.ts.map +0 -1
  264. package/dest/e2e_nested_contract/nested_contract_test.d.ts +0 -26
  265. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +0 -1
  266. package/dest/e2e_nested_contract/nested_contract_test.js +0 -54
  267. package/dest/e2e_p2p/inactivity_slash_test.d.ts +0 -31
  268. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +0 -1
  269. package/dest/e2e_p2p/inactivity_slash_test.js +0 -136
  270. package/dest/e2e_p2p/p2p_network.d.ts.map +0 -1
  271. package/dest/e2e_p2p/reqresp/utils.d.ts +0 -22
  272. package/dest/e2e_p2p/reqresp/utils.d.ts.map +0 -1
  273. package/dest/e2e_p2p/shared.d.ts +0 -66
  274. package/dest/e2e_p2p/shared.d.ts.map +0 -1
  275. package/dest/e2e_p2p/shared.js +0 -212
  276. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +0 -2
  277. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +0 -1
  278. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +0 -1
  279. package/dest/e2e_token_contract/token_contract_test.d.ts +0 -44
  280. package/dest/e2e_token_contract/token_contract_test.d.ts.map +0 -1
  281. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +0 -193
  282. package/src/e2e_deploy_contract/deploy_test.ts +0 -85
  283. package/src/e2e_epochs/epochs_test.ts +0 -499
  284. package/src/e2e_l1_publisher/write_json.ts +0 -77
  285. package/src/e2e_nested_contract/nested_contract_test.ts +0 -75
  286. package/src/e2e_p2p/inactivity_slash_test.ts +0 -179
  287. package/src/e2e_p2p/shared.ts +0 -343
  288. /package/dest/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fetcher.js +0 -0
  289. /package/dest/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fixture.js +0 -0
  290. /package/dest/{e2e_multi_validator/utils.js → composed/web3signer/multi_validator_keystore_utils.js} +0 -0
  291. /package/src/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof.json +0 -0
  292. /package/src/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fetcher.ts +0 -0
  293. /package/src/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fixture.ts +0 -0
  294. /package/src/{e2e_multi_validator/utils.ts → composed/web3signer/multi_validator_keystore_utils.ts} +0 -0
@@ -42,4 +42,4 @@ export type WorkerWalletWrapper = {
42
42
  cleanup: () => Promise<void>;
43
43
  };
44
44
  export declare function createWorkerWalletClient(nodeUrl: string, proverEnabled: boolean, logger: Logger): Promise<WorkerWalletWrapper>;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfdGVzdF93YWxsZXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BhcnRhbi9zZXR1cF90ZXN0X3dhbGxldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXpELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUE2QixNQUFNLHFCQUFxQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBb0MsTUFBTSxzQkFBc0IsQ0FBQztBQUl4RixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFPL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxNQUFNLFdBQVcsWUFBWTtJQUMzQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3pCLGFBQWEsRUFBRSxhQUFhLENBQUM7SUFDN0IsaUJBQWlCLEVBQUUsWUFBWSxDQUFDO0lBQ2hDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0lBQy9CLFlBQVksRUFBRSxZQUFZLENBQUM7Q0FDNUI7QUFFRCxNQUFNLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUMxQyxZQUFZLEVBQ1osY0FBYyxHQUFHLGVBQWUsR0FBRyxXQUFXLEdBQUcsbUJBQW1CLENBQ3JFLENBQUM7QUFNRix3QkFBc0IsMkJBQTJCLENBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQ2YsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sR0FDYixPQUFPLENBQUMsWUFBWSxDQUFDLENBeUJ2QjtBQUVELHdCQUFzQixxQ0FBcUMsQ0FDekQsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLENBK0N2QjtBQXVIRCx3QkFBc0IsMkJBQTJCLENBQy9DLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QscUJBQXFCLFNBQUksRUFDekIsSUFBSSxDQUFDLEVBQUU7SUFBRSxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUE7Q0FBRSxHQUMvQixPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FpQ3BDO0FBRUQsd0JBQXNCLDRCQUE0QixDQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUNmLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixVQUFVLEVBQUUsTUFBTSxFQUNsQixNQUFNLEVBQUUsTUFBTSxFQUNkLHFCQUFxQixTQUFJLEdBQ3hCLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0ErQ3ZCO0FBaUZELHdCQUFzQixnQkFBZ0IsQ0FBQyxFQUNyQyxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixjQUFjLEVBQ2QsTUFBTSxFQUNOLGdCQUFnQixFQUNqQixFQUFFO0lBQ0QsTUFBTSxFQUFFLFVBQVUsQ0FBQztJQUNuQixZQUFZLEVBQUUsWUFBWSxDQUFDO0lBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixjQUFjLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixnQkFBZ0IsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0NBQ3JDLGlCQXFCQTtBQUVELE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsTUFBTSxFQUFFLFVBQVUsQ0FBQztJQUNuQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUM5QixDQUFDO0FBRUYsd0JBQXNCLDhCQUE4QixDQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxPQUFPLEVBQ3RCLE1BQU0sRUFBRSxNQUFNLEdBQ2IsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQXFCeEI7QUFFRCxNQUFNLE1BQU0sbUJBQW1CLEdBQUc7SUFDaEMsTUFBTSxFQUFFLFlBQVksQ0FBQztJQUNyQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUM5QixDQUFDO0FBRUYsd0JBQXNCLHdCQUF3QixDQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxPQUFPLEVBQ3RCLE1BQU0sRUFBRSxNQUFNLEdBQ2IsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBMkI5QiJ9
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfdGVzdF93YWxsZXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BhcnRhbi9zZXR1cF90ZXN0X3dhbGxldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXpELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUE2QixNQUFNLHFCQUFxQixDQUFDO0FBR3ZGLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBb0MsTUFBTSxzQkFBc0IsQ0FBQztBQUl4RixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFVL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxNQUFNLFdBQVcsWUFBWTtJQUMzQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3pCLGFBQWEsRUFBRSxhQUFhLENBQUM7SUFDN0IsaUJBQWlCLEVBQUUsWUFBWSxDQUFDO0lBQ2hDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0lBQy9CLFlBQVksRUFBRSxZQUFZLENBQUM7Q0FDNUI7QUFFRCxNQUFNLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUMxQyxZQUFZLEVBQ1osY0FBYyxHQUFHLGVBQWUsR0FBRyxXQUFXLEdBQUcsbUJBQW1CLENBQ3JFLENBQUM7QUFNRix3QkFBc0IsMkJBQTJCLENBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQ2YsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sR0FDYixPQUFPLENBQUMsWUFBWSxDQUFDLENBMkJ2QjtBQUVELHdCQUFzQixxQ0FBcUMsQ0FDekQsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLENBK0N2QjtBQThGRCx3QkFBc0IsMkJBQTJCLENBQy9DLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QscUJBQXFCLFNBQUksRUFDekIsSUFBSSxDQUFDLEVBQUU7SUFBRSxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUE7Q0FBRSxHQUMvQixPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FpQ3BDO0FBRUQsd0JBQXNCLDRCQUE0QixDQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUNmLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixVQUFVLEVBQUUsTUFBTSxFQUNsQixNQUFNLEVBQUUsTUFBTSxFQUNkLHFCQUFxQixTQUFJLEdBQ3hCLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FpRHZCO0FBK0VELHdCQUFzQixnQkFBZ0IsQ0FBQyxFQUNyQyxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixjQUFjLEVBQ2QsTUFBTSxFQUNOLGdCQUFnQixFQUNqQixFQUFFO0lBQ0QsTUFBTSxFQUFFLFVBQVUsQ0FBQztJQUNuQixZQUFZLEVBQUUsWUFBWSxDQUFDO0lBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixjQUFjLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixnQkFBZ0IsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0NBQ3JDLGlCQXVCQTtBQUVELE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsTUFBTSxFQUFFLFVBQVUsQ0FBQztJQUNuQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUM5QixDQUFDO0FBRUYsd0JBQXNCLDhCQUE4QixDQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxPQUFPLEVBQ3RCLE1BQU0sRUFBRSxNQUFNLEdBQ2IsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQXVCeEI7QUFFRCxNQUFNLE1BQU0sbUJBQW1CLEdBQUc7SUFDaEMsTUFBTSxFQUFFLFlBQVksQ0FBQztJQUNyQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUM5QixDQUFDO0FBRUYsd0JBQXNCLHdCQUF3QixDQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxPQUFPLEVBQ3RCLE1BQU0sRUFBRSxNQUFNLEdBQ2IsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBMkI5QiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,19 @@
1
1
  import { generateSchnorrAccounts } from '@aztec/accounts/testing';
2
2
  import { NO_FROM } from '@aztec/aztec.js/account';
3
- import { AztecAddress } from '@aztec/aztec.js/addresses';
4
- import { NO_WAIT } from '@aztec/aztec.js/contracts';
3
+ import { DefaultWaitOpts, NO_WAIT } from '@aztec/aztec.js/contracts';
5
4
  import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
6
5
  import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
7
6
  import { SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
8
7
  import { Fr } from '@aztec/aztec.js/fields';
8
+ import { waitForL1ToL2MessageReady } from '@aztec/aztec.js/messaging';
9
9
  import { createAztecNodeClient, waitForTx } from '@aztec/aztec.js/node';
10
10
  import { createEthereumChain } from '@aztec/ethereum/chain';
11
11
  import { createExtendedL1Client } from '@aztec/ethereum/client';
12
12
  import { makeBackoff, retry, retryUntil } from '@aztec/foundation/retry';
13
13
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
14
+ import { Gas } from '@aztec/stdlib/gas';
15
+ import { TxStatus } from '@aztec/stdlib/tx';
16
+ import { getGasLimits } from '@aztec/wallet-sdk/base-wallet';
14
17
  import { registerInitialLocalNetworkAccountsInWallet } from '@aztec/wallets/testing';
15
18
  import { getACVMConfig } from '../fixtures/get_acvm_config.js';
16
19
  import { getBBConfig } from '../fixtures/get_bb_config.js';
@@ -25,6 +28,8 @@ export async function setupTestAccountsWithTokens(nodeUrl, mintAmount, logger) {
25
28
  const ACCOUNT_COUNT = 1; // TODO fix this to allow for 16 wallets again
26
29
  const aztecNode = createAztecNodeClient(nodeUrl);
27
30
  const wallet = await TestWallet.create(aztecNode);
31
+ // Remote JSON-RPC node: keep the 1s poll cadence rather than the in-process TestWallet fast default.
32
+ wallet.setDefaultWaitInterval(DefaultWaitOpts.interval);
28
33
  const [recipientAccount, ...accounts] = (await registerInitialLocalNetworkAccountsInWallet(wallet)).slice(0, ACCOUNT_COUNT + 1);
29
34
  const tokenAdmin = accounts[0];
30
35
  const tokenAddress = await deployTokenAndMint(wallet, accounts, tokenAdmin, mintAmount, undefined, logger);
@@ -85,47 +90,18 @@ export async function deploySponsoredTestAccountsWithTokens(wallet, aztecNode, m
85
90
  }
86
91
  async function deployAccountWithDiagnostics(account, paymentMethod, aztecNode, logger, accountLabel, estimateGas) {
87
92
  const deployMethod = await account.getDeployMethod();
88
- let txHash;
89
93
  let gasSettings;
90
- try {
91
- if (estimateGas) {
92
- const sim = await deployMethod.simulate({
93
- from: NO_FROM,
94
- fee: {
95
- paymentMethod
96
- }
97
- });
98
- gasSettings = sim.estimatedGas;
99
- logger.info(`${accountLabel} estimated gas: DA=${gasSettings.gasLimits.daGas} L2=${gasSettings.gasLimits.l2Gas}`);
100
- }
101
- const deployResult = await deployMethod.send({
94
+ if (estimateGas) {
95
+ const sim = await deployMethod.simulate({
102
96
  from: NO_FROM,
103
97
  fee: {
104
- paymentMethod,
105
- gasSettings
98
+ paymentMethod
106
99
  },
107
- wait: NO_WAIT
100
+ includeMetadata: true
108
101
  });
109
- txHash = deployResult.txHash;
110
- await waitForTx(aztecNode, txHash, {
111
- timeout: 2400
112
- });
113
- logger.info(`${accountLabel} deployed at ${account.address}`);
114
- } catch (error) {
115
- const blockNumber = await aztecNode.getBlockNumber();
116
- let receipt;
117
- try {
118
- receipt = await aztecNode.getTxReceipt(txHash);
119
- } catch {
120
- receipt = 'unavailable';
121
- }
122
- logger.error(`${accountLabel} deployment failed`, {
123
- txHash: txHash.toString(),
124
- receipt: JSON.stringify(receipt),
125
- currentBlockNumber: blockNumber,
126
- error: String(error)
127
- });
128
- throw error;
102
+ const { txsLimits } = await aztecNode.getNodeInfo();
103
+ gasSettings = getGasLimits(sim.gasUsed, Gas.from(txsLimits.gas));
104
+ logger.info(`${accountLabel} estimated gas: DA=${gasSettings.gasLimits.daGas} L2=${gasSettings.gasLimits.l2Gas}`);
129
105
  }
130
106
  // Track the tx hash across retries so we don't re-send when the previous tx is still pending.
131
107
  let sentTxHash;
@@ -148,7 +124,7 @@ async function deployAccountWithDiagnostics(account, paymentMethod, aztecNode, l
148
124
  }
149
125
  if (!sentTxHash) {
150
126
  const deployResult = await deployMethod.send({
151
- from: AztecAddress.ZERO,
127
+ from: NO_FROM,
152
128
  fee: {
153
129
  paymentMethod,
154
130
  gasSettings
@@ -202,6 +178,8 @@ export async function deploySponsoredTestAccounts(wallet, aztecNode, logger, num
202
178
  export async function deployTestAccountsWithTokens(nodeUrl, l1RpcUrls, mnemonicOrPrivateKey, mintAmount, logger, numberOfFundedWallets = 1) {
203
179
  const aztecNode = createAztecNodeClient(nodeUrl);
204
180
  const wallet = await TestWallet.create(aztecNode);
181
+ // Remote JSON-RPC node: keep the 1s poll cadence rather than the in-process TestWallet fast default.
182
+ wallet.setDefaultWaitInterval(DefaultWaitOpts.interval);
205
183
  const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
206
184
  const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
207
185
  const fundedAccounts = await Promise.all(funded.map((a)=>wallet.createSchnorrAccount(a.secret, a.salt)));
@@ -241,8 +219,9 @@ async function bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, aztecNode, reci
241
219
  const l1Client = createExtendedL1Client(chain.rpcUrls, mnemonicOrPrivateKey, chain.chainInfo);
242
220
  const portal = await L1FeeJuicePortalManager.new(aztecNode, l1Client, log);
243
221
  const claim = await portal.bridgeTokensPublic(recipient, amount, true);
244
- const isSynced = async ()=>await aztecNode.getL1ToL2MessageCheckpoint(Fr.fromHexString(claim.messageHash)) !== undefined;
245
- await retryUntil(isSynced, `message ${claim.messageHash} sync`, 24, 0.5);
222
+ await waitForL1ToL2MessageReady(aztecNode, Fr.fromHexString(claim.messageHash), {
223
+ timeoutSeconds: 24
224
+ });
246
225
  log.info(`Created a claim for ${amount} L1 fee juice to ${recipient}.`, claim);
247
226
  return claim;
248
227
  }
@@ -302,9 +281,12 @@ export async function performTransfers({ wallet, testAccounts, rounds, transferA
302
281
  });
303
282
  });
304
283
  const provenTxs = await Promise.all(txs);
284
+ // Wait only for the txs to be proposed, not checkpointed. This is enough to keep the chain
285
+ // loaded for the reorg scenario, and avoids each round blocking on the (slower) checkpoint lag.
305
286
  await Promise.all(provenTxs.map((t)=>t.send({
306
287
  wait: {
307
- timeout: 600
288
+ timeout: 600,
289
+ waitForStatus: TxStatus.PROPOSED
308
290
  }
309
291
  })));
310
292
  logger.info(`Completed round ${i + 1} / ${rounds}`);
@@ -324,6 +306,8 @@ export async function createWalletAndAztecNodeClient(nodeUrl, proverEnabled, log
324
306
  proverEnabled
325
307
  };
326
308
  const wallet = await TestWallet.create(aztecNode, pxeConfig);
309
+ // Remote JSON-RPC node: keep the 1s poll cadence rather than the in-process TestWallet fast default.
310
+ wallet.setDefaultWaitInterval(DefaultWaitOpts.interval);
327
311
  return {
328
312
  wallet,
329
313
  aztecNode,
@@ -38,9 +38,12 @@ export declare class ProvingMetrics {
38
38
  }
39
39
  export type TxInclusionData = {
40
40
  txHash: string;
41
- sentAt: number;
42
- minedAt: number;
43
- attestedAt: number;
41
+ /** Wall-clock at client when the tx was submitted, in ms (Date.now()). */
42
+ sentAtMs: number;
43
+ /** Wall-clock at client when the block containing the tx first became visible, in ms (Date.now()). -1 if never observed. */
44
+ minedAtMs: number;
45
+ /** Reserved for future attestation-observed-at signal; -1 today. */
46
+ attestedAtMs: number;
44
47
  blocknumber: number;
45
48
  priorityFee: number;
46
49
  totalFee: number;
@@ -59,9 +62,27 @@ export declare class TxInclusionMetrics {
59
62
  private reqRespStats;
60
63
  private peerStats;
61
64
  private mempoolMinedDelay;
65
+ private inclusionOutcome;
62
66
  constructor(aztecNode: AztecNode, logger?: Logger | undefined);
63
67
  recordSentTx(tx: Tx, group: string): void;
68
+ /**
69
+ * Stamp mined-at metadata for any tracked tx contained in this block, using
70
+ * `observedAtMs` (caller-supplied wall-clock at the moment they first saw the
71
+ * block). Idempotent: existing minedAtMs is preserved so the first observer
72
+ * wins (typically the block-watcher; recordMinedTx is a fallback).
73
+ */
74
+ observeBlockForMinedTxs(blockNumber: number, txHashes: ReadonlyArray<{
75
+ toString(): string;
76
+ }>, observedAtMs: number): void;
64
77
  recordMinedTx(txReceipt: TxReceipt): Promise<void>;
78
+ /**
79
+ * Whether this tx was ever observed in a block (by the block-watcher or a mined receipt).
80
+ * Idempotent first-sighting semantics: a later reorg / pool eviction never clears it, so callers
81
+ * can treat "ever mined" as included regardless of what happens to the tx afterwards.
82
+ */
83
+ wasMined(txHash: string): boolean;
84
+ /** Per-tx inclusion records for a group. Used to serialise out for downstream tooling. */
85
+ getInclusionRecords(group?: string): TxInclusionData[];
65
86
  inclusionTimeInSeconds(group: string): {
66
87
  count: number;
67
88
  group: string;
@@ -77,6 +98,8 @@ export declare class TxInclusionMetrics {
77
98
  recordReqRespStats(fraction: number, delayP50: number, delayP95: number): void;
78
99
  recordPeerStats(avgCount: number, connectionDurationP50: number, connectionDurationP95: number): void;
79
100
  recordMempoolMinedDelay(txP50: number, txP95: number, attestationP50: number, attestationP95: number): void;
101
+ /** Mined vs failed counts for the high-value lane — recorded instead of asserting strict 1:1 inclusion. */
102
+ recordInclusionOutcome(mined: number, failed: number): void;
80
103
  toGithubActionBenchmarkJSON(): Array<{
81
104
  name: string;
82
105
  unit: string;
@@ -85,4 +108,4 @@ export declare class TxInclusionMetrics {
85
108
  extra?: string;
86
109
  }>;
87
110
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfbWV0cmljcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NwYXJ0YW4vdHhfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJdEQsb0RBQW9EO0FBQ3BELHFCQUFhLGNBQWM7SUFjYixPQUFPLENBQUMsTUFBTTtJQWIxQixPQUFPLENBQUMsYUFBYSxDQUFxQjtJQUMxQyxPQUFPLENBQUMsYUFBYSxDQUFxQjtJQUMxQyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsVUFBVSxDQUFxQjtJQUN2QyxPQUFPLENBQUMsV0FBVyxDQUFxQjtJQUN4QyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsb0JBQW9CLENBQXFCO0lBQ2pELE9BQU8sQ0FBQyxrQkFBa0IsQ0FBcUI7SUFDL0MsT0FBTyxDQUFDLFlBQVksQ0FBcUI7SUFFekMsWUFBb0IsTUFBTSxFQUFFLE1BQU0sRUFBSTtJQUV0QyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFdkM7SUFFRCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFekM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFdEM7SUFFRCxrQkFBa0IsQ0FBQyxFQUFF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
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfbWV0cmljcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NwYXJ0YW4vdHhfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJdEQsb0RBQW9EO0FBQ3BELHFCQUFhLGNBQWM7SUFjYixPQUFPLENBQUMsTUFBTTtJQWIxQixPQUFPLENBQUMsYUFBYSxDQUFxQjtJQUMxQyxPQUFPLENBQUMsYUFBYSxDQUFxQjtJQUMxQyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsVUFBVSxDQUFxQjtJQUN2QyxPQUFPLENBQUMsV0FBVyxDQUFxQjtJQUN4QyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsWUFBWSxDQUFxQjtJQUN6QyxPQUFPLENBQUMsb0JBQW9CLENBQXFCO0lBQ2pELE9BQU8sQ0FBQyxrQkFBa0IsQ0FBcUI7SUFDL0MsT0FBTyxDQUFDLFlBQVksQ0FBcUI7SUFFekMsWUFBb0IsTUFBTSxFQUFFLE1BQU0sRUFBSTtJQUV0QyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFdkM7SUFFRCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFekM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFdEM7SUFFRCxrQkFBa0IsQ0FBQyxFQUFF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
@@ -1 +1 @@
1
- {"version":3,"file":"tx_metrics.d.ts","sourceRoot":"","sources":["../../src/spartan/tx_metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tx_metrics.d.ts","sourceRoot":"","sources":["../../src/spartan/tx_metrics.ts"],"names":[],"mappings":"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"}
@@ -161,6 +161,7 @@ export class TxInclusionMetrics {
161
161
  reqRespStats;
162
162
  peerStats;
163
163
  mempoolMinedDelay;
164
+ inclusionOutcome;
164
165
  constructor(aztecNode, logger){
165
166
  this.aztecNode = aztecNode;
166
167
  this.logger = logger;
@@ -180,9 +181,9 @@ export class TxInclusionMetrics {
180
181
  }
181
182
  this.data.set(txHash, {
182
183
  txHash,
183
- sentAt: Math.trunc(Date.now() / 1000),
184
- minedAt: -1,
185
- attestedAt: -1,
184
+ sentAtMs: Date.now(),
185
+ minedAtMs: -1,
186
+ attestedAtMs: -1,
186
187
  blocknumber: -1,
187
188
  priorityFee: Number(priorityFees.feePerDaGas + priorityFees.feePerL2Gas),
188
189
  totalFee: -1,
@@ -191,6 +192,22 @@ export class TxInclusionMetrics {
191
192
  });
192
193
  this.groups.add(group);
193
194
  }
195
+ /**
196
+ * Stamp mined-at metadata for any tracked tx contained in this block, using
197
+ * `observedAtMs` (caller-supplied wall-clock at the moment they first saw the
198
+ * block). Idempotent: existing minedAtMs is preserved so the first observer
199
+ * wins (typically the block-watcher; recordMinedTx is a fallback).
200
+ */ observeBlockForMinedTxs(blockNumber, txHashes, observedAtMs) {
201
+ txHashes.forEach((txHash, position)=>{
202
+ const data = this.data.get(txHash.toString());
203
+ if (!data || data.minedAtMs !== -1) {
204
+ return;
205
+ }
206
+ data.blocknumber = blockNumber;
207
+ data.minedAtMs = observedAtMs;
208
+ data.positionInBlock = position;
209
+ });
210
+ }
194
211
  async recordMinedTx(txReceipt) {
195
212
  const { txHash, blockNumber } = txReceipt;
196
213
  if (!txReceipt.isMined() || !txReceipt.hasExecutionSucceeded() || !blockNumber) {
@@ -201,17 +218,6 @@ export class TxInclusionMetrics {
201
218
  });
202
219
  return;
203
220
  }
204
- if (!this.blocks.has(blockNumber)) {
205
- this.blocks.set(blockNumber, this.aztecNode.getBlock(blockNumber));
206
- }
207
- const block = await this.blocks.get(blockNumber);
208
- if (!block) {
209
- this.logger?.warn('Failed to load block for mined tx receipt', {
210
- txHash: txHash.toString(),
211
- blockNumber
212
- });
213
- return;
214
- }
215
221
  const data = this.data.get(txHash.toString());
216
222
  if (!data) {
217
223
  const message = `Missing sent tx record for mined tx ${txHash.toString()}`;
@@ -221,19 +227,75 @@ export class TxInclusionMetrics {
221
227
  });
222
228
  throw new Error(message);
223
229
  }
224
- data.blocknumber = blockNumber;
225
- data.minedAt = Number(block.header.globalVariables.timestamp);
226
- data.attestedAt = -1;
227
230
  data.totalFee = Number(txReceipt.transactionFee ?? 0n);
228
- data.positionInBlock = block.body.txEffects.findIndex((txEffect)=>txEffect.txHash.equals(txHash));
231
+ // Fallback path for txs the block-watcher missed (e.g. observed only after
232
+ // the watcher stopped). Stamp with the block's L2 slot timestamp; this is
233
+ // earlier than the true client-observed time by attestation+propagation
234
+ // lag, but it's the only deterministic timestamp available post-hoc.
235
+ if (data.minedAtMs === -1) {
236
+ if (!this.blocks.has(blockNumber)) {
237
+ this.blocks.set(blockNumber, this.aztecNode.getBlock(blockNumber, {
238
+ includeTransactions: true
239
+ }));
240
+ }
241
+ const block = await this.blocks.get(blockNumber);
242
+ if (!block) {
243
+ this.logger?.warn('Failed to load block for mined tx receipt', {
244
+ txHash: txHash.toString(),
245
+ blockNumber
246
+ });
247
+ return;
248
+ }
249
+ data.blocknumber = blockNumber;
250
+ data.minedAtMs = Number(block.header.globalVariables.timestamp) * 1000;
251
+ data.positionInBlock = block.body.txEffects.findIndex((txEffect)=>txEffect.txHash.equals(txHash));
252
+ }
253
+ }
254
+ /**
255
+ * Whether this tx was ever observed in a block (by the block-watcher or a mined receipt).
256
+ * Idempotent first-sighting semantics: a later reorg / pool eviction never clears it, so callers
257
+ * can treat "ever mined" as included regardless of what happens to the tx afterwards.
258
+ */ wasMined(txHash) {
259
+ const d = this.data.get(txHash);
260
+ return !!d && d.minedAtMs !== -1;
261
+ }
262
+ /** Per-tx inclusion records for a group. Used to serialise out for downstream tooling. */ getInclusionRecords(group) {
263
+ const out = [];
264
+ for (const tx of this.data.values()){
265
+ if (group !== undefined && tx.group !== group) {
266
+ continue;
267
+ }
268
+ out.push({
269
+ ...tx
270
+ });
271
+ }
272
+ return out;
229
273
  }
230
274
  inclusionTimeInSeconds(group) {
231
275
  const histogram = createHistogram({});
276
+ let nonPositive = 0;
232
277
  for (const tx of this.data.values()){
233
- if (!tx.blocknumber || tx.group !== group || tx.minedAt === -1) {
278
+ if (!tx.blocknumber || tx.group !== group || tx.minedAtMs === -1) {
234
279
  continue;
235
280
  }
236
- histogram.record(tx.minedAt - tx.sentAt);
281
+ // Both timestamps are client wall-clock (ms). A negative delta should be
282
+ // impossible since the watcher stamps minedAtMs strictly after sentAtMs,
283
+ // but the fallback path (recordMinedTx via L2 slot timestamp) can stamp
284
+ // earlier than sentAtMs. perf_hooks.createHistogram rejects <=0; skip
285
+ // those instead of crashing.
286
+ const deltaMs = tx.minedAtMs - tx.sentAtMs;
287
+ if (deltaMs <= 0) {
288
+ nonPositive++;
289
+ continue;
290
+ }
291
+ // Histogram is recorded in seconds (rounded) to match the existing
292
+ // toGithubActionBenchmarkJSON output unit; per-tx records carry the raw ms.
293
+ histogram.record(Math.max(1, Math.round(deltaMs / 1000)));
294
+ }
295
+ if (nonPositive > 0) {
296
+ this.logger?.debug(`Dropped ${nonPositive} tx inclusion samples with non-positive delta`, {
297
+ group
298
+ });
237
299
  }
238
300
  if (histogram.count === 0) {
239
301
  return {
@@ -297,6 +359,12 @@ export class TxInclusionMetrics {
297
359
  attestationP95
298
360
  };
299
361
  }
362
+ /** Mined vs failed counts for the high-value lane — recorded instead of asserting strict 1:1 inclusion. */ recordInclusionOutcome(mined, failed) {
363
+ this.inclusionOutcome = {
364
+ mined,
365
+ failed
366
+ };
367
+ }
300
368
  toGithubActionBenchmarkJSON() {
301
369
  const data = [];
302
370
  for (const group of this.groups){
@@ -409,6 +477,23 @@ export class TxInclusionMetrics {
409
477
  value: this.mempoolMinedDelay.attestationP95
410
478
  });
411
479
  }
480
+ if (this.inclusionOutcome) {
481
+ const { mined, failed } = this.inclusionOutcome;
482
+ const total = mined + failed;
483
+ data.push({
484
+ name: 'inclusion/mined_count',
485
+ unit: 'count',
486
+ value: mined
487
+ }, {
488
+ name: 'inclusion/failed_count',
489
+ unit: 'count',
490
+ value: failed
491
+ }, {
492
+ name: 'inclusion/success_ratio',
493
+ unit: 'ratio',
494
+ value: total > 0 ? mined / total : 0
495
+ });
496
+ }
412
497
  const scenario = process.env.BENCH_SCENARIO?.trim();
413
498
  if (!scenario) {
414
499
  return data;
@@ -1,45 +1,19 @@
1
1
  import { z } from 'zod';
2
2
  declare const testConfigSchema: z.ZodObject<{
3
3
  NAMESPACE: z.ZodDefault<z.ZodString>;
4
- REAL_VERIFIER: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodEffects<z.ZodNumber, 0 | 1, number>, boolean, number>, z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, boolean, string>]>>>;
5
- DEBUG_FORCE_TX_PROOF_VERIFICATION: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodEffects<z.ZodNumber, 0 | 1, number>, boolean, number>, z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, boolean, string>]>>>;
6
- CREATE_ETH_DEVNET: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodEffects<z.ZodNumber, 0 | 1, number>, boolean, number>, z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, boolean, string>]>>>;
4
+ REAL_VERIFIER: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodNumber & z.ZodType<0 | 1, number, z.core.$ZodTypeInternals<0 | 1, number>>, z.ZodTransform<boolean, 0 | 1>>, z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodTransform<boolean, string>>]>>>;
5
+ DEBUG_FORCE_TX_PROOF_VERIFICATION: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodNumber & z.ZodType<0 | 1, number, z.core.$ZodTypeInternals<0 | 1, number>>, z.ZodTransform<boolean, 0 | 1>>, z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodTransform<boolean, string>>]>>>;
6
+ CREATE_ETH_DEVNET: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodNumber & z.ZodType<0 | 1, number, z.core.$ZodTypeInternals<0 | 1, number>>, z.ZodTransform<boolean, 0 | 1>>, z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodTransform<boolean, string>>]>>>;
7
7
  L1_RPC_URLS_JSON: z.ZodOptional<z.ZodString>;
8
8
  L1_ACCOUNT_MNEMONIC: z.ZodOptional<z.ZodString>;
9
- AZTEC_SLOT_DURATION: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
10
- AZTEC_EPOCH_DURATION: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
11
- AZTEC_PROOF_SUBMISSION_WINDOW: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
12
- AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
9
+ AZTEC_SLOT_DURATION: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
10
+ AZTEC_EPOCH_DURATION: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
11
+ AZTEC_PROOF_SUBMISSION_WINDOW: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
12
+ AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
13
13
  FUNDING_PRIVATE_KEY: z.ZodOptional<z.ZodString>;
14
14
  AZTEC_ADMIN_API_KEY: z.ZodOptional<z.ZodString>;
15
- }, "strip", z.ZodTypeAny, {
16
- NAMESPACE: string;
17
- REAL_VERIFIER: boolean;
18
- DEBUG_FORCE_TX_PROOF_VERIFICATION: boolean;
19
- CREATE_ETH_DEVNET: boolean;
20
- L1_RPC_URLS_JSON?: string | undefined;
21
- L1_ACCOUNT_MNEMONIC?: string | undefined;
22
- AZTEC_SLOT_DURATION: number;
23
- AZTEC_EPOCH_DURATION: number;
24
- AZTEC_PROOF_SUBMISSION_WINDOW: number;
25
- AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: number;
26
- FUNDING_PRIVATE_KEY?: string | undefined;
27
- AZTEC_ADMIN_API_KEY?: string | undefined;
28
- }, {
29
- NAMESPACE?: string | undefined;
30
- REAL_VERIFIER?: string | number | boolean | undefined;
31
- DEBUG_FORCE_TX_PROOF_VERIFICATION?: string | number | boolean | undefined;
32
- CREATE_ETH_DEVNET?: string | number | boolean | undefined;
33
- L1_RPC_URLS_JSON?: string | undefined;
34
- L1_ACCOUNT_MNEMONIC?: string | undefined;
35
- AZTEC_SLOT_DURATION?: number | undefined;
36
- AZTEC_EPOCH_DURATION?: number | undefined;
37
- AZTEC_PROOF_SUBMISSION_WINDOW?: number | undefined;
38
- AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET?: number | undefined;
39
- FUNDING_PRIVATE_KEY?: string | undefined;
40
- AZTEC_ADMIN_API_KEY?: string | undefined;
41
- }>;
15
+ }, z.core.$strip>;
42
16
  export type TestConfig = z.infer<typeof testConfigSchema>;
43
17
  export declare function setupEnvironment(env: unknown): TestConfig;
44
18
  export {};
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BhcnRhbi91dGlscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl4QixRQUFBLE1BQU0sZ0JBQWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFhcEIsQ0FBQztBQUVILE1BQU0sTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLGdCQUFnQixDQUFDLENBQUM7QUFFMUQsd0JBQWdCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxPQUFPLEdBQUcsVUFBVSxDQUl6RCJ9
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BhcnRhbi91dGlscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl4QixRQUFBLE1BQU0sZ0JBQWdCOzs7Ozs7Ozs7Ozs7O2lCQWFwQixDQUFDO0FBRUgsTUFBTSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQztBQUUxRCx3QkFBZ0IsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE9BQU8sR0FBRyxVQUFVLENBSXpEIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAapB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAIzD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;iBAapB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAIzD"}
@@ -37,7 +37,7 @@ export async function awaitCheckpointNumber(rollupCheatCodes, checkpointNumber,
37
37
  // Get current proven block number
38
38
  let initialProvenBlock;
39
39
  try {
40
- const tips = await node.getL2Tips();
40
+ const tips = await node.getChainTips();
41
41
  initialProvenBlock = Number(tips.proven.block.number);
42
42
  log.info(`Current proven block: ${initialProvenBlock}. Waiting for it to increase...`);
43
43
  } catch (err) {
@@ -46,7 +46,7 @@ export async function awaitCheckpointNumber(rollupCheatCodes, checkpointNumber,
46
46
  }
47
47
  await retryUntil(async ()=>{
48
48
  try {
49
- const tips = await node.getL2Tips();
49
+ const tips = await node.getChainTips();
50
50
  const currentProvenBlock = Number(tips.proven.block.number);
51
51
  const proposedBlock = Number(tips.proposed.number);
52
52
  log.verbose(`Chain state: proposed=${proposedBlock}, proven=${currentProvenBlock} (waiting for > ${initialProvenBlock})`);