@aztec/end-to-end 0.0.1-commit.b655e406 → 0.0.1-commit.c0b82b2

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 (270) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +3 -2
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/benchmark.js +21 -1
  4. package/dest/bench/client_flows/client_flows_benchmark.d.ts +22 -16
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  6. package/dest/bench/client_flows/client_flows_benchmark.js +133 -122
  7. package/dest/bench/client_flows/config.d.ts +2 -2
  8. package/dest/bench/client_flows/config.d.ts.map +1 -1
  9. package/dest/bench/client_flows/config.js +18 -0
  10. package/dest/bench/client_flows/data_extractor.d.ts +1 -1
  11. package/dest/bench/client_flows/data_extractor.js +7 -27
  12. package/dest/bench/utils.d.ts +8 -7
  13. package/dest/bench/utils.d.ts.map +1 -1
  14. package/dest/bench/utils.js +27 -18
  15. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +9 -8
  16. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  17. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +106 -112
  18. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +20 -14
  19. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  20. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +92 -70
  21. package/dest/e2e_deploy_contract/deploy_test.d.ts +6 -5
  22. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  23. package/dest/e2e_deploy_contract/deploy_test.js +18 -13
  24. package/dest/e2e_epochs/epochs_test.d.ts +25 -15
  25. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  26. package/dest/e2e_epochs/epochs_test.js +103 -53
  27. package/dest/e2e_fees/bridging_race.notest.d.ts +1 -1
  28. package/dest/e2e_fees/bridging_race.notest.js +5 -7
  29. package/dest/e2e_fees/fees_test.d.ts +21 -17
  30. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  31. package/dest/e2e_fees/fees_test.js +129 -141
  32. package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
  33. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  34. package/dest/e2e_l1_publisher/write_json.js +18 -19
  35. package/dest/e2e_multi_validator/utils.d.ts +1 -1
  36. package/dest/e2e_multi_validator/utils.js +1 -1
  37. package/dest/e2e_nested_contract/nested_contract_test.d.ts +6 -9
  38. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  39. package/dest/e2e_nested_contract/nested_contract_test.js +31 -38
  40. package/dest/e2e_p2p/inactivity_slash_test.d.ts +3 -3
  41. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  42. package/dest/e2e_p2p/inactivity_slash_test.js +7 -6
  43. package/dest/e2e_p2p/p2p_network.d.ts +226 -19
  44. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  45. package/dest/e2e_p2p/p2p_network.js +136 -111
  46. package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
  47. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
  48. package/dest/e2e_p2p/reqresp/utils.js +177 -0
  49. package/dest/e2e_p2p/shared.d.ts +11 -11
  50. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  51. package/dest/e2e_p2p/shared.js +20 -22
  52. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
  53. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
  54. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
  55. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
  56. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
  57. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
  58. package/dest/e2e_token_contract/token_contract_test.d.ts +19 -10
  59. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  60. package/dest/e2e_token_contract/token_contract_test.js +99 -91
  61. package/dest/fixtures/authwit_proxy.d.ts +15 -0
  62. package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
  63. package/dest/fixtures/authwit_proxy.js +30 -0
  64. package/dest/fixtures/e2e_prover_test.d.ts +15 -21
  65. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  66. package/dest/fixtures/e2e_prover_test.js +123 -138
  67. package/dest/fixtures/elu_monitor.d.ts +21 -0
  68. package/dest/fixtures/elu_monitor.d.ts.map +1 -0
  69. package/dest/fixtures/elu_monitor.js +102 -0
  70. package/dest/fixtures/fixtures.d.ts +6 -3
  71. package/dest/fixtures/fixtures.d.ts.map +1 -1
  72. package/dest/fixtures/fixtures.js +8 -3
  73. package/dest/fixtures/get_acvm_config.d.ts +1 -1
  74. package/dest/fixtures/get_acvm_config.js +1 -1
  75. package/dest/fixtures/get_bb_config.d.ts +1 -1
  76. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  77. package/dest/fixtures/ha_setup.d.ts +71 -0
  78. package/dest/fixtures/ha_setup.d.ts.map +1 -0
  79. package/dest/fixtures/ha_setup.js +116 -0
  80. package/dest/fixtures/index.d.ts +2 -1
  81. package/dest/fixtures/index.d.ts.map +1 -1
  82. package/dest/fixtures/index.js +1 -0
  83. package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
  84. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  85. package/dest/fixtures/l1_to_l2_messaging.js +2 -2
  86. package/dest/fixtures/logging.d.ts +1 -1
  87. package/dest/fixtures/setup.d.ts +234 -0
  88. package/dest/fixtures/setup.d.ts.map +1 -0
  89. package/dest/fixtures/setup.js +605 -0
  90. package/dest/fixtures/setup_p2p_test.d.ts +17 -10
  91. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  92. package/dest/fixtures/setup_p2p_test.js +55 -36
  93. package/dest/fixtures/token_utils.d.ts +6 -3
  94. package/dest/fixtures/token_utils.d.ts.map +1 -1
  95. package/dest/fixtures/token_utils.js +16 -9
  96. package/dest/fixtures/utils.d.ts +5 -192
  97. package/dest/fixtures/utils.d.ts.map +1 -1
  98. package/dest/fixtures/utils.js +4 -648
  99. package/dest/fixtures/web3signer.d.ts +1 -1
  100. package/dest/fixtures/web3signer.js +1 -1
  101. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  102. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  103. package/dest/fixtures/with_telemetry_utils.js +2 -2
  104. package/dest/index.d.ts +1 -1
  105. package/dest/quality_of_service/grafana_client.d.ts +41 -0
  106. package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
  107. package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
  108. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  109. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  110. package/dest/quality_of_service/prometheus_client.js +67 -0
  111. package/dest/shared/cross_chain_test_harness.d.ts +7 -6
  112. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  113. package/dest/shared/cross_chain_test_harness.js +14 -14
  114. package/dest/shared/gas_portal_test_harness.d.ts +2 -2
  115. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  116. package/dest/shared/gas_portal_test_harness.js +2 -2
  117. package/dest/shared/index.d.ts +3 -2
  118. package/dest/shared/index.d.ts.map +1 -1
  119. package/dest/shared/index.js +1 -0
  120. package/dest/shared/jest_setup.d.ts +1 -1
  121. package/dest/shared/jest_setup.js +41 -1
  122. package/dest/shared/mock_state_view.d.ts +86 -0
  123. package/dest/shared/mock_state_view.d.ts.map +1 -0
  124. package/dest/shared/mock_state_view.js +186 -0
  125. package/dest/shared/submit-transactions.d.ts +4 -4
  126. package/dest/shared/submit-transactions.d.ts.map +1 -1
  127. package/dest/shared/submit-transactions.js +9 -11
  128. package/dest/shared/uniswap_l1_l2.d.ts +3 -27
  129. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  130. package/dest/shared/uniswap_l1_l2.js +57 -35
  131. package/dest/simulators/index.d.ts +1 -1
  132. package/dest/simulators/lending_simulator.d.ts +2 -2
  133. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  134. package/dest/simulators/lending_simulator.js +6 -4
  135. package/dest/simulators/token_simulator.d.ts +1 -1
  136. package/dest/simulators/token_simulator.d.ts.map +1 -1
  137. package/dest/simulators/token_simulator.js +2 -23
  138. package/dest/spartan/setup_test_wallets.d.ts +16 -6
  139. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  140. package/dest/spartan/setup_test_wallets.js +115 -23
  141. package/dest/spartan/tx_metrics.d.ts +88 -0
  142. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  143. package/dest/spartan/tx_metrics.js +422 -0
  144. package/dest/spartan/utils/bot.d.ts +28 -0
  145. package/dest/spartan/utils/bot.d.ts.map +1 -0
  146. package/dest/spartan/utils/bot.js +142 -0
  147. package/dest/spartan/utils/chaos.d.ts +79 -0
  148. package/dest/spartan/utils/chaos.d.ts.map +1 -0
  149. package/dest/spartan/utils/chaos.js +142 -0
  150. package/dest/spartan/utils/clients.d.ts +39 -0
  151. package/dest/spartan/utils/clients.d.ts.map +1 -0
  152. package/dest/spartan/utils/clients.js +90 -0
  153. package/dest/spartan/utils/config.d.ts +42 -0
  154. package/dest/spartan/utils/config.d.ts.map +1 -0
  155. package/dest/spartan/utils/config.js +22 -0
  156. package/dest/spartan/utils/health.d.ts +63 -0
  157. package/dest/spartan/utils/health.d.ts.map +1 -0
  158. package/dest/spartan/utils/health.js +202 -0
  159. package/dest/spartan/utils/helm.d.ts +15 -0
  160. package/dest/spartan/utils/helm.d.ts.map +1 -0
  161. package/dest/spartan/utils/helm.js +47 -0
  162. package/dest/spartan/utils/index.d.ts +10 -0
  163. package/dest/spartan/utils/index.d.ts.map +1 -0
  164. package/dest/spartan/utils/index.js +20 -0
  165. package/dest/spartan/utils/k8s.d.ts +128 -0
  166. package/dest/spartan/utils/k8s.d.ts.map +1 -0
  167. package/dest/spartan/utils/k8s.js +381 -0
  168. package/dest/spartan/utils/nodes.d.ts +40 -0
  169. package/dest/spartan/utils/nodes.d.ts.map +1 -0
  170. package/dest/spartan/utils/nodes.js +461 -0
  171. package/dest/spartan/utils/scripts.d.ts +30 -0
  172. package/dest/spartan/utils/scripts.d.ts.map +1 -0
  173. package/dest/spartan/utils/scripts.js +81 -0
  174. package/dest/spartan/utils.d.ts +2 -218
  175. package/dest/spartan/utils.d.ts.map +1 -1
  176. package/dest/spartan/utils.js +1 -749
  177. package/dest/test-wallet/test_wallet.d.ts +83 -0
  178. package/dest/test-wallet/test_wallet.d.ts.map +1 -0
  179. package/dest/test-wallet/test_wallet.js +214 -0
  180. package/dest/test-wallet/utils.d.ts +41 -0
  181. package/dest/test-wallet/utils.d.ts.map +1 -0
  182. package/dest/test-wallet/utils.js +71 -0
  183. package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
  184. package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
  185. package/dest/test-wallet/wallet_worker_script.js +48 -0
  186. package/dest/test-wallet/worker_wallet.d.ts +52 -0
  187. package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
  188. package/dest/test-wallet/worker_wallet.js +151 -0
  189. package/dest/test-wallet/worker_wallet_schema.d.ts +274 -0
  190. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
  191. package/dest/test-wallet/worker_wallet_schema.js +10 -0
  192. package/package.json +50 -44
  193. package/src/bench/client_flows/benchmark.ts +24 -2
  194. package/src/bench/client_flows/client_flows_benchmark.ts +156 -177
  195. package/src/bench/client_flows/config.ts +9 -1
  196. package/src/bench/client_flows/data_extractor.ts +6 -28
  197. package/src/bench/utils.ts +31 -21
  198. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +114 -143
  199. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +140 -125
  200. package/src/e2e_deploy_contract/deploy_test.ts +23 -16
  201. package/src/e2e_epochs/epochs_test.ts +166 -116
  202. package/src/e2e_fees/bridging_race.notest.ts +6 -12
  203. package/src/e2e_fees/fees_test.ts +172 -226
  204. package/src/e2e_l1_publisher/write_json.ts +20 -19
  205. package/src/e2e_multi_validator/utils.ts +1 -1
  206. package/src/e2e_nested_contract/nested_contract_test.ts +33 -55
  207. package/src/e2e_p2p/inactivity_slash_test.ts +8 -7
  208. package/src/e2e_p2p/p2p_network.ts +205 -182
  209. package/src/e2e_p2p/reqresp/utils.ts +235 -0
  210. package/src/e2e_p2p/shared.ts +37 -29
  211. package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
  212. package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
  213. package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
  214. package/src/e2e_token_contract/token_contract_test.ts +113 -119
  215. package/src/fixtures/authwit_proxy.ts +50 -0
  216. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  217. package/src/fixtures/e2e_prover_test.ts +138 -186
  218. package/src/fixtures/elu_monitor.ts +126 -0
  219. package/src/fixtures/fixtures.ts +12 -5
  220. package/src/fixtures/get_acvm_config.ts +1 -1
  221. package/src/fixtures/ha_setup.ts +186 -0
  222. package/src/fixtures/index.ts +1 -0
  223. package/src/fixtures/l1_to_l2_messaging.ts +4 -2
  224. package/src/fixtures/setup.ts +895 -0
  225. package/src/fixtures/setup_p2p_test.ts +58 -48
  226. package/src/fixtures/token_utils.ts +9 -7
  227. package/src/fixtures/utils.ts +27 -947
  228. package/src/fixtures/web3signer.ts +1 -1
  229. package/src/fixtures/with_telemetry_utils.ts +2 -2
  230. package/src/guides/up_quick_start.sh +4 -4
  231. package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
  232. package/src/quality_of_service/prometheus_client.ts +113 -0
  233. package/src/shared/cross_chain_test_harness.ts +19 -36
  234. package/src/shared/gas_portal_test_harness.ts +3 -3
  235. package/src/shared/index.ts +2 -1
  236. package/src/shared/jest_setup.ts +51 -1
  237. package/src/shared/mock_state_view.ts +188 -0
  238. package/src/shared/submit-transactions.ts +14 -16
  239. package/src/shared/uniswap_l1_l2.ts +66 -89
  240. package/src/simulators/lending_simulator.ts +7 -5
  241. package/src/simulators/token_simulator.ts +1 -29
  242. package/src/spartan/DEVELOP.md +7 -0
  243. package/src/spartan/setup_test_wallets.ts +173 -28
  244. package/src/spartan/tx_metrics.ts +376 -0
  245. package/src/spartan/utils/bot.ts +188 -0
  246. package/src/spartan/utils/chaos.ts +253 -0
  247. package/src/spartan/utils/clients.ts +100 -0
  248. package/src/spartan/utils/config.ts +28 -0
  249. package/src/spartan/utils/health.ts +255 -0
  250. package/src/spartan/utils/helm.ts +84 -0
  251. package/src/spartan/utils/index.ts +68 -0
  252. package/src/spartan/utils/k8s.ts +535 -0
  253. package/src/spartan/utils/nodes.ts +543 -0
  254. package/src/spartan/utils/scripts.ts +99 -0
  255. package/src/spartan/utils.ts +1 -942
  256. package/src/test-wallet/test_wallet.ts +306 -0
  257. package/src/test-wallet/utils.ts +112 -0
  258. package/src/test-wallet/wallet_worker_script.ts +60 -0
  259. package/src/test-wallet/worker_wallet.ts +213 -0
  260. package/src/test-wallet/worker_wallet_schema.ts +13 -0
  261. package/dest/fixtures/setup_l1_contracts.d.ts +0 -6
  262. package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
  263. package/dest/fixtures/setup_l1_contracts.js +0 -17
  264. package/dest/fixtures/snapshot_manager.d.ts +0 -95
  265. package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
  266. package/dest/fixtures/snapshot_manager.js +0 -505
  267. package/dest/quality_of_service/alert_checker.d.ts +0 -41
  268. package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
  269. package/src/fixtures/setup_l1_contracts.ts +0 -26
  270. package/src/fixtures/snapshot_manager.ts +0 -665
@@ -4,15 +4,19 @@ import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/cont
4
4
  import { Fr } from '@aztec/aztec.js/fields';
5
5
  import { MerkleTreeId } from '@aztec/aztec.js/trees';
6
6
  import { EpochCache } from '@aztec/epoch-cache';
7
- import { DefaultL1ContractsConfig, createExtendedL1Client } from '@aztec/ethereum';
7
+ import { createExtendedL1Client } from '@aztec/ethereum/client';
8
+ import { DefaultL1ContractsConfig } from '@aztec/ethereum/config';
8
9
  import { RollupContract } from '@aztec/ethereum/contracts';
9
- import { ChainMonitor, DelayedTxUtils, waitUntilL1Timestamp, withDelayer } from '@aztec/ethereum/test';
10
+ import { createDelayer, waitUntilL1Timestamp, wrapClientWithDelayer } from '@aztec/ethereum/l1-tx-utils';
11
+ import { ChainMonitor } from '@aztec/ethereum/test';
12
+ import { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
10
13
  import { SecretValue } from '@aztec/foundation/config';
11
- import { randomBytes } from '@aztec/foundation/crypto';
12
- import { withLogNameSuffix } from '@aztec/foundation/log';
14
+ import { randomBytes } from '@aztec/foundation/crypto/random';
15
+ import { withLoggerBindings } from '@aztec/foundation/log/server';
13
16
  import { retryUntil } from '@aztec/foundation/retry';
14
17
  import { sleep } from '@aztec/foundation/sleep';
15
18
  import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
19
+ import { TestContract } from '@aztec/noir-test-contracts.js/Test';
16
20
  import { getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
17
21
  import { SequencerState } from '@aztec/sequencer-client';
18
22
  import { EthAddress } from '@aztec/stdlib/block';
@@ -21,7 +25,7 @@ import { tryStop } from '@aztec/stdlib/interfaces/server';
21
25
  import { join } from 'path';
22
26
  import { privateKeyToAccount } from 'viem/accounts';
23
27
  import { createAndSyncProverNode, getPrivateKeyFromIndex, setup } from '../fixtures/utils.js';
24
- export const WORLD_STATE_BLOCK_HISTORY = 2;
28
+ export const WORLD_STATE_CHECKPOINT_HISTORY = 2;
25
29
  export const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
26
30
  export const ARCHIVER_POLL_INTERVAL = 50;
27
31
  export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
@@ -52,10 +56,12 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
52
56
  static getSlotDurations(opts = {}) {
53
57
  const envEthereumSlotDuration = process.env.L1_BLOCK_TIME ? parseInt(process.env.L1_BLOCK_TIME) : DEFAULT_L1_BLOCK_TIME;
54
58
  const ethereumSlotDuration = opts.ethereumSlotDuration ?? envEthereumSlotDuration;
55
- const aztecSlotDuration = opts.aztecSlotDuration ?? ethereumSlotDuration * 2;
59
+ const aztecSlotDuration = opts.aztecSlotDuration ?? (opts.aztecSlotDurationInL1Slots ?? 2) * ethereumSlotDuration;
56
60
  const aztecEpochDuration = opts.aztecEpochDuration ?? 6;
57
61
  const aztecProofSubmissionEpochs = opts.aztecProofSubmissionEpochs ?? 1;
62
+ const l1PublishingTime = opts.l1PublishingTime ?? 1;
58
63
  return {
64
+ l1PublishingTime,
59
65
  ethereumSlotDuration,
60
66
  aztecSlotDuration,
61
67
  aztecEpochDuration,
@@ -63,7 +69,7 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
63
69
  };
64
70
  }
65
71
  async setup(opts = {}) {
66
- const { ethereumSlotDuration, aztecSlotDuration, aztecEpochDuration, aztecProofSubmissionEpochs } = EpochsTestContext.getSlotDurations(opts);
72
+ const { ethereumSlotDuration, aztecSlotDuration, aztecEpochDuration, aztecProofSubmissionEpochs, l1PublishingTime } = EpochsTestContext.getSlotDurations(opts);
67
73
  this.L1_BLOCK_TIME_IN_S = ethereumSlotDuration;
68
74
  this.L2_SLOT_DURATION_IN_S = aztecSlotDuration;
69
75
  // Set up system without any account nor protocol contracts
@@ -73,8 +79,6 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
73
79
  checkIntervalMs: 50,
74
80
  archiverPollingIntervalMS: ARCHIVER_POLL_INTERVAL,
75
81
  worldStateBlockCheckIntervalMS: WORLD_STATE_BLOCK_CHECK_INTERVAL,
76
- skipProtocolContracts: true,
77
- salt: 1,
78
82
  aztecEpochDuration,
79
83
  aztecSlotDuration,
80
84
  ethereumSlotDuration,
@@ -88,10 +92,16 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
88
92
  // using the prover's eth address if the proverId is used for something in the rollup contract
89
93
  // Use numeric EthAddress for deterministic prover id
90
94
  proverId: EthAddress.fromNumber(1),
91
- worldStateBlockHistory: WORLD_STATE_BLOCK_HISTORY,
95
+ worldStateCheckpointHistory: WORLD_STATE_CHECKPOINT_HISTORY,
92
96
  exitDelaySeconds: DefaultL1ContractsConfig.exitDelaySeconds,
93
97
  slasherFlavor: 'none',
98
+ l1PublishingTime,
94
99
  ...opts
100
+ }, // Use checkpointed chain tip for PXE by default to avoid issues with blocks being dropped due to pruned anchor blocks.
101
+ // Can be overridden via opts.pxeOpts.
102
+ {
103
+ syncChainTip: 'checkpointed',
104
+ ...opts.pxeOpts
95
105
  });
96
106
  this.context = context;
97
107
  this.proverNodes = context.proverNode ? [
@@ -108,10 +118,8 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
108
118
  });
109
119
  // Loop that tracks L1 and L2 block numbers and logs whenever there's a new one.
110
120
  this.monitor = new ChainMonitor(this.rollup, context.dateProvider, this.logger).start();
111
- // This is hideous.
112
- // We ought to have a definite reference to the l1TxUtils that we're using in both places, provided by the test context.
113
- this.proverDelayer = context.proverNode ? context.proverNode.publisher.l1TxUtils.delayer : undefined;
114
- this.sequencerDelayer = context.sequencer ? context.sequencer.sequencer.publisher.l1TxUtils.delayer : undefined;
121
+ this.proverDelayer = context.proverDelayer;
122
+ this.sequencerDelayer = context.sequencerDelayer;
115
123
  if (context.proverNode && !this.proverDelayer || context.sequencer && !this.sequencerDelayer) {
116
124
  throw new Error(`Could not find prover or sequencer delayer`);
117
125
  }
@@ -123,7 +131,8 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
123
131
  l1StartBlock: await this.rollup.getL1StartBlock(),
124
132
  l1GenesisTime: await this.rollup.getL1GenesisTime(),
125
133
  ethereumSlotDuration,
126
- proofSubmissionEpochs: Number(await this.rollup.getProofSubmissionEpochs())
134
+ proofSubmissionEpochs: Number(await this.rollup.getProofSubmissionEpochs()),
135
+ targetCommitteeSize: await this.rollup.getTargetCommitteeSize()
127
136
  };
128
137
  this.logger.info(`L2 genesis at L1 block ${this.constants.l1StartBlock} (timestamp ${this.constants.l1GenesisTime})`);
129
138
  }
@@ -136,16 +145,29 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
136
145
  async createProverNode(opts = {}) {
137
146
  this.logger.warn('Creating and syncing a simulated prover node...');
138
147
  const proverNodePrivateKey = this.getNextPrivateKey();
139
- const suffix = (this.proverNodes.length + 1).toString();
140
- const proverNode = await withLogNameSuffix(suffix, ()=>createAndSyncProverNode(proverNodePrivateKey, {
141
- ...this.context.config
142
- }, {
143
- dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex')),
144
- proverId: EthAddress.fromNumber(parseInt(suffix, 10)),
148
+ const proverIndex = this.proverNodes.length + 1;
149
+ const { mockGossipSubNetwork } = this.context;
150
+ const { proverNode } = await withLoggerBindings({
151
+ actor: `prover-${proverIndex}`
152
+ }, ()=>createAndSyncProverNode(proverNodePrivateKey, {
153
+ ...this.context.config,
154
+ p2pEnabled: this.context.config.p2pEnabled || mockGossipSubNetwork !== undefined,
155
+ proverId: EthAddress.fromNumber(proverIndex),
145
156
  dontStart: opts.dontStart,
146
157
  ...opts
147
- }, this.context.aztecNode, undefined, {
148
- dateProvider: this.context.dateProvider
158
+ }, {
159
+ dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex'))
160
+ }, {
161
+ dateProvider: this.context.dateProvider,
162
+ p2pClientDeps: {
163
+ p2pServiceFactory: mockGossipSubNetwork ? getMockPubSubP2PServiceFactory(mockGossipSubNetwork) : undefined,
164
+ rpcTxProviders: [
165
+ this.context.aztecNode
166
+ ]
167
+ }
168
+ }, {
169
+ prefilledPublicData: this.context.prefilledPublicData ?? [],
170
+ dontStart: opts.dontStart
149
171
  }));
150
172
  this.proverNodes.push(proverNode);
151
173
  return proverNode;
@@ -166,7 +188,8 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
166
188
  });
167
189
  }
168
190
  async createNode(opts = {}) {
169
- const suffix = (this.nodes.length + 1).toString();
191
+ const nodeIndex = this.nodes.length + 1;
192
+ const actorPrefix = opts.disableValidator ? 'node' : 'validator';
170
193
  const { mockGossipSubNetwork } = this.context;
171
194
  const resolvedConfig = {
172
195
  ...this.context.config,
@@ -174,7 +197,9 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
174
197
  };
175
198
  const p2pEnabled = resolvedConfig.p2pEnabled || mockGossipSubNetwork !== undefined;
176
199
  const p2pIp = resolvedConfig.p2pIp ?? (p2pEnabled ? '127.0.0.1' : undefined);
177
- const node = await withLogNameSuffix(suffix, ()=>AztecNodeService.createAndSync({
200
+ const node = await withLoggerBindings({
201
+ actor: `${actorPrefix}-${nodeIndex}`
202
+ }, ()=>AztecNodeService.createAndSync({
178
203
  ...resolvedConfig,
179
204
  dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex')),
180
205
  validatorPrivateKeys: opts.validatorPrivateKeys ?? new SecretValue([]),
@@ -189,20 +214,6 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
189
214
  prefilledPublicData: this.context.prefilledPublicData,
190
215
  ...opts
191
216
  }));
192
- // REFACTOR: We're getting too much into the internals of the sequencer here.
193
- // We should have a single method for constructing an aztec node that returns a TestAztecNodeService
194
- // which directly exposes the delayer and sets any test config.
195
- if (opts.txDelayerMaxInclusionTimeIntoSlot !== undefined) {
196
- this.logger.info(`Setting tx delayer max inclusion time into slot to ${opts.txDelayerMaxInclusionTimeIntoSlot} seconds`);
197
- // Here we reach into the sequencer and hook in a tx delayer. The problem is that the sequencer's l1 utils only uses a public client, not a wallet.
198
- // The delayer needs a wallet (a client that can sign), so we have to create one here.
199
- const l1Client = createExtendedL1Client(resolvedConfig.l1RpcUrls, resolvedConfig.publisherPrivateKeys[0].getValue());
200
- const sequencer = node.getSequencer();
201
- const publisher = sequencer.sequencer.publisher;
202
- const delayed = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, this.L1_BLOCK_TIME_IN_S, l1Client);
203
- delayed.delayer.setMaxInclusionTimeIntoSlot(opts.txDelayerMaxInclusionTimeIntoSlot);
204
- publisher.l1TxUtils = delayed;
205
- }
206
217
  this.nodes.push(node);
207
218
  return node;
208
219
  }
@@ -211,26 +222,28 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
211
222
  return `0x${key.toString('hex')}`;
212
223
  }
213
224
  /** Waits until the epoch begins (ie until the immediately previous L1 block is mined). */ async waitUntilEpochStarts(epoch) {
214
- const [start] = getTimestampRangeForEpoch(BigInt(epoch), this.constants);
225
+ const [start] = getTimestampRangeForEpoch(EpochNumber(epoch), this.constants);
215
226
  this.logger.info(`Waiting until L1 timestamp ${start} is reached as the start of epoch ${epoch}`);
216
227
  await waitUntilL1Timestamp(this.l1Client, start - BigInt(this.L1_BLOCK_TIME_IN_S), undefined, 30 * this.epochDuration);
217
228
  return start;
218
229
  }
219
- /** Waits until the given L2 block number is mined. */ async waitUntilL2BlockNumber(target, timeout = 60) {
220
- await retryUntil(()=>Promise.resolve(target <= this.monitor.l2BlockNumber), `Wait until L2 block ${target}`, timeout, 0.1);
230
+ /** Waits until the given checkpoint number is mined. */ async waitUntilCheckpointNumber(target, timeout = 120) {
231
+ await retryUntil(()=>Promise.resolve(target <= this.monitor.checkpointNumber), `Wait until checkpoint ${target}`, timeout, 0.1);
221
232
  }
222
- /** Waits until the given L2 block number is marked as proven. */ async waitUntilProvenL2BlockNumber(t, timeout = 60) {
223
- await retryUntil(()=>Promise.resolve(t <= this.monitor.l2ProvenBlockNumber), `Wait proven L2 block ${t}`, timeout, 0.1);
224
- return this.monitor.l2ProvenBlockNumber;
233
+ /** Waits until the given checkpoint number is marked as proven. */ async waitUntilProvenCheckpointNumber(target, timeout = 120) {
234
+ await retryUntil(()=>Promise.resolve(target <= this.monitor.provenCheckpointNumber), `Wait proven checkpoint ${target}`, timeout, 0.1);
235
+ return this.monitor.provenCheckpointNumber;
225
236
  }
226
237
  /** Waits until the last slot of the proof submission window for a given epoch. */ async waitUntilLastSlotOfProofSubmissionWindow(epochNumber) {
227
- const deadline = getProofSubmissionDeadlineTimestamp(BigInt(epochNumber), this.constants);
238
+ const deadline = getProofSubmissionDeadlineTimestamp(EpochNumber.fromBigInt(BigInt(epochNumber)), this.constants);
228
239
  const oneSlotBefore = deadline - BigInt(this.constants.slotDuration);
229
240
  const date = new Date(Number(oneSlotBefore) * 1000);
230
241
  this.logger.info(`Waiting until last slot of submission window for epoch ${epochNumber} at ${date}`, {
231
242
  oneSlotBefore
232
243
  });
233
- await waitUntilL1Timestamp(this.l1Client, oneSlotBefore);
244
+ // Use a timeout that accounts for the full proof submission window
245
+ const proofSubmissionWindowDuration = this.constants.proofSubmissionEpochs * this.epochDuration * this.L2_SLOT_DURATION_IN_S;
246
+ await waitUntilL1Timestamp(this.l1Client, oneSlotBefore, undefined, proofSubmissionWindowDuration * 2);
234
247
  }
235
248
  /** Waits for the aztec node to sync to the target block number. */ async waitForNodeToSync(blockNumber, type) {
236
249
  const waitTime = ARCHIVER_POLL_INTERVAL + WORLD_STATE_BLOCK_CHECK_INTERVAL;
@@ -248,7 +261,7 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
248
261
  tips
249
262
  });
250
263
  if (type === 'proven') {
251
- synched = tips.proven.number >= blockNumber && syncState.latestBlockNumber >= blockNumber;
264
+ synched = tips.proven.block.number >= blockNumber && syncState.latestBlockNumber >= blockNumber;
252
265
  } else if (type === 'finalized') {
253
266
  synched = syncState.finalizedBlockNumber >= blockNumber;
254
267
  } else {
@@ -267,12 +280,25 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
267
280
  await wallet.registerContract(instance, SpamContract.artifact);
268
281
  return SpamContract.at(instance.address, wallet);
269
282
  }
283
+ /** Registers the TestContract on the given wallet. */ async registerTestContract(wallet, salt = Fr.ZERO) {
284
+ const instance = await getContractInstanceFromInstantiationParams(TestContract.artifact, {
285
+ constructorArgs: [],
286
+ constructorArtifact: undefined,
287
+ salt,
288
+ publicKeys: undefined,
289
+ deployer: undefined
290
+ });
291
+ await wallet.registerContract(instance, TestContract.artifact);
292
+ return TestContract.at(instance.address, wallet);
293
+ }
270
294
  /** Creates an L1 client using a fresh account with funds from anvil, with a tx delayer already set up. */ async createL1Client() {
271
- const { client, delayer } = withDelayer(createExtendedL1Client([
295
+ const rawClient = createExtendedL1Client([
272
296
  ...this.l1Client.chain.rpcUrls.default.http
273
- ], privateKeyToAccount(this.getNextPrivateKey()), this.l1Client.chain), this.context.dateProvider, {
297
+ ], privateKeyToAccount(this.getNextPrivateKey()), this.l1Client.chain);
298
+ const delayer = createDelayer(this.context.dateProvider, {
274
299
  ethereumSlotDuration: this.L1_BLOCK_TIME_IN_S
275
- });
300
+ }, {});
301
+ const client = wrapClientWithDelayer(rawClient, delayer);
276
302
  expect(await client.getBalance({
277
303
  address: client.account.address
278
304
  })).toBeGreaterThan(0n);
@@ -290,14 +316,38 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
290
316
  ]).then((_)=>true).catch((_)=>false);
291
317
  expect(result).toBe(expectedSuccess);
292
318
  }
319
+ /** Verifies at least one checkpoint has the target number of blocks (for MBPS validation). */ async assertMultipleBlocksPerSlot(targetBlockCount) {
320
+ const archiver = this.context.aztecNode.getBlockSource();
321
+ const checkpoints = await archiver.getCheckpoints(CheckpointNumber(1), 50);
322
+ this.logger.warn(`Retrieved ${checkpoints.length} checkpoints from archiver`, {
323
+ checkpoints: checkpoints.map((pc)=>pc.checkpoint.getStats())
324
+ });
325
+ let expectedBlockNumber = checkpoints[0].checkpoint.blocks[0].number;
326
+ let targetFound = false;
327
+ for (const checkpoint of checkpoints){
328
+ const blockCount = checkpoint.checkpoint.blocks.length;
329
+ targetFound = targetFound || blockCount >= targetBlockCount;
330
+ this.logger.verbose(`Checkpoint ${checkpoint.checkpoint.number} has ${blockCount} blocks`, {
331
+ checkpoint: checkpoint.checkpoint.getStats()
332
+ });
333
+ for(let i = 0; i < blockCount; i++){
334
+ const block = checkpoint.checkpoint.blocks[i];
335
+ expect(block.indexWithinCheckpoint).toBe(i);
336
+ expect(block.checkpointNumber).toBe(checkpoint.checkpoint.number);
337
+ expect(block.number).toBe(expectedBlockNumber);
338
+ expectedBlockNumber++;
339
+ }
340
+ }
341
+ expect(targetFound).toBe(true);
342
+ }
293
343
  watchSequencerEvents(sequencers, getMetadata = ()=>({})) {
294
344
  const stateChanges = [];
295
345
  const failEvents = [];
296
- // Note we do not include the 'tx-count-check-failed' event here, since it is fine if we dont build
346
+ // Note we do not include the 'block-tx-count-check-failed' event here, since it is fine if we dont build
297
347
  // due to lack of txs available.
298
348
  const failEventsKeys = [
299
349
  'block-build-failed',
300
- 'block-publish-failed',
350
+ 'checkpoint-publish-failed',
301
351
  'proposer-rollup-check-failed'
302
352
  ];
303
353
  const makeEvent = (i, eventName, args)=>({
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=bridging_race.notest.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdpbmdfcmFjZS5ub3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfZmVlcy9icmlkZ2luZ19yYWNlLm5vdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,6 +1,6 @@
1
1
  import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
2
2
  import { Fr } from '@aztec/aztec.js/fields';
3
- import { Fq } from '@aztec/foundation/fields';
3
+ import { Fq } from '@aztec/foundation/curves/bn254';
4
4
  import { sleep } from '@aztec/foundation/sleep';
5
5
  import { jest } from '@jest/globals';
6
6
  import { FeesTest } from './fees_test.js';
@@ -16,10 +16,8 @@ describe('e2e_fees bridging_race', ()=>{
16
16
  minTxsPerBlock: 0
17
17
  });
18
18
  beforeAll(async ()=>{
19
- await t.applyInitialAccountsSnapshot();
20
- await t.applyPublicDeployAccountsSnapshot();
21
- await t.applySetupFeeJuiceSnapshot();
22
- ({ wallet, logger } = await t.setup());
19
+ await t.setup();
20
+ ({ wallet, logger } = t);
23
21
  });
24
22
  afterAll(async ()=>{
25
23
  await t.teardown();
@@ -45,7 +43,7 @@ describe('e2e_fees bridging_race', ()=>{
45
43
  const origApprove = l1TokenManager.approve.bind(l1TokenManager);
46
44
  l1TokenManager.approve = async (amount, address, addressName = '')=>{
47
45
  await origApprove(amount, address, addressName);
48
- const sleepTime = (Number(t.chainMonitor.l2BlockTimestamp) + AZTEC_SLOT_DURATION) * 1000 - Date.now() - 500;
46
+ const sleepTime = (Number(t.chainMonitor.checkpointTimestamp) + AZTEC_SLOT_DURATION) * 1000 - Date.now() - 500;
49
47
  logger.info(`Sleeping for ${sleepTime}ms until near end of L2 slot before sending L1 fee juice to L2 inbox`);
50
48
  await sleep(sleepTime);
51
49
  };
@@ -56,7 +54,7 @@ describe('e2e_fees bridging_race', ()=>{
56
54
  const { claimSecret: secret, messageLeafIndex: index } = claim;
57
55
  await t.feeJuiceContract.methods.claim(bobsAddress, claim.claimAmount, secret, index).send({
58
56
  from: bobsAddress
59
- }).wait();
57
+ });
60
58
  const [balance] = await t.getGasBalanceFn(bobsAddress);
61
59
  expect(balance).toEqual(claim.claimAmount);
62
60
  });
@@ -2,8 +2,10 @@ import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
2
  import { type Logger } from '@aztec/aztec.js/log';
3
3
  import type { AztecNode } from '@aztec/aztec.js/node';
4
4
  import { CheatCodes } from '@aztec/aztec/testing';
5
- import { type DeployL1ContractsArgs, RollupContract } from '@aztec/ethereum';
5
+ import { RollupContract } from '@aztec/ethereum/contracts';
6
+ import type { DeployAztecL1ContractsArgs } from '@aztec/ethereum/deploy-aztec-l1-contracts';
6
7
  import { ChainMonitor } from '@aztec/ethereum/test';
8
+ import { BlockNumber } from '@aztec/foundation/branded-types';
7
9
  import { EthAddress } from '@aztec/foundation/eth-address';
8
10
  import { AppSubscriptionContract } from '@aztec/noir-contracts.js/AppSubscription';
9
11
  import { FPCContract } from '@aztec/noir-contracts.js/FPC';
@@ -12,12 +14,13 @@ import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
12
14
  import { TokenContract as BananaCoin } from '@aztec/noir-contracts.js/Token';
13
15
  import { CounterContract } from '@aztec/noir-test-contracts.js/Counter';
14
16
  import { GasSettings } from '@aztec/stdlib/gas';
15
- import { TestWallet } from '@aztec/test-wallet/server';
16
- import { type SubsystemsContext } from '../fixtures/snapshot_manager.js';
17
- import { type BalancesFn, type SetupOptions } from '../fixtures/utils.js';
17
+ import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
18
+ import { type EndToEndContext, type SetupOptions } from '../fixtures/setup.js';
19
+ import { type BalancesFn } from '../fixtures/utils.js';
18
20
  import { type GasBridgingTestHarness } from '../shared/gas_portal_test_harness.js';
21
+ import { TestWallet } from '../test-wallet/test_wallet.js';
19
22
  /**
20
- * Test fixture for testing fees. Provides the following snapshots:
23
+ * Test fixture for testing fees. Provides the following setup steps:
21
24
  * InitialAccounts: Initializes 3 Schnorr account contracts.
22
25
  * PublicDeployAccounts: Deploys the accounts publicly.
23
26
  * DeployFeeJuice: Deploys the Fee Juice contract.
@@ -28,10 +31,12 @@ import { type GasBridgingTestHarness } from '../shared/gas_portal_test_harness.j
28
31
  */
29
32
  export declare class FeesTest {
30
33
  private numberOfAccounts;
31
- private snapshotManager;
34
+ private setupOptions;
32
35
  private accounts;
36
+ context: EndToEndContext;
33
37
  logger: Logger;
34
38
  aztecNode: AztecNode;
39
+ aztecNodeAdmin: AztecNodeAdmin;
35
40
  cheatCodes: CheatCodes;
36
41
  wallet: TestWallet;
37
42
  aliceAddress: AztecAddress;
@@ -48,18 +53,17 @@ export declare class FeesTest {
48
53
  counterContract: CounterContract;
49
54
  subscriptionContract: AppSubscriptionContract;
50
55
  feeJuiceBridgeTestHarness: GasBridgingTestHarness;
51
- context: SubsystemsContext;
52
56
  chainMonitor: ChainMonitor;
53
57
  getCoinbaseBalance: () => Promise<bigint>;
54
58
  getCoinbaseSequencerRewards: () => Promise<bigint>;
55
59
  getGasBalanceFn: BalancesFn;
56
60
  getBananaPublicBalanceFn: BalancesFn;
57
61
  getBananaPrivateBalanceFn: BalancesFn;
58
- getProverFee: (blockNumber: number) => Promise<bigint>;
62
+ getProverFee: (blockNumber: BlockNumber) => Promise<bigint>;
59
63
  readonly ALICE_INITIAL_BANANAS: bigint;
60
64
  readonly SUBSCRIPTION_AMOUNT: bigint;
61
65
  readonly APP_SPONSORED_TX_GAS_LIMIT: bigint;
62
- constructor(testName: string, numberOfAccounts?: number, setupOptions?: Partial<SetupOptions & DeployL1ContractsArgs>);
66
+ constructor(testName: string, numberOfAccounts?: number, setupOptions?: Partial<SetupOptions & DeployAztecL1ContractsArgs>);
63
67
  setup(): Promise<this>;
64
68
  teardown(): Promise<void>;
65
69
  setIsMarkingAsProven(b: boolean): void;
@@ -71,14 +75,14 @@ export declare class FeesTest {
71
75
  mintAndBridgeFeeJuice(minter: AztecAddress, recipient: AztecAddress): Promise<void>;
72
76
  /** Alice mints bananaCoin tokens privately to the target address and redeems them. */
73
77
  mintPrivateBananas(amount: bigint, address: AztecAddress): Promise<void>;
74
- applyBaseSnapshots(): Promise<void>;
75
- applyInitialAccountsSnapshot(): Promise<void>;
76
- applyPublicDeployAccountsSnapshot(): Promise<void>;
77
- applySetupFeeJuiceSnapshot(): Promise<void>;
78
- applyDeployBananaTokenSnapshot(): Promise<void>;
79
- applyFPCSetupSnapshot(): Promise<void>;
80
- applySponsoredFPCSetupSnapshot(): Promise<void>;
78
+ applyBaseSetup(): Promise<void>;
79
+ applyInitialAccounts(): Promise<void>;
80
+ applyPublicDeployAccounts(): Promise<void>;
81
+ applySetupFeeJuice(): Promise<void>;
82
+ applyDeployBananaToken(): Promise<void>;
83
+ applyFPCSetup(): Promise<void>;
84
+ applySponsoredFPCSetup(): Promise<void>;
81
85
  applyFundAliceWithBananas(): Promise<void>;
82
86
  applyFundAliceWithPrivateBananas(): Promise<void>;
83
87
  }
84
- //# sourceMappingURL=fees_test.d.ts.map
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlc190ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX2ZlZXMvZmVlc190ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLElBQUksVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUt0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
@@ -1 +1 @@
1
- {"version":3,"file":"fees_test.d.ts","sourceRoot":"","sources":["../../src/e2e_fees/fees_test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fees_test.d.ts","sourceRoot":"","sources":["../../src/e2e_fees/fees_test.ts"],"names":[],"mappings":"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"}