@aztec/end-to-end 0.0.1-commit.2f68f620 → 0.0.1-commit.321f6a9

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 (274) hide show
  1. package/README.md +215 -27
  2. package/dest/automine/automine_test_context.d.ts +85 -0
  3. package/dest/automine/automine_test_context.d.ts.map +1 -0
  4. package/dest/automine/automine_test_context.js +98 -0
  5. package/dest/automine/contracts/fixtures/storage_proof_fetcher.d.ts +2 -0
  6. package/dest/automine/contracts/fixtures/storage_proof_fetcher.d.ts.map +1 -0
  7. package/dest/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fixture.d.ts +1 -1
  8. package/dest/automine/contracts/fixtures/storage_proof_fixture.d.ts.map +1 -0
  9. package/dest/automine/delivery/interactive_handshake_responder.d.ts +48 -0
  10. package/dest/automine/delivery/interactive_handshake_responder.d.ts.map +1 -0
  11. package/dest/automine/delivery/interactive_handshake_responder.js +76 -0
  12. package/dest/automine/delivery/onchain_delivery_harness.d.ts +19 -0
  13. package/dest/automine/delivery/onchain_delivery_harness.d.ts.map +1 -0
  14. package/dest/automine/delivery/onchain_delivery_harness.js +141 -0
  15. package/dest/automine/token/blacklist_token_contract_test.d.ts +49 -0
  16. package/dest/automine/token/blacklist_token_contract_test.d.ts.map +1 -0
  17. package/dest/{e2e_blacklist_token_contract → automine/token}/blacklist_token_contract_test.js +18 -40
  18. package/dest/automine/token/token_contract_test.d.ts +40 -0
  19. package/dest/automine/token/token_contract_test.d.ts.map +1 -0
  20. package/dest/{e2e_token_contract → automine/token}/token_contract_test.js +22 -39
  21. package/dest/automine/token/token_test_helpers.d.ts +73 -0
  22. package/dest/automine/token/token_test_helpers.d.ts.map +1 -0
  23. package/dest/automine/token/token_test_helpers.js +97 -0
  24. package/dest/bench/client_flows/benchmark.d.ts +1 -1
  25. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  26. package/dest/bench/client_flows/benchmark.js +3 -1
  27. package/dest/bench/client_flows/client_flows_benchmark.d.ts +4 -4
  28. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  29. package/dest/bench/client_flows/client_flows_benchmark.js +31 -19
  30. package/dest/bench/client_flows/data_extractor.js +1 -0
  31. package/dest/bench/utils.d.ts +3 -3
  32. package/dest/bench/utils.d.ts.map +1 -1
  33. package/dest/bench/utils.js +95 -6
  34. package/dest/composed/ha/ha_full_setup.d.ts +77 -0
  35. package/dest/composed/ha/ha_full_setup.d.ts.map +1 -0
  36. package/dest/composed/ha/ha_full_setup.js +383 -0
  37. package/dest/composed/web3signer/multi_validator_keystore_utils.d.ts +12 -0
  38. package/dest/composed/web3signer/multi_validator_keystore_utils.d.ts.map +1 -0
  39. package/dest/fixtures/e2e_prover_test.d.ts +12 -9
  40. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  41. package/dest/fixtures/e2e_prover_test.js +48 -28
  42. package/dest/fixtures/fixtures.d.ts +19 -10
  43. package/dest/fixtures/fixtures.d.ts.map +1 -1
  44. package/dest/fixtures/fixtures.js +26 -11
  45. package/dest/fixtures/ha_setup.d.ts +3 -3
  46. package/dest/fixtures/ha_setup.d.ts.map +1 -1
  47. package/dest/fixtures/ha_setup.js +4 -1
  48. package/dest/fixtures/index.d.ts +2 -1
  49. package/dest/fixtures/index.d.ts.map +1 -1
  50. package/dest/fixtures/index.js +1 -0
  51. package/dest/fixtures/setup.d.ts +48 -42
  52. package/dest/fixtures/setup.d.ts.map +1 -1
  53. package/dest/fixtures/setup.js +194 -229
  54. package/dest/fixtures/setup_p2p_test.d.ts +1 -1
  55. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  56. package/dest/fixtures/setup_p2p_test.js +3 -3
  57. package/dest/fixtures/standard_contracts_genesis.d.ts +16 -0
  58. package/dest/fixtures/standard_contracts_genesis.d.ts.map +1 -0
  59. package/dest/fixtures/standard_contracts_genesis.js +25 -0
  60. package/dest/fixtures/timing.d.ts +42 -0
  61. package/dest/fixtures/timing.d.ts.map +1 -0
  62. package/dest/fixtures/timing.js +72 -0
  63. package/dest/fixtures/token_utils.d.ts +22 -4
  64. package/dest/fixtures/token_utils.d.ts.map +1 -1
  65. package/dest/fixtures/token_utils.js +21 -1
  66. package/dest/fixtures/utils.d.ts +2 -2
  67. package/dest/fixtures/utils.d.ts.map +1 -1
  68. package/dest/fixtures/utils.js +1 -1
  69. package/dest/fixtures/wait_helpers.d.ts +135 -0
  70. package/dest/fixtures/wait_helpers.d.ts.map +1 -0
  71. package/dest/fixtures/wait_helpers.js +154 -0
  72. package/dest/forward-compatibility/wallet_service.js +3 -3
  73. package/dest/multi-node/block-production/setup.d.ts +97 -0
  74. package/dest/multi-node/block-production/setup.d.ts.map +1 -0
  75. package/dest/multi-node/block-production/setup.js +158 -0
  76. package/dest/multi-node/governance/setup.d.ts +67 -0
  77. package/dest/multi-node/governance/setup.d.ts.map +1 -0
  78. package/dest/multi-node/governance/setup.js +126 -0
  79. package/dest/multi-node/multi_node_test_context.d.ts +212 -0
  80. package/dest/multi-node/multi_node_test_context.d.ts.map +1 -0
  81. package/dest/multi-node/multi_node_test_context.js +347 -0
  82. package/dest/multi-node/slashing/inactivity_setup.d.ts +27 -0
  83. package/dest/multi-node/slashing/inactivity_setup.d.ts.map +1 -0
  84. package/dest/multi-node/slashing/inactivity_setup.js +111 -0
  85. package/dest/multi-node/slashing/setup.d.ts +167 -0
  86. package/dest/multi-node/slashing/setup.d.ts.map +1 -0
  87. package/dest/multi-node/slashing/setup.js +275 -0
  88. package/dest/{e2e_p2p → p2p}/p2p_network.d.ts +10 -2
  89. package/dest/p2p/p2p_network.d.ts.map +1 -0
  90. package/dest/{e2e_p2p → p2p}/p2p_network.js +41 -16
  91. package/dest/p2p/reqresp/utils.d.ts +19 -0
  92. package/dest/p2p/reqresp/utils.d.ts.map +1 -0
  93. package/dest/{e2e_p2p → p2p}/reqresp/utils.js +4 -17
  94. package/dest/p2p/shared.d.ts +72 -0
  95. package/dest/p2p/shared.d.ts.map +1 -0
  96. package/dest/p2p/shared.js +212 -0
  97. package/dest/shared/cross_chain_test_harness.d.ts +3 -3
  98. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  99. package/dest/shared/cross_chain_test_harness.js +24 -16
  100. package/dest/shared/gas_portal_test_harness.d.ts +1 -1
  101. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  102. package/dest/shared/gas_portal_test_harness.js +8 -5
  103. package/dest/shared/submit-transactions.d.ts +1 -1
  104. package/dest/shared/submit-transactions.d.ts.map +1 -1
  105. package/dest/shared/submit-transactions.js +12 -5
  106. package/dest/shared/timing_env.d.js +5 -0
  107. package/dest/shared/timing_env.js +365 -0
  108. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  109. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  110. package/dest/shared/uniswap_l1_l2.js +1 -6
  111. package/dest/shared/wait_for_l1_to_l2_message.js +1 -1
  112. package/dest/simulators/lending_simulator.js +1 -1
  113. package/dest/single-node/cross-chain/cross_chain_messaging_test.d.ts +75 -0
  114. package/dest/single-node/cross-chain/cross_chain_messaging_test.d.ts.map +1 -0
  115. package/dest/single-node/cross-chain/cross_chain_messaging_test.js +209 -0
  116. package/dest/single-node/cross-chain/message_test_helpers.d.ts +38 -0
  117. package/dest/single-node/cross-chain/message_test_helpers.d.ts.map +1 -0
  118. package/dest/single-node/cross-chain/message_test_helpers.js +70 -0
  119. package/dest/{e2e_fees → single-node/fees}/bridging_race.notest.d.ts +1 -1
  120. package/dest/single-node/fees/bridging_race.notest.d.ts.map +1 -0
  121. package/dest/{e2e_fees → single-node/fees}/bridging_race.notest.js +17 -4
  122. package/dest/single-node/fees/fees_test.d.ts +95 -0
  123. package/dest/single-node/fees/fees_test.d.ts.map +1 -0
  124. package/dest/{e2e_fees → single-node/fees}/fees_test.js +126 -60
  125. package/dest/single-node/l1-reorgs/setup.d.ts +42 -0
  126. package/dest/single-node/l1-reorgs/setup.d.ts.map +1 -0
  127. package/dest/single-node/l1-reorgs/setup.js +57 -0
  128. package/dest/single-node/partial-proofs/setup.d.ts +5 -0
  129. package/dest/single-node/partial-proofs/setup.d.ts.map +1 -0
  130. package/dest/single-node/partial-proofs/setup.js +5 -0
  131. package/dest/single-node/proving/setup.d.ts +5 -0
  132. package/dest/single-node/proving/setup.d.ts.map +1 -0
  133. package/dest/single-node/proving/setup.js +5 -0
  134. package/dest/single-node/recovery/setup.d.ts +5 -0
  135. package/dest/single-node/recovery/setup.d.ts.map +1 -0
  136. package/dest/single-node/recovery/setup.js +5 -0
  137. package/dest/single-node/setup.d.ts +49 -0
  138. package/dest/single-node/setup.d.ts.map +1 -0
  139. package/dest/single-node/setup.js +56 -0
  140. package/dest/single-node/single_node_test_context.d.ts +374 -0
  141. package/dest/single-node/single_node_test_context.d.ts.map +1 -0
  142. package/dest/single-node/single_node_test_context.js +847 -0
  143. package/dest/spartan/setup_test_wallets.d.ts +1 -1
  144. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  145. package/dest/spartan/setup_test_wallets.js +19 -9
  146. package/dest/spartan/tx_metrics.d.ts +10 -1
  147. package/dest/spartan/tx_metrics.d.ts.map +1 -1
  148. package/dest/spartan/tx_metrics.js +32 -0
  149. package/dest/test-wallet/test_wallet.d.ts +23 -3
  150. package/dest/test-wallet/test_wallet.d.ts.map +1 -1
  151. package/dest/test-wallet/test_wallet.js +56 -9
  152. package/dest/test-wallet/utils.d.ts +36 -1
  153. package/dest/test-wallet/utils.d.ts.map +1 -1
  154. package/dest/test-wallet/utils.js +64 -4
  155. package/dest/test-wallet/wallet_worker_script.js +5 -2
  156. package/dest/test-wallet/worker_wallet.d.ts +5 -5
  157. package/dest/test-wallet/worker_wallet.d.ts.map +1 -1
  158. package/dest/test-wallet/worker_wallet.js +5 -3
  159. package/dest/test-wallet/worker_wallet_schema.d.ts +3 -159
  160. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -1
  161. package/dest/test-wallet/worker_wallet_schema.js +2 -1
  162. package/package.json +41 -41
  163. package/src/automine/README.md +60 -0
  164. package/src/automine/automine_test_context.ts +153 -0
  165. package/src/automine/delivery/interactive_handshake_responder.ts +125 -0
  166. package/src/automine/delivery/onchain_delivery_harness.ts +213 -0
  167. package/src/{e2e_blacklist_token_contract → automine/token}/blacklist_token_contract_test.ts +20 -57
  168. package/src/{e2e_token_contract → automine/token}/token_contract_test.ts +24 -57
  169. package/src/automine/token/token_test_helpers.ts +138 -0
  170. package/src/bench/client_flows/benchmark.ts +3 -1
  171. package/src/bench/client_flows/client_flows_benchmark.ts +45 -26
  172. package/src/bench/client_flows/data_extractor.ts +1 -0
  173. package/src/bench/utils.ts +109 -6
  174. package/src/composed/ha/ha_full_setup.ts +466 -0
  175. package/src/fixtures/e2e_prover_test.ts +60 -47
  176. package/src/fixtures/fixtures.ts +28 -11
  177. package/src/fixtures/ha_setup.ts +7 -3
  178. package/src/fixtures/index.ts +1 -0
  179. package/src/fixtures/setup.ts +245 -290
  180. package/src/fixtures/setup_p2p_test.ts +3 -3
  181. package/src/fixtures/standard_contracts_genesis.ts +28 -0
  182. package/src/fixtures/timing.ts +97 -0
  183. package/src/fixtures/token_utils.ts +39 -4
  184. package/src/fixtures/utils.ts +0 -3
  185. package/src/fixtures/wait_helpers.ts +333 -0
  186. package/src/forward-compatibility/wallet_service.ts +6 -4
  187. package/src/guides/up_quick_start.sh +5 -0
  188. package/src/infra/README.md +12 -0
  189. package/src/multi-node/README.md +96 -0
  190. package/src/multi-node/block-production/setup.ts +272 -0
  191. package/src/multi-node/governance/setup.ts +172 -0
  192. package/src/multi-node/multi_node_test_context.ts +447 -0
  193. package/src/multi-node/slashing/inactivity_setup.ts +139 -0
  194. package/src/multi-node/slashing/setup.ts +433 -0
  195. package/src/p2p/README.md +78 -0
  196. package/src/{e2e_p2p → p2p}/p2p_network.ts +40 -13
  197. package/src/{e2e_p2p → p2p}/reqresp/utils.ts +5 -16
  198. package/src/p2p/shared.ts +329 -0
  199. package/src/shared/cross_chain_test_harness.ts +22 -13
  200. package/src/shared/gas_portal_test_harness.ts +13 -5
  201. package/src/shared/submit-transactions.ts +13 -5
  202. package/src/shared/timing_env.d.mts +39 -0
  203. package/src/shared/timing_env.mjs +363 -0
  204. package/src/shared/uniswap_l1_l2.ts +1 -8
  205. package/src/shared/wait_for_l1_to_l2_message.ts +1 -1
  206. package/src/simulators/lending_simulator.ts +1 -1
  207. package/src/single-node/README.md +66 -0
  208. package/src/single-node/cross-chain/cross_chain_messaging_test.ts +302 -0
  209. package/src/single-node/cross-chain/message_test_helpers.ts +125 -0
  210. package/src/{e2e_fees → single-node/fees}/bridging_race.notest.ts +19 -5
  211. package/src/{e2e_fees → single-node/fees}/fees_test.ts +143 -70
  212. package/src/single-node/l1-reorgs/setup.ts +93 -0
  213. package/src/single-node/partial-proofs/setup.ts +8 -0
  214. package/src/single-node/proving/setup.ts +15 -0
  215. package/src/single-node/recovery/setup.ts +8 -0
  216. package/src/single-node/setup.ts +63 -0
  217. package/src/single-node/single_node_test_context.ts +1058 -0
  218. package/src/spartan/setup_test_wallets.ts +24 -9
  219. package/src/spartan/tx_metrics.ts +26 -0
  220. package/src/test-wallet/test_wallet.ts +60 -10
  221. package/src/test-wallet/utils.ts +102 -5
  222. package/src/test-wallet/wallet_worker_script.ts +6 -3
  223. package/src/test-wallet/worker_wallet.ts +10 -12
  224. package/src/test-wallet/worker_wallet_schema.ts +3 -2
  225. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +0 -56
  226. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +0 -1
  227. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +0 -58
  228. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +0 -1
  229. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +0 -161
  230. package/dest/e2e_deploy_contract/deploy_test.d.ts +0 -37
  231. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +0 -1
  232. package/dest/e2e_deploy_contract/deploy_test.js +0 -51
  233. package/dest/e2e_epochs/epochs_test.d.ts +0 -125
  234. package/dest/e2e_epochs/epochs_test.d.ts.map +0 -1
  235. package/dest/e2e_epochs/epochs_test.js +0 -460
  236. package/dest/e2e_fees/bridging_race.notest.d.ts.map +0 -1
  237. package/dest/e2e_fees/fees_test.d.ts +0 -91
  238. package/dest/e2e_fees/fees_test.d.ts.map +0 -1
  239. package/dest/e2e_l1_publisher/write_json.d.ts +0 -11
  240. package/dest/e2e_l1_publisher/write_json.d.ts.map +0 -1
  241. package/dest/e2e_l1_publisher/write_json.js +0 -56
  242. package/dest/e2e_multi_validator/utils.d.ts +0 -12
  243. package/dest/e2e_multi_validator/utils.d.ts.map +0 -1
  244. package/dest/e2e_nested_contract/nested_contract_test.d.ts +0 -26
  245. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +0 -1
  246. package/dest/e2e_nested_contract/nested_contract_test.js +0 -55
  247. package/dest/e2e_p2p/inactivity_slash_test.d.ts +0 -31
  248. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +0 -1
  249. package/dest/e2e_p2p/inactivity_slash_test.js +0 -137
  250. package/dest/e2e_p2p/p2p_network.d.ts.map +0 -1
  251. package/dest/e2e_p2p/reqresp/utils.d.ts +0 -22
  252. package/dest/e2e_p2p/reqresp/utils.d.ts.map +0 -1
  253. package/dest/e2e_p2p/shared.d.ts +0 -75
  254. package/dest/e2e_p2p/shared.d.ts.map +0 -1
  255. package/dest/e2e_p2p/shared.js +0 -217
  256. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +0 -2
  257. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +0 -1
  258. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +0 -1
  259. package/dest/e2e_token_contract/token_contract_test.d.ts +0 -44
  260. package/dest/e2e_token_contract/token_contract_test.d.ts.map +0 -1
  261. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +0 -231
  262. package/src/e2e_deploy_contract/deploy_test.ts +0 -86
  263. package/src/e2e_epochs/epochs_test.ts +0 -575
  264. package/src/e2e_l1_publisher/write_json.ts +0 -77
  265. package/src/e2e_nested_contract/nested_contract_test.ts +0 -77
  266. package/src/e2e_p2p/inactivity_slash_test.ts +0 -180
  267. package/src/e2e_p2p/shared.ts +0 -332
  268. /package/dest/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fetcher.js +0 -0
  269. /package/dest/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fixture.js +0 -0
  270. /package/dest/{e2e_multi_validator/utils.js → composed/web3signer/multi_validator_keystore_utils.js} +0 -0
  271. /package/src/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof.json +0 -0
  272. /package/src/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fetcher.ts +0 -0
  273. /package/src/{e2e_storage_proof → automine/contracts}/fixtures/storage_proof_fixture.ts +0 -0
  274. /package/src/{e2e_multi_validator/utils.ts → composed/web3signer/multi_validator_keystore_utils.ts} +0 -0
@@ -1,460 +0,0 @@
1
- import { AztecNodeService } from '@aztec/aztec-node';
2
- import { getAccountContractAddress } from '@aztec/aztec.js/account';
3
- import { getTimestampRangeForEpoch } from '@aztec/aztec.js/block';
4
- import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/contracts';
5
- import { Fr } from '@aztec/aztec.js/fields';
6
- import { MerkleTreeId } from '@aztec/aztec.js/trees';
7
- import { EpochCache } from '@aztec/epoch-cache';
8
- import { createExtendedL1Client } from '@aztec/ethereum/client';
9
- import { DefaultL1ContractsConfig } from '@aztec/ethereum/config';
10
- import { RollupContract } from '@aztec/ethereum/contracts';
11
- import { createDelayer, waitUntilL1Timestamp, wrapClientWithDelayer } from '@aztec/ethereum/l1-tx-utils';
12
- import { ChainMonitor } from '@aztec/ethereum/test';
13
- import { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
14
- import { SecretValue } from '@aztec/foundation/config';
15
- import { randomBytes } from '@aztec/foundation/crypto/random';
16
- import { withLoggerBindings } from '@aztec/foundation/log/server';
17
- import { retryUntil } from '@aztec/foundation/retry';
18
- import { sleep } from '@aztec/foundation/sleep';
19
- import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
20
- import { TestContract } from '@aztec/noir-test-contracts.js/Test';
21
- import { getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
22
- import { SequencerState } from '@aztec/sequencer-client';
23
- import { EthAddress } from '@aztec/stdlib/block';
24
- import { getProofSubmissionDeadlineTimestamp } from '@aztec/stdlib/epoch-helpers';
25
- import { tryStop } from '@aztec/stdlib/interfaces/server';
26
- import { join } from 'path';
27
- import { privateKeyToAccount } from 'viem/accounts';
28
- import { SCHNORR_HARDCODED_PRIVATE_KEY, SchnorrHardcodedKeyAccountContract } from '../fixtures/schnorr_hardcoded_account_contract.js';
29
- import { createAndSyncProverNode, getPrivateKeyFromIndex, setup } from '../fixtures/utils.js';
30
- export const WORLD_STATE_CHECKPOINT_HISTORY = 2;
31
- export const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
32
- export const ARCHIVER_POLL_INTERVAL = 50;
33
- export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
34
- /**
35
- * Tests building of epochs using fast block times and short epochs.
36
- * Spawns an aztec node and a prover node with fake proofs.
37
- * Sequencer is allowed to build empty blocks.
38
- */ export class EpochsTestContext {
39
- context;
40
- l1Client;
41
- rollup;
42
- constants;
43
- logger;
44
- monitor;
45
- epochCache;
46
- proverDelayer;
47
- sequencerDelayer;
48
- proverNodes = [];
49
- nodes = [];
50
- epochDuration;
51
- L1_BLOCK_TIME_IN_S;
52
- L2_SLOT_DURATION_IN_S;
53
- static async setup(opts = {}) {
54
- const test = new EpochsTestContext();
55
- await test.setup(opts);
56
- return test;
57
- }
58
- static getSlotDurations(opts = {}) {
59
- const envEthereumSlotDuration = process.env.L1_BLOCK_TIME ? parseInt(process.env.L1_BLOCK_TIME) : DEFAULT_L1_BLOCK_TIME;
60
- const ethereumSlotDuration = opts.ethereumSlotDuration ?? envEthereumSlotDuration;
61
- const aztecSlotDuration = opts.aztecSlotDuration ?? (opts.aztecSlotDurationInL1Slots ?? 2) * ethereumSlotDuration;
62
- const aztecEpochDuration = opts.aztecEpochDuration ?? 6;
63
- const aztecProofSubmissionEpochs = opts.aztecProofSubmissionEpochs ?? 1;
64
- const l1PublishingTime = opts.l1PublishingTime ?? 1;
65
- return {
66
- l1PublishingTime,
67
- ethereumSlotDuration,
68
- aztecSlotDuration,
69
- aztecEpochDuration,
70
- aztecProofSubmissionEpochs
71
- };
72
- }
73
- async setup(opts = {}) {
74
- const { ethereumSlotDuration, aztecSlotDuration, aztecEpochDuration, aztecProofSubmissionEpochs, l1PublishingTime } = EpochsTestContext.getSlotDurations(opts);
75
- this.L1_BLOCK_TIME_IN_S = ethereumSlotDuration;
76
- this.L2_SLOT_DURATION_IN_S = aztecSlotDuration;
77
- // Auto-create a hardcoded account funded via genesis when:
78
- // - skipInitialSequencer is set (no sequencer to deploy on-chain), or
79
- // - useHardcodedAccount is explicitly requested (e.g. tight per-block gas budgets that
80
- // can't fit a full account-deploy tx).
81
- const useHardcodedAccount = (opts.skipInitialSequencer || opts.useHardcodedAccount) && !opts.skipHardcodedAccount;
82
- let hardcodedAccountData;
83
- if (useHardcodedAccount) {
84
- hardcodedAccountData = await EpochsTestContext.getHardcodedAccountData(Fr.random(), Fr.random());
85
- }
86
- // Set up system without any account nor protocol contracts
87
- // and with faster block times and shorter epochs.
88
- const context = await setup(useHardcodedAccount ? 0 : opts.numberOfAccounts ?? 0, {
89
- automineL1Setup: true,
90
- checkIntervalMs: 50,
91
- archiverPollingIntervalMS: ARCHIVER_POLL_INTERVAL,
92
- worldStateBlockCheckIntervalMS: WORLD_STATE_BLOCK_CHECK_INTERVAL,
93
- aztecEpochDuration,
94
- aztecSlotDuration,
95
- ethereumSlotDuration,
96
- aztecProofSubmissionEpochs,
97
- aztecTargetCommitteeSize: opts.initialValidators?.length ?? 0,
98
- minTxsPerBlock: 0,
99
- realProofs: false,
100
- startProverNode: true,
101
- proverTestDelayMs: opts.proverTestDelayMs ?? 0,
102
- proverId: EthAddress.fromNumber(1),
103
- worldStateCheckpointHistory: WORLD_STATE_CHECKPOINT_HISTORY,
104
- exitDelaySeconds: DefaultL1ContractsConfig.exitDelaySeconds,
105
- slasherEnabled: false,
106
- l1PublishingTime,
107
- ...opts,
108
- ...hardcodedAccountData ? {
109
- initialFundedAccounts: [
110
- hardcodedAccountData
111
- ],
112
- numberOfAccounts: 0
113
- } : {}
114
- }, // Use checkpointed chain tip for PXE by default to avoid issues with blocks being dropped due to pruned anchor blocks.
115
- // Can be overridden via opts.pxeOpts.
116
- {
117
- syncChainTip: 'checkpointed',
118
- ...opts.pxeOpts
119
- });
120
- this.context = context;
121
- // Register the hardcoded account in PXE (local only, no on-chain deployment needed).
122
- if (hardcodedAccountData) {
123
- await this.registerHardcodedAccount(hardcodedAccountData);
124
- }
125
- this.proverNodes = context.proverNode ? [
126
- context.proverNode
127
- ] : [];
128
- this.nodes = context.aztecNode ? [
129
- context.aztecNode
130
- ] : [];
131
- this.logger = context.logger;
132
- this.l1Client = context.deployL1ContractsValues.l1Client;
133
- this.rollup = RollupContract.getFromConfig(context.config);
134
- this.epochCache = await EpochCache.create(this.rollup, context.config, {
135
- dateProvider: context.dateProvider
136
- });
137
- // Loop that tracks L1 and L2 block numbers and logs whenever there's a new one.
138
- this.monitor = new ChainMonitor(this.rollup, context.dateProvider, this.logger).start();
139
- this.proverDelayer = context.proverDelayer;
140
- this.sequencerDelayer = context.sequencerDelayer;
141
- if (context.proverNode && !this.proverDelayer || context.sequencer && !this.sequencerDelayer) {
142
- throw new Error(`Could not find prover or sequencer delayer`);
143
- }
144
- // Constants used for time calculation
145
- this.epochDuration = aztecEpochDuration;
146
- this.constants = {
147
- epochDuration: aztecEpochDuration,
148
- slotDuration: aztecSlotDuration,
149
- l1StartBlock: await this.rollup.getL1StartBlock(),
150
- l1GenesisTime: await this.rollup.getL1GenesisTime(),
151
- ethereumSlotDuration,
152
- proofSubmissionEpochs: Number(await this.rollup.getProofSubmissionEpochs()),
153
- targetCommitteeSize: await this.rollup.getTargetCommitteeSize(),
154
- rollupManaLimit: Number(await this.rollup.getManaLimit())
155
- };
156
- this.logger.info(`L2 genesis at L1 block ${this.constants.l1StartBlock} (timestamp ${this.constants.l1GenesisTime})`);
157
- }
158
- async teardown() {
159
- await this.monitor.stop();
160
- await Promise.all(this.proverNodes.map((node)=>tryStop(node, this.logger)));
161
- await Promise.all(this.nodes.map((node)=>tryStop(node, this.logger)));
162
- await this.context.teardown();
163
- }
164
- /**
165
- * Computes InitialAccountData for a SchnorrHardcodedKeyAccountContract.
166
- * This contract has a hardcoded signing key and no initializer, so it can be used without
167
- * on-chain deployment. Pass the returned data in `initialFundedAccounts` so the address
168
- * gets funded with fee juice in genesis.
169
- */ static async getHardcodedAccountData(secret, salt) {
170
- const contract = new SchnorrHardcodedKeyAccountContract();
171
- const address = await getAccountContractAddress(contract, secret, salt);
172
- const signingKey = SCHNORR_HARDCODED_PRIVATE_KEY;
173
- return {
174
- secret,
175
- salt,
176
- signingKey,
177
- address
178
- };
179
- }
180
- /**
181
- * Registers a SchnorrHardcodedKeyAccountContract in PXE. The account must have been funded
182
- * at genesis (via getHardcodedAccountData). No on-chain deployment or block mining needed.
183
- */ async registerHardcodedAccount(accountData) {
184
- const contract = new SchnorrHardcodedKeyAccountContract();
185
- const wallet = this.context.wallet;
186
- const accountManager = await wallet.createAccount({
187
- secret: accountData.secret,
188
- salt: accountData.salt,
189
- contract
190
- });
191
- this.context.accounts = [
192
- accountManager.address
193
- ];
194
- return accountManager.address;
195
- }
196
- async createProverNode(opts = {}) {
197
- this.logger.warn('Creating and syncing a simulated prover node...');
198
- const proverNodePrivateKey = this.getNextPrivateKey();
199
- const proverIndex = this.proverNodes.length + 1;
200
- const { mockGossipSubNetwork } = this.context;
201
- const { proverNode } = await withLoggerBindings({
202
- actor: `prover-${proverIndex}`
203
- }, ()=>createAndSyncProverNode(proverNodePrivateKey, {
204
- ...this.context.config,
205
- p2pEnabled: this.context.config.p2pEnabled || mockGossipSubNetwork !== undefined,
206
- proverId: EthAddress.fromNumber(proverIndex),
207
- dontStart: opts.dontStart,
208
- ...opts
209
- }, {
210
- dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex'))
211
- }, {
212
- dateProvider: this.context.dateProvider,
213
- p2pClientDeps: {
214
- p2pServiceFactory: mockGossipSubNetwork ? getMockPubSubP2PServiceFactory(mockGossipSubNetwork) : undefined,
215
- rpcTxProviders: [
216
- this.context.aztecNode
217
- ]
218
- }
219
- }, {
220
- genesis: this.context.genesis,
221
- dontStart: opts.dontStart
222
- }));
223
- this.proverNodes.push(proverNode);
224
- return proverNode;
225
- }
226
- createNonValidatorNode(opts = {}) {
227
- this.logger.warn('Creating and syncing a node without a validator...');
228
- return this.createNode({
229
- ...opts,
230
- disableValidator: true
231
- });
232
- }
233
- createValidatorNode(privateKeys, opts = {}) {
234
- this.logger.warn('Creating and syncing a validator node...');
235
- return this.createNode({
236
- ...opts,
237
- disableValidator: false,
238
- validatorPrivateKeys: new SecretValue(privateKeys)
239
- });
240
- }
241
- async createNode(opts = {}) {
242
- const nodeIndex = this.nodes.length + 1;
243
- const actorPrefix = opts.disableValidator ? 'node' : 'validator';
244
- const { mockGossipSubNetwork } = this.context;
245
- const resolvedConfig = {
246
- ...this.context.config,
247
- ...opts
248
- };
249
- const p2pEnabled = resolvedConfig.p2pEnabled || mockGossipSubNetwork !== undefined;
250
- const p2pIp = resolvedConfig.p2pIp ?? (p2pEnabled ? '127.0.0.1' : undefined);
251
- const node = await withLoggerBindings({
252
- actor: `${actorPrefix}-${nodeIndex}`
253
- }, ()=>AztecNodeService.createAndSync({
254
- ...resolvedConfig,
255
- dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex')),
256
- validatorPrivateKeys: opts.validatorPrivateKeys ?? new SecretValue([]),
257
- nodeId: resolvedConfig.nodeId || `${actorPrefix}-${nodeIndex}`,
258
- p2pEnabled,
259
- p2pIp
260
- }, {
261
- dateProvider: this.context.dateProvider,
262
- p2pClientDeps: {
263
- p2pServiceFactory: mockGossipSubNetwork ? getMockPubSubP2PServiceFactory(mockGossipSubNetwork) : undefined
264
- },
265
- slashingProtectionDb: opts.slashingProtectionDb
266
- }, {
267
- genesis: this.context.genesis,
268
- ...opts
269
- }));
270
- this.nodes.push(node);
271
- return node;
272
- }
273
- getNextPrivateKey() {
274
- const key = getPrivateKeyFromIndex(this.nodes.length + this.proverNodes.length + 1);
275
- return `0x${key.toString('hex')}`;
276
- }
277
- /** Waits until the epoch begins (ie until the immediately previous L1 block is mined). */ async waitUntilEpochStarts(epoch) {
278
- const [start] = getTimestampRangeForEpoch(EpochNumber(epoch), this.constants);
279
- this.logger.info(`Waiting until L1 timestamp ${start} is reached as the start of epoch ${epoch}`);
280
- await waitUntilL1Timestamp(this.l1Client, start - BigInt(this.L1_BLOCK_TIME_IN_S), undefined, 30 * this.epochDuration);
281
- return start;
282
- }
283
- /** Waits until the given checkpoint number is mined. */ async waitUntilCheckpointNumber(target, timeout = 120) {
284
- await retryUntil(()=>Promise.resolve(target <= this.monitor.checkpointNumber), `Wait until checkpoint ${target}`, timeout, 0.1);
285
- }
286
- /** Waits until the given checkpoint number is marked as proven. */ async waitUntilProvenCheckpointNumber(target, timeout = 120) {
287
- await retryUntil(()=>Promise.resolve(target <= this.monitor.provenCheckpointNumber), `Wait proven checkpoint ${target}`, timeout, 0.1);
288
- return this.monitor.provenCheckpointNumber;
289
- }
290
- /** Waits until the last slot of the proof submission window for a given epoch. */ async waitUntilLastSlotOfProofSubmissionWindow(epochNumber) {
291
- const deadline = getProofSubmissionDeadlineTimestamp(EpochNumber.fromBigInt(BigInt(epochNumber)), this.constants);
292
- const oneSlotBefore = deadline - BigInt(this.constants.slotDuration);
293
- const date = new Date(Number(oneSlotBefore) * 1000);
294
- this.logger.info(`Waiting until last slot of submission window for epoch ${epochNumber} at ${date}`, {
295
- oneSlotBefore
296
- });
297
- // Use a timeout that accounts for the full proof submission window
298
- const proofSubmissionWindowDuration = this.constants.proofSubmissionEpochs * this.epochDuration * this.L2_SLOT_DURATION_IN_S;
299
- await waitUntilL1Timestamp(this.l1Client, oneSlotBefore, undefined, proofSubmissionWindowDuration * 2);
300
- }
301
- /** Waits for the aztec node to sync to the target block number. */ async waitForNodeToSync(blockNumber, type) {
302
- const waitTime = ARCHIVER_POLL_INTERVAL + WORLD_STATE_BLOCK_CHECK_INTERVAL;
303
- let synched = false;
304
- while(!synched){
305
- await sleep(waitTime);
306
- const [syncState, tips] = await Promise.all([
307
- this.context.aztecNode.getWorldStateSyncStatus(),
308
- await this.context.aztecNode.getChainTips()
309
- ]);
310
- this.logger.info(`Wait for node synch ${blockNumber} ${type}`, {
311
- blockNumber,
312
- type,
313
- syncState,
314
- tips
315
- });
316
- if (type === 'proven') {
317
- synched = tips.proven.block.number >= blockNumber && syncState.latestBlockNumber >= blockNumber;
318
- } else if (type === 'finalized') {
319
- synched = syncState.finalizedBlockNumber >= blockNumber;
320
- } else {
321
- synched = syncState.oldestHistoricBlockNumber >= blockNumber;
322
- }
323
- }
324
- }
325
- /** Registers the SpamContract on the given wallet. */ async registerSpamContract(wallet, salt = Fr.ZERO) {
326
- const instance = await getContractInstanceFromInstantiationParams(SpamContract.artifact, {
327
- constructorArgs: [],
328
- constructorArtifact: undefined,
329
- salt,
330
- publicKeys: undefined,
331
- deployer: undefined
332
- });
333
- await wallet.registerContract(instance, SpamContract.artifact);
334
- return SpamContract.at(instance.address, wallet);
335
- }
336
- /** Registers the TestContract on the given wallet. */ async registerTestContract(wallet, salt = Fr.ZERO) {
337
- const instance = await getContractInstanceFromInstantiationParams(TestContract.artifact, {
338
- constructorArgs: [],
339
- constructorArtifact: undefined,
340
- salt,
341
- publicKeys: undefined,
342
- deployer: undefined
343
- });
344
- await wallet.registerContract(instance, TestContract.artifact);
345
- return TestContract.at(instance.address, wallet);
346
- }
347
- /** Creates an L1 client using a fresh account with funds from anvil, with a tx delayer already set up. */ async createL1Client() {
348
- const rawClient = createExtendedL1Client([
349
- ...this.l1Client.chain.rpcUrls.default.http
350
- ], privateKeyToAccount(this.getNextPrivateKey()), this.l1Client.chain);
351
- const delayer = createDelayer(this.context.dateProvider, {
352
- ethereumSlotDuration: this.L1_BLOCK_TIME_IN_S
353
- }, {});
354
- const client = wrapClientWithDelayer(rawClient, delayer);
355
- expect(await client.getBalance({
356
- address: client.account.address
357
- })).toBeGreaterThan(0n);
358
- return {
359
- client,
360
- delayer
361
- };
362
- }
363
- /** Verifies whether the given block number is found on the aztec node. */ async verifyHistoricBlock(blockNumber, expectedSuccess) {
364
- // We use `findLeavesIndexes` here, but could use any function that queries the world-state
365
- // at a particular block, so we know whether that historic block is available or has been
366
- // pruned. Note that `getBlock` would not work here, since it only hits the archiver.
367
- const result = await this.context.aztecNode.findLeavesIndexes(blockNumber, MerkleTreeId.NULLIFIER_TREE, [
368
- Fr.ZERO
369
- ]).then((_)=>true).catch((_)=>false);
370
- expect(result).toBe(expectedSuccess);
371
- }
372
- /** Verifies at least one checkpoint has the target number of blocks (for MBPS validation). */ async assertMultipleBlocksPerSlot(targetBlockCount) {
373
- const archiver = this.context.aztecNode.getBlockSource();
374
- const checkpoints = await archiver.getCheckpoints({
375
- from: CheckpointNumber(1),
376
- limit: 50
377
- });
378
- this.logger.warn(`Retrieved ${checkpoints.length} checkpoints from archiver`, {
379
- checkpoints: checkpoints.map((pc)=>pc.checkpoint.getStats())
380
- });
381
- let expectedBlockNumber = checkpoints[0].checkpoint.blocks[0].number;
382
- let targetFound = false;
383
- for (const checkpoint of checkpoints){
384
- const blockCount = checkpoint.checkpoint.blocks.length;
385
- targetFound = targetFound || blockCount >= targetBlockCount;
386
- this.logger.verbose(`Checkpoint ${checkpoint.checkpoint.number} has ${blockCount} blocks`, {
387
- checkpoint: checkpoint.checkpoint.getStats()
388
- });
389
- for(let i = 0; i < blockCount; i++){
390
- const block = checkpoint.checkpoint.blocks[i];
391
- expect(block.indexWithinCheckpoint).toBe(i);
392
- expect(block.checkpointNumber).toBe(checkpoint.checkpoint.number);
393
- expect(block.number).toBe(expectedBlockNumber);
394
- expectedBlockNumber++;
395
- }
396
- }
397
- expect(targetFound).toBe(true);
398
- }
399
- watchSequencerEvents(sequencers, getMetadata = ()=>({}), additionalFailEventKeys = []) {
400
- const stateChanges = [];
401
- const failEvents = [];
402
- // Note we do not include the 'block-tx-count-check-failed' event here, since it is fine if we dont build
403
- // due to lack of txs available.
404
- const failEventsKeys = [
405
- 'block-build-failed',
406
- 'checkpoint-publish-failed',
407
- 'proposer-rollup-check-failed',
408
- 'checkpoint-error',
409
- 'checkpoint-publish-failed',
410
- 'header-validation-failed',
411
- 'pipelined-checkpoint-discarded',
412
- ...additionalFailEventKeys
413
- ];
414
- const makeEvent = (i, eventName, args)=>({
415
- ...args,
416
- type: eventName,
417
- sequencerIndex: i + 2,
418
- ...getMetadata(i)
419
- });
420
- sequencers.forEach((sequencer, i)=>{
421
- const sequencerIndex = i + 2;
422
- sequencer.getSequencer().on('state-changed', (args)=>{
423
- const noisyStates = [
424
- SequencerState.IDLE,
425
- SequencerState.PROPOSER_CHECK,
426
- SequencerState.SYNCHRONIZING
427
- ];
428
- if (!noisyStates.includes(args.newState)) {
429
- const evt = makeEvent(i, 'state-changed', args);
430
- stateChanges.push(evt);
431
- this.logger.verbose(`Sequencer ${sequencerIndex} transitioned from state ${args.oldState} to state ${args.newState}`, evt);
432
- }
433
- });
434
- failEventsKeys.forEach((eventName)=>{
435
- sequencer.getSequencer().on(eventName, (args)=>{
436
- // Skip benign block-build-failed events where the builder rejected the block because it
437
- // could not collect enough valid txs. This is the same "not enough txs" case as
438
- // block-tx-count-check-failed (which is already excluded above), just detected after we
439
- // started processing txs rather than before.
440
- if (eventName === 'block-build-failed' && args.reason === 'Insufficient valid txs') {
441
- return;
442
- }
443
- const evt = makeEvent(i, eventName, args);
444
- failEvents.push(evt);
445
- this.logger.error(`Failed event ${eventName} from sequencer ${sequencerIndex}`, undefined, evt);
446
- });
447
- });
448
- });
449
- return {
450
- failEvents,
451
- stateChanges
452
- };
453
- }
454
- assertNoFailuresFromSequencers(failEvents) {
455
- if (failEvents.length > 0) {
456
- this.logger.error(`Failed events from sequencers`, failEvents);
457
- }
458
- expect(failEvents).toEqual([]);
459
- }
460
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"bridging_race.notest.d.ts","sourceRoot":"","sources":["../../src/e2e_fees/bridging_race.notest.ts"],"names":[],"mappings":""}
@@ -1,91 +0,0 @@
1
- import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import { type Logger } from '@aztec/aztec.js/log';
3
- import type { AztecNode } from '@aztec/aztec.js/node';
4
- import { CheatCodes } from '@aztec/aztec/testing';
5
- import { RollupContract } from '@aztec/ethereum/contracts';
6
- import type { DeployAztecL1ContractsArgs } from '@aztec/ethereum/deploy-aztec-l1-contracts';
7
- import { ChainMonitor } from '@aztec/ethereum/test';
8
- import { BlockNumber } from '@aztec/foundation/branded-types';
9
- import { EthAddress } from '@aztec/foundation/eth-address';
10
- import { AppSubscriptionContract } from '@aztec/noir-contracts.js/AppSubscription';
11
- import { FPCContract } from '@aztec/noir-contracts.js/FPC';
12
- import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
13
- import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
14
- import { TokenContract as BananaCoin } from '@aztec/noir-contracts.js/Token';
15
- import { CounterContract } from '@aztec/noir-test-contracts.js/Counter';
16
- import { GasSettings } from '@aztec/stdlib/gas';
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';
20
- import { type GasBridgingTestHarness } from '../shared/gas_portal_test_harness.js';
21
- import { TestWallet } from '../test-wallet/test_wallet.js';
22
- /**
23
- * Test fixture for testing fees. Provides the following setup steps:
24
- * InitialAccounts: Initializes 3 Schnorr account contracts.
25
- * PublicDeployAccounts: Deploys the accounts publicly.
26
- * DeployFeeJuice: Deploys the Fee Juice contract.
27
- * FPCSetup: Deploys BananaCoin and FPC contracts, and bridges gas from L1.
28
- * SponsoredFPCSetup: Deploys Sponsored FPC contract, and bridges gas from L1.
29
- * FundAlice: Mints private and public bananas to Alice.
30
- * SetupSubscription: Deploys a counter contract and a subscription contract, and mints Fee Juice to the subscription contract.
31
- */
32
- export declare class FeesTest {
33
- private numberOfAccounts;
34
- private setupOptions;
35
- private accounts;
36
- context: EndToEndContext;
37
- logger: Logger;
38
- aztecNode: AztecNode;
39
- aztecNodeAdmin: AztecNodeAdmin;
40
- cheatCodes: CheatCodes;
41
- wallet: TestWallet;
42
- aliceAddress: AztecAddress;
43
- bobAddress: AztecAddress;
44
- sequencerAddress: AztecAddress;
45
- coinbase: EthAddress;
46
- fpcAdmin: AztecAddress;
47
- gasSettings: GasSettings;
48
- rollupContract: RollupContract;
49
- feeJuiceContract: FeeJuiceContract;
50
- bananaCoin: BananaCoin;
51
- bananaFPC: FPCContract;
52
- sponsoredFPC: SponsoredFPCContract;
53
- counterContract: CounterContract;
54
- subscriptionContract: AppSubscriptionContract;
55
- feeJuiceBridgeTestHarness: GasBridgingTestHarness;
56
- chainMonitor: ChainMonitor;
57
- getCoinbaseBalance: () => Promise<bigint>;
58
- getCoinbaseSequencerRewards: () => Promise<bigint>;
59
- getGasBalanceFn: BalancesFn;
60
- getBananaPublicBalanceFn: BalancesFn;
61
- getBananaPrivateBalanceFn: BalancesFn;
62
- getProverFee: (blockNumber: BlockNumber) => Promise<bigint>;
63
- getCommittedProverFee: (blockNumber: BlockNumber) => Promise<bigint>;
64
- getCommittedBurn: (blockNumber: BlockNumber) => Promise<bigint>;
65
- readonly ALICE_INITIAL_BANANAS: bigint;
66
- readonly SUBSCRIPTION_AMOUNT: bigint;
67
- readonly APP_SPONSORED_TX_GAS_LIMIT: bigint;
68
- constructor(testName: string, numberOfAccounts?: number, setupOptions?: Partial<SetupOptions & DeployAztecL1ContractsArgs>);
69
- setup(opts?: Partial<SetupOptions>): Promise<this>;
70
- teardown(): Promise<void>;
71
- setIsMarkingAsProven(b: boolean): void;
72
- catchUpProvenChain(): Promise<void>;
73
- getBlockRewards(): Promise<{
74
- sequencerBlockRewards: bigint;
75
- proverBlockRewards: bigint;
76
- }>;
77
- mintAndBridgeFeeJuice(minter: AztecAddress, recipient: AztecAddress): Promise<void>;
78
- /** Alice mints bananaCoin tokens privately to the target address and redeems them. */
79
- mintPrivateBananas(amount: bigint, address: AztecAddress): Promise<void>;
80
- applyBaseSetup(): Promise<void>;
81
- applyEnsureAuthRegistryPublished(): Promise<void>;
82
- applyInitialAccounts(): Promise<void>;
83
- applyPublicDeployAccounts(): Promise<void>;
84
- applySetupFeeJuice(): Promise<void>;
85
- applyDeployBananaToken(): Promise<void>;
86
- applyFPCSetup(): Promise<void>;
87
- applySponsoredFPCSetup(): Promise<void>;
88
- applyFundAliceWithBananas(): Promise<void>;
89
- applyFundAliceWithPrivateBananas(): Promise<void>;
90
- }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlc190ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX2ZlZXMvZmVlc190ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFpQyxNQUFNLHNCQUFzQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxJQUFJLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUd4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFL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
@@ -1 +0,0 @@
1
- {"version":3,"file":"fees_test.d.ts","sourceRoot":"","sources":["../../src/e2e_fees/fees_test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import { Fr } from '@aztec/aztec.js/fields';
3
- import { BatchedBlob, Blob } from '@aztec/blob-lib';
4
- import { L2Block } from '@aztec/stdlib/block';
5
- import { CheckpointHeader } from '@aztec/stdlib/rollup';
6
- /**
7
- * Creates a json object that can be used to test the solidity contract.
8
- * The json object must be put into
9
- */
10
- export declare function writeJson(fileName: string, checkpointHeader: CheckpointHeader, block: L2Block, l1ToL2Content: Fr[], blobs: Blob[], batchedBlob: BatchedBlob, recipientAddress: AztecAddress, deployerAddress: `0x${string}`): Promise<void>;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVfanNvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2UyZV9sMV9wdWJsaXNoZXIvd3JpdGVfanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUE2RCxNQUFNLGlCQUFpQixDQUFDO0FBRS9HLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU14RDs7O0dBR0c7QUFDSCx3QkFBc0IsU0FBUyxDQUM3QixRQUFRLEVBQUUsTUFBTSxFQUNoQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsS0FBSyxFQUFFLE9BQU8sRUFDZCxhQUFhLEVBQUUsRUFBRSxFQUFFLEVBQ25CLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFDYixXQUFXLEVBQUUsV0FBVyxFQUN4QixnQkFBZ0IsRUFBRSxZQUFZLEVBQzlCLGVBQWUsRUFBRSxLQUFLLE1BQU0sRUFBRSxHQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLENBb0RmIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"write_json.d.ts","sourceRoot":"","sources":["../../src/e2e_l1_publisher/write_json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,IAAI,EAA6D,MAAM,iBAAiB,CAAC;AAE/G,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMxD;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,EAAE,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,YAAY,EAC9B,eAAe,EAAE,KAAK,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAoDf"}
@@ -1,56 +0,0 @@
1
- import { getEthBlobEvaluationInputs, getPrefixedEthBlobCommitments } from '@aztec/blob-lib';
2
- import { writeFile } from 'fs/promises';
3
- const AZTEC_GENERATE_TEST_DATA = !!process.env.AZTEC_GENERATE_TEST_DATA;
4
- /**
5
- * Creates a json object that can be used to test the solidity contract.
6
- * The json object must be put into
7
- */ export async function writeJson(fileName, checkpointHeader, block, l1ToL2Content, blobs, batchedBlob, recipientAddress, deployerAddress) {
8
- if (!AZTEC_GENERATE_TEST_DATA) {
9
- return;
10
- }
11
- // Path relative to the package.json in the end-to-end folder
12
- const path = `../../l1-contracts/test/fixtures/${fileName}.json`;
13
- const asHex = (value, size = 64)=>{
14
- const buffer = Buffer.isBuffer(value) ? value : value.toBuffer();
15
- return `0x${buffer.toString('hex').padStart(size, '0')}`;
16
- };
17
- const jsonObject = {
18
- populate: {
19
- l1ToL2Content: l1ToL2Content.map((value)=>asHex(value)),
20
- recipient: asHex(recipientAddress.toField()),
21
- sender: deployerAddress
22
- },
23
- messages: {
24
- l2ToL1Messages: block.body.txEffects.flatMap((txEffect)=>txEffect.l2ToL1Msgs).map((value)=>asHex(value))
25
- },
26
- checkpoint: {
27
- // The json formatting in forge is a bit brittle, so we convert Fr to a number in the few values below.
28
- // This should not be a problem for testing as long as the values are not larger than u32.
29
- archive: asHex(block.archive.root),
30
- blobCommitments: getPrefixedEthBlobCommitments(blobs),
31
- batchedBlobInputs: getEthBlobEvaluationInputs(batchedBlob),
32
- checkpointNumber: block.number,
33
- body: `0x${block.body.toBuffer().toString('hex')}`,
34
- header: {
35
- lastArchiveRoot: asHex(checkpointHeader.lastArchiveRoot),
36
- blockHeadersHash: asHex(checkpointHeader.blockHeadersHash),
37
- blobsHash: asHex(checkpointHeader.blobsHash),
38
- inHash: asHex(checkpointHeader.inHash),
39
- outHash: asHex(checkpointHeader.epochOutHash),
40
- slotNumber: Number(checkpointHeader.slotNumber),
41
- timestamp: Number(checkpointHeader.timestamp),
42
- coinbase: asHex(checkpointHeader.coinbase, 40),
43
- feeRecipient: asHex(checkpointHeader.feeRecipient),
44
- gasFees: {
45
- feePerDaGas: Number(checkpointHeader.gasFees.feePerDaGas),
46
- feePerL2Gas: Number(checkpointHeader.gasFees.feePerL2Gas)
47
- },
48
- totalManaUsed: checkpointHeader.totalManaUsed.toNumber()
49
- },
50
- headerHash: asHex(checkpointHeader.hash()),
51
- numTxs: block.body.txEffects.length
52
- }
53
- };
54
- const output = JSON.stringify(jsonObject, null, 2);
55
- await writeFile(path, output, 'utf8');
56
- }
@@ -1,12 +0,0 @@
1
- import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import { EthAddress } from '@aztec/foundation/eth-address';
3
- import type { EthPrivateKey } from '@aztec/node-keystore';
4
- export declare function createJSONRPCSigner(keyLookup: Map<string, EthPrivateKey>, stats: Map<string, number>): import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
5
- export declare function createKeyFile1(fileName: string, mnemonic: string, validatorIndex: number, publisher1Key: EthPrivateKey, publisher2Key: EthPrivateKey, coinbase: EthAddress, feeRecipient: AztecAddress): Promise<void>;
6
- export declare function createKeyFile2(fileName: string, validatorKey: EthPrivateKey, publisherMnemonic: string, publisher1Index: number, coinbase: EthAddress, feeRecipient: AztecAddress): Promise<void>;
7
- export declare function createKeyFile3(fileName: string, validatorAddress: EthAddress, publisher1Key: EthPrivateKey, publisher2Key: EthPrivateKey, coinbase: EthAddress, remoteSignerUrl: string, feeRecipient: AztecAddress): Promise<void>;
8
- export declare function createKeyFile4(fileName: string, validator1Address: EthAddress, validator2Address: EthAddress, publisher1Index: number, publisher2Key: EthPrivateKey, mnemonic: string, publisher3Key: EthPrivateKey, coinbase1: EthAddress, coinbase2: EthAddress, remoteSignerUrl: string, feeRecipient1: AztecAddress, feeRecipient2: AztecAddress): Promise<void>;
9
- export declare function createKeyFile5(fileName: string, proverAddress: EthAddress, remoteSignerUrl: string): Promise<void>;
10
- export declare function createKeyFile6(fileName: string, mnemonic: string, validator1Index: number, coinbase: EthAddress, feeRecipient: AztecAddress): Promise<void>;
11
- export declare function addressForPrivateKey(privateKey: EthPrivateKey): EthAddress;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfbXVsdGlfdmFsaWRhdG9yL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFXMUQsd0JBQWdCLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxzR0EwRXBHO0FBR0Qsd0JBQXNCLGNBQWMsQ0FDbEMsUUFBUSxFQUFFLE1BQU0sRUFDaEIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsY0FBYyxFQUFFLE1BQU0sRUFDdEIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsUUFBUSxFQUFFLFVBQVUsRUFDcEIsWUFBWSxFQUFFLFlBQVksaUJBbUIzQjtBQUVELHdCQUFzQixjQUFjLENBQ2xDLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLFlBQVksRUFBRSxhQUFhLEVBQzNCLGlCQUFpQixFQUFFLE1BQU0sRUFDekIsZUFBZSxFQUFFLE1BQU0sRUFDdkIsUUFBUSxFQUFFLFVBQVUsRUFDcEIsWUFBWSxFQUFFLFlBQVksaUJBbUIzQjtBQUVELHdCQUFzQixjQUFjLENBQ2xDLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLGdCQUFnQixFQUFFLFVBQVUsRUFDNUIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsUUFBUSxFQUFFLFVBQVUsRUFDcEIsZUFBZSxFQUFFLE1BQU0sRUFDdkIsWUFBWSxFQUFFLFlBQVksaUJBaUIzQjtBQUVELHdCQUFzQixjQUFjLENBQ2xDLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLGlCQUFpQixFQUFFLFVBQVUsRUFDN0IsaUJBQWlCLEVBQUUsVUFBVSxFQUM3QixlQUFlLEVBQUUsTUFBTSxFQUN2QixhQUFhLEVBQUUsYUFBYSxFQUM1QixRQUFRLEVBQUUsTUFBTSxFQUNoQixhQUFhLEVBQUUsYUFBYSxFQUM1QixTQUFTLEVBQUUsVUFBVSxFQUNyQixTQUFTLEVBQUUsVUFBVSxFQUNyQixlQUFlLEVBQUUsTUFBTSxFQUN2QixhQUFhLEVBQUUsWUFBWSxFQUMzQixhQUFhLEVBQUUsWUFBWSxpQkE0QjVCO0FBRUQsd0JBQXNCLGNBQWMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBY3hHO0FBRUQsd0JBQXNCLGNBQWMsQ0FDbEMsUUFBUSxFQUFFLE1BQU0sRUFDaEIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsZUFBZSxFQUFFLE1BQU0sRUFDdkIsUUFBUSxFQUFFLFVBQVUsRUFDcEIsWUFBWSxFQUFFLFlBQVksaUJBa0IzQjtBQUVELHdCQUFnQixvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsYUFBYSxHQUFHLFVBQVUsQ0FFMUUifQ==