@aztec/stdlib 3.0.0-nightly.20251219 → 3.0.0-nightly.20251220

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.
@@ -18,7 +18,6 @@ export declare class L2BlockNew {
18
18
  body: Body;
19
19
  checkpointNumber: CheckpointNumber;
20
20
  indexWithinCheckpoint: number;
21
- private blockHash;
22
21
  constructor(
23
22
  /** Snapshot of archive tree after the block is applied. */
24
23
  archive: AppendOnlyTreeSnapshot,
@@ -29,7 +28,7 @@ export declare class L2BlockNew {
29
28
  /** Number of the checkpoint that the block belongs to. */
30
29
  checkpointNumber: CheckpointNumber,
31
30
  /** Index of the block within the checkpoint. */
32
- indexWithinCheckpoint: number, blockHash?: Fr | undefined);
31
+ indexWithinCheckpoint: number);
33
32
  get number(): BlockNumber;
34
33
  get timestamp(): bigint;
35
34
  static get schema(): z.ZodEffects<z.ZodObject<{
@@ -92,6 +91,12 @@ export declare class L2BlockNew {
92
91
  * @returns The block's hash.
93
92
  */
94
93
  hash(): Promise<Fr>;
94
+ /**
95
+ * Checks if this block equals another block.
96
+ * @param other - The other block to compare with.
97
+ * @returns True if both blocks are equal.
98
+ */
99
+ equals(other: this): boolean;
95
100
  toBlobFields(): Fr[];
96
101
  toBlockBlobData(): BlockBlobData;
97
102
  static empty(): L2BlockNew;
@@ -127,4 +132,4 @@ export declare class L2BlockNew {
127
132
  getPrivateLogs(): PrivateLog[];
128
133
  toBlockInfo(): L2BlockInfo;
129
134
  }
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfYmxvY2tfbmV3LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmxvY2svbDJfYmxvY2tfbmV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGFBQWEsRUFBdUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQ7OztHQUdHO0FBQ0gscUJBQWEsVUFBVTtJQUdaLE9BQU8sRUFBRSxzQkFBc0I7SUFFL0IsTUFBTSxFQUFFLFdBQVc7SUFFbkIsSUFBSSxFQUFFLElBQUk7SUFFVixnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFFbEMscUJBQXFCLEVBQUUsTUFBTTtJQUNwQyxPQUFPLENBQUMsU0FBUztJQVhuQjtJQUNFLDJEQUEyRDtJQUNwRCxPQUFPLEVBQUUsc0JBQXNCO0lBQ3RDLDJCQUEyQjtJQUNwQixNQUFNLEVBQUUsV0FBVztJQUMxQixxQkFBcUI7SUFDZCxJQUFJLEVBQUUsSUFBSTtJQUNqQiwwREFBMEQ7SUFDbkQsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ3pDLGdEQUFnRDtJQUN6QyxxQkFBcUIsRUFBRSxNQUFNLEVBQzVCLFNBQVMsR0FBRSxFQUFFLEdBQUcsU0FBcUIsRUFDM0M7SUFFSixJQUFJLE1BQU0sSUFBSSxXQUFXLENBRXhCO0lBRUQsSUFBSSxTQUFTLElBQUksTUFBTSxDQUV0QjtJQUVELE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWFoQjtJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLGNBUzNDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSw0QkFFUDtJQUVEOzs7T0FHRztJQUNVLElBQUksSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLENBSy9CO0lBRU0sWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUcxQjtJQUVNLGVBQWUsSUFBSSxhQUFhLENBc0J0QztJQUVELE1BQU0sQ0FBQyxLQUFLLGVBRVg7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILE9BQWEsTUFBTSxDQUNqQixXQUFXLEVBQUUsV0FBVyxFQUN4QixFQUNFLGdCQUF3RCxFQUN4RCxxQkFBeUIsRUFDekIsV0FBZSxFQUNmLFNBQWMsRUFDZCxhQUFhLEVBQ2IsR0FBRyxvQkFBb0IsRUFDeEIsR0FBRTtRQUNELGdCQUFnQixDQUFDLEVBQUUsZ0JBQWdCLENBQUM7UUFDcEMscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDL0IsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ3JCLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxhQUFhLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pGLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBTSxHQUN6RCxPQUFPLENBQUMsVUFBVSxDQUFDLENBS3JCO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUTs7Ozs7Ozs7TUFxQlA7SUFFRCxjQUFjLElBQUksVUFBVSxFQUFFLENBRTdCO0lBRUQsV0FBVyxJQUFJLFdBQVcsQ0FVekI7Q0FDRiJ9
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfYmxvY2tfbmV3LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmxvY2svbDJfYmxvY2tfbmV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGFBQWEsRUFBdUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQ7OztHQUdHO0FBQ0gscUJBQWEsVUFBVTtJQUdaLE9BQU8sRUFBRSxzQkFBc0I7SUFFL0IsTUFBTSxFQUFFLFdBQVc7SUFFbkIsSUFBSSxFQUFFLElBQUk7SUFFVixnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFFbEMscUJBQXFCLEVBQUUsTUFBTTtJQVZ0QztJQUNFLDJEQUEyRDtJQUNwRCxPQUFPLEVBQUUsc0JBQXNCO0lBQ3RDLDJCQUEyQjtJQUNwQixNQUFNLEVBQUUsV0FBVztJQUMxQixxQkFBcUI7SUFDZCxJQUFJLEVBQUUsSUFBSTtJQUNqQiwwREFBMEQ7SUFDbkQsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ3pDLGdEQUFnRDtJQUN6QyxxQkFBcUIsRUFBRSxNQUFNLEVBQ2xDO0lBRUosSUFBSSxNQUFNLElBQUksV0FBVyxDQUV4QjtJQUVELElBQUksU0FBUyxJQUFJLE1BQU0sQ0FFdEI7SUFFRCxNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FhaEI7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsWUFBWSxjQVMzQztJQUVEOzs7T0FHRztJQUNILFFBQVEsNEJBRVA7SUFFRDs7O09BR0c7SUFDSSxJQUFJLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUV6QjtJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksR0FBRyxPQUFPLENBUWxDO0lBRU0sWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUcxQjtJQUVNLGVBQWUsSUFBSSxhQUFhLENBc0J0QztJQUVELE1BQU0sQ0FBQyxLQUFLLGVBRVg7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILE9BQWEsTUFBTSxDQUNqQixXQUFXLEVBQUUsV0FBVyxFQUN4QixFQUNFLGdCQUF3RCxFQUN4RCxxQkFBeUIsRUFDekIsV0FBZSxFQUNmLFNBQWMsRUFDZCxhQUFhLEVBQ2IsR0FBRyxvQkFBb0IsRUFDeEIsR0FBRTtRQUNELGdCQUFnQixDQUFDLEVBQUUsZ0JBQWdCLENBQUM7UUFDcEMscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDL0IsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ3JCLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxhQUFhLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pGLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBTSxHQUN6RCxPQUFPLENBQUMsVUFBVSxDQUFDLENBS3JCO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUTs7Ozs7Ozs7TUFxQlA7SUFFRCxjQUFjLElBQUksVUFBVSxFQUFFLENBRTdCO0lBRUQsV0FBVyxJQUFJLFdBQVcsQ0FTekI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"l2_block_new.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAA0B,MAAM,iCAAiC,CAAC;AACxG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;GAGG;AACH,qBAAa,UAAU;IAGZ,OAAO,EAAE,sBAAsB;IAE/B,MAAM,EAAE,WAAW;IAEnB,IAAI,EAAE,IAAI;IAEV,gBAAgB,EAAE,gBAAgB;IAElC,qBAAqB,EAAE,MAAM;IACpC,OAAO,CAAC,SAAS;IAXnB;IACE,2DAA2D;IACpD,OAAO,EAAE,sBAAsB;IACtC,2BAA2B;IACpB,MAAM,EAAE,WAAW;IAC1B,qBAAqB;IACd,IAAI,EAAE,IAAI;IACjB,0DAA0D;IACnD,gBAAgB,EAAE,gBAAgB;IACzC,gDAAgD;IACzC,qBAAqB,EAAE,MAAM,EAC5B,SAAS,GAAE,EAAE,GAAG,SAAqB,EAC3C;IAEJ,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAahB;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,cAS3C;IAED;;;OAGG;IACH,QAAQ,4BAEP;IAED;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,CAK/B;IAEM,YAAY,IAAI,EAAE,EAAE,CAG1B;IAEM,eAAe,IAAI,aAAa,CAsBtC;IAED,MAAM,CAAC,KAAK,eAEX;IAED;;;;;;;;OAQG;IACH,OAAa,MAAM,CACjB,WAAW,EAAE,WAAW,EACxB,EACE,gBAAwD,EACxD,qBAAyB,EACzB,WAAe,EACf,SAAc,EACd,aAAa,EACb,GAAG,oBAAoB,EACxB,GAAE;QACD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACjF,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAM,GACzD,OAAO,CAAC,UAAU,CAAC,CAKrB;IAED;;;OAGG;IACH,QAAQ;;;;;;;;MAqBP;IAED,cAAc,IAAI,UAAU,EAAE,CAE7B;IAED,WAAW,IAAI,WAAW,CAUzB;CACF"}
1
+ {"version":3,"file":"l2_block_new.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAA0B,MAAM,iCAAiC,CAAC;AACxG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;GAGG;AACH,qBAAa,UAAU;IAGZ,OAAO,EAAE,sBAAsB;IAE/B,MAAM,EAAE,WAAW;IAEnB,IAAI,EAAE,IAAI;IAEV,gBAAgB,EAAE,gBAAgB;IAElC,qBAAqB,EAAE,MAAM;IAVtC;IACE,2DAA2D;IACpD,OAAO,EAAE,sBAAsB;IACtC,2BAA2B;IACpB,MAAM,EAAE,WAAW;IAC1B,qBAAqB;IACd,IAAI,EAAE,IAAI;IACjB,0DAA0D;IACnD,gBAAgB,EAAE,gBAAgB;IACzC,gDAAgD;IACzC,qBAAqB,EAAE,MAAM,EAClC;IAEJ,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAahB;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,cAS3C;IAED;;;OAGG;IACH,QAAQ,4BAEP;IAED;;;OAGG;IACI,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,CAEzB;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAQlC;IAEM,YAAY,IAAI,EAAE,EAAE,CAG1B;IAEM,eAAe,IAAI,aAAa,CAsBtC;IAED,MAAM,CAAC,KAAK,eAEX;IAED;;;;;;;;OAQG;IACH,OAAa,MAAM,CACjB,WAAW,EAAE,WAAW,EACxB,EACE,gBAAwD,EACxD,qBAAyB,EACzB,WAAe,EACf,SAAc,EACd,aAAa,EACb,GAAG,oBAAoB,EACxB,GAAE;QACD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACjF,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAM,GACzD,OAAO,CAAC,UAAU,CAAC,CAKrB;IAED;;;OAGG;IACH,QAAQ;;;;;;;;MAqBP;IAED,cAAc,IAAI,UAAU,EAAE,CAE7B;IAED,WAAW,IAAI,WAAW,CASzB;CACF"}
@@ -15,14 +15,12 @@ import { Body } from './body.js';
15
15
  body;
16
16
  checkpointNumber;
17
17
  indexWithinCheckpoint;
18
- blockHash;
19
- constructor(/** Snapshot of archive tree after the block is applied. */ archive, /** Header of the block. */ header, /** L2 block body. */ body, /** Number of the checkpoint that the block belongs to. */ checkpointNumber, /** Index of the block within the checkpoint. */ indexWithinCheckpoint, blockHash = undefined){
18
+ constructor(/** Snapshot of archive tree after the block is applied. */ archive, /** Header of the block. */ header, /** L2 block body. */ body, /** Number of the checkpoint that the block belongs to. */ checkpointNumber, /** Index of the block within the checkpoint. */ indexWithinCheckpoint){
20
19
  this.archive = archive;
21
20
  this.header = header;
22
21
  this.body = body;
23
22
  this.checkpointNumber = checkpointNumber;
24
23
  this.indexWithinCheckpoint = indexWithinCheckpoint;
25
- this.blockHash = blockHash;
26
24
  }
27
25
  get number() {
28
26
  return this.header.globalVariables.blockNumber;
@@ -60,11 +58,15 @@ import { Body } from './body.js';
60
58
  /**
61
59
  * Returns the block's hash (hash of block header).
62
60
  * @returns The block's hash.
63
- */ async hash() {
64
- if (this.blockHash === undefined) {
65
- this.blockHash = await this.header.hash();
66
- }
67
- return this.blockHash;
61
+ */ hash() {
62
+ return this.header.hash();
63
+ }
64
+ /**
65
+ * Checks if this block equals another block.
66
+ * @param other - The other block to compare with.
67
+ * @returns True if both blocks are equal.
68
+ */ equals(other) {
69
+ return this.archive.equals(other.archive) && this.header.equals(other.header) && this.body.equals(other.body) && this.checkpointNumber === other.checkpointNumber && this.indexWithinCheckpoint === other.indexWithinCheckpoint;
68
70
  }
69
71
  toBlobFields() {
70
72
  const blockBlobData = this.toBlockBlobData();
@@ -139,7 +141,6 @@ import { Body } from './body.js';
139
141
  }
140
142
  toBlockInfo() {
141
143
  return {
142
- blockHash: this.blockHash,
143
144
  archive: this.archive.root,
144
145
  lastArchive: this.header.lastArchive.root,
145
146
  blockNumber: this.number,
@@ -46,4 +46,4 @@ export declare class PrivateLog {
46
46
  equals(other: PrivateLog): boolean;
47
47
  [inspect.custom](): string;
48
48
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9sb2cuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL3ByaXZhdGVfbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUNMLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxLQUFLLEVBR1gsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIscUJBQWEsVUFBVTtJQUlaLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sMEJBQTBCLENBQUM7SUFFcEQsYUFBYSxFQUFFLE1BQU07SUFMOUIsTUFBTSxDQUFDLGFBQWEsU0FBeUM7SUFFN0QsWUFDUyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLDBCQUEwQixDQUFDLEVBRXBELGFBQWEsRUFBRSxNQUFNLEVBQzFCO0lBRUosTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUV2QztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsK0ZBRTVDO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxjQUczQztJQUVELGdCQUFnQixTQUVmO0lBRUQsMEJBQTBCLFNBRXpCO0lBRUQsWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUVuQjtJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxjQUl0RTtJQUVELE9BQU8sWUFFTjtJQUVELE1BQU0sQ0FBQyxLQUFLLGVBRVg7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGNBRzlDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQWMsY0FJOUI7SUFFRCxNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7O09BUWhCO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLFVBQVUsQ0FRM0M7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsV0FFdkI7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBS3pCO0NBQ0YifQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9sb2cuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL3ByaXZhdGVfbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUNMLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxLQUFLLEVBR1gsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIscUJBQWEsVUFBVTtJQUlaLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sMEJBQTBCLENBQUM7SUFFcEQsYUFBYSxFQUFFLE1BQU07SUFMOUIsTUFBTSxDQUFDLGFBQWEsU0FBeUM7SUFFN0QsWUFDUyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLDBCQUEwQixDQUFDLEVBRXBELGFBQWEsRUFBRSxNQUFNLEVBQzFCO0lBRUosTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUV2QztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsK0ZBRTVDO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxjQUczQztJQUVELGdCQUFnQixTQUVmO0lBRUQsMEJBQTBCLFNBRXpCO0lBRUQsWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUVuQjtJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxjQUl0RTtJQUVELE9BQU8sWUFHTjtJQUVELE1BQU0sQ0FBQyxLQUFLLGVBRVg7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGNBRzlDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQWMsY0FJOUI7SUFFRCxNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7O09BUWhCO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLFVBQVUsQ0FRM0M7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsV0FFdkI7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBS3pCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"private_log.d.ts","sourceRoot":"","sources":["../../src/logs/private_log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,KAAK,KAAK,EAGX,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qBAAa,UAAU;IAIZ,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC;IAEpD,aAAa,EAAE,MAAM;IAL9B,MAAM,CAAC,aAAa,SAAyC;IAE7D,YACS,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC,EAEpD,aAAa,EAAE,MAAM,EAC1B;IAEJ,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,cAEvC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,+FAE5C;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,cAG3C;IAED,gBAAgB,SAEf;IAED,0BAA0B,SAEzB;IAED,YAAY,IAAI,EAAE,EAAE,CAEnB;IAED,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,cAItE;IAED,OAAO,YAEN;IAED,MAAM,CAAC,KAAK,eAEX;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,cAG9C;IAED,MAAM,CAAC,MAAM,CAAC,GAAG,KAAc,cAI9B;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;OAQhB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAQ3C;IAED,MAAM,CAAC,KAAK,EAAE,UAAU,WAEvB;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAKzB;CACF"}
1
+ {"version":3,"file":"private_log.d.ts","sourceRoot":"","sources":["../../src/logs/private_log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,KAAK,KAAK,EAGX,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qBAAa,UAAU;IAIZ,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC;IAEpD,aAAa,EAAE,MAAM;IAL9B,MAAM,CAAC,aAAa,SAAyC;IAE7D,YACS,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC,EAEpD,aAAa,EAAE,MAAM,EAC1B;IAEJ,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,cAEvC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,+FAE5C;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,cAG3C;IAED,gBAAgB,SAEf;IAED,0BAA0B,SAEzB;IAED,YAAY,IAAI,EAAE,EAAE,CAEnB;IAED,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,cAItE;IAED,OAAO,YAGN;IAED,MAAM,CAAC,KAAK,eAEX;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,cAG9C;IAED,MAAM,CAAC,MAAM,CAAC,GAAG,KAAc,cAI9B;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;OAQhB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAQ3C;IAED,MAAM,CAAC,KAAK,EAAE,UAAU,WAEvB;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAKzB;CACF"}
@@ -46,7 +46,8 @@ export class PrivateLog {
46
46
  return new PrivateLog(padArrayEnd(emittedFields, Fr.ZERO, PRIVATE_LOG_SIZE_IN_FIELDS), emittedLength);
47
47
  }
48
48
  isEmpty() {
49
- return this.fields.every((f)=>f.isZero());
49
+ // Faster to check emittedLength than compare all fields against zero
50
+ return this.emittedLength === 0;
50
51
  }
51
52
  static empty() {
52
53
  return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.zero), 0);
@@ -9,12 +9,13 @@ import { GlobalVariables } from './global_variables.js';
9
9
  import { StateReference } from './state_reference.js';
10
10
  /** A header of an L2 block. */
11
11
  export declare class BlockHeader {
12
- lastArchive: AppendOnlyTreeSnapshot;
13
- state: StateReference;
14
- spongeBlobHash: Fr;
15
- globalVariables: GlobalVariables;
16
- totalFees: Fr;
17
- totalManaUsed: Fr;
12
+ readonly lastArchive: AppendOnlyTreeSnapshot;
13
+ readonly state: StateReference;
14
+ readonly spongeBlobHash: Fr;
15
+ readonly globalVariables: GlobalVariables;
16
+ readonly totalFees: Fr;
17
+ readonly totalManaUsed: Fr;
18
+ private _cachedHash?;
18
19
  constructor(
19
20
  /** Snapshot of archive before the block is applied. */
20
21
  lastArchive: AppendOnlyTreeSnapshot,
@@ -78,4 +79,4 @@ export declare class BlockHeader {
78
79
  [inspect.custom](): string;
79
80
  equals(other: this): boolean;
80
81
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfaGVhZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvYmxvY2tfaGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHMUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBVyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUF3QyxNQUFNLDZCQUE2QixDQUFDO0FBRTlHLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCwrQkFBK0I7QUFDL0IscUJBQWEsV0FBVztJQUdiLFdBQVcsRUFBRSxzQkFBc0I7SUFFbkMsS0FBSyxFQUFFLGNBQWM7SUFLckIsY0FBYyxFQUFFLEVBQUU7SUFFbEIsZUFBZSxFQUFFLGVBQWU7SUFFaEMsU0FBUyxFQUFFLEVBQUU7SUFFYixhQUFhLEVBQUUsRUFBRTtJQWYxQjtJQUNFLHVEQUF1RDtJQUNoRCxXQUFXLEVBQUUsc0JBQXNCO0lBQzFDLHVCQUF1QjtJQUNoQixLQUFLLEVBQUUsY0FBYztJQUM1Qjs7O09BR0c7SUFDSSxjQUFjLEVBQUUsRUFBRTtJQUN6Qix1Q0FBdUM7SUFDaEMsZUFBZSxFQUFFLGVBQWU7SUFDdkMsbUVBQW1FO0lBQzVELFNBQVMsRUFBRSxFQUFFO0lBQ3BCLHdFQUF3RTtJQUNqRSxhQUFhLEVBQUUsRUFBRSxFQUN0QjtJQUVKLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQVd2QztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsa0ZBUzdDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUV4QztJQUVELE9BQU8sSUFBSSxVQUFVLENBRXBCO0lBRUQsY0FBYyxJQUFJLFdBQVcsQ0FFNUI7SUFFRCxPQUFPLFdBU047SUFFRCxRQUFRLDRCQUVQO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQU1mO0lBRUQsS0FBSyxJQUFJLFdBQVcsQ0FFbkI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFdBQVcsQ0FXNUQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLEdBQUcsV0FBVyxDQVd6RDtJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQU0sR0FBRyxXQUFXLENBVXJFO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FTakI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLGtCQUVkO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FFMUM7SUFFRCxJQUFJLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUVsQjtJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFNLEdBQUcsV0FBVyxDQVU5RztJQUVELFNBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFTUjtJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQVlmO0lBRU0sTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUcsT0FBTyxDQVNsQztDQUNGIn0=
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfaGVhZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvYmxvY2tfaGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHMUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBVyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUF3QyxNQUFNLDZCQUE2QixDQUFDO0FBRTlHLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCwrQkFBK0I7QUFDL0IscUJBQWEsV0FBVzthQUtKLFdBQVcsRUFBRSxzQkFBc0I7YUFFbkMsS0FBSyxFQUFFLGNBQWM7YUFLckIsY0FBYyxFQUFFLEVBQUU7YUFFbEIsZUFBZSxFQUFFLGVBQWU7YUFFaEMsU0FBUyxFQUFFLEVBQUU7YUFFYixhQUFhLEVBQUUsRUFBRTtJQWpCbkMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFjO0lBRWxDO0lBQ0UsdURBQXVEO0lBQ3ZDLFdBQVcsRUFBRSxzQkFBc0I7SUFDbkQsdUJBQXVCO0lBQ1AsS0FBSyxFQUFFLGNBQWM7SUFDckM7OztPQUdHO0lBQ2EsY0FBYyxFQUFFLEVBQUU7SUFDbEMsdUNBQXVDO0lBQ3ZCLGVBQWUsRUFBRSxlQUFlO0lBQ2hELG1FQUFtRTtJQUNuRCxTQUFTLEVBQUUsRUFBRTtJQUM3Qix3RUFBd0U7SUFDeEQsYUFBYSxFQUFFLEVBQUUsRUFDL0I7SUFFSixNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FXdkM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLGtGQVM3QztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFFeEM7SUFFRCxPQUFPLElBQUksVUFBVSxDQUVwQjtJQUVELGNBQWMsSUFBSSxXQUFXLENBRTVCO0lBRUQsT0FBTyxXQVNOO0lBRUQsUUFBUSw0QkFFUDtJQUVELFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FNZjtJQUVELEtBQUssSUFBSSxXQUFXLENBRW5CO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxXQUFXLENBVzVEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FXekQ7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFNLEdBQUcsV0FBVyxDQVVyRTtJQUVELE9BQU8sSUFBSSxPQUFPLENBU2pCO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxrQkFFZDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxXQUFXLENBRTFDO0lBRUQsSUFBSSxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FLbEI7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBTSxHQUFHLFdBQVcsQ0FVOUc7SUFFRCxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BU1I7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FZZjtJQUVNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLE9BQU8sQ0FTbEM7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"block_header.d.ts","sourceRoot":"","sources":["../../src/tx/block_header.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,+BAA+B;AAC/B,qBAAa,WAAW;IAGb,WAAW,EAAE,sBAAsB;IAEnC,KAAK,EAAE,cAAc;IAKrB,cAAc,EAAE,EAAE;IAElB,eAAe,EAAE,eAAe;IAEhC,SAAS,EAAE,EAAE;IAEb,aAAa,EAAE,EAAE;IAf1B;IACE,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B;;;OAGG;IACI,cAAc,EAAE,EAAE;IACzB,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE,EACtB;IAEJ,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,CAWvC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,kFAS7C;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,eAExC;IAED,OAAO,IAAI,UAAU,CAEpB;IAED,cAAc,IAAI,WAAW,CAE5B;IAED,OAAO,WASN;IAED,QAAQ,4BAEP;IAED,QAAQ,IAAI,EAAE,EAAE,CAMf;IAED,KAAK,IAAI,WAAW,CAEnB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAW5D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,WAAW,CAWzD;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAM,GAAG,WAAW,CAUrE;IAED,OAAO,IAAI,OAAO,CASjB;IAED;;;OAGG;IACI,QAAQ,kBAEd;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAE1C;IAED,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,CAElB;IAED,MAAM,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAM,GAAG,WAAW,CAU9G;IAED,SAAS;;;;;;;;;;;;;;;;;;;;;;MASR;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAYf;IAEM,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CASlC;CACF"}
1
+ {"version":3,"file":"block_header.d.ts","sourceRoot":"","sources":["../../src/tx/block_header.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,+BAA+B;AAC/B,qBAAa,WAAW;aAKJ,WAAW,EAAE,sBAAsB;aAEnC,KAAK,EAAE,cAAc;aAKrB,cAAc,EAAE,EAAE;aAElB,eAAe,EAAE,eAAe;aAEhC,SAAS,EAAE,EAAE;aAEb,aAAa,EAAE,EAAE;IAjBnC,OAAO,CAAC,WAAW,CAAC,CAAc;IAElC;IACE,uDAAuD;IACvC,WAAW,EAAE,sBAAsB;IACnD,uBAAuB;IACP,KAAK,EAAE,cAAc;IACrC;;;OAGG;IACa,cAAc,EAAE,EAAE;IAClC,uCAAuC;IACvB,eAAe,EAAE,eAAe;IAChD,mEAAmE;IACnD,SAAS,EAAE,EAAE;IAC7B,wEAAwE;IACxD,aAAa,EAAE,EAAE,EAC/B;IAEJ,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,CAWvC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,kFAS7C;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,eAExC;IAED,OAAO,IAAI,UAAU,CAEpB;IAED,cAAc,IAAI,WAAW,CAE5B;IAED,OAAO,WASN;IAED,QAAQ,4BAEP;IAED,QAAQ,IAAI,EAAE,EAAE,CAMf;IAED,KAAK,IAAI,WAAW,CAEnB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAW5D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,WAAW,CAWzD;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAM,GAAG,WAAW,CAUrE;IAED,OAAO,IAAI,OAAO,CASjB;IAED;;;OAGG;IACI,QAAQ,kBAEd;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAE1C;IAED,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,CAKlB;IAED,MAAM,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAM,GAAG,WAAW,CAU9G;IAED,SAAS;;;;;;;;;;;;;;;;;;;;;;MASR;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAYf;IAEM,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CASlC;CACF"}
@@ -17,6 +17,7 @@ import { StateReference } from './state_reference.js';
17
17
  globalVariables;
18
18
  totalFees;
19
19
  totalManaUsed;
20
+ _cachedHash;
20
21
  constructor(/** Snapshot of archive before the block is applied. */ lastArchive, /** State reference. */ state, /**
21
22
  * Hash of the sponge blob after the tx effects of this block has been applied.
22
23
  * May contain tx effects from the previous blocks in the same checkpoint.
@@ -105,7 +106,10 @@ import { StateReference } from './state_reference.js';
105
106
  return BlockHeader.fromBuffer(hexToBuffer(str));
106
107
  }
107
108
  hash() {
108
- return poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
109
+ if (!this._cachedHash) {
110
+ this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
111
+ }
112
+ return this._cachedHash;
109
113
  }
110
114
  static random(overrides = {}) {
111
115
  return BlockHeader.from({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "3.0.0-nightly.20251219",
3
+ "version": "3.0.0-nightly.20251220",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -77,13 +77,13 @@
77
77
  },
78
78
  "dependencies": {
79
79
  "@aws-sdk/client-s3": "^3.892.0",
80
- "@aztec/bb.js": "3.0.0-nightly.20251219",
81
- "@aztec/blob-lib": "3.0.0-nightly.20251219",
82
- "@aztec/constants": "3.0.0-nightly.20251219",
83
- "@aztec/ethereum": "3.0.0-nightly.20251219",
84
- "@aztec/foundation": "3.0.0-nightly.20251219",
85
- "@aztec/l1-artifacts": "3.0.0-nightly.20251219",
86
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20251219",
80
+ "@aztec/bb.js": "3.0.0-nightly.20251220",
81
+ "@aztec/blob-lib": "3.0.0-nightly.20251220",
82
+ "@aztec/constants": "3.0.0-nightly.20251220",
83
+ "@aztec/ethereum": "3.0.0-nightly.20251220",
84
+ "@aztec/foundation": "3.0.0-nightly.20251220",
85
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251220",
86
+ "@aztec/noir-noirc_abi": "3.0.0-nightly.20251220",
87
87
  "@google-cloud/storage": "^7.15.0",
88
88
  "axios": "^1.12.0",
89
89
  "json-stringify-deterministic": "1.0.12",
@@ -27,7 +27,6 @@ export class L2BlockNew {
27
27
  public checkpointNumber: CheckpointNumber,
28
28
  /** Index of the block within the checkpoint. */
29
29
  public indexWithinCheckpoint: number,
30
- private blockHash: Fr | undefined = undefined,
31
30
  ) {}
32
31
 
33
32
  get number(): BlockNumber {
@@ -80,11 +79,23 @@ export class L2BlockNew {
80
79
  * Returns the block's hash (hash of block header).
81
80
  * @returns The block's hash.
82
81
  */
83
- public async hash(): Promise<Fr> {
84
- if (this.blockHash === undefined) {
85
- this.blockHash = await this.header.hash();
86
- }
87
- return this.blockHash;
82
+ public hash(): Promise<Fr> {
83
+ return this.header.hash();
84
+ }
85
+
86
+ /**
87
+ * Checks if this block equals another block.
88
+ * @param other - The other block to compare with.
89
+ * @returns True if both blocks are equal.
90
+ */
91
+ public equals(other: this): boolean {
92
+ return (
93
+ this.archive.equals(other.archive) &&
94
+ this.header.equals(other.header) &&
95
+ this.body.equals(other.body) &&
96
+ this.checkpointNumber === other.checkpointNumber &&
97
+ this.indexWithinCheckpoint === other.indexWithinCheckpoint
98
+ );
88
99
  }
89
100
 
90
101
  public toBlobFields(): Fr[] {
@@ -185,7 +196,6 @@ export class L2BlockNew {
185
196
 
186
197
  toBlockInfo(): L2BlockInfo {
187
198
  return {
188
- blockHash: this.blockHash,
189
199
  archive: this.archive.root,
190
200
  lastArchive: this.header.lastArchive.root,
191
201
  blockNumber: this.number,
@@ -59,7 +59,8 @@ export class PrivateLog {
59
59
  }
60
60
 
61
61
  isEmpty() {
62
- return this.fields.every(f => f.isZero());
62
+ // Faster to check emittedLength than compare all fields against zero
63
+ return this.emittedLength === 0;
63
64
  }
64
65
 
65
66
  static empty() {
@@ -17,22 +17,24 @@ import { StateReference } from './state_reference.js';
17
17
 
18
18
  /** A header of an L2 block. */
19
19
  export class BlockHeader {
20
+ private _cachedHash?: Promise<Fr>;
21
+
20
22
  constructor(
21
23
  /** Snapshot of archive before the block is applied. */
22
- public lastArchive: AppendOnlyTreeSnapshot,
24
+ public readonly lastArchive: AppendOnlyTreeSnapshot,
23
25
  /** State reference. */
24
- public state: StateReference,
26
+ public readonly state: StateReference,
25
27
  /**
26
28
  * Hash of the sponge blob after the tx effects of this block has been applied.
27
29
  * May contain tx effects from the previous blocks in the same checkpoint.
28
30
  */
29
- public spongeBlobHash: Fr,
31
+ public readonly spongeBlobHash: Fr,
30
32
  /** Global variables of an L2 block. */
31
- public globalVariables: GlobalVariables,
33
+ public readonly globalVariables: GlobalVariables,
32
34
  /** Total fees in the block, computed by the root rollup circuit */
33
- public totalFees: Fr,
35
+ public readonly totalFees: Fr,
34
36
  /** Total mana used in the block, computed by the root rollup circuit */
35
- public totalManaUsed: Fr,
37
+ public readonly totalManaUsed: Fr,
36
38
  ) {}
37
39
 
38
40
  static get schema(): ZodFor<BlockHeader> {
@@ -160,7 +162,10 @@ export class BlockHeader {
160
162
  }
161
163
 
162
164
  hash(): Promise<Fr> {
163
- return poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
165
+ if (!this._cachedHash) {
166
+ this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
167
+ }
168
+ return this._cachedHash;
164
169
  }
165
170
 
166
171
  static random(overrides: Partial<FieldsOf<BlockHeader>> & Partial<FieldsOf<GlobalVariables>> = {}): BlockHeader {