@aztec/stdlib 1.0.0-nightly.20250617 → 1.0.0-nightly.20250618

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.
@@ -1 +1 @@
1
- {"version":3,"file":"contract_class_id.d.ts","sourceRoot":"","sources":["../../src/contract/contract_class_id.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAK9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAG,uBAAuB,GAAG,OAAO,CAAC,EAAE,CAAC,CAEhH;AAED,2EAA2E;AAC3E,wBAAsB,kCAAkC,CACtD,aAAa,EAAE,aAAa,GAAG,uBAAuB,GACrD,OAAO,CAAC,uBAAuB,GAAG;IAAE,EAAE,EAAE,EAAE,CAAA;CAAE,CAAC,CAe/C;AAED,0EAA0E;AAC1E,wBAAsB,8BAA8B,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAInH;AAED,uCAAuC;AACvC,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,EAAE,CAAC;IACjB,oBAAoB,EAAE,EAAE,CAAC;IACzB,wBAAwB,EAAE,EAAE,CAAC;CAC9B,CAAC;AAEF,wBAAsB,+BAA+B,CAAC,cAAc,EAAE,MAAM,eAQ3E"}
1
+ {"version":3,"file":"contract_class_id.d.ts","sourceRoot":"","sources":["../../src/contract/contract_class_id.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAK9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAG,uBAAuB,GAAG,OAAO,CAAC,EAAE,CAAC,CAEhH;AAED,2EAA2E;AAC3E,wBAAsB,kCAAkC,CACtD,aAAa,EAAE,aAAa,GAAG,uBAAuB,GACrD,OAAO,CAAC,uBAAuB,GAAG;IAAE,EAAE,EAAE,EAAE,CAAA;CAAE,CAAC,CAe/C;AAED,0EAA0E;AAC1E,wBAAsB,8BAA8B,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAInH;AAED,uCAAuC;AACvC,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,EAAE,CAAC;IACjB,oBAAoB,EAAE,EAAE,CAAC;IACzB,wBAAwB,EAAE,EAAE,CAAC;CAC9B,CAAC;AAEF,wBAAsB,+BAA+B,CAAC,cAAc,EAAE,MAAM,eAc3E"}
@@ -1,5 +1,5 @@
1
1
  import { GeneratorIndex, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS } from '@aztec/constants';
2
- import { poseidon2HashAccumulate, poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
2
+ import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
3
3
  import { Fr } from '@aztec/foundation/fields';
4
4
  import { strict as assert } from 'assert';
5
5
  import { bufferAsFields } from '../abi/index.js';
@@ -46,9 +46,11 @@ import { computePrivateFunctionsRoot } from './private_function.js';
46
46
  }
47
47
  export async function computePublicBytecodeCommitment(packedBytecode) {
48
48
  // Encode the buffer into field elements (chunked into 32 bytes each)
49
- const encodedBytecode = bufferAsFields(packedBytecode, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS);
50
49
  // The first element is the length of the bytecode (in bytes)
51
- const bytecodeLength = Math.ceil(encodedBytecode[0].toNumber() / (Fr.SIZE_IN_BYTES - 1));
50
+ const [bytecodeLengthAsField, ...bytecodeAsFields] = bufferAsFields(packedBytecode, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS);
51
+ const bytecodeLength = Math.ceil(bytecodeLengthAsField.toNumber() / (Fr.SIZE_IN_BYTES - 1));
52
52
  assert(bytecodeLength < MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS, 'Bytecode exceeds maximum deployable size');
53
- return bytecodeLength == 0 ? new Fr(0) : await poseidon2HashAccumulate(encodedBytecode.slice(0, bytecodeLength + 1));
53
+ // NOTE: hash the bytecode here only up to the actual length of the bytecode.
54
+ // We do not hash the entire max bytecode length!
55
+ return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), GeneratorIndex.PUBLIC_BYTECODE);
54
56
  }
@@ -1,6 +1,6 @@
1
1
  import type { Fr } from '@aztec/foundation/fields';
2
2
  import { type IndexedTreeLeafPreimage, SiblingPath } from '@aztec/foundation/trees';
3
- import type { MerkleTreeId } from '../trees/merkle_tree_id.js';
3
+ import type { MerkleTreeId, TreeHeights } from '../trees/merkle_tree_id.js';
4
4
  import type { NullifierLeaf } from '../trees/nullifier_leaf.js';
5
5
  import type { PublicDataTreeLeaf } from '../trees/public_data_leaf.js';
6
6
  import type { BlockHeader } from '../tx/block_header.js';
@@ -120,20 +120,16 @@ export interface MerkleTreeReadOperations {
120
120
  * @param treeId - The tree to be queried for a sibling path.
121
121
  * @param index - The index of the leaf for which a sibling path should be returned.
122
122
  */
123
- getSiblingPath<N extends number>(treeId: MerkleTreeId, index: bigint): Promise<SiblingPath<N>>;
123
+ getSiblingPath<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<SiblingPath<TreeHeights[ID]>>;
124
124
  /**
125
125
  * Returns the previous index for a given value in an indexed tree.
126
126
  * @param treeId - The tree for which the previous value index is required.
127
127
  * @param value - The value to be queried.
128
128
  */
129
129
  getPreviousValueIndex<ID extends IndexedTreeId>(treeId: ID, value: bigint): Promise<{
130
- /**
131
- * The index of the found leaf.
132
- */
130
+ /** The index of the found leaf.*/
133
131
  index: bigint;
134
- /**
135
- * A flag indicating if the corresponding leaf's value is equal to `newValue`.
136
- */
132
+ /** A flag indicating if the corresponding leaf's value is equal to `newValue`. */
137
133
  alreadyPresent: boolean;
138
134
  } | undefined>;
139
135
  /**
@@ -153,8 +149,8 @@ export interface MerkleTreeReadOperations {
153
149
  * @param treeId - The tree for which the index should be returned.
154
150
  * @param values - The values to search for in the tree.
155
151
  */
156
- findSiblingPaths<ID extends MerkleTreeId, N extends number>(treeId: ID, values: MerkleTreeLeafType<ID>[]): Promise<({
157
- path: SiblingPath<N>;
152
+ findSiblingPaths<ID extends MerkleTreeId>(treeId: ID, values: MerkleTreeLeafType<ID>[]): Promise<({
153
+ path: SiblingPath<TreeHeights[ID]>;
158
154
  index: bigint;
159
155
  } | undefined)[]>;
160
156
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"merkle_tree_operations.d.ts","sourceRoot":"","sources":["../../src/interfaces/merkle_tree_operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merkle_tree_operations.d.ts","sourceRoot":"","sources":["../../src/interfaces/merkle_tree_operations.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,8 @@ export declare const schemas: {
47
47
  BufferHex: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>;
48
48
  /** Hex string with an optional 0x prefix which gets removed as part of the parsing. */
49
49
  HexString: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
50
+ /** Schema for secret config value */
51
+ SecretValue: typeof import("@aztec/foundation/config").SecretValue.schema;
50
52
  /** Accepts a hex string. */
51
53
  AztecAddress: ZodFor<AztecAddress>;
52
54
  /** Accepts a hex string. */
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAgC,MAAM,2BAA2B,CAAC;AAEtF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;;KAGK;AACL,eAAO,MAAM,OAAO;IAClB,4BAA4B;gBACgB,MAAM,CAAC,UAAU,CAAC;IAE9D,4BAA4B;QACA,MAAM,CAAC,EAAE,CAAC;IAEtC,4BAA4B;QACA,MAAM,CAAC,EAAE,CAAC;IAEtC,yCAAyC;WACP,MAAM,CAAC,KAAK,CAAC;IAE/C,mCAAmC;;IAGnC,2CAA2C;;IAG3C,+BAA+B;;IAG/B,+CAA+C;cACP,MAAM,CAAC,QAAQ,CAAC;IAExD,oGAAoG;;;;;;;;;;;;;;IAGpG,wCAAwC;;IAGxC,uFAAuF;;IAGvF,4BAA4B;;IAG5B,4BAA4B;;IAG5B,4BAA4B;;IAG5B,4BAA4B;;CAE7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAM9C,CAAC;AAEH,OAAO,EACL,KAAK,MAAM,EACX,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,eAAe,EACf,KAAK,YAAY,EACjB,QAAQ,EACR,SAAS,EACT,cAAc,GACf,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAgC,MAAM,2BAA2B,CAAC;AAEtF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;;KAGK;AACL,eAAO,MAAM,OAAO;IAClB,4BAA4B;gBACgB,MAAM,CAAC,UAAU,CAAC;IAE9D,4BAA4B;QACA,MAAM,CAAC,EAAE,CAAC;IAEtC,4BAA4B;QACA,MAAM,CAAC,EAAE,CAAC;IAEtC,yCAAyC;WACP,MAAM,CAAC,KAAK,CAAC;IAE/C,mCAAmC;;IAGnC,2CAA2C;;IAG3C,+BAA+B;;IAG/B,+CAA+C;cACP,MAAM,CAAC,QAAQ,CAAC;IAExD,oGAAoG;;;;;;;;;;;;;;IAGpG,wCAAwC;;IAGxC,uFAAuF;;IAGvF,qCAAqC;;IAGrC,4BAA4B;;IAG5B,4BAA4B;;IAG5B,4BAA4B;;IAG5B,4BAA4B;;CAE7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAM9C,CAAC;AAEH,OAAO,EACL,KAAK,MAAM,EACX,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,eAAe,EACf,KAAK,YAAY,EACjB,QAAQ,EACR,SAAS,EACT,cAAc,GACf,MAAM,2BAA2B,CAAC"}
@@ -19,6 +19,7 @@ import { AztecAddress } from '../aztec-address/index.js';
19
19
  /** Accepts a base64 string or an object `{ type: 'Buffer', data: [byte, byte...] }` as a buffer. */ Buffer: foundationSchemas.Buffer,
20
20
  /** Accepts a hex string as a buffer. */ BufferHex: foundationSchemas.BufferHex,
21
21
  /** Hex string with an optional 0x prefix which gets removed as part of the parsing. */ HexString: foundationSchemas.HexString,
22
+ /** Schema for secret config value */ SecretValue: foundationSchemas.SecretValue,
22
23
  /** Accepts a hex string. */ AztecAddress: AztecAddress.schema,
23
24
  /** Accepts a hex string. */ NoteSelector: NoteSelector.schema,
24
25
  /** Accepts a hex string. */ FunctionSelector: FunctionSelector.schema,
@@ -6,7 +6,10 @@ export declare class InvalidValidatorPrivateKeyError extends ValidatorError {
6
6
  constructor();
7
7
  }
8
8
  export declare class AttestationTimeoutError extends ValidatorError {
9
- constructor(numberOfRequiredAttestations: number, slot: bigint);
9
+ readonly collectedCount: number;
10
+ readonly requiredCount: number;
11
+ readonly slot: bigint;
12
+ constructor(collectedCount: number, requiredCount: number, slot: bigint);
10
13
  }
11
14
  export declare class TransactionsNotAvailableError extends ValidatorError {
12
15
  constructor(txHashes: TxHash[]);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/validators/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,+BAAgC,SAAQ,cAAc;;CAIlE;AAED,qBAAa,uBAAwB,SAAQ,cAAc;gBAC7C,4BAA4B,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAG/D;AAED,qBAAa,6BAA8B,SAAQ,cAAc;gBACnD,QAAQ,EAAE,MAAM,EAAE;CAG/B;AAED,qBAAa,kCAAmC,SAAQ,cAAc;gBACxD,QAAQ,EAAE,MAAM,EAAE;CAG/B;AAED,qBAAa,sBAAuB,SAAQ,cAAc;;CAIzD;AAED,qBAAa,kBAAmB,SAAQ,cAAc;gBACxC,YAAY,EAAE,MAAM;CAGjC;AAED,qBAAa,gBAAiB,SAAQ,cAAc;;CAInD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/validators/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,+BAAgC,SAAQ,cAAc;;CAIlE;AAED,qBAAa,uBAAwB,SAAQ,cAAc;aAEvC,cAAc,EAAE,MAAM;aACtB,aAAa,EAAE,MAAM;aACrB,IAAI,EAAE,MAAM;gBAFZ,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM;CAI/B;AAED,qBAAa,6BAA8B,SAAQ,cAAc;gBACnD,QAAQ,EAAE,MAAM,EAAE;CAG/B;AAED,qBAAa,kCAAmC,SAAQ,cAAc;gBACxD,QAAQ,EAAE,MAAM,EAAE;CAG/B;AAED,qBAAa,sBAAuB,SAAQ,cAAc;;CAIzD;AAED,qBAAa,kBAAmB,SAAQ,cAAc;gBACxC,YAAY,EAAE,MAAM;CAGjC;AAED,qBAAa,gBAAiB,SAAQ,cAAc;;CAInD"}
@@ -9,8 +9,11 @@ export class InvalidValidatorPrivateKeyError extends ValidatorError {
9
9
  }
10
10
  }
11
11
  export class AttestationTimeoutError extends ValidatorError {
12
- constructor(numberOfRequiredAttestations, slot){
13
- super(`Timeout waiting for ${numberOfRequiredAttestations} attestations for slot ${slot}`);
12
+ collectedCount;
13
+ requiredCount;
14
+ slot;
15
+ constructor(collectedCount, requiredCount, slot){
16
+ super(`Timeout collecting attestations for slot ${slot}: ${collectedCount}/${requiredCount}`), this.collectedCount = collectedCount, this.requiredCount = requiredCount, this.slot = slot;
14
17
  }
15
18
  }
16
19
  export class TransactionsNotAvailableError extends ValidatorError {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "1.0.0-nightly.20250617",
3
+ "version": "1.0.0-nightly.20250618",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -67,12 +67,12 @@
67
67
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
68
68
  },
69
69
  "dependencies": {
70
- "@aztec/bb.js": "1.0.0-nightly.20250617",
71
- "@aztec/blob-lib": "1.0.0-nightly.20250617",
72
- "@aztec/constants": "1.0.0-nightly.20250617",
73
- "@aztec/ethereum": "1.0.0-nightly.20250617",
74
- "@aztec/foundation": "1.0.0-nightly.20250617",
75
- "@aztec/noir-noirc_abi": "1.0.0-nightly.20250617",
70
+ "@aztec/bb.js": "1.0.0-nightly.20250618",
71
+ "@aztec/blob-lib": "1.0.0-nightly.20250618",
72
+ "@aztec/constants": "1.0.0-nightly.20250618",
73
+ "@aztec/ethereum": "1.0.0-nightly.20250618",
74
+ "@aztec/foundation": "1.0.0-nightly.20250618",
75
+ "@aztec/noir-noirc_abi": "1.0.0-nightly.20250618",
76
76
  "@google-cloud/storage": "^7.15.0",
77
77
  "axios": "^1.9.0",
78
78
  "json-stringify-deterministic": "1.0.12",
@@ -145,6 +145,9 @@
145
145
  "setupFiles": [
146
146
  "../../foundation/src/jest/setup.mjs"
147
147
  ],
148
- "testEnvironment": "../../foundation/src/jest/env.mjs"
148
+ "testEnvironment": "../../foundation/src/jest/env.mjs",
149
+ "setupFilesAfterEnv": [
150
+ "../../foundation/src/jest/setupAfterEnv.mjs"
151
+ ]
149
152
  }
150
153
  }
@@ -1,5 +1,5 @@
1
1
  import { GeneratorIndex, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS } from '@aztec/constants';
2
- import { poseidon2HashAccumulate, poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
2
+ import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
3
3
  import { Fr } from '@aztec/foundation/fields';
4
4
 
5
5
  import { strict as assert } from 'assert';
@@ -61,10 +61,16 @@ export type ContractClassIdPreimage = {
61
61
 
62
62
  export async function computePublicBytecodeCommitment(packedBytecode: Buffer) {
63
63
  // Encode the buffer into field elements (chunked into 32 bytes each)
64
- const encodedBytecode: Fr[] = bufferAsFields(packedBytecode, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS);
65
64
  // The first element is the length of the bytecode (in bytes)
66
- const bytecodeLength = Math.ceil(encodedBytecode[0].toNumber() / (Fr.SIZE_IN_BYTES - 1));
65
+ const [bytecodeLengthAsField, ...bytecodeAsFields] = bufferAsFields(
66
+ packedBytecode,
67
+ MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS,
68
+ );
69
+
70
+ const bytecodeLength = Math.ceil(bytecodeLengthAsField.toNumber() / (Fr.SIZE_IN_BYTES - 1));
67
71
  assert(bytecodeLength < MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS, 'Bytecode exceeds maximum deployable size');
68
72
 
69
- return bytecodeLength == 0 ? new Fr(0) : await poseidon2HashAccumulate(encodedBytecode.slice(0, bytecodeLength + 1));
73
+ // NOTE: hash the bytecode here only up to the actual length of the bytecode.
74
+ // We do not hash the entire max bytecode length!
75
+ return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), GeneratorIndex.PUBLIC_BYTECODE);
70
76
  }
@@ -2,7 +2,7 @@ import type { Fr } from '@aztec/foundation/fields';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
3
  import { type IndexedTreeLeafPreimage, SiblingPath } from '@aztec/foundation/trees';
4
4
 
5
- import type { MerkleTreeId } from '../trees/merkle_tree_id.js';
5
+ import type { MerkleTreeId, TreeHeights } from '../trees/merkle_tree_id.js';
6
6
  import type { NullifierLeaf } from '../trees/nullifier_leaf.js';
7
7
  import type { PublicDataTreeLeaf } from '../trees/public_data_leaf.js';
8
8
  import type { BlockHeader } from '../tx/block_header.js';
@@ -137,7 +137,7 @@ export interface MerkleTreeReadOperations {
137
137
  * @param treeId - The tree to be queried for a sibling path.
138
138
  * @param index - The index of the leaf for which a sibling path should be returned.
139
139
  */
140
- getSiblingPath<N extends number>(treeId: MerkleTreeId, index: bigint): Promise<SiblingPath<N>>;
140
+ getSiblingPath<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<SiblingPath<TreeHeights[ID]>>;
141
141
 
142
142
  /**
143
143
  * Returns the previous index for a given value in an indexed tree.
@@ -149,13 +149,9 @@ export interface MerkleTreeReadOperations {
149
149
  value: bigint,
150
150
  ): Promise<
151
151
  | {
152
- /**
153
- * The index of the found leaf.
154
- */
152
+ /** The index of the found leaf.*/
155
153
  index: bigint;
156
- /**
157
- * A flag indicating if the corresponding leaf's value is equal to `newValue`.
158
- */
154
+ /** A flag indicating if the corresponding leaf's value is equal to `newValue`. */
159
155
  alreadyPresent: boolean;
160
156
  }
161
157
  | undefined
@@ -183,10 +179,10 @@ export interface MerkleTreeReadOperations {
183
179
  * @param treeId - The tree for which the index should be returned.
184
180
  * @param values - The values to search for in the tree.
185
181
  */
186
- findSiblingPaths<ID extends MerkleTreeId, N extends number>(
182
+ findSiblingPaths<ID extends MerkleTreeId>(
187
183
  treeId: ID,
188
184
  values: MerkleTreeLeafType<ID>[],
189
- ): Promise<({ path: SiblingPath<N>; index: bigint } | undefined)[]>;
185
+ ): Promise<({ path: SiblingPath<TreeHeights[ID]>; index: bigint } | undefined)[]>;
190
186
 
191
187
  /**
192
188
  * Returns the first index containing a leaf value after `startIndex`.
@@ -49,6 +49,9 @@ export const schemas = {
49
49
  /** Hex string with an optional 0x prefix which gets removed as part of the parsing. */
50
50
  HexString: foundationSchemas.HexString,
51
51
 
52
+ /** Schema for secret config value */
53
+ SecretValue: foundationSchemas.SecretValue,
54
+
52
55
  /** Accepts a hex string. */
53
56
  AztecAddress: AztecAddress.schema,
54
57
 
@@ -13,8 +13,12 @@ export class InvalidValidatorPrivateKeyError extends ValidatorError {
13
13
  }
14
14
 
15
15
  export class AttestationTimeoutError extends ValidatorError {
16
- constructor(numberOfRequiredAttestations: number, slot: bigint) {
17
- super(`Timeout waiting for ${numberOfRequiredAttestations} attestations for slot ${slot}`);
16
+ constructor(
17
+ public readonly collectedCount: number,
18
+ public readonly requiredCount: number,
19
+ public readonly slot: bigint,
20
+ ) {
21
+ super(`Timeout collecting attestations for slot ${slot}: ${collectedCount}/${requiredCount}`);
18
22
  }
19
23
  }
20
24