@aztec/end-to-end 0.85.0 → 0.86.0

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 (55) hide show
  1. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  2. package/dest/bench/client_flows/client_flows_benchmark.js +6 -7
  3. package/dest/bench/client_flows/data_extractor.js +12 -7
  4. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +2 -2
  5. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  6. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +11 -11
  7. package/dest/e2e_epochs/epochs_test.d.ts +2 -2
  8. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  9. package/dest/e2e_epochs/epochs_test.js +1 -1
  10. package/dest/e2e_fees/fees_test.d.ts +4 -0
  11. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  12. package/dest/e2e_fees/fees_test.js +22 -10
  13. package/dest/e2e_p2p/p2p_network.d.ts +67 -72
  14. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  15. package/dest/e2e_p2p/p2p_network.js +20 -61
  16. package/dest/e2e_prover/e2e_prover_test.d.ts.map +1 -1
  17. package/dest/e2e_prover/e2e_prover_test.js +9 -9
  18. package/dest/fixtures/l1_to_l2_messaging.d.ts +2 -3
  19. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  20. package/dest/fixtures/l1_to_l2_messaging.js +3 -3
  21. package/dest/fixtures/setup_l1_contracts.d.ts +1 -1
  22. package/dest/fixtures/setup_l1_contracts.d.ts.map +1 -1
  23. package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
  24. package/dest/fixtures/snapshot_manager.js +9 -11
  25. package/dest/fixtures/utils.d.ts.map +1 -1
  26. package/dest/fixtures/utils.js +24 -23
  27. package/dest/shared/capture_private_execution_steps.d.ts.map +1 -1
  28. package/dest/shared/capture_private_execution_steps.js +3 -17
  29. package/dest/shared/cross_chain_test_harness.d.ts +7 -11
  30. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  31. package/dest/shared/cross_chain_test_harness.js +14 -16
  32. package/dest/shared/gas_portal_test_harness.d.ts +6 -11
  33. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  34. package/dest/shared/gas_portal_test_harness.js +8 -10
  35. package/dest/shared/uniswap_l1_l2.d.ts +3 -5
  36. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  37. package/dest/shared/uniswap_l1_l2.js +18 -19
  38. package/dest/spartan/setup_test_wallets.js +3 -3
  39. package/package.json +34 -35
  40. package/src/bench/client_flows/client_flows_benchmark.ts +6 -8
  41. package/src/bench/client_flows/data_extractor.ts +10 -6
  42. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +14 -18
  43. package/src/e2e_epochs/epochs_test.ts +4 -3
  44. package/src/e2e_fees/fees_test.ts +32 -10
  45. package/src/e2e_p2p/p2p_network.ts +28 -74
  46. package/src/e2e_prover/e2e_prover_test.ts +9 -14
  47. package/src/fixtures/l1_to_l2_messaging.ts +5 -14
  48. package/src/fixtures/setup_l1_contracts.ts +1 -2
  49. package/src/fixtures/snapshot_manager.ts +9 -11
  50. package/src/fixtures/utils.ts +24 -25
  51. package/src/shared/capture_private_execution_steps.ts +3 -19
  52. package/src/shared/cross_chain_test_harness.ts +14 -31
  53. package/src/shared/gas_portal_test_harness.ts +9 -14
  54. package/src/shared/uniswap_l1_l2.ts +25 -43
  55. package/src/spartan/setup_test_wallets.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"client_flows_benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/client_flows_benchmark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client_flows_benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/client_flows_benchmark.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { SchnorrAccountContractArtifact, getSchnorrAccount, getSchnorrWallet } f
3
3
  import { FeeJuicePaymentMethod, FeeJuicePaymentMethodWithClaim, PrivateFeePaymentMethod, SponsoredFeePaymentMethod, createLogger } from '@aztec/aztec.js';
4
4
  import { CheatCodes } from '@aztec/aztec.js/testing';
5
5
  import { FEE_FUNDING_FOR_TESTER_ACCOUNT } from '@aztec/constants';
6
- import { RollupContract, createL1Clients, deployL1Contract } from '@aztec/ethereum';
6
+ import { RollupContract, createExtendedL1Client, deployL1Contract } from '@aztec/ethereum';
7
7
  import { ChainMonitor } from '@aztec/ethereum/test';
8
8
  import { randomBytes } from '@aztec/foundation/crypto';
9
9
  import { EthAddress } from '@aztec/foundation/eth-address';
@@ -172,8 +172,7 @@ export class ClientFlowsBenchmark {
172
172
  aztecNode: context.aztecNode,
173
173
  aztecNodeAdmin: context.aztecNode,
174
174
  pxeService: context.pxe,
175
- publicClient: context.deployL1ContractsValues.publicClient,
176
- walletClient: context.deployL1ContractsValues.walletClient,
175
+ l1Client: context.deployL1ContractsValues.l1Client,
177
176
  wallet: this.adminWallet,
178
177
  logger: this.logger
179
178
  });
@@ -228,14 +227,14 @@ export class ClientFlowsBenchmark {
228
227
  });
229
228
  }
230
229
  async createCrossChainTestHarness(owner) {
231
- const { publicClient, walletClient } = createL1Clients(this.context.aztecNodeConfig.l1RpcUrls, MNEMONIC);
232
- const underlyingERC20Address = await deployL1Contract(walletClient, publicClient, TestERC20Abi, TestERC20Bytecode, [
230
+ const l1Client = createExtendedL1Client(this.context.aztecNodeConfig.l1RpcUrls, MNEMONIC);
231
+ const underlyingERC20Address = await deployL1Contract(l1Client, TestERC20Abi, TestERC20Bytecode, [
233
232
  'Underlying',
234
233
  'UND',
235
- walletClient.account.address
234
+ l1Client.account.address
236
235
  ]).then(({ address })=>address);
237
236
  this.logger.verbose(`Setting up cross chain harness...`);
238
- const crossChainTestHarness = await CrossChainTestHarness.new(this.aztecNode, this.pxe, publicClient, walletClient, owner, this.logger, underlyingERC20Address);
237
+ const crossChainTestHarness = await CrossChainTestHarness.new(this.aztecNode, this.pxe, l1Client, owner, this.logger, underlyingERC20Address);
239
238
  this.logger.verbose(`L2 token deployed to: ${crossChainTestHarness.l2Token.address}`);
240
239
  return crossChainTestHarness;
241
240
  }
@@ -1,8 +1,8 @@
1
- import { BBNativePrivateKernelProver } from '@aztec/bb-prover';
2
- import { BBWASMBundlePrivateKernelProver } from '@aztec/bb-prover/wasm/bundle';
1
+ import { BBNativePrivateKernelProver } from '@aztec/bb-prover/client/native';
2
+ import { BBWASMBundlePrivateKernelProver } from '@aztec/bb-prover/client/wasm/bundle';
3
3
  import { createLogger, logger } from '@aztec/foundation/log';
4
4
  import { WASMSimulator } from '@aztec/simulator/client';
5
- import { decode } from '@msgpack/msgpack';
5
+ import { Decoder } from 'msgpackr';
6
6
  import assert from 'node:assert';
7
7
  import { readFile, readdir, writeFile } from 'node:fs/promises';
8
8
  import { join } from 'node:path';
@@ -131,8 +131,10 @@ async function main() {
131
131
  const userLog = createLogger('client_ivc_flows:data_processor');
132
132
  for (const flow of flows){
133
133
  userLog.info(`Processing flow ${flow}`);
134
- const bytecode = await readFile(join(ivcFolder, flow, 'acir.msgpack'));
135
- const acirStack = decode(bytecode);
134
+ const ivcInputs = await readFile(join(ivcFolder, flow, 'ivc-inputs.msgpack'));
135
+ const stepsFromFile = new Decoder({
136
+ useRecords: false
137
+ }).unpack(ivcInputs);
136
138
  const witnesses = await readFile(join(ivcFolder, flow, 'witnesses.json'));
137
139
  const witnessStack = JSON.parse(witnesses.toString()).map((witnessMap)=>{
138
140
  return new Map(Object.entries(witnessMap).map(([k, v])=>[
@@ -145,8 +147,11 @@ async function main() {
145
147
  const privateExecutionSteps = executionSteps.map((step, i)=>({
146
148
  functionName: step.fnName,
147
149
  gateCount: step.gateCount,
148
- bytecode: acirStack[i],
149
- witness: witnessStack[i]
150
+ bytecode: stepsFromFile[i].bytecode,
151
+ // TODO(AD) do we still want to take this from witness.json?
152
+ witness: witnessStack[i],
153
+ // This can be left empty. If so, the prover will generate a vk on the fly (~25% slower).
154
+ vk: Buffer.from([])
150
155
  }));
151
156
  let stats;
152
157
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -1,7 +1,7 @@
1
1
  import type { AztecNodeConfig } from '@aztec/aztec-node';
2
2
  import { type AccountWallet, AztecAddress, type AztecNode, type CompleteAddress, EthAddress, type Logger, type PXE } from '@aztec/aztec.js';
3
3
  import { CheatCodes } from '@aztec/aztec.js/testing';
4
- import { type ViemPublicClient } from '@aztec/ethereum';
4
+ import { type ExtendedViemWalletClient } from '@aztec/ethereum';
5
5
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
6
6
  import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
7
7
  import { type SubsystemsContext } from '../fixtures/snapshot_manager.js';
@@ -14,7 +14,7 @@ export declare class CrossChainMessagingTest {
14
14
  aztecNode: AztecNode;
15
15
  pxe: PXE;
16
16
  aztecNodeConfig: AztecNodeConfig;
17
- publicClient: ViemPublicClient | undefined;
17
+ l1Client: ExtendedViemWalletClient | undefined;
18
18
  user1Wallet: AccountWallet;
19
19
  user2Wallet: AccountWallet;
20
20
  crossChainTestHarness: CrossChainTestHarness;
@@ -1 +1 @@
1
- {"version":3,"file":"cross_chain_messaging_test.d.ts","sourceRoot":"","sources":["../../src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,KAAK,aAAa,EAClB,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EAET,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,gBAAgB,EAAqC,MAAM,iBAAiB,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAK3E,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAI9E,qBAAa,uBAAuB;IAClC,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,EAAE,CAAM;IAC9B,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,SAAS,EAAG,SAAS,CAAC;IACtB,GAAG,EAAG,GAAG,CAAC;IACV,eAAe,EAAG,eAAe,CAAC;IAElC,YAAY,EAAG,gBAAgB,GAAG,SAAS,CAAC;IAE5C,WAAW,EAAG,aAAa,CAAC;IAC5B,WAAW,EAAG,aAAa,CAAC;IAC5B,qBAAqB,EAAG,qBAAqB,CAAC;IAC9C,UAAU,EAAG,UAAU,CAAC;IACxB,YAAY,EAAG,YAAY,CAAC;IAC5B,OAAO,EAAG,aAAa,CAAC;IACxB,QAAQ,EAAG,mBAAmB,CAAC;IAE/B,KAAK,EAAG,GAAG,CAAC;IACZ,MAAM,EAAG,GAAG,CAAC;IACb,UAAU,EAAG,UAAU,CAAC;gBAEZ,QAAQ,EAAE,MAAM;IAKtB,YAAY;IAIZ,KAAK;IAQX,QAAQ,YACA,MAAM,SACL,CAAC,OAAO,EAAE,iBAAiB,KAAK,QAAQ,CAAC,CAAC,YACxC,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,QAAQ,IAAI,CAAC,KACtE,QAAQ,IAAI,CAAC,CAAwD;IAElE,QAAQ;IAIR,kBAAkB;CAiGzB"}
1
+ {"version":3,"file":"cross_chain_messaging_test.d.ts","sourceRoot":"","sources":["../../src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,KAAK,aAAa,EAClB,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EAET,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,wBAAwB,EAA4C,MAAM,iBAAiB,CAAC;AAE1G,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAK3E,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAI9E,qBAAa,uBAAuB;IAClC,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,EAAE,CAAM;IAC9B,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,SAAS,EAAG,SAAS,CAAC;IACtB,GAAG,EAAG,GAAG,CAAC;IACV,eAAe,EAAG,eAAe,CAAC;IAElC,QAAQ,EAAG,wBAAwB,GAAG,SAAS,CAAC;IAEhD,WAAW,EAAG,aAAa,CAAC;IAC5B,WAAW,EAAG,aAAa,CAAC;IAC5B,qBAAqB,EAAG,qBAAqB,CAAC;IAC9C,UAAU,EAAG,UAAU,CAAC;IACxB,YAAY,EAAG,YAAY,CAAC;IAC5B,OAAO,EAAG,aAAa,CAAC;IACxB,QAAQ,EAAG,mBAAmB,CAAC;IAE/B,KAAK,EAAG,GAAG,CAAC;IACZ,MAAM,EAAG,GAAG,CAAC;IACb,UAAU,EAAG,UAAU,CAAC;gBAEZ,QAAQ,EAAE,MAAM;IAKtB,YAAY;IAIZ,KAAK;IAQX,QAAQ,YACA,MAAM,SACL,CAAC,OAAO,EAAE,iBAAiB,KAAK,QAAQ,CAAC,CAAC,YACxC,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,QAAQ,IAAI,CAAC,KACtE,QAAQ,IAAI,CAAC,CAAwD;IAElE,QAAQ;IAIR,kBAAkB;CA6FzB"}
@@ -1,7 +1,7 @@
1
1
  import { getSchnorrWallet } from '@aztec/accounts/schnorr';
2
2
  import { AztecAddress, EthAddress, createLogger } from '@aztec/aztec.js';
3
3
  import { CheatCodes } from '@aztec/aztec.js/testing';
4
- import { createL1Clients, deployL1Contract } from '@aztec/ethereum';
4
+ import { createExtendedL1Client, deployL1Contract } from '@aztec/ethereum';
5
5
  import { InboxAbi, OutboxAbi, TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
6
6
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
7
7
  import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
@@ -18,7 +18,7 @@ export class CrossChainMessagingTest {
18
18
  aztecNode;
19
19
  pxe;
20
20
  aztecNodeConfig;
21
- publicClient;
21
+ l1Client;
22
22
  user1Wallet;
23
23
  user2Wallet;
24
24
  crossChainTestHarness;
@@ -65,14 +65,14 @@ export class CrossChainMessagingTest {
65
65
  // Move this account thing to addAccounts above?
66
66
  this.logger.verbose(`Public deploy accounts...`);
67
67
  await publicDeployAccounts(this.wallets[0], this.accounts.slice(0, 3));
68
- const { publicClient, walletClient } = createL1Clients(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
69
- const underlyingERC20Address = await deployL1Contract(walletClient, publicClient, TestERC20Abi, TestERC20Bytecode, [
68
+ this.l1Client = createExtendedL1Client(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
69
+ const underlyingERC20Address = await deployL1Contract(this.l1Client, TestERC20Abi, TestERC20Bytecode, [
70
70
  'Underlying',
71
71
  'UND',
72
- walletClient.account.address
72
+ this.l1Client.account.address
73
73
  ]).then(({ address })=>address);
74
74
  this.logger.verbose(`Setting up cross chain harness...`);
75
- this.crossChainTestHarness = await CrossChainTestHarness.new(this.aztecNode, this.pxe, publicClient, walletClient, this.wallets[0], this.logger, underlyingERC20Address);
75
+ this.crossChainTestHarness = await CrossChainTestHarness.new(this.aztecNode, this.pxe, this.l1Client, this.wallets[0], this.logger, underlyingERC20Address);
76
76
  this.logger.verbose(`L2 token deployed to: ${this.crossChainTestHarness.l2Token.address}`);
77
77
  return this.crossChainTestHarness.toCrossChainContext();
78
78
  }, async (crossChainContext)=>{
@@ -82,19 +82,19 @@ export class CrossChainMessagingTest {
82
82
  this.ethAccount = EthAddress.fromString(crossChainContext.ethAccount.toString());
83
83
  this.ownerAddress = AztecAddress.fromString(crossChainContext.ownerAddress.toString());
84
84
  const tokenPortalAddress = EthAddress.fromString(crossChainContext.tokenPortal.toString());
85
- const { publicClient, walletClient } = createL1Clients(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
85
+ const l1Client = createExtendedL1Client(this.aztecNodeConfig.l1RpcUrls, MNEMONIC);
86
86
  const inbox = getContract({
87
87
  address: this.aztecNodeConfig.l1Contracts.inboxAddress.toString(),
88
88
  abi: InboxAbi,
89
- client: walletClient
89
+ client: l1Client
90
90
  });
91
91
  const outbox = getContract({
92
92
  address: this.aztecNodeConfig.l1Contracts.outboxAddress.toString(),
93
93
  abi: OutboxAbi,
94
- client: walletClient
94
+ client: l1Client
95
95
  });
96
- this.crossChainTestHarness = new CrossChainTestHarness(this.aztecNode, this.pxe, this.logger, this.l2Token, this.l2Bridge, this.ethAccount, tokenPortalAddress, crossChainContext.underlying, publicClient, walletClient, this.aztecNodeConfig.l1Contracts, this.user1Wallet);
97
- this.publicClient = publicClient;
96
+ this.crossChainTestHarness = new CrossChainTestHarness(this.aztecNode, this.pxe, this.logger, this.l2Token, this.l2Bridge, this.ethAccount, tokenPortalAddress, crossChainContext.underlying, l1Client, this.aztecNodeConfig.l1Contracts, this.user1Wallet);
97
+ this.l1Client = l1Client;
98
98
  this.inbox = inbox;
99
99
  this.outbox = outbox;
100
100
  });
@@ -1,11 +1,11 @@
1
1
  import { AztecNodeService } from '@aztec/aztec-node';
2
2
  import { type Logger } from '@aztec/aztec.js';
3
+ import type { ViemClient } from '@aztec/ethereum';
3
4
  import { RollupContract } from '@aztec/ethereum/contracts';
4
5
  import { ChainMonitor, type Delayer } from '@aztec/ethereum/test';
5
6
  import { ProverNode } from '@aztec/prover-node';
6
7
  import type { L2BlockNumber } from '@aztec/stdlib/block';
7
8
  import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
8
- import type { PublicClient } from 'viem';
9
9
  import { type EndToEndContext, type SetupOptions } from '../fixtures/utils.js';
10
10
  export declare const L1_BLOCK_TIME_IN_S: number;
11
11
  export declare const L2_SLOT_DURATION_IN_L1_SLOTS = 2;
@@ -20,7 +20,7 @@ export type EpochsTestOpts = Partial<Pick<SetupOptions, 'startProverNode' | 'azt
20
20
  */
21
21
  export declare class EpochsTestContext {
22
22
  context: EndToEndContext;
23
- l1Client: PublicClient;
23
+ l1Client: ViemClient;
24
24
  rollup: RollupContract;
25
25
  constants: L1RollupConstants;
26
26
  logger: Logger;
@@ -1 +1 @@
1
- {"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAM,KAAK,MAAM,EAA8D,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAkB,KAAK,OAAO,EAAwB,MAAM,sBAAsB,CAAC;AAGxG,OAAO,EAAE,UAAU,EAAuB,MAAM,oBAAoB,CAAC;AAIrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,KAAK,EAAO,YAAY,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAIlB,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,kBAAkB,QAAsE,CAAC;AACtG,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG,OAAO,CAClC,IAAI,CAAC,YAAY,EAAE,iBAAiB,GAAG,4BAA4B,GAAG,oBAAoB,GAAG,mBAAmB,CAAC,CAClH,CAAC;AAEF;;;;GAIG;AACH,qBAAa,iBAAiB;IACrB,OAAO,EAAG,eAAe,CAAC;IAC1B,QAAQ,EAAG,YAAY,CAAC;IACxB,MAAM,EAAG,cAAc,CAAC;IACxB,SAAS,EAAG,iBAAiB,CAAC;IAC9B,MAAM,EAAG,MAAM,CAAC;IAChB,OAAO,EAAG,YAAY,CAAC;IACvB,aAAa,EAAG,OAAO,CAAC;IACxB,gBAAgB,EAAG,OAAO,CAAC;IAE3B,WAAW,EAAE,UAAU,EAAE,CAAM;IAC/B,KAAK,EAAE,gBAAgB,EAAE,CAAM;IAE/B,aAAa,EAAG,MAAM,CAAC;WAEV,KAAK,CAAC,IAAI,GAAE,cAAmB;IAMtC,KAAK,CAAC,IAAI,GAAE,cAAmB;IAoE/B,QAAQ;IAOR,gBAAgB;IAgBhB,sBAAsB;IAcnC,OAAO,CAAC,iBAAiB;IAKzB,0FAA0F;IAC7E,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAO/C,sDAAsD;IACzC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAK;IAShE,iEAAiE;IACpD,4BAA4B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,SAAK;IASjE,mEAAmE;IACtD,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU;IAclF,0EAA0E;IAC7D,mBAAmB,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO;CAUtF"}
1
+ {"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAM,KAAK,MAAM,EAA8D,MAAM,iBAAiB,CAAC;AAC9G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAkB,KAAK,OAAO,EAAwB,MAAM,sBAAsB,CAAC;AAGxG,OAAO,EAAE,UAAU,EAAuB,MAAM,oBAAoB,CAAC;AAIrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAKrE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAIlB,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,kBAAkB,QAAsE,CAAC;AACtG,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG,OAAO,CAClC,IAAI,CAAC,YAAY,EAAE,iBAAiB,GAAG,4BAA4B,GAAG,oBAAoB,GAAG,mBAAmB,CAAC,CAClH,CAAC;AAEF;;;;GAIG;AACH,qBAAa,iBAAiB;IACrB,OAAO,EAAG,eAAe,CAAC;IAC1B,QAAQ,EAAG,UAAU,CAAC;IACtB,MAAM,EAAG,cAAc,CAAC;IACxB,SAAS,EAAG,iBAAiB,CAAC;IAC9B,MAAM,EAAG,MAAM,CAAC;IAChB,OAAO,EAAG,YAAY,CAAC;IACvB,aAAa,EAAG,OAAO,CAAC;IACxB,gBAAgB,EAAG,OAAO,CAAC;IAE3B,WAAW,EAAE,UAAU,EAAE,CAAM;IAC/B,KAAK,EAAE,gBAAgB,EAAE,CAAM;IAE/B,aAAa,EAAG,MAAM,CAAC;WAEV,KAAK,CAAC,IAAI,GAAE,cAAmB;IAMtC,KAAK,CAAC,IAAI,GAAE,cAAmB;IAoE/B,QAAQ;IAOR,gBAAgB;IAgBhB,sBAAsB;IAcnC,OAAO,CAAC,iBAAiB;IAKzB,0FAA0F;IAC7E,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAO/C,sDAAsD;IACzC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAK;IAShE,iEAAiE;IACpD,4BAA4B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,SAAK;IASjE,mEAAmE;IACtD,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU;IAclF,0EAA0E;IAC7D,mBAAmB,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO;CAUtF"}
@@ -69,7 +69,7 @@ export const ARCHIVER_POLL_INTERVAL = 50;
69
69
  context.aztecNode
70
70
  ] : [];
71
71
  this.logger = context.logger;
72
- this.l1Client = context.deployL1ContractsValues.publicClient;
72
+ this.l1Client = context.deployL1ContractsValues.l1Client;
73
73
  this.rollup = RollupContract.getFromConfig(context.config);
74
74
  // Loop that tracks L1 and L2 block numbers and logs whenever there's a new one.
75
75
  this.monitor = new ChainMonitor(this.rollup, this.logger).start();
@@ -62,6 +62,10 @@ export declare class FeesTest {
62
62
  teardown(): Promise<void>;
63
63
  setIsMarkingAsProven(b: boolean): void;
64
64
  catchUpProvenChain(): Promise<void>;
65
+ getBlockRewards(): Promise<{
66
+ sequencerBlockRewards: bigint;
67
+ proverBlockRewards: bigint;
68
+ }>;
65
69
  mintAndBridgeFeeJuice(address: AztecAddress, amount: bigint): Promise<void>;
66
70
  /** Alice mints bananaCoin tokens privately to the target address and redeems them. */
67
71
  mintPrivateBananas(amount: bigint, address: AztecAddress): Promise<void>;
@@ -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":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,GAAG,EAGT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EACL,KAAK,qBAAqB,EAK3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,EAEL,KAAK,iBAAiB,EAGvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EAIlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAuC,KAAK,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAIxH;;;;;;;;;GASG;AACH,qBAAa,QAAQ;IA4CjB,OAAO,CAAC,gBAAgB;IA3C1B,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,OAAO,CAAuB;IAE/B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAG,GAAG,CAAC;IACV,SAAS,EAAG,SAAS,CAAC;IACtB,UAAU,EAAG,UAAU,CAAC;IAExB,WAAW,EAAG,aAAa,CAAC;IAC5B,YAAY,EAAG,YAAY,CAAC;IAC5B,SAAS,EAAG,aAAa,CAAC;IAC1B,UAAU,EAAG,YAAY,CAAC;IAC1B,gBAAgB,EAAG,YAAY,CAAC;IAChC,QAAQ,EAAG,UAAU,CAAC;IAEtB,QAAQ,EAAG,YAAY,CAAC;IAExB,WAAW,EAAG,WAAW,CAAC;IAE1B,gBAAgB,EAAG,gBAAgB,CAAC;IACpC,UAAU,EAAG,UAAU,CAAC;IACxB,SAAS,EAAG,WAAW,CAAC;IACxB,YAAY,EAAG,oBAAoB,CAAC;IACpC,eAAe,EAAG,eAAe,CAAC;IAClC,oBAAoB,EAAG,uBAAuB,CAAC;IAC/C,yBAAyB,EAAG,sBAAsB,CAAC;IAEnD,OAAO,EAAG,iBAAiB,CAAC;IAC5B,YAAY,EAAG,YAAY,CAAC;IAE5B,kBAAkB,EAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,2BAA2B,EAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,eAAe,EAAG,UAAU,CAAC;IAC7B,wBAAwB,EAAG,UAAU,CAAC;IACtC,yBAAyB,EAAG,UAAU,CAAC;IACvC,YAAY,EAAG,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/D,SAAgB,qBAAqB,SAAgB;IACrD,SAAgB,mBAAmB,SAAgB;IACnD,SAAgB,0BAA0B,SAAgB;gBAGxD,QAAQ,EAAE,MAAM,EACR,gBAAgB,SAAI,EAC5B,YAAY,GAAE,OAAO,CAAC,YAAY,GAAG,qBAAqB,CAAM;IAc5D,KAAK;IAUL,QAAQ;IAKd,oBAAoB,CAAC,CAAC,EAAE,OAAO;IAIzB,kBAAkB;IAOlB,eAAe;;;;IAoBf,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAMjE,sFAAsF;IAChF,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IASjD,kBAAkB;IAOzB,4BAA4B;IAyB5B,iCAAiC;IAMjC,0BAA0B;IAuB1B,8BAA8B;IAuBvB,qBAAqB;IA4DrB,8BAA8B;IAqB9B,yBAAyB;IAWzB,gCAAgC;IAUhC,sBAAsB;CAgCpC"}
@@ -2,7 +2,7 @@ import { getSchnorrWallet } from '@aztec/accounts/schnorr';
2
2
  import { createLogger, sleep } from '@aztec/aztec.js';
3
3
  import { CheatCodes } from '@aztec/aztec.js/testing';
4
4
  import { FEE_FUNDING_FOR_TESTER_ACCOUNT } from '@aztec/constants';
5
- import { RollupContract, createL1Clients, getPublicClient } from '@aztec/ethereum';
5
+ import { RollupContract, createExtendedL1Client, getPublicClient, l1Artifacts } from '@aztec/ethereum';
6
6
  import { ChainMonitor } from '@aztec/ethereum/test';
7
7
  import { EthAddress } from '@aztec/foundation/eth-address';
8
8
  import { TestERC20Abi } from '@aztec/l1-artifacts';
@@ -105,6 +105,22 @@ const { E2E_DATA_PATH: dataPath } = process.env;
105
105
  await sleep(1000);
106
106
  }
107
107
  }
108
+ async getBlockRewards() {
109
+ const rewardDistributor = getContract({
110
+ address: this.context.deployL1ContractsValues.l1ContractAddresses.rewardDistributorAddress.toString(),
111
+ abi: l1Artifacts.rewardDistributor.contractAbi,
112
+ client: this.context.deployL1ContractsValues.l1Client
113
+ });
114
+ const blockReward = await rewardDistributor.read.BLOCK_REWARD();
115
+ const balance = await this.feeJuiceBridgeTestHarness.getL1FeeJuiceBalance(EthAddress.fromString(rewardDistributor.address));
116
+ const toDistribute = balance > blockReward ? blockReward : balance;
117
+ const sequencerBlockRewards = toDistribute / 2n;
118
+ const proverBlockRewards = toDistribute - sequencerBlockRewards;
119
+ return {
120
+ sequencerBlockRewards,
121
+ proverBlockRewards
122
+ };
123
+ }
108
124
  async mintAndBridgeFeeJuice(address, amount) {
109
125
  const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(amount, address);
110
126
  const { claimSecret: secret, messageLeafIndex: index } = claim;
@@ -153,8 +169,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
153
169
  aztecNode: context.aztecNode,
154
170
  aztecNodeAdmin: context.aztecNode,
155
171
  pxeService: context.pxe,
156
- publicClient: context.deployL1ContractsValues.publicClient,
157
- walletClient: context.deployL1ContractsValues.walletClient,
172
+ l1Client: context.deployL1ContractsValues.l1Client,
158
173
  wallet: this.aliceWallet,
159
174
  logger: this.logger
160
175
  });
@@ -192,22 +207,19 @@ const { E2E_DATA_PATH: dataPath } = process.env;
192
207
  const bananaFPC = await FPCContract.at(data.bananaFPCAddress, this.aliceWallet);
193
208
  this.bananaFPC = bananaFPC;
194
209
  this.getCoinbaseBalance = async ()=>{
195
- const { walletClient } = createL1Clients(context.aztecNodeConfig.l1RpcUrls, MNEMONIC);
210
+ const l1Client = createExtendedL1Client(context.aztecNodeConfig.l1RpcUrls, MNEMONIC);
196
211
  const gasL1 = getContract({
197
212
  address: data.l1FeeJuiceAddress.toString(),
198
213
  abi: TestERC20Abi,
199
- client: walletClient
214
+ client: l1Client
200
215
  });
201
216
  return await gasL1.read.balanceOf([
202
217
  this.coinbase.toString()
203
218
  ]);
204
219
  };
205
220
  this.getCoinbaseSequencerRewards = async ()=>{
206
- const publicClient = getPublicClient({
207
- l1RpcUrls: context.aztecNodeConfig.l1RpcUrls,
208
- l1ChainId: context.aztecNodeConfig.l1ChainId
209
- });
210
- const rollup = new RollupContract(publicClient, data.rollupAddress);
221
+ const l1Client = createExtendedL1Client(context.aztecNodeConfig.l1RpcUrls, MNEMONIC);
222
+ const rollup = new RollupContract(l1Client, data.rollupAddress);
211
223
  return await rollup.getSequencerRewards(this.coinbase);
212
224
  };
213
225
  this.getProverFee = async (blockNumber)=>{
@@ -44,39 +44,39 @@ export declare class P2PNetworkTest {
44
44
  [x: `bytes4[${string}]`]: undefined;
45
45
  [x: `bytes1[${string}]`]: undefined;
46
46
  [x: `bytes23[${string}]`]: undefined;
47
+ [x: `bytes32[${string}]`]: undefined;
48
+ [x: `bytes31[${string}]`]: undefined;
49
+ [x: `bytes30[${string}]`]: undefined;
50
+ [x: `bytes29[${string}]`]: undefined;
51
+ [x: `bytes28[${string}]`]: undefined;
52
+ [x: `bytes27[${string}]`]: undefined;
53
+ [x: `bytes26[${string}]`]: undefined;
54
+ [x: `bytes25[${string}]`]: undefined;
55
+ [x: `bytes24[${string}]`]: undefined;
56
+ [x: `bytes22[${string}]`]: undefined;
57
+ [x: `bytes21[${string}]`]: undefined;
58
+ [x: `bytes20[${string}]`]: undefined;
47
59
  [x: `bytes2[${string}]`]: undefined;
48
- [x: `bytes3[${string}]`]: undefined;
49
- [x: `bytes5[${string}]`]: undefined;
50
- [x: `bytes6[${string}]`]: undefined;
51
- [x: `bytes7[${string}]`]: undefined;
52
- [x: `bytes9[${string}]`]: undefined;
53
- [x: `bytes10[${string}]`]: undefined;
54
- [x: `bytes11[${string}]`]: undefined;
55
- [x: `bytes12[${string}]`]: undefined;
56
- [x: `bytes13[${string}]`]: undefined;
57
- [x: `bytes14[${string}]`]: undefined;
58
- [x: `bytes15[${string}]`]: undefined;
59
- [x: `bytes16[${string}]`]: undefined;
60
- [x: `bytes17[${string}]`]: undefined;
61
60
  [x: `bytes19[${string}]`]: undefined;
62
- [x: `bytes20[${string}]`]: undefined;
63
- [x: `bytes21[${string}]`]: undefined;
64
- [x: `bytes22[${string}]`]: undefined;
65
- [x: `bytes24[${string}]`]: undefined;
66
- [x: `bytes25[${string}]`]: undefined;
67
- [x: `bytes26[${string}]`]: undefined;
68
- [x: `bytes27[${string}]`]: undefined;
69
- [x: `bytes28[${string}]`]: undefined;
70
- [x: `bytes29[${string}]`]: undefined;
71
- [x: `bytes30[${string}]`]: undefined;
72
- [x: `bytes31[${string}]`]: undefined;
73
- [x: `bytes32[${string}]`]: undefined;
61
+ [x: `bytes17[${string}]`]: undefined;
62
+ [x: `bytes16[${string}]`]: undefined;
63
+ [x: `bytes15[${string}]`]: undefined;
64
+ [x: `bytes14[${string}]`]: undefined;
65
+ [x: `bytes13[${string}]`]: undefined;
66
+ [x: `bytes12[${string}]`]: undefined;
67
+ [x: `bytes11[${string}]`]: undefined;
68
+ [x: `bytes10[${string}]`]: undefined;
69
+ [x: `bytes9[${string}]`]: undefined;
70
+ [x: `bytes7[${string}]`]: undefined;
71
+ [x: `bytes6[${string}]`]: undefined;
72
+ [x: `bytes5[${string}]`]: undefined;
73
+ [x: `bytes3[${string}]`]: undefined;
74
74
  [x: `int[${string}]`]: undefined;
75
75
  [x: `int8[${string}]`]: undefined;
76
- [x: `int16[${string}]`]: undefined;
77
- [x: `int24[${string}]`]: undefined;
78
- [x: `int32[${string}]`]: undefined;
79
76
  [x: `int40[${string}]`]: undefined;
77
+ [x: `int32[${string}]`]: undefined;
78
+ [x: `int24[${string}]`]: undefined;
79
+ [x: `int16[${string}]`]: undefined;
80
80
  [x: `int48[${string}]`]: undefined;
81
81
  [x: `int56[${string}]`]: undefined;
82
82
  [x: `int64[${string}]`]: undefined;
@@ -106,10 +106,10 @@ export declare class P2PNetworkTest {
106
106
  [x: `int256[${string}]`]: undefined;
107
107
  [x: `uint[${string}]`]: undefined;
108
108
  [x: `uint8[${string}]`]: undefined;
109
- [x: `uint16[${string}]`]: undefined;
110
- [x: `uint24[${string}]`]: undefined;
111
- [x: `uint32[${string}]`]: undefined;
112
109
  [x: `uint40[${string}]`]: undefined;
110
+ [x: `uint32[${string}]`]: undefined;
111
+ [x: `uint24[${string}]`]: undefined;
112
+ [x: `uint16[${string}]`]: undefined;
113
113
  [x: `uint48[${string}]`]: undefined;
114
114
  [x: `uint56[${string}]`]: undefined;
115
115
  [x: `uint64[${string}]`]: undefined;
@@ -146,38 +146,38 @@ export declare class P2PNetworkTest {
146
146
  bytes4?: undefined;
147
147
  bytes1?: undefined;
148
148
  bytes23?: undefined;
149
+ bytes32?: undefined;
150
+ bytes31?: undefined;
151
+ bytes30?: undefined;
152
+ bytes29?: undefined;
153
+ bytes28?: undefined;
154
+ bytes27?: undefined;
155
+ bytes26?: undefined;
156
+ bytes25?: undefined;
157
+ bytes24?: undefined;
158
+ bytes22?: undefined;
159
+ bytes21?: undefined;
160
+ bytes20?: undefined;
149
161
  bytes2?: undefined;
150
- bytes3?: undefined;
151
- bytes5?: undefined;
152
- bytes6?: undefined;
153
- bytes7?: undefined;
154
- bytes9?: undefined;
155
- bytes10?: undefined;
156
- bytes11?: undefined;
157
- bytes12?: undefined;
158
- bytes13?: undefined;
159
- bytes14?: undefined;
160
- bytes15?: undefined;
161
- bytes16?: undefined;
162
- bytes17?: undefined;
163
162
  bytes19?: undefined;
164
- bytes20?: undefined;
165
- bytes21?: undefined;
166
- bytes22?: undefined;
167
- bytes24?: undefined;
168
- bytes25?: undefined;
169
- bytes26?: undefined;
170
- bytes27?: undefined;
171
- bytes28?: undefined;
172
- bytes29?: undefined;
173
- bytes30?: undefined;
174
- bytes31?: undefined;
175
- bytes32?: undefined;
163
+ bytes17?: undefined;
164
+ bytes16?: undefined;
165
+ bytes15?: undefined;
166
+ bytes14?: undefined;
167
+ bytes13?: undefined;
168
+ bytes12?: undefined;
169
+ bytes11?: undefined;
170
+ bytes10?: undefined;
171
+ bytes9?: undefined;
172
+ bytes7?: undefined;
173
+ bytes6?: undefined;
174
+ bytes5?: undefined;
175
+ bytes3?: undefined;
176
176
  int8?: undefined;
177
- int16?: undefined;
178
- int24?: undefined;
179
- int32?: undefined;
180
177
  int40?: undefined;
178
+ int32?: undefined;
179
+ int24?: undefined;
180
+ int16?: undefined;
181
181
  int48?: undefined;
182
182
  int56?: undefined;
183
183
  int64?: undefined;
@@ -206,10 +206,10 @@ export declare class P2PNetworkTest {
206
206
  int248?: undefined;
207
207
  int256?: undefined;
208
208
  uint8?: undefined;
209
- uint16?: undefined;
210
- uint24?: undefined;
211
- uint32?: undefined;
212
209
  uint40?: undefined;
210
+ uint32?: undefined;
211
+ uint24?: undefined;
212
+ uint16?: undefined;
213
213
  uint48?: undefined;
214
214
  uint56?: undefined;
215
215
  uint64?: undefined;
@@ -260,8 +260,6 @@ export declare class P2PNetworkTest {
260
260
  wallet?: AccountWalletWithSecretKey;
261
261
  spamContract?: SpamContract;
262
262
  bootstrapNode?: BootstrapNode;
263
- private cleanupInterval;
264
- private gasUtils;
265
263
  constructor(testName: string, bootstrapNodeEnr: string, bootNodePort: number, numberOfNodes: number, initialValidatorConfig: AztecNodeConfig, metricsPort?: number | undefined);
266
264
  static create({ testName, numberOfNodes, basePort, metricsPort, initialConfig, }: {
267
265
  testName: string;
@@ -271,14 +269,6 @@ export declare class P2PNetworkTest {
271
269
  initialConfig?: Partial<AztecNodeConfig>;
272
270
  }): Promise<P2PNetworkTest>;
273
271
  get fundedAccount(): InitialAccountData;
274
- /**
275
- * Start a loop to sync the mock system time with the L1 block time
276
- */
277
- startSyncMockSystemTimeInterval(): void;
278
- /**
279
- * When using fake timers, we need to keep the system and anvil clocks in sync.
280
- */
281
- syncMockSystemTime(): Promise<void>;
282
272
  addBootstrapNode(): Promise<void>;
283
273
  getValidators(): {
284
274
  validators: {
@@ -293,6 +283,11 @@ export declare class P2PNetworkTest {
293
283
  setupAccount(): Promise<void>;
294
284
  deploySpamContract(): Promise<void>;
295
285
  removeInitialNode(): Promise<void>;
286
+ sendDummyTx(): Promise<{
287
+ receipt: import("viem").TransactionReceipt;
288
+ gasPrice: import("@aztec/ethereum").GasPrice;
289
+ }>;
290
+ private _sendDummyTx;
296
291
  setup(): Promise<void>;
297
292
  stopNodes(nodes: AztecNodeService[]): Promise<void>;
298
293
  teardown(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"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"}