@aztec/end-to-end 5.0.0-rc.2 → 5.0.1

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 (246) hide show
  1. package/README.md +215 -27
  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/interactive_handshake_responder.d.ts +48 -0
  10. package/dest/automine/delivery/interactive_handshake_responder.d.ts.map +1 -0
  11. package/dest/automine/delivery/interactive_handshake_responder.js +76 -0
  12. package/dest/automine/delivery/onchain_delivery_harness.d.ts +19 -0
  13. package/dest/automine/delivery/onchain_delivery_harness.d.ts.map +1 -0
  14. package/dest/automine/delivery/onchain_delivery_harness.js +141 -0
  15. package/dest/automine/token/blacklist_token_contract_test.d.ts +49 -0
  16. package/dest/automine/token/blacklist_token_contract_test.d.ts.map +1 -0
  17. package/dest/{e2e_blacklist_token_contract → automine/token}/blacklist_token_contract_test.js +17 -24
  18. package/dest/automine/token/token_contract_test.d.ts +40 -0
  19. package/dest/automine/token/token_contract_test.d.ts.map +1 -0
  20. package/dest/{e2e_token_contract → automine/token}/token_contract_test.js +22 -28
  21. package/dest/automine/token/token_test_helpers.d.ts +73 -0
  22. package/dest/automine/token/token_test_helpers.d.ts.map +1 -0
  23. package/dest/automine/token/token_test_helpers.js +97 -0
  24. package/dest/bench/client_flows/benchmark.d.ts +1 -1
  25. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  26. package/dest/bench/client_flows/benchmark.js +3 -1
  27. package/dest/bench/client_flows/client_flows_benchmark.d.ts +1 -1
  28. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  29. package/dest/bench/client_flows/client_flows_benchmark.js +16 -4
  30. package/dest/bench/utils.d.ts +1 -1
  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/e2e_prover_test.d.ts +10 -7
  37. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  38. package/dest/fixtures/e2e_prover_test.js +30 -11
  39. package/dest/fixtures/fixtures.d.ts +9 -6
  40. package/dest/fixtures/fixtures.d.ts.map +1 -1
  41. package/dest/fixtures/fixtures.js +11 -7
  42. package/dest/fixtures/ha_setup.d.ts +3 -3
  43. package/dest/fixtures/ha_setup.d.ts.map +1 -1
  44. package/dest/fixtures/ha_setup.js +4 -1
  45. package/dest/fixtures/index.d.ts +2 -1
  46. package/dest/fixtures/index.d.ts.map +1 -1
  47. package/dest/fixtures/index.js +1 -0
  48. package/dest/fixtures/setup.d.ts +34 -9
  49. package/dest/fixtures/setup.d.ts.map +1 -1
  50. package/dest/fixtures/setup.js +165 -160
  51. package/dest/fixtures/standard_contracts_genesis.d.ts +16 -0
  52. package/dest/fixtures/standard_contracts_genesis.d.ts.map +1 -0
  53. package/dest/fixtures/standard_contracts_genesis.js +25 -0
  54. package/dest/fixtures/timing.d.ts +42 -0
  55. package/dest/fixtures/timing.d.ts.map +1 -0
  56. package/dest/fixtures/timing.js +72 -0
  57. package/dest/fixtures/wait_helpers.d.ts +135 -0
  58. package/dest/fixtures/wait_helpers.d.ts.map +1 -0
  59. package/dest/fixtures/wait_helpers.js +154 -0
  60. package/dest/forward-compatibility/wallet_service.js +1 -1
  61. package/dest/multi-node/block-production/setup.d.ts +97 -0
  62. package/dest/multi-node/block-production/setup.d.ts.map +1 -0
  63. package/dest/multi-node/block-production/setup.js +158 -0
  64. package/dest/multi-node/governance/setup.d.ts +67 -0
  65. package/dest/multi-node/governance/setup.d.ts.map +1 -0
  66. package/dest/multi-node/governance/setup.js +126 -0
  67. package/dest/multi-node/multi_node_test_context.d.ts +212 -0
  68. package/dest/multi-node/multi_node_test_context.d.ts.map +1 -0
  69. package/dest/multi-node/multi_node_test_context.js +347 -0
  70. package/dest/multi-node/slashing/inactivity_setup.d.ts +27 -0
  71. package/dest/multi-node/slashing/inactivity_setup.d.ts.map +1 -0
  72. package/dest/multi-node/slashing/inactivity_setup.js +111 -0
  73. package/dest/multi-node/slashing/setup.d.ts +167 -0
  74. package/dest/multi-node/slashing/setup.d.ts.map +1 -0
  75. package/dest/multi-node/slashing/setup.js +275 -0
  76. package/dest/{e2e_p2p → p2p}/p2p_network.d.ts +9 -1
  77. package/dest/p2p/p2p_network.d.ts.map +1 -0
  78. package/dest/{e2e_p2p → p2p}/p2p_network.js +26 -1
  79. package/dest/p2p/reqresp/utils.d.ts +19 -0
  80. package/dest/p2p/reqresp/utils.d.ts.map +1 -0
  81. package/dest/{e2e_p2p → p2p}/reqresp/utils.js +4 -15
  82. package/dest/p2p/shared.d.ts +72 -0
  83. package/dest/p2p/shared.d.ts.map +1 -0
  84. package/dest/p2p/shared.js +212 -0
  85. package/dest/shared/cross_chain_test_harness.d.ts +3 -3
  86. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  87. package/dest/shared/cross_chain_test_harness.js +24 -16
  88. package/dest/shared/gas_portal_test_harness.d.ts +1 -1
  89. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  90. package/dest/shared/gas_portal_test_harness.js +8 -5
  91. package/dest/shared/submit-transactions.d.ts +1 -1
  92. package/dest/shared/submit-transactions.d.ts.map +1 -1
  93. package/dest/shared/submit-transactions.js +12 -5
  94. package/dest/shared/timing_env.d.js +5 -0
  95. package/dest/shared/timing_env.js +158 -47
  96. package/dest/shared/wait_for_l1_to_l2_message.js +1 -1
  97. package/dest/single-node/cross-chain/cross_chain_messaging_test.d.ts +75 -0
  98. package/dest/single-node/cross-chain/cross_chain_messaging_test.d.ts.map +1 -0
  99. package/dest/{e2e_cross_chain_messaging → single-node/cross-chain}/cross_chain_messaging_test.js +74 -26
  100. package/dest/single-node/cross-chain/message_test_helpers.d.ts +38 -0
  101. package/dest/single-node/cross-chain/message_test_helpers.d.ts.map +1 -0
  102. package/dest/single-node/cross-chain/message_test_helpers.js +70 -0
  103. package/dest/{e2e_fees → single-node/fees}/bridging_race.notest.d.ts +1 -1
  104. package/dest/single-node/fees/bridging_race.notest.d.ts.map +1 -0
  105. package/dest/{e2e_fees → single-node/fees}/bridging_race.notest.js +9 -6
  106. package/dest/single-node/fees/fees_test.d.ts +95 -0
  107. package/dest/single-node/fees/fees_test.d.ts.map +1 -0
  108. package/dest/{e2e_fees → single-node/fees}/fees_test.js +121 -45
  109. package/dest/single-node/l1-reorgs/setup.d.ts +42 -0
  110. package/dest/single-node/l1-reorgs/setup.d.ts.map +1 -0
  111. package/dest/single-node/l1-reorgs/setup.js +57 -0
  112. package/dest/single-node/partial-proofs/setup.d.ts +5 -0
  113. package/dest/single-node/partial-proofs/setup.d.ts.map +1 -0
  114. package/dest/single-node/partial-proofs/setup.js +5 -0
  115. package/dest/single-node/proving/setup.d.ts +5 -0
  116. package/dest/single-node/proving/setup.d.ts.map +1 -0
  117. package/dest/single-node/proving/setup.js +5 -0
  118. package/dest/single-node/recovery/setup.d.ts +5 -0
  119. package/dest/single-node/recovery/setup.d.ts.map +1 -0
  120. package/dest/single-node/recovery/setup.js +5 -0
  121. package/dest/single-node/setup.d.ts +49 -0
  122. package/dest/single-node/setup.d.ts.map +1 -0
  123. package/dest/single-node/setup.js +56 -0
  124. package/dest/single-node/single_node_test_context.d.ts +374 -0
  125. package/dest/single-node/single_node_test_context.d.ts.map +1 -0
  126. package/dest/single-node/single_node_test_context.js +847 -0
  127. package/dest/spartan/setup_test_wallets.d.ts +1 -1
  128. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  129. package/dest/spartan/setup_test_wallets.js +13 -7
  130. package/dest/spartan/tx_metrics.d.ts +10 -1
  131. package/dest/spartan/tx_metrics.d.ts.map +1 -1
  132. package/dest/spartan/tx_metrics.js +32 -0
  133. package/dest/test-wallet/test_wallet.d.ts +23 -4
  134. package/dest/test-wallet/test_wallet.d.ts.map +1 -1
  135. package/dest/test-wallet/test_wallet.js +20 -4
  136. package/dest/test-wallet/utils.d.ts +36 -1
  137. package/dest/test-wallet/utils.d.ts.map +1 -1
  138. package/dest/test-wallet/utils.js +64 -4
  139. package/dest/test-wallet/wallet_worker_script.js +5 -2
  140. package/dest/test-wallet/worker_wallet.d.ts +5 -5
  141. package/dest/test-wallet/worker_wallet.d.ts.map +1 -1
  142. package/dest/test-wallet/worker_wallet.js +2 -2
  143. package/dest/test-wallet/worker_wallet_schema.js +2 -1
  144. package/package.json +40 -40
  145. package/src/automine/README.md +60 -0
  146. package/src/automine/automine_test_context.ts +153 -0
  147. package/src/automine/delivery/interactive_handshake_responder.ts +125 -0
  148. package/src/automine/delivery/onchain_delivery_harness.ts +213 -0
  149. package/src/{e2e_blacklist_token_contract → automine/token}/blacklist_token_contract_test.ts +19 -39
  150. package/src/{e2e_token_contract → automine/token}/token_contract_test.ts +24 -43
  151. package/src/automine/token/token_test_helpers.ts +138 -0
  152. package/src/bench/client_flows/benchmark.ts +3 -1
  153. package/src/bench/client_flows/client_flows_benchmark.ts +17 -4
  154. package/src/composed/ha/ha_full_setup.ts +466 -0
  155. package/src/fixtures/e2e_prover_test.ts +36 -20
  156. package/src/fixtures/fixtures.ts +11 -7
  157. package/src/fixtures/ha_setup.ts +7 -3
  158. package/src/fixtures/index.ts +1 -0
  159. package/src/fixtures/setup.ts +204 -162
  160. package/src/fixtures/standard_contracts_genesis.ts +28 -0
  161. package/src/fixtures/timing.ts +97 -0
  162. package/src/fixtures/wait_helpers.ts +333 -0
  163. package/src/forward-compatibility/wallet_service.ts +2 -2
  164. package/src/infra/README.md +12 -0
  165. package/src/multi-node/README.md +96 -0
  166. package/src/multi-node/block-production/setup.ts +272 -0
  167. package/src/multi-node/governance/setup.ts +172 -0
  168. package/src/multi-node/multi_node_test_context.ts +447 -0
  169. package/src/multi-node/slashing/inactivity_setup.ts +139 -0
  170. package/src/multi-node/slashing/setup.ts +433 -0
  171. package/src/p2p/README.md +78 -0
  172. package/src/{e2e_p2p → p2p}/p2p_network.ts +26 -0
  173. package/src/{e2e_p2p → p2p}/reqresp/utils.ts +5 -14
  174. package/src/p2p/shared.ts +329 -0
  175. package/src/shared/cross_chain_test_harness.ts +22 -13
  176. package/src/shared/gas_portal_test_harness.ts +13 -5
  177. package/src/shared/submit-transactions.ts +13 -5
  178. package/src/shared/timing_env.d.mts +39 -0
  179. package/src/shared/timing_env.mjs +152 -48
  180. package/src/shared/wait_for_l1_to_l2_message.ts +1 -1
  181. package/src/single-node/README.md +66 -0
  182. package/src/{e2e_cross_chain_messaging → single-node/cross-chain}/cross_chain_messaging_test.ts +100 -38
  183. package/src/single-node/cross-chain/message_test_helpers.ts +125 -0
  184. package/src/{e2e_fees → single-node/fees}/bridging_race.notest.ts +11 -7
  185. package/src/{e2e_fees → single-node/fees}/fees_test.ts +132 -47
  186. package/src/single-node/l1-reorgs/setup.ts +93 -0
  187. package/src/single-node/partial-proofs/setup.ts +8 -0
  188. package/src/single-node/proving/setup.ts +15 -0
  189. package/src/single-node/recovery/setup.ts +8 -0
  190. package/src/single-node/setup.ts +63 -0
  191. package/src/single-node/single_node_test_context.ts +1058 -0
  192. package/src/spartan/setup_test_wallets.ts +19 -7
  193. package/src/spartan/tx_metrics.ts +26 -0
  194. package/src/test-wallet/test_wallet.ts +28 -6
  195. package/src/test-wallet/utils.ts +102 -5
  196. package/src/test-wallet/wallet_worker_script.ts +6 -3
  197. package/src/test-wallet/worker_wallet.ts +5 -9
  198. package/src/test-wallet/worker_wallet_schema.ts +1 -1
  199. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +0 -56
  200. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +0 -1
  201. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +0 -59
  202. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +0 -1
  203. package/dest/e2e_deploy_contract/deploy_test.d.ts +0 -36
  204. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +0 -1
  205. package/dest/e2e_deploy_contract/deploy_test.js +0 -42
  206. package/dest/e2e_epochs/epochs_test.d.ts +0 -137
  207. package/dest/e2e_epochs/epochs_test.d.ts.map +0 -1
  208. package/dest/e2e_epochs/epochs_test.js +0 -485
  209. package/dest/e2e_fees/bridging_race.notest.d.ts.map +0 -1
  210. package/dest/e2e_fees/fees_test.d.ts +0 -89
  211. package/dest/e2e_fees/fees_test.d.ts.map +0 -1
  212. package/dest/e2e_l1_publisher/write_json.d.ts +0 -11
  213. package/dest/e2e_l1_publisher/write_json.d.ts.map +0 -1
  214. package/dest/e2e_l1_publisher/write_json.js +0 -57
  215. package/dest/e2e_multi_validator/utils.d.ts +0 -12
  216. package/dest/e2e_multi_validator/utils.d.ts.map +0 -1
  217. package/dest/e2e_nested_contract/nested_contract_test.d.ts +0 -22
  218. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +0 -1
  219. package/dest/e2e_nested_contract/nested_contract_test.js +0 -40
  220. package/dest/e2e_p2p/inactivity_slash_test.d.ts +0 -31
  221. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +0 -1
  222. package/dest/e2e_p2p/inactivity_slash_test.js +0 -138
  223. package/dest/e2e_p2p/p2p_network.d.ts.map +0 -1
  224. package/dest/e2e_p2p/reqresp/utils.d.ts +0 -22
  225. package/dest/e2e_p2p/reqresp/utils.d.ts.map +0 -1
  226. package/dest/e2e_p2p/shared.d.ts +0 -100
  227. package/dest/e2e_p2p/shared.d.ts.map +0 -1
  228. package/dest/e2e_p2p/shared.js +0 -257
  229. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +0 -2
  230. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +0 -1
  231. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +0 -1
  232. package/dest/e2e_token_contract/token_contract_test.d.ts +0 -44
  233. package/dest/e2e_token_contract/token_contract_test.d.ts.map +0 -1
  234. package/src/e2e_deploy_contract/deploy_test.ts +0 -73
  235. package/src/e2e_epochs/epochs_test.ts +0 -596
  236. package/src/e2e_l1_publisher/write_json.ts +0 -78
  237. package/src/e2e_nested_contract/nested_contract_test.ts +0 -51
  238. package/src/e2e_p2p/inactivity_slash_test.ts +0 -181
  239. package/src/e2e_p2p/shared.ts +0 -391
  240. /package/dest/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fetcher.js +0 -0
  241. /package/dest/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fixture.js +0 -0
  242. /package/dest/{e2e_multi_validator/utils.js → composed/web3signer/multi_validator_keystore_utils.js} +0 -0
  243. /package/src/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof.json +0 -0
  244. /package/src/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fetcher.ts +0 -0
  245. /package/src/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fixture.ts +0 -0
  246. /package/src/{e2e_multi_validator/utils.ts → composed/web3signer/multi_validator_keystore_utils.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/single-node/proving/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAIvG,OAAO,EACL,IAAI,EACJ,eAAe,EACf,qBAAqB,EACrB,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,GACpB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { jest } from '@jest/globals';
2
+ import { NO_REORG_SUBMISSION_EPOCHS, PROVING_SLOT_TIMING, setupWithProver } from '../setup.js';
3
+ import { SingleNodeTestContext, WORLD_STATE_CHECKPOINT_HISTORY } from '../single_node_test_context.js';
4
+ jest.setTimeout(1000 * 60 * 15);
5
+ export { jest, setupWithProver, SingleNodeTestContext, WORLD_STATE_CHECKPOINT_HISTORY, NO_REORG_SUBMISSION_EPOCHS, PROVING_SLOT_TIMING };
@@ -0,0 +1,5 @@
1
+ import { jest } from '@jest/globals';
2
+ import { NO_REORG_SUBMISSION_EPOCHS, PROVING_SLOT_TIMING, setupWithProver } from '../setup.js';
3
+ import { SingleNodeTestContext } from '../single_node_test_context.js';
4
+ export { jest, setupWithProver, SingleNodeTestContext, NO_REORG_SUBMISSION_EPOCHS, PROVING_SLOT_TIMING };
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaW5nbGUtbm9kZS9yZWNvdmVyeS9zZXR1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJdkUsT0FBTyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/single-node/recovery/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAIvE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { jest } from '@jest/globals';
2
+ import { NO_REORG_SUBMISSION_EPOCHS, PROVING_SLOT_TIMING, setupWithProver } from '../setup.js';
3
+ import { SingleNodeTestContext } from '../single_node_test_context.js';
4
+ jest.setTimeout(1000 * 60 * 10);
5
+ export { jest, setupWithProver, SingleNodeTestContext, NO_REORG_SUBMISSION_EPOCHS, PROVING_SLOT_TIMING };
@@ -0,0 +1,49 @@
1
+ import { SingleNodeTestContext, type SingleNodeTestOpts } from './single_node_test_context.js';
2
+ /**
3
+ * The single-node setup surface, organized over the prover axis (none / fake / real). Each factory is a
4
+ * thin wrapper over {@link SingleNodeTestContext.setup} that fixes the prover mode and the defaults that go
5
+ * with it; tests pick the factory matching their topology and vary it through `opts`.
6
+ */
7
+ /**
8
+ * Proof-submission window (in epochs) so large the chain never prunes/reorgs in the test's lifetime.
9
+ * Tests that must keep unproven blocks alive for their whole run (no prover, or a hand-driven settler)
10
+ * set `aztecProofSubmissionEpochs` to this rather than picking an arbitrary large number.
11
+ */
12
+ export declare const NO_REORG_SUBMISSION_EPOCHS = 1024;
13
+ /**
14
+ * The "12s floor" slot cadence: a 4s L1 slot with 3 L1 slots per L2 slot, i.e. a 12s L2 slot. Shared by
15
+ * the proving / partial-proof suites whose bodies wait in real wall-clock for the sequencer to build
16
+ * empty checkpoints (one per L2 slot) and so cannot warp the clock forward. 12s is the shortest L2 slot
17
+ * that still fits one block per checkpoint under the default 3s block-duration timing model (which needs
18
+ * S >= ~8.5s); an 8s slot derives 0 blocks per checkpoint and trips the timing-config guard. Running at
19
+ * this floor keeps those real-time waits as short as possible.
20
+ */
21
+ export declare const PROVING_SLOT_TIMING: {
22
+ readonly ethereumSlotDuration: 4;
23
+ readonly aztecSlotDurationInL1Slots: 3;
24
+ };
25
+ /**
26
+ * Single sequencer plus the context's fake in-process prover node (`realProofs: false`,
27
+ * `aztecProofSubmissionEpochs: 1`, `syncChainTip: 'checkpointed'`). This is exactly today's
28
+ * {@link SingleNodeTestContext.setup} default, used by the proving/partial-proofs/reorg/recovery suites.
29
+ */
30
+ export declare function setupWithProver(opts?: SingleNodeTestOpts): Promise<SingleNodeTestContext>;
31
+ /**
32
+ * Single production sequencer with **no prover node**, used by the block-building/sequencer/sync suites.
33
+ *
34
+ * Dropping the prover requires raising `aztecProofSubmissionEpochs` to a high value
35
+ * ({@link NO_REORG_SUBMISSION_EPOCHS}): with the context's default window of `1` and no prover producing
36
+ * proofs, unproven blocks get pruned out from under the test after an epoch — so the high window keeps the
37
+ * blocks alive. Also defaults the PXE to `syncChainTip: 'proposed'` (rather than the context's
38
+ * `'checkpointed'`) since these tests assert on freshly proposed, not-yet-checkpointed blocks.
39
+ *
40
+ * Defaults `aztecEpochDuration` to `32` (the production default). These tests were written against the raw
41
+ * `setup()` helper, which deployed with the 32-slot production epoch; the context's own default of `6`
42
+ * lands an epoch boundary mid-test, where proposer selection changes and the propose for the boundary slot
43
+ * silently reverts (no checkpoint lands, the chain stops advancing). The 32-slot epoch keeps the boundary
44
+ * out past the short runs these tests need. All three (`startProverNode`, the proof window, the epoch) and
45
+ * `pxeOpts` can be overridden via `opts` — tests that need a shorter epoch (e.g. governance signalling) set
46
+ * their own.
47
+ */
48
+ export declare function setupBlockProducer(opts?: SingleNodeTestOpts): Promise<SingleNodeTestContext>;
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaW5nbGUtbm9kZS9zZXR1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRS9GOzs7O0dBSUc7QUFFSDs7OztHQUlHO0FBQ0gsZUFBTyxNQUFNLDBCQUEwQixPQUFPLENBQUM7QUFFL0M7Ozs7Ozs7R0FPRztBQUNILGVBQU8sTUFBTSxtQkFBbUI7OztDQUd0QixDQUFDO0FBRVg7Ozs7R0FJRztBQUNILHdCQUFnQixlQUFlLENBQUMsSUFBSSxHQUFFLGtCQUF1QixHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUU3RjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsd0JBQWdCLGtCQUFrQixDQUFDLElBQUksR0FBRSxrQkFBdUIsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FRaEcifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/single-node/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAE/F;;;;GAIG;AAEH;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAE7F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAQhG"}
@@ -0,0 +1,56 @@
1
+ import { SingleNodeTestContext } from './single_node_test_context.js';
2
+ /**
3
+ * The single-node setup surface, organized over the prover axis (none / fake / real). Each factory is a
4
+ * thin wrapper over {@link SingleNodeTestContext.setup} that fixes the prover mode and the defaults that go
5
+ * with it; tests pick the factory matching their topology and vary it through `opts`.
6
+ */ /**
7
+ * Proof-submission window (in epochs) so large the chain never prunes/reorgs in the test's lifetime.
8
+ * Tests that must keep unproven blocks alive for their whole run (no prover, or a hand-driven settler)
9
+ * set `aztecProofSubmissionEpochs` to this rather than picking an arbitrary large number.
10
+ */ export const NO_REORG_SUBMISSION_EPOCHS = 1024;
11
+ /**
12
+ * The "12s floor" slot cadence: a 4s L1 slot with 3 L1 slots per L2 slot, i.e. a 12s L2 slot. Shared by
13
+ * the proving / partial-proof suites whose bodies wait in real wall-clock for the sequencer to build
14
+ * empty checkpoints (one per L2 slot) and so cannot warp the clock forward. 12s is the shortest L2 slot
15
+ * that still fits one block per checkpoint under the default 3s block-duration timing model (which needs
16
+ * S >= ~8.5s); an 8s slot derives 0 blocks per checkpoint and trips the timing-config guard. Running at
17
+ * this floor keeps those real-time waits as short as possible.
18
+ */ export const PROVING_SLOT_TIMING = {
19
+ ethereumSlotDuration: 4,
20
+ aztecSlotDurationInL1Slots: 3
21
+ };
22
+ /**
23
+ * Single sequencer plus the context's fake in-process prover node (`realProofs: false`,
24
+ * `aztecProofSubmissionEpochs: 1`, `syncChainTip: 'checkpointed'`). This is exactly today's
25
+ * {@link SingleNodeTestContext.setup} default, used by the proving/partial-proofs/reorg/recovery suites.
26
+ */ export function setupWithProver(opts = {}) {
27
+ return SingleNodeTestContext.setup(opts);
28
+ }
29
+ /**
30
+ * Single production sequencer with **no prover node**, used by the block-building/sequencer/sync suites.
31
+ *
32
+ * Dropping the prover requires raising `aztecProofSubmissionEpochs` to a high value
33
+ * ({@link NO_REORG_SUBMISSION_EPOCHS}): with the context's default window of `1` and no prover producing
34
+ * proofs, unproven blocks get pruned out from under the test after an epoch — so the high window keeps the
35
+ * blocks alive. Also defaults the PXE to `syncChainTip: 'proposed'` (rather than the context's
36
+ * `'checkpointed'`) since these tests assert on freshly proposed, not-yet-checkpointed blocks.
37
+ *
38
+ * Defaults `aztecEpochDuration` to `32` (the production default). These tests were written against the raw
39
+ * `setup()` helper, which deployed with the 32-slot production epoch; the context's own default of `6`
40
+ * lands an epoch boundary mid-test, where proposer selection changes and the propose for the boundary slot
41
+ * silently reverts (no checkpoint lands, the chain stops advancing). The 32-slot epoch keeps the boundary
42
+ * out past the short runs these tests need. All three (`startProverNode`, the proof window, the epoch) and
43
+ * `pxeOpts` can be overridden via `opts` — tests that need a shorter epoch (e.g. governance signalling) set
44
+ * their own.
45
+ */ export function setupBlockProducer(opts = {}) {
46
+ return SingleNodeTestContext.setup({
47
+ startProverNode: false,
48
+ aztecProofSubmissionEpochs: NO_REORG_SUBMISSION_EPOCHS,
49
+ aztecEpochDuration: 32,
50
+ ...opts,
51
+ pxeOpts: {
52
+ syncChainTip: 'proposed',
53
+ ...opts.pxeOpts
54
+ }
55
+ });
56
+ }
@@ -0,0 +1,374 @@
1
+ import type { InitialAccountData } from '@aztec/accounts/testing';
2
+ import type { Archiver } from '@aztec/archiver';
3
+ import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
4
+ import type { AztecAddress } from '@aztec/aztec.js/addresses';
5
+ import { Fr } from '@aztec/aztec.js/fields';
6
+ import type { Logger } from '@aztec/aztec.js/log';
7
+ import type { Wallet } from '@aztec/aztec.js/wallet';
8
+ import type { CheatCodes } from '@aztec/aztec/testing';
9
+ import { EpochCache } from '@aztec/epoch-cache';
10
+ import { RollupContract } from '@aztec/ethereum/contracts';
11
+ import { Delayer } from '@aztec/ethereum/l1-tx-utils';
12
+ import { ChainMonitor } from '@aztec/ethereum/test';
13
+ import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
14
+ import { BlockNumber, CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
15
+ import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
16
+ import { TestContract } from '@aztec/noir-test-contracts.js/Test';
17
+ import type { ProverNodeConfig, ProverNodeDeps } from '@aztec/prover-node';
18
+ import type { PXEConfig } from '@aztec/pxe/config';
19
+ import { type Sequencer, type SequencerClient, type SequencerEvents, SequencerState } from '@aztec/sequencer-client';
20
+ import { type BlockParameter, EthAddress } from '@aztec/stdlib/block';
21
+ import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
22
+ import type { SlashingProtectionDatabase } from '@aztec/validator-ha-signer/types';
23
+ import type { Hex } from 'viem';
24
+ import { type EndToEndContext, type SetupOptions } from '../fixtures/utils.js';
25
+ export declare const WORLD_STATE_CHECKPOINT_HISTORY = 2;
26
+ export declare const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
27
+ export declare const ARCHIVER_POLL_INTERVAL = 50;
28
+ /**
29
+ * Default L1 (ethereum) slot duration in seconds for single-node e2e tests. Kept at 8s, the fast-profile
30
+ * boundary (`FAST_PROFILE_ETHEREUM_SLOT_DURATION`): at 8s the proposer still uses the production operational
31
+ * budgets (fast-profile clamping only kicks in strictly below 8s), so the default single-node L2 slot is
32
+ * `2 x 8 = 16s`. CI previously ran at 12s (24s L2 slots); unifying it with the local value removes a
33
+ * CI-vs-local cadence asymmetry and cuts every default-cadence single-node suite by a third.
34
+ */
35
+ export declare const DEFAULT_L1_BLOCK_TIME = 8;
36
+ export type SingleNodeTestOpts = Partial<SetupOptions> & {
37
+ numberOfAccounts?: number;
38
+ pxeOpts?: Partial<PXEConfig>;
39
+ aztecSlotDurationInL1Slots?: number;
40
+ /** Skip creating/registering the hardcoded account during setup (for tests that handle accounts themselves). */
41
+ skipHardcodedAccount?: boolean;
42
+ /**
43
+ * Force the hardcoded-account fast-path even when an initial sequencer is running. Useful for
44
+ * tests with tight per-block gas budgets that can't fit a full account-deploy tx.
45
+ */
46
+ useHardcodedAccount?: boolean;
47
+ };
48
+ export type TrackedSequencerEvent = {
49
+ [K in keyof SequencerEvents]: Parameters<SequencerEvents[K]>[0] & {
50
+ type: K;
51
+ sequencerIndex: number;
52
+ validator: EthAddress;
53
+ };
54
+ }[keyof SequencerEvents];
55
+ /** A `block-proposed` sequencer event captured for the pipelining-offset assertion. */
56
+ export type BlockProposedEvent = {
57
+ blockNumber: BlockNumber;
58
+ slot: SlotNumber;
59
+ buildSlot: SlotNumber;
60
+ };
61
+ /**
62
+ * The 24s-slot reorg cadence shared by every reorg/prune/HA test, regardless of single-node vs
63
+ * multi-validator topology: a 24s L2 slot, 5s blocks, and a 4-slot epoch. The 5s block duration is chosen
64
+ * so the fast-profile budgets both reorg profiles run under (eth < 8s: p2p 0.5s, prepare 0.5s, init 1s)
65
+ * still fit ~3 full block sub-slots per checkpoint — `floor((24 - 1 - 5 - 2*0.5 - 0.5) / 5) = 3` — which
66
+ * the l1-reorgs suites' `assertMultipleBlocksPerSlot(2)` assertions require. The two concrete reorg
67
+ * profiles ({@link FAST_REORG_TIMING}, {@link MULTI_VALIDATOR_REORG_TIMING}) extend this with their topology's L1
68
+ * slot duration and any extra knobs. Kept timing-only — `maxSpeedUpAttempts`, `cancelTxOnTimeout`, and
69
+ * `aztecProofSubmissionEpochs` encode per-test scenario intent and stay explicit at the call site.
70
+ */
71
+ export declare const REORG_TIMING_BASE: {
72
+ readonly aztecSlotDuration: 24;
73
+ readonly blockDurationMs: 5000;
74
+ readonly aztecEpochDuration: 4;
75
+ };
76
+ /**
77
+ * Timing-only profile shared by the fast single-node L1-reorg tests (`proving/optimistic`'s reorg
78
+ * cases and `l1-reorgs/`). Extends {@link REORG_TIMING_BASE} with mainnet-style 32-slot anvil epochs
79
+ * and a 4s L1 slot. Note: `ethereumSlotDuration` stays at 4 here (not unified to
80
+ * {@link MULTI_VALIDATOR_REORG_TIMING}'s 6) — at eth=6 the proof-submission-window timing in the
81
+ * proof-removal/proof-restore reorg assertions in `l1-reorgs/blocks` starves and times out, so the 4s
82
+ * L1 slot is required for the single-node reorg path. Tests that need a different epoch length (e.g. 8
83
+ * for the "with replacement" case) override `aztecEpochDuration` after the spread.
84
+ */
85
+ export declare const FAST_REORG_TIMING: {
86
+ readonly aztecSlotDuration: 24;
87
+ readonly blockDurationMs: 5000;
88
+ readonly aztecEpochDuration: 4;
89
+ readonly ethereumSlotDuration: 4;
90
+ readonly anvilSlotsInAnEpoch: 32;
91
+ };
92
+ /**
93
+ * Timing-only profile naming the 24s/6s reorg-and-prune cadence copied verbatim across the
94
+ * multi-validator recovery and high-availability tests (`recovery/proposal_failure_recovery`,
95
+ * `recovery/equivocation_recovery`, `high-availability/ha_sync`,
96
+ * `high-availability/ha_checkpoint_handoff`). The multi-validator analogue of
97
+ * {@link FAST_REORG_TIMING}, adding the 0.5s attestation-propagation budget those committee tests
98
+ * need. Timing-only: committee size, `aztecProofSubmissionEpochs`, and the slasher block stay
99
+ * per-test. Spread BEFORE per-test overrides so a test can still bump e.g. `aztecEpochDuration`.
100
+ */
101
+ export declare const MULTI_VALIDATOR_REORG_TIMING: {
102
+ readonly aztecSlotDuration: 24;
103
+ readonly blockDurationMs: 5000;
104
+ readonly aztecEpochDuration: 4;
105
+ readonly ethereumSlotDuration: 6;
106
+ readonly attestationPropagationTime: 0.5;
107
+ };
108
+ /**
109
+ * Timing-only profile naming the 24s/12s multi-validator block-production cadence copied across
110
+ * `block-production/` (`simple`, `first_slot`, and `proof_boundary`). Uses `aztecSlotDurationInL1Slots: 2`
111
+ * rather than an explicit `aztecSlotDuration: 24` so the L2 slot stays coupled to `ethereumSlotDuration`
112
+ * if a test overrides eth. The 4s block duration keeps enough full block sub-slots per checkpoint under
113
+ * the production budgets these eth=12 tests run with (init 1s, prepare 1s, min-block 2s, p2p =
114
+ * attestationPropagationTime): `floor((24 - 1 - 4 - 2P - 1) / 4)` = 4 blocks at P<=1, 3 blocks at P=2
115
+ * (the default). Deliberately omits `attestationPropagationTime` (per-scenario: default 2, 0.5, or 1) —
116
+ * set it per test. `high_tps` pins the old 36s/6s cadence at its own call site because its 2-txs-x-2.5s
117
+ * per-block budget does not fit a 4s block. Spread BEFORE per-test overrides.
118
+ */
119
+ export declare const MULTI_VALIDATOR_BLOCK_PRODUCTION_TIMING: {
120
+ readonly ethereumSlotDuration: 12;
121
+ readonly aztecSlotDurationInL1Slots: 2;
122
+ readonly blockDurationMs: 4000;
123
+ };
124
+ /**
125
+ * Timing-only profile naming the 72s wide-slot multiple-blocks-per-slot cadence copied across the
126
+ * block-production and recovery tests (`block-production/`'s `setupBlockProductionWithProver`, `block-production/blob_promotion`,
127
+ * `recovery/pipeline_prune`). A-914:
128
+ * pipelined multiple-blocks-per-slot needs this 72s/12s cadence (not the tighter 36s/4s), otherwise non-proposer nodes hit
129
+ * `CheckpointNumberNotSequentialError` when the pipelined proposer races ahead of L1 confirmation. The
130
+ * larger `perBlockAllocationMultiplier` lets each of the several blocks per slot fit non-trivial txs.
131
+ * Spread BEFORE per-test overrides (e.g. `mockGossipSubNetworkLatency`, `maxTxsPerCheckpoint`).
132
+ */
133
+ export declare const WIDE_SLOT_TIMING: {
134
+ readonly ethereumSlotDuration: 12;
135
+ readonly aztecSlotDuration: 72;
136
+ readonly blockDurationMs: 5500;
137
+ readonly aztecEpochDuration: 4;
138
+ readonly perBlockAllocationMultiplier: 8;
139
+ readonly aztecTargetCommitteeSize: 3;
140
+ };
141
+ /**
142
+ * Base class for the prod-sequencer single-node test topology: one node running the production
143
+ * sequencer with fast block times and short epochs, an optional fake-proof prover node, and the
144
+ * environment it runs in (in-proc anvil + L1 deploy). Owns node spawning
145
+ * (`createNonValidatorNode` / `createProverNode` incl. the mock-gossip `p2pServiceFactory` wiring,
146
+ * which is harmless with a single node), the `ChainMonitor`, and the epoch / proof-window / reorg
147
+ * waiters and assertion helpers shared by every test in the category.
148
+ *
149
+ * {@link MultiNodeTestContext} extends this with the N-validator topology (validator-node spawning,
150
+ * committee/proposal/attestation convergence helpers). Single-node-topology tests use this base
151
+ * directly from the sibling `single-node/` category.
152
+ */
153
+ export declare class SingleNodeTestContext {
154
+ context: EndToEndContext;
155
+ l1Client: ExtendedViemWalletClient;
156
+ rollup: RollupContract;
157
+ constants: L1RollupConstants;
158
+ logger: Logger;
159
+ monitor: ChainMonitor;
160
+ epochCache: EpochCache;
161
+ proverDelayer: Delayer;
162
+ sequencerDelayer: Delayer;
163
+ proverNodes: AztecNodeService[];
164
+ nodes: AztecNodeService[];
165
+ epochDuration: number;
166
+ L1_BLOCK_TIME_IN_S: number;
167
+ L2_SLOT_DURATION_IN_S: number;
168
+ static setup<T extends SingleNodeTestContext>(this: new () => T, opts?: SingleNodeTestOpts): Promise<T>;
169
+ static getSlotDurations(opts?: SingleNodeTestOpts): {
170
+ ethereumSlotDuration: number;
171
+ aztecSlotDuration: number;
172
+ aztecEpochDuration: number;
173
+ aztecProofSubmissionEpochs: number;
174
+ };
175
+ setup(opts?: SingleNodeTestOpts): Promise<void>;
176
+ /**
177
+ * Populates the context-derived state (tracked nodes, L1 client, rollup, epoch cache, chain
178
+ * monitor, delayers, timing constants) from an already-built {@link EndToEndContext}. Split out of
179
+ * {@link setup} so prover-specific subclasses that build the environment with their own bespoke
180
+ * `setup(...)` opts (e.g. `FullProverTest`) can still reuse the base node/teardown machinery
181
+ * without inheriting the base's default node config. Slot/epoch durations are read from the
182
+ * resolved `context.config` so the recorded constants match whatever the environment was deployed
183
+ * with.
184
+ */
185
+ protected hydrateFromContext(context: EndToEndContext): Promise<void>;
186
+ teardown(): Promise<void>;
187
+ /**
188
+ * Computes InitialAccountData for a SchnorrHardcodedKeyAccountContract.
189
+ * This contract has a hardcoded signing key and no initializer, so it can be used without
190
+ * on-chain deployment. Pass the returned data in `additionallyFundedAccounts` so the address
191
+ * gets funded with fee juice in genesis.
192
+ */
193
+ static getHardcodedAccountData(secret: Fr, salt: Fr): Promise<InitialAccountData>;
194
+ /**
195
+ * Registers a SchnorrHardcodedKeyAccountContract in PXE. The account must have been funded
196
+ * at genesis (via getHardcodedAccountData). No on-chain deployment or block mining needed.
197
+ */
198
+ registerHardcodedAccount(accountData: InitialAccountData): Promise<AztecAddress>;
199
+ createProverNode(opts?: {
200
+ dontStart?: boolean;
201
+ proverNodeDeps?: Partial<ProverNodeDeps>;
202
+ } & Partial<ProverNodeConfig>): Promise<AztecNodeService>;
203
+ createNonValidatorNode(opts?: Partial<AztecNodeConfig>): Promise<AztecNodeService>;
204
+ protected createNode(opts?: Partial<AztecNodeConfig> & {
205
+ dontStartSequencer?: boolean;
206
+ slashingProtectionDb?: SlashingProtectionDatabase;
207
+ }): Promise<AztecNodeService>;
208
+ protected getNextPrivateKey(): Hex;
209
+ /** Waits until the epoch begins (ie until the immediately previous L1 block is mined). */
210
+ waitUntilEpochStarts(epoch: number): Promise<bigint>;
211
+ /**
212
+ * Waits until the next epoch boundary and returns that epoch's number. Anchors tests
213
+ * on a guaranteed-fresh epoch regardless of how much wall time `beforeEach` consumed —
214
+ * `waitUntilEpochStarts(1)` returns immediately when the chain has already advanced past
215
+ * slot 4, which under CI load can leave only seconds of the target epoch remaining.
216
+ *
217
+ * If the chain has more than two slots of headroom before the target boundary, warps
218
+ * the L1 clock to within two slots of the boundary instead of waiting in wall-clock.
219
+ * The two-slot tail is intentional — it lets the sequencer/builder settle so the first
220
+ * checkpoint of the target epoch lands correctly.
221
+ */
222
+ waitUntilNextEpochStarts(): Promise<EpochNumber>;
223
+ /**
224
+ * Warps the L1 clock to within `leadSlots` slots of the start of `epoch`, then waits for that boundary in
225
+ * wall-clock, skipping the dead stretch where the chain just advances one L1 block per slot until an epoch
226
+ * ends. Anything the post-warp assertions depend on must already be produced before calling this — warping
227
+ * the tail away does not change what gets proven, and the shared `TestDateProvider` moves the
228
+ * prover/node/sequencer clocks together so the epoch finalizes right after the warp. The `leadSlots` tail
229
+ * (default 2) is left in real time so the sequencer can publish the epoch's final checkpoint before the
230
+ * boundary, and so any post-warp sampler observes an in-epoch slot rather than the epoch's last slot.
231
+ * Forward-only, so a no-op when already within `leadSlots` of the boundary.
232
+ */
233
+ warpToEpochStart(epoch: number, opts?: {
234
+ leadSlots?: number;
235
+ }): Promise<bigint>;
236
+ /**
237
+ * Most of a proof-submission window is dead wall-clock time, so warp the L1 clock forward to `leadSlots`
238
+ * (default 2) L2 slots before the window's last slot. A subsequent
239
+ * {@link waitUntilLastSlotOfProofSubmissionWindow} then only sleeps out the few remaining real slots,
240
+ * leaving enough real time for any in-flight proving, pruning, and recovery to happen organically. Only
241
+ * warps forward, so it is a no-op when the chain is already within `leadSlots`+1 slots of the window end.
242
+ */
243
+ warpNearSubmissionWindowEnd(epoch: number, opts?: {
244
+ leadSlots?: number;
245
+ }): Promise<void>;
246
+ /** Waits until the given checkpoint number is mined. */
247
+ waitUntilCheckpointNumber(target: CheckpointNumber, timeout?: number): Promise<void>;
248
+ /** Waits until the given checkpoint number is marked as proven. */
249
+ waitUntilProvenCheckpointNumber(target: CheckpointNumber, timeout?: number): Promise<CheckpointNumber>;
250
+ /** Waits until the last slot of the proof submission window for a given epoch. */
251
+ waitUntilLastSlotOfProofSubmissionWindow(epochNumber: number | bigint): Promise<void>;
252
+ /**
253
+ * Timestamp one L1 block before L2 `slot` begins — the instant a pipelined proposer starts
254
+ * building for that slot. `opts.lead` overrides the default one-L1-block lead (e.g. when a test
255
+ * needs an extra block-duration margin to guarantee sub-slot 1 is reachable).
256
+ */
257
+ buildWindowTimestampForSlot(slot: SlotNumber, opts?: {
258
+ lead?: number;
259
+ }): bigint;
260
+ /**
261
+ * Warps the L1 clock to the build window of `slot` (one L1 block before the slot begins) with
262
+ * `resetBlockInterval`, so a pipelined proposer engages cleanly when its sequencer starts.
263
+ * @returns The slot warped to.
264
+ */
265
+ warpToBuildWindowForSlot(slot: SlotNumber): Promise<SlotNumber>;
266
+ /**
267
+ * Waits (in wall-clock, without warping) until the L1 clock reaches the build window of `slot`.
268
+ * For production-sequencer tests that can't warp. `opts.lead` extends the lead beyond the default
269
+ * one L1 block; `opts.timeout` bounds the wait (defaults to three L2 slots).
270
+ * @returns The slot waited for.
271
+ */
272
+ waitForBuildWindowForSlot(slot: SlotNumber, opts?: {
273
+ lead?: number;
274
+ timeout?: number;
275
+ }): Promise<SlotNumber>;
276
+ /** Waits for the aztec node to sync to the target block number. */
277
+ waitForNodeToSync(blockNumber: BlockNumber, type: 'proven' | 'finalized' | 'historic'): Promise<void>;
278
+ /**
279
+ * Waits until every prover node has submitted a proof for `epoch` (of length `epochLength`
280
+ * checkpoints) on L1. Polls `rollup.getHasSubmittedProof` for each prover registered in
281
+ * {@link proverNodes}.
282
+ */
283
+ waitForAllProversToSubmit(epoch: EpochNumber, epochLength: number, opts?: {
284
+ timeout?: number;
285
+ }): Promise<void>;
286
+ /** Registers the SpamContract on the given wallet. */
287
+ registerSpamContract(wallet: Wallet, salt?: Fr): Promise<SpamContract>;
288
+ /** Registers the TestContract on the given wallet. */
289
+ registerTestContract(wallet: Wallet, salt?: Fr): Promise<TestContract>;
290
+ /** Creates an L1 client using a fresh account with funds from anvil, with a tx delayer already set up. */
291
+ createL1Client(): Promise<{
292
+ client: ExtendedViemWalletClient;
293
+ delayer: Delayer;
294
+ }>;
295
+ /** Verifies whether the given block number is found on the aztec node. */
296
+ verifyHistoricBlock(blockNumber: BlockParameter, expectedSuccess: boolean): Promise<void>;
297
+ /**
298
+ * Verifies that at least one checkpoint has `targetBlockCount` blocks and that block numbering is
299
+ * contiguous within every checkpoint (MBPS validation).
300
+ *
301
+ * Two optional wait modes (both poll before reading checkpoints):
302
+ * - `opts.wait`: waits until some checkpoint reaches `targetBlockCount` blocks (the proposed-tip
303
+ * MBPS setup case), and
304
+ * - `opts.targetBlock`: waits until the archiver's checkpointed tip reaches that block number
305
+ * (the pipeline-prune recovery case).
306
+ *
307
+ * Reads from `opts.archiver` when given (e.g. a specific validator node's block source); otherwise
308
+ * from the initial node's archiver.
309
+ * @returns The number of the first checkpoint with at least `targetBlockCount` blocks.
310
+ */
311
+ assertMultipleBlocksPerSlot(targetBlockCount: number, opts?: {
312
+ wait?: boolean;
313
+ targetBlock?: BlockNumber;
314
+ archiver?: Archiver;
315
+ timeout?: number;
316
+ }): Promise<CheckpointNumber>;
317
+ /**
318
+ * Asserts pipelining by comparing the build slot (from block-proposed events) against the
319
+ * submission slot (from block headers). With pipelining, the block is built in slot N but its
320
+ * header carries submission slot N+1. Also checks each block's coinbase matches the expected
321
+ * proposer for its submission slot. Reads checkpoints from `archiver` (typically a validator
322
+ * node's block source).
323
+ */
324
+ assertProposerPipelining(archiver: Archiver, blockProposedEvents: BlockProposedEvent[], logger: Logger): Promise<void>;
325
+ watchSequencerEvents(sequencers: SequencerClient[], getMetadata?: (i: number) => Record<string, any>, additionalFailEventKeys?: (keyof SequencerEvents)[]): {
326
+ failEvents: TrackedSequencerEvent[];
327
+ stateChanges: TrackedSequencerEvent[];
328
+ };
329
+ /**
330
+ * Resolves with the event args the first time `sequencer` emits `event` with args matching
331
+ * `match`. Rejects after `opts.timeout` ms (default 60s). Wraps the
332
+ * `executeTimeout(signal => new Promise(...))` one-shot subscription boilerplate, cleaning up
333
+ * the listener on both the resolve and the abort paths.
334
+ */
335
+ waitForSequencerEvent<E extends keyof SequencerEvents>(sequencer: Sequencer, event: E, match?: (args: Parameters<SequencerEvents[E]>[0]) => boolean, opts?: {
336
+ timeout?: number;
337
+ }): Promise<Parameters<SequencerEvents[E]>[0]>;
338
+ /** Returns the {@link SequencerClient} of each given node, throwing if any node has no sequencer. */
339
+ getSequencers(nodes: AztecNodeService[]): SequencerClient[];
340
+ /** Starts the sequencer on each given node in parallel. */
341
+ startSequencers(nodes: AztecNodeService[]): Promise<void>;
342
+ /**
343
+ * Resolves once `sequencer` is in `state`, returning immediately if it is already there. Use to
344
+ * flush in-flight work (e.g. wait for `IDLE` so pending L1 publishes have been issued) before
345
+ * sampling chain state. Builds on {@link waitForSequencerEvent} for the not-yet-there path.
346
+ */
347
+ waitForSequencerState(sequencer: Sequencer, state: SequencerState, opts?: {
348
+ timeout?: number;
349
+ }): Promise<void>;
350
+ assertNoFailuresFromSequencers(failEvents: TrackedSequencerEvent[]): void;
351
+ /**
352
+ * Warps the L1 clock to `target` with every given node's sequencer paused, then resumes them
353
+ * (pass `restart: false` to leave them paused, e.g. until some clock-driven effect is confirmed).
354
+ *
355
+ * Warping the shared date provider under live sequencers interrupts whatever iteration is mid-build,
356
+ * producing spurious `block-build-failed` / `checkpoint-error` events and dropped checkpoints. The
357
+ * sequencers are therefore paused first: the poll loop halts and the in-flight iteration, its pending L1
358
+ * submission, and any pending fallback vote all finish untouched before the warp, so nothing fires with a
359
+ * stale slot afterwards. Pausing leaves the validator clients (and their slashing-protection stores) and
360
+ * publishers running, so a later {@link SequencerClient.start} cleanly resumes; archivers, provers, and
361
+ * the chain monitor keep running throughout, so clock-driven effects of the warp (e.g. an orphan-block
362
+ * prune) still fire.
363
+ *
364
+ * The warp is performed here (rather than via a caller-supplied callback) so it happens only after the
365
+ * pause has drained. Draining can take several slots, so a `target` computed before the pause may already
366
+ * lie in the past by the time the sequencers are down. The warp is therefore skipped when the L1 clock has
367
+ * already reached or passed `target` — `evm_setNextBlockTimestamp` rejects a non-advancing timestamp, so
368
+ * warping there would throw "timestamp in the past".
369
+ */
370
+ warpWithSequencersPaused(nodes: AztecNodeService[], cheatCodes: CheatCodes, target: bigint, opts?: {
371
+ restart?: boolean;
372
+ }): Promise<void>;
373
+ }
374
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlX25vZGVfdGVzdF9jb250ZXh0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2luZ2xlLW5vZGUvc2luZ2xlX25vZGVfdGVzdF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLGdCQUFnQixFQUEwQixNQUFNLG1CQUFtQixDQUFDO0FBRW5HLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQThELE1BQU0sNkJBQTZCLENBQUM7QUFDbEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFPekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8s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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single_node_test_context.d.ts","sourceRoot":"","sources":["../../src/single-node/single_node_test_context.ts"],"names":[],"mappings":"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"}