@aztec/stdlib 3.0.0-nightly.20250911 → 3.0.0-nightly.20250913

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.
@@ -14,7 +14,7 @@ export interface ContractClass {
14
14
  /**
15
15
  * Hash of the contract artifact. The specification of this hash is not enforced by the protocol. Should include
16
16
  * commitments to code of utility functions and compilation metadata. Intended to be used by clients to verify that
17
- * an off-chain fetched artifact matches a registered class.
17
+ * an offchain fetched artifact matches a registered class.
18
18
  */
19
19
  artifactHash: Fr;
20
20
  /** List of individual private functions, constructors included. */
@@ -1,8 +1,51 @@
1
+ import type { L1ContractAddresses } from '@aztec/ethereum';
1
2
  import type { ApiSchemaFor } from '@aztec/foundation/schemas';
3
+ import { z } from 'zod';
2
4
  import { type L2BlockSource } from '../block/l2_block_source.js';
3
5
  import { type ContractDataSource } from '../contract/index.js';
4
6
  import type { L1ToL2MessageSource } from '../messaging/l1_to_l2_message_source.js';
5
7
  import type { L2LogsSource } from './l2_logs_source.js';
8
+ /**
9
+ * The archiver configuration.
10
+ */
11
+ export type ArchiverSpecificConfig = {
12
+ /** The polling interval in ms for retrieving new L2 blocks and encrypted logs. */
13
+ archiverPollingIntervalMS?: number;
14
+ /** The number of L2 blocks the archiver will attempt to download at a time. */
15
+ archiverBatchSize?: number;
16
+ /** The polling interval viem uses in ms */
17
+ viemPollingIntervalMS?: number;
18
+ /** The deployed L1 contract addresses */
19
+ l1Contracts: L1ContractAddresses;
20
+ /** The max number of logs that can be obtained in 1 "getPublicLogs" call. */
21
+ maxLogs?: number;
22
+ /** The maximum possible size of the archiver DB in KB. Overwrites the general dataStoreMapSizeKB. */
23
+ archiverStoreMapSizeKb?: number;
24
+ /** Whether to skip validating block attestations (use only for testing). */
25
+ skipValidateBlockAttestations?: boolean;
26
+ };
27
+ export declare const ArchiverSpecificConfigSchema: z.ZodObject<{
28
+ archiverPollingIntervalMS: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
29
+ archiverBatchSize: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
30
+ viemPollingIntervalMS: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
31
+ maxLogs: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
32
+ archiverStoreMapSizeKb: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
33
+ skipValidateBlockAttestations: z.ZodOptional<z.ZodBoolean>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ archiverPollingIntervalMS?: number | undefined;
36
+ archiverBatchSize?: number | undefined;
37
+ viemPollingIntervalMS?: number | undefined;
38
+ maxLogs?: number | undefined;
39
+ archiverStoreMapSizeKb?: number | undefined;
40
+ skipValidateBlockAttestations?: boolean | undefined;
41
+ }, {
42
+ archiverPollingIntervalMS?: string | number | bigint | undefined;
43
+ archiverBatchSize?: string | number | bigint | undefined;
44
+ viemPollingIntervalMS?: string | number | bigint | undefined;
45
+ maxLogs?: string | number | bigint | undefined;
46
+ archiverStoreMapSizeKb?: string | number | bigint | undefined;
47
+ skipValidateBlockAttestations?: boolean | undefined;
48
+ }>;
6
49
  export type ArchiverApi = Omit<L2BlockSource & L2LogsSource & ContractDataSource & L1ToL2MessageSource, 'start' | 'stop'>;
7
50
  export declare const ArchiverApiSchema: ApiSchemaFor<ArchiverApi>;
8
51
  //# sourceMappingURL=archiver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/interfaces/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAK9D,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,6BAA6B,CAAC;AAG/E,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAOnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,EACvE,OAAO,GAAG,MAAM,CACjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,CAiDvD,CAAC"}
1
+ {"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/interfaces/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,6BAA6B,CAAC;AAG/E,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAOnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,kFAAkF;IAClF,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,yCAAyC;IACzC,WAAW,EAAE,mBAAmB,CAAC;IAEjC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qGAAqG;IACrG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,4EAA4E;IAC5E,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;EAOvC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,EACvE,OAAO,GAAG,MAAM,CACjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,CAiDvD,CAAC"}
@@ -14,6 +14,14 @@ import { indexedTxSchema } from '../tx/indexed_tx_effect.js';
14
14
  import { TxHash } from '../tx/tx_hash.js';
15
15
  import { TxReceipt } from '../tx/tx_receipt.js';
16
16
  import { GetContractClassLogsResponseSchema, GetPublicLogsResponseSchema } from './get_logs_response.js';
17
+ export const ArchiverSpecificConfigSchema = z.object({
18
+ archiverPollingIntervalMS: schemas.Integer.optional(),
19
+ archiverBatchSize: schemas.Integer.optional(),
20
+ viemPollingIntervalMS: schemas.Integer.optional(),
21
+ maxLogs: schemas.Integer.optional(),
22
+ archiverStoreMapSizeKb: schemas.Integer.optional(),
23
+ skipValidateBlockAttestations: z.boolean().optional()
24
+ });
17
25
  export const ArchiverApiSchema = {
18
26
  getRollupAddress: z.function().args().returns(schemas.EthAddress),
19
27
  getRegistryAddress: z.function().args().returns(schemas.EthAddress),
@@ -3,6 +3,7 @@ import { z } from 'zod';
3
3
  import type { ApiSchemaFor } from '../schemas/schemas.js';
4
4
  import { type Offense, type SlashPayloadRound } from '../slashing/index.js';
5
5
  import { type ComponentsVersions } from '../versioning/index.js';
6
+ import { type ArchiverSpecificConfig } from './archiver.js';
6
7
  import { type SequencerConfig } from './configs.js';
7
8
  import { type ProverConfig } from './prover-client.js';
8
9
  import { type SlasherConfig } from './slasher.js';
@@ -40,10 +41,10 @@ export interface AztecNodeAdmin {
40
41
  /** Returns all offenses applicable for the given round. */
41
42
  getSlashOffenses(round: bigint | 'all' | 'current'): Promise<Offense[]>;
42
43
  }
43
- export type AztecNodeAdminConfig = ValidatorClientFullConfig & SequencerConfig & ProverConfig & SlasherConfig & {
44
+ export type AztecNodeAdminConfig = ValidatorClientFullConfig & SequencerConfig & ProverConfig & SlasherConfig & Pick<ArchiverSpecificConfig, 'archiverPollingIntervalMS' | 'skipValidateBlockAttestations' | 'archiverBatchSize'> & {
44
45
  maxTxPoolSize: number;
45
46
  };
46
- export declare const AztecNodeAdminConfigSchema: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<{
47
+ export declare const AztecNodeAdminConfigSchema: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<{
47
48
  transactionPollingIntervalMS: z.ZodOptional<z.ZodNumber>;
48
49
  maxTxsPerBlock: z.ZodOptional<z.ZodNumber>;
49
50
  minTxsPerBlock: z.ZodOptional<z.ZodNumber>;
@@ -128,7 +129,14 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<z.objectUtil.extend
128
129
  attestationPollingIntervalMs: z.ZodNumber;
129
130
  validatorReexecute: z.ZodBoolean;
130
131
  validatorReexecuteDeadlineMs: z.ZodNumber;
131
- }>, {
132
+ }>, Pick<{
133
+ archiverPollingIntervalMS: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
134
+ archiverBatchSize: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
135
+ viemPollingIntervalMS: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
136
+ maxLogs: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
137
+ archiverStoreMapSizeKb: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
138
+ skipValidateBlockAttestations: z.ZodOptional<z.ZodBoolean>;
139
+ }, "archiverPollingIntervalMS" | "archiverBatchSize" | "skipValidateBlockAttestations">>, {
132
140
  maxTxPoolSize: z.ZodNumber;
133
141
  }>, "strip", z.ZodTypeAny, {
134
142
  secondsBeforeInvalidatingBlockAsCommitteeMember: number;
@@ -189,6 +197,9 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<z.objectUtil.extend
189
197
  attestationPropagationTime?: number | undefined;
190
198
  skipCollectingAttestations?: boolean | undefined;
191
199
  proverId?: import("@aztec/foundation/schemas").EthAddress | undefined;
200
+ archiverPollingIntervalMS?: number | undefined;
201
+ archiverBatchSize?: number | undefined;
202
+ skipValidateBlockAttestations?: boolean | undefined;
192
203
  slashOverridePayload?: import("@aztec/foundation/schemas").EthAddress | undefined;
193
204
  slashSelfAllowed?: boolean | undefined;
194
205
  nodeUrl?: string | undefined;
@@ -252,6 +263,9 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<z.objectUtil.extend
252
263
  attestationPropagationTime?: number | undefined;
253
264
  skipCollectingAttestations?: boolean | undefined;
254
265
  proverId?: any;
266
+ archiverPollingIntervalMS?: string | number | bigint | undefined;
267
+ archiverBatchSize?: string | number | bigint | undefined;
268
+ skipValidateBlockAttestations?: boolean | undefined;
255
269
  slashOverridePayload?: string | undefined;
256
270
  slashSelfAllowed?: boolean | undefined;
257
271
  nodeUrl?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"aztec-node-admin.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node-admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAE1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,KAAK,OAAO,EAAiB,KAAK,iBAAiB,EAA2B,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,cAAc,CAAC;AACvE,OAAO,EAA+B,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;;OAIG;IACH,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE,+CAA+C;IAC/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,gDAAgD;IAChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,2EAA2E;IAC3E,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEjD,2DAA2D;IAC3D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACzE;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAC1D,eAAe,GACf,YAAY,GACZ,aAAa,GAAG;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGU,CAAC;AAElD,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAYhE,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,OAAO,CAAC,kBAAkB,CAAM,EAC1C,KAAK,sBAAe,GACnB,cAAc,CAMhB"}
1
+ {"version":3,"file":"aztec-node-admin.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node-admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAE1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,KAAK,OAAO,EAAiB,KAAK,iBAAiB,EAA2B,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,KAAK,sBAAsB,EAAgC,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,cAAc,CAAC;AACvE,OAAO,EAA+B,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;;OAIG;IACH,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE,+CAA+C;IAC/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,gDAAgD;IAChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,2EAA2E;IAC3E,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEjD,2DAA2D;IAC3D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACzE;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAC1D,eAAe,GACf,YAAY,GACZ,aAAa,GACb,IAAI,CAAC,sBAAsB,EAAE,2BAA2B,GAAG,+BAA+B,GAAG,mBAAmB,CAAC,GAAG;IAClH,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEJ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUU,CAAC;AAElD,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAYhE,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,OAAO,CAAC,kBAAkB,CAAM,EAC1C,KAAK,sBAAe,GACnB,cAAc,CAMhB"}
@@ -2,11 +2,16 @@ import { createSafeJsonRpcClient, defaultFetch } from '@aztec/foundation/json-rp
2
2
  import { z } from 'zod';
3
3
  import { OffenseSchema, SlashPayloadRoundSchema } from '../slashing/index.js';
4
4
  import { getVersioningResponseHandler } from '../versioning/index.js';
5
+ import { ArchiverSpecificConfigSchema } from './archiver.js';
5
6
  import { SequencerConfigSchema } from './configs.js';
6
7
  import { ProverConfigSchema } from './prover-client.js';
7
8
  import { SlasherConfigSchema } from './slasher.js';
8
9
  import { ValidatorClientConfigSchema } from './validator.js';
9
- export const AztecNodeAdminConfigSchema = SequencerConfigSchema.merge(ProverConfigSchema).merge(SlasherConfigSchema).merge(ValidatorClientConfigSchema).merge(z.object({
10
+ export const AztecNodeAdminConfigSchema = SequencerConfigSchema.merge(ProverConfigSchema).merge(SlasherConfigSchema).merge(ValidatorClientConfigSchema).merge(ArchiverSpecificConfigSchema.pick({
11
+ archiverPollingIntervalMS: true,
12
+ skipValidateBlockAttestations: true,
13
+ archiverBatchSize: true
14
+ })).merge(z.object({
10
15
  maxTxPoolSize: z.number()
11
16
  }));
12
17
  export const AztecNodeAdminApiSchema = {
@@ -32,7 +32,7 @@ export declare class BaseOrMergeRollupPublicInputs {
32
32
  */
33
33
  endSpongeBlob: SpongeBlob;
34
34
  /**
35
- * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened on-chain).
35
+ * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened onchain).
36
36
  * Note: Truncated to 31 bytes to fit in Fr.
37
37
  */
38
38
  outHash: Fr;
@@ -70,7 +70,7 @@ export declare class BaseOrMergeRollupPublicInputs {
70
70
  */
71
71
  endSpongeBlob: SpongeBlob,
72
72
  /**
73
- * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened on-chain).
73
+ * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened onchain).
74
74
  * Note: Truncated to 31 bytes to fit in Fr.
75
75
  */
76
76
  outHash: Fr,
@@ -30,7 +30,7 @@ import { BlockConstantData } from './block_constant_data.js';
30
30
  */ startSpongeBlob, /**
31
31
  * Sponge state to absorb blob inputs at the end of the rollup circuit.
32
32
  */ endSpongeBlob, /**
33
- * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened on-chain).
33
+ * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened onchain).
34
34
  * Note: Truncated to 31 bytes to fit in Fr.
35
35
  */ outHash, /**
36
36
  * The summed `transaction_fee` of the constituent transactions.
@@ -32,7 +32,7 @@ export declare class BlockRootOrBlockMergePublicInputs {
32
32
  */
33
33
  endGlobalVariables: GlobalVariables;
34
34
  /**
35
- * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened on-chain).
35
+ * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened onchain).
36
36
  * Note: Truncated to 31 bytes to fit in Fr.
37
37
  */
38
38
  outHash: Fr;
@@ -70,7 +70,7 @@ export declare class BlockRootOrBlockMergePublicInputs {
70
70
  */
71
71
  endGlobalVariables: GlobalVariables,
72
72
  /**
73
- * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened on-chain).
73
+ * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened onchain).
74
74
  * Note: Truncated to 31 bytes to fit in Fr.
75
75
  */
76
76
  outHash: Fr,
@@ -31,7 +31,7 @@ import { EpochConstantData } from './epoch_constant_data.js';
31
31
  */ startGlobalVariables, /**
32
32
  * Global variables for the last block in the range.
33
33
  */ endGlobalVariables, /**
34
- * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened on-chain).
34
+ * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened onchain).
35
35
  * Note: Truncated to 31 bytes to fit in Fr.
36
36
  */ outHash, /**
37
37
  * The hashes of the proposed block headers of the constituent blocks.
@@ -64,7 +64,7 @@ export declare class RootRollupInputs {
64
64
  /**
65
65
  * Represents public inputs of the root rollup circuit.
66
66
  *
67
- * NOTE: in practice, we'll hash all of this up into a single public input, for cheap on-chain verification.
67
+ * NOTE: in practice, we'll hash all of this up into a single public input, for cheap onchain verification.
68
68
  */
69
69
  export declare class RootRollupPublicInputs {
70
70
  /** Root of the archive tree before this rollup is processed */
@@ -74,7 +74,7 @@ import { PreviousRollupBlockData } from './previous_rollup_block_data.js';
74
74
  /**
75
75
  * Represents public inputs of the root rollup circuit.
76
76
  *
77
- * NOTE: in practice, we'll hash all of this up into a single public input, for cheap on-chain verification.
77
+ * NOTE: in practice, we'll hash all of this up into a single public input, for cheap onchain verification.
78
78
  */ export class RootRollupPublicInputs {
79
79
  previousArchiveRoot;
80
80
  endArchiveRoot;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "3.0.0-nightly.20250911",
3
+ "version": "3.0.0-nightly.20250913",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -69,13 +69,13 @@
69
69
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
70
70
  },
71
71
  "dependencies": {
72
- "@aztec/bb.js": "3.0.0-nightly.20250911",
73
- "@aztec/blob-lib": "3.0.0-nightly.20250911",
74
- "@aztec/constants": "3.0.0-nightly.20250911",
75
- "@aztec/ethereum": "3.0.0-nightly.20250911",
76
- "@aztec/foundation": "3.0.0-nightly.20250911",
77
- "@aztec/l1-artifacts": "3.0.0-nightly.20250911",
78
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20250911",
72
+ "@aztec/bb.js": "3.0.0-nightly.20250913",
73
+ "@aztec/blob-lib": "3.0.0-nightly.20250913",
74
+ "@aztec/constants": "3.0.0-nightly.20250913",
75
+ "@aztec/ethereum": "3.0.0-nightly.20250913",
76
+ "@aztec/foundation": "3.0.0-nightly.20250913",
77
+ "@aztec/l1-artifacts": "3.0.0-nightly.20250913",
78
+ "@aztec/noir-noirc_abi": "3.0.0-nightly.20250913",
79
79
  "@google-cloud/storage": "^7.15.0",
80
80
  "axios": "^1.9.0",
81
81
  "json-stringify-deterministic": "1.0.12",
@@ -18,7 +18,7 @@ export interface ContractClass {
18
18
  /**
19
19
  * Hash of the contract artifact. The specification of this hash is not enforced by the protocol. Should include
20
20
  * commitments to code of utility functions and compilation metadata. Intended to be used by clients to verify that
21
- * an off-chain fetched artifact matches a registered class.
21
+ * an offchain fetched artifact matches a registered class.
22
22
  */
23
23
  artifactHash: Fr;
24
24
  /** List of individual private functions, constructors included. */
@@ -1,3 +1,4 @@
1
+ import type { L1ContractAddresses } from '@aztec/ethereum';
1
2
  import type { ApiSchemaFor } from '@aztec/foundation/schemas';
2
3
 
3
4
  import { z } from 'zod';
@@ -24,6 +25,41 @@ import { TxReceipt } from '../tx/tx_receipt.js';
24
25
  import { GetContractClassLogsResponseSchema, GetPublicLogsResponseSchema } from './get_logs_response.js';
25
26
  import type { L2LogsSource } from './l2_logs_source.js';
26
27
 
28
+ /**
29
+ * The archiver configuration.
30
+ */
31
+ export type ArchiverSpecificConfig = {
32
+ /** The polling interval in ms for retrieving new L2 blocks and encrypted logs. */
33
+ archiverPollingIntervalMS?: number;
34
+
35
+ /** The number of L2 blocks the archiver will attempt to download at a time. */
36
+ archiverBatchSize?: number;
37
+
38
+ /** The polling interval viem uses in ms */
39
+ viemPollingIntervalMS?: number;
40
+
41
+ /** The deployed L1 contract addresses */
42
+ l1Contracts: L1ContractAddresses;
43
+
44
+ /** The max number of logs that can be obtained in 1 "getPublicLogs" call. */
45
+ maxLogs?: number;
46
+
47
+ /** The maximum possible size of the archiver DB in KB. Overwrites the general dataStoreMapSizeKB. */
48
+ archiverStoreMapSizeKb?: number;
49
+
50
+ /** Whether to skip validating block attestations (use only for testing). */
51
+ skipValidateBlockAttestations?: boolean;
52
+ };
53
+
54
+ export const ArchiverSpecificConfigSchema = z.object({
55
+ archiverPollingIntervalMS: schemas.Integer.optional(),
56
+ archiverBatchSize: schemas.Integer.optional(),
57
+ viemPollingIntervalMS: schemas.Integer.optional(),
58
+ maxLogs: schemas.Integer.optional(),
59
+ archiverStoreMapSizeKb: schemas.Integer.optional(),
60
+ skipValidateBlockAttestations: z.boolean().optional(),
61
+ });
62
+
27
63
  export type ArchiverApi = Omit<
28
64
  L2BlockSource & L2LogsSource & ContractDataSource & L1ToL2MessageSource,
29
65
  'start' | 'stop'
@@ -5,6 +5,7 @@ import { z } from 'zod';
5
5
  import type { ApiSchemaFor } from '../schemas/schemas.js';
6
6
  import { type Offense, OffenseSchema, type SlashPayloadRound, SlashPayloadRoundSchema } from '../slashing/index.js';
7
7
  import { type ComponentsVersions, getVersioningResponseHandler } from '../versioning/index.js';
8
+ import { type ArchiverSpecificConfig, ArchiverSpecificConfigSchema } from './archiver.js';
8
9
  import { type SequencerConfig, SequencerConfigSchema } from './configs.js';
9
10
  import { type ProverConfig, ProverConfigSchema } from './prover-client.js';
10
11
  import { type SlasherConfig, SlasherConfigSchema } from './slasher.js';
@@ -54,11 +55,21 @@ export interface AztecNodeAdmin {
54
55
  export type AztecNodeAdminConfig = ValidatorClientFullConfig &
55
56
  SequencerConfig &
56
57
  ProverConfig &
57
- SlasherConfig & { maxTxPoolSize: number };
58
+ SlasherConfig &
59
+ Pick<ArchiverSpecificConfig, 'archiverPollingIntervalMS' | 'skipValidateBlockAttestations' | 'archiverBatchSize'> & {
60
+ maxTxPoolSize: number;
61
+ };
58
62
 
59
63
  export const AztecNodeAdminConfigSchema = SequencerConfigSchema.merge(ProverConfigSchema)
60
64
  .merge(SlasherConfigSchema)
61
65
  .merge(ValidatorClientConfigSchema)
66
+ .merge(
67
+ ArchiverSpecificConfigSchema.pick({
68
+ archiverPollingIntervalMS: true,
69
+ skipValidateBlockAttestations: true,
70
+ archiverBatchSize: true,
71
+ }),
72
+ )
62
73
  .merge(z.object({ maxTxPoolSize: z.number() }));
63
74
 
64
75
  export const AztecNodeAdminApiSchema: ApiSchemaFor<AztecNodeAdmin> = {
@@ -37,7 +37,7 @@ export class BaseOrMergeRollupPublicInputs {
37
37
  */
38
38
  public endSpongeBlob: SpongeBlob,
39
39
  /**
40
- * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened on-chain).
40
+ * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened onchain).
41
41
  * Note: Truncated to 31 bytes to fit in Fr.
42
42
  */
43
43
  public outHash: Fr,
@@ -37,7 +37,7 @@ export class BlockRootOrBlockMergePublicInputs {
37
37
  */
38
38
  public endGlobalVariables: GlobalVariables,
39
39
  /**
40
- * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened on-chain).
40
+ * SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened onchain).
41
41
  * Note: Truncated to 31 bytes to fit in Fr.
42
42
  */
43
43
  public outHash: Fr,
@@ -93,7 +93,7 @@ export class RootRollupInputs {
93
93
  /**
94
94
  * Represents public inputs of the root rollup circuit.
95
95
  *
96
- * NOTE: in practice, we'll hash all of this up into a single public input, for cheap on-chain verification.
96
+ * NOTE: in practice, we'll hash all of this up into a single public input, for cheap onchain verification.
97
97
  */
98
98
  export class RootRollupPublicInputs {
99
99
  constructor(