@aztec/end-to-end 3.0.0-nightly.20251221 → 3.0.0-nightly.20251223

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.
@@ -8,8 +8,7 @@ import { Fr } from '@aztec/aztec.js/fields';
8
8
  import { createLogger } from '@aztec/aztec.js/log';
9
9
  import { createAztecNodeClient, waitForNode } from '@aztec/aztec.js/node';
10
10
  import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
11
- import { createBlobSinkClient } from '@aztec/blob-sink/client';
12
- import { createBlobSinkServer } from '@aztec/blob-sink/server';
11
+ import { createBlobClientWithFileStores } from '@aztec/blob-client/client';
13
12
  import { SPONSORED_FPC_SALT } from '@aztec/constants';
14
13
  import { isAnvilTestChain } from '@aztec/ethereum/chain';
15
14
  import { createExtendedL1Client } from '@aztec/ethereum/client';
@@ -39,7 +38,6 @@ import { TestWallet, deployFundedSchnorrAccounts } from '@aztec/test-wallet/serv
39
38
  import { getGenesisValues } from '@aztec/world-state/testing';
40
39
  import { randomBytes } from 'crypto';
41
40
  import fs from 'fs/promises';
42
- import getPort from 'get-port';
43
41
  import { tmpdir } from 'os';
44
42
  import * as path from 'path';
45
43
  import { generatePrivateKey, mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
@@ -50,6 +48,18 @@ import { getBBConfig } from './get_bb_config.js';
50
48
  import { isMetricsLoggingRequested, setupMetricsLogger } from './logging.js';
51
49
  export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
52
50
  export { startAnvil };
51
+ /**
52
+ * Sets up shared blob storage using FileStore in the data directory.
53
+ */ export async function setupSharedBlobStorage(config) {
54
+ const sharedBlobPath = path.join(config.dataDirectory, 'shared-blobs');
55
+ await fs.mkdir(sharedBlobPath, {
56
+ recursive: true
57
+ });
58
+ config.blobFileStoreUrls = [
59
+ `file://${sharedBlobPath}`
60
+ ];
61
+ config.blobFileStoreUploadUrl = `file://${sharedBlobPath}`;
62
+ }
53
63
  const { AZTEC_NODE_URL = '' } = process.env;
54
64
  const getAztecUrl = ()=>AZTEC_NODE_URL;
55
65
  let telemetry = undefined;
@@ -158,8 +168,8 @@ export const getPrivateKeyFromIndex = (index)=>{
158
168
  mockGossipSubNetwork: undefined,
159
169
  watcher: undefined,
160
170
  dateProvider: undefined,
161
- blobSink: undefined,
162
171
  telemetryClient: undefined,
172
+ blobClient: undefined,
163
173
  teardown
164
174
  };
165
175
  }
@@ -291,18 +301,7 @@ export const getPrivateKeyFromIndex = (index)=>{
291
301
  await watcher.start();
292
302
  }
293
303
  const telemetry = await getTelemetryClient(opts.telemetryConfig);
294
- // Blob sink service - blobs get posted here and served from here
295
- const blobSinkPort = await getPort();
296
- const blobSink = await createBlobSinkServer({
297
- l1ChainId: config.l1ChainId,
298
- l1RpcUrls: config.l1RpcUrls,
299
- l1Contracts: config.l1Contracts,
300
- port: blobSinkPort,
301
- dataDirectory: config.dataDirectory,
302
- dataStoreMapSizeKb: config.dataStoreMapSizeKb
303
- }, telemetry);
304
- await blobSink.start();
305
- config.blobSinkUrl = `http://localhost:${blobSinkPort}`;
304
+ await setupSharedBlobStorage(config);
306
305
  logger.verbose('Creating and synching an aztec node', config);
307
306
  const acvmConfig = await getACVMConfig(logger);
308
307
  if (acvmConfig) {
@@ -314,9 +313,7 @@ export const getPrivateKeyFromIndex = (index)=>{
314
313
  config.bbBinaryPath = bbConfig.bbBinaryPath;
315
314
  config.bbWorkingDirectory = bbConfig.bbWorkingDirectory;
316
315
  }
317
- const blobSinkClient = createBlobSinkClient(config, {
318
- logger: createLogger('node:blob-sink:client')
319
- });
316
+ const blobClient = await createBlobClientWithFileStores(config, createLogger('node:blob-client:client'));
320
317
  let mockGossipSubNetwork;
321
318
  let p2pClientDeps = undefined;
322
319
  if (opts.mockGossipSubNetwork) {
@@ -354,7 +351,7 @@ export const getPrivateKeyFromIndex = (index)=>{
354
351
  }
355
352
  const aztecNode = await AztecNodeService.createAndSync(config, {
356
353
  dateProvider,
357
- blobSinkClient,
354
+ blobClient,
358
355
  telemetry,
359
356
  p2pClientDeps,
360
357
  logger: createLogger('node:MAIN-aztec-node')
@@ -421,7 +418,6 @@ export const getPrivateKeyFromIndex = (index)=>{
421
418
  }
422
419
  await tryStop(watcher, logger);
423
420
  await tryStop(anvil, logger);
424
- await tryStop(blobSink, logger);
425
421
  await tryRmDir(directoryToCleanup, logger);
426
422
  } catch (err) {
427
423
  logger.error(`Error during e2e test teardown`, err);
@@ -430,7 +426,6 @@ export const getPrivateKeyFromIndex = (index)=>{
430
426
  return {
431
427
  aztecNode,
432
428
  aztecNodeAdmin: aztecNode,
433
- blobSink,
434
429
  cheatCodes,
435
430
  ethCheatCodes,
436
431
  config,
@@ -446,7 +441,8 @@ export const getPrivateKeyFromIndex = (index)=>{
446
441
  telemetryClient: telemetry,
447
442
  wallet,
448
443
  accounts,
449
- watcher
444
+ watcher,
445
+ blobClient
450
446
  };
451
447
  } catch (err) {
452
448
  // TODO: Just hoisted anvil for now to ensure cleanup. Prob need to hoist the rest.
@@ -564,14 +560,14 @@ export function createAndSyncProverNode(proverNodePrivateKey, aztecNodeConfig, p
564
560
  getTxsByHash: aztecNode.getTxsByHash.bind(aztecNode),
565
561
  stop: ()=>Promise.resolve()
566
562
  };
567
- const blobSinkClient = createBlobSinkClient(aztecNodeConfig);
563
+ const blobClient = await createBlobClientWithFileStores(aztecNodeConfig, createLogger('blob-client:prover-node'));
568
564
  // Creating temp store and archiver for simulated prover node
569
565
  const archiverConfig = {
570
566
  ...aztecNodeConfig,
571
567
  dataDirectory: proverNodeConfig.dataDirectory
572
568
  };
573
569
  const archiver = await createArchiver(archiverConfig, {
574
- blobSinkClient,
570
+ blobClient,
575
571
  dateProvider: proverNodeDeps.dateProvider
576
572
  }, {
577
573
  blockUntilSync: true
@@ -228,4 +228,4 @@ export declare function getNodeClient(env: TestConfig, index?: number): Promise<
228
228
  process: ChildProcess;
229
229
  }>;
230
230
  export {};
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGFydGFuL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLcEQsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUNuQixLQUFLLG9CQUFvQixFQUV6QixxQkFBcUIsRUFDdEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUlwRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBTXhCLFFBQUEsTUFBTSxnQkFBZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQVNwQixDQUFDO0FBRUgsTUFBTSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQztBQUUxRCx3QkFBZ0IsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE9BQU8sR0FBRyxVQUFVLENBSXpEO0FBeUJELHdCQUFnQixXQUFXLFdBRTFCO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxtQkFFdkY7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1B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
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGFydGFuL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLcEQsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUNuQixLQUFLLG9CQUFvQixFQUV6QixxQkFBcUIsRUFDdEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUlwRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBTXhCLFFBQUEsTUFBTSxnQkFBZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQVNwQixDQUFDO0FBRUgsTUFBTSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQztBQUUxRCx3QkFBZ0IsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE9BQU8sR0FBRyxVQUFVLENBSXpEO0FBeUJELHdCQUFnQixXQUFXLFdBRTFCO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxtQkFFdkY7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1B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
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/spartan/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/spartan/utils.ts"],"names":[],"mappings":"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"}
@@ -686,7 +686,9 @@ export async function withSequencersAdmin(env, fn) {
686
686
  const url = `http://127.0.0.1:${port}`;
687
687
  const client = createPublicClient({
688
688
  transport: fallback([
689
- http(url)
689
+ http(url, {
690
+ batch: false
691
+ })
690
692
  ])
691
693
  });
692
694
  if (processes) {
@@ -704,7 +706,9 @@ export async function withSequencersAdmin(env, fn) {
704
706
  }
705
707
  const client = createPublicClient({
706
708
  transport: fallback([
707
- http(L1_RPC_URLS_JSON)
709
+ http(L1_RPC_URLS_JSON, {
710
+ batch: false
711
+ })
708
712
  ])
709
713
  });
710
714
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/end-to-end",
3
- "version": "3.0.0-nightly.20251221",
3
+ "version": "3.0.0-nightly.20251223",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "inherits": [
@@ -25,43 +25,43 @@
25
25
  "formatting": "run -T prettier --check ./src && run -T eslint ./src"
26
26
  },
27
27
  "dependencies": {
28
- "@aztec/accounts": "3.0.0-nightly.20251221",
29
- "@aztec/archiver": "3.0.0-nightly.20251221",
30
- "@aztec/aztec": "3.0.0-nightly.20251221",
31
- "@aztec/aztec-node": "3.0.0-nightly.20251221",
32
- "@aztec/aztec.js": "3.0.0-nightly.20251221",
33
- "@aztec/bb-prover": "3.0.0-nightly.20251221",
34
- "@aztec/bb.js": "3.0.0-nightly.20251221",
35
- "@aztec/blob-lib": "3.0.0-nightly.20251221",
36
- "@aztec/blob-sink": "3.0.0-nightly.20251221",
37
- "@aztec/bot": "3.0.0-nightly.20251221",
38
- "@aztec/cli": "3.0.0-nightly.20251221",
39
- "@aztec/constants": "3.0.0-nightly.20251221",
40
- "@aztec/entrypoints": "3.0.0-nightly.20251221",
41
- "@aztec/epoch-cache": "3.0.0-nightly.20251221",
42
- "@aztec/ethereum": "3.0.0-nightly.20251221",
43
- "@aztec/foundation": "3.0.0-nightly.20251221",
44
- "@aztec/kv-store": "3.0.0-nightly.20251221",
45
- "@aztec/l1-artifacts": "3.0.0-nightly.20251221",
46
- "@aztec/merkle-tree": "3.0.0-nightly.20251221",
47
- "@aztec/node-keystore": "3.0.0-nightly.20251221",
48
- "@aztec/noir-contracts.js": "3.0.0-nightly.20251221",
49
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20251221",
50
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251221",
51
- "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251221",
52
- "@aztec/p2p": "3.0.0-nightly.20251221",
53
- "@aztec/protocol-contracts": "3.0.0-nightly.20251221",
54
- "@aztec/prover-client": "3.0.0-nightly.20251221",
55
- "@aztec/prover-node": "3.0.0-nightly.20251221",
56
- "@aztec/pxe": "3.0.0-nightly.20251221",
57
- "@aztec/sequencer-client": "3.0.0-nightly.20251221",
58
- "@aztec/simulator": "3.0.0-nightly.20251221",
59
- "@aztec/slasher": "3.0.0-nightly.20251221",
60
- "@aztec/stdlib": "3.0.0-nightly.20251221",
61
- "@aztec/telemetry-client": "3.0.0-nightly.20251221",
62
- "@aztec/test-wallet": "3.0.0-nightly.20251221",
63
- "@aztec/validator-client": "3.0.0-nightly.20251221",
64
- "@aztec/world-state": "3.0.0-nightly.20251221",
28
+ "@aztec/accounts": "3.0.0-nightly.20251223",
29
+ "@aztec/archiver": "3.0.0-nightly.20251223",
30
+ "@aztec/aztec": "3.0.0-nightly.20251223",
31
+ "@aztec/aztec-node": "3.0.0-nightly.20251223",
32
+ "@aztec/aztec.js": "3.0.0-nightly.20251223",
33
+ "@aztec/bb-prover": "3.0.0-nightly.20251223",
34
+ "@aztec/bb.js": "3.0.0-nightly.20251223",
35
+ "@aztec/blob-client": "3.0.0-nightly.20251223",
36
+ "@aztec/blob-lib": "3.0.0-nightly.20251223",
37
+ "@aztec/bot": "3.0.0-nightly.20251223",
38
+ "@aztec/cli": "3.0.0-nightly.20251223",
39
+ "@aztec/constants": "3.0.0-nightly.20251223",
40
+ "@aztec/entrypoints": "3.0.0-nightly.20251223",
41
+ "@aztec/epoch-cache": "3.0.0-nightly.20251223",
42
+ "@aztec/ethereum": "3.0.0-nightly.20251223",
43
+ "@aztec/foundation": "3.0.0-nightly.20251223",
44
+ "@aztec/kv-store": "3.0.0-nightly.20251223",
45
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251223",
46
+ "@aztec/merkle-tree": "3.0.0-nightly.20251223",
47
+ "@aztec/node-keystore": "3.0.0-nightly.20251223",
48
+ "@aztec/noir-contracts.js": "3.0.0-nightly.20251223",
49
+ "@aztec/noir-noirc_abi": "3.0.0-nightly.20251223",
50
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251223",
51
+ "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251223",
52
+ "@aztec/p2p": "3.0.0-nightly.20251223",
53
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251223",
54
+ "@aztec/prover-client": "3.0.0-nightly.20251223",
55
+ "@aztec/prover-node": "3.0.0-nightly.20251223",
56
+ "@aztec/pxe": "3.0.0-nightly.20251223",
57
+ "@aztec/sequencer-client": "3.0.0-nightly.20251223",
58
+ "@aztec/simulator": "3.0.0-nightly.20251223",
59
+ "@aztec/slasher": "3.0.0-nightly.20251223",
60
+ "@aztec/stdlib": "3.0.0-nightly.20251223",
61
+ "@aztec/telemetry-client": "3.0.0-nightly.20251223",
62
+ "@aztec/test-wallet": "3.0.0-nightly.20251223",
63
+ "@aztec/validator-client": "3.0.0-nightly.20251223",
64
+ "@aztec/world-state": "3.0.0-nightly.20251223",
65
65
  "@iarna/toml": "^2.2.5",
66
66
  "@jest/globals": "^30.0.0",
67
67
  "@noble/curves": "=1.0.0",
@@ -97,12 +97,24 @@ export class EpochsTestContext {
97
97
  const aztecSlotDuration = opts.aztecSlotDuration ?? ethereumSlotDuration * 2;
98
98
  const aztecEpochDuration = opts.aztecEpochDuration ?? 6;
99
99
  const aztecProofSubmissionEpochs = opts.aztecProofSubmissionEpochs ?? 1;
100
- return { ethereumSlotDuration, aztecSlotDuration, aztecEpochDuration, aztecProofSubmissionEpochs };
100
+ const l1PublishingTime = opts.l1PublishingTime ?? 1;
101
+ return {
102
+ l1PublishingTime,
103
+ ethereumSlotDuration,
104
+ aztecSlotDuration,
105
+ aztecEpochDuration,
106
+ aztecProofSubmissionEpochs,
107
+ };
101
108
  }
102
109
 
103
110
  public async setup(opts: EpochsTestOpts = {}) {
104
- const { ethereumSlotDuration, aztecSlotDuration, aztecEpochDuration, aztecProofSubmissionEpochs } =
105
- EpochsTestContext.getSlotDurations(opts);
111
+ const {
112
+ ethereumSlotDuration,
113
+ aztecSlotDuration,
114
+ aztecEpochDuration,
115
+ aztecProofSubmissionEpochs,
116
+ l1PublishingTime,
117
+ } = EpochsTestContext.getSlotDurations(opts);
106
118
 
107
119
  this.L1_BLOCK_TIME_IN_S = ethereumSlotDuration;
108
120
  this.L2_SLOT_DURATION_IN_S = aztecSlotDuration;
@@ -130,6 +142,7 @@ export class EpochsTestContext {
130
142
  worldStateBlockHistory: WORLD_STATE_BLOCK_HISTORY,
131
143
  exitDelaySeconds: DefaultL1ContractsConfig.exitDelaySeconds,
132
144
  slasherFlavor: 'none',
145
+ l1PublishingTime,
133
146
  ...opts,
134
147
  });
135
148
 
@@ -391,11 +404,11 @@ export class EpochsTestContext {
391
404
  const stateChanges: TrackedSequencerEvent[] = [];
392
405
  const failEvents: TrackedSequencerEvent[] = [];
393
406
 
394
- // Note we do not include the 'tx-count-check-failed' event here, since it is fine if we dont build
407
+ // Note we do not include the 'block-tx-count-check-failed' event here, since it is fine if we dont build
395
408
  // due to lack of txs available.
396
409
  const failEventsKeys: (keyof SequencerEvents)[] = [
397
410
  'block-build-failed',
398
- 'block-publish-failed',
411
+ 'checkpoint-publish-failed',
399
412
  'proposer-rollup-check-failed',
400
413
  ];
401
414
 
@@ -19,6 +19,7 @@ import { CounterContract } from '@aztec/noir-test-contracts.js/Counter';
19
19
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
20
20
  import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
21
21
  import { GasSettings } from '@aztec/stdlib/gas';
22
+ import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
22
23
  import { TestWallet } from '@aztec/test-wallet/server';
23
24
 
24
25
  import { getContract } from 'viem';
@@ -58,6 +59,7 @@ export class FeesTest {
58
59
 
59
60
  public logger: Logger;
60
61
  public aztecNode!: AztecNode;
62
+ public aztecNodeAdmin!: AztecNodeAdmin;
61
63
  public cheatCodes!: CheatCodes;
62
64
 
63
65
  public wallet!: TestWallet;
@@ -190,6 +192,7 @@ export class FeesTest {
190
192
  async ({ deployedAccounts }, { wallet, aztecNode, cheatCodes }) => {
191
193
  this.wallet = wallet;
192
194
  this.aztecNode = aztecNode;
195
+ this.aztecNodeAdmin = aztecNode;
193
196
  this.gasSettings = GasSettings.default({ maxFeesPerGas: (await this.aztecNode.getCurrentBaseFees()).mul(2) });
194
197
  this.cheatCodes = cheatCodes;
195
198
  this.accounts = deployedAccounts.map(a => a.address);
@@ -11,8 +11,7 @@ import {
11
11
  TestCircuitVerifier,
12
12
  } from '@aztec/bb-prover';
13
13
  import { BackendType, Barretenberg } from '@aztec/bb.js';
14
- import { createBlobSinkClient } from '@aztec/blob-sink/client';
15
- import type { BlobSinkServer } from '@aztec/blob-sink/server';
14
+ import { createBlobClientWithFileStores } from '@aztec/blob-client/client';
16
15
  import type { DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-aztec-l1-contracts';
17
16
  import { Buffer32 } from '@aztec/foundation/buffer';
18
17
  import { SecretValue } from '@aztec/foundation/config';
@@ -69,7 +68,6 @@ export class FullProverTest {
69
68
  aztecNode!: AztecNode;
70
69
  aztecNodeAdmin!: AztecNodeAdmin;
71
70
  cheatCodes!: CheatCodes;
72
- blobSink!: BlobSinkServer;
73
71
  private provenComponents: ProvenSetup[] = [];
74
72
  private bbConfigCleanup?: () => Promise<void>;
75
73
  private acvmConfigCleanup?: () => Promise<void>;
@@ -169,11 +167,11 @@ export class FullProverTest {
169
167
  aztecNode: this.aztecNode,
170
168
  deployL1ContractsValues: this.l1Contracts,
171
169
  cheatCodes: this.cheatCodes,
172
- blobSink: this.blobSink,
173
170
  } = this.context);
174
171
  this.aztecNodeAdmin = this.context.aztecNode;
175
172
 
176
- const blobSinkClient = createBlobSinkClient({ blobSinkUrl: `http://localhost:${this.blobSink.port}` });
173
+ const config = this.context.aztecNodeConfig;
174
+ const blobClient = await createBlobClientWithFileStores(config, this.logger);
177
175
 
178
176
  // Configure a full prover PXE
179
177
  let acvmConfig: Awaited<ReturnType<typeof getACVMConfig>> | undefined;
@@ -243,7 +241,7 @@ export class FullProverTest {
243
241
  this.logger.verbose('Starting archiver for new prover node');
244
242
  const archiver = await createArchiver(
245
243
  { ...this.context.aztecNodeConfig, dataDirectory: undefined },
246
- { blobSinkClient, dateProvider: this.context.dateProvider },
244
+ { blobClient, dateProvider: this.context.dateProvider },
247
245
  { blockUntilSync: true },
248
246
  );
249
247
 
@@ -283,7 +281,7 @@ export class FullProverTest {
283
281
  {
284
282
  aztecNodeTxProvider: this.aztecNode,
285
283
  archiver: archiver as Archiver,
286
- blobSinkClient,
284
+ blobClient,
287
285
  },
288
286
  { prefilledPublicData },
289
287
  );
@@ -24,5 +24,3 @@ export const NO_L1_TO_L2_MSG_ERROR =
24
24
  /No non-nullified L1 to L2 message found for message hash|Tried to consume nonexistent L1-to-L2 message/;
25
25
  export const STATIC_CALL_STATE_MODIFICATION_ERROR = /Static call cannot update the state.*/;
26
26
  export const STATIC_CONTEXT_ASSERTION_ERROR = /Assertion failed: Function .* can only be called statically.*/;
27
-
28
- export const DEFAULT_BLOB_SINK_PORT = '5052';
@@ -9,7 +9,7 @@ import type { Logger } from '@aztec/aztec.js/log';
9
9
  import type { AztecNode } from '@aztec/aztec.js/node';
10
10
  import type { Wallet } from '@aztec/aztec.js/wallet';
11
11
  import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
12
- import { type BlobSinkServer, createBlobSinkServer } from '@aztec/blob-sink/server';
12
+ import { createBlobClientWithFileStores } from '@aztec/blob-client/client';
13
13
  import { createExtendedL1Client } from '@aztec/ethereum/client';
14
14
  import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
15
15
  import { deployMulticall3 } from '@aztec/ethereum/contracts';
@@ -40,7 +40,6 @@ import type { Anvil } from '@viem/anvil';
40
40
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
41
41
  import { copySync, removeSync } from 'fs-extra/esm';
42
42
  import fs from 'fs/promises';
43
- import getPort from 'get-port';
44
43
  import { tmpdir } from 'os';
45
44
  import path, { join } from 'path';
46
45
  import type { Hex } from 'viem';
@@ -56,6 +55,7 @@ import {
56
55
  getLogger,
57
56
  getPrivateKeyFromIndex,
58
57
  getSponsoredFPCAddress,
58
+ setupSharedBlobStorage,
59
59
  } from './utils.js';
60
60
  import { getEndToEndTestTelemetryClient } from './with_telemetry_utils.js';
61
61
 
@@ -72,7 +72,6 @@ export type SubsystemsContext = {
72
72
  cheatCodes: CheatCodes;
73
73
  sequencer: SequencerClient;
74
74
  dateProvider: TestDateProvider;
75
- blobSink: BlobSinkServer;
76
75
  initialFundedAccounts: InitialAccountData[];
77
76
  directoryToCleanup?: string;
78
77
  };
@@ -275,7 +274,6 @@ async function teardown(context: SubsystemsContext | undefined) {
275
274
  await context.bbConfig?.cleanup();
276
275
  await tryStop(context.anvil);
277
276
  await tryStop(context.watcher);
278
- await tryStop(context.blobSink);
279
277
  await tryRmDir(context.directoryToCleanup, logger);
280
278
  } catch (err) {
281
279
  logger.error('Error during teardown', err);
@@ -297,8 +295,6 @@ async function setupFromFresh(
297
295
  ): Promise<SubsystemsContext> {
298
296
  logger.verbose(`Initializing state...`);
299
297
 
300
- const blobSinkPort = await getPort();
301
-
302
298
  // Default to no slashing
303
299
  opts.slasherFlavor ??= 'none';
304
300
  deployL1ContractsArgs.slasherFlavor ??= opts.slasherFlavor;
@@ -326,7 +322,8 @@ async function setupFromFresh(
326
322
  } else {
327
323
  aztecNodeConfig.dataDirectory = statePath;
328
324
  }
329
- aztecNodeConfig.blobSinkUrl = `http://127.0.0.1:${blobSinkPort}`;
325
+
326
+ await setupSharedBlobStorage(aztecNodeConfig);
330
327
 
331
328
  const hdAccount = mnemonicToAccount(MNEMONIC, { addressIndex: 0 });
332
329
  const publisherPrivKeyRaw = hdAccount.getHdKey().privateKey;
@@ -413,24 +410,12 @@ async function setupFromFresh(
413
410
 
414
411
  const telemetry = await getEndToEndTestTelemetryClient(opts.metricsPort);
415
412
 
416
- // Setup blob sink service
417
- const blobSink = await createBlobSinkServer(
418
- {
419
- l1ChainId: aztecNodeConfig.l1ChainId,
420
- l1RpcUrls: aztecNodeConfig.l1RpcUrls,
421
- l1Contracts: aztecNodeConfig.l1Contracts,
422
- port: blobSinkPort,
423
- dataDirectory: aztecNodeConfig.dataDirectory,
424
- dataStoreMapSizeKb: aztecNodeConfig.dataStoreMapSizeKb,
425
- },
426
- telemetry,
427
- );
428
- await blobSink.start();
413
+ const blobClient = await createBlobClientWithFileStores(aztecNodeConfig, createLogger('node:blob-client:client'));
429
414
 
430
415
  logger.info('Creating and synching an aztec node...');
431
416
  const aztecNode = await AztecNodeService.createAndSync(
432
417
  aztecNodeConfig,
433
- { telemetry, dateProvider },
418
+ { telemetry, dateProvider, blobClient },
434
419
  { prefilledPublicData },
435
420
  );
436
421
 
@@ -476,7 +461,6 @@ async function setupFromFresh(
476
461
  watcher,
477
462
  cheatCodes,
478
463
  dateProvider,
479
- blobSink,
480
464
  initialFundedAccounts,
481
465
  directoryToCleanup,
482
466
  };
@@ -491,18 +475,16 @@ async function setupFromState(statePath: string, logger: Logger): Promise<Subsys
491
475
  const directoryToCleanup = path.join(tmpdir(), randomBytes(8).toString('hex'));
492
476
  await fs.mkdir(directoryToCleanup, { recursive: true });
493
477
 
494
- // Run the blob sink on a random port
495
- const blobSinkPort = await getPort();
496
-
497
478
  // TODO: For some reason this is currently the union of a bunch of subsystems. That needs fixing.
498
479
  const aztecNodeConfig: AztecNodeConfig & SetupOptions = JSON.parse(
499
480
  readFileSync(`${statePath}/aztec_node_config.json`, 'utf-8'),
500
481
  reviver,
501
482
  );
502
483
  aztecNodeConfig.dataDirectory = statePath;
503
- aztecNodeConfig.blobSinkUrl = `http://127.0.0.1:${blobSinkPort}`;
504
484
  aztecNodeConfig.listenAddress = '127.0.0.1';
505
485
 
486
+ await setupSharedBlobStorage(aztecNodeConfig);
487
+
506
488
  const initialFundedAccounts: InitialAccountData[] =
507
489
  JSON.parse(readFileSync(`${statePath}/accounts.json`, 'utf-8'), reviver) || [];
508
490
  const { prefilledPublicData } = await getGenesisValues(initialFundedAccounts.map(a => a.address));
@@ -542,23 +524,13 @@ async function setupFromState(statePath: string, logger: Logger): Promise<Subsys
542
524
  await watcher.start();
543
525
 
544
526
  const telemetry = await initTelemetryClient(getTelemetryConfig());
545
- const blobSink = await createBlobSinkServer(
546
- {
547
- l1ChainId: aztecNodeConfig.l1ChainId,
548
- l1RpcUrls: aztecNodeConfig.l1RpcUrls,
549
- l1Contracts: aztecNodeConfig.l1Contracts,
550
- port: blobSinkPort,
551
- dataDirectory: statePath,
552
- dataStoreMapSizeKb: aztecNodeConfig.dataStoreMapSizeKb,
553
- },
554
- telemetry,
555
- );
556
- await blobSink.start();
527
+
528
+ const blobClient = await createBlobClientWithFileStores(aztecNodeConfig, createLogger('node:blob-client:client'));
557
529
 
558
530
  logger.verbose('Creating aztec node...');
559
531
  const aztecNode = await AztecNodeService.createAndSync(
560
532
  aztecNodeConfig,
561
- { telemetry, dateProvider },
533
+ { telemetry, dateProvider, blobClient },
562
534
  { prefilledPublicData },
563
535
  );
564
536
 
@@ -603,7 +575,6 @@ async function setupFromState(statePath: string, logger: Logger): Promise<Subsys
603
575
  watcher,
604
576
  cheatCodes,
605
577
  dateProvider,
606
- blobSink,
607
578
  initialFundedAccounts,
608
579
  directoryToCleanup,
609
580
  };