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

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 (150) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +1 -1
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/client_flows_benchmark.d.ts +10 -3
  4. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  5. package/dest/bench/client_flows/client_flows_benchmark.js +58 -33
  6. package/dest/bench/client_flows/config.d.ts +1 -1
  7. package/dest/bench/client_flows/data_extractor.d.ts +1 -1
  8. package/dest/bench/client_flows/data_extractor.js +5 -27
  9. package/dest/bench/utils.d.ts +3 -3
  10. package/dest/bench/utils.d.ts.map +1 -1
  11. package/dest/bench/utils.js +10 -6
  12. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +1 -1
  13. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  14. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +2 -2
  15. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +5 -4
  16. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  17. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +6 -4
  18. package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -2
  19. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  20. package/dest/e2e_epochs/epochs_test.d.ts +11 -9
  21. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  22. package/dest/e2e_epochs/epochs_test.js +17 -14
  23. package/dest/e2e_fees/bridging_race.notest.d.ts +1 -1
  24. package/dest/e2e_fees/bridging_race.notest.js +2 -2
  25. package/dest/e2e_fees/fees_test.d.ts +8 -4
  26. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  27. package/dest/e2e_fees/fees_test.js +16 -10
  28. package/dest/e2e_l1_publisher/write_json.d.ts +1 -1
  29. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  30. package/dest/e2e_l1_publisher/write_json.js +5 -4
  31. package/dest/e2e_multi_validator/utils.d.ts +1 -1
  32. package/dest/e2e_multi_validator/utils.js +1 -1
  33. package/dest/e2e_nested_contract/nested_contract_test.d.ts +1 -1
  34. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  35. package/dest/e2e_nested_contract/nested_contract_test.js +4 -3
  36. package/dest/e2e_p2p/inactivity_slash_test.d.ts +3 -3
  37. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  38. package/dest/e2e_p2p/inactivity_slash_test.js +4 -3
  39. package/dest/e2e_p2p/p2p_network.d.ts +219 -13
  40. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  41. package/dest/e2e_p2p/p2p_network.js +15 -11
  42. package/dest/e2e_p2p/shared.d.ts +6 -6
  43. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  44. package/dest/e2e_p2p/shared.js +6 -5
  45. package/dest/e2e_token_contract/token_contract_test.d.ts +1 -1
  46. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  47. package/dest/e2e_token_contract/token_contract_test.js +2 -2
  48. package/dest/fixtures/e2e_prover_test.d.ts +5 -5
  49. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  50. package/dest/fixtures/e2e_prover_test.js +23 -22
  51. package/dest/fixtures/fixtures.d.ts +2 -3
  52. package/dest/fixtures/fixtures.d.ts.map +1 -1
  53. package/dest/fixtures/fixtures.js +2 -3
  54. package/dest/fixtures/get_acvm_config.d.ts +1 -1
  55. package/dest/fixtures/get_acvm_config.js +1 -1
  56. package/dest/fixtures/get_bb_config.d.ts +1 -1
  57. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  58. package/dest/fixtures/index.d.ts +1 -1
  59. package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
  60. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  61. package/dest/fixtures/l1_to_l2_messaging.js +2 -2
  62. package/dest/fixtures/logging.d.ts +1 -1
  63. package/dest/fixtures/setup_p2p_test.d.ts +4 -4
  64. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  65. package/dest/fixtures/setup_p2p_test.js +18 -10
  66. package/dest/fixtures/snapshot_manager.d.ts +6 -8
  67. package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
  68. package/dest/fixtures/snapshot_manager.js +34 -46
  69. package/dest/fixtures/token_utils.d.ts +5 -2
  70. package/dest/fixtures/token_utils.d.ts.map +1 -1
  71. package/dest/fixtures/token_utils.js +7 -4
  72. package/dest/fixtures/utils.d.ts +21 -19
  73. package/dest/fixtures/utils.d.ts.map +1 -1
  74. package/dest/fixtures/utils.js +56 -85
  75. package/dest/fixtures/web3signer.d.ts +1 -1
  76. package/dest/fixtures/web3signer.js +1 -1
  77. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  78. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  79. package/dest/fixtures/with_telemetry_utils.js +2 -2
  80. package/dest/index.d.ts +1 -1
  81. package/dest/quality_of_service/alert_checker.d.ts +1 -1
  82. package/dest/quality_of_service/alert_checker.d.ts.map +1 -1
  83. package/dest/shared/cross_chain_test_harness.d.ts +5 -14
  84. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  85. package/dest/shared/cross_chain_test_harness.js +1 -1
  86. package/dest/shared/gas_portal_test_harness.d.ts +2 -12
  87. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  88. package/dest/shared/gas_portal_test_harness.js +1 -1
  89. package/dest/shared/index.d.ts +1 -1
  90. package/dest/shared/jest_setup.d.ts +1 -1
  91. package/dest/shared/submit-transactions.d.ts +1 -1
  92. package/dest/shared/submit-transactions.d.ts.map +1 -1
  93. package/dest/shared/uniswap_l1_l2.d.ts +4 -3
  94. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  95. package/dest/shared/uniswap_l1_l2.js +15 -13
  96. package/dest/simulators/index.d.ts +1 -1
  97. package/dest/simulators/lending_simulator.d.ts +2 -6
  98. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  99. package/dest/simulators/lending_simulator.js +5 -3
  100. package/dest/simulators/token_simulator.d.ts +1 -1
  101. package/dest/simulators/token_simulator.d.ts.map +1 -1
  102. package/dest/spartan/setup_test_wallets.d.ts +5 -3
  103. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  104. package/dest/spartan/setup_test_wallets.js +45 -10
  105. package/dest/spartan/tx_metrics.d.ts +39 -0
  106. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  107. package/dest/spartan/tx_metrics.js +95 -0
  108. package/dest/spartan/utils.d.ts +55 -20
  109. package/dest/spartan/utils.d.ts.map +1 -1
  110. package/dest/spartan/utils.js +203 -60
  111. package/package.json +42 -40
  112. package/src/bench/client_flows/client_flows_benchmark.ts +82 -34
  113. package/src/bench/client_flows/data_extractor.ts +6 -28
  114. package/src/bench/utils.ts +11 -7
  115. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +2 -2
  116. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +17 -12
  117. package/src/e2e_deploy_contract/deploy_test.ts +1 -1
  118. package/src/e2e_epochs/epochs_test.ts +37 -23
  119. package/src/e2e_fees/bridging_race.notest.ts +2 -2
  120. package/src/e2e_fees/fees_test.ts +22 -13
  121. package/src/e2e_l1_publisher/write_json.ts +5 -4
  122. package/src/e2e_multi_validator/utils.ts +1 -1
  123. package/src/e2e_nested_contract/nested_contract_test.ts +4 -3
  124. package/src/e2e_p2p/inactivity_slash_test.ts +5 -4
  125. package/src/e2e_p2p/p2p_network.ts +16 -19
  126. package/src/e2e_p2p/shared.ts +13 -6
  127. package/src/e2e_token_contract/token_contract_test.ts +2 -2
  128. package/src/fixtures/e2e_prover_test.ts +22 -25
  129. package/src/fixtures/fixtures.ts +2 -5
  130. package/src/fixtures/get_acvm_config.ts +1 -1
  131. package/src/fixtures/l1_to_l2_messaging.ts +4 -2
  132. package/src/fixtures/setup_p2p_test.ts +23 -9
  133. package/src/fixtures/snapshot_manager.ts +51 -65
  134. package/src/fixtures/token_utils.ts +4 -4
  135. package/src/fixtures/utils.ts +91 -131
  136. package/src/fixtures/web3signer.ts +1 -1
  137. package/src/fixtures/with_telemetry_utils.ts +2 -2
  138. package/src/guides/up_quick_start.sh +1 -1
  139. package/src/shared/cross_chain_test_harness.ts +5 -2
  140. package/src/shared/gas_portal_test_harness.ts +2 -2
  141. package/src/shared/uniswap_l1_l2.ts +19 -21
  142. package/src/simulators/lending_simulator.ts +6 -4
  143. package/src/spartan/DEVELOP.md +7 -0
  144. package/src/spartan/setup_test_wallets.ts +49 -12
  145. package/src/spartan/tx_metrics.ts +130 -0
  146. package/src/spartan/utils.ts +267 -51
  147. package/dest/fixtures/setup_l1_contracts.d.ts +0 -6
  148. package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
  149. package/dest/fixtures/setup_l1_contracts.js +0 -17
  150. package/src/fixtures/setup_l1_contracts.ts +0 -26
@@ -2,8 +2,10 @@ import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
2
2
  import { computeAuthWitMessageHash } from '@aztec/aztec.js/authorization';
3
3
  import { generateClaimSecret } from '@aztec/aztec.js/ethereum';
4
4
  import { Fr } from '@aztec/aztec.js/fields';
5
- import { RollupContract, deployL1Contract, extractEvent } from '@aztec/ethereum';
6
- import { sha256ToField } from '@aztec/foundation/crypto';
5
+ import { RollupContract } from '@aztec/ethereum/contracts';
6
+ import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
7
+ import { extractEvent } from '@aztec/ethereum/utils';
8
+ import { sha256ToField } from '@aztec/foundation/crypto/sha256';
7
9
  import { InboxAbi, UniswapPortalAbi, UniswapPortalBytecode } from '@aztec/l1-artifacts';
8
10
  import { UniswapContract } from '@aztec/noir-contracts.js/Uniswap';
9
11
  import { computeL2ToL1MessageHash } from '@aztec/stdlib/hash';
@@ -159,7 +161,7 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
159
161
  // ensure that uniswap contract didn't eat the funds.
160
162
  await wethCrossChainHarness.expectPublicBalanceOnL2(uniswapL2Contract.address, 0n);
161
163
  // Since the outbox is only consumable when the block is proven, we need to set the block to be proven
162
- await cheatCodes.rollup.markAsProven(await rollup.getBlockNumber());
164
+ await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
163
165
  // 5. Consume L2 to L1 message by calling uniswapPortal.swap_private()
164
166
  logger.info('Execute withdraw and swap on the uniswapPortal!');
165
167
  const daiL1BalanceOfPortalBeforeSwap = await daiCrossChainHarness.getL1BalanceOf(daiCrossChainHarness.tokenPortalAddress);
@@ -170,12 +172,12 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
170
172
  const withdrawL2MessageIndex = withdrawResult.leafIndex;
171
173
  const withdrawSiblingPath = withdrawResult.siblingPath;
172
174
  const withdrawMessageMetadata = {
173
- _l2BlockNumber: BigInt(l2UniswapInteractionReceipt.blockNumber),
175
+ _checkpointNumber: BigInt(l2UniswapInteractionReceipt.blockNumber),
174
176
  _leafIndex: BigInt(withdrawL2MessageIndex),
175
177
  _path: withdrawSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
176
178
  };
177
179
  const swapPrivateMessageMetadata = {
178
- _l2BlockNumber: BigInt(l2UniswapInteractionReceipt.blockNumber),
180
+ _checkpointNumber: BigInt(l2UniswapInteractionReceipt.blockNumber),
179
181
  _leafIndex: BigInt(swapPrivateL2MessageIndex),
180
182
  _path: swapPrivateSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
181
183
  };
@@ -357,14 +359,14 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
357
359
  // withdrawLeaf,
358
360
  // );
359
361
  // const withdrawMessageMetadata = {
360
- // _l2BlockNumber: BigInt(uniswapL2Interaction.blockNumber!),
362
+ // _checkpointNumber: BigInt(uniswapL2Interaction.blockNumber!),
361
363
  // _leafIndex: BigInt(withdrawL2MessageIndex),
362
364
  // _path: withdrawSiblingPath
363
365
  // .toBufferArray()
364
366
  // .map((buf: Buffer) => `0x${buf.toString('hex')}`) as readonly `0x${string}`[],
365
367
  // };
366
368
  // const swapPrivateMessageMetadata = {
367
- // _l2BlockNumber: BigInt(uniswapL2Interaction.blockNumber!),
369
+ // _checkpointNumber: BigInt(uniswapL2Interaction.blockNumber!),
368
370
  // _leafIndex: BigInt(swapPrivateL2MessageIndex),
369
371
  // _path: swapPrivateSiblingPath
370
372
  // .toBufferArray()
@@ -569,19 +571,19 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
569
571
  const withdrawL2MessageIndex = withdrawResult.leafIndex;
570
572
  const withdrawSiblingPath = withdrawResult.siblingPath;
571
573
  const withdrawMessageMetadata = {
572
- _l2BlockNumber: BigInt(withdrawReceipt.blockNumber),
574
+ _checkpointNumber: BigInt(withdrawReceipt.blockNumber),
573
575
  _leafIndex: BigInt(withdrawL2MessageIndex),
574
576
  _path: withdrawSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
575
577
  };
576
578
  const swapPrivateMessageMetadata = {
577
- _l2BlockNumber: BigInt(withdrawReceipt.blockNumber),
579
+ _checkpointNumber: BigInt(withdrawReceipt.blockNumber),
578
580
  _leafIndex: BigInt(swapPrivateL2MessageIndex),
579
581
  _path: swapPrivateSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
580
582
  };
581
583
  // ensure that user's funds were burnt
582
584
  await wethCrossChainHarness.expectPrivateBalanceOnL2(ownerAddress, wethL2BalanceBeforeSwap - wethAmountToBridge);
583
585
  // Since the outbox is only consumable when the block is proven, we need to set the block to be proven
584
- await cheatCodes.rollup.markAsProven(await rollup.getBlockNumber());
586
+ await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
585
587
  // On L1 call swap_public!
586
588
  logger.info('call swap_public on L1');
587
589
  const swapArgs = [
@@ -655,19 +657,19 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
655
657
  const withdrawL2MessageIndex = withdrawResult.leafIndex;
656
658
  const withdrawSiblingPath = withdrawResult.siblingPath;
657
659
  const withdrawMessageMetadata = {
658
- _l2BlockNumber: BigInt(withdrawReceipt.blockNumber),
660
+ _checkpointNumber: BigInt(withdrawReceipt.blockNumber),
659
661
  _leafIndex: BigInt(withdrawL2MessageIndex),
660
662
  _path: withdrawSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
661
663
  };
662
664
  const swapPublicMessageMetadata = {
663
- _l2BlockNumber: BigInt(withdrawReceipt.blockNumber),
665
+ _checkpointNumber: BigInt(withdrawReceipt.blockNumber),
664
666
  _leafIndex: BigInt(swapPublicL2MessageIndex),
665
667
  _path: swapPublicSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
666
668
  };
667
669
  // check weth balance of owner on L2 (we first bridged `wethAmountToBridge` into L2 and now withdrew it!)
668
670
  await wethCrossChainHarness.expectPublicBalanceOnL2(ownerAddress, 0n);
669
671
  // Since the outbox is only consumable when the block is proven, we need to set the block to be proven
670
- await cheatCodes.rollup.markAsProven(await rollup.getBlockNumber());
672
+ await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
671
673
  // Call swap_private on L1
672
674
  logger.info('Execute withdraw and swap on the uniswapPortal!');
673
675
  const swapArgs = [
@@ -1,3 +1,3 @@
1
1
  export * from './lending_simulator.js';
2
2
  export * from './token_simulator.js';
3
- //# sourceMappingURL=index.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaW11bGF0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQyJ9
@@ -1,7 +1,7 @@
1
1
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
2
  import { Fr } from '@aztec/aztec.js/fields';
3
3
  import { CheatCodes } from '@aztec/aztec/testing';
4
- import type { RollupContract } from '@aztec/ethereum';
4
+ import type { RollupContract } from '@aztec/ethereum/contracts';
5
5
  import type { TestDateProvider } from '@aztec/foundation/timer';
6
6
  import type { LendingContract } from '@aztec/noir-contracts.js/Lending';
7
7
  import type { TokenSimulator } from './token_simulator.js';
@@ -28,13 +28,9 @@ export declare class LendingSimulator {
28
28
  private account;
29
29
  private rate;
30
30
  private ethereumSlotDuration;
31
- /** the rollup contract */
32
31
  rollup: RollupContract;
33
- /** the lending contract */
34
32
  lendingContract: LendingContract;
35
- /** the collateral asset used in the lending contract */
36
33
  collateralAsset: TokenSimulator;
37
- /** the stable-coin borrowed in the lending contract */
38
34
  stableCoin: TokenSimulator;
39
35
  /** interest rate accumulator */
40
36
  accumulator: bigint;
@@ -66,4 +62,4 @@ export declare class LendingSimulator {
66
62
  mintStableCoinOutsideLoan(recipient: AztecAddress, amount: bigint, priv?: boolean): void;
67
63
  check(): Promise<void>;
68
64
  }
69
- //# sourceMappingURL=lending_simulator.d.ts.map
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVuZGluZ19zaW11bGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaW11bGF0b3JzL2xlbmRpbmdfc2ltdWxhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR2hFLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFeEUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0Q7O0dBRUc7QUFDSCxxQkFBYSxjQUFjO0lBQ3pCLHlDQUF5QztJQUN6QyxTQUFnQixPQUFPLEVBQUUsWUFBWSxDQUFDO0lBQ3RDLDJDQUEyQztJQUMzQyxTQUFnQixNQUFNLEVBQUUsRUFBRSxDQUFDO0lBRTNCLFlBQVksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUc1QztJQUVEOzs7T0FHRztJQUNJLEdBQUcsZ0JBRVQ7Q0FDRjtBQWdDRDs7R0FFRztBQUNILHFCQUFhLGdCQUFnQjtJQVl6QixPQUFPLENBQUMsRUFBRTtJQUNWLE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLElBQUk7SUFDWixPQUFPLENBQUMsb0JBQW9CO0lBRXJCLE1BQU0sRUFBRSxjQUFjO0lBRXRCLGVBQWUsRUFBRSxlQUFlO0lBRWhDLGVBQWUsRUFBRSxjQUFjO0lBRS9CLFVBQVUsRUFBRSxjQUFjO0lBdEJuQyxnQ0FBZ0M7SUFDekIsV0FBVyxFQUFFLE1BQU0sQ0FBTTtJQUNoQyxvQ0FBb0M7SUFDN0IsSUFBSSxFQUFFLE1BQU0sQ0FBSztJQUV4QixPQUFPLENBQUMsVUFBVSxDQUE2QjtJQUMvQyxPQUFPLENBQUMsVUFBVSxDQUE2QjtJQUMvQyxPQUFPLENBQUMsUUFBUSxDQUFjO0lBQzlCLE9BQU8sQ0FBQyxhQUFhLENBQWM7SUFFbkMsWUFDVSxFQUFFLEVBQUUsVUFBVSxFQUNkLE9BQU8sRUFBRSxjQUFjLEVBQ3ZCLElBQUksRUFBRSxNQUFNLEVBQ1osb0JBQW9CLEVBQUUsTUFBTTtJQUNwQywwQkFBMEI7SUFDbkIsTUFBTSxFQUFFLGNBQWM7SUFDN0IsMkJBQTJCO0lBQ3BCLGVBQWUsRUFBRSxlQUFlO0lBQ3ZDLHdEQUF3RDtJQUNqRCxlQUFlLEVBQUUsY0FBYztJQUN0Qyx1REFBdUQ7SUFDaEQsVUFBVSxFQUFFLGNBQWMsRUFDL0I7SUFFRSxPQUFPLGtCQUlaO0lBRUssYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsZ0JBQWdCLGlCQWtCaEU7SUFFRCxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBR2hFO0lBRUQsYUFBYSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUcvRDtJQUVELE9BQU8sQ0FBQyxPQUFPO0lBS2YsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUkxRDtJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFPeEQ7SUFFRCxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBRzlEO0lBRUQsV0FBVyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUc3RDtJQUVELE9BQU8sQ0FBQyxLQUFLO0lBUWIseUJBQXlCLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksVUFBUSxRQU85RTtJQUVLLEtBQUssa0JBeUJWO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"lending_simulator.d.ts","sourceRoot":"","sources":["../../src/simulators/lending_simulator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;GAEG;AACH,qBAAa,cAAc;IACzB,yCAAyC;IACzC,SAAgB,OAAO,EAAE,YAAY,CAAC;IACtC,2CAA2C;IAC3C,SAAgB,MAAM,EAAE,EAAE,CAAC;gBAEf,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE;IAK7C;;;OAGG;IACI,GAAG;CAGX;AAgCD;;GAEG;AACH,qBAAa,gBAAgB;IAYzB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,oBAAoB;IAC5B,0BAA0B;IACnB,MAAM,EAAE,cAAc;IAC7B,2BAA2B;IACpB,eAAe,EAAE,eAAe;IACvC,wDAAwD;IACjD,eAAe,EAAE,cAAc;IACtC,uDAAuD;IAChD,UAAU,EAAE,cAAc;IAtBnC,gCAAgC;IACzB,WAAW,EAAE,MAAM,CAAM;IAChC,oCAAoC;IAC7B,IAAI,EAAE,MAAM,CAAK;IAExB,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,aAAa,CAAc;gBAGzB,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,MAAM;IACpC,0BAA0B;IACnB,MAAM,EAAE,cAAc;IAC7B,2BAA2B;IACpB,eAAe,EAAE,eAAe;IACvC,wDAAwD;IACjD,eAAe,EAAE,cAAc;IACtC,uDAAuD;IAChD,UAAU,EAAE,cAAc;IAG7B,OAAO;IAMP,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,gBAAgB;IAmBjE,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM;IAKjE,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM;IAKhE,OAAO,CAAC,OAAO;IAKf,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAM3D,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IASzD,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM;IAK/D,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM;IAK9D,OAAO,CAAC,KAAK;IAQb,yBAAyB,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,UAAQ;IASzE,KAAK;CA0BZ"}
1
+ {"version":3,"file":"lending_simulator.d.ts","sourceRoot":"","sources":["../../src/simulators/lending_simulator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;GAEG;AACH,qBAAa,cAAc;IACzB,yCAAyC;IACzC,SAAgB,OAAO,EAAE,YAAY,CAAC;IACtC,2CAA2C;IAC3C,SAAgB,MAAM,EAAE,EAAE,CAAC;IAE3B,YAAY,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAG5C;IAED;;;OAGG;IACI,GAAG,gBAET;CACF;AAgCD;;GAEG;AACH,qBAAa,gBAAgB;IAYzB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,oBAAoB;IAErB,MAAM,EAAE,cAAc;IAEtB,eAAe,EAAE,eAAe;IAEhC,eAAe,EAAE,cAAc;IAE/B,UAAU,EAAE,cAAc;IAtBnC,gCAAgC;IACzB,WAAW,EAAE,MAAM,CAAM;IAChC,oCAAoC;IAC7B,IAAI,EAAE,MAAM,CAAK;IAExB,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,aAAa,CAAc;IAEnC,YACU,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,MAAM;IACpC,0BAA0B;IACnB,MAAM,EAAE,cAAc;IAC7B,2BAA2B;IACpB,eAAe,EAAE,eAAe;IACvC,wDAAwD;IACjD,eAAe,EAAE,cAAc;IACtC,uDAAuD;IAChD,UAAU,EAAE,cAAc,EAC/B;IAEE,OAAO,kBAIZ;IAEK,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,gBAAgB,iBAkBhE;IAED,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAGhE;IAED,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAG/D;IAED,OAAO,CAAC,OAAO;IAKf,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAI1D;IAED,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAOxD;IAED,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAG9D;IAED,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAG7D;IAED,OAAO,CAAC,KAAK;IAQb,yBAAyB,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,UAAQ,QAO9E;IAEK,KAAK,kBAyBV;CACF"}
@@ -1,7 +1,8 @@
1
1
  // Convenience struct to hold an account's address and secret that can easily be passed around.
2
2
  import { AztecAddress } from '@aztec/aztec.js/addresses';
3
3
  import { Fr } from '@aztec/aztec.js/fields';
4
- import { pedersenHash } from '@aztec/foundation/crypto';
4
+ import { SlotNumber } from '@aztec/foundation/branded-types';
5
+ import { pedersenHash } from '@aztec/foundation/crypto/pedersen';
5
6
  /**
6
7
  * Contains utilities to compute the "key" for private holdings in the public state.
7
8
  */ export class LendingAccount {
@@ -85,7 +86,8 @@ const computeMultiplier = (rate, dt)=>{
85
86
  return;
86
87
  }
87
88
  const slot = await this.rollup.getSlotAt(BigInt(await this.cc.eth.timestamp()));
88
- const ts = Number(await this.rollup.getTimestampForSlot(slot + BigInt(diff)));
89
+ const targetSlot = SlotNumber(slot + diff);
90
+ const ts = Number(await this.rollup.getTimestampForSlot(targetSlot));
89
91
  const timeDiff = ts - this.time;
90
92
  this.time = ts;
91
93
  // Mine ethereum blocks such that the next block will be in a new slot
@@ -93,7 +95,7 @@ const computeMultiplier = (rate, dt)=>{
93
95
  if (dateProvider) {
94
96
  dateProvider.setTime(this.time * 1000);
95
97
  }
96
- await this.cc.rollup.markAsProven(await this.rollup.getBlockNumber());
98
+ await this.cc.rollup.markAsProven(await this.rollup.getCheckpointNumber());
97
99
  this.accumulator = muldivDown(this.accumulator, computeMultiplier(this.rate, BigInt(timeDiff)), BASE);
98
100
  }
99
101
  depositPrivate(from, onBehalfOf, amount) {
@@ -29,4 +29,4 @@ export declare class TokenSimulator {
29
29
  checkPrivate(): Promise<void>;
30
30
  check(): Promise<void>;
31
31
  }
32
- //# sourceMappingURL=token_simulator.d.ts.map
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fc2ltdWxhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9ycy90b2tlbl9zaW11bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFOUQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEUscUJBQWEsY0FBYztJQVF2QixTQUFTLENBQUMsS0FBSyxFQUFFLGFBQWE7SUFDOUIsU0FBUyxDQUFDLGFBQWEsRUFBRSxNQUFNO0lBQy9CLFNBQVMsQ0FBQyxjQUFjLEVBQUUsWUFBWTtJQUN0QyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU07SUFDeEIsU0FBUyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUU7SUFYcEMsT0FBTyxDQUFDLGVBQWUsQ0FBa0M7SUFDekQsT0FBTyxDQUFDLGFBQWEsQ0FBa0M7SUFDaEQsV0FBVyxFQUFFLE1BQU0sQ0FBTTtJQUVoQyxPQUFPLENBQUMsY0FBYyxDQUFrQztJQUV4RCxZQUNZLEtBQUssRUFBRSxhQUFhLEVBQ3BCLGFBQWEsRUFBRSxNQUFNLEVBQ3JCLGNBQWMsRUFBRSxZQUFZLEVBQzVCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsUUFBUSxFQUFFLFlBQVksRUFBRSxFQUNoQztJQUVHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxRQUV0QztJQUVNLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFFN0Q7SUFFTSxXQUFXLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUdsRDtJQUVNLFVBQVUsQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBSWpEO0lBRU0sY0FBYyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQU96RTtJQUVNLGVBQWUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFPMUU7SUFFTSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFNNUU7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFNM0U7SUFFTSxXQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQU1wRDtJQUVNLFVBQVUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBTW5EO0lBRU0sZUFBZSxDQUFDLE9BQU8sRUFBRSxZQUFZLFVBRTNDO0lBRU0sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksVUFFNUM7SUFFSyxXQUFXLGtCQWtCaEI7SUFFSyxZQUFZLGtCQW9DakI7SUFFWSxLQUFLLGtCQUdqQjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"token_simulator.d.ts","sourceRoot":"","sources":["../../src/simulators/token_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAIpE,qBAAa,cAAc;IAQvB,SAAS,CAAC,KAAK,EAAE,aAAa;IAC9B,SAAS,CAAC,aAAa,EAAE,MAAM;IAC/B,SAAS,CAAC,cAAc,EAAE,YAAY;IACtC,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE;IAXpC,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAAkC;IAChD,WAAW,EAAE,MAAM,CAAM;IAEhC,OAAO,CAAC,cAAc,CAAkC;gBAG5C,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,YAAY,EAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EAAE;IAG7B,UAAU,CAAC,OAAO,EAAE,YAAY;IAIhC,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAIvD,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAK5C,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAM3C,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IASnE,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IASpE,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAQtE,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAQrE,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAQ9C,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAQ7C,eAAe,CAAC,OAAO,EAAE,YAAY;IAIrC,gBAAgB,CAAC,OAAO,EAAE,YAAY;IAIvC,WAAW;IAoBX,YAAY;IAsCL,KAAK;CAInB"}
1
+ {"version":3,"file":"token_simulator.d.ts","sourceRoot":"","sources":["../../src/simulators/token_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAIpE,qBAAa,cAAc;IAQvB,SAAS,CAAC,KAAK,EAAE,aAAa;IAC9B,SAAS,CAAC,aAAa,EAAE,MAAM;IAC/B,SAAS,CAAC,cAAc,EAAE,YAAY;IACtC,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE;IAXpC,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAAkC;IAChD,WAAW,EAAE,MAAM,CAAM;IAEhC,OAAO,CAAC,cAAc,CAAkC;IAExD,YACY,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,YAAY,EAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EAAE,EAChC;IAEG,UAAU,CAAC,OAAO,EAAE,YAAY,QAEtC;IAEM,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAE7D;IAEM,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAGlD;IAEM,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAIjD;IAEM,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAOzE;IAEM,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAO1E;IAEM,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAM5E;IAEM,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAM3E;IAEM,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAMpD;IAEM,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAMnD;IAEM,eAAe,CAAC,OAAO,EAAE,YAAY,UAE3C;IAEM,gBAAgB,CAAC,OAAO,EAAE,YAAY,UAE5C;IAEK,WAAW,kBAkBhB;IAEK,YAAY,kBAoCjB;IAEY,KAAK,kBAGjB;CACF"}
@@ -14,10 +14,12 @@ export interface TestAccounts {
14
14
  recipientAddress: AztecAddress;
15
15
  tokenAddress: AztecAddress;
16
16
  }
17
+ export type TestAccountsWithoutTokens = Omit<TestAccounts, 'tokenAddress' | 'tokenContract' | 'tokenName' | 'tokenAdminAddress'>;
17
18
  export declare function setupTestAccountsWithTokens(nodeUrl: string, mintAmount: bigint, logger: Logger): Promise<TestAccounts>;
18
- export declare function deploySponsoredTestAccounts(wallet: TestWallet, aztecNode: AztecNode, mintAmount: bigint, logger: Logger, numberOfFundedWallets?: number): Promise<TestAccounts>;
19
+ export declare function deploySponsoredTestAccountsWithTokens(wallet: TestWallet, aztecNode: AztecNode, mintAmount: bigint, logger: Logger, numberOfFundedWallets?: number): Promise<TestAccounts>;
20
+ export declare function deploySponsoredTestAccounts(wallet: TestWallet, aztecNode: AztecNode, logger: Logger, numberOfFundedWallets?: number): Promise<TestAccountsWithoutTokens>;
19
21
  export declare function deployTestAccountsWithTokens(nodeUrl: string, l1RpcUrls: string[], mnemonicOrPrivateKey: string, mintAmount: bigint, logger: Logger, numberOfFundedWallets?: number): Promise<TestAccounts>;
20
- export declare function performTransfers({ wallet, testAccounts, rounds, transferAmount, logger, feePaymentMethod, }: {
22
+ export declare function performTransfers({ wallet, testAccounts, rounds, transferAmount, logger, feePaymentMethod }: {
21
23
  wallet: TestWallet;
22
24
  testAccounts: TestAccounts;
23
25
  rounds: number;
@@ -30,4 +32,4 @@ export declare function createWalletAndAztecNodeClient(nodeUrl: string, proverEn
30
32
  aztecNode: AztecNode;
31
33
  cleanup: () => Promise<void>;
32
34
  }>;
33
- //# sourceMappingURL=setup_test_wallets.d.ts.map
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfdGVzdF93YWxsZXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BhcnRhbi9zZXR1cF90ZXN0X3dhbGxldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3pELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUE2QixNQUFNLHFCQUFxQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQUk3RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0QsT0FBTyxFQUFFLFVBQVUsRUFBaUUsTUFBTSwyQkFBMkIsQ0FBQztBQU10SCxNQUFNLFdBQVcsWUFBWTtJQUMzQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3pCLGFBQWEsRUFBRSxhQUFhLENBQUM7SUFDN0IsaUJBQWlCLEVBQUUsWUFBWSxDQUFDO0lBQ2hDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0lBQy9CLFlBQVksRUFBRSxZQUFZLENBQUM7Q0FDNUI7QUFFRCxNQUFNLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUMxQyxZQUFZLEVBQ1osY0FBYyxHQUFHLGVBQWUsR0FBRyxXQUFXLEdBQUcsbUJBQW1CLENBQ3JFLENBQUM7QUFNRix3QkFBc0IsMkJBQTJCLENBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQ2YsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sR0FDYixPQUFPLENBQUMsWUFBWSxDQUFDLENBeUJ2QjtBQUVELHdCQUFzQixxQ0FBcUMsQ0FDekQsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLENBdUN2QjtBQUVELHdCQUFzQiwyQkFBMkIsQ0FDL0MsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMseUJBQXlCLENBQUMsQ0F3QnBDO0FBRUQsd0JBQXNCLDRCQUE0QixDQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUNmLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixVQUFVLEVBQUUsTUFBTSxFQUNsQixNQUFNLEVBQUUsTUFBTSxFQUNkLHFCQUFxQixTQUFJLEdBQ3hCLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0ErQ3ZCO0FBNkVELHdCQUFzQixnQkFBZ0IsQ0FBQyxFQUNyQyxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixjQUFjLEVBQ2QsTUFBTSxFQUNOLGdCQUFnQixFQUNqQixFQUFFO0lBQ0QsTUFBTSxFQUFFLFVBQVUsQ0FBQztJQUNuQixZQUFZLEVBQUUsWUFBWSxDQUFDO0lBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixjQUFjLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixnQkFBZ0IsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0NBQ3JDLGlCQXFCQTtBQUVELHdCQUFzQiw4QkFBOEIsQ0FDbEQsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsT0FBTyxFQUN0QixNQUFNLEVBQUUsTUFBTSxHQUNiLE9BQU8sQ0FBQztJQUFFLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQUMsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0NBQUUsQ0FBQyxDQXFCckYifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,KAAK,gBAAgB,EAA6B,MAAM,qBAAqB,CAAC;AAEvF,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,sBAAsB,CAAC;AAG7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,UAAU,EAA4D,MAAM,2BAA2B,CAAC;AAMjH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,YAAY,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAMD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAyBvB;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CA+CvB;AA6ED,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EACN,YAAY,EACZ,MAAM,EACN,cAAc,EACd,MAAM,EACN,gBAAgB,GACjB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,iBAqBA;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAqBrF"}
1
+ {"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,KAAK,gBAAgB,EAA6B,MAAM,qBAAqB,CAAC;AAEvF,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,sBAAsB,CAAC;AAI7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAiE,MAAM,2BAA2B,CAAC;AAMtH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,YAAY,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,YAAY,EACZ,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,mBAAmB,CACrE,CAAC;AAMF,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAyBvB;AAED,wBAAsB,qCAAqC,CACzD,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,yBAAyB,CAAC,CAwBpC;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CA+CvB;AA6ED,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EACN,YAAY,EACZ,MAAM,EACN,cAAc,EACd,MAAM,EACN,gBAAgB,EACjB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,iBAqBA;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAqBrF"}
@@ -5,10 +5,11 @@ import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
5
5
  import { SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
6
6
  import { Fr } from '@aztec/aztec.js/fields';
7
7
  import { createAztecNodeClient } from '@aztec/aztec.js/node';
8
- import { createEthereumChain, createExtendedL1Client } from '@aztec/ethereum';
8
+ import { createEthereumChain } from '@aztec/ethereum/chain';
9
+ import { createExtendedL1Client } from '@aztec/ethereum/client';
9
10
  import { retryUntil } from '@aztec/foundation/retry';
10
11
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
11
- import { TestWallet, proveInteraction, registerInitialSandboxAccountsInWallet } from '@aztec/test-wallet/server';
12
+ import { TestWallet, proveInteraction, registerInitialLocalNetworkAccountsInWallet } from '@aztec/test-wallet/server';
12
13
  import { getACVMConfig } from '../fixtures/get_acvm_config.js';
13
14
  import { getBBConfig } from '../fixtures/get_bb_config.js';
14
15
  import { getSponsoredFPCAddress, registerSponsoredFPC } from '../fixtures/utils.js';
@@ -19,10 +20,10 @@ export async function setupTestAccountsWithTokens(nodeUrl, mintAmount, logger) {
19
20
  const ACCOUNT_COUNT = 1; // TODO fix this to allow for 16 wallets again
20
21
  const aztecNode = createAztecNodeClient(nodeUrl);
21
22
  const wallet = await TestWallet.create(aztecNode);
22
- const [recipientAccount, ...accounts] = (await registerInitialSandboxAccountsInWallet(wallet)).slice(0, ACCOUNT_COUNT + 1);
23
+ const [recipientAccount, ...accounts] = (await registerInitialLocalNetworkAccountsInWallet(wallet)).slice(0, ACCOUNT_COUNT + 1);
23
24
  const tokenAdmin = accounts[0];
24
25
  const tokenAddress = await deployTokenAndMint(wallet, accounts, tokenAdmin, mintAmount, undefined, logger);
25
- const tokenContract = await TokenContract.at(tokenAddress, wallet);
26
+ const tokenContract = TokenContract.at(tokenAddress, wallet);
26
27
  return {
27
28
  aztecNode,
28
29
  accounts,
@@ -34,7 +35,7 @@ export async function setupTestAccountsWithTokens(nodeUrl, mintAmount, logger) {
34
35
  recipientAddress: recipientAccount
35
36
  };
36
37
  }
37
- export async function deploySponsoredTestAccounts(wallet, aztecNode, mintAmount, logger, numberOfFundedWallets = 1) {
38
+ export async function deploySponsoredTestAccountsWithTokens(wallet, aztecNode, mintAmount, logger, numberOfFundedWallets = 1) {
38
39
  const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
39
40
  const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
40
41
  const fundedAccounts = await Promise.all(funded.map((a)=>wallet.createSchnorrAccount(a.secret, a.salt)));
@@ -63,7 +64,7 @@ export async function deploySponsoredTestAccounts(wallet, aztecNode, mintAmount,
63
64
  }));
64
65
  const tokenAdmin = fundedAccounts[0];
65
66
  const tokenAddress = await deployTokenAndMint(wallet, fundedAccounts.map((acc)=>acc.address), tokenAdmin.address, mintAmount, new SponsoredFeePaymentMethod(await getSponsoredFPCAddress()), logger);
66
- const tokenContract = await TokenContract.at(tokenAddress, wallet);
67
+ const tokenContract = TokenContract.at(tokenAddress, wallet);
67
68
  return {
68
69
  aztecNode,
69
70
  wallet,
@@ -75,6 +76,40 @@ export async function deploySponsoredTestAccounts(wallet, aztecNode, mintAmount,
75
76
  recipientAddress: recipientAccount.address
76
77
  };
77
78
  }
79
+ export async function deploySponsoredTestAccounts(wallet, aztecNode, logger, numberOfFundedWallets = 1) {
80
+ const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
81
+ const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
82
+ const fundedAccounts = await Promise.all(funded.map((a)=>wallet.createSchnorrAccount(a.secret, a.salt)));
83
+ await registerSponsoredFPC(wallet);
84
+ const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
85
+ const recipientDeployMethod = await recipientAccount.getDeployMethod();
86
+ await recipientDeployMethod.send({
87
+ from: AztecAddress.ZERO,
88
+ fee: {
89
+ paymentMethod
90
+ }
91
+ }).wait({
92
+ timeout: 2400
93
+ });
94
+ await Promise.all(fundedAccounts.map(async (a)=>{
95
+ const deployMethod = await a.getDeployMethod();
96
+ await deployMethod.send({
97
+ from: AztecAddress.ZERO,
98
+ fee: {
99
+ paymentMethod
100
+ }
101
+ }).wait({
102
+ timeout: 2400
103
+ }); // increase timeout on purpose in order to account for two empty epochs
104
+ logger.info(`Account deployed at ${a.address}`);
105
+ }));
106
+ return {
107
+ aztecNode,
108
+ wallet,
109
+ accounts: fundedAccounts.map((acc)=>acc.address),
110
+ recipientAddress: recipientAccount.address
111
+ };
112
+ }
78
113
  export async function deployTestAccountsWithTokens(nodeUrl, l1RpcUrls, mnemonicOrPrivateKey, mintAmount, logger, numberOfFundedWallets = 1) {
79
114
  const aztecNode = createAztecNodeClient(nodeUrl);
80
115
  const wallet = await TestWallet.create(aztecNode);
@@ -99,7 +134,7 @@ export async function deployTestAccountsWithTokens(nodeUrl, l1RpcUrls, mnemonicO
99
134
  }));
100
135
  const tokenAdmin = fundedAccounts[0];
101
136
  const tokenAddress = await deployTokenAndMint(wallet, fundedAccounts.map((acc)=>acc.address), tokenAdmin.address, mintAmount, undefined, logger);
102
- const tokenContract = await TokenContract.at(tokenAddress, wallet);
137
+ const tokenContract = TokenContract.at(tokenAddress, wallet);
103
138
  return {
104
139
  aztecNode,
105
140
  wallet,
@@ -150,7 +185,7 @@ async function deployTokenAndMint(wallet, accounts, admin, mintAmount, paymentMe
150
185
  });
151
186
  const tokenAddress = tokenContract.address;
152
187
  logger.verbose(`Minting ${mintAmount} public assets to the ${accounts.length} accounts...`);
153
- await Promise.all(accounts.map(async (acc)=>(await TokenContract.at(tokenAddress, wallet)).methods.mint_to_public(acc, mintAmount).send({
188
+ await Promise.all(accounts.map((acc)=>TokenContract.at(tokenAddress, wallet).methods.mint_to_public(acc, mintAmount).send({
154
189
  from: admin,
155
190
  fee: {
156
191
  paymentMethod
@@ -166,8 +201,8 @@ export async function performTransfers({ wallet, testAccounts, rounds, transferA
166
201
  // Default to sponsored fee payment if no fee method is provided
167
202
  const defaultFeePaymentMethod = feePaymentMethod || new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
168
203
  for(let i = 0; i < rounds; i++){
169
- const txs = testAccounts.accounts.map(async (acc)=>{
170
- const token = await TokenContract.at(testAccounts.tokenAddress, testAccounts.wallet);
204
+ const txs = testAccounts.accounts.map((acc)=>{
205
+ const token = TokenContract.at(testAccounts.tokenAddress, testAccounts.wallet);
171
206
  return proveInteraction(wallet, token.methods.transfer_in_public(acc, recipient, transferAmount, 0), {
172
207
  from: acc,
173
208
  fee: {
@@ -0,0 +1,39 @@
1
+ import type { AztecNode } from '@aztec/aztec.js/node';
2
+ import { Tx, type TxReceipt } from '@aztec/stdlib/tx';
3
+ export type TxInclusionData = {
4
+ txHash: string;
5
+ sentAt: number;
6
+ minedAt: number;
7
+ attestedAt: number;
8
+ blocknumber: number;
9
+ priorityFee: number;
10
+ totalFee: number;
11
+ positionInBlock: number;
12
+ group: string;
13
+ };
14
+ export declare class TxInclusionMetrics {
15
+ private aztecNode;
16
+ private data;
17
+ private groups;
18
+ private blocks;
19
+ constructor(aztecNode: AztecNode);
20
+ recordSentTx(tx: Tx, group: string): void;
21
+ recordMinedTx(txReceipt: TxReceipt): Promise<void>;
22
+ inclusionTimeInSeconds(group: string): {
23
+ count: number;
24
+ group: string;
25
+ min: number;
26
+ mean: number;
27
+ max: number;
28
+ median: number;
29
+ p99: number;
30
+ };
31
+ toGithubActionBenchmarkJSON(): Array<{
32
+ name: string;
33
+ unit: string;
34
+ value: number;
35
+ range?: number;
36
+ extra?: string;
37
+ }>;
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfbWV0cmljcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NwYXJ0YW4vdHhfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssU0FBUyxFQUFZLE1BQU0sa0JBQWtCLENBQUM7QUFJaEUsTUFBTSxNQUFNLGVBQWUsR0FBRztJQUM1QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixlQUFlLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYscUJBQWEsa0JBQWtCO0lBS2pCLE9BQU8sQ0FBQyxTQUFTO0lBSjdCLE9BQU8sQ0FBQyxJQUFJLENBQXNDO0lBQ2xELE9BQU8sQ0FBQyxNQUFNLENBQXFCO0lBQ25DLE9BQU8sQ0FBQyxNQUFNLENBQXVDO0lBRXJELFlBQW9CLFNBQVMsRUFBRSxTQUFTLEVBQUk7SUFFNUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBZ0J4QztJQUVLLGFBQWEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FpQnZEO0lBRU0sc0JBQXNCLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRztRQUM1QyxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQ2QsS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUNkLEdBQUcsRUFBRSxNQUFNLENBQUM7UUFDWixJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ2IsR0FBRyxFQUFFLE1BQU0sQ0FBQztRQUNaLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFDZixHQUFHLEVBQUUsTUFBTSxDQUFDO0tBQ2IsQ0ErQkE7SUFFRCwyQkFBMkIsSUFBSSxLQUFLLENBQUM7UUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztRQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7UUFBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7UUFBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLENBeUJsSDtDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx_metrics.d.ts","sourceRoot":"","sources":["../../src/spartan/tx_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,EAAE,EAAE,KAAK,SAAS,EAAY,MAAM,kBAAkB,CAAC;AAIhE,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,kBAAkB;IAKjB,OAAO,CAAC,SAAS;IAJ7B,OAAO,CAAC,IAAI,CAAsC;IAClD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAuC;IAErD,YAAoB,SAAS,EAAE,SAAS,EAAI;IAE5C,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAgBxC;IAEK,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBvD;IAEM,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG;QAC5C,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CA+BA;IAED,2BAA2B,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAyBlH;CACF"}
@@ -0,0 +1,95 @@
1
+ import { TxStatus } from '@aztec/stdlib/tx';
2
+ import { createHistogram } from 'perf_hooks';
3
+ export class TxInclusionMetrics {
4
+ aztecNode;
5
+ data;
6
+ groups;
7
+ blocks;
8
+ constructor(aztecNode){
9
+ this.aztecNode = aztecNode;
10
+ this.data = new Map();
11
+ this.groups = new Set();
12
+ this.blocks = new Map();
13
+ }
14
+ recordSentTx(tx, group) {
15
+ const txHash = tx.getTxHash().toString();
16
+ const priorityFees = tx.getGasSettings().maxPriorityFeesPerGas;
17
+ this.data.set(txHash, {
18
+ txHash,
19
+ sentAt: Math.trunc(Date.now() / 1000),
20
+ minedAt: -1,
21
+ attestedAt: -1,
22
+ blocknumber: -1,
23
+ priorityFee: Number(priorityFees.feePerDaGas + priorityFees.feePerL2Gas),
24
+ totalFee: -1,
25
+ positionInBlock: -1,
26
+ group
27
+ });
28
+ this.groups.add(group);
29
+ }
30
+ async recordMinedTx(txReceipt) {
31
+ const { status, txHash, blockNumber } = txReceipt;
32
+ if (status !== TxStatus.SUCCESS || !blockNumber) {
33
+ return;
34
+ }
35
+ if (!this.blocks.has(blockNumber)) {
36
+ this.blocks.set(blockNumber, this.aztecNode.getBlock(blockNumber));
37
+ }
38
+ const block = await this.blocks.get(blockNumber);
39
+ const data = this.data.get(txHash.toString());
40
+ data.blocknumber = blockNumber;
41
+ data.minedAt = Number(block.header.globalVariables.timestamp);
42
+ data.attestedAt = -1;
43
+ data.totalFee = Number(txReceipt.transactionFee ?? 0n);
44
+ data.positionInBlock = block.body.txEffects.findIndex((txEffect)=>txEffect.txHash.equals(txHash));
45
+ }
46
+ inclusionTimeInSeconds(group) {
47
+ const histogram = createHistogram({});
48
+ for (const tx of this.data.values()){
49
+ if (!tx.blocknumber || tx.group !== group) {
50
+ continue;
51
+ }
52
+ histogram.record(tx.minedAt - tx.sentAt);
53
+ }
54
+ if (histogram.count === 0) {
55
+ return {
56
+ group,
57
+ count: 0,
58
+ mean: 0,
59
+ max: 0,
60
+ median: 0,
61
+ min: 0,
62
+ p99: 0
63
+ };
64
+ }
65
+ return {
66
+ group,
67
+ count: histogram.count,
68
+ mean: histogram.mean,
69
+ max: histogram.max,
70
+ median: histogram.percentile(50),
71
+ min: histogram.min,
72
+ p99: histogram.percentile(99)
73
+ };
74
+ }
75
+ toGithubActionBenchmarkJSON() {
76
+ const data = [];
77
+ for (const group of this.groups){
78
+ const stats = this.inclusionTimeInSeconds(group);
79
+ data.push({
80
+ name: `${group}/avg_inclusion`,
81
+ unit: 's',
82
+ value: stats.mean
83
+ }, {
84
+ name: `${group}/median_inclusion`,
85
+ unit: 's',
86
+ value: stats.median
87
+ }, {
88
+ name: `${group}/p99_inclusion`,
89
+ unit: 's',
90
+ value: stats.p99
91
+ });
92
+ }
93
+ return data;
94
+ }
95
+ }