@aztec/end-to-end 0.0.1-commit.96bb3f7 → 0.0.1-commit.993d240

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 (263) hide show
  1. package/README.md +27 -0
  2. package/dest/bench/client_flows/benchmark.d.ts +17 -2
  3. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  4. package/dest/bench/client_flows/benchmark.js +38 -1
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts +14 -15
  6. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  7. package/dest/bench/client_flows/client_flows_benchmark.js +132 -150
  8. package/dest/bench/client_flows/config.d.ts +2 -2
  9. package/dest/bench/client_flows/config.d.ts.map +1 -1
  10. package/dest/bench/client_flows/config.js +18 -0
  11. package/dest/bench/utils.d.ts +6 -5
  12. package/dest/bench/utils.d.ts.map +1 -1
  13. package/dest/bench/utils.js +15 -8
  14. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +12 -10
  15. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  16. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +120 -117
  17. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +21 -11
  18. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  19. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +103 -67
  20. package/dest/e2e_deploy_contract/deploy_test.d.ts +6 -5
  21. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  22. package/dest/e2e_deploy_contract/deploy_test.js +20 -14
  23. package/dest/e2e_epochs/epochs_test.d.ts +39 -8
  24. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  25. package/dest/e2e_epochs/epochs_test.js +171 -50
  26. package/dest/e2e_fees/bridging_race.notest.js +3 -5
  27. package/dest/e2e_fees/fees_test.d.ts +18 -15
  28. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  29. package/dest/e2e_fees/fees_test.js +157 -142
  30. package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
  31. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  32. package/dest/e2e_l1_publisher/write_json.js +14 -13
  33. package/dest/e2e_nested_contract/nested_contract_test.d.ts +7 -10
  34. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  35. package/dest/e2e_nested_contract/nested_contract_test.js +32 -41
  36. package/dest/e2e_p2p/inactivity_slash_test.d.ts +3 -3
  37. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  38. package/dest/e2e_p2p/inactivity_slash_test.js +8 -6
  39. package/dest/e2e_p2p/p2p_network.d.ts +20 -17
  40. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  41. package/dest/e2e_p2p/p2p_network.js +166 -123
  42. package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
  43. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
  44. package/dest/e2e_p2p/reqresp/utils.js +206 -0
  45. package/dest/e2e_p2p/shared.d.ts +30 -12
  46. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  47. package/dest/e2e_p2p/shared.js +86 -66
  48. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
  49. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
  50. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
  51. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
  52. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
  53. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
  54. package/dest/e2e_token_contract/token_contract_test.d.ts +20 -11
  55. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  56. package/dest/e2e_token_contract/token_contract_test.js +103 -93
  57. package/dest/fixtures/authwit_proxy.d.ts +15 -0
  58. package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
  59. package/dest/fixtures/authwit_proxy.js +34 -0
  60. package/dest/fixtures/e2e_prover_test.d.ts +15 -20
  61. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  62. package/dest/fixtures/e2e_prover_test.js +115 -134
  63. package/dest/fixtures/elu_monitor.d.ts +21 -0
  64. package/dest/fixtures/elu_monitor.d.ts.map +1 -0
  65. package/dest/fixtures/elu_monitor.js +102 -0
  66. package/dest/fixtures/fixtures.d.ts +77 -1
  67. package/dest/fixtures/fixtures.d.ts.map +1 -1
  68. package/dest/fixtures/fixtures.js +74 -0
  69. package/dest/fixtures/get_bb_config.d.ts +1 -1
  70. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  71. package/dest/fixtures/get_bb_config.js +5 -5
  72. package/dest/fixtures/ha_setup.d.ts +71 -0
  73. package/dest/fixtures/ha_setup.d.ts.map +1 -0
  74. package/dest/fixtures/ha_setup.js +116 -0
  75. package/dest/fixtures/index.d.ts +2 -1
  76. package/dest/fixtures/index.d.ts.map +1 -1
  77. package/dest/fixtures/index.js +1 -0
  78. package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts +25 -0
  79. package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts.map +1 -0
  80. package/dest/fixtures/schnorr_hardcoded_account_contract.js +37 -0
  81. package/dest/fixtures/setup.d.ts +266 -0
  82. package/dest/fixtures/setup.d.ts.map +1 -0
  83. package/dest/fixtures/setup.js +714 -0
  84. package/dest/fixtures/setup_p2p_test.d.ts +22 -11
  85. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  86. package/dest/fixtures/setup_p2p_test.js +43 -32
  87. package/dest/fixtures/token_utils.d.ts +2 -2
  88. package/dest/fixtures/token_utils.d.ts.map +1 -1
  89. package/dest/fixtures/token_utils.js +7 -6
  90. package/dest/fixtures/utils.d.ts +5 -191
  91. package/dest/fixtures/utils.d.ts.map +1 -1
  92. package/dest/fixtures/utils.js +4 -615
  93. package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
  94. package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
  95. package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
  96. package/dest/forward-compatibility/wallet_service.d.ts +3 -0
  97. package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
  98. package/dest/forward-compatibility/wallet_service.js +109 -0
  99. package/dest/install_legacy_contracts.d.cts +10 -0
  100. package/dest/install_legacy_contracts.d.cts.map +1 -0
  101. package/dest/legacy-jest-resolver.d.cts +3 -0
  102. package/dest/legacy-jest-resolver.d.cts.map +1 -0
  103. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  104. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  105. package/dest/quality_of_service/prometheus_client.js +67 -0
  106. package/dest/shared/cross_chain_test_harness.d.ts +17 -5
  107. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  108. package/dest/shared/cross_chain_test_harness.js +33 -29
  109. package/dest/shared/gas_portal_test_harness.d.ts +18 -5
  110. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  111. package/dest/shared/gas_portal_test_harness.js +20 -11
  112. package/dest/shared/index.d.ts +2 -1
  113. package/dest/shared/index.d.ts.map +1 -1
  114. package/dest/shared/index.js +1 -0
  115. package/dest/shared/jest_setup.js +41 -1
  116. package/dest/shared/mock_state_view.d.ts +86 -0
  117. package/dest/shared/mock_state_view.d.ts.map +1 -0
  118. package/dest/shared/mock_state_view.js +186 -0
  119. package/dest/shared/submit-transactions.d.ts +4 -4
  120. package/dest/shared/submit-transactions.d.ts.map +1 -1
  121. package/dest/shared/submit-transactions.js +9 -11
  122. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  123. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  124. package/dest/shared/uniswap_l1_l2.js +73 -50
  125. package/dest/shared/wait_for_l1_to_l2_message.d.ts +13 -0
  126. package/dest/shared/wait_for_l1_to_l2_message.d.ts.map +1 -0
  127. package/dest/shared/wait_for_l1_to_l2_message.js +10 -0
  128. package/dest/simulators/lending_simulator.d.ts +14 -3
  129. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  130. package/dest/simulators/lending_simulator.js +28 -16
  131. package/dest/simulators/token_simulator.d.ts +1 -1
  132. package/dest/simulators/token_simulator.d.ts.map +1 -1
  133. package/dest/simulators/token_simulator.js +3 -24
  134. package/dest/spartan/setup_test_wallets.d.ts +12 -3
  135. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  136. package/dest/spartan/setup_test_wallets.js +133 -43
  137. package/dest/spartan/tx_metrics.d.ts +68 -5
  138. package/dest/spartan/tx_metrics.d.ts.map +1 -1
  139. package/dest/spartan/tx_metrics.js +399 -19
  140. package/dest/spartan/utils/bot.d.ts +28 -0
  141. package/dest/spartan/utils/bot.d.ts.map +1 -0
  142. package/dest/spartan/utils/bot.js +142 -0
  143. package/dest/spartan/utils/chaos.d.ts +79 -0
  144. package/dest/spartan/utils/chaos.d.ts.map +1 -0
  145. package/dest/spartan/utils/chaos.js +142 -0
  146. package/dest/spartan/utils/clients.d.ts +39 -0
  147. package/dest/spartan/utils/clients.d.ts.map +1 -0
  148. package/dest/spartan/utils/clients.js +90 -0
  149. package/dest/spartan/utils/config.d.ts +19 -0
  150. package/dest/spartan/utils/config.d.ts.map +1 -0
  151. package/dest/spartan/utils/config.js +23 -0
  152. package/dest/spartan/utils/health.d.ts +63 -0
  153. package/dest/spartan/utils/health.d.ts.map +1 -0
  154. package/dest/spartan/utils/health.js +202 -0
  155. package/dest/spartan/utils/helm.d.ts +15 -0
  156. package/dest/spartan/utils/helm.d.ts.map +1 -0
  157. package/dest/spartan/utils/helm.js +47 -0
  158. package/dest/spartan/utils/index.d.ts +11 -0
  159. package/dest/spartan/utils/index.d.ts.map +1 -0
  160. package/dest/spartan/utils/index.js +22 -0
  161. package/dest/spartan/utils/k8s.d.ts +128 -0
  162. package/dest/spartan/utils/k8s.d.ts.map +1 -0
  163. package/dest/spartan/utils/k8s.js +381 -0
  164. package/dest/spartan/utils/nodes.d.ts +40 -0
  165. package/dest/spartan/utils/nodes.d.ts.map +1 -0
  166. package/dest/spartan/utils/nodes.js +461 -0
  167. package/dest/spartan/utils/pod_logs.d.ts +25 -0
  168. package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
  169. package/dest/spartan/utils/pod_logs.js +74 -0
  170. package/dest/spartan/utils/scripts.d.ts +30 -0
  171. package/dest/spartan/utils/scripts.d.ts.map +1 -0
  172. package/dest/spartan/utils/scripts.js +81 -0
  173. package/dest/spartan/utils.d.ts +2 -253
  174. package/dest/spartan/utils.d.ts.map +1 -1
  175. package/dest/spartan/utils.js +1 -892
  176. package/dest/test-wallet/test_wallet.d.ts +85 -0
  177. package/dest/test-wallet/test_wallet.d.ts.map +1 -0
  178. package/dest/test-wallet/test_wallet.js +273 -0
  179. package/dest/test-wallet/utils.d.ts +41 -0
  180. package/dest/test-wallet/utils.d.ts.map +1 -0
  181. package/dest/test-wallet/utils.js +66 -0
  182. package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
  183. package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
  184. package/dest/test-wallet/wallet_worker_script.js +48 -0
  185. package/dest/test-wallet/worker_wallet.d.ts +53 -0
  186. package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
  187. package/dest/test-wallet/worker_wallet.js +155 -0
  188. package/dest/test-wallet/worker_wallet_schema.d.ts +160 -0
  189. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
  190. package/dest/test-wallet/worker_wallet_schema.js +22 -0
  191. package/package.json +53 -45
  192. package/src/bench/client_flows/benchmark.ts +43 -2
  193. package/src/bench/client_flows/client_flows_benchmark.ts +189 -240
  194. package/src/bench/client_flows/config.ts +9 -1
  195. package/src/bench/utils.ts +17 -9
  196. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +141 -152
  197. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +144 -114
  198. package/src/e2e_deploy_contract/deploy_test.ts +24 -16
  199. package/src/e2e_epochs/epochs_test.ts +217 -93
  200. package/src/e2e_fees/bridging_race.notest.ts +4 -10
  201. package/src/e2e_fees/fees_test.ts +206 -227
  202. package/src/e2e_l1_publisher/write_json.ts +16 -13
  203. package/src/e2e_nested_contract/nested_contract_test.ts +38 -57
  204. package/src/e2e_p2p/inactivity_slash_test.ts +8 -6
  205. package/src/e2e_p2p/p2p_network.ts +238 -190
  206. package/src/e2e_p2p/reqresp/utils.ts +274 -0
  207. package/src/e2e_p2p/shared.ts +111 -83
  208. package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
  209. package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
  210. package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
  211. package/src/e2e_token_contract/token_contract_test.ts +129 -117
  212. package/src/fixtures/authwit_proxy.ts +54 -0
  213. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  214. package/src/fixtures/e2e_prover_test.ts +143 -184
  215. package/src/fixtures/elu_monitor.ts +126 -0
  216. package/src/fixtures/fixtures.ts +96 -0
  217. package/src/fixtures/get_bb_config.ts +7 -6
  218. package/src/fixtures/ha_setup.ts +188 -0
  219. package/src/fixtures/index.ts +1 -0
  220. package/src/fixtures/schnorr_hardcoded_account_contract.ts +49 -0
  221. package/src/fixtures/setup.ts +1037 -0
  222. package/src/fixtures/setup_p2p_test.ts +52 -52
  223. package/src/fixtures/token_utils.ts +7 -6
  224. package/src/fixtures/utils.ts +29 -901
  225. package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
  226. package/src/forward-compatibility/wallet_service.ts +104 -0
  227. package/src/guides/up_quick_start.sh +3 -5
  228. package/src/install_legacy_contracts.cjs +75 -0
  229. package/src/legacy-jest-resolver.cjs +112 -0
  230. package/src/quality_of_service/prometheus_client.ts +113 -0
  231. package/src/shared/cross_chain_test_harness.ts +38 -38
  232. package/src/shared/gas_portal_test_harness.ts +22 -12
  233. package/src/shared/index.ts +1 -0
  234. package/src/shared/jest_setup.ts +51 -1
  235. package/src/shared/mock_state_view.ts +188 -0
  236. package/src/shared/submit-transactions.ts +11 -16
  237. package/src/shared/uniswap_l1_l2.ts +91 -73
  238. package/src/shared/wait_for_l1_to_l2_message.ts +23 -0
  239. package/src/simulators/lending_simulator.ts +34 -16
  240. package/src/simulators/token_simulator.ts +6 -30
  241. package/src/spartan/setup_test_wallets.ts +184 -28
  242. package/src/spartan/tx_metrics.ts +329 -25
  243. package/src/spartan/utils/bot.ts +188 -0
  244. package/src/spartan/utils/chaos.ts +253 -0
  245. package/src/spartan/utils/clients.ts +100 -0
  246. package/src/spartan/utils/config.ts +29 -0
  247. package/src/spartan/utils/health.ts +255 -0
  248. package/src/spartan/utils/helm.ts +84 -0
  249. package/src/spartan/utils/index.ts +71 -0
  250. package/src/spartan/utils/k8s.ts +535 -0
  251. package/src/spartan/utils/nodes.ts +543 -0
  252. package/src/spartan/utils/pod_logs.ts +99 -0
  253. package/src/spartan/utils/scripts.ts +99 -0
  254. package/src/spartan/utils.ts +1 -1158
  255. package/src/test-wallet/test_wallet.ts +376 -0
  256. package/src/test-wallet/utils.ts +108 -0
  257. package/src/test-wallet/wallet_worker_script.ts +60 -0
  258. package/src/test-wallet/worker_wallet.ts +218 -0
  259. package/src/test-wallet/worker_wallet_schema.ts +13 -0
  260. package/dest/fixtures/snapshot_manager.d.ts +0 -93
  261. package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
  262. package/dest/fixtures/snapshot_manager.js +0 -488
  263. package/src/fixtures/snapshot_manager.ts +0 -646
@@ -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,18 +22,17 @@ 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 { TestWallet } from '@aztec/test-wallet/server';
25
- import { MNEMONIC } from '../../fixtures/fixtures.js';
26
- import { createSnapshotManager, deployAccounts } from '../../fixtures/snapshot_manager.js';
25
+ import { AUTOMINE_E2E_OPTS, MNEMONIC, getPaddedMaxFeesPerGas } from '../../fixtures/fixtures.js';
26
+ import { deployAccounts, setup, teardown } from '../../fixtures/setup.js';
27
27
  import { mintTokensToPrivate } from '../../fixtures/token_utils.js';
28
28
  import { setupSponsoredFPC } from '../../fixtures/utils.js';
29
29
  import { CrossChainTestHarness } from '../../shared/cross_chain_test_harness.js';
30
30
  import { FeeJuicePortalTestingHarnessFactory } from '../../shared/gas_portal_test_harness.js';
31
+ import { TestWallet } from '../../test-wallet/test_wallet.js';
31
32
  import { ProxyLogger } from './benchmark.js';
32
33
  import { FULL_FLOWS_CONFIG, KEY_FLOWS_CONFIG } from './config.js';
33
- const { E2E_DATA_PATH: dataPath, BENCHMARK_CONFIG } = process.env;
34
+ const { BENCHMARK_CONFIG } = process.env;
34
35
  export class ClientFlowsBenchmark {
35
- snapshotManager;
36
36
  logger;
37
37
  aztecNode;
38
38
  cheatCodes;
@@ -70,73 +70,90 @@ export class ClientFlowsBenchmark {
70
70
  'true',
71
71
  '1'
72
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`).
73
76
  paymentMethods = {
74
77
  // eslint-disable-next-line camelcase
75
78
  bridged_fee_juice: {
76
79
  forWallet: this.getBridgedFeeJuicePaymentMethodForWallet.bind(this),
77
- circuits: 2
80
+ apps: 1
78
81
  },
79
82
  // eslint-disable-next-line camelcase
80
83
  private_fpc: {
81
84
  forWallet: this.getPrivateFPCPaymentMethodForWallet.bind(this),
82
- circuits: 2 + // FPC entrypoint + kernel inner
83
- 2 + // BananaCoin transfer_to_public + kernel inner
84
- 2 + // Account verify_private_authwit + kernel inner
85
- 2
85
+ apps: 1 + // FPC entrypoint
86
+ 1 + // BananaCoin transfer_to_public
87
+ 1 + // Account verify_private_authwit
88
+ 1
86
89
  },
87
90
  // eslint-disable-next-line camelcase
88
91
  sponsored_fpc: {
89
92
  forWallet: this.getSponsoredFPCPaymentMethodForWallet.bind(this),
90
- circuits: 2
93
+ apps: 1
91
94
  },
92
95
  // eslint-disable-next-line camelcase
93
96
  fee_juice: {
94
97
  forWallet: ()=>Promise.resolve(undefined),
95
- circuits: 0
98
+ apps: 0
96
99
  }
97
100
  };
98
101
  config;
99
102
  proxyLogger;
103
+ setupOptions;
100
104
  constructor(testName, setupOptions = {}){
101
105
  this.logger = createLogger(`bench:client_flows${testName ? `:${testName}` : ''}`);
102
- this.snapshotManager = createSnapshotManager(`bench_client_flows${testName ? `/${testName}` : ''}`, dataPath, {
106
+ this.setupOptions = {
107
+ ...AUTOMINE_E2E_OPTS,
103
108
  startProverNode: true,
104
109
  ...setupOptions
105
- }, {
106
- ...setupOptions
107
- });
110
+ };
108
111
  this.config = BENCHMARK_CONFIG === 'key_flows' ? KEY_FLOWS_CONFIG : FULL_FLOWS_CONFIG;
109
112
  ProxyLogger.create();
110
113
  this.proxyLogger = ProxyLogger.getInstance();
111
114
  }
112
115
  async setup() {
113
- const context = await this.snapshotManager.setup();
114
- await context.aztecNode.setConfig({
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();
119
+ this.context = await setup(0, {
120
+ ...this.setupOptions,
121
+ fundSponsoredFPC: true,
122
+ skipAccountDeployment: true,
123
+ l1ContractsArgs: this.setupOptions,
124
+ txPublicSetupAllowListExtend: [
125
+ ...this.setupOptions.txPublicSetupAllowListExtend ?? [],
126
+ ...tokenAllowList
127
+ ]
128
+ });
129
+ await this.applyBaseSetup();
130
+ await this.context.aztecNodeService.setConfig({
115
131
  feeRecipient: this.sequencerAddress,
116
132
  coinbase: this.coinbase
117
133
  });
118
- const rollupContract = RollupContract.getFromConfig(context.aztecNodeConfig);
119
- this.chainMonitor = new ChainMonitor(rollupContract, context.dateProvider, this.logger, 200).start();
134
+ const rollupContract = RollupContract.getFromConfig(this.context.config);
135
+ this.chainMonitor = new ChainMonitor(rollupContract, this.context.dateProvider, this.logger, 200).start();
120
136
  return this;
121
137
  }
122
138
  async teardown() {
123
139
  await this.chainMonitor.stop();
124
- await this.snapshotManager.teardown();
140
+ await this.userWallet?.stop();
141
+ await teardown(this.context);
125
142
  }
126
143
  async mintAndBridgeFeeJuice(address) {
127
144
  const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(address);
128
145
  const { claimSecret: secret, messageLeafIndex: index } = claim;
129
146
  await this.feeJuiceContract.methods.claim(address, claim.claimAmount, secret, index).send({
130
147
  from: this.adminAddress
131
- }).wait();
148
+ });
132
149
  }
133
150
  /** Admin mints bananaCoin tokens privately to the target address and redeems them. */ async mintPrivateBananas(amount, address) {
134
- const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({
135
- from: this.adminAddress
151
+ const { result: balanceBefore } = await this.bananaCoin.methods.balance_of_private(address).simulate({
152
+ from: address
136
153
  });
137
154
  await mintTokensToPrivate(this.bananaCoin, this.adminAddress, address, amount);
138
- const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate({
139
- from: this.adminAddress
155
+ const { result: balanceAfter } = await this.bananaCoin.methods.balance_of_private(address).simulate({
156
+ from: address
140
157
  });
141
158
  expect(balanceAfter).toEqual(balanceBefore + amount);
142
159
  }
@@ -154,113 +171,87 @@ export class ClientFlowsBenchmark {
154
171
  throw new Error(`Unknown account type: ${type}`);
155
172
  }
156
173
  }
157
- async applyBaseSnapshots() {
158
- await this.applyInitialAccountsSnapshot();
159
- await this.applySetupFeeJuiceSnapshot();
174
+ async applyBaseSetup() {
175
+ await this.applyInitialAccounts();
176
+ await this.applySetupFeeJuice();
160
177
  }
161
- async applyInitialAccountsSnapshot() {
162
- await this.snapshotManager.snapshot('initial_accounts', deployAccounts(2, this.logger), async ({ deployedAccounts: [{ address: adminAddress }, { address: sequencerAddress }] }, { wallet, aztecNode, cheatCodes })=>{
163
- this.adminWallet = wallet;
164
- this.aztecNode = aztecNode;
165
- this.cheatCodes = cheatCodes;
166
- this.adminAddress = adminAddress;
167
- this.sequencerAddress = sequencerAddress;
168
- const canonicalFeeJuice = await getCanonicalFeeJuice();
169
- this.feeJuiceContract = FeeJuiceContract.at(canonicalFeeJuice.address, this.adminWallet);
170
- this.coinbase = EthAddress.random();
171
- const userPXEConfig = getPXEConfig();
172
- const userPXEConfigWithContracts = {
173
- ...userPXEConfig,
174
- proverEnabled: this.realProofs
175
- };
176
- this.userWallet = await TestWallet.create(this.aztecNode, userPXEConfigWithContracts, {
177
- loggers: {
178
- prover: this.proxyLogger.createLogger('pxe:bb:wasm:bundle:proxied')
179
- }
180
- });
178
+ async applyInitialAccounts() {
179
+ this.logger.info('Applying initial accounts setup');
180
+ const { deployedAccounts } = await deployAccounts(2, this.logger)({
181
+ wallet: this.context.wallet,
182
+ initialFundedAccounts: this.context.initialFundedAccounts
181
183
  });
182
- }
183
- async applySetupFeeJuiceSnapshot() {
184
- await this.snapshotManager.snapshot('setup_fee_juice', async ()=>{}, async (_data, context)=>{
185
- this.context = context;
186
- this.feeJuiceContract = FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.adminWallet);
187
- this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
188
- aztecNode: context.aztecNode,
189
- aztecNodeAdmin: context.aztecNode,
190
- l1Client: context.deployL1ContractsValues.l1Client,
191
- wallet: this.adminWallet,
192
- logger: this.logger
193
- });
184
+ const [{ address: adminAddress }, { address: sequencerAddress }] = deployedAccounts;
185
+ this.adminWallet = this.context.wallet;
186
+ this.aztecNode = this.context.aztecNodeService;
187
+ this.cheatCodes = this.context.cheatCodes;
188
+ this.adminAddress = adminAddress;
189
+ this.sequencerAddress = sequencerAddress;
190
+ const canonicalFeeJuice = await getCanonicalFeeJuice();
191
+ this.feeJuiceContract = FeeJuiceContract.at(canonicalFeeJuice.address, this.adminWallet);
192
+ this.coinbase = EthAddress.random();
193
+ const userPXEConfig = getPXEConfig();
194
+ const userPXEConfigWithContracts = {
195
+ ...userPXEConfig,
196
+ proverEnabled: this.realProofs
197
+ };
198
+ this.userWallet = await TestWallet.create(this.aztecNode, userPXEConfigWithContracts, {
199
+ loggers: {
200
+ prover: this.proxyLogger.createLogger('pxe:bb:wasm:bundle:proxied')
201
+ }
194
202
  });
195
203
  }
196
- async applyDeployBananaTokenSnapshot() {
197
- await this.snapshotManager.snapshot('deploy_banana_token', async ()=>{
198
- const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(this.adminWallet, this.adminAddress, 'BC', 'BC', 18n).send({
199
- from: this.adminAddress
200
- }).wait();
201
- this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
202
- return {
203
- bananaCoinAddress: bananaCoin.address,
204
- bananaCoinInstance
205
- };
206
- }, ({ bananaCoinAddress, bananaCoinInstance })=>{
207
- this.bananaCoin = BananaCoin.at(bananaCoinAddress, this.adminWallet);
208
- this.bananaCoinInstance = bananaCoinInstance;
209
- return Promise.resolve();
204
+ async applySetupFeeJuice() {
205
+ this.logger.info('Applying fee juice setup');
206
+ this.feeJuiceContract = FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.adminWallet);
207
+ this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
208
+ aztecNode: this.context.aztecNodeService,
209
+ aztecNodeAdmin: this.context.aztecNodeService,
210
+ l1Client: this.context.deployL1ContractsValues.l1Client,
211
+ wallet: this.adminWallet,
212
+ logger: this.logger
210
213
  });
211
214
  }
212
- async applyDeployCandyBarTokenSnapshot() {
213
- await this.snapshotManager.snapshot('deploy_candy_bar_token', async ()=>{
214
- const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'CBC', 'CBC', 18n).send({
215
- from: this.adminAddress
216
- }).wait();
217
- this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
218
- return {
219
- candyBarCoinAddress: candyBarCoin.address,
220
- candyBarCoinInstance
221
- };
222
- }, ({ candyBarCoinAddress, candyBarCoinInstance })=>{
223
- this.candyBarCoin = TokenContract.at(candyBarCoinAddress, this.adminWallet);
224
- this.candyBarCoinInstance = candyBarCoinInstance;
225
- return Promise.resolve();
215
+ async applyDeployBananaToken() {
216
+ this.logger.info('Applying banana token deployment');
217
+ const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(this.adminWallet, this.adminAddress, 'BC', 'BC', 18n).send({
218
+ from: this.adminAddress
226
219
  });
220
+ this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
221
+ this.bananaCoin = bananaCoin;
222
+ this.bananaCoinInstance = bananaCoinInstance;
227
223
  }
228
- async applyFPCSetupSnapshot() {
229
- await this.snapshotManager.snapshot('fpc_setup', async (context)=>{
230
- const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
231
- expect((await context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
232
- const bananaCoin = this.bananaCoin;
233
- const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(this.adminWallet, bananaCoin.address, this.adminAddress).send({
234
- from: this.adminAddress
235
- }).wait();
236
- this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
237
- await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.adminAddress);
238
- return {
239
- bananaFPCAddress: bananaFPC.address,
240
- bananaFPCInstance
241
- };
242
- }, (data)=>{
243
- this.bananaFPC = FPCContract.at(data.bananaFPCAddress, this.adminWallet);
244
- this.bananaFPCInstance = data.bananaFPCInstance;
245
- return Promise.resolve();
224
+ async applyDeployCandyBarToken() {
225
+ this.logger.info('Applying candy bar token deployment');
226
+ const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'CBC', 'CBC', 18n).send({
227
+ from: this.adminAddress
246
228
  });
229
+ this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
230
+ this.candyBarCoin = candyBarCoin;
231
+ this.candyBarCoinInstance = candyBarCoinInstance;
247
232
  }
248
- async applyDeploySponsoredFPCSnapshot() {
249
- await this.snapshotManager.snapshot('deploy_sponsored_fpc', async ()=>{
250
- const sponsoredFPCInstance = await setupSponsoredFPC(this.adminWallet);
251
- this.logger.info(`SponsoredFPC at ${sponsoredFPCInstance.address}`);
252
- return {
253
- sponsoredFPCAddress: sponsoredFPCInstance.address,
254
- sponsoredFPCInstance
255
- };
256
- }, ({ sponsoredFPCAddress, sponsoredFPCInstance })=>{
257
- this.sponsoredFPC = SponsoredFPCContract.at(sponsoredFPCAddress, this.adminWallet);
258
- this.sponsoredFPCInstance = sponsoredFPCInstance;
259
- return Promise.resolve();
233
+ async applyFPCSetup() {
234
+ this.logger.info('Applying FPC setup');
235
+ const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
236
+ expect((await this.context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
237
+ const bananaCoin = this.bananaCoin;
238
+ const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(this.adminWallet, bananaCoin.address, this.adminAddress).send({
239
+ from: this.adminAddress
260
240
  });
241
+ this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
242
+ await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.adminAddress);
243
+ this.bananaFPC = bananaFPC;
244
+ this.bananaFPCInstance = bananaFPCInstance;
245
+ }
246
+ async applyDeploySponsoredFPC() {
247
+ this.logger.info('Applying sponsored FPC deployment');
248
+ const sponsoredFPCInstance = await setupSponsoredFPC(this.adminWallet);
249
+ this.logger.info(`SponsoredFPC at ${sponsoredFPCInstance.address}`);
250
+ this.sponsoredFPC = SponsoredFPCContract.at(sponsoredFPCInstance.address, this.adminWallet);
251
+ this.sponsoredFPCInstance = sponsoredFPCInstance;
261
252
  }
262
253
  async createCrossChainTestHarness(owner) {
263
- const l1Client = createExtendedL1Client(this.context.aztecNodeConfig.l1RpcUrls, MNEMONIC);
254
+ const l1Client = createExtendedL1Client(this.context.config.l1RpcUrls, MNEMONIC);
264
255
  const underlyingERC20Address = await deployL1Contract(l1Client, TestERC20Abi, TestERC20Bytecode, [
265
256
  'Underlying',
266
257
  'UND',
@@ -278,44 +269,35 @@ export class ClientFlowsBenchmark {
278
269
  const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(benchysAddress);
279
270
  const behchysDeployMethod = await benchysAccountManager.getDeployMethod();
280
271
  await behchysDeployMethod.send({
281
- from: AztecAddress.ZERO,
272
+ from: NO_FROM,
282
273
  fee: {
283
274
  paymentMethod: new FeeJuicePaymentMethodWithClaim(benchysAddress, claim)
284
275
  }
285
- }).wait();
276
+ });
286
277
  // Register benchy on the user's Wallet, where we're going to be interacting from
287
278
  const accountManager = await this.userWallet.createAccount({
288
279
  secret: benchysAccount.getSecretKey(),
289
- salt: new Fr(benchysAccount.salt),
280
+ salt: new Fr(benchysAccountManager.getInstance().salt),
290
281
  contract: benchysAccountManager.getAccountContract()
291
282
  });
292
283
  return accountManager.address;
293
284
  }
294
- async applyDeployAmmSnapshot() {
295
- await this.snapshotManager.snapshot('deploy_amm', async ()=>{
296
- const { contract: liquidityToken, instance: liquidityTokenInstance } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'LPT', 'LPT', 18n).send({
297
- from: this.adminAddress
298
- }).wait();
299
- const { contract: amm, instance: ammInstance } = await AMMContract.deploy(this.adminWallet, this.bananaCoin.address, this.candyBarCoin.address, liquidityToken.address).send({
300
- from: this.adminAddress
301
- }).wait();
302
- this.logger.info(`AMM deployed at ${amm.address}`);
303
- await liquidityToken.methods.set_minter(amm.address, true).send({
304
- from: this.adminAddress
305
- }).wait();
306
- return {
307
- ammAddress: amm.address,
308
- ammInstance,
309
- liquidityTokenAddress: liquidityToken.address,
310
- liquidityTokenInstance
311
- };
312
- }, ({ ammAddress, ammInstance, liquidityTokenAddress, liquidityTokenInstance })=>{
313
- this.liquidityToken = TokenContract.at(liquidityTokenAddress, this.adminWallet);
314
- this.liquidityTokenInstance = liquidityTokenInstance;
315
- this.amm = AMMContract.at(ammAddress, this.adminWallet);
316
- this.ammInstance = ammInstance;
317
- return Promise.resolve();
285
+ async applyDeployAmm() {
286
+ this.logger.info('Applying AMM deployment');
287
+ const { contract: liquidityToken, instance: liquidityTokenInstance } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'LPT', 'LPT', 18n).send({
288
+ from: this.adminAddress
289
+ });
290
+ const { contract: amm, instance: ammInstance } = await AMMContract.deploy(this.adminWallet, this.bananaCoin.address, this.candyBarCoin.address, liquidityToken.address).send({
291
+ from: this.adminAddress
292
+ });
293
+ this.logger.info(`AMM deployed at ${amm.address}`);
294
+ await liquidityToken.methods.set_minter(amm.address, true).send({
295
+ from: this.adminAddress
318
296
  });
297
+ this.liquidityToken = liquidityToken;
298
+ this.liquidityTokenInstance = liquidityTokenInstance;
299
+ this.amm = amm;
300
+ this.ammInstance = ammInstance;
319
301
  }
320
302
  async getBridgedFeeJuicePaymentMethodForWallet(_wallet, sender) {
321
303
  const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(sender);
@@ -324,8 +306,8 @@ export class ClientFlowsBenchmark {
324
306
  async getPrivateFPCPaymentMethodForWallet(wallet, sender) {
325
307
  // The private fee paying method assembled on the app side requires knowledge of the maximum
326
308
  // fee the user is willing to pay
327
- const maxFeesPerGas = (await this.aztecNode.getCurrentMinFees()).mul(1.5);
328
- const gasSettings = GasSettings.default({
309
+ const maxFeesPerGas = await getPaddedMaxFeesPerGas(this.aztecNode);
310
+ const gasSettings = GasSettings.fallback({
329
311
  maxFeesPerGas
330
312
  });
331
313
  return new PrivateFeePaymentMethod(this.bananaFPC.address, sender, wallet, gasSettings);
@@ -4,11 +4,11 @@ export type ClientFlowConfig = {
4
4
  feePaymentMethods: BenchmarkingFeePaymentMethod[];
5
5
  recursions?: number[];
6
6
  };
7
- type ClientFlows = 'accountDeployments' | 'deployments' | 'transfers' | 'bridging' | 'amm';
7
+ type ClientFlows = 'accountDeployments' | 'deployments' | 'transfers' | 'bridging' | 'amm' | 'storageProof';
8
8
  export type ClientFlowsConfig = {
9
9
  [key in ClientFlows]: ClientFlowConfig;
10
10
  };
11
11
  export declare const KEY_FLOWS_CONFIG: ClientFlowsConfig;
12
12
  export declare const FULL_FLOWS_CONFIG: ClientFlowsConfig;
13
13
  export {};
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmVuY2gvY2xpZW50X2Zsb3dzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RixNQUFNLE1BQU0sZ0JBQWdCLEdBQUc7SUFDN0IsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLGlCQUFpQixFQUFFLDRCQUE0QixFQUFFLENBQUM7SUFDbEQsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Q0FDdkIsQ0FBQztBQUVGLEtBQUssV0FBVyxHQUFHLG9CQUFvQixHQUFHLGFBQWEsR0FBRyxXQUFXLEdBQUcsVUFBVSxHQUFHLEtBQUssQ0FBQztBQUUzRixNQUFNLE1BQU0saUJBQWlCLEdBQUc7S0FDN0IsR0FBRyxJQUFJLFdBQVcsR0FBRyxnQkFBZ0I7Q0FDdkMsQ0FBQztBQUVGLGVBQU8sTUFBTSxnQkFBZ0IsRUFBRSxpQkFzQjlCLENBQUM7QUFFRixlQUFPLE1BQU0saUJBQWlCLEVBQUUsaUJBc0IvQixDQUFDIn0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmVuY2gvY2xpZW50X2Zsb3dzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RixNQUFNLE1BQU0sZ0JBQWdCLEdBQUc7SUFDN0IsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLGlCQUFpQixFQUFFLDRCQUE0QixFQUFFLENBQUM7SUFDbEQsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Q0FDdkIsQ0FBQztBQUVGLEtBQUssV0FBVyxHQUFHLG9CQUFvQixHQUFHLGFBQWEsR0FBRyxXQUFXLEdBQUcsVUFBVSxHQUFHLEtBQUssR0FBRyxjQUFjLENBQUM7QUFFNUcsTUFBTSxNQUFNLGlCQUFpQixHQUFHO0tBQzdCLEdBQUcsSUFBSSxXQUFXLEdBQUcsZ0JBQWdCO0NBQ3ZDLENBQUM7QUFFRixlQUFPLE1BQU0sZ0JBQWdCLEVBQUUsaUJBMEI5QixDQUFDO0FBRUYsZUFBTyxNQUFNLGlCQUFpQixFQUFFLGlCQTBCL0IsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAE7F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,iBAAiB,EAAE,4BAA4B,EAAE,CAAC;IAClD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,WAAW,GAAG,oBAAoB,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,CAAC;AAE3F,MAAM,MAAM,iBAAiB,GAAG;KAC7B,GAAG,IAAI,WAAW,GAAG,gBAAgB;CACvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,iBAsB9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,iBAsB/B,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAE7F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,iBAAiB,EAAE,4BAA4B,EAAE,CAAC;IAClD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,WAAW,GAAG,oBAAoB,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,GAAG,cAAc,CAAC;AAE5G,MAAM,MAAM,iBAAiB,GAAG;KAC7B,GAAG,IAAI,WAAW,GAAG,gBAAgB;CACvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,iBA0B9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,iBA0B/B,CAAC"}
@@ -45,6 +45,14 @@ export const KEY_FLOWS_CONFIG = {
45
45
  0,
46
46
  1
47
47
  ]
48
+ },
49
+ storageProof: {
50
+ accounts: [
51
+ 'ecdsar1'
52
+ ],
53
+ feePaymentMethods: [
54
+ 'sponsored_fpc'
55
+ ]
48
56
  }
49
57
  };
50
58
  export const FULL_FLOWS_CONFIG = {
@@ -102,5 +110,15 @@ export const FULL_FLOWS_CONFIG = {
102
110
  1,
103
111
  2
104
112
  ]
113
+ },
114
+ storageProof: {
115
+ accounts: [
116
+ 'ecdsar1',
117
+ 'schnorr'
118
+ ],
119
+ feePaymentMethods: [
120
+ 'sponsored_fpc',
121
+ 'private_fpc'
122
+ ]
105
123
  }
106
124
  };
@@ -1,5 +1,6 @@
1
- import { type SentTx, type WaitOpts } from '@aztec/aztec.js/contracts';
1
+ import { type WaitOpts } from '@aztec/aztec.js/contracts';
2
2
  import { BenchmarkingContract } from '@aztec/noir-test-contracts.js/Benchmarking';
3
+ import type { TxHash } from '@aztec/stdlib/tx';
3
4
  import type { MetricDefinition } from '@aztec/telemetry-client';
4
5
  import type { BenchmarkTelemetryClient } from '@aztec/telemetry-client/bench';
5
6
  import { type EndToEndContext, type SetupOptions } from '../fixtures/utils.js';
@@ -14,7 +15,7 @@ export declare function benchmarkSetup(opts: Partial<SetupOptions> & {
14
15
  telemetry: BenchmarkTelemetryClient;
15
16
  context: EndToEndContext;
16
17
  contract: BenchmarkingContract;
17
- sequencer: import("../../../sequencer-client/dest/index.js").SequencerClient;
18
+ sequencer: import("@aztec/sequencer-client").SequencerClient;
18
19
  }>;
19
20
  type MetricFilter = {
20
21
  source: MetricDefinition;
@@ -38,7 +39,7 @@ export type GithubActionBenchmarkResult = {
38
39
  * @param heavyPublicCompute - Whether the transactions include heavy public compute (like a big sha256).
39
40
  * @returns Array of sent txs.
40
41
  */
41
- export declare function sendTxs(txCount: number, context: EndToEndContext, contract: BenchmarkingContract, heavyPublicCompute?: boolean): Promise<SentTx[]>;
42
- export declare function waitTxs(txs: SentTx[], context: EndToEndContext, txWaitOpts?: WaitOpts): Promise<void>;
42
+ export declare function sendTxs(txCount: number, context: EndToEndContext, contract: BenchmarkingContract, heavyPublicCompute?: boolean): Promise<TxHash[]>;
43
+ export declare function waitTxs(txs: TxHash[], context: EndToEndContext, txWaitOpts?: WaitOpts): Promise<void>;
43
44
  export {};
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iZW5jaC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsS0FBSyxNQUFNLEVBQUUsS0FBSyxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUE0Qyx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBS3hILE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxLQUFLLFlBQVksRUFBUyxNQUFNLHNCQUFzQixDQUFDO0FBRXRGOztHQUVHO0FBQ0gsd0JBQXNCLGNBQWMsQ0FDbEMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRztJQUM1Qiw2QkFBNkIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDO0lBQzNFLGtGQUFrRjtJQUNsRixXQUFXLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDdEI7Ozs7O0dBeUJGO0FBRUQsS0FBSyxZQUFZLEdBQUc7SUFDbEIsTUFBTSxFQUFFLGdCQUFnQixDQUFDO0lBQ3pCLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDO0lBQ3JDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBR0YsTUFBTSxNQUFNLDJCQUEyQixHQUFHO0lBQ3hDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2YsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNoQixDQUFDO0FBb0VGOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLE9BQU8sQ0FDM0IsT0FBTyxFQUFFLE1BQU0sRUFDZixPQUFPLEVBQUUsZUFBZSxFQUN4QixRQUFRLEVBQUUsb0JBQW9CLEVBQzlCLGtCQUFrQixHQUFFLE9BQWUsR0FDbEMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBTW5CO0FBRUQsd0JBQXNCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUMsRUFBRSxRQUFRLGlCQUkzRiJ9
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,EAAa,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,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"}
@@ -1,23 +1,26 @@
1
1
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import { BatchCall } from '@aztec/aztec.js/contracts';
2
+ import { BatchCall, NO_WAIT } from '@aztec/aztec.js/contracts';
3
+ import { waitForTx } from '@aztec/aztec.js/node';
3
4
  import { mean, stdDev, times } from '@aztec/foundation/collection';
4
5
  import { BenchmarkingContract } from '@aztec/noir-test-contracts.js/Benchmarking';
5
6
  import { mkdirSync, writeFileSync } from 'fs';
6
7
  import path from 'path';
8
+ import { PIPELINING_SETUP_OPTS } from '../fixtures/fixtures.js';
7
9
  import { setup } from '../fixtures/utils.js';
8
10
  /**
9
11
  * Setup for benchmarks. Initializes a remote node with a single account and deploys a benchmark contract.
10
12
  */ export async function benchmarkSetup(opts) {
11
13
  const context = await setup(1, {
14
+ ...PIPELINING_SETUP_OPTS,
12
15
  ...opts,
13
16
  telemetryConfig: {
14
17
  benchmark: true
15
18
  }
16
19
  });
17
20
  const defaultAccountAddress = context.accounts[0];
18
- const contract = await BenchmarkingContract.deploy(context.wallet).send({
21
+ const { contract } = await BenchmarkingContract.deploy(context.wallet).send({
19
22
  from: defaultAccountAddress
20
- }).deployed();
23
+ });
21
24
  context.logger.info(`Deployed benchmarking contract at ${contract.address}`);
22
25
  const sequencer = context.aztecNode.getSequencer();
23
26
  const telemetry = context.telemetryClient;
@@ -124,14 +127,18 @@ function getMetricValues(points) {
124
127
  context.logger.info(`Creating ${txCount} txs`);
125
128
  const [from] = context.accounts;
126
129
  context.logger.info(`Sending ${txCount} txs`);
127
- return calls.map((call)=>call.send({
128
- from
129
- }));
130
+ return Promise.all(calls.map(async (call)=>{
131
+ const { txHash } = await call.send({
132
+ from,
133
+ wait: NO_WAIT
134
+ });
135
+ return txHash;
136
+ }));
130
137
  }
131
138
  export async function waitTxs(txs, context, txWaitOpts) {
132
139
  context.logger.info(`Awaiting ${txs.length} txs to be mined`);
133
- await Promise.all(txs.map((tx)=>tx.wait(txWaitOpts)));
134
- context.logger.info(`All ${txs.length} txs have been mined`);
140
+ await Promise.all(txs.map((txHash)=>waitForTx(context.aztecNode, txHash, txWaitOpts)));
141
+ context.logger.info(`${txs.length} txs have been mined`);
135
142
  }
136
143
  function randomBytesAsBigInts(length) {
137
144
  return [
@@ -5,11 +5,13 @@ import type { AztecNode } from '@aztec/aztec.js/node';
5
5
  import type { TxHash } from '@aztec/aztec.js/tx';
6
6
  import type { CheatCodes } from '@aztec/aztec/testing';
7
7
  import { TokenBlacklistContract } from '@aztec/noir-contracts.js/TokenBlacklist';
8
+ import { GenericProxyContract } from '@aztec/noir-test-contracts.js/GenericProxy';
8
9
  import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
9
10
  import type { SequencerClient } from '@aztec/sequencer-client';
10
- import type { TestWallet } from '@aztec/test-wallet/server';
11
- import { type SubsystemsContext } from '../fixtures/snapshot_manager.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';
14
+ import type { TestWallet } from '../test-wallet/test_wallet.js';
13
15
  export declare class Role {
14
16
  private isAdmin;
15
17
  private isMinter;
@@ -25,30 +27,30 @@ export declare class Role {
25
27
  }
26
28
  export declare class BlacklistTokenContractTest {
27
29
  static CHANGE_ROLES_DELAY: number;
28
- private snapshotManager;
30
+ context: EndToEndContext;
29
31
  logger: Logger;
30
32
  wallet: TestWallet;
31
33
  asset: TokenBlacklistContract;
32
34
  tokenSim: TokenSimulator;
33
35
  badAccount: InvalidAccountContract;
36
+ authwitProxy: GenericProxyContract;
34
37
  cheatCodes: CheatCodes;
35
38
  sequencer: SequencerClient;
36
- aztecNode: AztecNode;
39
+ aztecNode: AztecNode & AztecNodeDebug;
37
40
  adminAddress: AztecAddress;
38
41
  otherAddress: AztecAddress;
39
42
  blacklistedAddress: AztecAddress;
40
43
  constructor(testName: string);
41
44
  crossTimestampOfChange(): Promise<void>;
42
45
  /**
43
- * Adds two state shifts to snapshot manager.
46
+ * Applies base setup:
44
47
  * 1. Add 3 accounts.
45
48
  * 2. Publicly deploy accounts, deploy token contract and a "bad account".
46
49
  */
47
- applyBaseSnapshots(): Promise<void>;
48
- setup(): Promise<void>;
49
- snapshot: <T>(name: string, apply: (context: SubsystemsContext) => Promise<T>, restore?: (snapshotData: T, context: SubsystemsContext) => Promise<void>) => Promise<void>;
50
+ applyBaseSetup(): Promise<void>;
51
+ setup(opts?: Partial<SetupOptions>): Promise<void>;
50
52
  teardown(): Promise<void>;
51
53
  addPendingShieldNoteToPXE(contract: TokenBlacklistContract, recipient: AztecAddress, amount: bigint, secretHash: Fr, txHash: TxHash): Promise<void>;
52
- applyMintSnapshot(): Promise<void>;
54
+ applyMint(): Promise<void>;
53
55
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxhY2tsaXN0X3Rva2VuX2NvbnRyYWN0X3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfYmxhY2tsaXN0X3Rva2VuX2NvbnRyYWN0L2JsYWNrbGlzdF90b2tlbl9jb250cmFjdF90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSTVELE9BQU8sRUFFTCxLQUFLLGlCQUFpQixFQUl2QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUlsRSxxQkFBYSxJQUFJO0lBQ2YsT0FBTyxDQUFDLE9BQU8sQ0FBUztJQUN4QixPQUFPLENBQUMsUUFBUSxDQUFTO0lBQ3pCLE9BQU8sQ0FBQyxhQUFhLENBQVM7SUFFOUIsU0FBUyxTQUdSO0lBRUQsVUFBVSxTQUdUO0lBRUQsZUFBZSxTQUdkO0lBRUQsWUFBWTs7OztNQUlYO0NBQ0Y7QUFFRCxxQkFBYSwwQkFBMEI7SUFFckMsTUFBTSxDQUFDLGtCQUFrQixTQUFTO0lBRWxDLE9BQU8sQ0FBQyxlQUFlLENBQW1CO0lBQzFDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixNQUFNLEVBQUcsVUFBVSxDQUFDO0lBQ3BCLEtBQUssRUFBRyxzQkFBc0IsQ0FBQztJQUMvQixRQUFRLEVBQUcsY0FBYyxDQUFDO0lBQzFCLFVBQVUsRUFBRyxzQkFBc0IsQ0FBQztJQUNwQyxVQUFVLEVBQUcsVUFBVSxDQUFDO0lBQ3hCLFNBQVMsRUFBRyxlQUFlLENBQUM7SUFDNUIsU0FBUyxFQUFHLFNBQVMsQ0FBQztJQUV0QixZQUFZLEVBQUcsWUFBWSxDQUFDO0lBQzVCLFlBQVksRUFBRyxZQUFZLENBQUM7SUFDNUIsa0JBQWtCLEVBQUcsWUFBWSxDQUFDO0lBRWxDLFlBQVksUUFBUSxFQUFFLE1BQU0sRUFHM0I7SUFFSyxzQkFBc0Isa0JBTTNCO0lBRUQ7Ozs7T0FJRztJQUNHLGtCQUFrQixrQkE4RHZCO0lBRUssS0FBSyxrQkFFVjtJQUVELFFBQVEsR0FBSSxDQUFDLDhKQUkyRDtJQUVsRSxRQUFRLGtCQUViO0lBRUsseUJBQXlCLENBQzdCLFFBQVEsRUFBRSxzQkFBc0IsRUFDaEMsU0FBUyxFQUFFLFlBQVksRUFDdkIsTUFBTSxFQUFFLE1BQU0sRUFDZCxVQUFVLEVBQUUsRUFBRSxFQUNkLE1BQU0sRUFBRSxNQUFNLGlCQWNmO0lBRUssaUJBQWlCLGtCQWtFdEI7Q0FDRiJ9
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,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAI5D,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIlE,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,CAAC,eAAe,CAAmB;IAC1C,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,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,EAG3B;IAEK,sBAAsB,kBAM3B;IAED;;;;OAIG;IACG,kBAAkB,kBA8DvB;IAEK,KAAK,kBAEV;IAED,QAAQ,GAAI,CAAC,8JAI2D;IAElE,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,iBAAiB,kBAkEtB;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"}