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

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 (49) hide show
  1. package/dest/block/block_hash.d.ts +4 -0
  2. package/dest/block/block_hash.d.ts.map +1 -1
  3. package/dest/block/block_hash.js +11 -0
  4. package/dest/block/in_block.d.ts +7 -6
  5. package/dest/block/in_block.d.ts.map +1 -1
  6. package/dest/block/in_block.js +4 -4
  7. package/dest/config/node-rpc-config.d.ts +2 -0
  8. package/dest/config/node-rpc-config.d.ts.map +1 -1
  9. package/dest/config/node-rpc-config.js +5 -0
  10. package/dest/contract/contract_class_id.d.ts.map +1 -1
  11. package/dest/contract/contract_class_id.js +6 -4
  12. package/dest/epoch-helpers/index.d.ts +10 -5
  13. package/dest/epoch-helpers/index.d.ts.map +1 -1
  14. package/dest/epoch-helpers/index.js +13 -8
  15. package/dest/interfaces/merkle_tree_operations.d.ts +6 -10
  16. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  17. package/dest/interfaces/pxe.d.ts +3 -3
  18. package/dest/interfaces/pxe.d.ts.map +1 -1
  19. package/dest/interfaces/pxe.js +2 -2
  20. package/dest/interfaces/server_circuit_prover.d.ts +6 -1
  21. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  22. package/dest/kernel/private_kernel_prover_output.d.ts +0 -1
  23. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  24. package/dest/schemas/schemas.d.ts +2 -0
  25. package/dest/schemas/schemas.d.ts.map +1 -1
  26. package/dest/schemas/schemas.js +1 -0
  27. package/dest/tx/indexed_tx_effect.d.ts +5 -2
  28. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  29. package/dest/tx/indexed_tx_effect.js +18 -0
  30. package/dest/tx/simulated_tx.d.ts +164 -0
  31. package/dest/tx/simulated_tx.d.ts.map +1 -1
  32. package/dest/tx/simulated_tx.js +25 -0
  33. package/dest/validators/errors.d.ts +4 -1
  34. package/dest/validators/errors.d.ts.map +1 -1
  35. package/dest/validators/errors.js +5 -2
  36. package/package.json +14 -11
  37. package/src/block/block_hash.ts +14 -0
  38. package/src/block/in_block.ts +5 -6
  39. package/src/config/node-rpc-config.ts +7 -0
  40. package/src/contract/contract_class_id.ts +10 -4
  41. package/src/epoch-helpers/index.ts +20 -10
  42. package/src/interfaces/merkle_tree_operations.ts +6 -10
  43. package/src/interfaces/pxe.ts +4 -3
  44. package/src/interfaces/server_circuit_prover.ts +10 -1
  45. package/src/kernel/private_kernel_prover_output.ts +0 -1
  46. package/src/schemas/schemas.ts +3 -0
  47. package/src/tx/indexed_tx_effect.ts +22 -0
  48. package/src/tx/simulated_tx.ts +43 -0
  49. package/src/validators/errors.ts +6 -2
@@ -1,11 +1,15 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
+ import { BufferReader } from '@aztec/foundation/serialize';
3
4
  /** Hash of an L2 block. */
4
5
  export declare class L2BlockHash extends Buffer32 {
5
6
  constructor(
6
7
  /** The buffer containing the hash. */
7
8
  hash: Buffer);
8
9
  static random(): L2BlockHash;
10
+ static fromNumber(num: number): L2BlockHash;
11
+ static fromBuffer(buffer: Buffer | BufferReader): L2BlockHash;
12
+ static fromString(str: string): Buffer32;
9
13
  static get schema(): import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, L2BlockHash, string>;
10
14
  static zero(): L2BlockHash;
11
15
  static fromField(hash: Fr): L2BlockHash;
@@ -1 +1 @@
1
- {"version":3,"file":"block_hash.d.ts","sourceRoot":"","sources":["../../src/block/block_hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAI9C,2BAA2B;AAC3B,qBAAa,WAAY,SAAQ,QAAQ;;IAErC,sCAAsC;IACtC,IAAI,EAAE,MAAM;WAKE,MAAM;IAItB,MAAM,KAAK,MAAM,sNAEhB;IAED,MAAM,CAAC,IAAI;WAIK,SAAS,CAAC,IAAI,EAAE,EAAE;CAGnC"}
1
+ {"version":3,"file":"block_hash.d.ts","sourceRoot":"","sources":["../../src/block/block_hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D,2BAA2B;AAC3B,qBAAa,WAAY,SAAQ,QAAQ;;IAErC,sCAAsC;IACtC,IAAI,EAAE,MAAM;WAKE,MAAM;WAIN,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;WAIpC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;WAKxC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAIjD,MAAM,KAAK,MAAM,sNAEhB;IAED,MAAM,CAAC,IAAI;WAIK,SAAS,CAAC,IAAI,EAAE,EAAE;CAGnC"}
@@ -1,5 +1,6 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
+ import { BufferReader } from '@aztec/foundation/serialize';
3
4
  import { schemas } from '../schemas/schemas.js';
4
5
  /** Hash of an L2 block. */ export class L2BlockHash extends Buffer32 {
5
6
  constructor(/** The buffer containing the hash. */ hash){
@@ -8,6 +9,16 @@ import { schemas } from '../schemas/schemas.js';
8
9
  static random() {
9
10
  return new L2BlockHash(Fr.random().toBuffer());
10
11
  }
12
+ static fromNumber(num) {
13
+ return new L2BlockHash(super.fromNumber(num).toBuffer());
14
+ }
15
+ static fromBuffer(buffer) {
16
+ const reader = BufferReader.asReader(buffer);
17
+ return new L2BlockHash(reader.readBytes(L2BlockHash.SIZE));
18
+ }
19
+ static fromString(str) {
20
+ return new L2BlockHash(super.fromString(str).toBuffer());
21
+ }
11
22
  static get schema() {
12
23
  return schemas.BufferHex.transform((value)=>new L2BlockHash(value));
13
24
  }
@@ -1,8 +1,9 @@
1
1
  import { type ZodTypeAny, z } from 'zod';
2
+ import { L2BlockHash } from './block_hash.js';
2
3
  import type { L2Block } from './l2_block.js';
3
4
  export type InBlock<T> = {
4
5
  l2BlockNumber: number;
5
- l2BlockHash: string;
6
+ l2BlockHash: L2BlockHash;
6
7
  data: T;
7
8
  };
8
9
  export declare function randomInBlock<T>(data: T): InBlock<T>;
@@ -10,22 +11,22 @@ export declare function wrapInBlock<T>(data: T, block: L2Block): Promise<InBlock
10
11
  export declare function inBlockSchemaFor<T extends ZodTypeAny>(schema: T): z.ZodObject<{
11
12
  data: T;
12
13
  l2BlockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
13
- l2BlockHash: z.ZodString;
14
+ l2BlockHash: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, L2BlockHash, string>;
14
15
  }, "strip", ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
15
16
  data: T;
16
17
  l2BlockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
17
- l2BlockHash: z.ZodString;
18
+ l2BlockHash: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, L2BlockHash, string>;
18
19
  }>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
19
20
  data: T;
20
21
  l2BlockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
21
- l2BlockHash: z.ZodString;
22
+ l2BlockHash: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, L2BlockHash, string>;
22
23
  }>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
23
24
  data: T;
24
25
  l2BlockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
25
- l2BlockHash: z.ZodString;
26
+ l2BlockHash: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, L2BlockHash, string>;
26
27
  }>]: z.baseObjectInputType<{
27
28
  data: T;
28
29
  l2BlockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
29
- l2BlockHash: z.ZodString;
30
+ l2BlockHash: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, L2BlockHash, string>;
30
31
  }>[k_1]; }>;
31
32
  //# sourceMappingURL=in_block.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in_block.d.ts","sourceRoot":"","sources":["../../src/block/in_block.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMpD;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAMjF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;YAM/D"}
1
+ {"version":3,"file":"in_block.d.ts","sourceRoot":"","sources":["../../src/block/in_block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMpD;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAMjF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;YAM/D"}
@@ -1,24 +1,24 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
1
  import { z } from 'zod';
3
2
  import { schemas } from '../schemas/index.js';
3
+ import { L2BlockHash } from './block_hash.js';
4
4
  export function randomInBlock(data) {
5
5
  return {
6
6
  data,
7
7
  l2BlockNumber: Math.floor(Math.random() * 1000),
8
- l2BlockHash: Fr.random().toString()
8
+ l2BlockHash: L2BlockHash.random()
9
9
  };
10
10
  }
11
11
  export async function wrapInBlock(data, block) {
12
12
  return {
13
13
  data,
14
14
  l2BlockNumber: block.number,
15
- l2BlockHash: (await block.hash()).toString()
15
+ l2BlockHash: L2BlockHash.fromField(await block.hash())
16
16
  };
17
17
  }
18
18
  export function inBlockSchemaFor(schema) {
19
19
  return z.object({
20
20
  data: schema,
21
21
  l2BlockNumber: schemas.Integer,
22
- l2BlockHash: z.string()
22
+ l2BlockHash: L2BlockHash.schema
23
23
  });
24
24
  }
@@ -5,5 +5,7 @@ export type NodeRPCConfig = {
5
5
  rpcSimulatePublicMaxGasLimit: number;
6
6
  /** Maximum allowed batch size for JSON RPC batch requests. */
7
7
  rpcMaxBatchSize: number;
8
+ /** The maximum body size the RPC server will accept */
9
+ rpcMaxBodySize: string;
8
10
  };
9
11
  //# sourceMappingURL=node-rpc-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-rpc-config.d.ts","sourceRoot":"","sources":["../../src/config/node-rpc-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AAEvF,eAAO,MAAM,qBAAqB,EAAE,kBAAkB,CAAC,aAAa,CAWnE,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,uFAAuF;IACvF,4BAA4B,EAAE,MAAM,CAAC;IACrC,8DAA8D;IAC9D,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC"}
1
+ {"version":3,"file":"node-rpc-config.d.ts","sourceRoot":"","sources":["../../src/config/node-rpc-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AAEvF,eAAO,MAAM,qBAAqB,EAAE,kBAAkB,CAAC,aAAa,CAgBnE,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,uFAAuF;IACvF,4BAA4B,EAAE,MAAM,CAAC;IACrC,8DAA8D;IAC9D,eAAe,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC"}
@@ -9,5 +9,10 @@ export const nodeRpcConfigMappings = {
9
9
  env: 'RPC_MAX_BATCH_SIZE',
10
10
  description: 'Maximum allowed batch size for JSON RPC batch requests.',
11
11
  ...numberConfigHelper(100)
12
+ },
13
+ rpcMaxBodySize: {
14
+ env: 'RPC_MAX_BODY_SIZE',
15
+ description: 'Maximum allowed batch size for JSON RPC batch requests.',
16
+ defaultValue: '50mb'
12
17
  }
13
18
  };
@@ -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
  }
@@ -5,7 +5,7 @@ export type L1RollupConstants = {
5
5
  slotDuration: number;
6
6
  epochDuration: number;
7
7
  ethereumSlotDuration: number;
8
- proofSubmissionWindow: number;
8
+ proofSubmissionEpochs: number;
9
9
  };
10
10
  export declare const EmptyL1RollupConstants: L1RollupConstants;
11
11
  export declare const L1RollupConstantsSchema: z.ZodObject<{
@@ -14,21 +14,21 @@ export declare const L1RollupConstantsSchema: z.ZodObject<{
14
14
  slotDuration: z.ZodNumber;
15
15
  epochDuration: z.ZodNumber;
16
16
  ethereumSlotDuration: z.ZodNumber;
17
- proofSubmissionWindow: z.ZodNumber;
17
+ proofSubmissionEpochs: z.ZodNumber;
18
18
  }, "strip", z.ZodTypeAny, {
19
19
  l1StartBlock: bigint;
20
20
  l1GenesisTime: bigint;
21
21
  slotDuration: number;
22
22
  epochDuration: number;
23
23
  ethereumSlotDuration: number;
24
- proofSubmissionWindow: number;
24
+ proofSubmissionEpochs: number;
25
25
  }, {
26
26
  l1StartBlock: string | number | bigint;
27
27
  l1GenesisTime: string | number | bigint;
28
28
  slotDuration: number;
29
29
  epochDuration: number;
30
30
  ethereumSlotDuration: number;
31
- proofSubmissionWindow: number;
31
+ proofSubmissionEpochs: number;
32
32
  }>;
33
33
  /** Returns the timestamp for a given L2 slot. */
34
34
  export declare function getTimestampForSlot(slot: bigint, constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration'>): bigint;
@@ -45,9 +45,14 @@ export declare function getSlotRangeForEpoch(epochNumber: bigint, constants: Pic
45
45
  * Note that the endTimestamp is the start timestamp of the last L1 slot for the epoch.
46
46
  */
47
47
  export declare function getTimestampRangeForEpoch(epochNumber: bigint, constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'epochDuration' | 'ethereumSlotDuration'>): bigint[];
48
+ /**
49
+ * Returns the epoch number at which proofs are no longer accepted for a given epoch.
50
+ * See l1-contracts/src/core/libraries/TimeLib.sol
51
+ */
52
+ export declare function getProofSubmissionDeadlineEpoch(epochNumber: bigint, constants: Pick<L1RollupConstants, 'proofSubmissionEpochs'>): bigint;
48
53
  /**
49
54
  * Returns the deadline timestamp (in seconds) for submitting a proof for a given epoch.
50
55
  * Computed as the start of the given epoch plus the proof submission window.
51
56
  */
52
- export declare function getProofSubmissionDeadlineTimestamp(epochNumber: bigint, constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'epochDuration' | 'proofSubmissionWindow'>): bigint;
57
+ export declare function getProofSubmissionDeadlineTimestamp(epochNumber: bigint, constants: Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration' | 'epochDuration' | 'proofSubmissionEpochs'>): bigint;
53
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/epoch-helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,iBAOpC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAOE,CAAC;AAEvC,iDAAiD;AACjD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,CAAC,UAGrE;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,CAAC,UAElH;AAED,sDAAsD;AACtD,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,GAAG,eAAe,CAAC,UAGvF;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,UAE/F;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,YAG5G;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,GAAG,eAAe,GAAG,sBAAsB,CAAC,YAUhH;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,GAAG,eAAe,GAAG,uBAAuB,CAAC,UAQjH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/epoch-helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,iBAOpC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAOE,CAAC;AAEvC,iDAAiD;AACjD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,CAAC,UAGrE;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,CAAC,UAElH;AAED,sDAAsD;AACtD,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,GAAG,eAAe,CAAC,UAGvF;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,UAE/F;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,YAG5G;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,GAAG,eAAe,GAAG,sBAAsB,CAAC,YAUhH;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,UAG5D;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,GAAG,eAAe,GAAG,uBAAuB,CAAC,UAOjH"}
@@ -6,7 +6,7 @@ export const EmptyL1RollupConstants = {
6
6
  epochDuration: 1,
7
7
  slotDuration: 1,
8
8
  ethereumSlotDuration: 1,
9
- proofSubmissionWindow: 2
9
+ proofSubmissionEpochs: 1
10
10
  };
11
11
  export const L1RollupConstantsSchema = z.object({
12
12
  l1StartBlock: schemas.BigInt,
@@ -14,7 +14,7 @@ export const L1RollupConstantsSchema = z.object({
14
14
  slotDuration: z.number(),
15
15
  epochDuration: z.number(),
16
16
  ethereumSlotDuration: z.number(),
17
- proofSubmissionWindow: z.number()
17
+ proofSubmissionEpochs: z.number()
18
18
  });
19
19
  /** Returns the timestamp for a given L2 slot. */ export function getTimestampForSlot(slot, constants) {
20
20
  return constants.l1GenesisTime + slot * BigInt(constants.slotDuration);
@@ -46,14 +46,19 @@ export const L1RollupConstantsSchema = z.object({
46
46
  constants.l1GenesisTime + endSlot * BigInt(constants.slotDuration) + BigInt((ethereumSlotsPerL2Slot - 1) * constants.ethereumSlotDuration)
47
47
  ];
48
48
  }
49
+ /**
50
+ * Returns the epoch number at which proofs are no longer accepted for a given epoch.
51
+ * See l1-contracts/src/core/libraries/TimeLib.sol
52
+ */ export function getProofSubmissionDeadlineEpoch(epochNumber, constants) {
53
+ return epochNumber + BigInt(constants.proofSubmissionEpochs + 1);
54
+ }
49
55
  /**
50
56
  * Returns the deadline timestamp (in seconds) for submitting a proof for a given epoch.
51
57
  * Computed as the start of the given epoch plus the proof submission window.
52
58
  */ export function getProofSubmissionDeadlineTimestamp(epochNumber, constants) {
53
- // See l1-contracts/src/core/libraries/rollup/EpochProofLib.sol:
54
- // Slot deadline = startEpoch.toSlots() + Slot.wrap(rollupStore.config.proofSubmissionWindow);
55
- const [startSlot] = getSlotRangeForEpoch(epochNumber, constants);
56
- const deadlineSlot = startSlot + BigInt(constants.proofSubmissionWindow);
57
- const deadlineTimestamp = getTimestampForSlot(deadlineSlot, constants);
58
- return deadlineTimestamp;
59
+ // See l1-contracts/src/core/libraries/TimeLib.sol:
60
+ // return toSlots(_a) + Slot.wrap(store.epochDuration * (store.proofSubmissionEpochs + 1));
61
+ const deadlineEpoch = getProofSubmissionDeadlineEpoch(epochNumber, constants);
62
+ const [deadlineSlot] = getSlotRangeForEpoch(deadlineEpoch, constants);
63
+ return getTimestampForSlot(deadlineSlot, constants);
59
64
  }
@@ -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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"}
@@ -12,7 +12,7 @@ import { GasFees } from '../gas/gas_fees.js';
12
12
  import { type LogFilter } from '../logs/log_filter.js';
13
13
  import { UniqueNote } from '../note/extended_note.js';
14
14
  import { type NotesFilter } from '../note/notes_filter.js';
15
- import { type IndexedTxEffect, PrivateExecutionResult, Tx, TxExecutionRequest, TxHash, TxReceipt, TxSimulationResult } from '../tx/index.js';
15
+ import { type IndexedTxEffect, PrivateExecutionResult, SimulationOverrides, Tx, TxExecutionRequest, TxHash, TxReceipt, TxSimulationResult } from '../tx/index.js';
16
16
  import { TxProfileResult, UtilitySimulationResult } from '../tx/profiling.js';
17
17
  import { TxProvingResult } from '../tx/proven_tx.js';
18
18
  import { type GetContractClassLogsResponse, type GetPublicLogsResponse } from './get_logs_response.js';
@@ -120,15 +120,15 @@ export interface PXE {
120
120
  *
121
121
  * @param txRequest - An authenticated tx request ready for simulation
122
122
  * @param simulatePublic - Whether to simulate the public part of the transaction.
123
- * @param msgSender - (Optional) The message sender to use for the simulation.
124
123
  * @param skipTxValidation - (Optional) If false, this function throws if the transaction is unable to be included in a block at the current state.
125
124
  * @param skipFeeEnforcement - (Optional) If false, fees are enforced.
125
+ * @param overrides - (Optional) State overrides for the simulation, such as msgSender, contract instances and artifacts.
126
126
  * @param scopes - (Optional) The accounts whose notes we can access in this call. Currently optional and will default to all.
127
127
  * @returns A simulated transaction result object that includes public and private return values.
128
128
  * @throws If the code for the functions executed in this transaction have not been made available via `addContracts`.
129
129
  * Also throws if simulatePublic is true and public simulation reverts.
130
130
  */
131
- simulateTx(txRequest: TxExecutionRequest, simulatePublic: boolean, msgSender?: AztecAddress, skipTxValidation?: boolean, skipFeeEnforcement?: boolean, scopes?: AztecAddress[]): Promise<TxSimulationResult>;
131
+ simulateTx(txRequest: TxExecutionRequest, simulatePublic: boolean, skipTxValidation?: boolean, skipFeeEnforcement?: boolean, overrides?: SimulationOverrides, scopes?: AztecAddress[]): Promise<TxSimulationResult>;
132
132
  /**
133
133
  * Profiles a transaction, reporting gate counts (unless disabled) and returns an execution trace.
134
134
  *
@@ -1 +1 @@
1
- {"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../../src/interfaces/pxe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../../src/interfaces/pxe.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import { LogFilterSchema } from '../logs/log_filter.js';
10
10
  import { UniqueNote } from '../note/extended_note.js';
11
11
  import { NotesFilterSchema } from '../note/notes_filter.js';
12
12
  import { AbiDecodedSchema, optional, schemas } from '../schemas/schemas.js';
13
- import { PrivateExecutionResult, Tx, TxExecutionRequest, TxHash, TxReceipt, TxSimulationResult, indexedTxSchema } from '../tx/index.js';
13
+ import { PrivateExecutionResult, SimulationOverrides, Tx, TxExecutionRequest, TxHash, TxReceipt, TxSimulationResult, indexedTxSchema } from '../tx/index.js';
14
14
  import { TxProfileResult, UtilitySimulationResult } from '../tx/profiling.js';
15
15
  import { TxProvingResult } from '../tx/proven_tx.js';
16
16
  import { GetContractClassLogsResponseSchema, GetPublicLogsResponseSchema } from './get_logs_response.js';
@@ -67,7 +67,7 @@ export const PXESchema = {
67
67
  z.literal('full'),
68
68
  z.literal('execution-steps')
69
69
  ]), optional(z.boolean()), optional(schemas.AztecAddress)).returns(TxProfileResult.schema),
70
- simulateTx: z.function().args(TxExecutionRequest.schema, z.boolean(), optional(schemas.AztecAddress), optional(z.boolean()), optional(z.boolean()), optional(z.array(schemas.AztecAddress))).returns(TxSimulationResult.schema),
70
+ simulateTx: z.function().args(TxExecutionRequest.schema, z.boolean(), optional(z.boolean()), optional(z.boolean()), optional(SimulationOverrides.schema), optional(z.array(schemas.AztecAddress))).returns(TxSimulationResult.schema),
71
71
  sendTx: z.function().args(Tx.schema).returns(TxHash.schema),
72
72
  getTxReceipt: z.function().args(TxHash.schema).returns(TxReceipt.schema),
73
73
  getTxEffect: z.function().args(TxHash.schema).returns(indexedTxSchema().optional()),
@@ -73,6 +73,11 @@ export interface ServerCircuitProver {
73
73
  getAvmProof(inputs: AvmCircuitInputs, skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
74
74
  signal?: AbortSignal, epochNumber?: number): Promise<ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>>;
75
75
  }
76
+ export type IVCProofVerificationResult = {
77
+ valid: boolean;
78
+ durationMs: number;
79
+ totalDurationMs: number;
80
+ };
76
81
  /**
77
82
  * A verifier used by nodes to check tx proofs are valid.
78
83
  */
@@ -82,7 +87,7 @@ export interface ClientProtocolCircuitVerifier {
82
87
  * @param tx - The tx to verify the proof of
83
88
  * @returns True if the proof is valid, false otherwise
84
89
  */
85
- verifyProof(tx: Tx): Promise<boolean>;
90
+ verifyProof(tx: Tx): Promise<IVCProofVerificationResult>;
86
91
  /**
87
92
  * Stop the verifier.
88
93
  */
@@ -1 +1 @@
1
- {"version":3,"file":"server_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/interfaces/server_circuit_prover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/interfaces/server_circuit_prover.ts"],"names":[],"mappings":"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"}
@@ -64,7 +64,6 @@ export interface PrivateKernelExecutionProofOutput<PublicInputsType extends Priv
64
64
  /** The private IVC proof optimized for user devices. It will be consumed by an Aztec prover,
65
65
  * which recursively verifies it through the "tube" circuit.*/
66
66
  clientIvcProof: ClientIvcProof;
67
- vk: Buffer;
68
67
  /**
69
68
  * The trace the clientIvcProof corresponds to.
70
69
  * A trace of app circuits interleaved with private kernel circuits.
@@ -1 +1 @@
1
- {"version":3,"file":"private_kernel_prover_output.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_prover_output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AAE3G,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUrC,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;IAEpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KAC/C,CAAC;CACH;AAED,kEAAkE;AAClE,MAAM,WAAW,iCAAiC,CAChD,gBAAgB,SAAS,gCAAgC,GAAG,oCAAoC;IAEhG,8DAA8D;IAC9D,YAAY,EAAE,gBAAgB,CAAC;IAC/B;kEAC8D;IAC9D,cAAc,EAAE,cAAc,CAAC;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX;;;;OAIG;IACH,cAAc,EAAE,oBAAoB,EAAE,CAAC;IACvC,0BAA0B;IAC1B,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,oBAAoB,EAAE,2BAU3E"}
1
+ {"version":3,"file":"private_kernel_prover_output.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_prover_output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AAE3G,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUrC,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;IAEpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KAC/C,CAAC;CACH;AAED,kEAAkE;AAClE,MAAM,WAAW,iCAAiC,CAChD,gBAAgB,SAAS,gCAAgC,GAAG,oCAAoC;IAEhG,8DAA8D;IAC9D,YAAY,EAAE,gBAAgB,CAAC;IAC/B;kEAC8D;IAC9D,cAAc,EAAE,cAAc,CAAC;IAC/B;;;;OAIG;IACH,cAAc,EAAE,oBAAoB,EAAE,CAAC;IACvC,0BAA0B;IAC1B,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,oBAAoB,EAAE,2BAU3E"}
@@ -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,
@@ -1,3 +1,4 @@
1
+ import { L2BlockHash } from '../block/block_hash.js';
1
2
  import { type InBlock } from '../block/in_block.js';
2
3
  import { TxEffect } from './tx_effect.js';
3
4
  export type IndexedTxEffect = InBlock<TxEffect> & {
@@ -6,13 +7,13 @@ export type IndexedTxEffect = InBlock<TxEffect> & {
6
7
  export declare function indexedTxSchema(): import("zod").ZodObject<import("zod").objectUtil.extendShape<{
7
8
  data: import("@aztec/foundation/schemas").ZodFor<TxEffect>;
8
9
  l2BlockNumber: import("zod").ZodPipeline<import("zod").ZodUnion<[import("zod").ZodBigInt, import("zod").ZodNumber, import("zod").ZodString]>, import("zod").ZodNumber>;
9
- l2BlockHash: import("zod").ZodString;
10
+ l2BlockHash: import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, L2BlockHash, string>;
10
11
  }, {
11
12
  txIndexInBlock: import("zod").ZodPipeline<import("zod").ZodUnion<[import("zod").ZodBigInt, import("zod").ZodNumber, import("zod").ZodString]>, import("zod").ZodNumber>;
12
13
  }>, "strip", import("zod").ZodTypeAny, {
13
14
  data: TxEffect;
14
15
  l2BlockNumber: number;
15
- l2BlockHash: string;
16
+ l2BlockHash: L2BlockHash;
16
17
  txIndexInBlock: number;
17
18
  }, {
18
19
  l2BlockNumber: string | number | bigint;
@@ -21,4 +22,6 @@ export declare function indexedTxSchema(): import("zod").ZodObject<import("zod")
21
22
  data?: any;
22
23
  }>;
23
24
  export declare function randomIndexedTxEffect(): Promise<IndexedTxEffect>;
25
+ export declare function serializeIndexedTxEffect(effect: IndexedTxEffect): Buffer;
26
+ export declare function deserializeIndexedTxEffect(buffer: Buffer): IndexedTxEffect;
24
27
  //# sourceMappingURL=indexed_tx_effect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexed_tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/indexed_tx_effect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAmC,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E,wBAAgB,eAAe;;;;;;;;;;;;;;;;GAE9B;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CAKtE"}
1
+ {"version":3,"file":"indexed_tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/indexed_tx_effect.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,OAAO,EAAmC,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E,wBAAgB,eAAe;;;;;;;;;;;;;;;;GAE9B;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CAKtE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAExE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAc1E"}
@@ -1,4 +1,6 @@
1
1
  import { schemas } from '@aztec/foundation/schemas';
2
+ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
+ import { L2BlockHash } from '../block/block_hash.js';
2
4
  import { inBlockSchemaFor, randomInBlock } from '../block/in_block.js';
3
5
  import { TxEffect } from './tx_effect.js';
4
6
  export function indexedTxSchema() {
@@ -12,3 +14,19 @@ export async function randomIndexedTxEffect() {
12
14
  txIndexInBlock: Math.floor(Math.random() * 1000)
13
15
  };
14
16
  }
17
+ export function serializeIndexedTxEffect(effect) {
18
+ return serializeToBuffer(effect.l2BlockHash, effect.l2BlockNumber, effect.txIndexInBlock, effect.data);
19
+ }
20
+ export function deserializeIndexedTxEffect(buffer) {
21
+ const reader = BufferReader.asReader(buffer);
22
+ const l2BlockHash = reader.readObject(L2BlockHash);
23
+ const l2BlockNumber = reader.readNumber();
24
+ const txIndexInBlock = reader.readNumber();
25
+ const data = reader.readObject(TxEffect);
26
+ return {
27
+ l2BlockHash,
28
+ l2BlockNumber,
29
+ txIndexInBlock,
30
+ data
31
+ };
32
+ }