@aztec/end-to-end 0.0.1-commit.72dcdcda8 → 0.0.1-commit.7689c7f

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 (181) 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 +32 -36
  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 +8 -3
  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 +28 -19
  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 +44 -11
  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 +6 -7
  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 +13 -11
  33. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  34. package/dest/e2e_p2p/p2p_network.js +65 -43
  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 +25 -7
  39. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  40. package/dest/e2e_p2p/shared.js +73 -50
  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 +15 -13
  44. package/dest/fixtures/authwit_proxy.d.ts +3 -3
  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 +13 -17
  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 +138 -29
  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 +22 -18
  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 +19 -10
  90. package/dest/shared/submit-transactions.d.ts +1 -1
  91. package/dest/shared/submit-transactions.d.ts.map +1 -1
  92. package/dest/shared/submit-transactions.js +1 -1
  93. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  94. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  95. package/dest/shared/uniswap_l1_l2.js +60 -39
  96. package/dest/shared/wait_for_l1_to_l2_message.d.ts +13 -0
  97. package/dest/shared/wait_for_l1_to_l2_message.d.ts.map +1 -0
  98. package/dest/shared/wait_for_l1_to_l2_message.js +10 -0
  99. package/dest/simulators/lending_simulator.d.ts +10 -3
  100. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  101. package/dest/simulators/lending_simulator.js +26 -14
  102. package/dest/simulators/token_simulator.d.ts +1 -1
  103. package/dest/simulators/token_simulator.d.ts.map +1 -1
  104. package/dest/simulators/token_simulator.js +2 -2
  105. package/dest/spartan/setup_test_wallets.d.ts +4 -2
  106. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  107. package/dest/spartan/setup_test_wallets.js +72 -39
  108. package/dest/spartan/tx_metrics.d.ts +18 -4
  109. package/dest/spartan/tx_metrics.d.ts.map +1 -1
  110. package/dest/spartan/tx_metrics.js +74 -21
  111. package/dest/spartan/utils/config.d.ts +9 -32
  112. package/dest/spartan/utils/config.d.ts.map +1 -1
  113. package/dest/spartan/utils/config.js +1 -0
  114. package/dest/spartan/utils/index.d.ts +2 -1
  115. package/dest/spartan/utils/index.d.ts.map +1 -1
  116. package/dest/spartan/utils/index.js +2 -0
  117. package/dest/spartan/utils/nodes.js +2 -2
  118. package/dest/spartan/utils/pod_logs.d.ts +25 -0
  119. package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
  120. package/dest/spartan/utils/pod_logs.js +74 -0
  121. package/dest/test-wallet/test_wallet.d.ts +25 -23
  122. package/dest/test-wallet/test_wallet.d.ts.map +1 -1
  123. package/dest/test-wallet/test_wallet.js +146 -87
  124. package/dest/test-wallet/utils.d.ts +3 -3
  125. package/dest/test-wallet/utils.d.ts.map +1 -1
  126. package/dest/test-wallet/utils.js +2 -7
  127. package/dest/test-wallet/wallet_worker_script.js +2 -2
  128. package/dest/test-wallet/worker_wallet.d.ts +5 -4
  129. package/dest/test-wallet/worker_wallet.d.ts.map +1 -1
  130. package/dest/test-wallet/worker_wallet.js +5 -1
  131. package/dest/test-wallet/worker_wallet_schema.d.ts +110 -224
  132. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -1
  133. package/dest/test-wallet/worker_wallet_schema.js +14 -2
  134. package/package.json +46 -42
  135. package/src/bench/client_flows/benchmark.ts +19 -0
  136. package/src/bench/client_flows/client_flows_benchmark.ts +59 -41
  137. package/src/bench/utils.ts +9 -3
  138. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +42 -24
  139. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +49 -11
  140. package/src/e2e_deploy_contract/deploy_test.ts +3 -2
  141. package/src/e2e_epochs/epochs_test.ts +99 -11
  142. package/src/e2e_fees/fees_test.ts +49 -9
  143. package/src/e2e_nested_contract/nested_contract_test.ts +9 -5
  144. package/src/e2e_p2p/inactivity_slash_test.ts +5 -3
  145. package/src/e2e_p2p/p2p_network.ts +82 -60
  146. package/src/e2e_p2p/reqresp/utils.ts +51 -12
  147. package/src/e2e_p2p/shared.ts +92 -64
  148. package/src/e2e_token_contract/token_contract_test.ts +28 -10
  149. package/src/fixtures/authwit_proxy.ts +4 -0
  150. package/src/fixtures/e2e_prover_test.ts +22 -19
  151. package/src/fixtures/fixtures.ts +86 -0
  152. package/src/fixtures/get_bb_config.ts +7 -6
  153. package/src/fixtures/ha_setup.ts +4 -2
  154. package/src/fixtures/schnorr_hardcoded_account_contract.ts +49 -0
  155. package/src/fixtures/setup.ts +175 -33
  156. package/src/fixtures/setup_p2p_test.ts +13 -9
  157. package/src/fixtures/token_utils.ts +1 -2
  158. package/src/fixtures/utils.ts +2 -0
  159. package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
  160. package/src/forward-compatibility/wallet_service.ts +104 -0
  161. package/src/guides/up_quick_start.sh +0 -2
  162. package/src/install_legacy_contracts.cjs +75 -0
  163. package/src/legacy-jest-resolver.cjs +112 -0
  164. package/src/shared/cross_chain_test_harness.ts +27 -13
  165. package/src/shared/gas_portal_test_harness.ts +21 -11
  166. package/src/shared/submit-transactions.ts +1 -4
  167. package/src/shared/uniswap_l1_l2.ts +77 -50
  168. package/src/shared/wait_for_l1_to_l2_message.ts +23 -0
  169. package/src/simulators/lending_simulator.ts +32 -14
  170. package/src/simulators/token_simulator.ts +6 -2
  171. package/src/spartan/setup_test_wallets.ts +91 -37
  172. package/src/spartan/tx_metrics.ts +82 -24
  173. package/src/spartan/utils/config.ts +1 -0
  174. package/src/spartan/utils/index.ts +3 -0
  175. package/src/spartan/utils/nodes.ts +2 -2
  176. package/src/spartan/utils/pod_logs.ts +99 -0
  177. package/src/test-wallet/test_wallet.ts +174 -104
  178. package/src/test-wallet/utils.ts +3 -7
  179. package/src/test-wallet/wallet_worker_script.ts +2 -2
  180. package/src/test-wallet/worker_wallet.ts +9 -4
  181. package/src/test-wallet/worker_wallet_schema.ts +2 -2
package/README.md CHANGED
@@ -24,3 +24,30 @@ which will spawn the two processes.
24
24
  You can also run this by `docker-compose up` which will spawn 2 different containers for Anvil and the test runner.
25
25
 
26
26
  You can run a single test by running `yarn test:compose <test_name>`.
27
+
28
+ ## Running tests against legacy contract artifacts
29
+
30
+ To verify that contracts deployed from a previous release still work against the current stack, set
31
+ `CONTRACT_ARTIFACTS_VERSION` to a published version of `@aztec/noir-contracts.js` / `@aztec/noir-test-contracts.js`:
32
+
33
+ ```
34
+ CONTRACT_ARTIFACTS_VERSION=4.1.3 yarn test:e2e src/e2e_amm.test.ts
35
+ ```
36
+
37
+ Only the JSON artifact files (`.../artifacts/*.json`) are redirected. The TypeScript wrapper classes
38
+ (e.g. `TokenContract`) continue to load from the current workspace and use the current `@aztec/aztec.js` — so this
39
+ exercises whether a deployed contract's ABI / bytecode / notes still work through the *new* client, not whether the
40
+ legacy wrapper code still imports cleanly.
41
+
42
+ The first run downloads the pinned packages into `.legacy-contracts/<version>/node_modules/` (cached across runs). A
43
+ startup banner and a per-redirect line are printed to stderr so you can confirm the legacy artifacts were actually
44
+ loaded:
45
+
46
+ ```
47
+ [legacy-contracts][jest] CONTRACT_ARTIFACTS_VERSION=4.1.3
48
+ [legacy-contracts][jest] redirecting @aztec/noir-contracts.js/artifacts/*.json -> .legacy-contracts/4.1.3/...
49
+ [legacy-contracts][jest] redirected token_contract-Token.json -> /abs/.../.legacy-contracts/4.1.3/.../token_contract-Token.json
50
+ ```
51
+
52
+ When `CONTRACT_ARTIFACTS_VERSION` is unset the test run is byte-identical to the default behaviour. The cache is
53
+ populated automatically on first use.
@@ -57,6 +57,20 @@ type ClientFlowBenchmark = {
57
57
  };
58
58
  export declare function generateBenchmark(flow: string, logs: Log[], stats: ProvingStats | SimulationStats, privateExecutionSteps: PrivateExecutionStep[], proverType: ProverType, error: string | undefined): ClientFlowBenchmark;
59
59
  export declare function convertProfileToGHBenchmark(benchmark: ClientFlowBenchmark): GithubActionBenchmarkResult[];
60
+ /**
61
+ * Computes the expected number of `PrivateExecutionStep` entries the orchestrator will produce
62
+ * for a tx with `apps` private function calls.
63
+ *
64
+ * Step layout: `apps` app circuits + kernel iterations + 1 final reset + 1 tail + 1 hiding kernel.
65
+ * Each kernel iteration absorbs up to `MAX_APPS_PER_KERNEL` apps via the `init_K` / `inner_K`
66
+ * variants, so the kernel count is `ceil(apps / MAX_APPS_PER_KERNEL)`.
67
+ *
68
+ * Caveat: this assumes no mid-flow reset is triggered, which would split a batch into two kernels
69
+ * separated by a reset. For the flows currently exercised in this benchmark suite that holds, but
70
+ * a future flow that grows large enough to overflow per-tx limits before consuming all apps will
71
+ * not match this formula.
72
+ */
73
+ export declare function expectedExecutionSteps(apps: number): number;
60
74
  export declare function captureProfile(label: string, interaction: ContractFunctionInteraction | DeployMethod, opts: Omit<ProfileInteractionOptions & DeployOptions, 'profileMode'>, expectedSteps?: number): Promise<import("@aztec/stdlib/tx").TxProfileResult>;
61
75
  export {};
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVuY2htYXJrLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmVuY2gvY2xpZW50X2Zsb3dzL2JlbmNobWFyay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLFlBQVksRUFDWixLQUFLLGFBQWEsRUFDbEIsS0FBSyx5QkFBeUIsRUFDL0IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsS0FBSyxvQkFBb0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRyxPQUFPLEtBQUssRUFDVixZQUFZLEVBQ1osY0FBYyxFQUNkLGNBQWMsRUFDZCxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2xCLE1BQU0sa0JBQWtCLENBQUM7QUFNMUIsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJL0QsUUFBQSxNQUFNLFFBQVEsb0ZBQXFGLENBQUM7QUFDcEcsS0FBSyxRQUFRLEdBQUcsQ0FBQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRTFDLE1BQU0sTUFBTSxHQUFHLEdBQUc7SUFDaEIsSUFBSSxFQUFFLFFBQVEsQ0FBQztJQUNmLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIsSUFBSSxFQUFFLEdBQUcsQ0FBQztDQUNYLENBQUM7QUFFRixRQUFBLE1BQU0sVUFBVSwwS0FhTixDQUFDO0FBRVgsS0FBSyxRQUFRLEdBQUcsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRTVDLEtBQUssZUFBZSxHQUFHO0tBQ3BCLENBQUMsSUFBSSxRQUFRLEdBQUcsTUFBTTtDQUN4QixDQUFDO0FBRUYscUJBQWEsV0FBVztJQUN0QixPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBYztJQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFhO0lBRXpCLE9BQU8sZUFBaUI7SUFFeEIsTUFBTSxDQUFDLE1BQU0sU0FFWjtJQUVELE1BQU0sQ0FBQyxXQUFXLGdCQUVqQjtJQUVELFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FlbkM7SUFFRCxPQUFPLENBQUMsU0FBUztJQUlWLFNBQVMsU0FFZjtJQUVNLE9BQU8sVUFFYjtDQUNGO0FBRUQsTUFBTSxNQUFNLFVBQVUsR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDO0FBRTNDLEtBQUssYUFBYSxHQUFHO0lBRW5CLEtBQUssRUFBRSxNQUFNLENBQUM7SUFFZCxHQUFHLEVBQUUsTUFBTSxDQUFDO0lBRVosR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUVaLEdBQUcsRUFBRSxNQUFNLENBQUM7SUFFWixLQUFLLEVBQUUsTUFBTSxDQUFDO0NBQ2YsQ0FBQztBQUVGLEtBQUssSUFBSSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxjQUFjLEdBQUcsV0FBVyxDQUFDLEdBQUc7SUFDckUsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN0QixPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztDQUN4QyxDQUFDO0FBRUYsS0FBSyxtQkFBbUIsR0FBRztJQUN6QixJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLEdBQUc7UUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQztJQUN0RixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ25DLFVBQVUsRUFBRSxjQUFjLENBQUM7SUFDM0IsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN2QixZQUFZLEVBQUUsZUFBZSxDQUFDO0lBQzlCLGNBQWMsRUFBRSxNQUFNLENBQUM7SUFDdkIsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2QsS0FBSyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7Q0FDM0IsQ0FBQztBQTBDRix3QkFBZ0IsaUJBQWlCLENBQy9CLElBQUksRUFBRSxNQUFNLEVBQ1osSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUNYLEtBQUssRUFBRSxZQUFZLEdBQUcsZUFBZSxFQUNyQyxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxFQUM3QyxVQUFVLEVBQUUsVUFBVSxFQUN0QixLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsR0FDeEIsbUJBQW1CLENBMkVyQjtBQUVELHdCQUFnQiwyQkFBMkIsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLEdBQUcsMkJBQTJCLEVBQUUsQ0E2RHpHO0FBRUQsd0JBQXNCLGNBQWMsQ0FDbEMsS0FBSyxFQUFFLE1BQU0sRUFDYixXQUFXLEVBQUUsMkJBQTJCLEdBQUcsWUFBWSxFQUN2RCxJQUFJLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixHQUFHLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFDcEUsYUFBYSxDQUFDLEVBQUUsTUFBTSx1REFvQ3ZCIn0=
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVuY2htYXJrLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmVuY2gvY2xpZW50X2Zsb3dzL2JlbmNobWFyay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLFlBQVksRUFDWixLQUFLLGFBQWEsRUFDbEIsS0FBSyx5QkFBeUIsRUFDL0IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdsRCxPQUFPLEVBQUUsS0FBSyxvQkFBb0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRyxPQUFPLEtBQUssRUFDVixZQUFZLEVBQ1osY0FBYyxFQUNkLGNBQWMsRUFDZCxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2xCLE1BQU0sa0JBQWtCLENBQUM7QUFNMUIsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJL0QsUUFBQSxNQUFNLFFBQVEsb0ZBQXFGLENBQUM7QUFDcEcsS0FBSyxRQUFRLEdBQUcsQ0FBQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRTFDLE1BQU0sTUFBTSxHQUFHLEdBQUc7SUFDaEIsSUFBSSxFQUFFLFFBQVEsQ0FBQztJQUNmLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIsSUFBSSxFQUFFLEdBQUcsQ0FBQztDQUNYLENBQUM7QUFFRixRQUFBLE1BQU0sVUFBVSwwS0FhTixDQUFDO0FBRVgsS0FBSyxRQUFRLEdBQUcsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRTVDLEtBQUssZUFBZSxHQUFHO0tBQ3BCLENBQUMsSUFBSSxRQUFRLEdBQUcsTUFBTTtDQUN4QixDQUFDO0FBRUYscUJBQWEsV0FBVztJQUN0QixPQUFP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
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/benchmark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/benchmark.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { MAX_APPS_PER_KERNEL } from '@aztec/constants';
1
2
  import { createLogger } from '@aztec/foundation/log';
2
3
  import { serializePrivateExecutionSteps } from '@aztec/stdlib/kernel';
3
4
  import assert from 'node:assert';
@@ -239,6 +240,22 @@ export function convertProfileToGHBenchmark(benchmark) {
239
240
  }
240
241
  return benches;
241
242
  }
243
+ /**
244
+ * Computes the expected number of `PrivateExecutionStep` entries the orchestrator will produce
245
+ * for a tx with `apps` private function calls.
246
+ *
247
+ * Step layout: `apps` app circuits + kernel iterations + 1 final reset + 1 tail + 1 hiding kernel.
248
+ * Each kernel iteration absorbs up to `MAX_APPS_PER_KERNEL` apps via the `init_K` / `inner_K`
249
+ * variants, so the kernel count is `ceil(apps / MAX_APPS_PER_KERNEL)`.
250
+ *
251
+ * Caveat: this assumes no mid-flow reset is triggered, which would split a batch into two kernels
252
+ * separated by a reset. For the flows currently exercised in this benchmark suite that holds, but
253
+ * a future flow that grows large enough to overflow per-tx limits before consuming all apps will
254
+ * not match this formula.
255
+ */ export function expectedExecutionSteps(apps) {
256
+ const kernels = Math.ceil(apps / MAX_APPS_PER_KERNEL);
257
+ return apps + kernels + 1 /* final reset */ + 1 /* tail */ + 1 /* hiding */ ;
258
+ }
242
259
  export async function captureProfile(label, interaction, opts, expectedSteps) {
243
260
  // Make sure the proxy logger starts from a clean slate
244
261
  ProxyLogger.getInstance().flushLogs();
@@ -50,7 +50,7 @@ export declare class ClientFlowsBenchmark {
50
50
  realProofs: boolean;
51
51
  paymentMethods: Record<BenchmarkingFeePaymentMethod, {
52
52
  forWallet: FeePaymentMethodGetter;
53
- circuits: number;
53
+ apps: number;
54
54
  }>;
55
55
  config: ClientFlowsConfig;
56
56
  private proxyLogger;
@@ -76,4 +76,4 @@ export declare class ClientFlowsBenchmark {
76
76
  getPrivateFPCPaymentMethodForWallet(wallet: Wallet, sender: AztecAddress): Promise<PrivateFeePaymentMethod>;
77
77
  getSponsoredFPCPaymentMethodForWallet(_wallet: Wallet, _sender: AztecAddress): Promise<SponsoredFeePaymentMethod>;
78
78
  }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50X2Zsb3dzX2JlbmNobWFyay5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JlbmNoL2NsaWVudF9mbG93cy9jbGllbnRfZmxvd3NfYmVuY2htYXJrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQsT0FBTyxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUU1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsSUFBSSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJNUYsT0FBTyxLQUFL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
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50X2Zsb3dzX2JlbmNobWFyay5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JlbmNoL2NsaWVudF9mbG93cy9jbGllbnRfZmxvd3NfYmVuY2htYXJrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFpQyxNQUFNLHNCQUFzQixDQUFDO0FBR2pGLE9BQU8sS0FBSyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLElBQUksVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSTVGLE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLMUUsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLEtBQUssWUFBWSxFQUFtQyxNQUFNLHlCQUF5QixDQUFDO0FBR25ILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFFTCxLQUFLLHNCQUFzQixFQUM1QixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUU5RCxPQUFPLEVBQUUsS0FBSyxpQkFBaUIsRUFBdUMsTUFBTSxhQUFhLENBQUM7QUFJMUYsTUFBTSxNQUFNLFdBQVcsR0FBRyxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ2hELE1BQU0sTUFBTSxzQkFBc0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksS0FBSyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLENBQUM7QUFDckgsTUFBTSxNQUFNLDRCQUE0QixHQUFHLG1CQUFtQixHQUFHLGFBQWEsR0FBRyxlQUFlLEdBQUcsV0FBVyxDQUFDO0FBRS9HLHFCQUFhLG9CQUFvQjtJQUN4QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsU0FBUyxFQUFHLFNBQVMsQ0FBQztJQUN0QixVQUFVLEVBQUcsVUFBVSxDQUFDO0lBQ3hCLE9BQU8sRUFBRyxlQUFlLENBQUM7SUFDMUIsWUFBWSxFQUFHLFlBQVksQ0FBQztJQUM1Qix5QkFBeUIsRUFBRyxzQkFBc0IsQ0FBQztJQUNuRCxXQUFXLEVBQUcsVUFBVSxDQUFDO0lBR3pCLFlBQVksRUFBRyxZQUFZLENBQUM7SUFHNUIsZ0JBQWdCLEVBQUcsWUFBWSxDQUFDO0lBQ2hDLFFBQVEsRUFBRyxVQUFVLENBQUM7SUFHdEIsZ0JBQWdCLEVBQUcsZ0JBQWdCLENBQUM7SUFFcEMsVUFBVSxFQUFHLFVBQVUsQ0FBQztJQUN4QixrQkFBa0IsRUFBRywyQkFBMkIsQ0FBQztJQUNqRCxTQUFTLEVBQUcsV0FBVyxDQUFDO0lBQ3hCLGlCQUFpQixFQUFHLDJCQUEyQixDQUFDO0lBRWhELFlBQVksRUFBRyxhQUFhLENBQUM7SUFDN0Isb0JBQW9CLEVBQUcsMkJBQTJCLENBQUM7SUFFbkQsR0FBRyxFQUFHLFdBQVcsQ0FBQztJQUNsQixXQUFXLEVBQUcsMkJBQTJCLENBQUM7SUFFMUMsY0FBYyxFQUFHLGFBQWEsQ0FBQztJQUMvQixzQkFBc0IsRUFBRywyQkFBMkIsQ0FBQztJQUVyRCxZQUFZLEVBQUcsb0JBQW9CLENBQUM7SUFDcEMsb0JBQW9CLEVBQUcsMkJBQTJCLENBQUM7SUFHbkQsVUFBVSxFQUFHLFVBQVUsQ0FBQztJQUV4QixVQUFVLFVBQXlEO0lBS25FLGNBQWMsRUFBRSxNQUFNLENBQUMsNEJBQTRCLEVBQUU7UUFBRSxTQUFTLEVBQUUsc0JBQXNCLENBQUM7UUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQyxDQXlCOUc7SUFFSyxNQUFNLEVBQUUsaUJBQWlCLENBQUM7SUFFakMsT0FBTyxDQUFDLFdBQVcsQ0FBYztJQUNqQyxPQUFPLENBQUMsWUFBWSxDQUFxRDtJQUV6RSxZQUFZLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEdBQUUsT0FBTyxDQUFDLFlBQVksR0FBRywwQkFBMEIsQ0FBTSxFQU1uRztJQUVLLEtBQUssa0JBbUJWO0lBRUssUUFBUSxrQkFJYjtJQUVLLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxZQUFZLGlCQU1oRDtJQUVELHNGQUFzRjtJQUNoRixrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLGlCQVc3RDtJQUVELGdDQUFnQyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsR0FBRyxTQUFTLDREQWMvRTtJQUVZLGNBQWMsa0JBRzFCO0lBRUssb0JBQW9CLGtCQWtDekI7SUFFSyxrQkFBa0Isa0JBV3ZCO0lBRUssc0JBQXNCLGtCQWMzQjtJQUVLLHdCQUF3QixrQkFjN0I7SUFFWSxhQUFhLGtCQW9CekI7SUFFSyx1QkFBdUIsa0JBTTVCO0lBRVksMkJBQTJCLENBQUMsS0FBSyxFQUFFLFlBQVksa0NBc0IzRDtJQUVZLDRDQUE0QyxDQUFDLFdBQVcsRUFBRSxXQUFXLHlCQWlCakY7SUFFWSxjQUFjLGtCQXVCMUI7SUFFWSx3Q0FBd0MsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLDJDQUcxRjtJQUVZLG1DQUFtQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksb0NBTXBGO0lBRU0scUNBQXFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxzQ0FFbEY7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"client_flows_benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/client_flows_benchmark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client_flows_benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/client_flows_benchmark.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { AztecAddress } from '@aztec/aztec.js/addresses';
1
+ import { NO_FROM } from '@aztec/aztec.js/account';
2
2
  import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
3
3
  import { PrivateFeePaymentMethod, SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
4
4
  import { createLogger } from '@aztec/aztec.js/log';
5
+ import { getTokenAllowedSetupFunctions } from '@aztec/aztec/testing';
5
6
  import { createExtendedL1Client } from '@aztec/ethereum/client';
6
7
  import { RollupContract } from '@aztec/ethereum/contracts';
7
8
  import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
@@ -21,7 +22,7 @@ import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
21
22
  import { getPXEConfig } from '@aztec/pxe/server';
22
23
  import { GasSettings } from '@aztec/stdlib/gas';
23
24
  import { deriveSigningKey } from '@aztec/stdlib/keys';
24
- import { MNEMONIC } from '../../fixtures/fixtures.js';
25
+ import { AUTOMINE_E2E_OPTS, MNEMONIC, getPaddedMaxFeesPerGas } from '../../fixtures/fixtures.js';
25
26
  import { deployAccounts, setup, teardown } from '../../fixtures/setup.js';
26
27
  import { mintTokensToPrivate } from '../../fixtures/token_utils.js';
27
28
  import { setupSponsoredFPC } from '../../fixtures/utils.js';
@@ -69,29 +70,32 @@ export class ClientFlowsBenchmark {
69
70
  'true',
70
71
  '1'
71
72
  ].includes(process.env.REAL_PROOFS ?? '');
73
+ // `apps` is the number of private function calls contributed by this payment method.
74
+ // Each app produces one execution step at proving time; the orchestrator additionally produces
75
+ // one kernel step per batch of N apps (see `expectedExecutionSteps` in `benchmark.ts`).
72
76
  paymentMethods = {
73
77
  // eslint-disable-next-line camelcase
74
78
  bridged_fee_juice: {
75
79
  forWallet: this.getBridgedFeeJuicePaymentMethodForWallet.bind(this),
76
- circuits: 2
80
+ apps: 1
77
81
  },
78
82
  // eslint-disable-next-line camelcase
79
83
  private_fpc: {
80
84
  forWallet: this.getPrivateFPCPaymentMethodForWallet.bind(this),
81
- circuits: 2 + // FPC entrypoint + kernel inner
82
- 2 + // BananaCoin transfer_to_public + kernel inner
83
- 2 + // Account verify_private_authwit + kernel inner
84
- 2
85
+ apps: 1 + // FPC entrypoint
86
+ 1 + // BananaCoin transfer_to_public
87
+ 1 + // Account verify_private_authwit
88
+ 1
85
89
  },
86
90
  // eslint-disable-next-line camelcase
87
91
  sponsored_fpc: {
88
92
  forWallet: this.getSponsoredFPCPaymentMethodForWallet.bind(this),
89
- circuits: 2
93
+ apps: 1
90
94
  },
91
95
  // eslint-disable-next-line camelcase
92
96
  fee_juice: {
93
97
  forWallet: ()=>Promise.resolve(undefined),
94
- circuits: 0
98
+ apps: 0
95
99
  }
96
100
  };
97
101
  config;
@@ -100,6 +104,7 @@ export class ClientFlowsBenchmark {
100
104
  constructor(testName, setupOptions = {}){
101
105
  this.logger = createLogger(`bench:client_flows${testName ? `:${testName}` : ''}`);
102
106
  this.setupOptions = {
107
+ ...AUTOMINE_E2E_OPTS,
103
108
  startProverNode: true,
104
109
  ...setupOptions
105
110
  };
@@ -109,11 +114,17 @@ export class ClientFlowsBenchmark {
109
114
  }
110
115
  async setup() {
111
116
  this.logger.info('Setting up subsystems from fresh');
117
+ // Token allowlist entries are test-only: FPC-based fee payment with custom tokens won't work on mainnet alpha.
118
+ const tokenAllowList = await getTokenAllowedSetupFunctions();
112
119
  this.context = await setup(0, {
113
120
  ...this.setupOptions,
114
121
  fundSponsoredFPC: true,
115
122
  skipAccountDeployment: true,
116
- l1ContractsArgs: this.setupOptions
123
+ l1ContractsArgs: this.setupOptions,
124
+ txPublicSetupAllowListExtend: [
125
+ ...this.setupOptions.txPublicSetupAllowListExtend ?? [],
126
+ ...tokenAllowList
127
+ ]
117
128
  });
118
129
  await this.applyBaseSetup();
119
130
  await this.context.aztecNodeService.setConfig({
@@ -137,11 +148,11 @@ export class ClientFlowsBenchmark {
137
148
  });
138
149
  }
139
150
  /** Admin mints bananaCoin tokens privately to the target address and redeems them. */ async mintPrivateBananas(amount, address) {
140
- const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({
151
+ const { result: balanceBefore } = await this.bananaCoin.methods.balance_of_private(address).simulate({
141
152
  from: address
142
153
  });
143
154
  await mintTokensToPrivate(this.bananaCoin, this.adminAddress, address, amount);
144
- const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate({
155
+ const { result: balanceAfter } = await this.bananaCoin.methods.balance_of_private(address).simulate({
145
156
  from: address
146
157
  });
147
158
  expect(balanceAfter).toEqual(balanceBefore + amount);
@@ -204,10 +215,7 @@ export class ClientFlowsBenchmark {
204
215
  async applyDeployBananaToken() {
205
216
  this.logger.info('Applying banana token deployment');
206
217
  const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(this.adminWallet, this.adminAddress, 'BC', 'BC', 18n).send({
207
- from: this.adminAddress,
208
- wait: {
209
- returnReceipt: true
210
- }
218
+ from: this.adminAddress
211
219
  });
212
220
  this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
213
221
  this.bananaCoin = bananaCoin;
@@ -216,10 +224,7 @@ export class ClientFlowsBenchmark {
216
224
  async applyDeployCandyBarToken() {
217
225
  this.logger.info('Applying candy bar token deployment');
218
226
  const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'CBC', 'CBC', 18n).send({
219
- from: this.adminAddress,
220
- wait: {
221
- returnReceipt: true
222
- }
227
+ from: this.adminAddress
223
228
  });
224
229
  this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
225
230
  this.candyBarCoin = candyBarCoin;
@@ -231,10 +236,7 @@ export class ClientFlowsBenchmark {
231
236
  expect((await this.context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
232
237
  const bananaCoin = this.bananaCoin;
233
238
  const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(this.adminWallet, bananaCoin.address, this.adminAddress).send({
234
- from: this.adminAddress,
235
- wait: {
236
- returnReceipt: true
237
- }
239
+ from: this.adminAddress
238
240
  });
239
241
  this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
240
242
  await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.adminAddress);
@@ -267,7 +269,7 @@ export class ClientFlowsBenchmark {
267
269
  const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(benchysAddress);
268
270
  const behchysDeployMethod = await benchysAccountManager.getDeployMethod();
269
271
  await behchysDeployMethod.send({
270
- from: AztecAddress.ZERO,
272
+ from: NO_FROM,
271
273
  fee: {
272
274
  paymentMethod: new FeeJuicePaymentMethodWithClaim(benchysAddress, claim)
273
275
  }
@@ -275,7 +277,7 @@ export class ClientFlowsBenchmark {
275
277
  // Register benchy on the user's Wallet, where we're going to be interacting from
276
278
  const accountManager = await this.userWallet.createAccount({
277
279
  secret: benchysAccount.getSecretKey(),
278
- salt: new Fr(benchysAccount.salt),
280
+ salt: new Fr(benchysAccountManager.getInstance().salt),
279
281
  contract: benchysAccountManager.getAccountContract()
280
282
  });
281
283
  return accountManager.address;
@@ -283,16 +285,10 @@ export class ClientFlowsBenchmark {
283
285
  async applyDeployAmm() {
284
286
  this.logger.info('Applying AMM deployment');
285
287
  const { contract: liquidityToken, instance: liquidityTokenInstance } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'LPT', 'LPT', 18n).send({
286
- from: this.adminAddress,
287
- wait: {
288
- returnReceipt: true
289
- }
288
+ from: this.adminAddress
290
289
  });
291
290
  const { contract: amm, instance: ammInstance } = await AMMContract.deploy(this.adminWallet, this.bananaCoin.address, this.candyBarCoin.address, liquidityToken.address).send({
292
- from: this.adminAddress,
293
- wait: {
294
- returnReceipt: true
295
- }
291
+ from: this.adminAddress
296
292
  });
297
293
  this.logger.info(`AMM deployed at ${amm.address}`);
298
294
  await liquidityToken.methods.set_minter(amm.address, true).send({
@@ -310,8 +306,8 @@ export class ClientFlowsBenchmark {
310
306
  async getPrivateFPCPaymentMethodForWallet(wallet, sender) {
311
307
  // The private fee paying method assembled on the app side requires knowledge of the maximum
312
308
  // fee the user is willing to pay
313
- const maxFeesPerGas = (await this.aztecNode.getCurrentMinFees()).mul(1.5);
314
- const gasSettings = GasSettings.default({
309
+ const maxFeesPerGas = await getPaddedMaxFeesPerGas(this.aztecNode);
310
+ const gasSettings = GasSettings.fallback({
315
311
  maxFeesPerGas
316
312
  });
317
313
  return new PrivateFeePaymentMethod(this.bananaFPC.address, sender, wallet, gasSettings);
@@ -42,4 +42,4 @@ export type GithubActionBenchmarkResult = {
42
42
  export declare function sendTxs(txCount: number, context: EndToEndContext, contract: BenchmarkingContract, heavyPublicCompute?: boolean): Promise<TxHash[]>;
43
43
  export declare function waitTxs(txs: TxHash[], context: EndToEndContext, txWaitOpts?: WaitOpts): Promise<void>;
44
44
  export {};
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iZW5jaC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQXNCLEtBQUssUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBNEMsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUt4SCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQUUsS0FBSyxZQUFZLEVBQVMsTUFBTSxzQkFBc0IsQ0FBQztBQUV0Rjs7R0FFRztBQUNILHdCQUFzQixjQUFjLENBQ2xDLElBQUksRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUc7SUFDNUIsNkJBQTZCLENBQUMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQztJQUMzRSxrRkFBa0Y7SUFDbEYsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ3RCOzs7OztHQXlCRjtBQUVELEtBQUssWUFBWSxHQUFHO0lBQ2xCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztJQUN6QixTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2YsQ0FBQztBQUdGLE1BQU0sTUFBTSwyQkFBMkIsR0FBRztJQUN4QyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUNkLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNmLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDaEIsQ0FBQztBQW9FRjs7Ozs7Ozs7R0FRRztBQUNILHdCQUFzQixPQUFPLENBQzNCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsT0FBTyxFQUFFLGVBQWUsRUFDeEIsUUFBUSxFQUFFLG9CQUFvQixFQUM5QixrQkFBa0IsR0FBRSxPQUFlLEdBQ2xDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQU1uQjtBQUVELHdCQUFzQixPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLEVBQUUsUUFBUSxpQkFJM0YifQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iZW5jaC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQXNCLEtBQUssUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBNEMsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU14SCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQUUsS0FBSyxZQUFZLEVBQVMsTUFBTSxzQkFBc0IsQ0FBQztBQUV0Rjs7R0FFRztBQUNILHdCQUFzQixjQUFjLENBQ2xDLElBQUksRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUc7SUFDNUIsNkJBQTZCLENBQUMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQztJQUMzRSxrRkFBa0Y7SUFDbEYsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ3RCOzs7OztHQXlCRjtBQUVELEtBQUssWUFBWSxHQUFHO0lBQ2xCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztJQUN6QixTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2YsQ0FBQztBQUdGLE1BQU0sTUFBTSwyQkFBMkIsR0FBRztJQUN4QyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUNkLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNmLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDaEIsQ0FBQztBQW9FRjs7Ozs7Ozs7R0FRRztBQUNILHdCQUFzQixPQUFPLENBQzNCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsT0FBTyxFQUFFLGVBQWUsRUFDeEIsUUFBUSxFQUFFLG9CQUFvQixFQUM5QixrQkFBa0IsR0FBRSxPQUFlLEdBQ2xDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQVduQjtBQUVELHdCQUFzQixPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLEVBQUUsUUFBUSxpQkFJM0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bench/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAA4C,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKxH,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAS,MAAM,sBAAsB,CAAC;AAEtF;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG;IAC5B,6BAA6B,CAAC,OAAO,EAAE,CAAC,gBAAgB,GAAG,YAAY,CAAC,EAAE,CAAC;IAC3E,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;;;;;GAyBF;AAED,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAoEF;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,oBAAoB,EAC9B,kBAAkB,GAAE,OAAe,GAClC,OAAO,CAAC,MAAM,EAAE,CAAC,CAMnB;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,QAAQ,iBAI3F"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bench/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAA4C,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAMxH,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAS,MAAM,sBAAsB,CAAC;AAEtF;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG;IAC5B,6BAA6B,CAAC,OAAO,EAAE,CAAC,gBAAgB,GAAG,YAAY,CAAC,EAAE,CAAC;IAC3E,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;;;;;GAyBF;AAED,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAoEF;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,oBAAoB,EAC9B,kBAAkB,GAAE,OAAe,GAClC,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,QAAQ,iBAI3F"}
@@ -5,18 +5,20 @@ import { mean, stdDev, times } from '@aztec/foundation/collection';
5
5
  import { BenchmarkingContract } from '@aztec/noir-test-contracts.js/Benchmarking';
6
6
  import { mkdirSync, writeFileSync } from 'fs';
7
7
  import path from 'path';
8
+ import { PIPELINING_SETUP_OPTS } from '../fixtures/fixtures.js';
8
9
  import { setup } from '../fixtures/utils.js';
9
10
  /**
10
11
  * Setup for benchmarks. Initializes a remote node with a single account and deploys a benchmark contract.
11
12
  */ export async function benchmarkSetup(opts) {
12
13
  const context = await setup(1, {
14
+ ...PIPELINING_SETUP_OPTS,
13
15
  ...opts,
14
16
  telemetryConfig: {
15
17
  benchmark: true
16
18
  }
17
19
  });
18
20
  const defaultAccountAddress = context.accounts[0];
19
- const contract = await BenchmarkingContract.deploy(context.wallet).send({
21
+ const { contract } = await BenchmarkingContract.deploy(context.wallet).send({
20
22
  from: defaultAccountAddress
21
23
  });
22
24
  context.logger.info(`Deployed benchmarking contract at ${contract.address}`);
@@ -125,10 +127,13 @@ function getMetricValues(points) {
125
127
  context.logger.info(`Creating ${txCount} txs`);
126
128
  const [from] = context.accounts;
127
129
  context.logger.info(`Sending ${txCount} txs`);
128
- return Promise.all(calls.map((call)=>call.send({
130
+ return Promise.all(calls.map(async (call)=>{
131
+ const { txHash } = await call.send({
129
132
  from,
130
133
  wait: NO_WAIT
131
- })));
134
+ });
135
+ return txHash;
136
+ }));
132
137
  }
133
138
  export async function waitTxs(txs, context, txWaitOpts) {
134
139
  context.logger.info(`Awaiting ${txs.length} txs to be mined`);
@@ -8,7 +8,8 @@ import { TokenBlacklistContract } from '@aztec/noir-contracts.js/TokenBlacklist'
8
8
  import { GenericProxyContract } from '@aztec/noir-test-contracts.js/GenericProxy';
9
9
  import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
10
10
  import type { SequencerClient } from '@aztec/sequencer-client';
11
- import { type EndToEndContext } from '../fixtures/setup.js';
11
+ import type { AztecNodeDebug } from '@aztec/stdlib/interfaces/client';
12
+ import { type EndToEndContext, type SetupOptions } from '../fixtures/setup.js';
12
13
  import { TokenSimulator } from '../simulators/token_simulator.js';
13
14
  import type { TestWallet } from '../test-wallet/test_wallet.js';
14
15
  export declare class Role {
@@ -35,7 +36,7 @@ export declare class BlacklistTokenContractTest {
35
36
  authwitProxy: GenericProxyContract;
36
37
  cheatCodes: CheatCodes;
37
38
  sequencer: SequencerClient;
38
- aztecNode: AztecNode;
39
+ aztecNode: AztecNode & AztecNodeDebug;
39
40
  adminAddress: AztecAddress;
40
41
  otherAddress: AztecAddress;
41
42
  blacklistedAddress: AztecAddress;
@@ -47,9 +48,9 @@ export declare class BlacklistTokenContractTest {
47
48
  * 2. Publicly deploy accounts, deploy token contract and a "bad account".
48
49
  */
49
50
  applyBaseSetup(): Promise<void>;
50
- setup(): Promise<void>;
51
+ setup(opts?: Partial<SetupOptions>): Promise<void>;
51
52
  teardown(): Promise<void>;
52
53
  addPendingShieldNoteToPXE(contract: TokenBlacklistContract, recipient: AztecAddress, amount: bigint, secretHash: Fr, txHash: TxHash): Promise<void>;
53
54
  applyMint(): Promise<void>;
54
55
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxhY2tsaXN0X3Rva2VuX2NvbnRyYWN0X3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfYmxhY2tsaXN0X3Rva2VuX2NvbnRyYWN0L2JsYWNrbGlzdF90b2tlbl9jb250cmFjdF90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSS9ELE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBeUQsTUFBTSxzQkFBc0IsQ0FBQztBQUNuSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUscUJBQWEsSUFBSTtJQUNmLE9BQU8sQ0FBQyxPQUFPLENBQVM7SUFDeEIsT0FBTyxDQUFDLFFBQVEsQ0FBUztJQUN6QixPQUFPLENBQUMsYUFBYSxDQUFTO0lBRTlCLFNBQVMsU0FHUjtJQUVELFVBQVUsU0FHVDtJQUVELGVBQWUsU0FHZDtJQUVELFlBQVk7Ozs7TUFJWDtDQUNGO0FBRUQscUJBQWEsMEJBQTBCO0lBRXJDLE1BQU0sQ0FBQyxrQkFBa0IsU0FBUztJQUVsQyxPQUFPLEVBQUcsZUFBZSxDQUFDO0lBQzFCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixNQUFNLEVBQUcsVUFBVSxDQUFDO0lBQ3BCLEtBQUssRUFBRyxzQkFBc0IsQ0FBQztJQUMvQixRQUFRLEVBQUcsY0FBYyxDQUFDO0lBQzFCLFVBQVUsRUFBRyxzQkFBc0IsQ0FBQztJQUNwQyxZQUFZLEVBQUcsb0JBQW9CLENBQUM7SUFDcEMsVUFBVSxFQUFHLFVBQVUsQ0FBQztJQUN4QixTQUFTLEVBQUcsZUFBZSxDQUFDO0lBQzVCLFNBQVMsRUFBRyxTQUFTLENBQUM7SUFFdEIsWUFBWSxFQUFHLFlBQVksQ0FBQztJQUM1QixZQUFZLEVBQUcsWUFBWSxDQUFDO0lBQzVCLGtCQUFrQixFQUFHLFlBQVksQ0FBQztJQUVsQyxZQUFZLFFBQVEsRUFBRSxNQUFNLEVBRTNCO0lBRUssc0JBQXNCLGtCQU0zQjtJQUVEOzs7O09BSUc7SUFDRyxjQUFjLGtCQXdEbkI7SUFFSyxLQUFLLGtCQU9WO0lBRUssUUFBUSxrQkFFYjtJQUVLLHlCQUF5QixDQUM3QixRQUFRLEVBQUUsc0JBQXNCLEVBQ2hDLFNBQVMsRUFBRSxZQUFZLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLEVBQUUsRUFDZCxNQUFNLEVBQUUsTUFBTSxpQkFjZjtJQUVLLFNBQVMsa0JBbURkO0NBQ0YifQ==
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxhY2tsaXN0X3Rva2VuX2NvbnRyYWN0X3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfYmxhY2tsaXN0X3Rva2VuX2NvbnRyYWN0L2JsYWNrbGlzdF90b2tlbl9jb250cmFjdF90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSXRFLE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxZQUFZLEVBTWxCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWhFLHFCQUFhLElBQUk7SUFDZixPQUFPLENBQUMsT0FBTyxDQUFTO0lBQ3hCLE9BQU8sQ0FBQyxRQUFRLENBQVM7SUFDekIsT0FBTyxDQUFDLGFBQWEsQ0FBUztJQUU5QixTQUFTLFNBR1I7SUFFRCxVQUFVLFNBR1Q7SUFFRCxlQUFlLFNBR2Q7SUFFRCxZQUFZOzs7O01BSVg7Q0FDRjtBQUVELHFCQUFhLDBCQUEwQjtJQUVyQyxNQUFNLENBQUMsa0JBQWtCLFNBQVM7SUFFbEMsT0FBTyxFQUFHLGVBQWUsQ0FBQztJQUMxQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsTUFBTSxFQUFHLFVBQVUsQ0FBQztJQUNwQixLQUFLLEVBQUcsc0JBQXNCLENBQUM7SUFDL0IsUUFBUSxFQUFHLGNBQWMsQ0FBQztJQUMxQixVQUFVLEVBQUcsc0JBQXNCLENBQUM7SUFDcEMsWUFBWSxFQUFHLG9CQUFvQixDQUFDO0lBQ3BDLFVBQVUsRUFBRyxVQUFVLENBQUM7SUFDeEIsU0FBUyxFQUFHLGVBQWUsQ0FBQztJQUM1QixTQUFTLEVBQUcsU0FBUyxHQUFHLGNBQWMsQ0FBQztJQUV2QyxZQUFZLEVBQUcsWUFBWSxDQUFDO0lBQzVCLFlBQVksRUFBRyxZQUFZLENBQUM7SUFDNUIsa0JBQWtCLEVBQUcsWUFBWSxDQUFDO0lBRWxDLFlBQVksUUFBUSxFQUFFLE1BQU0sRUFFM0I7SUFFSyxzQkFBc0Isa0JBUTNCO0lBRUQ7Ozs7T0FJRztJQUNHLGNBQWMsa0JBOERuQjtJQUVLLEtBQUssQ0FBQyxJQUFJLEdBQUUsT0FBTyxDQUFDLFlBQVksQ0FBTSxpQkFRM0M7SUFFSyxRQUFRLGtCQUViO0lBRUsseUJBQXlCLENBQzdCLFFBQVEsRUFBRSxzQkFBc0IsRUFDaEMsU0FBUyxFQUFFLFlBQVksRUFDdkIsTUFBTSxFQUFFLE1BQU0sRUFDZCxVQUFVLEVBQUUsRUFBRSxFQUNkLE1BQU0sRUFBRSxNQUFNLGlCQWNmO0lBRUssU0FBUyxrQkFtRGQ7Q0FDRiJ9
@@ -1 +1 @@
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;AAI/D,OAAO,EAAE,KAAK,eAAe,EAAyD,MAAM,sBAAsB,CAAC;AACnH,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,CAAC;IAEtB,YAAY,EAAG,YAAY,CAAC;IAC5B,YAAY,EAAG,YAAY,CAAC;IAC5B,kBAAkB,EAAG,YAAY,CAAC;IAElC,YAAY,QAAQ,EAAE,MAAM,EAE3B;IAEK,sBAAsB,kBAM3B;IAED;;;;OAIG;IACG,cAAc,kBAwDnB;IAEK,KAAK,kBAOV;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
+ {"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,EAMlB,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,kBA8DnB;IAEK,KAAK,CAAC,IAAI,GAAE,OAAO,CAAC,YAAY,CAAM,iBAQ3C;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"}
@@ -5,7 +5,7 @@ import { TokenBlacklistContract } from '@aztec/noir-contracts.js/TokenBlacklist'
5
5
  import { GenericProxyContract } from '@aztec/noir-test-contracts.js/GenericProxy';
6
6
  import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
7
7
  import { jest } from '@jest/globals';
8
- import { deployAccounts, publicDeployAccounts, setup, teardown } from '../fixtures/setup.js';
8
+ import { deployAccounts, ensureAuthRegistryPublished, publicDeployAccounts, setup, teardown } from '../fixtures/setup.js';
9
9
  import { TokenSimulator } from '../simulators/token_simulator.js';
10
10
  export class Role {
11
11
  isAdmin = false;
@@ -53,15 +53,22 @@ export class BlacklistTokenContractTest {
53
53
  this.logger = createLogger(`e2e:e2e_blacklist_token_contract:${testName}`);
54
54
  }
55
55
  async crossTimestampOfChange() {
56
- await this.cheatCodes.warpL2TimeAtLeastBy(this.sequencer, this.aztecNode, BlacklistTokenContractTest.CHANGE_ROLES_DELAY);
56
+ // Under AUTOMINE_E2E_OPTS, the 86400s warp crosses many epochs without any proofs being
57
+ // submitted. Mark current pending checkpoints as proven first so the rollup contract's
58
+ // pruning window doesn't reset the chain tip to genesis (which would make the warp's
59
+ // own empty-checkpoint propose fail with Rollup__InvalidArchive). See the AutomineSequencer
60
+ // README "Epoch proving caveat" and the equivalent pattern in lending_simulator.progressSlots.
61
+ await this.cheatCodes.rollup.markAsProven();
62
+ await this.cheatCodes.warpL2TimeAtLeastBy(this.aztecNode, BlacklistTokenContractTest.CHANGE_ROLES_DELAY);
57
63
  }
58
64
  /**
59
65
  * Applies base setup:
60
66
  * 1. Add 3 accounts.
61
67
  * 2. Publicly deploy accounts, deploy token contract and a "bad account".
62
68
  */ async applyBaseSetup() {
63
- // Adding a timeout of 2 minutes in here such that it is propagated to the underlying tests
64
- jest.setTimeout(120_000);
69
+ // Bumped from 2 min: pipelined cadence (~24s/dependent-tx) makes the 3-account deploy plus token/bad-account/
70
+ // proxy deploys exceed the original window.
71
+ jest.setTimeout(600_000);
65
72
  this.logger.info('Deploying 3 accounts');
66
73
  const { deployedAccounts } = await deployAccounts(3, this.logger)({
67
74
  wallet: this.context.wallet,
@@ -75,6 +82,7 @@ export class BlacklistTokenContractTest {
75
82
  this.otherAddress = deployedAccounts[1].address;
76
83
  this.blacklistedAddress = deployedAccounts[2].address;
77
84
  this.logger.info('Setting up blacklist token contract');
85
+ await ensureAuthRegistryPublished(this.wallet, this.adminAddress);
78
86
  // Create the token contract state.
79
87
  this.logger.verbose(`Public deploy accounts...`);
80
88
  await publicDeployAccounts(this.wallet, [
@@ -83,22 +91,22 @@ export class BlacklistTokenContractTest {
83
91
  this.blacklistedAddress
84
92
  ]);
85
93
  this.logger.verbose(`Deploying TokenContract...`);
86
- this.asset = await TokenBlacklistContract.deploy(this.wallet, this.adminAddress).send({
94
+ ({ contract: this.asset } = await TokenBlacklistContract.deploy(this.wallet, this.adminAddress).send({
87
95
  from: this.adminAddress
88
- });
96
+ }));
89
97
  this.logger.verbose(`Token deployed to ${this.asset.address}`);
90
98
  this.logger.verbose(`Deploying bad account...`);
91
- this.badAccount = await InvalidAccountContract.deploy(this.wallet).send({
99
+ ({ contract: this.badAccount } = await InvalidAccountContract.deploy(this.wallet).send({
92
100
  from: this.adminAddress
93
- });
101
+ }));
94
102
  this.logger.verbose(`Deployed to ${this.badAccount.address}.`);
95
103
  // Deploy a proxy contract for "on behalf of other" tests. The note owner must be the tx sender
96
104
  // (so their notes are in scope), but msg_sender in the target must differ from the note owner
97
105
  // to trigger authwit validation. The proxy forwards calls so that msg_sender != tx sender.
98
106
  this.logger.verbose(`Deploying generic proxy...`);
99
- this.authwitProxy = await GenericProxyContract.deploy(this.wallet).send({
107
+ ({ contract: this.authwitProxy } = await GenericProxyContract.deploy(this.wallet).send({
100
108
  from: this.adminAddress
101
- });
109
+ }));
102
110
  this.logger.verbose(`Deployed to ${this.authwitProxy.address}.`);
103
111
  await this.crossTimestampOfChange();
104
112
  this.tokenSim = new TokenSimulator(this.asset, this.wallet, this.adminAddress, this.logger, [
@@ -106,13 +114,14 @@ export class BlacklistTokenContractTest {
106
114
  this.otherAddress,
107
115
  this.blacklistedAddress
108
116
  ]);
109
- expect(await this.asset.methods.get_roles(this.adminAddress).simulate({
117
+ expect((await this.asset.methods.get_roles(this.adminAddress).simulate({
110
118
  from: this.adminAddress
111
- })).toEqual(new Role().withAdmin().toNoirStruct());
119
+ })).result).toEqual(new Role().withAdmin().toNoirStruct());
112
120
  }
113
- async setup() {
121
+ async setup(opts = {}) {
114
122
  this.logger.info('Setting up fresh context');
115
123
  this.context = await setup(0, {
124
+ ...opts,
116
125
  fundSponsoredFPC: true,
117
126
  skipAccountDeployment: true
118
127
  });
@@ -140,9 +149,9 @@ export class BlacklistTokenContractTest {
140
149
  from: this.adminAddress
141
150
  });
142
151
  await this.crossTimestampOfChange();
143
- expect(await this.asset.methods.get_roles(this.adminAddress).simulate({
152
+ expect((await this.asset.methods.get_roles(this.adminAddress).simulate({
144
153
  from: this.adminAddress
145
- })).toEqual(adminMinterRole.toNoirStruct());
154
+ })).result).toEqual(adminMinterRole.toNoirStruct());
146
155
  this.logger.verbose(`Minting ${amount} publicly...`);
147
156
  await asset.methods.mint_public(this.adminAddress, amount).send({
148
157
  from: this.adminAddress
@@ -150,7 +159,7 @@ export class BlacklistTokenContractTest {
150
159
  this.logger.verbose(`Minting ${amount} privately...`);
151
160
  const secret = Fr.random();
152
161
  const secretHash = await computeSecretHash(secret);
153
- const receipt = await asset.methods.mint_private(amount, secretHash).send({
162
+ const { receipt } = await asset.methods.mint_private(amount, secretHash).send({
154
163
  from: this.adminAddress
155
164
  });
156
165
  await this.addPendingShieldNoteToPXE(asset, this.adminAddress, amount, secretHash, receipt.txHash);
@@ -159,18 +168,18 @@ export class BlacklistTokenContractTest {
159
168
  });
160
169
  this.logger.verbose(`Minting complete.`);
161
170
  tokenSim.mintPublic(this.adminAddress, amount);
162
- const publicBalance = await asset.methods.balance_of_public(this.adminAddress).simulate({
171
+ const { result: publicBalance } = await asset.methods.balance_of_public(this.adminAddress).simulate({
163
172
  from: this.adminAddress
164
173
  });
165
174
  this.logger.verbose(`Public balance of wallet 0: ${publicBalance}`);
166
175
  expect(publicBalance).toEqual(this.tokenSim.balanceOfPublic(this.adminAddress));
167
176
  tokenSim.mintPrivate(this.adminAddress, amount);
168
- const privateBalance = await asset.methods.balance_of_private(this.adminAddress).simulate({
177
+ const { result: privateBalance } = await asset.methods.balance_of_private(this.adminAddress).simulate({
169
178
  from: this.adminAddress
170
179
  });
171
180
  this.logger.verbose(`Private balance of wallet 0: ${privateBalance}`);
172
181
  expect(privateBalance).toEqual(tokenSim.balanceOfPrivate(this.adminAddress));
173
- const totalSupply = await asset.methods.total_supply().simulate({
182
+ const { result: totalSupply } = await asset.methods.total_supply().simulate({
174
183
  from: this.adminAddress
175
184
  });
176
185
  this.logger.verbose(`Total supply: ${totalSupply}`);