@aztec/end-to-end 0.0.1-commit.04852196a → 0.0.1-commit.04d373f

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 (175) hide show
  1. package/README.md +27 -0
  2. package/dest/bench/client_flows/benchmark.d.ts +15 -1
  3. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  4. package/dest/bench/client_flows/benchmark.js +17 -0
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts +2 -2
  6. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  7. package/dest/bench/client_flows/client_flows_benchmark.js +27 -38
  8. package/dest/bench/utils.d.ts +1 -1
  9. package/dest/bench/utils.d.ts.map +1 -1
  10. package/dest/bench/utils.js +2 -0
  11. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +5 -4
  12. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  13. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +14 -5
  14. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +15 -4
  15. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  16. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +39 -7
  17. package/dest/e2e_deploy_contract/deploy_test.d.ts +3 -3
  18. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  19. package/dest/e2e_deploy_contract/deploy_test.js +2 -1
  20. package/dest/e2e_epochs/epochs_test.d.ts +25 -2
  21. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  22. package/dest/e2e_epochs/epochs_test.js +88 -14
  23. package/dest/e2e_fees/fees_test.d.ts +5 -2
  24. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  25. package/dest/e2e_fees/fees_test.js +32 -6
  26. package/dest/e2e_nested_contract/nested_contract_test.d.ts +3 -3
  27. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  28. package/dest/e2e_nested_contract/nested_contract_test.js +2 -1
  29. package/dest/e2e_p2p/inactivity_slash_test.d.ts +1 -1
  30. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  31. package/dest/e2e_p2p/inactivity_slash_test.js +5 -3
  32. package/dest/e2e_p2p/p2p_network.d.ts +10 -9
  33. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  34. package/dest/e2e_p2p/p2p_network.js +46 -27
  35. package/dest/e2e_p2p/reqresp/utils.d.ts +1 -1
  36. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -1
  37. package/dest/e2e_p2p/reqresp/utils.js +42 -13
  38. package/dest/e2e_p2p/shared.d.ts +16 -12
  39. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  40. package/dest/e2e_p2p/shared.js +57 -57
  41. package/dest/e2e_token_contract/token_contract_test.d.ts +3 -3
  42. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  43. package/dest/e2e_token_contract/token_contract_test.js +4 -2
  44. package/dest/fixtures/authwit_proxy.d.ts +1 -1
  45. package/dest/fixtures/authwit_proxy.d.ts.map +1 -1
  46. package/dest/fixtures/authwit_proxy.js +4 -0
  47. package/dest/fixtures/e2e_prover_test.d.ts +6 -5
  48. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  49. package/dest/fixtures/e2e_prover_test.js +9 -13
  50. package/dest/fixtures/fixtures.d.ts +73 -1
  51. package/dest/fixtures/fixtures.d.ts.map +1 -1
  52. package/dest/fixtures/fixtures.js +68 -0
  53. package/dest/fixtures/get_bb_config.d.ts +1 -1
  54. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  55. package/dest/fixtures/get_bb_config.js +5 -5
  56. package/dest/fixtures/ha_setup.d.ts +2 -2
  57. package/dest/fixtures/ha_setup.d.ts.map +1 -1
  58. package/dest/fixtures/ha_setup.js +1 -1
  59. package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts +25 -0
  60. package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts.map +1 -0
  61. package/dest/fixtures/schnorr_hardcoded_account_contract.js +37 -0
  62. package/dest/fixtures/setup.d.ts +43 -11
  63. package/dest/fixtures/setup.d.ts.map +1 -1
  64. package/dest/fixtures/setup.js +135 -26
  65. package/dest/fixtures/setup_p2p_test.d.ts +10 -6
  66. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  67. package/dest/fixtures/setup_p2p_test.js +8 -8
  68. package/dest/fixtures/token_utils.d.ts +1 -1
  69. package/dest/fixtures/token_utils.d.ts.map +1 -1
  70. package/dest/fixtures/token_utils.js +2 -5
  71. package/dest/fixtures/utils.d.ts +2 -2
  72. package/dest/fixtures/utils.d.ts.map +1 -1
  73. package/dest/fixtures/utils.js +1 -1
  74. package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
  75. package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
  76. package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
  77. package/dest/forward-compatibility/wallet_service.d.ts +3 -0
  78. package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
  79. package/dest/forward-compatibility/wallet_service.js +109 -0
  80. package/dest/install_legacy_contracts.d.cts +10 -0
  81. package/dest/install_legacy_contracts.d.cts.map +1 -0
  82. package/dest/legacy-jest-resolver.d.cts +3 -0
  83. package/dest/legacy-jest-resolver.d.cts.map +1 -0
  84. package/dest/shared/cross_chain_test_harness.d.ts +4 -2
  85. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  86. package/dest/shared/cross_chain_test_harness.js +9 -5
  87. package/dest/shared/gas_portal_test_harness.d.ts +8 -5
  88. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  89. package/dest/shared/gas_portal_test_harness.js +17 -8
  90. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  91. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  92. package/dest/shared/uniswap_l1_l2.js +55 -34
  93. package/dest/shared/wait_for_l1_to_l2_message.d.ts +13 -0
  94. package/dest/shared/wait_for_l1_to_l2_message.d.ts.map +1 -0
  95. package/dest/shared/wait_for_l1_to_l2_message.js +10 -0
  96. package/dest/simulators/lending_simulator.d.ts +10 -3
  97. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  98. package/dest/simulators/lending_simulator.js +24 -12
  99. package/dest/simulators/token_simulator.js +1 -1
  100. package/dest/spartan/setup_test_wallets.d.ts +4 -2
  101. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  102. package/dest/spartan/setup_test_wallets.js +73 -41
  103. package/dest/spartan/tx_metrics.d.ts +18 -4
  104. package/dest/spartan/tx_metrics.d.ts.map +1 -1
  105. package/dest/spartan/tx_metrics.js +73 -20
  106. package/dest/spartan/utils/config.d.ts +9 -32
  107. package/dest/spartan/utils/config.d.ts.map +1 -1
  108. package/dest/spartan/utils/config.js +1 -0
  109. package/dest/spartan/utils/index.d.ts +2 -1
  110. package/dest/spartan/utils/index.d.ts.map +1 -1
  111. package/dest/spartan/utils/index.js +2 -0
  112. package/dest/spartan/utils/nodes.js +2 -2
  113. package/dest/spartan/utils/pod_logs.d.ts +25 -0
  114. package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
  115. package/dest/spartan/utils/pod_logs.js +74 -0
  116. package/dest/test-wallet/test_wallet.d.ts +25 -23
  117. package/dest/test-wallet/test_wallet.d.ts.map +1 -1
  118. package/dest/test-wallet/test_wallet.js +146 -87
  119. package/dest/test-wallet/utils.d.ts +3 -3
  120. package/dest/test-wallet/utils.d.ts.map +1 -1
  121. package/dest/test-wallet/utils.js +2 -7
  122. package/dest/test-wallet/wallet_worker_script.js +2 -2
  123. package/dest/test-wallet/worker_wallet.d.ts +5 -4
  124. package/dest/test-wallet/worker_wallet.d.ts.map +1 -1
  125. package/dest/test-wallet/worker_wallet.js +5 -1
  126. package/dest/test-wallet/worker_wallet_schema.d.ts +110 -224
  127. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -1
  128. package/dest/test-wallet/worker_wallet_schema.js +14 -2
  129. package/package.json +46 -42
  130. package/src/bench/client_flows/benchmark.ts +19 -0
  131. package/src/bench/client_flows/client_flows_benchmark.ts +64 -53
  132. package/src/bench/utils.ts +2 -1
  133. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +24 -10
  134. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +49 -11
  135. package/src/e2e_deploy_contract/deploy_test.ts +3 -2
  136. package/src/e2e_epochs/epochs_test.ts +99 -11
  137. package/src/e2e_fees/fees_test.ts +37 -4
  138. package/src/e2e_nested_contract/nested_contract_test.ts +3 -1
  139. package/src/e2e_p2p/inactivity_slash_test.ts +5 -3
  140. package/src/e2e_p2p/p2p_network.ts +57 -39
  141. package/src/e2e_p2p/reqresp/utils.ts +51 -12
  142. package/src/e2e_p2p/shared.ts +57 -72
  143. package/src/e2e_token_contract/token_contract_test.ts +12 -2
  144. package/src/fixtures/authwit_proxy.ts +4 -0
  145. package/src/fixtures/e2e_prover_test.ts +15 -18
  146. package/src/fixtures/fixtures.ts +86 -0
  147. package/src/fixtures/get_bb_config.ts +7 -6
  148. package/src/fixtures/ha_setup.ts +4 -2
  149. package/src/fixtures/schnorr_hardcoded_account_contract.ts +49 -0
  150. package/src/fixtures/setup.ts +171 -31
  151. package/src/fixtures/setup_p2p_test.ts +13 -9
  152. package/src/fixtures/token_utils.ts +1 -4
  153. package/src/fixtures/utils.ts +2 -0
  154. package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
  155. package/src/forward-compatibility/wallet_service.ts +104 -0
  156. package/src/guides/up_quick_start.sh +0 -2
  157. package/src/install_legacy_contracts.cjs +75 -0
  158. package/src/legacy-jest-resolver.cjs +112 -0
  159. package/src/shared/cross_chain_test_harness.ts +14 -4
  160. package/src/shared/gas_portal_test_harness.ts +20 -10
  161. package/src/shared/uniswap_l1_l2.ts +71 -46
  162. package/src/shared/wait_for_l1_to_l2_message.ts +23 -0
  163. package/src/simulators/lending_simulator.ts +28 -12
  164. package/src/simulators/token_simulator.ts +1 -1
  165. package/src/spartan/setup_test_wallets.ts +98 -37
  166. package/src/spartan/tx_metrics.ts +81 -23
  167. package/src/spartan/utils/config.ts +1 -0
  168. package/src/spartan/utils/index.ts +3 -0
  169. package/src/spartan/utils/nodes.ts +2 -2
  170. package/src/spartan/utils/pod_logs.ts +99 -0
  171. package/src/test-wallet/test_wallet.ts +174 -104
  172. package/src/test-wallet/utils.ts +3 -7
  173. package/src/test-wallet/wallet_worker_script.ts +2 -2
  174. package/src/test-wallet/worker_wallet.ts +9 -4
  175. package/src/test-wallet/worker_wallet_schema.ts +2 -2
@@ -5,34 +5,39 @@ import type { Logger } from '@aztec/aztec.js/log';
5
5
  import { TxHash } from '@aztec/aztec.js/tx';
6
6
  import type { RollupCheatCodes } from '@aztec/aztec/testing';
7
7
  import type { EpochCacheInterface } from '@aztec/epoch-cache';
8
- import type { EmpireSlashingProposerContract, RollupContract, TallySlashingProposerContract } from '@aztec/ethereum/contracts';
8
+ import type { RollupContract, SlashingProposerContract } from '@aztec/ethereum/contracts';
9
+ import { EpochNumber } from '@aztec/foundation/branded-types';
9
10
  import { EthAddress } from '@aztec/foundation/eth-address';
10
11
  import type { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
11
12
  import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
12
- import type { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
13
13
  import { type ProvenTx } from '../test-wallet/utils.js';
14
14
  export declare const submitComplexTxsTo: (logger: Logger, from: AztecAddress, spamContract: SpamContract, numTxs: number, opts?: {
15
15
  callPublic?: boolean | undefined;
16
16
  }) => Promise<TxHash[]>;
17
17
  export declare const submitTransactions: (logger: Logger, node: AztecNodeService, numTxs: number, fundedAccount: InitialAccountData) => Promise<TxHash[]>;
18
18
  export declare function prepareTransactions(logger: Logger, node: AztecNodeService, numTxs: number, fundedAccount: InitialAccountData): Promise<ProvenTx[]>;
19
- export declare function awaitProposalExecution(slashingProposer: EmpireSlashingProposerContract | TallySlashingProposerContract, timeoutSeconds: number, logger: Logger): Promise<bigint>;
19
+ export declare function awaitProposalExecution(slashingProposer: SlashingProposerContract, timeoutSeconds: number, logger: Logger): Promise<bigint>;
20
20
  export declare function awaitCommitteeExists({ rollup, logger }: {
21
21
  rollup: RollupContract;
22
22
  logger: Logger;
23
23
  }): Promise<readonly `0x${string}`[]>;
24
24
  /**
25
- * Advance epochs until we find one where the target proposer is selected for at least one slot.
26
- * With N validators and M slots per epoch, a specific proposer may not be selected in any given epoch.
27
- * For example, with 4 validators and 2 slots/epoch, there is about a 44% chance per epoch.
25
+ * Advance epochs until we find one where the target proposer is selected for at least one slot,
26
+ * then stop one epoch before it. This leaves time for the caller to start sequencers before
27
+ * warping to the target epoch, avoiding the race where the target epoch passes before sequencers
28
+ * are ready.
29
+ *
30
+ * Returns the target epoch number so the caller can warp to it after starting sequencers.
28
31
  */
29
- export declare function awaitEpochWithProposer({ epochCache, cheatCodes, targetProposer, logger, maxAttempts }: {
32
+ export declare function advanceToEpochBeforeProposer({ epochCache, cheatCodes, targetProposer, logger, maxAttempts }: {
30
33
  epochCache: EpochCacheInterface;
31
34
  cheatCodes: RollupCheatCodes;
32
35
  targetProposer: EthAddress;
33
36
  logger: Logger;
34
37
  maxAttempts?: number;
35
- }): Promise<void>;
38
+ }): Promise<{
39
+ targetEpoch: EpochNumber;
40
+ }>;
36
41
  export declare function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSize, epochDuration, waitUntilOffenseCount, timeoutSeconds }: {
37
42
  nodeAdmin: AztecNodeAdmin;
38
43
  logger: Logger;
@@ -45,16 +50,15 @@ export declare function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundS
45
50
  * Await the committee to be slashed out of the validator set.
46
51
  * Currently assumes that the committee is the same size as the validator set.
47
52
  */
48
- export declare function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashFactory, slashingProposer, slashingRoundSize, aztecSlotDuration, aztecEpochDuration, logger, offenseEpoch }: {
53
+ export declare function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashingProposer, slashingRoundSize, aztecSlotDuration, aztecEpochDuration, logger, offenseEpoch }: {
49
54
  rollup: RollupContract;
50
55
  cheatCodes: RollupCheatCodes;
51
56
  committee: readonly `0x${string}`[];
52
- slashFactory: SlashFactoryContract;
53
- slashingProposer: EmpireSlashingProposerContract | TallySlashingProposerContract | undefined;
57
+ slashingProposer: SlashingProposerContract | undefined;
54
58
  slashingRoundSize: number;
55
59
  aztecSlotDuration: number;
56
60
  aztecEpochDuration: number;
57
61
  logger: Logger;
58
62
  offenseEpoch: number;
59
63
  }): Promise<void>;
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX3AycC9zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd6RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUNWLDhCQUE4QixFQUM5QixjQUFjLEVBQ2QsNkJBQTZCLEVBQzlCLE1BQU0sMkJBQTJCLENBQUM7QUFHbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzNELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBSXZFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJdkUsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFvQixNQUFNLHlCQUF5QixDQUFDO0FBRzFFLGVBQU8sTUFBTSxrQkFBa0I7O3VCQWtCOUIsQ0FBQztBQUdGLGVBQU8sTUFBTSxrQkFBa0Isa0hBZTlCLENBQUM7QUFFRix3QkFBc0IsbUJBQW1CLENBQ3ZDLE1BQU0sRUFBRSxNQUFNLEVBQ2QsSUFBSSxFQUFFLGdCQUFnQixFQUN0QixNQUFNLEVBQUUsTUFBTSxFQUNkLGFBQWEsRUFBRSxrQkFBa0IsR0FDaEMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBd0JyQjtBQUVELHdCQUFnQixzQkFBc0IsQ0FDcEMsZ0JBQWdCLEVBQUUsOEJBQThCLEdBQUcsNkJBQTZCLEVBQ2hGLGNBQWMsRUFBRSxNQUFNLEVBQ3RCLE1BQU0sRUFBRSxNQUFNLEdBQ2IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQTBCakI7QUFFRCx3QkFBc0Isb0JBQW9CLENBQUMsRUFDekMsTUFBTSxFQUNOLE1BQU0sRUFDUCxFQUFFO0lBQ0QsTUFBTSxFQUFFLGNBQWMsQ0FBQztJQUN2QixNQUFNLEVBQUUsTUFBTSxDQUFDO0NBQ2hCLEdBQUcsT0FBTyxDQUFDLFNBQVMsS0FBSyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBYXBDO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQixzQkFBc0IsQ0FBQyxFQUMzQyxVQUFVLEVBQ1YsVUFBVSxFQUNWLGNBQWMsRUFDZCxNQUFNLEVBQ04sV0FBZ0IsRUFDakIsRUFBRTtJQUNELFVBQVUsRUFBRSxtQkFBbUIsQ0FBQztJQUNoQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUM7SUFDN0IsY0FBYyxFQUFFLFVBQVUsQ0FBQztJQUMzQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ3RCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXVCaEI7QUFFRCx3QkFBc0Isb0JBQW9CLENBQUMsRUFDekMsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixjQUFvQixFQUNyQixFQUFFO0lBQ0QsU0FBUyxFQUFFLGNBQWMsQ0FBQztJQUMxQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDL0IsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ3pCLCtDQWtCQTtBQUVEOzs7R0FHRztBQUNILHdCQUFzQixvQkFBb0IsQ0FBQyxFQUN6QyxNQUFNLEVBQ04sVUFBVSxFQUNWLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixZQUFZLEVBQ2IsRUFBRTtJQUNELE1BQU0sRUFBRSxjQUFjLENBQUM7SUFDdkIsVUFBVSxFQUFFLGdCQUFnQixDQUFDO0lBQzdCLFNBQVMsRUFBRSxTQUFTLEtBQUssTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNwQyxZQUFZLEVBQUUsb0JBQW9CLENBQUM7SUFDbkMsZ0JBQWdCLEVBQUUsOEJBQThCLEdBQUcsNkJBQTZCLEdBQUcsU0FBUyxDQUFDO0lBQzdGLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDMUIsa0JBQWtCLEVBQUUsTUFBTSxDQUFDO0lBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixZQUFZLEVBQUUsTUFBTSxDQUFDO0NBQ3RCLGlCQTZFQSJ9
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX3AycC9zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd6RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQWMsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFJdkUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFLdEUsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFvQixNQUFNLHlCQUF5QixDQUFDO0FBRzFFLGVBQU8sTUFBTSxrQkFBa0I7O3VCQWtCOUIsQ0FBQztBQUdGLGVBQU8sTUFBTSxrQkFBa0Isa0hBc0I5QixDQUFDO0FBRUYsd0JBQXNCLG1CQUFtQixDQUN2QyxNQUFNLEVBQUUsTUFBTSxFQUNkLElBQUksRUFBRSxnQkFBZ0IsRUFDdEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxhQUFhLEVBQUUsa0JBQWtCLEdBQ2hDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQTZCckI7QUFFRCx3QkFBZ0Isc0JBQXNCLENBQ3BDLGdCQUFnQixFQUFFLHdCQUF3QixFQUMxQyxjQUFjLEVBQUUsTUFBTSxFQUN0QixNQUFNLEVBQUUsTUFBTSxHQUNiLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FjakI7QUFFRCx3QkFBc0Isb0JBQW9CLENBQUMsRUFDekMsTUFBTSxFQUNOLE1BQU0sRUFDUCxFQUFFO0lBQ0QsTUFBTSxFQUFFLGNBQWMsQ0FBQztJQUN2QixNQUFNLEVBQUUsTUFBTSxDQUFDO0NBQ2hCLEdBQUcsT0FBTyxDQUFDLFNBQVMsS0FBSyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBYXBDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQiw0QkFBNEIsQ0FBQyxFQUNqRCxVQUFVLEVBQ1YsVUFBVSxFQUNWLGNBQWMsRUFDZCxNQUFNLEVBQ04sV0FBZ0IsRUFDakIsRUFBRTtJQUNELFVBQVUsRUFBRSxtQkFBbUIsQ0FBQztJQUNoQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUM7SUFDN0IsY0FBYyxFQUFFLFVBQVUsQ0FBQztJQUMzQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ3RCLEdBQUcsT0FBTyxDQUFDO0lBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQTtDQUFFLENBQUMsQ0E4QnhDO0FBRUQsd0JBQXNCLG9CQUFvQixDQUFDLEVBQ3pDLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsY0FBb0IsRUFDckIsRUFBRTtJQUNELFNBQVMsRUFBRSxjQUFjLENBQUM7SUFDMUIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQy9CLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUN6QiwrQ0FrQkE7QUFFRDs7O0dBR0c7QUFDSCx3QkFBc0Isb0JBQW9CLENBQUMsRUFDekMsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixZQUFZLEVBQ2IsRUFBRTtJQUNELE1BQU0sRUFBRSxjQUFjLENBQUM7SUFDdkIsVUFBVSxFQUFFLGdCQUFnQixDQUFDO0lBQzdCLFNBQVMsRUFBRSxTQUFTLEtBQUssTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNwQyxnQkFBZ0IsRUFBRSx3QkFBd0IsR0FBRyxTQUFTLENBQUM7SUFDdkQsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDM0IsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLFlBQVksRUFBRSxNQUFNLENBQUM7Q0FDdEIsaUJBMERBIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { pluralize } from '@aztec/foundation/string';
7
7
  import { TestContract, TestContractArtifact } from '@aztec/noir-test-contracts.js/Test';
8
8
  import { getPXEConfig, getPXEConfig as getRpcConfig } from '@aztec/pxe/server';
9
9
  import { getRoundForOffense } from '@aztec/slasher';
10
+ import { SchnorrHardcodedKeyAccountContract } from '../fixtures/schnorr_hardcoded_account_contract.js';
10
11
  import { submitTxsTo } from '../shared/submit-transactions.js';
11
12
  import { TestWallet } from '../test-wallet/test_wallet.js';
12
13
  import { proveInteraction } from '../test-wallet/utils.js';
@@ -30,13 +31,21 @@ export const submitComplexTxsTo = async (logger, from, spamContract, numTxs, opt
30
31
  export const submitTransactions = async (logger, node, numTxs, fundedAccount)=>{
31
32
  const rpcConfig = getRpcConfig();
32
33
  rpcConfig.proverEnabled = false;
33
- const wallet = await TestWallet.create(node, {
34
+ const wallet = await TestWallet.create(node, // Use checkpointed chain tip to avoid anchoring on provisional blocks that the archiver can prune
35
+ // when their slot ends without a checkpoint landing on L1.
36
+ {
34
37
  ...getPXEConfig(),
35
- proverEnabled: false
38
+ proverEnabled: false,
39
+ syncChainTip: 'checkpointed'
36
40
  }, {
37
41
  loggerActorLabel: 'pxe-tx'
38
42
  });
39
- const fundedAccountManager = await wallet.createSchnorrAccount(fundedAccount.secret, fundedAccount.salt);
43
+ const contract = new SchnorrHardcodedKeyAccountContract();
44
+ const fundedAccountManager = await wallet.createAccount({
45
+ secret: fundedAccount.secret,
46
+ salt: fundedAccount.salt,
47
+ contract
48
+ });
40
49
  return submitTxsTo(wallet, fundedAccountManager.address, numTxs, logger);
41
50
  };
42
51
  export async function prepareTransactions(logger, node, numTxs, fundedAccount) {
@@ -44,11 +53,17 @@ export async function prepareTransactions(logger, node, numTxs, fundedAccount) {
44
53
  rpcConfig.proverEnabled = false;
45
54
  const wallet = await TestWallet.create(node, {
46
55
  ...getPXEConfig(),
47
- proverEnabled: false
56
+ proverEnabled: false,
57
+ syncChainTip: 'checkpointed'
48
58
  }, {
49
59
  loggerActorLabel: 'pxe-tx'
50
60
  });
51
- const fundedAccountManager = await wallet.createSchnorrAccount(fundedAccount.secret, fundedAccount.salt);
61
+ const accountContract = new SchnorrHardcodedKeyAccountContract();
62
+ const fundedAccountManager = await wallet.createAccount({
63
+ secret: fundedAccount.secret,
64
+ salt: fundedAccount.salt,
65
+ contract: accountContract
66
+ });
52
67
  const testContractInstance = await getContractInstanceFromInstantiationParams(TestContractArtifact, {
53
68
  salt: Fr.random()
54
69
  });
@@ -68,24 +83,12 @@ export function awaitProposalExecution(slashingProposer, timeoutSeconds, logger)
68
83
  logger.warn(`Timed out waiting for proposal execution`);
69
84
  reject(new Error(`Timeout waiting for proposal execution after ${timeoutSeconds}s`));
70
85
  }, timeoutSeconds * 1000);
71
- if (slashingProposer.type === 'empire') {
72
- const unwatch = slashingProposer.listenToPayloadSubmitted((args)=>{
73
- logger.warn(`Proposal ${args.payload} from round ${args.round} executed`);
74
- clearTimeout(timeout);
75
- unwatch();
76
- resolve(args.round);
77
- });
78
- } else if (slashingProposer.type === 'tally') {
79
- const unwatch = slashingProposer.listenToRoundExecuted((args)=>{
80
- logger.warn(`Slash from round ${args.round} executed`);
81
- clearTimeout(timeout);
82
- unwatch();
83
- resolve(args.round);
84
- });
85
- } else {
86
+ const unwatch = slashingProposer.listenToRoundExecuted((args)=>{
87
+ logger.warn(`Slash from round ${args.round} executed`);
86
88
  clearTimeout(timeout);
87
- reject(new Error(`Unknown slashing proposer type: ${slashingProposer.type}`));
88
- }
89
+ unwatch();
90
+ resolve(args.round);
91
+ });
89
92
  });
90
93
  }
91
94
  export async function awaitCommitteeExists({ rollup, logger }) {
@@ -101,24 +104,32 @@ export async function awaitCommitteeExists({ rollup, logger }) {
101
104
  return committee.map((c)=>c.toString());
102
105
  }
103
106
  /**
104
- * Advance epochs until we find one where the target proposer is selected for at least one slot.
105
- * With N validators and M slots per epoch, a specific proposer may not be selected in any given epoch.
106
- * For example, with 4 validators and 2 slots/epoch, there is about a 44% chance per epoch.
107
- */ export async function awaitEpochWithProposer({ epochCache, cheatCodes, targetProposer, logger, maxAttempts = 20 }) {
107
+ * Advance epochs until we find one where the target proposer is selected for at least one slot,
108
+ * then stop one epoch before it. This leaves time for the caller to start sequencers before
109
+ * warping to the target epoch, avoiding the race where the target epoch passes before sequencers
110
+ * are ready.
111
+ *
112
+ * Returns the target epoch number so the caller can warp to it after starting sequencers.
113
+ */ export async function advanceToEpochBeforeProposer({ epochCache, cheatCodes, targetProposer, logger, maxAttempts = 20 }) {
108
114
  const { epochDuration } = await cheatCodes.getConfig();
109
115
  for(let attempt = 0; attempt < maxAttempts; attempt++){
110
116
  const currentEpoch = await cheatCodes.getEpoch();
111
- const startSlot = Number(currentEpoch) * Number(epochDuration);
117
+ // Check the NEXT epoch's slots so we stay one epoch before the target,
118
+ // giving the caller time to start sequencers before the target epoch arrives.
119
+ const nextEpoch = Number(currentEpoch) + 1;
120
+ const startSlot = nextEpoch * Number(epochDuration);
112
121
  const endSlot = startSlot + Number(epochDuration);
113
- logger.info(`Checking epoch ${currentEpoch} (slots ${startSlot}-${endSlot - 1}) for proposer ${targetProposer}`);
122
+ logger.info(`Checking next epoch ${nextEpoch} (slots ${startSlot}-${endSlot - 1}) for proposer ${targetProposer} (current epoch: ${currentEpoch})`);
114
123
  for(let s = startSlot; s < endSlot; s++){
115
124
  const proposer = await epochCache.getProposerAttesterAddressInSlot(SlotNumber(s));
116
125
  if (proposer && proposer.equals(targetProposer)) {
117
- logger.warn(`Found target proposer ${targetProposer} in slot ${s} of epoch ${currentEpoch}`);
118
- return;
126
+ logger.warn(`Found target proposer ${targetProposer} in slot ${s} of epoch ${nextEpoch}. Staying at epoch ${currentEpoch} to allow sequencer startup.`);
127
+ return {
128
+ targetEpoch: EpochNumber(nextEpoch)
129
+ };
119
130
  }
120
131
  }
121
- logger.info(`Target proposer not found in epoch ${currentEpoch}, advancing to next epoch`);
132
+ logger.info(`Target proposer not found in epoch ${nextEpoch}, advancing to next epoch`);
122
133
  await cheatCodes.advanceToNextEpoch();
123
134
  }
124
135
  throw new Error(`Target proposer ${targetProposer} not found in any slot after ${maxAttempts} epoch attempts`);
@@ -143,42 +154,31 @@ export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSiz
143
154
  /**
144
155
  * Await the committee to be slashed out of the validator set.
145
156
  * Currently assumes that the committee is the same size as the validator set.
146
- */ export async function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashFactory, slashingProposer, slashingRoundSize, aztecSlotDuration, aztecEpochDuration, logger, offenseEpoch }) {
157
+ */ export async function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashingProposer, slashingRoundSize, aztecSlotDuration, aztecEpochDuration, logger, offenseEpoch }) {
147
158
  if (!slashingProposer) {
148
159
  throw new Error('No slashing proposer configured. Cannot test slashing.');
149
160
  }
150
161
  await cheatCodes.debugRollup();
151
- if (slashingProposer.type === 'empire') {
152
- // Await for the slash payload to be created if empire (no payload is created on tally until execution time)
153
- const targetEpoch = EpochNumber(await cheatCodes.getEpoch() + await rollup.getLagInEpochsForValidatorSet() + 1);
154
- logger.info(`Advancing to epoch ${targetEpoch} so we start slashing`);
155
- await cheatCodes.advanceToEpoch(targetEpoch);
156
- const slashPayloadEvents = await retryUntil(async ()=>{
157
- const events = await slashFactory.getSlashPayloadCreatedEvents();
158
- return events.length > 0 ? events : undefined;
159
- }, 'slash payload created', 120, 1);
160
- expect(slashPayloadEvents.length).toBe(1);
161
- // The uniqueness check is needed since a validator may be slashed more than once on the same round (eg because they let two epochs be pruned)
162
- expect(unique(slashPayloadEvents[0].slashes.map((slash)=>slash.validator.toString()))).toHaveLength(committee.length);
163
- } else {
164
- // Use the slash offset to ensure we are in the right epoch for tally
165
- const slashOffsetInRounds = await slashingProposer.getSlashOffsetInRounds();
166
- const slashingRoundSizeInEpochs = slashingRoundSize / aztecEpochDuration;
167
- const slashingOffsetInEpochs = Number(slashOffsetInRounds) * slashingRoundSizeInEpochs;
168
- const firstEpochInOffenseRound = offenseEpoch - offenseEpoch % slashingRoundSizeInEpochs;
169
- const targetEpoch = firstEpochInOffenseRound + slashingOffsetInEpochs;
170
- logger.info(`Advancing to epoch ${targetEpoch} so we start slashing`);
171
- await cheatCodes.advanceToEpoch(EpochNumber(targetEpoch), {
172
- offset: -aztecSlotDuration / 2
173
- });
174
- }
162
+ // Use the slash offset to ensure we are in the right epoch for tally
163
+ const slashOffsetInRounds = await slashingProposer.getSlashOffsetInRounds();
164
+ const slashingRoundSizeInEpochs = slashingRoundSize / aztecEpochDuration;
165
+ const slashingOffsetInEpochs = Number(slashOffsetInRounds) * slashingRoundSizeInEpochs;
166
+ const firstEpochInOffenseRound = offenseEpoch - offenseEpoch % slashingRoundSizeInEpochs;
167
+ const targetEpoch = firstEpochInOffenseRound + slashingOffsetInEpochs;
168
+ logger.info(`Advancing to epoch ${targetEpoch} so we start slashing`);
169
+ await cheatCodes.advanceToEpoch(EpochNumber(targetEpoch), {
170
+ offset: -aztecSlotDuration / 2
171
+ });
175
172
  const attestersPre = await rollup.getAttesters();
176
173
  expect(attestersPre.length).toBe(committee.length);
177
174
  for (const attester of attestersPre){
178
175
  const attesterInfo = await rollup.getAttesterView(attester);
179
176
  expect(attesterInfo.status).toEqual(1); // Validating
180
177
  }
181
- const timeout = slashingRoundSize * 2 * aztecSlotDuration + 30;
178
+ // Allow up to four round-lengths so that under proposer pipelining, where individual rounds
179
+ // sometimes fail to gather quorum because parts of the committee miss votes due to chain-state
180
+ // races, we still see a later round execute the slash.
181
+ const timeout = slashingRoundSize * 4 * aztecSlotDuration + 30;
182
182
  logger.info(`Waiting for slash to be executed (timeout ${timeout}s)`);
183
183
  await awaitProposalExecution(slashingProposer, timeout, logger);
184
184
  // The attesters should still form the committee but they should be reduced to the "living" status
@@ -4,7 +4,7 @@ import type { AztecNode } from '@aztec/aztec.js/node';
4
4
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
5
5
  import { GenericProxyContract } from '@aztec/noir-test-contracts.js/GenericProxy';
6
6
  import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
7
- import { type EndToEndContext } from '../fixtures/setup.js';
7
+ import { type EndToEndContext, type SetupOptions } from '../fixtures/setup.js';
8
8
  import { TokenSimulator } from '../simulators/token_simulator.js';
9
9
  import type { TestWallet } from '../test-wallet/test_wallet.js';
10
10
  export declare class TokenContractTest {
@@ -37,8 +37,8 @@ export declare class TokenContractTest {
37
37
  */
38
38
  applyMintSnapshot(): void;
39
39
  private applyBaseSetup;
40
- setup(): Promise<void>;
40
+ setup(opts?: Partial<SetupOptions>): Promise<void>;
41
41
  teardown(): Promise<void>;
42
42
  private applyMint;
43
43
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fY29udHJhY3RfdGVzdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2UyZV90b2tlbl9jb250cmFjdC90b2tlbl9jb250cmFjdF90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBSXRGLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBeUQsTUFBTSxzQkFBc0IsQ0FBQztBQUVuSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJaEUscUJBQWEsaUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxVQUFVLFNBQVU7SUFDM0IsTUFBTSxDQUFDLFlBQVksU0FBUztJQUM1QixNQUFNLENBQUMsY0FBYyxTQUFPO0lBQzVCLE9BQU8sRUFBRyxlQUFlLENBQUM7SUFDMUIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixLQUFLLEVBQUcsYUFBYSxDQUFDO0lBQ3RCLFFBQVEsRUFBRyxjQUFjLENBQUM7SUFDMUIsSUFBSSxFQUFHLFNBQVMsQ0FBQztJQUVqQixVQUFVLEVBQUcsc0JBQXNCLENBQUM7SUFDcEMsWUFBWSxFQUFHLG9CQUFvQixDQUFDO0lBQ3BDLE1BQU0sRUFBRyxVQUFVLENBQUM7SUFDcEIsWUFBWSxFQUFHLFlBQVksQ0FBQztJQUM1QixlQUFlLEVBQUcsWUFBWSxDQUFDO0lBQy9CLGVBQWUsRUFBRyxZQUFZLENBQUM7SUFFL0IsT0FBTyxDQUFDLG9CQUFvQixDQUFTO0lBQ3JDLE9BQU8sQ0FBQyxlQUFlLENBQVM7SUFFaEMsWUFBWSxRQUFRLEVBQUUsTUFBTSxFQUczQjtJQUVEOzs7T0FHRztJQUNILGtCQUFrQixTQUVqQjtJQUVEOzs7T0FHRztJQUNILGlCQUFpQixTQUVoQjtZQUthLGNBQWM7SUF3RHRCLEtBQUssa0JBY1Y7SUFFSyxRQUFRLGtCQUViO1lBRWEsU0FBUztDQStCeEIifQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fY29udHJhY3RfdGVzdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2UyZV90b2tlbl9jb250cmFjdC90b2tlbl9jb250cmFjdF90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBSXRGLE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxZQUFZLEVBTWxCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSWhFLHFCQUFhLGlCQUFpQjtJQUM1QixNQUFNLENBQUMsVUFBVSxTQUFVO0lBQzNCLE1BQU0sQ0FBQyxZQUFZLFNBQVM7SUFDNUIsTUFBTSxDQUFDLGNBQWMsU0FBTztJQUM1QixPQUFPLEVBQUcsZUFBZSxDQUFDO0lBQzFCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixXQUFXLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDckIsS0FBSyxFQUFHLGFBQWEsQ0FBQztJQUN0QixRQUFRLEVBQUcsY0FBYyxDQUFDO0lBQzFCLElBQUksRUFBRyxTQUFTLENBQUM7SUFFakIsVUFBVSxFQUFHLHNCQUFzQixDQUFDO0lBQ3BDLFlBQVksRUFBRyxvQkFBb0IsQ0FBQztJQUNwQyxNQUFNLEVBQUcsVUFBVSxDQUFDO0lBQ3BCLFlBQVksRUFBRyxZQUFZLENBQUM7SUFDNUIsZUFBZSxFQUFHLFlBQVksQ0FBQztJQUMvQixlQUFlLEVBQUcsWUFBWSxDQUFDO0lBRS9CLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBUztJQUNyQyxPQUFPLENBQUMsZUFBZSxDQUFTO0lBRWhDLFlBQVksUUFBUSxFQUFFLE1BQU0sRUFHM0I7SUFFRDs7O09BR0c7SUFDSCxrQkFBa0IsU0FFakI7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsU0FFaEI7WUFLYSxjQUFjO0lBeUR0QixLQUFLLENBQUMsSUFBSSxHQUFFLE9BQU8sQ0FBQyxZQUFZLENBQU0saUJBZTNDO0lBRUssUUFBUSxrQkFFYjtZQUVhLFNBQVM7Q0ErQnhCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"token_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_token_contract/token_contract_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAItF,OAAO,EAAE,KAAK,eAAe,EAAyD,MAAM,sBAAsB,CAAC;AAEnH,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAIhE,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,OAAO,EAAG,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAG,aAAa,CAAC;IACtB,QAAQ,EAAG,cAAc,CAAC;IAC1B,IAAI,EAAG,SAAS,CAAC;IAEjB,UAAU,EAAG,sBAAsB,CAAC;IACpC,YAAY,EAAG,oBAAoB,CAAC;IACpC,MAAM,EAAG,UAAU,CAAC;IACpB,YAAY,EAAG,YAAY,CAAC;IAC5B,eAAe,EAAG,YAAY,CAAC;IAC/B,eAAe,EAAG,YAAY,CAAC;IAE/B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,eAAe,CAAS;IAEhC,YAAY,QAAQ,EAAE,MAAM,EAG3B;IAED;;;OAGG;IACH,kBAAkB,SAEjB;IAED;;;OAGG;IACH,iBAAiB,SAEhB;YAKa,cAAc;IAwDtB,KAAK,kBAcV;IAEK,QAAQ,kBAEb;YAEa,SAAS;CA+BxB"}
1
+ {"version":3,"file":"token_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_token_contract/token_contract_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAItF,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAMlB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAIhE,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,OAAO,EAAG,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAG,aAAa,CAAC;IACtB,QAAQ,EAAG,cAAc,CAAC;IAC1B,IAAI,EAAG,SAAS,CAAC;IAEjB,UAAU,EAAG,sBAAsB,CAAC;IACpC,YAAY,EAAG,oBAAoB,CAAC;IACpC,MAAM,EAAG,UAAU,CAAC;IACpB,YAAY,EAAG,YAAY,CAAC;IAC5B,eAAe,EAAG,YAAY,CAAC;IAC/B,eAAe,EAAG,YAAY,CAAC;IAE/B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,eAAe,CAAS;IAEhC,YAAY,QAAQ,EAAE,MAAM,EAG3B;IAED;;;OAGG;IACH,kBAAkB,SAEjB;IAED;;;OAGG;IACH,iBAAiB,SAEhB;YAKa,cAAc;IAyDtB,KAAK,CAAC,IAAI,GAAE,OAAO,CAAC,YAAY,CAAM,iBAe3C;IAEK,QAAQ,kBAEb;YAEa,SAAS;CA+BxB"}
@@ -3,7 +3,7 @@ import { TokenContract } from '@aztec/noir-contracts.js/Token';
3
3
  import { GenericProxyContract } from '@aztec/noir-test-contracts.js/GenericProxy';
4
4
  import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
5
5
  import { jest } from '@jest/globals';
6
- import { deployAccounts, publicDeployAccounts, setup, teardown } from '../fixtures/setup.js';
6
+ import { deployAccounts, ensureAuthRegistryPublished, publicDeployAccounts, setup, teardown } from '../fixtures/setup.js';
7
7
  import { mintTokensToPrivate } from '../fixtures/token_utils.js';
8
8
  import { TokenSimulator } from '../simulators/token_simulator.js';
9
9
  const { METRICS_PORT: metricsPort } = process.env;
@@ -55,6 +55,7 @@ export class TokenContractTest {
55
55
  this.wallet = this.context.wallet;
56
56
  [this.adminAddress, this.account1Address, this.account2Address] = deployedAccounts.map((acc)=>acc.address);
57
57
  this.logger.info('Applying base setup - deploying token contract');
58
+ await ensureAuthRegistryPublished(this.wallet, this.adminAddress);
58
59
  this.logger.verbose(`Public deploy accounts...`);
59
60
  await publicDeployAccounts(this.wallet, [
60
61
  this.adminAddress,
@@ -86,8 +87,9 @@ export class TokenContractTest {
86
87
  from: this.adminAddress
87
88
  })).result).toBe(this.adminAddress.toBigInt());
88
89
  }
89
- async setup() {
90
+ async setup(opts = {}) {
90
91
  this.context = await setup(0, {
92
+ ...opts,
91
93
  metricsPort: this.metricsPort,
92
94
  fundSponsoredFPC: true,
93
95
  skipAccountDeployment: true
@@ -12,4 +12,4 @@ export declare function sendThroughAuthwitProxy(proxy: GenericProxyContract, act
12
12
  * while the actual tx sender retains their keys in scope.
13
13
  */
14
14
  export declare function simulateThroughAuthwitProxy(proxy: GenericProxyContract, action: ContractFunctionInteraction, options: SimulateInteractionOptions): Promise<import("@aztec/aztec.js/contracts").SimulationResult>;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aHdpdF9wcm94eS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpeHR1cmVzL2F1dGh3aXRfcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQ1YsMkJBQTJCLEVBQzNCLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDM0IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBa0J2Rjs7OztHQUlHO0FBQ0gsd0JBQXNCLHVCQUF1QixDQUMzQyxLQUFLLEVBQUUsb0JBQW9CLEVBQzNCLE1BQU0sRUFBRSwyQkFBMkIsRUFDbkMsT0FBTyxFQUFFLHNCQUFzQix3R0FJaEM7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQXNCLDJCQUEyQixDQUMvQyxLQUFLLEVBQUUsb0JBQW9CLEVBQzNCLE1BQU0sRUFBRSwyQkFBMkIsRUFDbkMsT0FBTyxFQUFFLDBCQUEwQixpRUFJcEMifQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aHdpdF9wcm94eS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpeHR1cmVzL2F1dGh3aXRfcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQ1YsMkJBQTJCLEVBQzNCLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDM0IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBc0J2Rjs7OztHQUlHO0FBQ0gsd0JBQXNCLHVCQUF1QixDQUMzQyxLQUFLLEVBQUUsb0JBQW9CLEVBQzNCLE1BQU0sRUFBRSwyQkFBMkIsRUFDbkMsT0FBTyxFQUFFLHNCQUFzQix3R0FJaEM7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQXNCLDJCQUEyQixDQUMvQyxLQUFLLEVBQUUsb0JBQW9CLEVBQzNCLE1BQU0sRUFBRSwyQkFBMkIsRUFDbkMsT0FBTyxFQUFFLDBCQUEwQixpRUFJcEMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"authwit_proxy.d.ts","sourceRoot":"","sources":["../../src/fixtures/authwit_proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAkBvF;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,2BAA2B,EACnC,OAAO,EAAE,sBAAsB,wGAIhC;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,2BAA2B,EACnC,OAAO,EAAE,0BAA0B,iEAIpC"}
1
+ {"version":3,"file":"authwit_proxy.d.ts","sourceRoot":"","sources":["../../src/fixtures/authwit_proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAsBvF;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,2BAA2B,EACnC,OAAO,EAAE,sBAAsB,wGAIhC;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,2BAA2B,EACnC,OAAO,EAAE,0BAA0B,iEAIpC"}
@@ -9,6 +9,10 @@
9
9
  return proxy.methods.forward_private_3(call.to, call.selector, call.args);
10
10
  } else if (argCount === 4) {
11
11
  return proxy.methods.forward_private_4(call.to, call.selector, call.args);
12
+ } else if (argCount === 5) {
13
+ return proxy.methods.forward_private_5(call.to, call.selector, call.args);
14
+ } else if (argCount === 6) {
15
+ return proxy.methods.forward_private_6(call.to, call.selector, call.args);
12
16
  }
13
17
  throw new Error(`No forward_private_${argCount} method on proxy`);
14
18
  }
@@ -3,14 +3,14 @@ import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
3
3
  import { type Logger } from '@aztec/aztec.js/log';
4
4
  import type { AztecNode } from '@aztec/aztec.js/node';
5
5
  import { CheatCodes } from '@aztec/aztec/testing';
6
- import { type ClientProtocolCircuitVerifier } from '@aztec/bb-prover';
6
+ import type { ClientProtocolCircuitVerifier } from '@aztec/bb-prover';
7
7
  import type { DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-aztec-l1-contracts';
8
8
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
9
9
  import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
10
10
  import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
11
11
  import { TokenSimulator } from '../simulators/token_simulator.js';
12
12
  import { TestWallet } from '../test-wallet/test_wallet.js';
13
- import { type EndToEndContext } from './setup.js';
13
+ import { type EndToEndContext, type SetupOptions } from './setup.js';
14
14
  /**
15
15
  * Largely taken from the e2e_token_contract test file. We deploy 2 accounts and a token contract.
16
16
  * However, we then setup a second PXE with a full prover instance.
@@ -35,7 +35,8 @@ export declare class FullProverTest {
35
35
  private provenComponents;
36
36
  private bbConfigCleanup?;
37
37
  private acvmConfigCleanup?;
38
- circuitProofVerifier?: ClientProtocolCircuitVerifier;
38
+ /** Returns the proof verifier from the prover node (for test assertions). */
39
+ get circuitProofVerifier(): ClientProtocolCircuitVerifier | undefined;
39
40
  provenAsset: TokenContract;
40
41
  context: EndToEndContext;
41
42
  private proverAztecNode;
@@ -47,9 +48,9 @@ export declare class FullProverTest {
47
48
  private realProofs;
48
49
  constructor(testName: string, minNumberOfTxsPerBlock: number, coinbase: EthAddress, realProofs?: boolean);
49
50
  private applyBaseSetup;
50
- setup(): Promise<this>;
51
+ setup(opts?: Partial<SetupOptions>): Promise<this>;
51
52
  private mintFeeJuice;
52
53
  teardown(): Promise<void>;
53
54
  private applyMint;
54
55
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZTJlX3Byb3Zlcl90ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZml4dHVyZXMvZTJlX3Byb3Zlcl90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFFTCxLQUFLLDZCQUE2QixFQUduQyxNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sS0FBSyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFJbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFNdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEVBQ0wsS0FBSyxlQUFlLEVBUXJCLE1BQU0sWUFBWSxDQUFDO0FBT3BCOzs7OztHQUtHO0FBRUgscUJBQWEsY0FBYztJQUN6QixNQUFNLENBQUMsVUFBVSxTQUFVO0lBQzNCLE1BQU0sQ0FBQyxZQUFZLFNBQVM7SUFDNUIsTUFBTSxDQUFDLGNBQWMsU0FBTztJQUM1QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsTUFBTSxFQUFHLFVBQVUsQ0FBQztJQUNwQixZQUFZLEVBQUcsVUFBVSxDQUFDO0lBQzFCLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBTTtJQUM5QixnQkFBZ0IsRUFBRyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3hDLGVBQWUsRUFBRyxhQUFhLENBQUM7SUFDaEMsdUJBQXVCLEVBQUcsMkJBQTJCLENBQUM7SUFDdEQsUUFBUSxFQUFHLGNBQWMsQ0FBQztJQUMxQixTQUFTLEVBQUcsU0FBUyxDQUFDO0lBQ3RCLGNBQWMsRUFBRyxjQUFjLENBQUM7SUFDaEMsVUFBVSxFQUFHLFVBQVUsQ0FBQztJQUN4QixPQUFPLENBQUMsZ0JBQWdCLENBQXFCO0lBQzdDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBc0I7SUFDOUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQXNCO0lBQ2hELG9CQUFvQixDQUFDLEVBQUUsNkJBQTZCLENBQUM7SUFDckQsV0FBVyxFQUFHLGFBQWEsQ0FBQztJQUM1QixPQUFPLEVBQUcsZUFBZSxDQUFDO0lBQzFCLE9BQU8sQ0FBQyxlQUFlLENBQW9CO0lBQzNDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBb0I7SUFDN0MsV0FBVyxFQUFHLGdDQUFnQyxDQUFDO0lBQy9DLGFBQWEsRUFBRyxVQUFVLENBQUM7SUFDbEMsT0FBTyxDQUFDLHNCQUFzQixDQUFTO0lBQ3ZDLE9BQU8sQ0FBQyxRQUFRLENBQWE7SUFDN0IsT0FBTyxDQUFDLFVBQVUsQ0FBVTtJQUU1QixZQUFZLFFBQVEsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxVQUFPLEVBS3BHO1lBS2EsY0FBYztJQXVDdEIsS0FBSyxrQkF3SVY7WUFFYSxZQUFZO0lBU3BCLFFBQVEsa0JBY2I7WUFFYSxTQUFTO0NBc0N4QiJ9
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZTJlX3Byb3Zlcl90ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZml4dHVyZXMvZTJlX3Byb3Zlcl90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdEUsT0FBTyxLQUFLLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUlsRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU10RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzNELE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxZQUFZLEVBUWxCLE1BQU0sWUFBWSxDQUFDO0FBT3BCOzs7OztHQUtHO0FBRUgscUJBQWEsY0FBYztJQUN6QixNQUFNLENBQUMsVUFBVSxTQUFVO0lBQzNCLE1BQU0sQ0FBQyxZQUFZLFNBQVM7SUFDNUIsTUFBTSxDQUFDLGNBQWMsU0FBTztJQUM1QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsTUFBTSxFQUFHLFVBQVUsQ0FBQztJQUNwQixZQUFZLEVBQUcsVUFBVSxDQUFDO0lBQzFCLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBTTtJQUM5QixnQkFBZ0IsRUFBRyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3hDLGVBQWUsRUFBRyxhQUFhLENBQUM7SUFDaEMsdUJBQXVCLEVBQUcsMkJBQTJCLENBQUM7SUFDdEQsUUFBUSxFQUFHLGNBQWMsQ0FBQztJQUMxQixTQUFTLEVBQUcsU0FBUyxDQUFDO0lBQ3RCLGNBQWMsRUFBRyxjQUFjLENBQUM7SUFDaEMsVUFBVSxFQUFHLFVBQVUsQ0FBQztJQUN4QixPQUFPLENBQUMsZ0JBQWdCLENBQXFCO0lBQzdDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBc0I7SUFDOUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQXNCO0lBQ2hELDZFQUE2RTtJQUM3RSxJQUFJLG9CQUFvQixJQUFJLDZCQUE2QixHQUFHLFNBQVMsQ0FFcEU7SUFDRCxXQUFXLEVBQUcsYUFBYSxDQUFDO0lBQzVCLE9BQU8sRUFBRyxlQUFlLENBQUM7SUFDMUIsT0FBTyxDQUFDLGVBQWUsQ0FBb0I7SUFDM0MsT0FBTyxDQUFDLHdCQUF3QixDQUFvQjtJQUM3QyxXQUFXLEVBQUcsZ0NBQWdDLENBQUM7SUFDL0MsYUFBYSxFQUFHLFVBQVUsQ0FBQztJQUNsQyxPQUFPLENBQUMsc0JBQXNCLENBQVM7SUFDdkMsT0FBTyxDQUFDLFFBQVEsQ0FBYTtJQUM3QixPQUFPLENBQUMsVUFBVSxDQUFVO0lBRTVCLFlBQVksUUFBUSxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLFVBQU8sRUFLcEc7WUFLYSxjQUFjO0lBcUN0QixLQUFLLENBQUMsSUFBSSxHQUFFLE9BQU8sQ0FBQyxZQUFZLENBQU0saUJBd0kzQztZQUVhLFlBQVk7SUFTcEIsUUFBUSxrQkFjYjtZQUVhLFNBQVM7Q0FzQ3hCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/e2e_prover_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAEL,KAAK,6BAA6B,EAGnC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAIlG,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMtE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EACL,KAAK,eAAe,EAQrB,MAAM,YAAY,CAAC;AAOpB;;;;;GAKG;AAEH,qBAAa,cAAc;IACzB,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAG,UAAU,CAAC;IACpB,YAAY,EAAG,UAAU,CAAC;IAC1B,QAAQ,EAAE,YAAY,EAAE,CAAM;IAC9B,gBAAgB,EAAG,kBAAkB,EAAE,CAAC;IACxC,eAAe,EAAG,aAAa,CAAC;IAChC,uBAAuB,EAAG,2BAA2B,CAAC;IACtD,QAAQ,EAAG,cAAc,CAAC;IAC1B,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAChC,UAAU,EAAG,UAAU,CAAC;IACxB,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAAC,CAAsB;IAChD,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,WAAW,EAAG,aAAa,CAAC;IAC5B,OAAO,EAAG,eAAe,CAAC;IAC1B,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,wBAAwB,CAAoB;IAC7C,WAAW,EAAG,gCAAgC,CAAC;IAC/C,aAAa,EAAG,UAAU,CAAC;IAClC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,UAAU,CAAU;IAE5B,YAAY,QAAQ,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,UAAO,EAKpG;YAKa,cAAc;IAuCtB,KAAK,kBAwIV;YAEa,YAAY;IASpB,QAAQ,kBAcb;YAEa,SAAS;CAsCxB"}
1
+ {"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/e2e_prover_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAIlG,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMtE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAQlB,MAAM,YAAY,CAAC;AAOpB;;;;;GAKG;AAEH,qBAAa,cAAc;IACzB,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAG,UAAU,CAAC;IACpB,YAAY,EAAG,UAAU,CAAC;IAC1B,QAAQ,EAAE,YAAY,EAAE,CAAM;IAC9B,gBAAgB,EAAG,kBAAkB,EAAE,CAAC;IACxC,eAAe,EAAG,aAAa,CAAC;IAChC,uBAAuB,EAAG,2BAA2B,CAAC;IACtD,QAAQ,EAAG,cAAc,CAAC;IAC1B,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAChC,UAAU,EAAG,UAAU,CAAC;IACxB,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAAC,CAAsB;IAChD,6EAA6E;IAC7E,IAAI,oBAAoB,IAAI,6BAA6B,GAAG,SAAS,CAEpE;IACD,WAAW,EAAG,aAAa,CAAC;IAC5B,OAAO,EAAG,eAAe,CAAC;IAC1B,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,wBAAwB,CAAoB;IAC7C,WAAW,EAAG,gCAAgC,CAAC;IAC/C,aAAa,EAAG,UAAU,CAAC;IAClC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,UAAU,CAAU;IAE5B,YAAY,QAAQ,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,UAAO,EAKpG;YAKa,cAAc;IAqCtB,KAAK,CAAC,IAAI,GAAE,OAAO,CAAC,YAAY,CAAM,iBAwI3C;YAEa,YAAY;IASpB,QAAQ,kBAcb;YAEa,SAAS;CAsCxB"}
@@ -1,7 +1,6 @@
1
1
  import { AztecNodeService } from '@aztec/aztec-node';
2
2
  import { EthAddress } from '@aztec/aztec.js/addresses';
3
3
  import { createLogger } from '@aztec/aztec.js/log';
4
- import { BBCircuitVerifier, QueuedIVCVerifier, TestCircuitVerifier } from '@aztec/bb-prover';
5
4
  import { BackendType, Barretenberg } from '@aztec/bb.js';
6
5
  import { Buffer32 } from '@aztec/foundation/buffer';
7
6
  import { SecretValue } from '@aztec/foundation/config';
@@ -37,7 +36,9 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
37
36
  provenComponents = [];
38
37
  bbConfigCleanup;
39
38
  acvmConfigCleanup;
40
- circuitProofVerifier;
39
+ /** Returns the proof verifier from the prover node (for test assertions). */ get circuitProofVerifier() {
40
+ return this.proverAztecNode?.getProofVerifier();
41
+ }
41
42
  provenAsset;
42
43
  context;
43
44
  proverAztecNode;
@@ -67,11 +68,8 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
67
68
  this.logger.info('Applying base setup: publicly deploying accounts');
68
69
  await publicDeployAccounts(this.wallet, this.accounts.slice(0, 2));
69
70
  this.logger.info('Applying base setup: deploying token contract');
70
- const { receipt: { contract: asset, instance } } = await TokenContract.deploy(this.wallet, this.accounts[0], FullProverTest.TOKEN_NAME, FullProverTest.TOKEN_SYMBOL, FullProverTest.TOKEN_DECIMALS).send({
71
- from: this.accounts[0],
72
- wait: {
73
- returnReceipt: true
74
- }
71
+ const { contract: asset, instance } = await TokenContract.deploy(this.wallet, this.accounts[0], FullProverTest.TOKEN_NAME, FullProverTest.TOKEN_SYMBOL, FullProverTest.TOKEN_DECIMALS).send({
72
+ from: this.accounts[0]
75
73
  });
76
74
  this.logger.verbose(`Token deployed to ${asset.address}`);
77
75
  this.fakeProofsAsset = asset;
@@ -82,9 +80,10 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
82
80
  from: this.accounts[0]
83
81
  })).result).toBe(this.accounts[0].toBigInt());
84
82
  }
85
- async setup() {
83
+ async setup(opts = {}) {
86
84
  this.logger.info('Setting up subsystems from fresh');
87
85
  this.context = await setup(0, {
86
+ ...opts,
88
87
  startProverNode: true,
89
88
  coinbase: this.coinbase,
90
89
  fundSponsoredFPC: true,
@@ -120,8 +119,6 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
120
119
  await Barretenberg.initSingleton({
121
120
  backend: BackendType.NativeUnixSocket
122
121
  });
123
- const verifier = await BBCircuitVerifier.new(bbConfig);
124
- this.circuitProofVerifier = new QueuedIVCVerifier(bbConfig, verifier);
125
122
  this.logger.debug(`Configuring the node for real proofs...`);
126
123
  await this.aztecNodeAdmin.setConfig({
127
124
  realProofs: true,
@@ -129,7 +126,6 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
129
126
  });
130
127
  } else {
131
128
  this.logger.debug(`Configuring the node min txs per block ${this.minNumberOfTxsPerBlock}...`);
132
- this.circuitProofVerifier = new TestCircuitVerifier();
133
129
  await this.aztecNodeAdmin.setConfig({
134
130
  minTxsPerBlock: this.minNumberOfTxsPerBlock
135
131
  });
@@ -168,7 +164,7 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
168
164
  await this.mintFeeJuice(proverNodeSenderAddress);
169
165
  this.logger.verbose('Starting prover node');
170
166
  const sponsoredFPCAddress = await getSponsoredFPCAddress();
171
- const { prefilledPublicData } = await getGenesisValues(this.context.initialFundedAccounts.map((a)=>a.address).concat(sponsoredFPCAddress));
167
+ const { genesis } = await getGenesisValues(this.context.initialFundedAccounts.map((a)=>a.address).concat(sponsoredFPCAddress), undefined, undefined, this.context.genesis.genesisTimestamp);
172
168
  const proverNodeConfig = {
173
169
  ...config,
174
170
  enableProverNode: true,
@@ -200,7 +196,7 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
200
196
  ]
201
197
  }
202
198
  }, {
203
- prefilledPublicData
199
+ genesis
204
200
  });
205
201
  this.logger.warn(`Proofs are now enabled`, {
206
202
  realProofs: this.realProofs
@@ -1,4 +1,76 @@
1
+ import type { AztecNode } from '@aztec/aztec.js/node';
2
+ import type { GasFees } from '@aztec/stdlib/gas';
1
3
  export declare const METRICS_PORT = 4318;
4
+ /** Default fee padding applied to predicted min fees in e2e tests. */
5
+ export declare const DEFAULT_MIN_FEE_PADDING = 5;
6
+ /**
7
+ * Large fee padding for txs that may be mined significantly later than when they were created,
8
+ * such as cloned txs in throughput/capacity benchmarks, where fees may spike between creation and mining.
9
+ */
10
+ export declare const LARGE_MIN_FEE_PADDING = 15;
11
+ /**
12
+ * Fee padding used by tests running under proposer pipelining. Under pipelining the fee-asset
13
+ * price modifier evolves faster across the build/publish gap, so client-set maxFeesPerGas (sized
14
+ * for the default 5x padding) was getting bumped past by the time the tx mined a few slots later.
15
+ * Observed worst case in CI: fee evolved ~20x between PXE snapshot and inclusion, exceeding even
16
+ * LARGE_MIN_FEE_PADDING (15x).
17
+ */
18
+ export declare const PIPELINED_FEE_PADDING = 30;
19
+ /**
20
+ * Setup option preset that opts a test into proposer pipelining. Use with `setup()`:
21
+ *
22
+ * await setup(N, { ...PIPELINING_SETUP_OPTS, ...otherOpts });
23
+ *
24
+ * The preset sets:
25
+ * - `enableProposerPipelining: true` so the sequencer builds for `slot + 1`.
26
+ * - `inboxLag: 2` so the sequencer sources L1->L2 messages from checkpoint N-1 (already sealed),
27
+ * avoiding `L1ToL2MessagesNotReadyError` when building for slot N during slot N-1.
28
+ * - `minTxsPerBlock: 0` so empty checkpoints land even when a tx arrives late in the build window
29
+ * (otherwise the chain stalls on alternating slots).
30
+ * - `aztecSlotDuration: 12` / `ethereumSlotDuration: 4` so the pipelined cycle fits inside the
31
+ * default 300s Jest hook budget. Tests that depend on the env-default 72s/12s should override.
32
+ * - `walletMinFeePadding: PIPELINED_FEE_PADDING` (30x) to absorb the wider fee evolution window.
33
+ */
34
+ export declare const PIPELINING_SETUP_OPTS: {
35
+ readonly enableProposerPipelining: true;
36
+ readonly inboxLag: 2;
37
+ readonly minTxsPerBlock: 0;
38
+ readonly aztecSlotDuration: 12;
39
+ readonly ethereumSlotDuration: 4;
40
+ readonly walletMinFeePadding: 30;
41
+ };
42
+ /**
43
+ * Setup option preset that opts a test into the deterministic AutomineSequencer path.
44
+ * Use only for single-sequencer tests that don't exercise block-building or consensus
45
+ * (e.g. e2e_token, e2e_amm, e2e_authwit). Not compatible with `e2e_p2p/*`,
46
+ * `e2e_epochs/*`, `e2e_slashing/*`, `e2e_block_building`, or any multi-validator suite.
47
+ *
48
+ * await setup(N, { ...AUTOMINE_E2E_OPTS, ...otherOpts });
49
+ *
50
+ * The preset:
51
+ * - Swaps the production Sequencer for an AutomineSequencer that builds one block per
52
+ * submitted tx, publishes synchronously to L1, and owns all time control through a
53
+ * serial queue (see `sequencer-client/src/sequencer/automine/automine_sequencer.ts`).
54
+ * - Disables the validator client and AnvilTestWatcher (the AutomineSequencer needs
55
+ * neither).
56
+ * - Disables proposer pipelining and uses `inboxLag: 1` (synchronous, non-pipelined).
57
+ * - Switches anvil into automine mode at setup time (no interval mining); each L1 tx
58
+ * mines an L1 block immediately.
59
+ *
60
+ * Requires `aztecTargetCommitteeSize: 0`, which is the e2e default at `setup.ts:317`.
61
+ */
62
+ export declare const AUTOMINE_E2E_OPTS: {
63
+ readonly useAutomineSequencer: true;
64
+ readonly disableAnvilTestWatcher: true;
65
+ readonly enableProposerPipelining: false;
66
+ readonly inboxLag: 1;
67
+ readonly minTxsPerBlock: 0;
68
+ readonly aztecSlotDuration: 12;
69
+ readonly ethereumSlotDuration: 4;
70
+ readonly walletMinFeePadding: 30;
71
+ };
72
+ /** Returns worst-case predicted min fees with padding applied, mirroring the BaseWallet pattern. */
73
+ export declare function getPaddedMaxFeesPerGas(node: AztecNode, padding?: number): Promise<GasFees>;
2
74
  export declare const shouldCollectMetrics: () => 4318 | undefined;
3
75
  /** Returns the boot node UDP port from environment variable or default value. */
4
76
  export declare function getBootNodeUdpPort(): number;
@@ -16,4 +88,4 @@ export declare const DUPLICATE_NULLIFIER_ERROR: RegExp;
16
88
  export declare const NO_L1_TO_L2_MSG_ERROR: RegExp;
17
89
  export declare const STATIC_CALL_STATE_MODIFICATION_ERROR: RegExp;
18
90
  export declare const STATIC_CONTEXT_ASSERTION_ERROR: RegExp;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFPLE1BQU0sWUFBWSxPQUFPLENBQUM7QUFFakMsZUFBTyxNQUFNLG9CQUFvQix3QkFLaEMsQ0FBQztBQUVGLGlGQUFpRjtBQUNqRix3QkFBZ0Isa0JBQWtCLElBQUksTUFBTSxDQUUzQztBQUVELHlFQUF5RTtBQUN6RSx3QkFBZ0IsWUFBWSxJQUFJLE1BQU0sQ0FFckM7QUFFRCxlQUFPLE1BQU0sMkJBQTJCLE9BQU8sQ0FBQztBQUNoRCxlQUFPLE1BQU0sOEJBQThCLFFBQVMsQ0FBQztBQUVyRCxlQUFPLE1BQU0sUUFBUSxnRUFBZ0UsQ0FBQztBQUN0RixlQUFPLE1BQU0sVUFBVSxxQkFBeUYsQ0FBQztBQUNqSCxlQUFPLE1BQU0sV0FBVyxxQkFBeUYsQ0FBQztBQUdsSCxlQUFPLE1BQU0sb0JBQW9CLHdEQUF3RCxDQUFDO0FBQzFGLGVBQU8sTUFBTSxtQkFBbUIsbURBQW1ELENBQUM7QUFDcEYsZUFBTyxNQUFNLHFCQUFxQiwrRUFBK0UsQ0FBQztBQUVsSCxlQUFPLE1BQU0seUJBQXlCLFFBQWdDLENBQUM7QUFDdkUsZUFBTyxNQUFNLHFCQUFxQixRQUN3RSxDQUFDO0FBQzNHLGVBQU8sTUFBTSxvQ0FBb0MsUUFBMEMsQ0FBQztBQUM1RixlQUFPLE1BQU0sOEJBQThCLFFBQWtFLENBQUMifQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxlQUFPLE1BQU0sWUFBWSxPQUFPLENBQUM7QUFFakMsc0VBQXNFO0FBQ3RFLGVBQU8sTUFBTSx1QkFBdUIsSUFBSSxDQUFDO0FBRXpDOzs7R0FHRztBQUNILGVBQU8sTUFBTSxxQkFBcUIsS0FBSyxDQUFDO0FBRXhDOzs7Ozs7R0FNRztBQUNILGVBQU8sTUFBTSxxQkFBcUIsS0FBSyxDQUFDO0FBRXhDOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsZUFBTyxNQUFNLHFCQUFxQjs7Ozs7OztDQU94QixDQUFDO0FBRVg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxlQUFPLE1BQU0saUJBQWlCOzs7Ozs7Ozs7Q0FTcEIsQ0FBQztBQUVYLG9HQUFvRztBQUNwRyx3QkFBc0Isc0JBQXNCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLFNBQTBCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQU9qSDtBQUVELGVBQU8sTUFBTSxvQkFBb0Isd0JBS2hDLENBQUM7QUFFRixpRkFBaUY7QUFDakYsd0JBQWdCLGtCQUFrQixJQUFJLE1BQU0sQ0FFM0M7QUFFRCx5RUFBeUU7QUFDekUsd0JBQWdCLFlBQVksSUFBSSxNQUFNLENBRXJDO0FBRUQsZUFBTyxNQUFNLDJCQUEyQixPQUFPLENBQUM7QUFDaEQsZUFBTyxNQUFNLDhCQUE4QixRQUFTLENBQUM7QUFFckQsZUFBTyxNQUFNLFFBQVEsZ0VBQWdFLENBQUM7QUFDdEYsZUFBTyxNQUFNLFVBQVUscUJBQXlGLENBQUM7QUFDakgsZUFBTyxNQUFNLFdBQVcscUJBQXlGLENBQUM7QUFHbEgsZUFBTyxNQUFNLG9CQUFvQix3REFBd0QsQ0FBQztBQUMxRixlQUFPLE1BQU0sbUJBQW1CLG1EQUFtRCxDQUFDO0FBQ3BGLGVBQU8sTUFBTSxxQkFBcUIsK0VBQStFLENBQUM7QUFFbEgsZUFBTyxNQUFNLHlCQUF5QixRQUFnQyxDQUFDO0FBQ3ZFLGVBQU8sTUFBTSxxQkFBcUIsUUFDd0UsQ0FBQztBQUMzRyxlQUFPLE1BQU0sb0NBQW9DLFFBQTBDLENBQUM7QUFDNUYsZUFBTyxNQUFNLDhCQUE4QixRQUFrRSxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/fixtures/fixtures.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,eAAO,MAAM,oBAAoB,wBAKhC,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,yEAAyE;AACzE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAErD,eAAO,MAAM,QAAQ,gEAAgE,CAAC;AACtF,eAAO,MAAM,UAAU,qBAAyF,CAAC;AACjH,eAAO,MAAM,WAAW,qBAAyF,CAAC;AAGlH,eAAO,MAAM,oBAAoB,wDAAwD,CAAC;AAC1F,eAAO,MAAM,mBAAmB,mDAAmD,CAAC;AACpF,eAAO,MAAM,qBAAqB,+EAA+E,CAAC;AAElH,eAAO,MAAM,yBAAyB,QAAgC,CAAC;AACvE,eAAO,MAAM,qBAAqB,QACwE,CAAC;AAC3G,eAAO,MAAM,oCAAoC,QAA0C,CAAC;AAC5F,eAAO,MAAM,8BAA8B,QAAkE,CAAC"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/fixtures/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,sEAAsE;AACtE,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB;;;;;;;CAOxB,CAAC;AAEX;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;CASpB,CAAC;AAEX,oGAAoG;AACpG,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,SAA0B,GAAG,OAAO,CAAC,OAAO,CAAC,CAOjH;AAED,eAAO,MAAM,oBAAoB,wBAKhC,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,yEAAyE;AACzE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAErD,eAAO,MAAM,QAAQ,gEAAgE,CAAC;AACtF,eAAO,MAAM,UAAU,qBAAyF,CAAC;AACjH,eAAO,MAAM,WAAW,qBAAyF,CAAC;AAGlH,eAAO,MAAM,oBAAoB,wDAAwD,CAAC;AAC1F,eAAO,MAAM,mBAAmB,mDAAmD,CAAC;AACpF,eAAO,MAAM,qBAAqB,+EAA+E,CAAC;AAElH,eAAO,MAAM,yBAAyB,QAAgC,CAAC;AACvE,eAAO,MAAM,qBAAqB,QACwE,CAAC;AAC3G,eAAO,MAAM,oCAAoC,QAA0C,CAAC;AAC5F,eAAO,MAAM,8BAA8B,QAAkE,CAAC"}