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

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 (410) hide show
  1. package/README.md +217 -14
  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/automine/contracts/fixtures/storage_proof_fetcher.js +184 -0
  8. package/dest/automine/contracts/fixtures/storage_proof_fixture.d.ts +18 -0
  9. package/dest/automine/contracts/fixtures/storage_proof_fixture.d.ts.map +1 -0
  10. package/dest/automine/contracts/fixtures/storage_proof_fixture.js +120 -0
  11. package/dest/automine/delivery/onchain_delivery_harness.d.ts +17 -0
  12. package/dest/automine/delivery/onchain_delivery_harness.d.ts.map +1 -0
  13. package/dest/automine/delivery/onchain_delivery_harness.js +123 -0
  14. package/dest/automine/token/blacklist_token_contract_test.d.ts +49 -0
  15. package/dest/automine/token/blacklist_token_contract_test.d.ts.map +1 -0
  16. package/dest/automine/token/blacklist_token_contract_test.js +166 -0
  17. package/dest/automine/token/token_contract_test.d.ts +40 -0
  18. package/dest/automine/token/token_contract_test.d.ts.map +1 -0
  19. package/dest/automine/token/token_contract_test.js +119 -0
  20. package/dest/automine/token/token_test_helpers.d.ts +73 -0
  21. package/dest/automine/token/token_test_helpers.d.ts.map +1 -0
  22. package/dest/automine/token/token_test_helpers.js +97 -0
  23. package/dest/bench/client_flows/benchmark.d.ts +17 -2
  24. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  25. package/dest/bench/client_flows/benchmark.js +40 -1
  26. package/dest/bench/client_flows/client_flows_benchmark.d.ts +26 -20
  27. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  28. package/dest/bench/client_flows/client_flows_benchmark.js +159 -140
  29. package/dest/bench/client_flows/config.d.ts +2 -2
  30. package/dest/bench/client_flows/config.d.ts.map +1 -1
  31. package/dest/bench/client_flows/config.js +18 -0
  32. package/dest/bench/client_flows/data_extractor.d.ts +1 -1
  33. package/dest/bench/client_flows/data_extractor.js +8 -27
  34. package/dest/bench/utils.d.ts +10 -9
  35. package/dest/bench/utils.d.ts.map +1 -1
  36. package/dest/bench/utils.js +126 -23
  37. package/dest/composed/ha/ha_full_setup.d.ts +77 -0
  38. package/dest/composed/ha/ha_full_setup.d.ts.map +1 -0
  39. package/dest/composed/ha/ha_full_setup.js +383 -0
  40. package/dest/composed/web3signer/multi_validator_keystore_utils.d.ts +12 -0
  41. package/dest/composed/web3signer/multi_validator_keystore_utils.d.ts.map +1 -0
  42. package/dest/{e2e_multi_validator/utils.js → composed/web3signer/multi_validator_keystore_utils.js} +1 -1
  43. package/dest/fixtures/authwit_proxy.d.ts +15 -0
  44. package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
  45. package/dest/fixtures/authwit_proxy.js +34 -0
  46. package/dest/fixtures/e2e_prover_test.d.ts +27 -29
  47. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  48. package/dest/fixtures/e2e_prover_test.js +156 -156
  49. package/dest/fixtures/elu_monitor.d.ts +21 -0
  50. package/dest/fixtures/elu_monitor.d.ts.map +1 -0
  51. package/dest/fixtures/elu_monitor.js +102 -0
  52. package/dest/fixtures/fixtures.d.ts +83 -3
  53. package/dest/fixtures/fixtures.d.ts.map +1 -1
  54. package/dest/fixtures/fixtures.js +86 -3
  55. package/dest/fixtures/get_acvm_config.d.ts +1 -1
  56. package/dest/fixtures/get_acvm_config.js +1 -1
  57. package/dest/fixtures/get_bb_config.d.ts +1 -1
  58. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  59. package/dest/fixtures/get_bb_config.js +5 -5
  60. package/dest/fixtures/ha_setup.d.ts +71 -0
  61. package/dest/fixtures/ha_setup.d.ts.map +1 -0
  62. package/dest/fixtures/ha_setup.js +119 -0
  63. package/dest/fixtures/index.d.ts +3 -1
  64. package/dest/fixtures/index.d.ts.map +1 -1
  65. package/dest/fixtures/index.js +2 -0
  66. package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
  67. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  68. package/dest/fixtures/l1_to_l2_messaging.js +2 -2
  69. package/dest/fixtures/logging.d.ts +1 -1
  70. package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts +25 -0
  71. package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts.map +1 -0
  72. package/dest/fixtures/schnorr_hardcoded_account_contract.js +37 -0
  73. package/dest/fixtures/setup.d.ts +269 -0
  74. package/dest/fixtures/setup.d.ts.map +1 -0
  75. package/dest/fixtures/setup.js +688 -0
  76. package/dest/fixtures/setup_p2p_test.d.ts +22 -11
  77. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  78. package/dest/fixtures/setup_p2p_test.js +60 -41
  79. package/dest/fixtures/timing.d.ts +42 -0
  80. package/dest/fixtures/timing.d.ts.map +1 -0
  81. package/dest/fixtures/timing.js +72 -0
  82. package/dest/fixtures/token_utils.d.ts +26 -5
  83. package/dest/fixtures/token_utils.d.ts.map +1 -1
  84. package/dest/fixtures/token_utils.js +33 -9
  85. package/dest/fixtures/utils.d.ts +5 -192
  86. package/dest/fixtures/utils.d.ts.map +1 -1
  87. package/dest/fixtures/utils.js +4 -648
  88. package/dest/fixtures/wait_helpers.d.ts +135 -0
  89. package/dest/fixtures/wait_helpers.d.ts.map +1 -0
  90. package/dest/fixtures/wait_helpers.js +154 -0
  91. package/dest/fixtures/web3signer.d.ts +1 -1
  92. package/dest/fixtures/web3signer.js +1 -1
  93. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  94. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  95. package/dest/fixtures/with_telemetry_utils.js +2 -2
  96. package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
  97. package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
  98. package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
  99. package/dest/forward-compatibility/wallet_service.d.ts +3 -0
  100. package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
  101. package/dest/forward-compatibility/wallet_service.js +109 -0
  102. package/dest/index.d.ts +1 -1
  103. package/dest/install_legacy_contracts.d.cts +10 -0
  104. package/dest/install_legacy_contracts.d.cts.map +1 -0
  105. package/dest/legacy-jest-resolver.d.cts +3 -0
  106. package/dest/legacy-jest-resolver.d.cts.map +1 -0
  107. package/dest/multi-node/block-production/setup.d.ts +97 -0
  108. package/dest/multi-node/block-production/setup.d.ts.map +1 -0
  109. package/dest/multi-node/block-production/setup.js +158 -0
  110. package/dest/multi-node/governance/setup.d.ts +67 -0
  111. package/dest/multi-node/governance/setup.d.ts.map +1 -0
  112. package/dest/multi-node/governance/setup.js +126 -0
  113. package/dest/multi-node/multi_node_test_context.d.ts +212 -0
  114. package/dest/multi-node/multi_node_test_context.d.ts.map +1 -0
  115. package/dest/multi-node/multi_node_test_context.js +347 -0
  116. package/dest/multi-node/slashing/inactivity_setup.d.ts +27 -0
  117. package/dest/multi-node/slashing/inactivity_setup.d.ts.map +1 -0
  118. package/dest/multi-node/slashing/inactivity_setup.js +111 -0
  119. package/dest/multi-node/slashing/setup.d.ts +167 -0
  120. package/dest/multi-node/slashing/setup.d.ts.map +1 -0
  121. package/dest/multi-node/slashing/setup.js +275 -0
  122. package/dest/p2p/p2p_network.d.ts +325 -0
  123. package/dest/p2p/p2p_network.d.ts.map +1 -0
  124. package/dest/p2p/p2p_network.js +389 -0
  125. package/dest/p2p/reqresp/utils.d.ts +19 -0
  126. package/dest/p2p/reqresp/utils.d.ts.map +1 -0
  127. package/dest/p2p/reqresp/utils.js +193 -0
  128. package/dest/p2p/shared.d.ts +72 -0
  129. package/dest/p2p/shared.d.ts.map +1 -0
  130. package/dest/p2p/shared.js +212 -0
  131. package/dest/quality_of_service/grafana_client.d.ts +41 -0
  132. package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
  133. package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
  134. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  135. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  136. package/dest/quality_of_service/prometheus_client.js +67 -0
  137. package/dest/shared/cross_chain_test_harness.d.ts +11 -8
  138. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  139. package/dest/shared/cross_chain_test_harness.js +45 -40
  140. package/dest/shared/gas_portal_test_harness.d.ts +9 -6
  141. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  142. package/dest/shared/gas_portal_test_harness.js +28 -16
  143. package/dest/shared/index.d.ts +3 -2
  144. package/dest/shared/index.d.ts.map +1 -1
  145. package/dest/shared/index.js +1 -0
  146. package/dest/shared/jest_setup.d.ts +1 -1
  147. package/dest/shared/jest_setup.js +41 -1
  148. package/dest/shared/mock_state_view.d.ts +86 -0
  149. package/dest/shared/mock_state_view.d.ts.map +1 -0
  150. package/dest/shared/mock_state_view.js +186 -0
  151. package/dest/shared/submit-transactions.d.ts +4 -4
  152. package/dest/shared/submit-transactions.d.ts.map +1 -1
  153. package/dest/shared/submit-transactions.js +19 -14
  154. package/dest/shared/timing_env.d.js +5 -0
  155. package/dest/shared/timing_env.js +365 -0
  156. package/dest/shared/uniswap_l1_l2.d.ts +3 -27
  157. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  158. package/dest/shared/uniswap_l1_l2.js +86 -54
  159. package/dest/shared/wait_for_l1_to_l2_message.d.ts +13 -0
  160. package/dest/shared/wait_for_l1_to_l2_message.d.ts.map +1 -0
  161. package/dest/shared/wait_for_l1_to_l2_message.js +10 -0
  162. package/dest/simulators/index.d.ts +1 -1
  163. package/dest/simulators/lending_simulator.d.ts +11 -4
  164. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  165. package/dest/simulators/lending_simulator.js +33 -19
  166. package/dest/simulators/token_simulator.d.ts +1 -1
  167. package/dest/simulators/token_simulator.d.ts.map +1 -1
  168. package/dest/simulators/token_simulator.js +3 -24
  169. package/dest/single-node/cross-chain/cross_chain_messaging_test.d.ts +75 -0
  170. package/dest/single-node/cross-chain/cross_chain_messaging_test.d.ts.map +1 -0
  171. package/dest/single-node/cross-chain/cross_chain_messaging_test.js +209 -0
  172. package/dest/single-node/cross-chain/message_test_helpers.d.ts +38 -0
  173. package/dest/single-node/cross-chain/message_test_helpers.d.ts.map +1 -0
  174. package/dest/single-node/cross-chain/message_test_helpers.js +70 -0
  175. package/dest/single-node/fees/bridging_race.notest.d.ts +2 -0
  176. package/dest/single-node/fees/bridging_race.notest.d.ts.map +1 -0
  177. package/dest/{e2e_fees → single-node/fees}/bridging_race.notest.js +21 -10
  178. package/dest/single-node/fees/fees_test.d.ts +93 -0
  179. package/dest/single-node/fees/fees_test.d.ts.map +1 -0
  180. package/dest/single-node/fees/fees_test.js +274 -0
  181. package/dest/single-node/l1-reorgs/setup.d.ts +42 -0
  182. package/dest/single-node/l1-reorgs/setup.d.ts.map +1 -0
  183. package/dest/single-node/l1-reorgs/setup.js +57 -0
  184. package/dest/single-node/partial-proofs/setup.d.ts +5 -0
  185. package/dest/single-node/partial-proofs/setup.d.ts.map +1 -0
  186. package/dest/single-node/partial-proofs/setup.js +5 -0
  187. package/dest/single-node/proving/setup.d.ts +5 -0
  188. package/dest/single-node/proving/setup.d.ts.map +1 -0
  189. package/dest/single-node/proving/setup.js +5 -0
  190. package/dest/single-node/recovery/setup.d.ts +5 -0
  191. package/dest/single-node/recovery/setup.d.ts.map +1 -0
  192. package/dest/single-node/recovery/setup.js +5 -0
  193. package/dest/single-node/setup.d.ts +49 -0
  194. package/dest/single-node/setup.d.ts.map +1 -0
  195. package/dest/single-node/setup.js +56 -0
  196. package/dest/single-node/single_node_test_context.d.ts +360 -0
  197. package/dest/single-node/single_node_test_context.d.ts.map +1 -0
  198. package/dest/single-node/single_node_test_context.js +833 -0
  199. package/dest/spartan/setup_test_wallets.d.ts +18 -6
  200. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  201. package/dest/spartan/setup_test_wallets.js +169 -30
  202. package/dest/spartan/tx_metrics.d.ts +111 -0
  203. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  204. package/dest/spartan/tx_metrics.js +507 -0
  205. package/dest/spartan/utils/bot.d.ts +28 -0
  206. package/dest/spartan/utils/bot.d.ts.map +1 -0
  207. package/dest/spartan/utils/bot.js +142 -0
  208. package/dest/spartan/utils/chaos.d.ts +79 -0
  209. package/dest/spartan/utils/chaos.d.ts.map +1 -0
  210. package/dest/spartan/utils/chaos.js +142 -0
  211. package/dest/spartan/utils/clients.d.ts +39 -0
  212. package/dest/spartan/utils/clients.d.ts.map +1 -0
  213. package/dest/spartan/utils/clients.js +90 -0
  214. package/dest/spartan/utils/config.d.ts +19 -0
  215. package/dest/spartan/utils/config.d.ts.map +1 -0
  216. package/dest/spartan/utils/config.js +23 -0
  217. package/dest/spartan/utils/health.d.ts +63 -0
  218. package/dest/spartan/utils/health.d.ts.map +1 -0
  219. package/dest/spartan/utils/health.js +202 -0
  220. package/dest/spartan/utils/helm.d.ts +15 -0
  221. package/dest/spartan/utils/helm.d.ts.map +1 -0
  222. package/dest/spartan/utils/helm.js +47 -0
  223. package/dest/spartan/utils/index.d.ts +11 -0
  224. package/dest/spartan/utils/index.d.ts.map +1 -0
  225. package/dest/spartan/utils/index.js +22 -0
  226. package/dest/spartan/utils/k8s.d.ts +128 -0
  227. package/dest/spartan/utils/k8s.d.ts.map +1 -0
  228. package/dest/spartan/utils/k8s.js +381 -0
  229. package/dest/spartan/utils/nodes.d.ts +40 -0
  230. package/dest/spartan/utils/nodes.d.ts.map +1 -0
  231. package/dest/spartan/utils/nodes.js +461 -0
  232. package/dest/spartan/utils/pod_logs.d.ts +25 -0
  233. package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
  234. package/dest/spartan/utils/pod_logs.js +74 -0
  235. package/dest/spartan/utils/scripts.d.ts +30 -0
  236. package/dest/spartan/utils/scripts.d.ts.map +1 -0
  237. package/dest/spartan/utils/scripts.js +81 -0
  238. package/dest/spartan/utils.d.ts +2 -218
  239. package/dest/spartan/utils.d.ts.map +1 -1
  240. package/dest/spartan/utils.js +1 -749
  241. package/dest/test-wallet/test_wallet.d.ts +105 -0
  242. package/dest/test-wallet/test_wallet.d.ts.map +1 -0
  243. package/dest/test-wallet/test_wallet.js +323 -0
  244. package/dest/test-wallet/utils.d.ts +76 -0
  245. package/dest/test-wallet/utils.d.ts.map +1 -0
  246. package/dest/test-wallet/utils.js +126 -0
  247. package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
  248. package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
  249. package/dest/test-wallet/wallet_worker_script.js +56 -0
  250. package/dest/test-wallet/worker_wallet.d.ts +53 -0
  251. package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
  252. package/dest/test-wallet/worker_wallet.js +155 -0
  253. package/dest/test-wallet/worker_wallet_schema.d.ts +4 -0
  254. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
  255. package/dest/test-wallet/worker_wallet_schema.js +22 -0
  256. package/package.json +57 -47
  257. package/src/automine/README.md +60 -0
  258. package/src/automine/automine_test_context.ts +153 -0
  259. package/src/automine/contracts/fixtures/storage_proof.json +915 -0
  260. package/src/automine/contracts/fixtures/storage_proof_fetcher.ts +190 -0
  261. package/src/automine/contracts/fixtures/storage_proof_fixture.ts +173 -0
  262. package/src/automine/delivery/onchain_delivery_harness.ts +177 -0
  263. package/src/automine/token/blacklist_token_contract_test.ts +208 -0
  264. package/src/automine/token/token_contract_test.ts +146 -0
  265. package/src/automine/token/token_test_helpers.ts +138 -0
  266. package/src/bench/client_flows/benchmark.ts +45 -2
  267. package/src/bench/client_flows/client_flows_benchmark.ts +227 -211
  268. package/src/bench/client_flows/config.ts +9 -1
  269. package/src/bench/client_flows/data_extractor.ts +7 -28
  270. package/src/bench/utils.ts +144 -25
  271. package/src/composed/ha/ha_full_setup.ts +466 -0
  272. package/src/{e2e_multi_validator/utils.ts → composed/web3signer/multi_validator_keystore_utils.ts} +1 -1
  273. package/src/fixtures/authwit_proxy.ts +54 -0
  274. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  275. package/src/fixtures/e2e_prover_test.ts +175 -214
  276. package/src/fixtures/elu_monitor.ts +126 -0
  277. package/src/fixtures/fixtures.ts +110 -5
  278. package/src/fixtures/get_acvm_config.ts +1 -1
  279. package/src/fixtures/get_bb_config.ts +7 -6
  280. package/src/fixtures/ha_setup.ts +192 -0
  281. package/src/fixtures/index.ts +2 -0
  282. package/src/fixtures/l1_to_l2_messaging.ts +4 -2
  283. package/src/fixtures/schnorr_hardcoded_account_contract.ts +49 -0
  284. package/src/fixtures/setup.ts +987 -0
  285. package/src/fixtures/setup_p2p_test.ts +72 -58
  286. package/src/fixtures/timing.ts +97 -0
  287. package/src/fixtures/token_utils.ts +47 -11
  288. package/src/fixtures/utils.ts +26 -947
  289. package/src/fixtures/wait_helpers.ts +333 -0
  290. package/src/fixtures/web3signer.ts +1 -1
  291. package/src/fixtures/with_telemetry_utils.ts +2 -2
  292. package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
  293. package/src/forward-compatibility/wallet_service.ts +106 -0
  294. package/src/guides/up_quick_start.sh +8 -5
  295. package/src/infra/README.md +12 -0
  296. package/src/install_legacy_contracts.cjs +75 -0
  297. package/src/legacy-jest-resolver.cjs +112 -0
  298. package/src/multi-node/README.md +95 -0
  299. package/src/multi-node/block-production/setup.ts +272 -0
  300. package/src/multi-node/governance/setup.ts +172 -0
  301. package/src/multi-node/multi_node_test_context.ts +447 -0
  302. package/src/multi-node/slashing/inactivity_setup.ts +139 -0
  303. package/src/multi-node/slashing/setup.ts +433 -0
  304. package/src/p2p/README.md +78 -0
  305. package/src/p2p/p2p_network.ts +542 -0
  306. package/src/p2p/reqresp/utils.ts +263 -0
  307. package/src/p2p/shared.ts +329 -0
  308. package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
  309. package/src/quality_of_service/prometheus_client.ts +113 -0
  310. package/src/shared/cross_chain_test_harness.ts +51 -43
  311. package/src/shared/gas_portal_test_harness.ts +36 -18
  312. package/src/shared/index.ts +2 -1
  313. package/src/shared/jest_setup.ts +51 -1
  314. package/src/shared/mock_state_view.ts +188 -0
  315. package/src/shared/submit-transactions.ts +22 -19
  316. package/src/shared/timing_env.d.mts +39 -0
  317. package/src/shared/timing_env.mjs +363 -0
  318. package/src/shared/uniswap_l1_l2.ts +136 -115
  319. package/src/shared/wait_for_l1_to_l2_message.ts +23 -0
  320. package/src/simulators/lending_simulator.ts +40 -20
  321. package/src/simulators/token_simulator.ts +6 -30
  322. package/src/single-node/README.md +60 -0
  323. package/src/single-node/cross-chain/cross_chain_messaging_test.ts +302 -0
  324. package/src/single-node/cross-chain/message_test_helpers.ts +125 -0
  325. package/src/{e2e_fees → single-node/fees}/bridging_race.notest.ts +23 -15
  326. package/src/single-node/fees/fees_test.ts +368 -0
  327. package/src/single-node/l1-reorgs/setup.ts +93 -0
  328. package/src/single-node/partial-proofs/setup.ts +8 -0
  329. package/src/single-node/proving/setup.ts +15 -0
  330. package/src/single-node/recovery/setup.ts +8 -0
  331. package/src/single-node/setup.ts +63 -0
  332. package/src/single-node/single_node_test_context.ts +1041 -0
  333. package/src/spartan/DEVELOP.md +7 -0
  334. package/src/spartan/setup_test_wallets.ts +243 -32
  335. package/src/spartan/tx_metrics.ts +460 -0
  336. package/src/spartan/utils/bot.ts +188 -0
  337. package/src/spartan/utils/chaos.ts +253 -0
  338. package/src/spartan/utils/clients.ts +100 -0
  339. package/src/spartan/utils/config.ts +29 -0
  340. package/src/spartan/utils/health.ts +255 -0
  341. package/src/spartan/utils/helm.ts +84 -0
  342. package/src/spartan/utils/index.ts +71 -0
  343. package/src/spartan/utils/k8s.ts +535 -0
  344. package/src/spartan/utils/nodes.ts +543 -0
  345. package/src/spartan/utils/pod_logs.ts +99 -0
  346. package/src/spartan/utils/scripts.ts +99 -0
  347. package/src/spartan/utils.ts +1 -942
  348. package/src/test-wallet/test_wallet.ts +429 -0
  349. package/src/test-wallet/utils.ts +205 -0
  350. package/src/test-wallet/wallet_worker_script.ts +66 -0
  351. package/src/test-wallet/worker_wallet.ts +214 -0
  352. package/src/test-wallet/worker_wallet_schema.ts +14 -0
  353. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +0 -54
  354. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +0 -1
  355. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +0 -185
  356. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +0 -41
  357. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +0 -1
  358. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +0 -107
  359. package/dest/e2e_deploy_contract/deploy_test.d.ts +0 -36
  360. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +0 -1
  361. package/dest/e2e_deploy_contract/deploy_test.js +0 -45
  362. package/dest/e2e_epochs/epochs_test.d.ts +0 -92
  363. package/dest/e2e_epochs/epochs_test.d.ts.map +0 -1
  364. package/dest/e2e_epochs/epochs_test.js +0 -336
  365. package/dest/e2e_fees/bridging_race.notest.d.ts +0 -2
  366. package/dest/e2e_fees/bridging_race.notest.d.ts.map +0 -1
  367. package/dest/e2e_fees/fees_test.d.ts +0 -84
  368. package/dest/e2e_fees/fees_test.d.ts.map +0 -1
  369. package/dest/e2e_fees/fees_test.js +0 -260
  370. package/dest/e2e_l1_publisher/write_json.d.ts +0 -10
  371. package/dest/e2e_l1_publisher/write_json.d.ts.map +0 -1
  372. package/dest/e2e_l1_publisher/write_json.js +0 -57
  373. package/dest/e2e_multi_validator/utils.d.ts +0 -12
  374. package/dest/e2e_multi_validator/utils.d.ts.map +0 -1
  375. package/dest/e2e_nested_contract/nested_contract_test.d.ts +0 -29
  376. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +0 -1
  377. package/dest/e2e_nested_contract/nested_contract_test.js +0 -63
  378. package/dest/e2e_p2p/inactivity_slash_test.d.ts +0 -31
  379. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +0 -1
  380. package/dest/e2e_p2p/inactivity_slash_test.js +0 -135
  381. package/dest/e2e_p2p/p2p_network.d.ts +0 -108
  382. package/dest/e2e_p2p/p2p_network.d.ts.map +0 -1
  383. package/dest/e2e_p2p/p2p_network.js +0 -318
  384. package/dest/e2e_p2p/shared.d.ts +0 -46
  385. package/dest/e2e_p2p/shared.d.ts.map +0 -1
  386. package/dest/e2e_p2p/shared.js +0 -183
  387. package/dest/e2e_token_contract/token_contract_test.d.ts +0 -35
  388. package/dest/e2e_token_contract/token_contract_test.d.ts.map +0 -1
  389. package/dest/e2e_token_contract/token_contract_test.js +0 -126
  390. package/dest/fixtures/setup_l1_contracts.d.ts +0 -6
  391. package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
  392. package/dest/fixtures/setup_l1_contracts.js +0 -17
  393. package/dest/fixtures/snapshot_manager.d.ts +0 -95
  394. package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
  395. package/dest/fixtures/snapshot_manager.js +0 -505
  396. package/dest/quality_of_service/alert_checker.d.ts +0 -41
  397. package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
  398. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +0 -256
  399. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +0 -178
  400. package/src/e2e_deploy_contract/deploy_test.ts +0 -78
  401. package/src/e2e_epochs/epochs_test.ts +0 -437
  402. package/src/e2e_fees/fees_test.ts +0 -378
  403. package/src/e2e_l1_publisher/write_json.ts +0 -76
  404. package/src/e2e_nested_contract/nested_contract_test.ts +0 -95
  405. package/src/e2e_p2p/inactivity_slash_test.ts +0 -178
  406. package/src/e2e_p2p/p2p_network.ts +0 -472
  407. package/src/e2e_p2p/shared.ts +0 -282
  408. package/src/e2e_token_contract/token_contract_test.ts +0 -167
  409. package/src/fixtures/setup_l1_contracts.ts +0 -26
  410. package/src/fixtures/snapshot_manager.ts +0 -665
@@ -1,378 +0,0 @@
1
- import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import { type Logger, createLogger } from '@aztec/aztec.js/log';
3
- import type { AztecNode } from '@aztec/aztec.js/node';
4
- import { CheatCodes } from '@aztec/aztec/testing';
5
- import { type DeployL1ContractsArgs, RollupContract, createExtendedL1Client } from '@aztec/ethereum';
6
- import { ChainMonitor } from '@aztec/ethereum/test';
7
- import { EthAddress } from '@aztec/foundation/eth-address';
8
- import { sleep } from '@aztec/foundation/sleep';
9
- import { TestERC20Abi } from '@aztec/l1-artifacts';
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 { ProtocolContractAddress } from '@aztec/protocol-contracts';
17
- import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
18
- import { GasSettings } from '@aztec/stdlib/gas';
19
- import { TestWallet } from '@aztec/test-wallet/server';
20
-
21
- import { getContract } from 'viem';
22
-
23
- import { MNEMONIC } from '../fixtures/fixtures.js';
24
- import {
25
- type ISnapshotManager,
26
- type SubsystemsContext,
27
- createSnapshotManager,
28
- deployAccounts,
29
- } from '../fixtures/snapshot_manager.js';
30
- import { mintTokensToPrivate } from '../fixtures/token_utils.js';
31
- import {
32
- type BalancesFn,
33
- type SetupOptions,
34
- ensureAccountContractsPublished,
35
- getBalancesFn,
36
- setupSponsoredFPC,
37
- } from '../fixtures/utils.js';
38
- import { FeeJuicePortalTestingHarnessFactory, type GasBridgingTestHarness } from '../shared/gas_portal_test_harness.js';
39
-
40
- const { E2E_DATA_PATH: dataPath } = process.env;
41
-
42
- /**
43
- * Test fixture for testing fees. Provides the following snapshots:
44
- * InitialAccounts: Initializes 3 Schnorr account contracts.
45
- * PublicDeployAccounts: Deploys the accounts publicly.
46
- * DeployFeeJuice: Deploys the Fee Juice contract.
47
- * FPCSetup: Deploys BananaCoin and FPC contracts, and bridges gas from L1.
48
- * SponsoredFPCSetup: Deploys Sponsored FPC contract, and bridges gas from L1.
49
- * FundAlice: Mints private and public bananas to Alice.
50
- * SetupSubscription: Deploys a counter contract and a subscription contract, and mints Fee Juice to the subscription contract.
51
- */
52
- export class FeesTest {
53
- private snapshotManager: ISnapshotManager;
54
- private accounts: AztecAddress[] = [];
55
-
56
- public logger: Logger;
57
- public aztecNode!: AztecNode;
58
- public cheatCodes!: CheatCodes;
59
-
60
- public wallet!: TestWallet;
61
- public aliceAddress!: AztecAddress;
62
- public bobAddress!: AztecAddress;
63
- public sequencerAddress!: AztecAddress;
64
- public coinbase!: EthAddress;
65
-
66
- public fpcAdmin!: AztecAddress;
67
-
68
- public gasSettings!: GasSettings;
69
-
70
- public rollupContract!: RollupContract;
71
-
72
- public feeJuiceContract!: FeeJuiceContract;
73
- public bananaCoin!: BananaCoin;
74
- public bananaFPC!: FPCContract;
75
- public sponsoredFPC!: SponsoredFPCContract;
76
- public counterContract!: CounterContract;
77
- public subscriptionContract!: AppSubscriptionContract;
78
- public feeJuiceBridgeTestHarness!: GasBridgingTestHarness;
79
-
80
- public context!: SubsystemsContext;
81
- public chainMonitor!: ChainMonitor;
82
-
83
- public getCoinbaseBalance!: () => Promise<bigint>;
84
- public getCoinbaseSequencerRewards!: () => Promise<bigint>;
85
- public getGasBalanceFn!: BalancesFn;
86
- public getBananaPublicBalanceFn!: BalancesFn;
87
- public getBananaPrivateBalanceFn!: BalancesFn;
88
- public getProverFee!: (blockNumber: number) => Promise<bigint>;
89
-
90
- public readonly ALICE_INITIAL_BANANAS = BigInt(1e22);
91
- public readonly SUBSCRIPTION_AMOUNT = BigInt(1e19);
92
- public readonly APP_SPONSORED_TX_GAS_LIMIT = BigInt(10e9);
93
-
94
- constructor(
95
- testName: string,
96
- private numberOfAccounts = 3,
97
- setupOptions: Partial<SetupOptions & DeployL1ContractsArgs> = {},
98
- ) {
99
- if (!numberOfAccounts) {
100
- throw new Error('There must be at least 1 initial account.');
101
- }
102
- setupOptions.coinbase ??= EthAddress.random();
103
- this.coinbase = setupOptions.coinbase!;
104
- this.logger = createLogger(`e2e:e2e_fees:${testName}`);
105
- this.snapshotManager = createSnapshotManager(
106
- `e2e_fees/${testName}-${numberOfAccounts}`,
107
- dataPath,
108
- { startProverNode: true, ...setupOptions },
109
- { ...setupOptions },
110
- );
111
- }
112
-
113
- async setup() {
114
- const context = await this.snapshotManager.setup();
115
-
116
- this.rollupContract = RollupContract.getFromConfig(context.aztecNodeConfig);
117
- this.chainMonitor = new ChainMonitor(this.rollupContract, context.dateProvider, this.logger, 200).start();
118
-
119
- return this;
120
- }
121
-
122
- async teardown() {
123
- await this.chainMonitor.stop();
124
- await this.snapshotManager.teardown();
125
- }
126
-
127
- setIsMarkingAsProven(b: boolean) {
128
- this.context.watcher.setIsMarkingAsProven(b);
129
- }
130
-
131
- async catchUpProvenChain() {
132
- const bn = await this.aztecNode.getBlockNumber();
133
- while ((await this.aztecNode.getProvenBlockNumber()) < bn) {
134
- await sleep(1000);
135
- }
136
- }
137
-
138
- async getBlockRewards() {
139
- const blockReward = await this.rollupContract.getBlockReward();
140
- const rewardConfig = await this.rollupContract.getRewardConfig();
141
-
142
- const balance = await this.feeJuiceBridgeTestHarness.getL1FeeJuiceBalance(
143
- EthAddress.fromString(rewardConfig.rewardDistributor),
144
- );
145
-
146
- const toDistribute = balance > blockReward ? blockReward : balance;
147
- const sequencerBlockRewards = (toDistribute * BigInt(rewardConfig.sequencerBps)) / 10000n;
148
- const proverBlockRewards = toDistribute - sequencerBlockRewards;
149
-
150
- return { sequencerBlockRewards, proverBlockRewards };
151
- }
152
-
153
- async mintAndBridgeFeeJuice(minter: AztecAddress, recipient: AztecAddress) {
154
- const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(recipient);
155
- const { claimSecret: secret, messageLeafIndex: index } = claim;
156
- await this.feeJuiceContract.methods
157
- .claim(recipient, claim.claimAmount, secret, index)
158
- .send({ from: minter })
159
- .wait();
160
- }
161
-
162
- /** Alice mints bananaCoin tokens privately to the target address and redeems them. */
163
- async mintPrivateBananas(amount: bigint, address: AztecAddress) {
164
- const balanceBefore = await this.bananaCoin.methods
165
- .balance_of_private(address)
166
- .simulate({ from: this.aliceAddress });
167
-
168
- await mintTokensToPrivate(this.bananaCoin, this.aliceAddress, address, amount);
169
-
170
- const balanceAfter = await this.bananaCoin.methods
171
- .balance_of_private(address)
172
- .simulate({ from: this.aliceAddress });
173
- expect(balanceAfter).toEqual(balanceBefore + amount);
174
- }
175
-
176
- public async applyBaseSnapshots() {
177
- await this.applyInitialAccountsSnapshot();
178
- await this.applyPublicDeployAccountsSnapshot();
179
- await this.applySetupFeeJuiceSnapshot();
180
- await this.applyDeployBananaTokenSnapshot();
181
- }
182
-
183
- async applyInitialAccountsSnapshot() {
184
- await this.snapshotManager.snapshot(
185
- 'initial_accounts',
186
- deployAccounts(this.numberOfAccounts, this.logger),
187
- async ({ deployedAccounts }, { wallet, aztecNode, cheatCodes }) => {
188
- this.wallet = wallet;
189
- this.aztecNode = aztecNode;
190
- this.gasSettings = GasSettings.default({ maxFeesPerGas: (await this.aztecNode.getCurrentBaseFees()).mul(2) });
191
- this.cheatCodes = cheatCodes;
192
- this.accounts = deployedAccounts.map(a => a.address);
193
- this.accounts.forEach((a, i) => this.logger.verbose(`Account ${i} address: ${a}`));
194
- [this.aliceAddress, this.bobAddress, this.sequencerAddress] = this.accounts.slice(0, 3);
195
-
196
- // We set Alice as the FPC admin to avoid the need for deployment of another account.
197
- this.fpcAdmin = this.aliceAddress;
198
-
199
- const canonicalFeeJuice = await getCanonicalFeeJuice();
200
- this.feeJuiceContract = await FeeJuiceContract.at(canonicalFeeJuice.address, this.wallet);
201
- },
202
- );
203
- }
204
-
205
- async applyPublicDeployAccountsSnapshot() {
206
- await this.snapshotManager.snapshot('public_deploy_accounts', () =>
207
- ensureAccountContractsPublished(this.wallet, this.accounts),
208
- );
209
- }
210
-
211
- async applySetupFeeJuiceSnapshot() {
212
- await this.snapshotManager.snapshot(
213
- 'setup_fee_juice',
214
- async () => {},
215
- async (_data, context) => {
216
- this.context = context;
217
-
218
- this.feeJuiceContract = await FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.wallet);
219
-
220
- this.getGasBalanceFn = getBalancesFn(
221
- '⛽',
222
- this.feeJuiceContract.methods.balance_of_public,
223
- this.aliceAddress,
224
- this.logger,
225
- );
226
-
227
- this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
228
- aztecNode: context.aztecNode,
229
- aztecNodeAdmin: context.aztecNode,
230
- l1Client: context.deployL1ContractsValues.l1Client,
231
- wallet: this.wallet,
232
- logger: this.logger,
233
- });
234
- },
235
- );
236
- }
237
-
238
- async applyDeployBananaTokenSnapshot() {
239
- await this.snapshotManager.snapshot(
240
- 'deploy_banana_token',
241
- async () => {
242
- const bananaCoin = await BananaCoin.deploy(this.wallet, this.aliceAddress, 'BC', 'BC', 18n)
243
- .send({ from: this.aliceAddress })
244
- .deployed();
245
- this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
246
- return { bananaCoinAddress: bananaCoin.address };
247
- },
248
- async ({ bananaCoinAddress }) => {
249
- this.bananaCoin = await BananaCoin.at(bananaCoinAddress, this.wallet);
250
- const logger = this.logger;
251
- this.getBananaPublicBalanceFn = getBalancesFn(
252
- '🍌.public',
253
- this.bananaCoin.methods.balance_of_public,
254
- this.aliceAddress,
255
- logger,
256
- );
257
- this.getBananaPrivateBalanceFn = getBalancesFn(
258
- '🍌.private',
259
- this.bananaCoin.methods.balance_of_private,
260
- this.aliceAddress,
261
- logger,
262
- );
263
- },
264
- );
265
- }
266
-
267
- public async applyFPCSetupSnapshot() {
268
- await this.snapshotManager.snapshot(
269
- 'fpc_setup',
270
- async context => {
271
- const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
272
- expect((await context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
273
-
274
- const bananaCoin = this.bananaCoin;
275
- const bananaFPC = await FPCContract.deploy(this.wallet, bananaCoin.address, this.fpcAdmin)
276
- .send({ from: this.aliceAddress })
277
- .deployed();
278
-
279
- this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
280
-
281
- await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.aliceAddress);
282
-
283
- return {
284
- bananaFPCAddress: bananaFPC.address,
285
- feeJuiceAddress: feeJuiceContract.address,
286
- l1FeeJuiceAddress: this.feeJuiceBridgeTestHarness.l1FeeJuiceAddress,
287
- rollupAddress: context.deployL1ContractsValues.l1ContractAddresses.rollupAddress,
288
- };
289
- },
290
- async (data, context) => {
291
- const bananaFPC = await FPCContract.at(data.bananaFPCAddress, this.wallet);
292
- this.bananaFPC = bananaFPC;
293
-
294
- this.getCoinbaseBalance = async () => {
295
- const l1Client = createExtendedL1Client(context.aztecNodeConfig.l1RpcUrls, MNEMONIC);
296
- const gasL1 = getContract({
297
- address: data.l1FeeJuiceAddress.toString(),
298
- abi: TestERC20Abi,
299
- client: l1Client,
300
- });
301
- return await gasL1.read.balanceOf([this.coinbase.toString()]);
302
- };
303
-
304
- this.getCoinbaseSequencerRewards = async () => {
305
- return await this.rollupContract.getSequencerRewards(this.coinbase);
306
- };
307
-
308
- this.getProverFee = async (blockNumber: number) => {
309
- const block = await this.aztecNode.getBlock(blockNumber);
310
-
311
- // @todo @lherskind As we deal with #13601
312
- // Right now the value is from `FeeLib.sol`
313
- const L1_GAS_PER_EPOCH_VERIFIED = 1000000n;
314
-
315
- // We round up
316
- const mulDiv = (a: bigint, b: bigint, c: bigint) => (a * b) / c + ((a * b) % c > 0n ? 1n : 0n);
317
-
318
- const { baseFee } = await this.rollupContract.getL1FeesAt(block!.header.globalVariables.timestamp);
319
- const proverCost =
320
- mulDiv(
321
- mulDiv(L1_GAS_PER_EPOCH_VERIFIED, baseFee, await this.rollupContract.getEpochDuration()),
322
- 1n,
323
- await this.rollupContract.getManaTarget(),
324
- ) + (await this.rollupContract.getProvingCostPerMana());
325
-
326
- const price = await this.rollupContract.getFeeAssetPerEth();
327
-
328
- const mana = block!.header.totalManaUsed.toBigInt();
329
- return mulDiv(mana * proverCost, price, 10n ** 9n);
330
- };
331
- },
332
- );
333
- }
334
-
335
- public async applySponsoredFPCSetupSnapshot() {
336
- await this.snapshotManager.snapshot(
337
- 'sponsored_fpc_setup',
338
- async context => {
339
- const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
340
- expect((await context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
341
-
342
- const sponsoredFPC = await setupSponsoredFPC(this.wallet);
343
- this.logger.info(`SponsoredFPC at ${sponsoredFPC.address}`);
344
-
345
- return {
346
- sponsoredFPCAddress: sponsoredFPC.address,
347
- };
348
- },
349
- async data => {
350
- this.sponsoredFPC = await SponsoredFPCContract.at(data.sponsoredFPCAddress, this.wallet);
351
- },
352
- );
353
- }
354
-
355
- public async applyFundAliceWithBananas() {
356
- await this.snapshotManager.snapshot(
357
- 'fund_alice',
358
- async () => {
359
- await this.mintPrivateBananas(this.ALICE_INITIAL_BANANAS, this.aliceAddress);
360
- await this.bananaCoin.methods
361
- .mint_to_public(this.aliceAddress, this.ALICE_INITIAL_BANANAS)
362
- .send({ from: this.aliceAddress })
363
- .wait();
364
- },
365
- () => Promise.resolve(),
366
- );
367
- }
368
-
369
- public async applyFundAliceWithPrivateBananas() {
370
- await this.snapshotManager.snapshot(
371
- 'fund_alice_with_private_bananas',
372
- async () => {
373
- await this.mintPrivateBananas(this.ALICE_INITIAL_BANANAS, this.aliceAddress);
374
- },
375
- () => Promise.resolve(),
376
- );
377
- }
378
- }
@@ -1,76 +0,0 @@
1
- import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import type { L2Block } from '@aztec/aztec.js/block';
3
- import { Fr } from '@aztec/aztec.js/fields';
4
- import { BatchedBlob, Blob, getPrefixedEthBlobCommitments } from '@aztec/blob-lib';
5
- import { EthAddress } from '@aztec/foundation/eth-address';
6
-
7
- import { writeFile } from 'fs/promises';
8
-
9
- const AZTEC_GENERATE_TEST_DATA = !!process.env.AZTEC_GENERATE_TEST_DATA;
10
-
11
- /**
12
- * Creates a json object that can be used to test the solidity contract.
13
- * The json object must be put into
14
- */
15
- export async function writeJson(
16
- fileName: string,
17
- block: L2Block,
18
- l1ToL2Content: Fr[],
19
- blobs: Blob[],
20
- batchedBlob: BatchedBlob,
21
- recipientAddress: AztecAddress,
22
- deployerAddress: `0x${string}`,
23
- ): Promise<void> {
24
- if (!AZTEC_GENERATE_TEST_DATA) {
25
- return;
26
- }
27
- // Path relative to the package.json in the end-to-end folder
28
- const path = `../../l1-contracts/test/fixtures/${fileName}.json`;
29
-
30
- const asHex = (value: Fr | Buffer | EthAddress | AztecAddress, size = 64) => {
31
- const buffer = Buffer.isBuffer(value) ? value : value.toBuffer();
32
- return `0x${buffer.toString('hex').padStart(size, '0')}`;
33
- };
34
-
35
- const jsonObject = {
36
- populate: {
37
- l1ToL2Content: l1ToL2Content.map(value => asHex(value)),
38
- recipient: asHex(recipientAddress.toField()),
39
- sender: deployerAddress,
40
- },
41
- messages: {
42
- l2ToL1Messages: block.body.txEffects.flatMap(txEffect => txEffect.l2ToL1Msgs).map(value => asHex(value)),
43
- },
44
- block: {
45
- // The json formatting in forge is a bit brittle, so we convert Fr to a number in the few values below.
46
- // This should not be a problem for testing as long as the values are not larger than u32.
47
- archive: asHex(block.archive.root),
48
- blobCommitments: getPrefixedEthBlobCommitments(blobs),
49
- batchedBlobInputs: batchedBlob.getEthBlobEvaluationInputs(),
50
- blockNumber: block.number,
51
- body: `0x${block.body.toBuffer().toString('hex')}`,
52
- header: {
53
- lastArchiveRoot: asHex(block.header.lastArchive.root),
54
- contentCommitment: {
55
- blobsHash: asHex(block.header.contentCommitment.blobsHash),
56
- inHash: asHex(block.header.contentCommitment.inHash),
57
- outHash: asHex(block.header.contentCommitment.outHash),
58
- },
59
- slotNumber: Number(block.header.globalVariables.slotNumber),
60
- timestamp: Number(block.header.globalVariables.timestamp),
61
- coinbase: asHex(block.header.globalVariables.coinbase, 40),
62
- feeRecipient: asHex(block.header.globalVariables.feeRecipient),
63
- gasFees: {
64
- feePerDaGas: Number(block.header.globalVariables.gasFees.feePerDaGas),
65
- feePerL2Gas: Number(block.header.globalVariables.gasFees.feePerL2Gas),
66
- },
67
- totalManaUsed: block.header.totalManaUsed.toNumber(),
68
- },
69
- headerHash: asHex(block.getCheckpointHeader().hash()),
70
- numTxs: block.body.txEffects.length,
71
- },
72
- };
73
-
74
- const output = JSON.stringify(jsonObject, null, 2);
75
- await writeFile(path, output, 'utf8');
76
- }
@@ -1,95 +0,0 @@
1
- import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import { type Logger, createLogger } from '@aztec/aztec.js/log';
3
- import type { AztecNode } from '@aztec/aztec.js/node';
4
- import type { Wallet } from '@aztec/aztec.js/wallet';
5
- import { ChildContract } from '@aztec/noir-test-contracts.js/Child';
6
- import { ParentContract } from '@aztec/noir-test-contracts.js/Parent';
7
-
8
- import {
9
- type ISnapshotManager,
10
- type SubsystemsContext,
11
- createSnapshotManager,
12
- deployAccounts,
13
- publicDeployAccounts,
14
- } from '../fixtures/snapshot_manager.js';
15
-
16
- const { E2E_DATA_PATH: dataPath } = process.env;
17
-
18
- export class NestedContractTest {
19
- private snapshotManager: ISnapshotManager;
20
- logger: Logger;
21
- wallet!: Wallet;
22
- defaultAccountAddress!: AztecAddress;
23
- aztecNode!: AztecNode;
24
-
25
- parentContract!: ParentContract;
26
- childContract!: ChildContract;
27
-
28
- constructor(
29
- testName: string,
30
- private numberOfAccounts = 1,
31
- ) {
32
- this.logger = createLogger(`e2e:e2e_nested_contract:${testName}`);
33
- this.snapshotManager = createSnapshotManager(`e2e_nested_contract/${testName}-${numberOfAccounts}`, dataPath);
34
- }
35
-
36
- /**
37
- * Adds two state shifts to snapshot manager.
38
- * 1. Add 3 accounts.
39
- * 2. Publicly deploy accounts
40
- */
41
- async applyBaseSnapshots() {
42
- await this.snapshotManager.snapshot(
43
- 'accounts',
44
- deployAccounts(this.numberOfAccounts, this.logger),
45
- ({ deployedAccounts }, { wallet, aztecNode }) => {
46
- this.wallet = wallet;
47
- [{ address: this.defaultAccountAddress }] = deployedAccounts;
48
- this.aztecNode = aztecNode;
49
- return Promise.resolve();
50
- },
51
- );
52
-
53
- await this.snapshotManager.snapshot(
54
- 'public_deploy',
55
- async () => {},
56
- async () => {
57
- this.logger.verbose(`Public deploy accounts...`);
58
- await publicDeployAccounts(this.wallet, [this.defaultAccountAddress]);
59
- },
60
- );
61
- }
62
-
63
- async setup() {
64
- await this.snapshotManager.setup();
65
- }
66
-
67
- async teardown() {
68
- await this.snapshotManager.teardown();
69
- }
70
-
71
- snapshot = <T>(
72
- name: string,
73
- apply: (context: SubsystemsContext) => Promise<T>,
74
- restore: (snapshotData: T, context: SubsystemsContext) => Promise<void> = () => Promise.resolve(),
75
- ): Promise<void> => this.snapshotManager.snapshot(name, apply, restore);
76
-
77
- async applyManualSnapshots() {
78
- await this.snapshotManager.snapshot(
79
- 'manual',
80
- async () => {
81
- const parentContract = await ParentContract.deploy(this.wallet)
82
- .send({ from: this.defaultAccountAddress })
83
- .deployed();
84
- const childContract = await ChildContract.deploy(this.wallet)
85
- .send({ from: this.defaultAccountAddress })
86
- .deployed();
87
- return { parentContractAddress: parentContract.address, childContractAddress: childContract.address };
88
- },
89
- async ({ parentContractAddress, childContractAddress }) => {
90
- this.parentContract = await ParentContract.at(parentContractAddress, this.wallet);
91
- this.childContract = await ChildContract.at(childContractAddress, this.wallet);
92
- },
93
- );
94
- }
95
- }