@aztec/end-to-end 0.0.0-test.1 → 0.0.1-commit.0208eb9

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 (247) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +62 -0
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -0
  3. package/dest/bench/client_flows/benchmark.js +281 -0
  4. package/dest/bench/client_flows/client_flows_benchmark.d.ts +79 -0
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -0
  6. package/dest/bench/client_flows/client_flows_benchmark.js +321 -0
  7. package/dest/bench/client_flows/config.d.ts +14 -0
  8. package/dest/bench/client_flows/config.d.ts.map +1 -0
  9. package/dest/bench/client_flows/config.js +106 -0
  10. package/dest/bench/client_flows/data_extractor.d.ts +2 -0
  11. package/dest/bench/client_flows/data_extractor.d.ts.map +1 -0
  12. package/dest/bench/client_flows/data_extractor.js +79 -0
  13. package/dest/bench/utils.d.ts +16 -41
  14. package/dest/bench/utils.d.ts.map +1 -1
  15. package/dest/bench/utils.js +41 -72
  16. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +26 -19
  17. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  18. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +114 -102
  19. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +32 -32
  20. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  21. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +104 -104
  22. package/dest/e2e_deploy_contract/deploy_test.d.ts +19 -10
  23. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  24. package/dest/e2e_deploy_contract/deploy_test.js +26 -27
  25. package/dest/e2e_epochs/epochs_test.d.ts +71 -22
  26. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  27. package/dest/e2e_epochs/epochs_test.js +260 -54
  28. package/dest/e2e_fees/bridging_race.notest.d.ts +2 -0
  29. package/dest/e2e_fees/bridging_race.notest.d.ts.map +1 -0
  30. package/dest/e2e_fees/bridging_race.notest.js +61 -0
  31. package/dest/e2e_fees/fees_test.d.ts +38 -23
  32. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  33. package/dest/e2e_fees/fees_test.js +162 -183
  34. package/dest/e2e_l1_publisher/write_json.d.ts +11 -0
  35. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -0
  36. package/dest/e2e_l1_publisher/write_json.js +56 -0
  37. package/dest/e2e_multi_validator/utils.d.ts +12 -0
  38. package/dest/e2e_multi_validator/utils.d.ts.map +1 -0
  39. package/dest/e2e_multi_validator/utils.js +214 -0
  40. package/dest/e2e_nested_contract/nested_contract_test.d.ts +15 -15
  41. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  42. package/dest/e2e_nested_contract/nested_contract_test.js +37 -41
  43. package/dest/e2e_p2p/inactivity_slash_test.d.ts +31 -0
  44. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -0
  45. package/dest/e2e_p2p/inactivity_slash_test.js +136 -0
  46. package/dest/e2e_p2p/p2p_network.d.ts +281 -27
  47. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  48. package/dest/e2e_p2p/p2p_network.js +237 -175
  49. package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
  50. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
  51. package/dest/e2e_p2p/reqresp/utils.js +153 -0
  52. package/dest/e2e_p2p/shared.d.ts +44 -8
  53. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  54. package/dest/e2e_p2p/shared.js +165 -27
  55. package/dest/e2e_token_contract/token_contract_test.d.ts +27 -14
  56. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  57. package/dest/e2e_token_contract/token_contract_test.js +96 -74
  58. package/dest/fixtures/e2e_prover_test.d.ts +55 -0
  59. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -0
  60. package/dest/fixtures/e2e_prover_test.js +278 -0
  61. package/dest/fixtures/fixtures.d.ts +6 -8
  62. package/dest/fixtures/fixtures.d.ts.map +1 -1
  63. package/dest/fixtures/fixtures.js +5 -5
  64. package/dest/fixtures/get_acvm_config.d.ts +2 -2
  65. package/dest/fixtures/get_acvm_config.d.ts.map +1 -1
  66. package/dest/fixtures/get_acvm_config.js +3 -15
  67. package/dest/fixtures/get_bb_config.d.ts +2 -2
  68. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  69. package/dest/fixtures/get_bb_config.js +10 -17
  70. package/dest/fixtures/ha_setup.d.ts +71 -0
  71. package/dest/fixtures/ha_setup.d.ts.map +1 -0
  72. package/dest/fixtures/ha_setup.js +114 -0
  73. package/dest/fixtures/index.d.ts +2 -1
  74. package/dest/fixtures/index.d.ts.map +1 -1
  75. package/dest/fixtures/index.js +1 -0
  76. package/dest/fixtures/l1_to_l2_messaging.d.ts +11 -7
  77. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  78. package/dest/fixtures/l1_to_l2_messaging.js +45 -19
  79. package/dest/fixtures/logging.d.ts +1 -1
  80. package/dest/fixtures/setup.d.ts +218 -0
  81. package/dest/fixtures/setup.d.ts.map +1 -0
  82. package/dest/fixtures/setup.js +695 -0
  83. package/dest/fixtures/setup_p2p_test.d.ts +15 -15
  84. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  85. package/dest/fixtures/setup_p2p_test.js +96 -31
  86. package/dest/fixtures/token_utils.d.ts +10 -4
  87. package/dest/fixtures/token_utils.d.ts.map +1 -1
  88. package/dest/fixtures/token_utils.js +31 -12
  89. package/dest/fixtures/utils.d.ts +5 -153
  90. package/dest/fixtures/utils.d.ts.map +1 -1
  91. package/dest/fixtures/utils.js +4 -552
  92. package/dest/fixtures/web3signer.d.ts +5 -0
  93. package/dest/fixtures/web3signer.d.ts.map +1 -0
  94. package/dest/fixtures/web3signer.js +53 -0
  95. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  96. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  97. package/dest/fixtures/with_telemetry_utils.js +2 -2
  98. package/dest/index.d.ts +1 -1
  99. package/dest/quality_of_service/grafana_client.d.ts +41 -0
  100. package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
  101. package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
  102. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  103. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  104. package/dest/quality_of_service/prometheus_client.js +67 -0
  105. package/dest/shared/cross_chain_test_harness.d.ts +44 -27
  106. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  107. package/dest/shared/cross_chain_test_harness.js +105 -51
  108. package/dest/shared/gas_portal_test_harness.d.ts +33 -25
  109. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  110. package/dest/shared/gas_portal_test_harness.js +51 -30
  111. package/dest/shared/index.d.ts +2 -2
  112. package/dest/shared/index.d.ts.map +1 -1
  113. package/dest/shared/jest_setup.d.ts +1 -1
  114. package/dest/shared/jest_setup.js +1 -1
  115. package/dest/shared/submit-transactions.d.ts +6 -4
  116. package/dest/shared/submit-transactions.d.ts.map +1 -1
  117. package/dest/shared/submit-transactions.js +15 -16
  118. package/dest/shared/uniswap_l1_l2.d.ts +3 -25
  119. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  120. package/dest/shared/uniswap_l1_l2.js +176 -126
  121. package/dest/simulators/index.d.ts +1 -1
  122. package/dest/simulators/lending_simulator.d.ts +7 -7
  123. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  124. package/dest/simulators/lending_simulator.js +17 -18
  125. package/dest/simulators/token_simulator.d.ts +6 -3
  126. package/dest/simulators/token_simulator.d.ts.map +1 -1
  127. package/dest/simulators/token_simulator.js +16 -13
  128. package/dest/spartan/setup_test_wallets.d.ts +27 -11
  129. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  130. package/dest/spartan/setup_test_wallets.js +233 -62
  131. package/dest/spartan/tx_metrics.d.ts +88 -0
  132. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  133. package/dest/spartan/tx_metrics.js +422 -0
  134. package/dest/spartan/utils/bot.d.ts +27 -0
  135. package/dest/spartan/utils/bot.d.ts.map +1 -0
  136. package/dest/spartan/utils/bot.js +141 -0
  137. package/dest/spartan/utils/chaos.d.ts +79 -0
  138. package/dest/spartan/utils/chaos.d.ts.map +1 -0
  139. package/dest/spartan/utils/chaos.js +142 -0
  140. package/dest/spartan/utils/clients.d.ts +39 -0
  141. package/dest/spartan/utils/clients.d.ts.map +1 -0
  142. package/dest/spartan/utils/clients.js +90 -0
  143. package/dest/spartan/utils/config.d.ts +39 -0
  144. package/dest/spartan/utils/config.d.ts.map +1 -0
  145. package/dest/spartan/utils/config.js +21 -0
  146. package/dest/spartan/utils/health.d.ts +63 -0
  147. package/dest/spartan/utils/health.d.ts.map +1 -0
  148. package/dest/spartan/utils/health.js +202 -0
  149. package/dest/spartan/utils/helm.d.ts +15 -0
  150. package/dest/spartan/utils/helm.d.ts.map +1 -0
  151. package/dest/spartan/utils/helm.js +47 -0
  152. package/dest/spartan/utils/index.d.ts +9 -0
  153. package/dest/spartan/utils/index.d.ts.map +1 -0
  154. package/dest/spartan/utils/index.js +18 -0
  155. package/dest/spartan/utils/k8s.d.ts +126 -0
  156. package/dest/spartan/utils/k8s.d.ts.map +1 -0
  157. package/dest/spartan/utils/k8s.js +375 -0
  158. package/dest/spartan/utils/nodes.d.ts +41 -0
  159. package/dest/spartan/utils/nodes.d.ts.map +1 -0
  160. package/dest/spartan/utils/nodes.js +461 -0
  161. package/dest/spartan/utils/scripts.d.ts +30 -0
  162. package/dest/spartan/utils/scripts.d.ts.map +1 -0
  163. package/dest/spartan/utils/scripts.js +81 -0
  164. package/dest/spartan/utils.d.ts +2 -415
  165. package/dest/spartan/utils.d.ts.map +1 -1
  166. package/dest/spartan/utils.js +1 -445
  167. package/package.json +69 -58
  168. package/src/bench/client_flows/benchmark.ts +363 -0
  169. package/src/bench/client_flows/client_flows_benchmark.ts +384 -0
  170. package/src/bench/client_flows/config.ts +61 -0
  171. package/src/bench/client_flows/data_extractor.ts +89 -0
  172. package/src/bench/utils.ts +41 -85
  173. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +134 -169
  174. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +156 -182
  175. package/src/e2e_deploy_contract/deploy_test.ts +40 -48
  176. package/src/e2e_epochs/epochs_test.ts +341 -81
  177. package/src/e2e_fees/bridging_race.notest.ts +74 -0
  178. package/src/e2e_fees/fees_test.ts +220 -258
  179. package/src/e2e_l1_publisher/write_json.ts +77 -0
  180. package/src/e2e_multi_validator/utils.ts +258 -0
  181. package/src/e2e_nested_contract/nested_contract_test.ts +46 -59
  182. package/src/e2e_p2p/inactivity_slash_test.ts +179 -0
  183. package/src/e2e_p2p/p2p_network.ts +341 -234
  184. package/src/e2e_p2p/reqresp/utils.ts +207 -0
  185. package/src/e2e_p2p/shared.ts +260 -39
  186. package/src/e2e_token_contract/token_contract_test.ts +115 -126
  187. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  188. package/src/fixtures/e2e_prover_test.ts +336 -0
  189. package/src/fixtures/fixtures.ts +5 -7
  190. package/src/fixtures/get_acvm_config.ts +4 -12
  191. package/src/fixtures/get_bb_config.ts +18 -13
  192. package/src/fixtures/ha_setup.ts +184 -0
  193. package/src/fixtures/index.ts +1 -0
  194. package/src/fixtures/l1_to_l2_messaging.ts +56 -24
  195. package/src/fixtures/setup.ts +1017 -0
  196. package/src/fixtures/setup_p2p_test.ts +133 -50
  197. package/src/fixtures/token_utils.ts +33 -15
  198. package/src/fixtures/utils.ts +27 -820
  199. package/src/fixtures/web3signer.ts +63 -0
  200. package/src/fixtures/with_telemetry_utils.ts +2 -2
  201. package/src/guides/up_quick_start.sh +7 -15
  202. package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +2 -2
  203. package/src/quality_of_service/prometheus_client.ts +113 -0
  204. package/src/shared/cross_chain_test_harness.ts +103 -91
  205. package/src/shared/gas_portal_test_harness.ts +59 -50
  206. package/src/shared/index.ts +1 -1
  207. package/src/shared/jest_setup.ts +1 -1
  208. package/src/shared/submit-transactions.ts +18 -20
  209. package/src/shared/uniswap_l1_l2.ts +197 -221
  210. package/src/simulators/lending_simulator.ts +16 -17
  211. package/src/simulators/token_simulator.ts +21 -13
  212. package/src/spartan/DEVELOP.md +128 -0
  213. package/src/spartan/setup_test_wallets.ts +308 -95
  214. package/src/spartan/tx_metrics.ts +376 -0
  215. package/src/spartan/utils/bot.ts +185 -0
  216. package/src/spartan/utils/chaos.ts +253 -0
  217. package/src/spartan/utils/clients.ts +100 -0
  218. package/src/spartan/utils/config.ts +27 -0
  219. package/src/spartan/utils/health.ts +255 -0
  220. package/src/spartan/utils/helm.ts +84 -0
  221. package/src/spartan/utils/index.ts +64 -0
  222. package/src/spartan/utils/k8s.ts +527 -0
  223. package/src/spartan/utils/nodes.ts +538 -0
  224. package/src/spartan/utils/scripts.ts +99 -0
  225. package/src/spartan/utils.ts +1 -582
  226. package/dest/e2e_prover/e2e_prover_test.d.ts +0 -56
  227. package/dest/e2e_prover/e2e_prover_test.d.ts.map +0 -1
  228. package/dest/e2e_prover/e2e_prover_test.js +0 -291
  229. package/dest/fixtures/setup_l1_contracts.d.ts +0 -6
  230. package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
  231. package/dest/fixtures/setup_l1_contracts.js +0 -17
  232. package/dest/fixtures/snapshot_manager.d.ts +0 -87
  233. package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
  234. package/dest/fixtures/snapshot_manager.js +0 -479
  235. package/dest/quality_of_service/alert_checker.d.ts +0 -41
  236. package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
  237. package/dest/sample-dapp/connect.js +0 -12
  238. package/dest/sample-dapp/contracts.js +0 -10
  239. package/dest/sample-dapp/deploy.js +0 -35
  240. package/dest/sample-dapp/index.js +0 -98
  241. package/src/e2e_prover/e2e_prover_test.ts +0 -418
  242. package/src/fixtures/setup_l1_contracts.ts +0 -27
  243. package/src/fixtures/snapshot_manager.ts +0 -617
  244. package/src/sample-dapp/connect.mjs +0 -16
  245. package/src/sample-dapp/contracts.mjs +0 -14
  246. package/src/sample-dapp/deploy.mjs +0 -40
  247. package/src/sample-dapp/index.mjs +0 -128
@@ -1,50 +1,82 @@
1
- import type { L1ContractAddresses, ViemPublicClient, ViemWalletClient } from '@aztec/ethereum';
2
- import { Fr } from '@aztec/foundation/fields';
1
+ import { RollupContract } from '@aztec/ethereum/contracts';
2
+ import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
3
+ import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
4
+ import { Fr } from '@aztec/foundation/curves/bn254';
5
+ import { tryJsonStringify } from '@aztec/foundation/json-rpc';
3
6
  import { InboxAbi } from '@aztec/l1-artifacts';
4
7
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
5
8
 
6
- import { expect } from '@jest/globals';
7
9
  import { decodeEventLog, getContract } from 'viem';
8
10
 
11
+ import { getLogger } from './utils.js';
12
+
9
13
  export async function sendL1ToL2Message(
10
14
  message: { recipient: AztecAddress; content: Fr; secretHash: Fr },
11
15
  ctx: {
12
- walletClient: ViemWalletClient;
13
- publicClient: ViemPublicClient;
14
- l1ContractAddresses: Pick<L1ContractAddresses, 'inboxAddress'>;
16
+ l1Client: ExtendedViemWalletClient;
17
+ l1ContractAddresses: Pick<L1ContractAddresses, 'inboxAddress' | 'rollupAddress'>;
15
18
  },
16
19
  ) {
20
+ const logger = getLogger();
17
21
  const inbox = getContract({
18
22
  address: ctx.l1ContractAddresses.inboxAddress.toString(),
19
23
  abi: InboxAbi,
20
- client: ctx.walletClient,
24
+ client: ctx.l1Client,
21
25
  });
22
26
 
23
27
  const { recipient, content, secretHash } = message;
24
- const version = 1;
28
+
29
+ const version = await new RollupContract(ctx.l1Client, ctx.l1ContractAddresses.rollupAddress.toString()).getVersion();
25
30
 
26
31
  // We inject the message to Inbox
27
- const txHash = await inbox.write.sendL2Message([
28
- { actor: recipient.toString(), version: BigInt(version) },
29
- content.toString(),
30
- secretHash.toString(),
31
- ]);
32
+ const txHash = await inbox.write.sendL2Message(
33
+ [{ actor: recipient.toString(), version: BigInt(version) }, content.toString(), secretHash.toString()],
34
+ {
35
+ gas: 1_000_000n,
36
+ },
37
+ );
38
+ logger.info(`L1 to L2 message sent in tx ${txHash}`);
32
39
 
33
40
  // We check that the message was correctly injected by checking the emitted event
34
- const txReceipt = await ctx.publicClient.waitForTransactionReceipt({ hash: txHash });
41
+ const txReceipt = await ctx.l1Client.waitForTransactionReceipt({ hash: txHash });
35
42
 
36
- // Exactly 1 event should be emitted in the transaction
37
- expect(txReceipt.logs.length).toBe(1);
43
+ if (txReceipt.status !== 'success') {
44
+ throw new Error(`L1 to L2 message failed to be sent in tx ${txHash}. Status: ${txReceipt.status}`);
45
+ }
38
46
 
39
- // We decode the event and get leaf out of it
40
- const messageSentLog = txReceipt.logs[0];
41
- const topics = decodeEventLog({
42
- abi: InboxAbi,
43
- data: messageSentLog.data,
44
- topics: messageSentLog.topics,
45
- });
47
+ logger.info(`L1 to L2 message receipt retrieved for tx ${txReceipt.transactionHash}`, txReceipt);
48
+
49
+ if (txReceipt.transactionHash !== txHash) {
50
+ throw new Error(`Receipt transaction hash mismatch: ${txReceipt.transactionHash} !== ${txHash}`);
51
+ }
52
+
53
+ // Filter for MessageSent events from the Inbox contract by trying to decode each log
54
+ const messageSentLogs = txReceipt.logs
55
+ .filter(log => log.address.toLowerCase() === ctx.l1ContractAddresses.inboxAddress.toString().toLowerCase())
56
+ .map(log => {
57
+ try {
58
+ const decoded = decodeEventLog({
59
+ abi: InboxAbi,
60
+ data: log.data,
61
+ topics: log.topics,
62
+ });
63
+ return { log, decoded };
64
+ } catch {
65
+ return null; // Not a decodable event from this ABI
66
+ }
67
+ })
68
+ .filter((item): item is { log: any; decoded: any } => item !== null && item.decoded.eventName === 'MessageSent');
69
+
70
+ if (messageSentLogs.length !== 1) {
71
+ throw new Error(
72
+ `Wrong number of MessageSent logs found in ${txHash} transaction (got ${messageSentLogs.length} expected 1)\n${tryJsonStringify(messageSentLogs.map(item => item.log))}`,
73
+ );
74
+ }
75
+
76
+ // We already have the decoded event
77
+ const topics = messageSentLogs[0].decoded;
46
78
  const receivedMsgHash = topics.args.hash;
47
79
  const receivedGlobalLeafIndex = topics.args.index;
48
80
 
49
- return [Fr.fromHexString(receivedMsgHash), new Fr(receivedGlobalLeafIndex)];
81
+ return { msgHash: Fr.fromHexString(receivedMsgHash), globalLeafIndex: new Fr(receivedGlobalLeafIndex), txReceipt };
50
82
  }