@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
@@ -1,7 +1,7 @@
1
1
  import { generateSchnorrAccounts } from '@aztec/accounts/testing';
2
2
  import { NO_FROM } from '@aztec/aztec.js/account';
3
3
  import { AztecAddress } from '@aztec/aztec.js/addresses';
4
- import { NO_WAIT } from '@aztec/aztec.js/contracts';
4
+ import { DefaultWaitOpts, NO_WAIT } from '@aztec/aztec.js/contracts';
5
5
  import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
6
6
  import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
7
7
  import { type FeePaymentMethod, SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
@@ -56,6 +56,8 @@ export async function setupTestAccountsWithTokens(
56
56
 
57
57
  const aztecNode = createAztecNodeClient(nodeUrl);
58
58
  const wallet = await TestWallet.create(aztecNode);
59
+ // Remote JSON-RPC node: keep the 1s poll cadence rather than the in-process TestWallet fast default.
60
+ wallet.setDefaultWaitInterval(DefaultWaitOpts.interval);
59
61
 
60
62
  const [recipientAccount, ...accounts] = (await registerInitialLocalNetworkAccountsInWallet(wallet)).slice(
61
63
  0,
@@ -86,8 +88,10 @@ export async function deploySponsoredTestAccountsWithTokens(
86
88
  numberOfFundedWallets = 1,
87
89
  ): Promise<TestAccounts> {
88
90
  const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
89
- const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
90
- const fundedAccounts = await Promise.all(funded.map(a => wallet.createSchnorrAccount(a.secret, a.salt)));
91
+ const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt, recipient.signingKey);
92
+ const fundedAccounts = await Promise.all(
93
+ funded.map(a => wallet.createSchnorrAccount(a.secret, a.salt, a.signingKey)),
94
+ );
91
95
 
92
96
  await registerSponsoredFPC(wallet);
93
97
 
@@ -233,8 +237,10 @@ export async function deploySponsoredTestAccounts(
233
237
  opts?: { estimateGas?: boolean },
234
238
  ): Promise<TestAccountsWithoutTokens> {
235
239
  const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
236
- const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
237
- const fundedAccounts = await Promise.all(funded.map(a => wallet.createSchnorrAccount(a.secret, a.salt)));
240
+ const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt, recipient.signingKey);
241
+ const fundedAccounts = await Promise.all(
242
+ funded.map(a => wallet.createSchnorrAccount(a.secret, a.salt, a.signingKey)),
243
+ );
238
244
 
239
245
  await registerSponsoredFPC(wallet);
240
246
 
@@ -276,10 +282,14 @@ export async function deployTestAccountsWithTokens(
276
282
  ): Promise<TestAccounts> {
277
283
  const aztecNode = createAztecNodeClient(nodeUrl);
278
284
  const wallet = await TestWallet.create(aztecNode);
285
+ // Remote JSON-RPC node: keep the 1s poll cadence rather than the in-process TestWallet fast default.
286
+ wallet.setDefaultWaitInterval(DefaultWaitOpts.interval);
279
287
 
280
288
  const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
281
- const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
282
- const fundedAccounts = await Promise.all(funded.map(a => wallet.createSchnorrAccount(a.secret, a.salt)));
289
+ const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt, recipient.signingKey);
290
+ const fundedAccounts = await Promise.all(
291
+ funded.map(a => wallet.createSchnorrAccount(a.secret, a.salt, a.signingKey)),
292
+ );
283
293
 
284
294
  const claims = await Promise.all(
285
295
  fundedAccounts.map(a => bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, aztecNode, a.address, undefined, logger)),
@@ -459,6 +469,8 @@ export async function createWalletAndAztecNodeClient(
459
469
  proverEnabled,
460
470
  };
461
471
  const wallet = await TestWallet.create(aztecNode, pxeConfig);
472
+ // Remote JSON-RPC node: keep the 1s poll cadence rather than the in-process TestWallet fast default.
473
+ wallet.setDefaultWaitInterval(DefaultWaitOpts.interval);
462
474
 
463
475
  return {
464
476
  wallet,
@@ -161,6 +161,7 @@ export class TxInclusionMetrics {
161
161
  private mempoolMinedDelay:
162
162
  | { txP50: number; txP95: number; attestationP50: number; attestationP95: number }
163
163
  | undefined;
164
+ private inclusionOutcome: { mined: number; failed: number } | undefined;
164
165
 
165
166
  constructor(
166
167
  private aztecNode: AztecNode,
@@ -249,6 +250,16 @@ export class TxInclusionMetrics {
249
250
  }
250
251
  }
251
252
 
253
+ /**
254
+ * Whether this tx was ever observed in a block (by the block-watcher or a mined receipt).
255
+ * Idempotent first-sighting semantics: a later reorg / pool eviction never clears it, so callers
256
+ * can treat "ever mined" as included regardless of what happens to the tx afterwards.
257
+ */
258
+ public wasMined(txHash: string): boolean {
259
+ const d = this.data.get(txHash);
260
+ return !!d && d.minedAtMs !== -1;
261
+ }
262
+
252
263
  /** Per-tx inclusion records for a group. Used to serialise out for downstream tooling. */
253
264
  getInclusionRecords(group?: string): TxInclusionData[] {
254
265
  const out: TxInclusionData[] = [];
@@ -342,6 +353,11 @@ export class TxInclusionMetrics {
342
353
  this.mempoolMinedDelay = { txP50, txP95, attestationP50, attestationP95 };
343
354
  }
344
355
 
356
+ /** Mined vs failed counts for the high-value lane — recorded instead of asserting strict 1:1 inclusion. */
357
+ public recordInclusionOutcome(mined: number, failed: number): void {
358
+ this.inclusionOutcome = { mined, failed };
359
+ }
360
+
345
361
  toGithubActionBenchmarkJSON(): Array<{ name: string; unit: string; value: number; range?: number; extra?: string }> {
346
362
  const data: Array<{ name: string; unit: string; value: number; range?: number; extra?: string }> = [];
347
363
  for (const group of this.groups) {
@@ -423,6 +439,16 @@ export class TxInclusionMetrics {
423
439
  );
424
440
  }
425
441
 
442
+ if (this.inclusionOutcome) {
443
+ const { mined, failed } = this.inclusionOutcome;
444
+ const total = mined + failed;
445
+ data.push(
446
+ { name: 'inclusion/mined_count', unit: 'count', value: mined },
447
+ { name: 'inclusion/failed_count', unit: 'count', value: failed },
448
+ { name: 'inclusion/success_ratio', unit: 'ratio', value: total > 0 ? mined / total : 0 },
449
+ );
450
+ }
451
+
426
452
  const scenario = process.env.BENCH_SCENARIO?.trim();
427
453
  if (!scenario) {
428
454
  return data;
@@ -23,11 +23,10 @@ import { Fq, Fr } from '@aztec/foundation/curves/bn254';
23
23
  import { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
24
24
  import type { NotesFilter } from '@aztec/pxe/client/lazy';
25
25
  import { type PXEConfig, getPXEConfig } from '@aztec/pxe/config';
26
- import { PXE, type PXECreationOptions, createPXE } from '@aztec/pxe/server';
26
+ import { PXE, type PXECreationOptions, type TaggingSecretSource, createPXE } from '@aztec/pxe/server';
27
27
  import { AuthWitness } from '@aztec/stdlib/auth-witness';
28
28
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
29
29
  import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
30
- import { deriveSigningKey } from '@aztec/stdlib/keys';
31
30
  import type { NoteDao } from '@aztec/stdlib/note';
32
31
  import {
33
32
  type BlockHeader,
@@ -59,6 +58,13 @@ export interface AccountData {
59
58
  * utilities
60
59
  * It is intended to be used in e2e tests.
61
60
  */
61
+ /**
62
+ * Poll interval (in seconds) for in-process TestWallet tx waits. In-process nodes reach CHECKPOINTED synchronously
63
+ * under automine and cheaply otherwise, so a sub-second cadence removes almost-pure dead time from every send().wait().
64
+ * Spartan tests run against remote JSON-RPC nodes and restore the 1s default via setDefaultWaitInterval.
65
+ */
66
+ export const IN_PROCESS_WAIT_INTERVAL_SECONDS = 0.25;
67
+
62
68
  export class TestWallet extends BaseWallet {
63
69
  constructor(
64
70
  pxe: PXE,
@@ -66,6 +72,15 @@ export class TestWallet extends BaseWallet {
66
72
  ) {
67
73
  super(pxe, nodeRef);
68
74
  this.minFeePadding = DEFAULT_MIN_FEE_PADDING;
75
+ this.defaultWaitInterval = IN_PROCESS_WAIT_INTERVAL_SECONDS;
76
+ }
77
+
78
+ /**
79
+ * Overrides the poll interval (in seconds) used when a send().wait() caller does not specify one. Pass `undefined`
80
+ * to fall back to the DefaultWaitOpts cadence. Spartan tests set this to 1 so they do not hammer remote nodes.
81
+ */
82
+ setDefaultWaitInterval(interval?: number): void {
83
+ this.defaultWaitInterval = interval;
69
84
  }
70
85
 
71
86
  static async create(
@@ -92,13 +107,11 @@ export class TestWallet extends BaseWallet {
92
107
  this.nodeRef.updateTargetNode(node);
93
108
  }
94
109
 
95
- createSchnorrAccount(secret: Fr, salt: Fr, signingKey?: Fq): Promise<AccountManager> {
96
- signingKey = signingKey ?? deriveSigningKey(secret);
110
+ createSchnorrAccount(secret: Fr, salt: Fr, signingKey: Fq): Promise<AccountManager> {
97
111
  return this.createAccount({ secret, salt, type: 'schnorr', contract: new SchnorrAccountContract(signingKey) });
98
112
  }
99
113
 
100
- createSchnorrInitializerlessAccount(secret: Fr, salt: Fr, signingKey?: Fq): Promise<AccountManager> {
101
- signingKey = signingKey ?? deriveSigningKey(secret);
114
+ createSchnorrInitializerlessAccount(secret: Fr, salt: Fr, signingKey: Fq): Promise<AccountManager> {
102
115
  return this.createAccount({
103
116
  secret,
104
117
  salt,
@@ -398,6 +411,15 @@ export class TestWallet extends BaseWallet {
398
411
  return this.pxe.sync();
399
412
  }
400
413
 
414
+ /**
415
+ * Registers a non-sender tagging-secret source (e.g. a raw out-of-band shared secret) so this PXE discovers messages
416
+ * tagged with it. Test-only surface over {@link PXE.registerTaggingSecretSource}, which the base `Wallet` does not
417
+ * expose. The `address-derived` (sender) variant is excluded: use {@link Wallet.registerSender} for that.
418
+ */
419
+ registerTaggingSecretSource(source: Exclude<TaggingSecretSource, { kind: 'address-derived' }>): Promise<void> {
420
+ return this.pxe.registerTaggingSecretSource(source);
421
+ }
422
+
401
423
  stop(): Promise<void> {
402
424
  return this.pxe.stop();
403
425
  }
@@ -1,3 +1,4 @@
1
+ import type { AztecAddress } from '@aztec/aztec.js/addresses';
1
2
  import {
2
3
  BatchCall,
3
4
  ContractFunctionInteraction,
@@ -10,11 +11,15 @@ import {
10
11
  toSendOptions,
11
12
  } from '@aztec/aztec.js/contracts';
12
13
  import { type AztecNode, waitForTx } from '@aztec/aztec.js/node';
14
+ import { timesAsync } from '@aztec/foundation/collection';
15
+ import type { Logger } from '@aztec/foundation/log';
16
+ import { sleep } from '@aztec/foundation/sleep';
13
17
  import { SimulationError } from '@aztec/stdlib/errors';
14
18
  import { type OffchainEffect, type ProvingStats, Tx, TxHash, type TxReceipt } from '@aztec/stdlib/tx';
15
19
 
16
20
  import { inspect } from 'util';
17
21
 
22
+ import { testSpan, withTestSpanOwner } from '../fixtures/timing.js';
18
23
  import type { TestWallet } from './test_wallet.js';
19
24
 
20
25
  export type ProvenTxSendOpts = {
@@ -35,7 +40,11 @@ export class ProvenTx extends Tx {
35
40
 
36
41
  send(options?: Omit<ProvenTxSendOpts, 'wait'>): Promise<TxReceipt>;
37
42
  send<W extends ProvenTxSendOpts['wait']>(options: ProvenTxSendOpts & { wait: W }): Promise<ProvenTxSendReturn<W>>;
38
- async send(options?: ProvenTxSendOpts): Promise<TxHash | TxReceipt> {
43
+ send(options?: ProvenTxSendOpts): Promise<TxHash | TxReceipt> {
44
+ return testSpan('tx:send', () => this.sendInner(options));
45
+ }
46
+
47
+ private async sendInner(options?: ProvenTxSendOpts): Promise<TxHash | TxReceipt> {
39
48
  const txHash = this.getTxHash();
40
49
  await this.node.sendTx(this).catch(err => {
41
50
  throw this.contextualizeError(err, inspect(this));
@@ -61,13 +70,101 @@ export class ProvenTx extends Tx {
61
70
  }
62
71
  }
63
72
 
64
- export async function proveInteraction(
73
+ export function proveInteraction(
65
74
  wallet: TestWallet,
66
75
  interaction: ContractFunctionInteraction | DeployMethod | BatchCall,
67
76
  options: SendInteractionOptions | DeployOptions,
68
- ) {
69
- const execPayload = await interaction.request(options);
70
- return wallet.proveTx(execPayload, toSendOptions(options));
77
+ ): Promise<ProvenTx> {
78
+ return testSpan('tx:prove', async () => {
79
+ const execPayload = await interaction.request(options);
80
+ return wallet.proveTx(execPayload, toSendOptions(options));
81
+ });
82
+ }
83
+
84
+ /** Builds an interaction for index `i` of a batch. */
85
+ export type MakeBatchCall = (i: number) => ContractFunctionInteraction | DeployMethod | BatchCall;
86
+
87
+ /**
88
+ * Pre-proves `count` interactions built by `makeCall(i)` against `wallet`, all with the same
89
+ * `options`. Returns the proven txs so the caller can send them individually (e.g. with sleeps
90
+ * between sends, or anchored to intermediate tips). For the common "send the whole batch at once"
91
+ * case use {@link proveAndSendTxs}.
92
+ */
93
+ export function proveTxs(
94
+ wallet: TestWallet,
95
+ count: number,
96
+ makeCall: MakeBatchCall,
97
+ options: SendInteractionOptions | DeployOptions,
98
+ ): Promise<ProvenTx[]> {
99
+ return timesAsync(count, i => proveInteraction(wallet, makeCall(i), options));
100
+ }
101
+
102
+ /**
103
+ * Pre-proves `count` interactions built by `makeCall(i)` and sends each one with `NO_WAIT`, all at
104
+ * once. Returns the tx hashes in batch order. Pairs with `waitForTxs` for the "send N, wait for N"
105
+ * arc. Use {@link proveTxs} instead when the sends need bespoke sequencing.
106
+ */
107
+ export async function proveAndSendTxs(
108
+ wallet: TestWallet,
109
+ count: number,
110
+ makeCall: MakeBatchCall,
111
+ options: SendInteractionOptions | DeployOptions,
112
+ ): Promise<TxHash[]> {
113
+ const txs = await proveTxs(wallet, count, makeCall, options);
114
+ return Promise.all(txs.map(tx => tx.send({ wait: NO_WAIT })));
115
+ }
116
+
117
+ /** Options for {@link startMempoolFeeder}. */
118
+ export type MempoolFeederOpts = {
119
+ /** The account the txs are sent from. */
120
+ from: AztecAddress;
121
+ /** Keep the pending-tx count at or above this threshold; defaults to 3. */
122
+ minPending?: number;
123
+ /** Milliseconds between top-up polls; defaults to 1000. */
124
+ intervalMs?: number;
125
+ /** Logger for verbose top-up traces. */
126
+ logger?: Logger;
127
+ };
128
+
129
+ /**
130
+ * Starts a background loop that keeps `node`'s mempool topped up: whenever the pending-tx count drops
131
+ * below `opts.minPending`, it proves and sends one interaction built by `makeCall()` (NO_WAIT). Errors
132
+ * are swallowed and retried. Returns an {@link AsyncDisposable}; disposing stops the loop and awaits it.
133
+ */
134
+ export function startMempoolFeeder(
135
+ wallet: TestWallet,
136
+ node: AztecNode,
137
+ makeCall: () => ContractFunctionInteraction | DeployMethod | BatchCall,
138
+ opts: MempoolFeederOpts,
139
+ ): AsyncDisposable {
140
+ const minPending = opts.minPending ?? 3;
141
+ const intervalMs = opts.intervalMs ?? 1000;
142
+ let stopped = false;
143
+
144
+ // Pin the feeder's prove/send spans to a fixed non-test owner. It runs interleaved with arbitrary
145
+ // tests, so without this its tx:prove/tx:send spans would smear onto whichever test was current
146
+ // when each round fired; the pinned owner matches no test/suite record, excluding them cleanly.
147
+ const loop = withTestSpanOwner('other:mempool-feeder', async () => {
148
+ while (!stopped) {
149
+ try {
150
+ const pendingCount = await node.getPendingTxCount();
151
+ if (pendingCount < minPending) {
152
+ await proveAndSendTxs(wallet, 1, makeCall, { from: opts.from });
153
+ opts.logger?.verbose(`Topped up mempool (was ${pendingCount})`);
154
+ }
155
+ } catch (err) {
156
+ opts.logger?.verbose(`Mempool top-up error (will retry): ${err}`);
157
+ }
158
+ await sleep(intervalMs);
159
+ }
160
+ });
161
+
162
+ return {
163
+ async [Symbol.asyncDispose]() {
164
+ stopped = true;
165
+ await loop;
166
+ },
167
+ };
71
168
  }
72
169
 
73
170
  /**
@@ -1,9 +1,10 @@
1
+ import { DefaultWaitOpts } from '@aztec/aztec.js/contracts';
1
2
  import { createAztecNodeClient } from '@aztec/aztec.js/node';
2
3
  import type { SendOptions } from '@aztec/aztec.js/wallet';
3
4
  import { BackendType, BarretenbergSync } from '@aztec/bb.js';
4
5
  import { jsonStringify } from '@aztec/foundation/json-rpc';
5
6
  import { createLogger } from '@aztec/foundation/log';
6
- import type { ApiSchema, Fr } from '@aztec/foundation/schemas';
7
+ import type { ApiSchema, Fq, Fr } from '@aztec/foundation/schemas';
7
8
  import { getSchemaParameters, parseWithOptionals, schemaHasMethod } from '@aztec/foundation/schemas';
8
9
  import { NodeListener, TransportServer } from '@aztec/foundation/transport';
9
10
  import { ExecutionPayload, Tx } from '@aztec/stdlib/tx';
@@ -23,6 +24,8 @@ try {
23
24
  // Worker sync bb use is limited to crypto and proof serialization helpers.
24
25
  await BarretenbergSync.initSingleton({ backend: BackendType.Wasm });
25
26
  const wallet = await TestWallet.create(node, pxeConfig);
27
+ // Worker wallets are only used by spartan tests against remote JSON-RPC nodes: keep the 1s poll cadence.
28
+ wallet.setDefaultWaitInterval(DefaultWaitOpts.interval);
26
29
  logger.info('Worker wallet initialized');
27
30
 
28
31
  const customMethods = {
@@ -36,8 +39,8 @@ try {
36
39
  provenTx.publicFunctionCalldata,
37
40
  );
38
41
  },
39
- registerAccount: async (secret: Fr, salt: Fr) => {
40
- const manager = await wallet.createSchnorrAccount(secret, salt);
42
+ registerAccount: async (secret: Fr, salt: Fr, signingKey: Fq) => {
43
+ const manager = await wallet.createSchnorrAccount(secret, salt, signingKey);
41
44
  return manager.address;
42
45
  },
43
46
  };
@@ -18,7 +18,7 @@ import type {
18
18
  WalletCapabilities,
19
19
  } from '@aztec/aztec.js/wallet';
20
20
  import type { ChainInfo } from '@aztec/entrypoints/interfaces';
21
- import type { Fr } from '@aztec/foundation/curves/bn254';
21
+ import type { Fq, Fr } from '@aztec/foundation/curves/bn254';
22
22
  import { jsonStringify } from '@aztec/foundation/json-rpc';
23
23
  import { createLogger } from '@aztec/foundation/log';
24
24
  import { promiseWithResolvers } from '@aztec/foundation/promise';
@@ -29,7 +29,7 @@ import type { PXEConfig } from '@aztec/pxe/config';
29
29
  import type { ContractArtifact, EventMetadataDefinition, FunctionCall } from '@aztec/stdlib/abi';
30
30
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
31
31
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
32
- import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
32
+ import type { ContractInstancePreimage } from '@aztec/stdlib/contract';
33
33
  import type { ExecutionPayload, TxProfileResult, UtilityExecutionResult } from '@aztec/stdlib/tx';
34
34
  import { Tx } from '@aztec/stdlib/tx';
35
35
 
@@ -158,11 +158,7 @@ export class WorkerWallet implements Wallet {
158
158
  return this.call('getAccounts');
159
159
  }
160
160
 
161
- registerContract(
162
- instance: ContractInstanceWithAddress,
163
- artifact?: ContractArtifact,
164
- secretKey?: Fr,
165
- ): Promise<ContractInstanceWithAddress> {
161
+ registerContract(instance: ContractInstancePreimage, artifact?: ContractArtifact, secretKey?: Fr): Promise<void> {
166
162
  return this.call('registerContract', instance, artifact, secretKey);
167
163
  }
168
164
 
@@ -194,8 +190,8 @@ export class WorkerWallet implements Wallet {
194
190
  }
195
191
 
196
192
  /** Registers an account inside the worker's TestWallet, populating its accounts map. */
197
- registerAccount(secret: Fr, salt: Fr): Promise<AztecAddress> {
198
- return this.call('registerAccount', secret, salt);
193
+ registerAccount(secret: Fr, salt: Fr, signingKey: Fq): Promise<AztecAddress> {
194
+ return this.call('registerAccount', secret, salt, signingKey);
199
195
  }
200
196
 
201
197
  createAuthWit(from: AztecAddress, messageHashOrIntent: IntentInnerHash | CallIntent): Promise<AuthWitness> {
@@ -10,5 +10,5 @@ import { z } from 'zod';
10
10
  export const WorkerWalletSchema: ApiSchema = {
11
11
  ...WalletSchema,
12
12
  proveTx: z.function({ input: z.tuple([ExecutionPayloadSchema, SendOptionsSchema]), output: Tx.schema }),
13
- registerAccount: z.function({ input: z.tuple([schemas.Fr, schemas.Fr]), output: AztecAddress.schema }),
13
+ registerAccount: z.function({ input: z.tuple([schemas.Fr, schemas.Fr, schemas.Fq]), output: AztecAddress.schema }),
14
14
  };
@@ -1,56 +0,0 @@
1
- import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import { Fr } from '@aztec/aztec.js/fields';
3
- import { type Logger } from '@aztec/aztec.js/log';
4
- import type { AztecNode } from '@aztec/aztec.js/node';
5
- import type { TxHash } from '@aztec/aztec.js/tx';
6
- import type { CheatCodes } from '@aztec/aztec/testing';
7
- import { TokenBlacklistContract } from '@aztec/noir-contracts.js/TokenBlacklist';
8
- import { GenericProxyContract } from '@aztec/noir-test-contracts.js/GenericProxy';
9
- import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
10
- import type { SequencerClient } from '@aztec/sequencer-client';
11
- import type { AztecNodeDebug } from '@aztec/stdlib/interfaces/client';
12
- import { type EndToEndContext, type SetupOptions } from '../fixtures/setup.js';
13
- import { TokenSimulator } from '../simulators/token_simulator.js';
14
- import type { TestWallet } from '../test-wallet/test_wallet.js';
15
- export declare class Role {
16
- private isAdmin;
17
- private isMinter;
18
- private isBlacklisted;
19
- withAdmin(): this;
20
- withMinter(): this;
21
- withBlacklisted(): this;
22
- toNoirStruct(): {
23
- is_admin: boolean;
24
- is_minter: boolean;
25
- is_blacklisted: boolean;
26
- };
27
- }
28
- export declare class BlacklistTokenContractTest {
29
- static CHANGE_ROLES_DELAY: number;
30
- context: EndToEndContext;
31
- logger: Logger;
32
- wallet: TestWallet;
33
- asset: TokenBlacklistContract;
34
- tokenSim: TokenSimulator;
35
- badAccount: InvalidAccountContract;
36
- authwitProxy: GenericProxyContract;
37
- cheatCodes: CheatCodes;
38
- sequencer: SequencerClient;
39
- aztecNode: AztecNode & AztecNodeDebug;
40
- adminAddress: AztecAddress;
41
- otherAddress: AztecAddress;
42
- blacklistedAddress: AztecAddress;
43
- constructor(testName: string);
44
- crossTimestampOfChange(): Promise<void>;
45
- /**
46
- * Applies base setup:
47
- * 1. Add 3 accounts.
48
- * 2. Publicly deploy accounts, deploy token contract and a "bad account".
49
- */
50
- applyBaseSetup(): Promise<void>;
51
- setup(opts?: Partial<SetupOptions>): Promise<void>;
52
- teardown(): Promise<void>;
53
- addPendingShieldNoteToPXE(contract: TokenBlacklistContract, recipient: AztecAddress, amount: bigint, secretHash: Fr, txHash: TxHash): Promise<void>;
54
- applyMint(): Promise<void>;
55
- }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxhY2tsaXN0X3Rva2VuX2NvbnRyYWN0X3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfYmxhY2tsaXN0X3Rva2VuX2NvbnRyYWN0L2JsYWNrbGlzdF90b2tlbl9jb250cmFjdF90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSXRFLE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxZQUFZLEVBSWxCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWhFLHFCQUFhLElBQUk7SUFDZixPQUFPLENBQUMsT0FBTyxDQUFTO0lBQ3hCLE9BQU8sQ0FBQyxRQUFRLENBQVM7SUFDekIsT0FBTyxDQUFDLGFBQWEsQ0FBUztJQUU5QixTQUFTLFNBR1I7SUFFRCxVQUFVLFNBR1Q7SUFFRCxlQUFlLFNBR2Q7SUFFRCxZQUFZOzs7O01BSVg7Q0FDRjtBQUVELHFCQUFhLDBCQUEwQjtJQUVyQyxNQUFNLENBQUMsa0JBQWtCLFNBQVM7SUFFbEMsT0FBTyxFQUFHLGVBQWUsQ0FBQztJQUMxQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsTUFBTSxFQUFHLFVBQVUsQ0FBQztJQUNwQixLQUFLLEVBQUcsc0JBQXNCLENBQUM7SUFDL0IsUUFBUSxFQUFHLGNBQWMsQ0FBQztJQUMxQixVQUFVLEVBQUcsc0JBQXNCLENBQUM7SUFDcEMsWUFBWSxFQUFHLG9CQUFvQixDQUFDO0lBQ3BDLFVBQVUsRUFBRyxVQUFVLENBQUM7SUFDeEIsU0FBUyxFQUFHLGVBQWUsQ0FBQztJQUM1QixTQUFTLEVBQUcsU0FBUyxHQUFHLGNBQWMsQ0FBQztJQUV2QyxZQUFZLEVBQUcsWUFBWSxDQUFDO0lBQzVCLFlBQVksRUFBRyxZQUFZLENBQUM7SUFDNUIsa0JBQWtCLEVBQUcsWUFBWSxDQUFDO0lBRWxDLFlBQVksUUFBUSxFQUFFLE1BQU0sRUFFM0I7SUFFSyxzQkFBc0Isa0JBUTNCO0lBRUQ7Ozs7T0FJRztJQUNHLGNBQWMsa0JBZ0RuQjtJQUVLLEtBQUssQ0FBQyxJQUFJLEdBQUUsT0FBTyxDQUFDLFlBQVksQ0FBTSxpQkFPM0M7SUFFSyxRQUFRLGtCQUViO0lBRUsseUJBQXlCLENBQzdCLFFBQVEsRUFBRSxzQkFBc0IsRUFDaEMsU0FBUyxFQUFFLFlBQVksRUFDdkIsTUFBTSxFQUFFLE1BQU0sRUFDZCxVQUFVLEVBQUUsRUFBRSxFQUNkLE1BQU0sRUFBRSxNQUFNLGlCQWNmO0lBRUssU0FBUyxrQkFtRGQ7Q0FDRiJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"blacklist_token_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAItE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAIlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,qBAAa,IAAI;IACf,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAS;IAE9B,SAAS,SAGR;IAED,UAAU,SAGT;IAED,eAAe,SAGd;IAED,YAAY;;;;MAIX;CACF;AAED,qBAAa,0BAA0B;IAErC,MAAM,CAAC,kBAAkB,SAAS;IAElC,OAAO,EAAG,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAG,UAAU,CAAC;IACpB,KAAK,EAAG,sBAAsB,CAAC;IAC/B,QAAQ,EAAG,cAAc,CAAC;IAC1B,UAAU,EAAG,sBAAsB,CAAC;IACpC,YAAY,EAAG,oBAAoB,CAAC;IACpC,UAAU,EAAG,UAAU,CAAC;IACxB,SAAS,EAAG,eAAe,CAAC;IAC5B,SAAS,EAAG,SAAS,GAAG,cAAc,CAAC;IAEvC,YAAY,EAAG,YAAY,CAAC;IAC5B,YAAY,EAAG,YAAY,CAAC;IAC5B,kBAAkB,EAAG,YAAY,CAAC;IAElC,YAAY,QAAQ,EAAE,MAAM,EAE3B;IAEK,sBAAsB,kBAQ3B;IAED;;;;OAIG;IACG,cAAc,kBAgDnB;IAEK,KAAK,CAAC,IAAI,GAAE,OAAO,CAAC,YAAY,CAAM,iBAO3C;IAEK,QAAQ,kBAEb;IAEK,yBAAyB,CAC7B,QAAQ,EAAE,sBAAsB,EAChC,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,EAAE,EACd,MAAM,EAAE,MAAM,iBAcf;IAEK,SAAS,kBAmDd;CACF"}
@@ -1,59 +0,0 @@
1
- import type { AztecNodeConfig } from '@aztec/aztec-node';
2
- import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
3
- import { type Logger } from '@aztec/aztec.js/log';
4
- import type { AztecNode } from '@aztec/aztec.js/node';
5
- import type { TxReceipt } from '@aztec/aztec.js/tx';
6
- import { CheatCodes, EpochTestSettler } from '@aztec/aztec/testing';
7
- import { InboxContract, OutboxContract, RollupContract } from '@aztec/ethereum/contracts';
8
- import type { DeployAztecL1ContractsArgs, DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-aztec-l1-contracts';
9
- import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
10
- import { EpochNumber } from '@aztec/foundation/branded-types';
11
- import { TokenContract } from '@aztec/noir-contracts.js/Token';
12
- import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
13
- import type { PXEConfig } from '@aztec/pxe/server';
14
- import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
15
- import { type EndToEndContext, type SetupOptions } from '../fixtures/setup.js';
16
- import { CrossChainTestHarness } from '../shared/cross_chain_test_harness.js';
17
- import type { TestWallet } from '../test-wallet/test_wallet.js';
18
- export declare class CrossChainMessagingTest {
19
- private requireEpochProven;
20
- private setupOptions;
21
- private deployL1ContractsArgs;
22
- private pxeOpts;
23
- private l1HarnessAccountIndex?;
24
- logger: Logger;
25
- context: EndToEndContext;
26
- aztecNode: AztecNode;
27
- aztecNodeConfig: AztecNodeConfig;
28
- aztecNodeAdmin: AztecNodeAdmin;
29
- l1Client: ExtendedViemWalletClient | undefined;
30
- wallet: TestWallet;
31
- ownerAddress: AztecAddress;
32
- user1Address: AztecAddress;
33
- user2Address: AztecAddress;
34
- crossChainTestHarness: CrossChainTestHarness;
35
- ethAccount: EthAddress;
36
- l2Token: TokenContract;
37
- l2Bridge: TokenBridgeContract;
38
- rollup: RollupContract;
39
- inbox: InboxContract;
40
- outbox: OutboxContract;
41
- cheatCodes: CheatCodes;
42
- /**
43
- * Background loop that marks each completed epoch as proven on L1. Started in `applyBaseSetup`
44
- * when the test runs without a real prover node, because the e2e fixture uses L1 interval mining
45
- * and nothing marks blocks proven automatically. Without this, L1's `aztecProofSubmissionEpochs`
46
- * window expires mid-test and triggers a chain prune that drops in-flight wallet txs. Tests that
47
- * intentionally pause proving (e.g. inbox drift tests) can stop it via
48
- * `await t.epochTestSettler?.stop()`.
49
- */
50
- epochTestSettler?: EpochTestSettler;
51
- deployL1ContractsValues: DeployAztecL1ContractsReturnType;
52
- constructor(testName: string, opts?: SetupOptions, deployL1ContractsArgs?: Partial<DeployAztecL1ContractsArgs>, pxeOpts?: Partial<PXEConfig>, l1HarnessAccountIndex?: number);
53
- setup(opts?: Partial<SetupOptions>, pxeOpts?: Partial<PXEConfig>): Promise<void>;
54
- advanceToEpochProven(l2TxReceipt: TxReceipt): Promise<EpochNumber>;
55
- catchUpProvenChain(): Promise<void>;
56
- teardown(): Promise<void>;
57
- applyBaseSetup(): Promise<void>;
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NfY2hhaW5fbWVzc2FnaW5nX3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfY3Jvc3NfY2hhaW5fbWVzc2FnaW5nL2Nyb3NzX2NoYWluX21lc3NhZ2luZ190ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFckUsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRixPQUFPLEtBQUssRUFDViwwQkFBMEIsRUFDMUIsZ0NBQWdDLEVBQ2pDLE1BQU0sMkNBQTJDLENBQUM7QUFHbkQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR3RFLE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxZQUFZLEVBSWxCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUscUJBQWEsdUJBQXVCO0lBQ2xDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBVTtJQUNwQyxPQUFPLENBQUMsWUFBWSxDQUFlO0lBQ25DLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBc0M7SUFDbkUsT0FBTyxDQUFDLE9BQU8sQ0FBcUI7SUFDcEMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQVM7SUFDdkMsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLE9BQU8sRUFBRyxlQUFlLENBQUM7SUFDMUIsU0FBUyxFQUFHLFNBQVMsQ0FBQztJQUN0QixlQUFlLEVBQUcsZUFBZSxDQUFDO0lBQ2xDLGNBQWMsRUFBRyxjQUFjLENBQUM7SUFFaEMsUUFBUSxFQUFHLHdCQUF3QixHQUFHLFNBQVMsQ0FBQztJQUVoRCxNQUFNLEVBQUcsVUFBVSxDQUFDO0lBQ3BCLFlBQVksRUFBRyxZQUFZLENBQUM7SUFDNUIsWUFBWSxFQUFHLFlBQVksQ0FBQztJQUM1QixZQUFZLEVBQUcsWUFBWSxDQUFDO0lBQzVCLHFCQUFxQixFQUFHLHFCQUFxQixDQUFDO0lBQzlDLFVBQVUsRUFBRyxVQUFVLENBQUM7SUFDeEIsT0FBTyxFQUFHLGFBQWEsQ0FBQztJQUN4QixRQUFRLEVBQUcsbUJBQW1CLENBQUM7SUFFL0IsTUFBTSxFQUFHLGNBQWMsQ0FBQztJQUN4QixLQUFLLEVBQUcsYUFBYSxDQUFDO0lBQ3RCLE1BQU0sRUFBRyxjQUFjLENBQUM7SUFDeEIsVUFBVSxFQUFHLFVBQVUsQ0FBQztJQUV4Qjs7Ozs7OztPQU9HO0lBQ0gsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztJQUVwQyx1QkFBdUIsRUFBRyxnQ0FBZ0MsQ0FBQztJQUUzRCxZQUNFLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLElBQUksR0FBRSxZQUFpQixFQUN2QixxQkFBcUIsR0FBRSxPQUFPLENBQUMsMEJBQTBCLENBQU0sRUFDL0QsT0FBTyxHQUFFLE9BQU8sQ0FBQyxTQUFTLENBQU0sRUFDaEMscUJBQXFCLENBQUMsRUFBRSxNQUFNLEVBVy9CO0lBRUssS0FBSyxDQUFDLElBQUksR0FBRSxPQUFPLENBQUMsWUFBWSxDQUFNLEVBQUUsT0FBTyxHQUFFLE9BQU8sQ0FBQyxTQUFTLENBQU0saUJBd0I3RTtJQUVLLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQWdCdkU7SUFFSyxrQkFBa0Isa0JBS3ZCO0lBRUssUUFBUSxrQkFHYjtJQUVLLGNBQWMsa0JBdUZuQjtDQUNGIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"cross_chain_messaging_test.d.ts","sourceRoot":"","sources":["../../src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,KAAK,EACV,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,2CAA2C,CAAC;AAGnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAI9D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAIlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,qBAAa,uBAAuB;IAClC,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAG,eAAe,CAAC;IAC1B,SAAS,EAAG,SAAS,CAAC;IACtB,eAAe,EAAG,eAAe,CAAC;IAClC,cAAc,EAAG,cAAc,CAAC;IAEhC,QAAQ,EAAG,wBAAwB,GAAG,SAAS,CAAC;IAEhD,MAAM,EAAG,UAAU,CAAC;IACpB,YAAY,EAAG,YAAY,CAAC;IAC5B,YAAY,EAAG,YAAY,CAAC;IAC5B,YAAY,EAAG,YAAY,CAAC;IAC5B,qBAAqB,EAAG,qBAAqB,CAAC;IAC9C,UAAU,EAAG,UAAU,CAAC;IACxB,OAAO,EAAG,aAAa,CAAC;IACxB,QAAQ,EAAG,mBAAmB,CAAC;IAE/B,MAAM,EAAG,cAAc,CAAC;IACxB,KAAK,EAAG,aAAa,CAAC;IACtB,MAAM,EAAG,cAAc,CAAC;IACxB,UAAU,EAAG,UAAU,CAAC;IAExB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC,uBAAuB,EAAG,gCAAgC,CAAC;IAE3D,YACE,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,YAAiB,EACvB,qBAAqB,GAAE,OAAO,CAAC,0BAA0B,CAAM,EAC/D,OAAO,GAAE,OAAO,CAAC,SAAS,CAAM,EAChC,qBAAqB,CAAC,EAAE,MAAM,EAW/B;IAEK,KAAK,CAAC,IAAI,GAAE,OAAO,CAAC,YAAY,CAAM,EAAE,OAAO,GAAE,OAAO,CAAC,SAAS,CAAM,iBAwB7E;IAEK,oBAAoB,CAAC,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAgBvE;IAEK,kBAAkB,kBAKvB;IAEK,QAAQ,kBAGb;IAEK,cAAc,kBAuFnB;CACF"}
@@ -1,36 +0,0 @@
1
- import type { ContractArtifact } from '@aztec/aztec.js/abi';
2
- import type { AztecAddress } from '@aztec/aztec.js/addresses';
3
- import { type ContractBase } from '@aztec/aztec.js/contracts';
4
- import { Fr } from '@aztec/aztec.js/fields';
5
- import type { PublicKeys } from '@aztec/aztec.js/keys';
6
- import { type Logger } from '@aztec/aztec.js/log';
7
- import type { AztecNode } from '@aztec/aztec.js/node';
8
- import type { Wallet } from '@aztec/aztec.js/wallet';
9
- import type { StatefulTestContract } from '@aztec/noir-test-contracts.js/StatefulTest';
10
- import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
11
- import { type EndToEndContext, type SetupOptions } from '../fixtures/setup.js';
12
- import type { TestWallet } from '../test-wallet/test_wallet.js';
13
- export declare class DeployTest {
14
- context: EndToEndContext;
15
- logger: Logger;
16
- wallet: TestWallet;
17
- defaultAccountAddress: AztecAddress;
18
- aztecNode: AztecNode;
19
- aztecNodeAdmin: AztecNodeAdmin;
20
- constructor(testName: string);
21
- setup(opts?: Partial<SetupOptions>): Promise<this>;
22
- teardown(): Promise<void>;
23
- registerContract<T extends ContractBase>(wallet: Wallet, contractArtifact: ContractArtifactClass<T>, opts?: {
24
- salt?: Fr;
25
- publicKeys?: PublicKeys;
26
- initArgs?: any[];
27
- constructorName?: string;
28
- deployer?: AztecAddress;
29
- }): Promise<T>;
30
- }
31
- export type StatefulContractCtorArgs = Parameters<StatefulTestContract['methods']['constructor']>;
32
- export type ContractArtifactClass<T extends ContractBase> = {
33
- at(address: AztecAddress, wallet: Wallet): T;
34
- artifact: ContractArtifact;
35
- };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfZGVwbG95X2NvbnRyYWN0L2RlcGxveV90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUE4QyxNQUFNLDJCQUEyQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQUUsS0FBSyxZQUFZLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7QUFDaEcsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUscUJBQWEsVUFBVTtJQUNkLE9BQU8sRUFBRyxlQUFlLENBQUM7SUFDMUIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLE1BQU0sRUFBRyxVQUFVLENBQUM7SUFDcEIscUJBQXFCLEVBQUcsWUFBWSxDQUFDO0lBQ3JDLFNBQVMsRUFBRyxTQUFTLENBQUM7SUFDdEIsY0FBYyxFQUFHLGNBQWMsQ0FBQztJQUV2QyxZQUFZLFFBQVEsRUFBRSxNQUFNLEVBRTNCO0lBRUssS0FBSyxDQUFDLElBQUksR0FBRSxPQUFPLENBQUMsWUFBWSxDQUFNLGlCQVczQztJQUVLLFFBQVEsa0JBRWI7SUFFSyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsWUFBWSxFQUMzQyxNQUFNLEVBQUUsTUFBTSxFQUNkLGdCQUFnQixFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUMxQyxJQUFJLEdBQUU7UUFDSixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDVixVQUFVLENBQUMsRUFBRSxVQUFVLENBQUM7UUFDeEIsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDakIsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxFQUFFLFlBQVksQ0FBQztLQUNwQixHQUNMLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FXWjtDQUNGO0FBRUQsTUFBTSxNQUFNLHdCQUF3QixHQUFHLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0FBRWxHLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQyxDQUFDLFNBQVMsWUFBWSxJQUFJO0lBQzFELEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQztDQUM1QixDQUFDIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy_test.d.ts","sourceRoot":"","sources":["../../src/e2e_deploy_contract/deploy_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAA8C,MAAM,2BAA2B,CAAC;AAC1G,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,qBAAa,UAAU;IACd,OAAO,EAAG,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAG,UAAU,CAAC;IACpB,qBAAqB,EAAG,YAAY,CAAC;IACrC,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAEvC,YAAY,QAAQ,EAAE,MAAM,EAE3B;IAEK,KAAK,CAAC,IAAI,GAAE,OAAO,CAAC,YAAY,CAAM,iBAW3C;IAEK,QAAQ,kBAEb;IAEK,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAC3C,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAC1C,IAAI,GAAE;QACJ,IAAI,CAAC,EAAE,EAAE,CAAC;QACV,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,YAAY,CAAC;KACpB,GACL,OAAO,CAAC,CAAC,CAAC,CAWZ;CACF;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAElG,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,YAAY,IAAI;IAC1D,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;CAC5B,CAAC"}
@@ -1,42 +0,0 @@
1
- import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/contracts';
2
- import { Fr } from '@aztec/aztec.js/fields';
3
- import { createLogger } from '@aztec/aztec.js/log';
4
- import { setup, teardown } from '../fixtures/setup.js';
5
- export class DeployTest {
6
- context;
7
- logger;
8
- wallet;
9
- defaultAccountAddress;
10
- aztecNode;
11
- aztecNodeAdmin;
12
- constructor(testName){
13
- this.logger = createLogger(`e2e:e2e_deploy_contract:${testName}`);
14
- }
15
- async setup(opts = {}) {
16
- this.logger.info('Setting up test environment');
17
- this.context = await setup(1, {
18
- ...opts,
19
- fundSponsoredFPC: true
20
- });
21
- this.aztecNode = this.context.aztecNodeService;
22
- this.wallet = this.context.wallet;
23
- this.aztecNodeAdmin = this.context.aztecNodeService;
24
- this.defaultAccountAddress = this.context.accounts[0];
25
- return this;
26
- }
27
- async teardown() {
28
- await teardown(this.context);
29
- }
30
- async registerContract(wallet, contractArtifact, opts = {}) {
31
- const { salt, publicKeys, initArgs, constructorName, deployer } = opts;
32
- const instance = await getContractInstanceFromInstantiationParams(contractArtifact.artifact, {
33
- constructorArgs: initArgs ?? [],
34
- constructorArtifact: constructorName,
35
- salt: salt ?? Fr.random(),
36
- publicKeys,
37
- deployer
38
- });
39
- await wallet.registerContract(instance, contractArtifact.artifact);
40
- return contractArtifact.at(instance.address, wallet);
41
- }
42
- }