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

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 (111) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +3 -2
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/benchmark.js +21 -1
  4. package/dest/bench/client_flows/client_flows_benchmark.d.ts +12 -13
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  6. package/dest/bench/client_flows/client_flows_benchmark.js +105 -135
  7. package/dest/bench/client_flows/data_extractor.js +3 -1
  8. package/dest/bench/utils.d.ts +5 -5
  9. package/dest/bench/utils.d.ts.map +1 -1
  10. package/dest/bench/utils.js +8 -5
  11. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +6 -7
  12. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  13. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +98 -113
  14. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +15 -10
  15. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  16. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +89 -70
  17. package/dest/e2e_deploy_contract/deploy_test.d.ts +4 -3
  18. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  19. package/dest/e2e_deploy_contract/deploy_test.js +18 -13
  20. package/dest/e2e_epochs/epochs_test.js +2 -2
  21. package/dest/e2e_fees/bridging_race.notest.js +2 -4
  22. package/dest/e2e_fees/fees_test.d.ts +13 -13
  23. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  24. package/dest/e2e_fees/fees_test.js +123 -141
  25. package/dest/e2e_l1_publisher/write_json.d.ts +3 -3
  26. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  27. package/dest/e2e_l1_publisher/write_json.js +19 -15
  28. package/dest/e2e_nested_contract/nested_contract_test.d.ts +6 -9
  29. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  30. package/dest/e2e_nested_contract/nested_contract_test.js +32 -40
  31. package/dest/e2e_p2p/inactivity_slash_test.d.ts +3 -3
  32. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  33. package/dest/e2e_p2p/inactivity_slash_test.js +3 -3
  34. package/dest/e2e_p2p/p2p_network.d.ts +7 -6
  35. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  36. package/dest/e2e_p2p/p2p_network.js +107 -104
  37. package/dest/e2e_p2p/shared.d.ts +1 -1
  38. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  39. package/dest/e2e_p2p/shared.js +4 -4
  40. package/dest/e2e_token_contract/token_contract_test.d.ts +16 -9
  41. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  42. package/dest/e2e_token_contract/token_contract_test.js +90 -92
  43. package/dest/fixtures/e2e_prover_test.d.ts +8 -14
  44. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  45. package/dest/fixtures/e2e_prover_test.js +83 -95
  46. package/dest/fixtures/setup.d.ts +216 -0
  47. package/dest/fixtures/setup.d.ts.map +1 -0
  48. package/dest/fixtures/setup.js +684 -0
  49. package/dest/fixtures/utils.d.ts +5 -194
  50. package/dest/fixtures/utils.d.ts.map +1 -1
  51. package/dest/fixtures/utils.js +4 -619
  52. package/dest/quality_of_service/grafana_client.d.ts +41 -0
  53. package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
  54. package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
  55. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  56. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  57. package/dest/quality_of_service/prometheus_client.js +67 -0
  58. package/dest/shared/cross_chain_test_harness.d.ts +14 -3
  59. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  60. package/dest/shared/cross_chain_test_harness.js +2 -2
  61. package/dest/shared/gas_portal_test_harness.d.ts +11 -1
  62. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  63. package/dest/shared/index.d.ts +2 -2
  64. package/dest/shared/index.d.ts.map +1 -1
  65. package/dest/shared/uniswap_l1_l2.d.ts +3 -28
  66. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  67. package/dest/shared/uniswap_l1_l2.js +39 -21
  68. package/dest/simulators/lending_simulator.d.ts +5 -1
  69. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  70. package/dest/spartan/setup_test_wallets.d.ts +4 -3
  71. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  72. package/dest/spartan/tx_metrics.d.ts +4 -1
  73. package/dest/spartan/tx_metrics.d.ts.map +1 -1
  74. package/dest/spartan/tx_metrics.js +24 -1
  75. package/dest/spartan/utils.d.ts +12 -5
  76. package/dest/spartan/utils.d.ts.map +1 -1
  77. package/dest/spartan/utils.js +123 -73
  78. package/package.json +40 -39
  79. package/src/bench/client_flows/benchmark.ts +24 -2
  80. package/src/bench/client_flows/client_flows_benchmark.ts +143 -196
  81. package/src/bench/client_flows/data_extractor.ts +1 -1
  82. package/src/bench/utils.ts +11 -7
  83. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +107 -142
  84. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +127 -116
  85. package/src/e2e_deploy_contract/deploy_test.ts +21 -14
  86. package/src/e2e_epochs/epochs_test.ts +2 -2
  87. package/src/e2e_fees/bridging_race.notest.ts +2 -5
  88. package/src/e2e_fees/fees_test.ts +172 -216
  89. package/src/e2e_l1_publisher/write_json.ts +22 -17
  90. package/src/e2e_nested_contract/nested_contract_test.ts +35 -56
  91. package/src/e2e_p2p/inactivity_slash_test.ts +5 -5
  92. package/src/e2e_p2p/p2p_network.ts +166 -168
  93. package/src/e2e_p2p/shared.ts +6 -5
  94. package/src/e2e_token_contract/token_contract_test.ts +105 -118
  95. package/src/fixtures/e2e_prover_test.ts +107 -137
  96. package/src/fixtures/setup.ts +1010 -0
  97. package/src/fixtures/utils.ts +27 -907
  98. package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
  99. package/src/quality_of_service/prometheus_client.ts +113 -0
  100. package/src/shared/cross_chain_test_harness.ts +3 -9
  101. package/src/shared/index.ts +1 -1
  102. package/src/shared/uniswap_l1_l2.ts +46 -58
  103. package/src/spartan/setup_test_wallets.ts +7 -1
  104. package/src/spartan/tx_metrics.ts +27 -4
  105. package/src/spartan/utils.ts +112 -24
  106. package/dest/fixtures/snapshot_manager.d.ts +0 -93
  107. package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
  108. package/dest/fixtures/snapshot_manager.js +0 -493
  109. package/dest/quality_of_service/alert_checker.d.ts +0 -41
  110. package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
  111. package/src/fixtures/snapshot_manager.ts +0 -651
@@ -1,10 +1,9 @@
1
1
  import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/contracts';
2
2
  import { Fr } from '@aztec/aztec.js/fields';
3
3
  import { createLogger } from '@aztec/aztec.js/log';
4
- import { createSnapshotManager, deployAccounts } from '../fixtures/snapshot_manager.js';
5
- const { E2E_DATA_PATH: dataPath } = process.env;
4
+ import { deployAccounts, setup, teardown } from '../fixtures/setup.js';
6
5
  export class DeployTest {
7
- snapshotManager;
6
+ context;
8
7
  logger;
9
8
  wallet;
10
9
  defaultAccountAddress;
@@ -12,23 +11,29 @@ export class DeployTest {
12
11
  aztecNodeAdmin;
13
12
  constructor(testName){
14
13
  this.logger = createLogger(`e2e:e2e_deploy_contract:${testName}`);
15
- this.snapshotManager = createSnapshotManager(`e2e_deploy_contract/${testName}`, dataPath);
16
14
  }
17
15
  async setup() {
18
- await this.applyInitialAccountSnapshot();
19
- const context = await this.snapshotManager.setup();
20
- ({ aztecNode: this.aztecNode, wallet: this.wallet } = context);
21
- this.aztecNodeAdmin = context.aztecNode;
16
+ this.logger.info('Setting up test environment');
17
+ this.context = await setup(0, {
18
+ fundSponsoredFPC: true,
19
+ skipAccountDeployment: true
20
+ });
21
+ this.aztecNode = this.context.aztecNodeService;
22
+ this.wallet = this.context.wallet;
23
+ this.aztecNodeAdmin = this.context.aztecNodeService;
24
+ await this.applyInitialAccount();
22
25
  return this;
23
26
  }
24
27
  async teardown() {
25
- await this.snapshotManager.teardown();
28
+ await teardown(this.context);
26
29
  }
27
- async applyInitialAccountSnapshot() {
28
- await this.snapshotManager.snapshot('initial_account', deployAccounts(1, this.logger), ({ deployedAccounts })=>{
29
- this.defaultAccountAddress = deployedAccounts[0].address;
30
- return Promise.resolve();
30
+ async applyInitialAccount() {
31
+ this.logger.info('Applying initial account setup');
32
+ const { deployedAccounts } = await deployAccounts(1, this.logger)({
33
+ wallet: this.context.wallet,
34
+ initialFundedAccounts: this.context.initialFundedAccounts
31
35
  });
36
+ this.defaultAccountAddress = deployedAccounts[0].address;
32
37
  }
33
38
  async registerContract(wallet, contractArtifact, opts = {}) {
34
39
  const { salt, publicKeys, initArgs, constructorName, deployer } = opts;
@@ -147,7 +147,7 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
147
147
  proverId: EthAddress.fromNumber(parseInt(suffix, 10)),
148
148
  dontStart: opts.dontStart,
149
149
  ...opts
150
- }, this.context.aztecNode, undefined, {
150
+ }, this.context.aztecNode, this.context.prefilledPublicData ?? [], {
151
151
  dateProvider: this.context.dateProvider
152
152
  }));
153
153
  this.proverNodes.push(proverNode);
@@ -251,7 +251,7 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
251
251
  tips
252
252
  });
253
253
  if (type === 'proven') {
254
- synched = tips.proven.number >= blockNumber && syncState.latestBlockNumber >= blockNumber;
254
+ synched = tips.proven.block.number >= blockNumber && syncState.latestBlockNumber >= blockNumber;
255
255
  } else if (type === 'finalized') {
256
256
  synched = syncState.finalizedBlockNumber >= blockNumber;
257
257
  } else {
@@ -16,10 +16,8 @@ describe('e2e_fees bridging_race', ()=>{
16
16
  minTxsPerBlock: 0
17
17
  });
18
18
  beforeAll(async ()=>{
19
- await t.applyInitialAccountsSnapshot();
20
- await t.applyPublicDeployAccountsSnapshot();
21
- await t.applySetupFeeJuiceSnapshot();
22
- ({ wallet, logger } = await t.setup());
19
+ await t.setup();
20
+ ({ wallet, logger } = t);
23
21
  });
24
22
  afterAll(async ()=>{
25
23
  await t.teardown();
@@ -16,11 +16,11 @@ import { CounterContract } from '@aztec/noir-test-contracts.js/Counter';
16
16
  import { GasSettings } from '@aztec/stdlib/gas';
17
17
  import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
18
18
  import { TestWallet } from '@aztec/test-wallet/server';
19
- import { type SubsystemsContext } from '../fixtures/snapshot_manager.js';
20
- import { type BalancesFn, type SetupOptions } from '../fixtures/utils.js';
19
+ import { type EndToEndContext, type SetupOptions } from '../fixtures/setup.js';
20
+ import { type BalancesFn } from '../fixtures/utils.js';
21
21
  import { type GasBridgingTestHarness } from '../shared/gas_portal_test_harness.js';
22
22
  /**
23
- * Test fixture for testing fees. Provides the following snapshots:
23
+ * Test fixture for testing fees. Provides the following setup steps:
24
24
  * InitialAccounts: Initializes 3 Schnorr account contracts.
25
25
  * PublicDeployAccounts: Deploys the accounts publicly.
26
26
  * DeployFeeJuice: Deploys the Fee Juice contract.
@@ -31,8 +31,9 @@ import { type GasBridgingTestHarness } from '../shared/gas_portal_test_harness.j
31
31
  */
32
32
  export declare class FeesTest {
33
33
  private numberOfAccounts;
34
- private snapshotManager;
34
+ private setupOptions;
35
35
  private accounts;
36
+ context: EndToEndContext;
36
37
  logger: Logger;
37
38
  aztecNode: AztecNode;
38
39
  aztecNodeAdmin: AztecNodeAdmin;
@@ -52,7 +53,6 @@ export declare class FeesTest {
52
53
  counterContract: CounterContract;
53
54
  subscriptionContract: AppSubscriptionContract;
54
55
  feeJuiceBridgeTestHarness: GasBridgingTestHarness;
55
- context: SubsystemsContext;
56
56
  chainMonitor: ChainMonitor;
57
57
  getCoinbaseBalance: () => Promise<bigint>;
58
58
  getCoinbaseSequencerRewards: () => Promise<bigint>;
@@ -75,14 +75,14 @@ export declare class FeesTest {
75
75
  mintAndBridgeFeeJuice(minter: AztecAddress, recipient: AztecAddress): Promise<void>;
76
76
  /** Alice mints bananaCoin tokens privately to the target address and redeems them. */
77
77
  mintPrivateBananas(amount: bigint, address: AztecAddress): Promise<void>;
78
- applyBaseSnapshots(): Promise<void>;
79
- applyInitialAccountsSnapshot(): Promise<void>;
80
- applyPublicDeployAccountsSnapshot(): Promise<void>;
81
- applySetupFeeJuiceSnapshot(): Promise<void>;
82
- applyDeployBananaTokenSnapshot(): Promise<void>;
83
- applyFPCSetupSnapshot(): Promise<void>;
84
- applySponsoredFPCSetupSnapshot(): Promise<void>;
78
+ applyBaseSetup(): Promise<void>;
79
+ applyInitialAccounts(): Promise<void>;
80
+ applyPublicDeployAccounts(): Promise<void>;
81
+ applySetupFeeJuice(): Promise<void>;
82
+ applyDeployBananaToken(): Promise<void>;
83
+ applyFPCSetup(): Promise<void>;
84
+ applySponsoredFPCSetup(): Promise<void>;
85
85
  applyFundAliceWithBananas(): Promise<void>;
86
86
  applyFundAliceWithPrivateBananas(): Promise<void>;
87
87
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlc190ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX2ZlZXMvZmVlc190ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLElBQUksVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0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
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlc190ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX2ZlZXMvZmVlc190ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLElBQUksVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0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
@@ -1 +1 @@
1
- {"version":3,"file":"fees_test.d.ts","sourceRoot":"","sources":["../../src/e2e_fees/fees_test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fees_test.d.ts","sourceRoot":"","sources":["../../src/e2e_fees/fees_test.ts"],"names":[],"mappings":"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"}
@@ -14,13 +14,12 @@ import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
14
14
  import { GasSettings } from '@aztec/stdlib/gas';
15
15
  import { getContract } from 'viem';
16
16
  import { MNEMONIC } from '../fixtures/fixtures.js';
17
- import { createSnapshotManager, deployAccounts } from '../fixtures/snapshot_manager.js';
17
+ import { deployAccounts, publicDeployAccounts, setup, teardown } from '../fixtures/setup.js';
18
18
  import { mintTokensToPrivate } from '../fixtures/token_utils.js';
19
- import { ensureAccountContractsPublished, getBalancesFn, setupSponsoredFPC } from '../fixtures/utils.js';
19
+ import { getBalancesFn, setupSponsoredFPC } from '../fixtures/utils.js';
20
20
  import { FeeJuicePortalTestingHarnessFactory } from '../shared/gas_portal_test_harness.js';
21
- const { E2E_DATA_PATH: dataPath } = process.env;
22
21
  /**
23
- * Test fixture for testing fees. Provides the following snapshots:
22
+ * Test fixture for testing fees. Provides the following setup steps:
24
23
  * InitialAccounts: Initializes 3 Schnorr account contracts.
25
24
  * PublicDeployAccounts: Deploys the accounts publicly.
26
25
  * DeployFeeJuice: Deploys the Fee Juice contract.
@@ -30,8 +29,9 @@ const { E2E_DATA_PATH: dataPath } = process.env;
30
29
  * SetupSubscription: Deploys a counter contract and a subscription contract, and mints Fee Juice to the subscription contract.
31
30
  */ export class FeesTest {
32
31
  numberOfAccounts;
33
- snapshotManager;
32
+ setupOptions;
34
33
  accounts;
34
+ context;
35
35
  logger;
36
36
  aztecNode;
37
37
  aztecNodeAdmin;
@@ -51,7 +51,6 @@ const { E2E_DATA_PATH: dataPath } = process.env;
51
51
  counterContract;
52
52
  subscriptionContract;
53
53
  feeJuiceBridgeTestHarness;
54
- context;
55
54
  chainMonitor;
56
55
  getCoinbaseBalance;
57
56
  getCoinbaseSequencerRewards;
@@ -64,6 +63,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
64
63
  APP_SPONSORED_TX_GAS_LIMIT;
65
64
  constructor(testName, numberOfAccounts = 3, setupOptions = {}){
66
65
  this.numberOfAccounts = numberOfAccounts;
66
+ this.setupOptions = setupOptions;
67
67
  this.accounts = [];
68
68
  this.ALICE_INITIAL_BANANAS = BigInt(1e22);
69
69
  this.SUBSCRIPTION_AMOUNT = BigInt(1e19);
@@ -74,22 +74,26 @@ const { E2E_DATA_PATH: dataPath } = process.env;
74
74
  setupOptions.coinbase ??= EthAddress.random();
75
75
  this.coinbase = setupOptions.coinbase;
76
76
  this.logger = createLogger(`e2e:e2e_fees:${testName}`);
77
- this.snapshotManager = createSnapshotManager(`e2e_fees/${testName}-${numberOfAccounts}`, dataPath, {
78
- startProverNode: true,
79
- ...setupOptions
80
- }, {
81
- ...setupOptions
82
- });
83
77
  }
84
78
  async setup() {
85
- const context = await this.snapshotManager.setup();
86
- this.rollupContract = RollupContract.getFromConfig(context.aztecNodeConfig);
87
- this.chainMonitor = new ChainMonitor(this.rollupContract, context.dateProvider, this.logger, 200).start();
79
+ this.logger.verbose('Setting up fresh context...');
80
+ this.context = await setup(0, {
81
+ startProverNode: true,
82
+ ...this.setupOptions,
83
+ fundSponsoredFPC: true,
84
+ skipAccountDeployment: true,
85
+ l1ContractsArgs: {
86
+ ...this.setupOptions
87
+ }
88
+ });
89
+ this.rollupContract = RollupContract.getFromConfig(this.context.config);
90
+ this.chainMonitor = new ChainMonitor(this.rollupContract, this.context.dateProvider, this.logger, 200).start();
91
+ await this.applyBaseSetup();
88
92
  return this;
89
93
  }
90
94
  async teardown() {
91
95
  await this.chainMonitor.stop();
92
- await this.snapshotManager.teardown();
96
+ await teardown(this.context);
93
97
  }
94
98
  setIsMarkingAsProven(b) {
95
99
  this.context.watcher.setIsMarkingAsProven(b);
@@ -103,7 +107,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
103
107
  async getBlockRewards() {
104
108
  const blockReward = await this.rollupContract.getCheckpointReward();
105
109
  const rewardConfig = await this.rollupContract.getRewardConfig();
106
- const balance = await this.feeJuiceBridgeTestHarness.getL1FeeJuiceBalance(EthAddress.fromString(rewardConfig.rewardDistributor));
110
+ const balance = await this.feeJuiceBridgeTestHarness.getL1FeeJuiceBalance(rewardConfig.rewardDistributor);
107
111
  const toDistribute = balance > blockReward ? blockReward : balance;
108
112
  const sequencerBlockRewards = toDistribute * BigInt(rewardConfig.sequencerBps) / 10000n;
109
113
  const proverBlockRewards = toDistribute - sequencerBlockRewards;
@@ -129,138 +133,116 @@ const { E2E_DATA_PATH: dataPath } = process.env;
129
133
  });
130
134
  expect(balanceAfter).toEqual(balanceBefore + amount);
131
135
  }
132
- async applyBaseSnapshots() {
133
- await this.applyInitialAccountsSnapshot();
134
- await this.applyPublicDeployAccountsSnapshot();
135
- await this.applySetupFeeJuiceSnapshot();
136
- await this.applyDeployBananaTokenSnapshot();
137
- }
138
- async applyInitialAccountsSnapshot() {
139
- await this.snapshotManager.snapshot('initial_accounts', deployAccounts(this.numberOfAccounts, this.logger), async ({ deployedAccounts }, { wallet, aztecNode, cheatCodes })=>{
140
- this.wallet = wallet;
141
- this.aztecNode = aztecNode;
142
- this.aztecNodeAdmin = aztecNode;
143
- this.gasSettings = GasSettings.default({
144
- maxFeesPerGas: (await this.aztecNode.getCurrentBaseFees()).mul(2)
145
- });
146
- this.cheatCodes = cheatCodes;
147
- this.accounts = deployedAccounts.map((a)=>a.address);
148
- this.accounts.forEach((a, i)=>this.logger.verbose(`Account ${i} address: ${a}`));
149
- [this.aliceAddress, this.bobAddress, this.sequencerAddress] = this.accounts.slice(0, 3);
150
- // We set Alice as the FPC admin to avoid the need for deployment of another account.
151
- this.fpcAdmin = this.aliceAddress;
152
- const canonicalFeeJuice = await getCanonicalFeeJuice();
153
- this.feeJuiceContract = FeeJuiceContract.at(canonicalFeeJuice.address, this.wallet);
136
+ async applyBaseSetup() {
137
+ await this.applyInitialAccounts();
138
+ await this.applyPublicDeployAccounts();
139
+ await this.applySetupFeeJuice();
140
+ await this.applyDeployBananaToken();
141
+ }
142
+ async applyInitialAccounts() {
143
+ this.logger.info('Applying initial accounts setup');
144
+ const { deployedAccounts } = await deployAccounts(this.numberOfAccounts, this.logger)({
145
+ wallet: this.context.wallet,
146
+ initialFundedAccounts: this.context.initialFundedAccounts
154
147
  });
155
- }
156
- async applyPublicDeployAccountsSnapshot() {
157
- await this.snapshotManager.snapshot('public_deploy_accounts', ()=>ensureAccountContractsPublished(this.wallet, this.accounts));
158
- }
159
- async applySetupFeeJuiceSnapshot() {
160
- await this.snapshotManager.snapshot('setup_fee_juice', async ()=>{}, async (_data, context)=>{
161
- this.context = context;
162
- this.feeJuiceContract = FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.wallet);
163
- this.getGasBalanceFn = getBalancesFn('⛽', this.feeJuiceContract.methods.balance_of_public, this.aliceAddress, this.logger);
164
- this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
165
- aztecNode: context.aztecNode,
166
- aztecNodeAdmin: context.aztecNode,
167
- l1Client: context.deployL1ContractsValues.l1Client,
168
- wallet: this.wallet,
169
- logger: this.logger
170
- });
148
+ this.wallet = this.context.wallet;
149
+ this.aztecNode = this.context.aztecNodeService;
150
+ this.aztecNodeAdmin = this.context.aztecNodeService;
151
+ this.gasSettings = GasSettings.default({
152
+ maxFeesPerGas: (await this.aztecNode.getCurrentMinFees()).mul(2)
171
153
  });
172
- }
173
- async applyDeployBananaTokenSnapshot() {
174
- await this.snapshotManager.snapshot('deploy_banana_token', async ()=>{
175
- const bananaCoin = await BananaCoin.deploy(this.wallet, this.aliceAddress, 'BC', 'BC', 18n).send({
176
- from: this.aliceAddress
177
- }).deployed();
178
- this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
179
- return {
180
- bananaCoinAddress: bananaCoin.address
181
- };
182
- }, ({ bananaCoinAddress })=>{
183
- this.bananaCoin = BananaCoin.at(bananaCoinAddress, this.wallet);
184
- const logger = this.logger;
185
- this.getBananaPublicBalanceFn = getBalancesFn('🍌.public', this.bananaCoin.methods.balance_of_public, this.aliceAddress, logger);
186
- this.getBananaPrivateBalanceFn = getBalancesFn('🍌.private', this.bananaCoin.methods.balance_of_private, this.aliceAddress, logger);
187
- return Promise.resolve();
154
+ this.cheatCodes = this.context.cheatCodes;
155
+ this.accounts = deployedAccounts.map((a)=>a.address);
156
+ this.accounts.forEach((a, i)=>this.logger.verbose(`Account ${i} address: ${a}`));
157
+ [this.aliceAddress, this.bobAddress, this.sequencerAddress] = this.accounts.slice(0, 3);
158
+ // We set Alice as the FPC admin to avoid the need for deployment of another account.
159
+ this.fpcAdmin = this.aliceAddress;
160
+ const canonicalFeeJuice = await getCanonicalFeeJuice();
161
+ this.feeJuiceContract = FeeJuiceContract.at(canonicalFeeJuice.address, this.wallet);
162
+ }
163
+ async applyPublicDeployAccounts() {
164
+ this.logger.info('Applying public deploy accounts setup');
165
+ await publicDeployAccounts(this.wallet, this.accounts);
166
+ }
167
+ async applySetupFeeJuice() {
168
+ this.logger.info('Applying fee juice setup');
169
+ this.feeJuiceContract = FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.wallet);
170
+ this.getGasBalanceFn = getBalancesFn('⛽', this.feeJuiceContract.methods.balance_of_public, this.aliceAddress, this.logger);
171
+ this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
172
+ aztecNode: this.context.aztecNodeService,
173
+ aztecNodeAdmin: this.context.aztecNodeService,
174
+ l1Client: this.context.deployL1ContractsValues.l1Client,
175
+ wallet: this.wallet,
176
+ logger: this.logger
188
177
  });
189
178
  }
190
- async applyFPCSetupSnapshot() {
191
- await this.snapshotManager.snapshot('fpc_setup', async (context)=>{
192
- const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
193
- expect((await context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
194
- const bananaCoin = this.bananaCoin;
195
- const bananaFPC = await FPCContract.deploy(this.wallet, bananaCoin.address, this.fpcAdmin).send({
196
- from: this.aliceAddress
197
- }).deployed();
198
- this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
199
- await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.aliceAddress);
200
- return {
201
- bananaFPCAddress: bananaFPC.address,
202
- feeJuiceAddress: feeJuiceContract.address,
203
- l1FeeJuiceAddress: this.feeJuiceBridgeTestHarness.l1FeeJuiceAddress,
204
- rollupAddress: context.deployL1ContractsValues.l1ContractAddresses.rollupAddress
205
- };
206
- }, (data, context)=>{
207
- const bananaFPC = FPCContract.at(data.bananaFPCAddress, this.wallet);
208
- this.bananaFPC = bananaFPC;
209
- this.getCoinbaseBalance = async ()=>{
210
- const l1Client = createExtendedL1Client(context.aztecNodeConfig.l1RpcUrls, MNEMONIC);
211
- const gasL1 = getContract({
212
- address: data.l1FeeJuiceAddress.toString(),
213
- abi: TestERC20Abi,
214
- client: l1Client
215
- });
216
- return await gasL1.read.balanceOf([
217
- this.coinbase.toString()
218
- ]);
219
- };
220
- this.getCoinbaseSequencerRewards = async ()=>{
221
- return await this.rollupContract.getSequencerRewards(this.coinbase);
222
- };
223
- this.getProverFee = async (blockNumber)=>{
224
- const block = await this.aztecNode.getBlock(blockNumber);
225
- // @todo @lherskind As we deal with #13601
226
- // Right now the value is from `FeeLib.sol`
227
- const L1_GAS_PER_EPOCH_VERIFIED = 1000000n;
228
- // We round up
229
- const mulDiv = (a, b, c)=>a * b / c + (a * b % c > 0n ? 1n : 0n);
230
- const { baseFee } = await this.rollupContract.getL1FeesAt(block.header.globalVariables.timestamp);
231
- const proverCost = mulDiv(mulDiv(L1_GAS_PER_EPOCH_VERIFIED, baseFee, await this.rollupContract.getEpochDuration()), 1n, await this.rollupContract.getManaTarget()) + await this.rollupContract.getProvingCostPerMana();
232
- const price = await this.rollupContract.getFeeAssetPerEth();
233
- const mana = block.header.totalManaUsed.toBigInt();
234
- return mulDiv(mana * proverCost, price, 10n ** 9n);
235
- };
236
- return Promise.resolve();
237
- });
179
+ async applyDeployBananaToken() {
180
+ this.logger.info('Applying deploy banana token setup');
181
+ const bananaCoin = await BananaCoin.deploy(this.wallet, this.aliceAddress, 'BC', 'BC', 18n).send({
182
+ from: this.aliceAddress
183
+ }).deployed();
184
+ this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
185
+ this.bananaCoin = bananaCoin;
186
+ this.getBananaPublicBalanceFn = getBalancesFn('🍌.public', this.bananaCoin.methods.balance_of_public, this.aliceAddress, this.logger);
187
+ this.getBananaPrivateBalanceFn = getBalancesFn('🍌.private', this.bananaCoin.methods.balance_of_private, this.aliceAddress, this.logger);
188
+ }
189
+ async applyFPCSetup() {
190
+ this.logger.info('Applying FPC setup');
191
+ const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
192
+ expect((await this.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
193
+ const bananaCoin = this.bananaCoin;
194
+ const bananaFPC = await FPCContract.deploy(this.wallet, bananaCoin.address, this.fpcAdmin).send({
195
+ from: this.aliceAddress
196
+ }).deployed();
197
+ this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
198
+ await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.aliceAddress);
199
+ this.bananaFPC = bananaFPC;
200
+ const l1FeeJuiceAddress = this.feeJuiceBridgeTestHarness.l1FeeJuiceAddress;
201
+ this.getCoinbaseBalance = async ()=>{
202
+ const l1Client = createExtendedL1Client(this.context.config.l1RpcUrls, MNEMONIC);
203
+ const gasL1 = getContract({
204
+ address: l1FeeJuiceAddress.toString(),
205
+ abi: TestERC20Abi,
206
+ client: l1Client
207
+ });
208
+ return await gasL1.read.balanceOf([
209
+ this.coinbase.toString()
210
+ ]);
211
+ };
212
+ this.getCoinbaseSequencerRewards = async ()=>{
213
+ return await this.rollupContract.getSequencerRewards(this.coinbase);
214
+ };
215
+ this.getProverFee = async (blockNumber)=>{
216
+ const block = await this.aztecNode.getBlock(blockNumber);
217
+ // @todo @lherskind As we deal with #13601
218
+ // Right now the value is from `FeeLib.sol`
219
+ const L1_GAS_PER_EPOCH_VERIFIED = 1000000n;
220
+ // We round up
221
+ const mulDiv = (a, b, c)=>a * b / c + (a * b % c > 0n ? 1n : 0n);
222
+ const { baseFee } = await this.rollupContract.getL1FeesAt(block.header.globalVariables.timestamp);
223
+ const proverCost = mulDiv(mulDiv(L1_GAS_PER_EPOCH_VERIFIED, baseFee, BigInt(await this.rollupContract.getEpochDuration())), 1n, await this.rollupContract.getManaTarget()) + await this.rollupContract.getProvingCostPerMana();
224
+ const price = await this.rollupContract.getFeeAssetPerEth();
225
+ const mana = block.header.totalManaUsed.toBigInt();
226
+ return mulDiv(mana * proverCost, price, 10n ** 9n);
227
+ };
238
228
  }
239
- async applySponsoredFPCSetupSnapshot() {
240
- await this.snapshotManager.snapshot('sponsored_fpc_setup', async (context)=>{
241
- const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
242
- expect((await context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
243
- const sponsoredFPC = await setupSponsoredFPC(this.wallet);
244
- this.logger.info(`SponsoredFPC at ${sponsoredFPC.address}`);
245
- return {
246
- sponsoredFPCAddress: sponsoredFPC.address
247
- };
248
- }, (data)=>{
249
- this.sponsoredFPC = SponsoredFPCContract.at(data.sponsoredFPCAddress, this.wallet);
250
- return Promise.resolve();
251
- });
229
+ async applySponsoredFPCSetup() {
230
+ this.logger.info('Applying sponsored FPC setup');
231
+ const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
232
+ expect((await this.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
233
+ const sponsoredFPCInstance = await setupSponsoredFPC(this.wallet);
234
+ this.logger.info(`SponsoredFPC at ${sponsoredFPCInstance.address}`);
235
+ this.sponsoredFPC = SponsoredFPCContract.at(sponsoredFPCInstance.address, this.wallet);
252
236
  }
253
237
  async applyFundAliceWithBananas() {
254
- await this.snapshotManager.snapshot('fund_alice', async ()=>{
255
- await this.mintPrivateBananas(this.ALICE_INITIAL_BANANAS, this.aliceAddress);
256
- await this.bananaCoin.methods.mint_to_public(this.aliceAddress, this.ALICE_INITIAL_BANANAS).send({
257
- from: this.aliceAddress
258
- }).wait();
259
- }, ()=>Promise.resolve());
238
+ this.logger.info('Applying fund Alice with bananas setup');
239
+ await this.mintPrivateBananas(this.ALICE_INITIAL_BANANAS, this.aliceAddress);
240
+ await this.bananaCoin.methods.mint_to_public(this.aliceAddress, this.ALICE_INITIAL_BANANAS).send({
241
+ from: this.aliceAddress
242
+ }).wait();
260
243
  }
261
244
  async applyFundAliceWithPrivateBananas() {
262
- await this.snapshotManager.snapshot('fund_alice_with_private_bananas', async ()=>{
263
- await this.mintPrivateBananas(this.ALICE_INITIAL_BANANAS, this.aliceAddress);
264
- }, ()=>Promise.resolve());
245
+ this.logger.info('Applying fund Alice with private bananas setup');
246
+ await this.mintPrivateBananas(this.ALICE_INITIAL_BANANAS, this.aliceAddress);
265
247
  }
266
248
  }
@@ -1,10 +1,10 @@
1
1
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
- import type { L2Block } from '@aztec/aztec.js/block';
3
2
  import { Fr } from '@aztec/aztec.js/fields';
4
3
  import { BatchedBlob, Blob } from '@aztec/blob-lib';
4
+ import { L2BlockNew } from '@aztec/stdlib/block';
5
5
  /**
6
6
  * Creates a json object that can be used to test the solidity contract.
7
7
  * The json object must be put into
8
8
  */
9
- export declare function writeJson(fileName: string, block: L2Block, l1ToL2Content: Fr[], blobs: Blob[], batchedBlob: BatchedBlob, recipientAddress: AztecAddress, deployerAddress: `0x${string}`): Promise<void>;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVfanNvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2UyZV9sMV9wdWJsaXNoZXIvd3JpdGVfanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUE2RCxNQUFNLGlCQUFpQixDQUFDO0FBTy9HOzs7R0FHRztBQUNILHdCQUFzQixTQUFTLENBQzdCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLEtBQUssRUFBRSxPQUFPLEVBQ2QsYUFBYSxFQUFFLEVBQUUsRUFBRSxFQUNuQixLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQ2IsV0FBVyxFQUFFLFdBQVcsRUFDeEIsZ0JBQWdCLEVBQUUsWUFBWSxFQUM5QixlQUFlLEVBQUUsS0FBSyxNQUFNLEVBQUUsR0FDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXNEZiJ9
9
+ export declare function writeJson(fileName: string, block: L2BlockNew, l1ToL2Content: Fr[], blobs: Blob[], batchedBlob: BatchedBlob, recipientAddress: AztecAddress, deployerAddress: `0x${string}`): Promise<void>;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVfanNvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2UyZV9sMV9wdWJsaXNoZXIvd3JpdGVfanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUE2RCxNQUFNLGlCQUFpQixDQUFDO0FBRS9HLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU9qRDs7O0dBR0c7QUFDSCx3QkFBc0IsU0FBUyxDQUM3QixRQUFRLEVBQUUsTUFBTSxFQUNoQixLQUFLLEVBQUUsVUFBVSxFQUNqQixhQUFhLEVBQUUsRUFBRSxFQUFFLEVBQ25CLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFDYixXQUFXLEVBQUUsV0FBVyxFQUN4QixnQkFBZ0IsRUFBRSxZQUFZLEVBQzlCLGVBQWUsRUFBRSxLQUFLLE1BQU0sRUFBRSxHQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLENBMERmIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"write_json.d.ts","sourceRoot":"","sources":["../../src/e2e_l1_publisher/write_json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,IAAI,EAA6D,MAAM,iBAAiB,CAAC;AAO/G;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,EAAE,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,YAAY,EAC9B,eAAe,EAAE,KAAK,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAsDf"}
1
+ {"version":3,"file":"write_json.d.ts","sourceRoot":"","sources":["../../src/e2e_l1_publisher/write_json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,IAAI,EAA6D,MAAM,iBAAiB,CAAC;AAE/G,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAOjD;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,EACjB,aAAa,EAAE,EAAE,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,YAAY,EAC9B,eAAe,EAAE,KAAK,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CA0Df"}
@@ -1,4 +1,5 @@
1
1
  import { getEthBlobEvaluationInputs, getPrefixedEthBlobCommitments } from '@aztec/blob-lib';
2
+ import { CheckpointHeader } from '@aztec/stdlib/rollup';
2
3
  import { writeFile } from 'fs/promises';
3
4
  const AZTEC_GENERATE_TEST_DATA = !!process.env.AZTEC_GENERATE_TEST_DATA;
4
5
  /**
@@ -14,6 +15,11 @@ const AZTEC_GENERATE_TEST_DATA = !!process.env.AZTEC_GENERATE_TEST_DATA;
14
15
  const buffer = Buffer.isBuffer(value) ? value : value.toBuffer();
15
16
  return `0x${buffer.toString('hex').padStart(size, '0')}`;
16
17
  };
18
+ // Create a checkpoint header for this block
19
+ const checkpointHeader = CheckpointHeader.random({
20
+ slotNumber: block.slot,
21
+ timestamp: block.timestamp
22
+ });
17
23
  const jsonObject = {
18
24
  populate: {
19
25
  l1ToL2Content: l1ToL2Content.map((value)=>asHex(value)),
@@ -32,24 +38,22 @@ const AZTEC_GENERATE_TEST_DATA = !!process.env.AZTEC_GENERATE_TEST_DATA;
32
38
  checkpointNumber: block.number,
33
39
  body: `0x${block.body.toBuffer().toString('hex')}`,
34
40
  header: {
35
- lastArchiveRoot: asHex(block.header.lastArchive.root),
36
- blockHeadersHash: asHex(block.header.blockHeadersHash),
37
- contentCommitment: {
38
- blobsHash: asHex(block.header.contentCommitment.blobsHash),
39
- inHash: asHex(block.header.contentCommitment.inHash),
40
- outHash: asHex(block.header.contentCommitment.outHash)
41
- },
42
- slotNumber: Number(block.header.globalVariables.slotNumber),
43
- timestamp: Number(block.header.globalVariables.timestamp),
44
- coinbase: asHex(block.header.globalVariables.coinbase, 40),
45
- feeRecipient: asHex(block.header.globalVariables.feeRecipient),
41
+ lastArchiveRoot: asHex(checkpointHeader.lastArchiveRoot),
42
+ blockHeadersHash: asHex(checkpointHeader.blockHeadersHash),
43
+ blobsHash: asHex(checkpointHeader.blobsHash),
44
+ inHash: asHex(checkpointHeader.inHash),
45
+ outHash: asHex(checkpointHeader.epochOutHash),
46
+ slotNumber: Number(checkpointHeader.slotNumber),
47
+ timestamp: Number(checkpointHeader.timestamp),
48
+ coinbase: asHex(checkpointHeader.coinbase, 40),
49
+ feeRecipient: asHex(checkpointHeader.feeRecipient),
46
50
  gasFees: {
47
- feePerDaGas: Number(block.header.globalVariables.gasFees.feePerDaGas),
48
- feePerL2Gas: Number(block.header.globalVariables.gasFees.feePerL2Gas)
51
+ feePerDaGas: Number(checkpointHeader.gasFees.feePerDaGas),
52
+ feePerL2Gas: Number(checkpointHeader.gasFees.feePerL2Gas)
49
53
  },
50
- totalManaUsed: block.header.totalManaUsed.toNumber()
54
+ totalManaUsed: checkpointHeader.totalManaUsed.toNumber()
51
55
  },
52
- headerHash: asHex(block.getCheckpointHeader().hash()),
56
+ headerHash: asHex(checkpointHeader.hash()),
53
57
  numTxs: block.body.txEffects.length
54
58
  }
55
59
  };