@aztec/end-to-end 0.0.1-commit.179ed20 → 0.0.1-commit.181e2d196

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 (166) hide show
  1. package/dest/bench/client_flows/client_flows_benchmark.d.ts +2 -2
  2. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/client_flows_benchmark.js +4 -3
  4. package/dest/bench/client_flows/config.d.ts +2 -2
  5. package/dest/bench/client_flows/config.d.ts.map +1 -1
  6. package/dest/bench/client_flows/config.js +18 -0
  7. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +4 -2
  8. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  9. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +10 -0
  10. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +2 -2
  11. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  12. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +3 -2
  13. package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -2
  14. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  15. package/dest/e2e_epochs/epochs_test.d.ts +9 -7
  16. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  17. package/dest/e2e_epochs/epochs_test.js +58 -33
  18. package/dest/e2e_fees/fees_test.d.ts +2 -2
  19. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  20. package/dest/e2e_fees/fees_test.js +6 -6
  21. package/dest/e2e_p2p/p2p_network.d.ts +4 -3
  22. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  23. package/dest/e2e_p2p/p2p_network.js +21 -3
  24. package/dest/e2e_p2p/reqresp/utils.d.ts +3 -3
  25. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -1
  26. package/dest/e2e_p2p/reqresp/utils.js +32 -8
  27. package/dest/e2e_p2p/shared.d.ts +16 -2
  28. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  29. package/dest/e2e_p2p/shared.js +29 -2
  30. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
  31. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
  32. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
  33. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
  34. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
  35. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
  36. package/dest/e2e_token_contract/token_contract_test.d.ts +4 -2
  37. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  38. package/dest/e2e_token_contract/token_contract_test.js +10 -0
  39. package/dest/fixtures/authwit_proxy.d.ts +15 -0
  40. package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
  41. package/dest/fixtures/authwit_proxy.js +30 -0
  42. package/dest/fixtures/e2e_prover_test.d.ts +4 -4
  43. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  44. package/dest/fixtures/e2e_prover_test.js +27 -34
  45. package/dest/fixtures/elu_monitor.d.ts +21 -0
  46. package/dest/fixtures/elu_monitor.d.ts.map +1 -0
  47. package/dest/fixtures/elu_monitor.js +102 -0
  48. package/dest/fixtures/fixtures.d.ts +5 -1
  49. package/dest/fixtures/fixtures.d.ts.map +1 -1
  50. package/dest/fixtures/fixtures.js +6 -0
  51. package/dest/fixtures/ha_setup.d.ts +71 -0
  52. package/dest/fixtures/ha_setup.d.ts.map +1 -0
  53. package/dest/fixtures/ha_setup.js +116 -0
  54. package/dest/fixtures/index.d.ts +2 -1
  55. package/dest/fixtures/index.d.ts.map +1 -1
  56. package/dest/fixtures/index.js +1 -0
  57. package/dest/fixtures/setup.d.ts +39 -23
  58. package/dest/fixtures/setup.d.ts.map +1 -1
  59. package/dest/fixtures/setup.js +59 -149
  60. package/dest/fixtures/setup_p2p_test.d.ts +15 -7
  61. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  62. package/dest/fixtures/setup_p2p_test.js +18 -12
  63. package/dest/fixtures/token_utils.d.ts +2 -2
  64. package/dest/fixtures/token_utils.d.ts.map +1 -1
  65. package/dest/fixtures/token_utils.js +3 -2
  66. package/dest/shared/index.d.ts +2 -1
  67. package/dest/shared/index.d.ts.map +1 -1
  68. package/dest/shared/index.js +1 -0
  69. package/dest/shared/jest_setup.js +41 -1
  70. package/dest/shared/mock_state_view.d.ts +86 -0
  71. package/dest/shared/mock_state_view.d.ts.map +1 -0
  72. package/dest/shared/mock_state_view.js +186 -0
  73. package/dest/shared/submit-transactions.d.ts +2 -2
  74. package/dest/shared/submit-transactions.d.ts.map +1 -1
  75. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  76. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  77. package/dest/shared/uniswap_l1_l2.js +8 -6
  78. package/dest/simulators/token_simulator.d.ts +1 -1
  79. package/dest/simulators/token_simulator.d.ts.map +1 -1
  80. package/dest/simulators/token_simulator.js +2 -23
  81. package/dest/spartan/setup_test_wallets.d.ts +9 -2
  82. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  83. package/dest/spartan/setup_test_wallets.js +31 -1
  84. package/dest/spartan/tx_metrics.js +1 -1
  85. package/dest/spartan/utils/bot.d.ts +3 -2
  86. package/dest/spartan/utils/bot.d.ts.map +1 -1
  87. package/dest/spartan/utils/bot.js +2 -1
  88. package/dest/spartan/utils/config.d.ts +7 -1
  89. package/dest/spartan/utils/config.d.ts.map +1 -1
  90. package/dest/spartan/utils/config.js +3 -1
  91. package/dest/spartan/utils/index.d.ts +4 -3
  92. package/dest/spartan/utils/index.d.ts.map +1 -1
  93. package/dest/spartan/utils/index.js +3 -1
  94. package/dest/spartan/utils/k8s.d.ts +3 -1
  95. package/dest/spartan/utils/k8s.d.ts.map +1 -1
  96. package/dest/spartan/utils/k8s.js +6 -0
  97. package/dest/spartan/utils/nodes.d.ts +4 -5
  98. package/dest/spartan/utils/nodes.d.ts.map +1 -1
  99. package/dest/spartan/utils/nodes.js +9 -9
  100. package/dest/spartan/utils/scripts.d.ts +18 -4
  101. package/dest/spartan/utils/scripts.d.ts.map +1 -1
  102. package/dest/spartan/utils/scripts.js +19 -4
  103. package/dest/test-wallet/test_wallet.d.ts +83 -0
  104. package/dest/test-wallet/test_wallet.d.ts.map +1 -0
  105. package/dest/test-wallet/test_wallet.js +214 -0
  106. package/dest/test-wallet/utils.d.ts +41 -0
  107. package/dest/test-wallet/utils.d.ts.map +1 -0
  108. package/dest/test-wallet/utils.js +71 -0
  109. package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
  110. package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
  111. package/dest/test-wallet/wallet_worker_script.js +48 -0
  112. package/dest/test-wallet/worker_wallet.d.ts +52 -0
  113. package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
  114. package/dest/test-wallet/worker_wallet.js +151 -0
  115. package/dest/test-wallet/worker_wallet_schema.d.ts +274 -0
  116. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
  117. package/dest/test-wallet/worker_wallet_schema.js +10 -0
  118. package/package.json +46 -43
  119. package/src/bench/client_flows/client_flows_benchmark.ts +9 -12
  120. package/src/bench/client_flows/config.ts +9 -1
  121. package/src/bench/utils.ts +1 -1
  122. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +11 -2
  123. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +7 -8
  124. package/src/e2e_deploy_contract/deploy_test.ts +3 -3
  125. package/src/e2e_epochs/epochs_test.ts +73 -63
  126. package/src/e2e_fees/bridging_race.notest.ts +1 -1
  127. package/src/e2e_fees/fees_test.ts +12 -27
  128. package/src/e2e_nested_contract/nested_contract_test.ts +1 -1
  129. package/src/e2e_p2p/inactivity_slash_test.ts +4 -4
  130. package/src/e2e_p2p/p2p_network.ts +32 -7
  131. package/src/e2e_p2p/reqresp/utils.ts +40 -12
  132. package/src/e2e_p2p/shared.ts +47 -2
  133. package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
  134. package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
  135. package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
  136. package/src/e2e_token_contract/token_contract_test.ts +11 -2
  137. package/src/fixtures/authwit_proxy.ts +50 -0
  138. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  139. package/src/fixtures/e2e_prover_test.ts +28 -38
  140. package/src/fixtures/elu_monitor.ts +126 -0
  141. package/src/fixtures/fixtures.ts +10 -0
  142. package/src/fixtures/ha_setup.ts +186 -0
  143. package/src/fixtures/index.ts +1 -0
  144. package/src/fixtures/setup.ts +91 -213
  145. package/src/fixtures/setup_p2p_test.ts +25 -24
  146. package/src/fixtures/token_utils.ts +2 -1
  147. package/src/guides/up_quick_start.sh +3 -3
  148. package/src/shared/index.ts +1 -0
  149. package/src/shared/jest_setup.ts +51 -1
  150. package/src/shared/mock_state_view.ts +188 -0
  151. package/src/shared/submit-transactions.ts +6 -2
  152. package/src/shared/uniswap_l1_l2.ts +9 -11
  153. package/src/simulators/token_simulator.ts +1 -29
  154. package/src/spartan/setup_test_wallets.ts +58 -4
  155. package/src/spartan/tx_metrics.ts +1 -1
  156. package/src/spartan/utils/bot.ts +4 -1
  157. package/src/spartan/utils/config.ts +2 -0
  158. package/src/spartan/utils/index.ts +5 -1
  159. package/src/spartan/utils/k8s.ts +8 -0
  160. package/src/spartan/utils/nodes.ts +15 -10
  161. package/src/spartan/utils/scripts.ts +43 -7
  162. package/src/test-wallet/test_wallet.ts +306 -0
  163. package/src/test-wallet/utils.ts +112 -0
  164. package/src/test-wallet/wallet_worker_script.ts +60 -0
  165. package/src/test-wallet/worker_wallet.ts +213 -0
  166. package/src/test-wallet/worker_wallet_schema.ts +13 -0
@@ -6,12 +6,13 @@ import { Fr } from '@aztec/aztec.js/fields';
6
6
  import type { Logger } from '@aztec/aztec.js/log';
7
7
  import { TxHash } from '@aztec/aztec.js/tx';
8
8
  import type { RollupCheatCodes } from '@aztec/aztec/testing';
9
+ import type { EpochCacheInterface } from '@aztec/epoch-cache';
9
10
  import type {
10
11
  EmpireSlashingProposerContract,
11
12
  RollupContract,
12
13
  TallySlashingProposerContract,
13
14
  } from '@aztec/ethereum/contracts';
14
- import { EpochNumber } from '@aztec/foundation/branded-types';
15
+ import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
15
16
  import { timesAsync, unique } from '@aztec/foundation/collection';
16
17
  import { EthAddress } from '@aztec/foundation/eth-address';
17
18
  import { retryUntil } from '@aztec/foundation/retry';
@@ -22,9 +23,10 @@ import { getPXEConfig, getPXEConfig as getRpcConfig } from '@aztec/pxe/server';
22
23
  import { getRoundForOffense } from '@aztec/slasher';
23
24
  import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
24
25
  import type { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
25
- import { type ProvenTx, TestWallet, proveInteraction } from '@aztec/test-wallet/server';
26
26
 
27
27
  import { submitTxsTo } from '../shared/submit-transactions.js';
28
+ import { TestWallet } from '../test-wallet/test_wallet.js';
29
+ import { type ProvenTx, proveInteraction } from '../test-wallet/utils.js';
28
30
 
29
31
  // submits a set of transactions to the provided Private eXecution Environment (PXE)
30
32
  export const submitComplexTxsTo = async (
@@ -145,9 +147,52 @@ export async function awaitCommitteeExists({
145
147
  'non-empty committee',
146
148
  60,
147
149
  );
150
+ logger.warn(`Committee has been formed`, { committee: committee!.map(c => c.toString()) });
148
151
  return committee!.map(c => c.toString() as `0x${string}`);
149
152
  }
150
153
 
154
+ /**
155
+ * Advance epochs until we find one where the target proposer is selected for at least one slot.
156
+ * With N validators and M slots per epoch, a specific proposer may not be selected in any given epoch.
157
+ * For example, with 4 validators and 2 slots/epoch, there is about a 44% chance per epoch.
158
+ */
159
+ export async function awaitEpochWithProposer({
160
+ epochCache,
161
+ cheatCodes,
162
+ targetProposer,
163
+ logger,
164
+ maxAttempts = 20,
165
+ }: {
166
+ epochCache: EpochCacheInterface;
167
+ cheatCodes: RollupCheatCodes;
168
+ targetProposer: EthAddress;
169
+ logger: Logger;
170
+ maxAttempts?: number;
171
+ }): Promise<void> {
172
+ const { epochDuration } = await cheatCodes.getConfig();
173
+
174
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
175
+ const currentEpoch = await cheatCodes.getEpoch();
176
+ const startSlot = Number(currentEpoch) * Number(epochDuration);
177
+ const endSlot = startSlot + Number(epochDuration);
178
+
179
+ logger.info(`Checking epoch ${currentEpoch} (slots ${startSlot}-${endSlot - 1}) for proposer ${targetProposer}`);
180
+
181
+ for (let s = startSlot; s < endSlot; s++) {
182
+ const proposer = await epochCache.getProposerAttesterAddressInSlot(SlotNumber(s));
183
+ if (proposer && proposer.equals(targetProposer)) {
184
+ logger.warn(`Found target proposer ${targetProposer} in slot ${s} of epoch ${currentEpoch}`);
185
+ return;
186
+ }
187
+ }
188
+
189
+ logger.info(`Target proposer not found in epoch ${currentEpoch}, advancing to next epoch`);
190
+ await cheatCodes.advanceToNextEpoch();
191
+ }
192
+
193
+ throw new Error(`Target proposer ${targetProposer} not found in any slot after ${maxAttempts} epoch attempts`);
194
+ }
195
+
151
196
  export async function awaitOffenseDetected({
152
197
  logger,
153
198
  nodeAdmin,