@aztec/stdlib 3.0.0-nightly.20251121 → 3.0.0-nightly.20251122

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 (61) hide show
  1. package/dest/block/l2_block.d.ts.map +1 -1
  2. package/dest/block/l2_block.js +5 -6
  3. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  4. package/dest/block/l2_block_code_to_purge.js +1 -1
  5. package/dest/block/l2_block_header.d.ts +7 -2
  6. package/dest/block/l2_block_header.d.ts.map +1 -1
  7. package/dest/block/l2_block_header.js +17 -10
  8. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  9. package/dest/checkpoint/checkpoint.js +3 -5
  10. package/dest/interfaces/epoch-prover.d.ts +1 -2
  11. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  12. package/dest/kernel/private_circuit_public_inputs.d.ts +6 -6
  13. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  14. package/dest/kernel/private_circuit_public_inputs.js +4 -4
  15. package/dest/messaging/in_hash.d.ts +1 -1
  16. package/dest/messaging/in_hash.d.ts.map +1 -1
  17. package/dest/messaging/in_hash.js +3 -10
  18. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  19. package/dest/messaging/l2_to_l1_membership.js +2 -2
  20. package/dest/messaging/out_hash.js +2 -2
  21. package/dest/p2p/block_attestation.d.ts +1 -0
  22. package/dest/p2p/block_attestation.d.ts.map +1 -1
  23. package/dest/p2p/consensus_payload.d.ts +1 -0
  24. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  25. package/dest/rollup/block_headers_hash.d.ts +4 -0
  26. package/dest/rollup/block_headers_hash.d.ts.map +1 -0
  27. package/dest/rollup/block_headers_hash.js +9 -0
  28. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -0
  29. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  30. package/dest/rollup/block_rollup_public_inputs.js +8 -2
  31. package/dest/rollup/block_root_rollup_private_inputs.d.ts +1 -12
  32. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  33. package/dest/rollup/block_root_rollup_private_inputs.js +1 -9
  34. package/dest/rollup/checkpoint_header.d.ts +6 -1
  35. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  36. package/dest/rollup/checkpoint_header.js +15 -6
  37. package/dest/rollup/index.d.ts +1 -0
  38. package/dest/rollup/index.d.ts.map +1 -1
  39. package/dest/rollup/index.js +1 -0
  40. package/dest/tests/factories.d.ts.map +1 -1
  41. package/dest/tests/factories.js +8 -7
  42. package/dest/tx/tx_effect.d.ts +0 -4
  43. package/dest/tx/tx_effect.d.ts.map +1 -1
  44. package/dest/tx/tx_effect.js +1 -4
  45. package/package.json +8 -8
  46. package/src/block/l2_block.ts +3 -3
  47. package/src/block/l2_block_code_to_purge.ts +1 -0
  48. package/src/block/l2_block_header.ts +16 -3
  49. package/src/checkpoint/checkpoint.ts +4 -3
  50. package/src/interfaces/epoch-prover.ts +0 -2
  51. package/src/kernel/private_circuit_public_inputs.ts +9 -9
  52. package/src/messaging/in_hash.ts +3 -8
  53. package/src/messaging/l2_to_l1_membership.ts +2 -2
  54. package/src/messaging/out_hash.ts +2 -2
  55. package/src/rollup/block_headers_hash.ts +12 -0
  56. package/src/rollup/block_rollup_public_inputs.ts +8 -0
  57. package/src/rollup/block_root_rollup_private_inputs.ts +0 -9
  58. package/src/rollup/checkpoint_header.ts +14 -0
  59. package/src/rollup/index.ts +1 -0
  60. package/src/tests/factories.ts +17 -6
  61. package/src/tx/tx_effect.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"l2_block.d.ts","sourceRoot":"","sources":["../../src/block/l2_block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,qBAAa,OAAO;IAEhB,2DAA2D;IACpD,OAAO,EAAE,sBAAsB;IACtC,uBAAuB;IAChB,MAAM,EAAE,aAAa;IAC5B,qBAAqB;IACd,IAAI,EAAE,IAAI;IACjB,OAAO,CAAC,SAAS;;IANjB,2DAA2D;IACpD,OAAO,EAAE,sBAAsB;IACtC,uBAAuB;IAChB,MAAM,EAAE,aAAa;IAC5B,qBAAqB;IACd,IAAI,EAAE,IAAI,EACT,SAAS,GAAE,EAAE,GAAG,SAAqB;IAG/C,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAS5C;;;OAGG;IACH,QAAQ;IAIR;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;;;;;OAQG;WACU,MAAM,CACjB,UAAU,EAAE,MAAM,EAClB,WAAW,SAAI,EACf,mBAAmB,SAAI,EACvB,oBAAoB,SAAI,EACxB,MAAM,GAAE,EAAE,GAAG,SAAqB,EAClC,UAAU,GAAE,MAAM,GAAG,SAAqB,EAC1C,UAAU,GAAE,MAAM,GAAG,SAAqB,GACzC,OAAO,CAAC,OAAO,CAAC;IAUnB;;;OAGG;IACH,MAAM,CAAC,KAAK,IAAI,OAAO;IAIvB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;IAOhC;;;;OAIG;IACI,mBAAmB;IAKnB,cAAc,IAAI,WAAW;IAIpC;;;;OAIG;IACI,uBAAuB;IAKvB,YAAY,CAAC,YAAY,EAAE,OAAO,GAAG,EAAE,EAAE;IAKzC,eAAe,CAAC,YAAY,EAAE,OAAO,GAAG,aAAa;IAuB5D;;;OAGG;IACH,QAAQ;;;;;;;;;IAuBR,WAAW,IAAI,WAAW;IAY1B,MAAM,CAAC,KAAK,EAAE,OAAO;CAGtB"}
1
+ {"version":3,"file":"l2_block.d.ts","sourceRoot":"","sources":["../../src/block/l2_block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA2D,MAAM,0BAA0B,CAAC;AACvH,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,qBAAa,OAAO;IAEhB,2DAA2D;IACpD,OAAO,EAAE,sBAAsB;IACtC,uBAAuB;IAChB,MAAM,EAAE,aAAa;IAC5B,qBAAqB;IACd,IAAI,EAAE,IAAI;IACjB,OAAO,CAAC,SAAS;;IANjB,2DAA2D;IACpD,OAAO,EAAE,sBAAsB;IACtC,uBAAuB;IAChB,MAAM,EAAE,aAAa;IAC5B,qBAAqB;IACd,IAAI,EAAE,IAAI,EACT,SAAS,GAAE,EAAE,GAAG,SAAqB;IAG/C,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAS5C;;;OAGG;IACH,QAAQ;IAIR;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;;;;;OAQG;WACU,MAAM,CACjB,UAAU,EAAE,MAAM,EAClB,WAAW,SAAI,EACf,mBAAmB,SAAI,EACvB,oBAAoB,SAAI,EACxB,MAAM,GAAE,EAAE,GAAG,SAAqB,EAClC,UAAU,GAAE,MAAM,GAAG,SAAqB,EAC1C,UAAU,GAAE,MAAM,GAAG,SAAqB,GACzC,OAAO,CAAC,OAAO,CAAC;IAUnB;;;OAGG;IACH,MAAM,CAAC,KAAK,IAAI,OAAO;IAIvB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;IAOhC;;;;OAIG;IACI,mBAAmB;IAKnB,cAAc,IAAI,WAAW;IAIpC;;;;OAIG;IACI,uBAAuB;IAKvB,YAAY,CAAC,YAAY,EAAE,OAAO,GAAG,EAAE,EAAE;IAKzC,eAAe,CAAC,YAAY,EAAE,OAAO,GAAG,aAAa;IAuB5D;;;OAGG;IACH,QAAQ;;;;;;;;;IAuBR,WAAW,IAAI,WAAW;IAY1B,MAAM,CAAC,KAAK,EAAE,OAAO;CAGtB"}
@@ -1,5 +1,4 @@
1
- import { encodeBlockBlobData } from '@aztec/blob-lib/encoding';
2
- import { Fr } from '@aztec/foundation/fields';
1
+ import { encodeBlockBlobData, encodeCheckpointBlobDataFromBlocks } from '@aztec/blob-lib/encoding';
3
2
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
3
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
5
4
  import { z } from 'zod';
@@ -110,10 +109,10 @@ import { L2BlockHeader } from './l2_block_header.js';
110
109
  * This only works when there's one block per checkpoint.
111
110
  * TODO(#17027): Remove this method from L2Block and create a dedicated Checkpoint class.
112
111
  */ getCheckpointBlobFields() {
113
- const blockBlobData = this.toBlobFields(true);
114
- return [
115
- new Fr(blockBlobData.length + 1)
116
- ].concat(blockBlobData);
112
+ const blockBlobData = this.toBlockBlobData(true);
113
+ return encodeCheckpointBlobDataFromBlocks([
114
+ blockBlobData
115
+ ]);
117
116
  }
118
117
  toBlobFields(isFirstBlock) {
119
118
  const blockBlobData = this.toBlockBlobData(isFirstBlock);
@@ -1 +1 @@
1
- {"version":3,"file":"l2_block_code_to_purge.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_code_to_purge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAK/E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,wBAAgB,iBAAiB,CAC/B,IAAI,SAAI,EACR,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAM,EAChD,MAAM,CAAC,EAAE,EAAE,iBAcZ;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,SAAI,GAAG,sBAAsB,CAE3E"}
1
+ {"version":3,"file":"l2_block_code_to_purge.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_code_to_purge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAK/E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,wBAAgB,iBAAiB,CAC/B,IAAI,SAAI,EACR,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAM,EAChD,MAAM,CAAC,EAAE,EAAE,iBAeZ;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,SAAI,GAAG,sBAAsB,CAE3E"}
@@ -17,7 +17,7 @@ export function makeL2BlockHeader(seed = 0, blockNumber, slotNumber, overrides =
17
17
  ...slotNumber ? {
18
18
  slotNumber: new Fr(slotNumber)
19
19
  } : {}
20
- }), new Fr(seed + 0x800), new Fr(seed + 0x900), new Fr(seed + 0xa00));
20
+ }), new Fr(seed + 0x300), new Fr(seed + 0x800), new Fr(seed + 0x900), new Fr(seed + 0xa00));
21
21
  }
22
22
  /**
23
23
  * Makes arbitrary append only tree snapshot.
@@ -30,6 +30,8 @@ export declare class L2BlockHeader {
30
30
  totalManaUsed: Fr;
31
31
  /** Hash of the sponge blob of the block. */
32
32
  spongeBlobHash: Fr;
33
+ /** Hash of the block headers in the checkpoint. */
34
+ blockHeadersHash: Fr;
33
35
  constructor(
34
36
  /** Snapshot of archive before the block is applied. */
35
37
  lastArchive: AppendOnlyTreeSnapshot,
@@ -44,9 +46,11 @@ export declare class L2BlockHeader {
44
46
  /** Total mana used in the block, computed by the root rollup circuit */
45
47
  totalManaUsed: Fr,
46
48
  /** Hash of the sponge blob of the block. */
47
- spongeBlobHash: Fr);
49
+ spongeBlobHash: Fr,
50
+ /** Hash of the block headers in the checkpoint. */
51
+ blockHeadersHash: Fr);
48
52
  static get schema(): ZodFor<L2BlockHeader>;
49
- static getFields(fields: FieldsOf<L2BlockHeader>): readonly [AppendOnlyTreeSnapshot, ContentCommitment, StateReference, GlobalVariables, Fr, Fr, Fr];
53
+ static getFields(fields: FieldsOf<L2BlockHeader>): readonly [AppendOnlyTreeSnapshot, ContentCommitment, StateReference, GlobalVariables, Fr, Fr, Fr, Fr];
50
54
  static from(fields: FieldsOf<L2BlockHeader>): L2BlockHeader;
51
55
  getSlot(): bigint;
52
56
  getBlockNumber(): number;
@@ -93,6 +97,7 @@ export declare class L2BlockHeader {
93
97
  totalFees: bigint;
94
98
  totalManaUsed: bigint;
95
99
  spongeBlobHash: `0x${string}`;
100
+ blockHeadersHash: `0x${string}`;
96
101
  };
97
102
  [inspect.custom](): string;
98
103
  equals(other: this): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"l2_block_header.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,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,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEjG;;;;;;;;GAQG;AACH,qBAAa,aAAa;IAEtB,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uCAAuC;IAChC,iBAAiB,EAAE,iBAAiB;IAC3C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE;IACxB,4CAA4C;IACrC,cAAc,EAAE,EAAE;;IAbzB,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uCAAuC;IAChC,iBAAiB,EAAE,iBAAiB;IAC3C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE;IACxB,4CAA4C;IACrC,cAAc,EAAE,EAAE;IAG3B,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,CAYzC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC;IAYhD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC;IAI3C,OAAO;IAIP,cAAc;IAId,OAAO;IAYP,QAAQ;IAIR,QAAQ,IAAI,EAAE,EAAE;IAIhB,KAAK;IAIL,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAc/C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAc5C,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAM;IAa1D,OAAO,IAAI,OAAO;IAYlB;;;OAGG;IACI,QAAQ;IAIf,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,kBAAkB;IAalB,aAAa;IAWb,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYT,CAAC,OAAO,CAAC,MAAM,CAAC;IAiBT,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CAWpC"}
1
+ {"version":3,"file":"l2_block_header.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,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,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEjG;;;;;;;;GAQG;AACH,qBAAa,aAAa;IAEtB,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uCAAuC;IAChC,iBAAiB,EAAE,iBAAiB;IAC3C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE;IACxB,4CAA4C;IACrC,cAAc,EAAE,EAAE;IACzB,mDAAmD;IAC5C,gBAAgB,EAAE,EAAE;;IAf3B,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uCAAuC;IAChC,iBAAiB,EAAE,iBAAiB;IAC3C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE;IACxB,4CAA4C;IACrC,cAAc,EAAE,EAAE;IACzB,mDAAmD;IAC5C,gBAAgB,EAAE,EAAE;IAG7B,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,CAazC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC;IAahD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC;IAI3C,OAAO;IAIP,cAAc;IAId,OAAO;IAaP,QAAQ;IAIR,QAAQ,IAAI,EAAE,EAAE;IAIhB,KAAK;IAIL,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAe/C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAe5C,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAM;IAc1D,OAAO,IAAI,OAAO;IAalB;;;OAGG;IACI,QAAQ;IAIf,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,kBAAkB;IAclB,aAAa;IAWb,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAaT,CAAC,OAAO,CAAC,MAAM,CAAC;IAkBT,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CAYpC"}
@@ -23,7 +23,8 @@ import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from
23
23
  totalFees;
24
24
  totalManaUsed;
25
25
  spongeBlobHash;
26
- constructor(/** Snapshot of archive before the block is applied. */ lastArchive, /** Hash of the body of an L2 block. */ contentCommitment, /** State reference. */ state, /** Global variables of an L2 block. */ globalVariables, /** Total fees in the block, computed by the root rollup circuit */ totalFees, /** Total mana used in the block, computed by the root rollup circuit */ totalManaUsed, /** Hash of the sponge blob of the block. */ spongeBlobHash){
26
+ blockHeadersHash;
27
+ constructor(/** Snapshot of archive before the block is applied. */ lastArchive, /** Hash of the body of an L2 block. */ contentCommitment, /** State reference. */ state, /** Global variables of an L2 block. */ globalVariables, /** Total fees in the block, computed by the root rollup circuit */ totalFees, /** Total mana used in the block, computed by the root rollup circuit */ totalManaUsed, /** Hash of the sponge blob of the block. */ spongeBlobHash, /** Hash of the block headers in the checkpoint. */ blockHeadersHash){
27
28
  this.lastArchive = lastArchive;
28
29
  this.contentCommitment = contentCommitment;
29
30
  this.state = state;
@@ -31,6 +32,7 @@ import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from
31
32
  this.totalFees = totalFees;
32
33
  this.totalManaUsed = totalManaUsed;
33
34
  this.spongeBlobHash = spongeBlobHash;
35
+ this.blockHeadersHash = blockHeadersHash;
34
36
  }
35
37
  static get schema() {
36
38
  return z.object({
@@ -40,7 +42,8 @@ import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from
40
42
  globalVariables: GlobalVariables.schema,
41
43
  totalFees: schemas.Fr,
42
44
  totalManaUsed: schemas.Fr,
43
- spongeBlobHash: schemas.Fr
45
+ spongeBlobHash: schemas.Fr,
46
+ blockHeadersHash: schemas.Fr
44
47
  }).transform(L2BlockHeader.from);
45
48
  }
46
49
  static getFields(fields) {
@@ -51,7 +54,8 @@ import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from
51
54
  fields.globalVariables,
52
55
  fields.totalFees,
53
56
  fields.totalManaUsed,
54
- fields.spongeBlobHash
57
+ fields.spongeBlobHash,
58
+ fields.blockHeadersHash
55
59
  ];
56
60
  }
57
61
  static from(fields) {
@@ -64,7 +68,7 @@ import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from
64
68
  return this.globalVariables.blockNumber;
65
69
  }
66
70
  getSize() {
67
- return this.lastArchive.getSize() + this.contentCommitment.getSize() + this.state.getSize() + this.globalVariables.getSize() + this.totalFees.size + this.totalManaUsed.size + this.spongeBlobHash.size;
71
+ return this.lastArchive.getSize() + this.contentCommitment.getSize() + this.state.getSize() + this.globalVariables.getSize() + this.totalFees.size + this.totalManaUsed.size + this.spongeBlobHash.size + this.blockHeadersHash.size;
68
72
  }
69
73
  toBuffer() {
70
74
  return serializeToBuffer(...L2BlockHeader.getFields(this));
@@ -77,11 +81,11 @@ import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from
77
81
  }
78
82
  static fromBuffer(buffer) {
79
83
  const reader = BufferReader.asReader(buffer);
80
- return new L2BlockHeader(reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(ContentCommitment), reader.readObject(StateReference), reader.readObject(GlobalVariables), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr));
84
+ return new L2BlockHeader(reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(ContentCommitment), reader.readObject(StateReference), reader.readObject(GlobalVariables), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr));
81
85
  }
82
86
  static fromFields(fields) {
83
87
  const reader = FieldReader.asReader(fields);
84
- return new L2BlockHeader(AppendOnlyTreeSnapshot.fromFields(reader), ContentCommitment.fromFields(reader), StateReference.fromFields(reader), GlobalVariables.fromFields(reader), reader.readField(), reader.readField(), reader.readField());
88
+ return new L2BlockHeader(AppendOnlyTreeSnapshot.fromFields(reader), ContentCommitment.fromFields(reader), StateReference.fromFields(reader), GlobalVariables.fromFields(reader), reader.readField(), reader.readField(), reader.readField(), reader.readField());
85
89
  }
86
90
  static empty(fields = {}) {
87
91
  return L2BlockHeader.from({
@@ -92,11 +96,12 @@ import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from
92
96
  totalFees: Fr.ZERO,
93
97
  totalManaUsed: Fr.ZERO,
94
98
  spongeBlobHash: Fr.ZERO,
99
+ blockHeadersHash: Fr.ZERO,
95
100
  ...fields
96
101
  });
97
102
  }
98
103
  isEmpty() {
99
- return this.lastArchive.isEmpty() && this.contentCommitment.isEmpty() && this.state.isEmpty() && this.globalVariables.isEmpty() && this.totalFees.isZero() && this.totalManaUsed.isZero() && this.spongeBlobHash.isZero();
104
+ return this.lastArchive.isEmpty() && this.contentCommitment.isEmpty() && this.state.isEmpty() && this.globalVariables.isEmpty() && this.totalFees.isZero() && this.totalManaUsed.isZero() && this.spongeBlobHash.isZero() && this.blockHeadersHash.isZero();
100
105
  }
101
106
  /**
102
107
  * Serializes this instance into a string.
@@ -108,7 +113,7 @@ import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from
108
113
  return L2BlockHeader.fromBuffer(hexToBuffer(str));
109
114
  }
110
115
  toCheckpointHeader() {
111
- return new CheckpointHeader(this.lastArchive.root, this.contentCommitment, this.globalVariables.slotNumber, this.globalVariables.timestamp, this.globalVariables.coinbase, this.globalVariables.feeRecipient, this.globalVariables.gasFees, this.totalManaUsed);
116
+ return new CheckpointHeader(this.lastArchive.root, this.blockHeadersHash, this.contentCommitment, this.globalVariables.slotNumber, this.globalVariables.timestamp, this.globalVariables.coinbase, this.globalVariables.feeRecipient, this.globalVariables.gasFees, this.totalManaUsed);
112
117
  }
113
118
  toBlockHeader() {
114
119
  return new BlockHeader(this.lastArchive, this.state, this.spongeBlobHash, this.globalVariables, this.totalFees, this.totalManaUsed);
@@ -121,7 +126,8 @@ import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from
121
126
  globalVariables: this.globalVariables.toInspect(),
122
127
  totalFees: this.totalFees.toBigInt(),
123
128
  totalManaUsed: this.totalManaUsed.toBigInt(),
124
- spongeBlobHash: this.spongeBlobHash.toString()
129
+ spongeBlobHash: this.spongeBlobHash.toString(),
130
+ blockHeadersHash: this.blockHeadersHash.toString()
125
131
  };
126
132
  }
127
133
  [inspect.custom]() {
@@ -138,9 +144,10 @@ import { BlockHeader, ContentCommitment, GlobalVariables, StateReference } from
138
144
  totalFees: ${this.totalFees},
139
145
  totalManaUsed: ${this.totalManaUsed},
140
146
  spongeBlobHash: ${this.spongeBlobHash},
147
+ blockHeadersHash: ${this.blockHeadersHash},
141
148
  }`;
142
149
  }
143
150
  equals(other) {
144
- return this.contentCommitment.equals(other.contentCommitment) && this.state.equals(other.state) && this.globalVariables.equals(other.globalVariables) && this.totalFees.equals(other.totalFees) && this.totalManaUsed.equals(other.totalManaUsed) && this.lastArchive.equals(other.lastArchive) && this.spongeBlobHash.equals(other.spongeBlobHash);
151
+ return this.contentCommitment.equals(other.contentCommitment) && this.state.equals(other.state) && this.globalVariables.equals(other.globalVariables) && this.totalFees.equals(other.totalFees) && this.totalManaUsed.equals(other.totalManaUsed) && this.lastArchive.equals(other.lastArchive) && this.spongeBlobHash.equals(other.spongeBlobHash) && this.blockHeadersHash.equals(other.blockHeadersHash);
145
152
  }
146
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,qBAAa,UAAU;IAEnB,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,UAAU,EAAE;;IAL3B,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,UAAU,EAAE;IAG7B,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAQ5C,QAAQ;IAID,YAAY;CAIpB"}
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,qBAAa,UAAU;IAEnB,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,UAAU,EAAE;;IAL3B,8DAA8D;IACvD,OAAO,EAAE,sBAAsB;IACtC,gCAAgC;IACzB,MAAM,EAAE,gBAAgB;IAC/B,mCAAmC;IAC5B,MAAM,EAAE,UAAU,EAAE;IAG7B,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAQ5C,QAAQ;IAID,YAAY,IAAI,EAAE,EAAE;CAI5B"}
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { encodeCheckpointBlobDataFromBlocks } from '@aztec/blob-lib/encoding';
2
2
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
3
  import { z } from 'zod';
4
4
  import { L2BlockNew } from '../block/l2_block_new.js';
@@ -31,9 +31,7 @@ export class Checkpoint {
31
31
  return serializeToBuffer(this.archive, this.header, this.blocks.length, this.blocks);
32
32
  }
33
33
  toBlobFields() {
34
- const blocksBlobFields = this.blocks.flatMap((block, i)=>block.toBlobFields(i === 0));
35
- return [
36
- new Fr(blocksBlobFields.length + 1)
37
- ].concat(blocksBlobFields);
34
+ const blocks = this.blocks.map((block, i)=>block.toBlockBlobData(i === 0));
35
+ return encodeCheckpointBlobDataFromBlocks(blocks);
38
36
  }
39
37
  }
@@ -23,10 +23,9 @@ export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted' | '
23
23
  * @param constants - The constants for this checkpoint.
24
24
  * @param l1ToL2Messages - The set of L1 to L2 messages to be included in this checkpoint.
25
25
  * @param totalNumBlocks - The total number of blocks expected in the checkpoint (must be at least one).
26
- * @param totalNumBlobFields - The total number of blob fields expected in the checkpoint.
27
26
  * @param headerOfLastBlockInPreviousCheckpoint - The header of the last block in the previous checkpoint.
28
27
  */
29
- startNewCheckpoint(checkpointIndex: number, constants: CheckpointConstantData, l1ToL2Messages: Fr[], totalNumBlocks: number, totalNumBlobFields: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader): Promise<void>;
28
+ startNewCheckpoint(checkpointIndex: number, constants: CheckpointConstantData, l1ToL2Messages: Fr[], totalNumBlocks: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader): Promise<void>;
30
29
  /**
31
30
  * Starts a new block.
32
31
  * @param blockNumber - The block number.
@@ -1 +1 @@
1
- {"version":3,"file":"epoch-prover.d.ts","sourceRoot":"","sources":["../../src/interfaces/epoch-prover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,kDAAkD;AAClD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,eAAe,CAAC;IAC7F;;;;;QAKI;IACJ,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,MAAM,EAC3B,2BAA2B,EAAE,2BAA2B,GACvD,IAAI,CAAC;IAER;;;;;;;;OAQG;IACH,kBAAkB,CAChB,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,sBAAsB,EACjC,cAAc,EAAE,EAAE,EAAE,EACpB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,qCAAqC,EAAE,WAAW,GACjD,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1F;;;OAGG;IACH,0BAA0B,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,yBAAyB;IACzB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEhG,6GAA6G;IAC7G,aAAa,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,sBAAsB,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,iBAAiB,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IAEjH,gCAAgC;IAChC,MAAM,IAAI,IAAI,CAAC;IAEf,+DAA+D;IAC/D,WAAW,IAAI,UAAU,CAAC;IAE1B,mEAAmE;IACnE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB"}
1
+ {"version":3,"file":"epoch-prover.d.ts","sourceRoot":"","sources":["../../src/interfaces/epoch-prover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,kDAAkD;AAClD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,eAAe,CAAC;IAC7F;;;;;QAKI;IACJ,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,MAAM,EAC3B,2BAA2B,EAAE,2BAA2B,GACvD,IAAI,CAAC;IAER;;;;;;;OAOG;IACH,kBAAkB,CAChB,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,sBAAsB,EACjC,cAAc,EAAE,EAAE,EAAE,EACpB,cAAc,EAAE,MAAM,EACtB,qCAAqC,EAAE,WAAW,GACjD,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1F;;;OAGG;IACH,0BAA0B,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,yBAAyB;IACzB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEhG,6GAA6G;IAC7G,aAAa,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,sBAAsB,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,iBAAiB,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IAEjH,gCAAgC;IAChC,MAAM,IAAI,IAAI,CAAC;IAEf,+DAA+D;IAC/D,WAAW,IAAI,UAAU,CAAC;IAE1B,mEAAmE;IACnE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB"}
@@ -12,7 +12,7 @@ import { CallContext } from '../tx/call_context.js';
12
12
  import { TxContext } from '../tx/tx_context.js';
13
13
  import type { UInt64 } from '../types/shared.js';
14
14
  import { ClaimedLengthArray } from './claimed_length_array.js';
15
- import { ReadRequest } from './hints/read_request.js';
15
+ import { ScopedReadRequest } from './hints/read_request.js';
16
16
  import { NoteHash } from './note_hash.js';
17
17
  import { Nullifier } from './nullifier.js';
18
18
  import { CountedPublicCallRequest, PublicCallRequest } from './public_call_request.js';
@@ -47,11 +47,11 @@ export declare class PrivateCircuitPublicInputs {
47
47
  /**
48
48
  * Read requests created by the corresponding function call.
49
49
  */
50
- noteHashReadRequests: ClaimedLengthArray<ReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>;
50
+ noteHashReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>;
51
51
  /**
52
52
  * Nullifier read requests created by the corresponding function call.
53
53
  */
54
- nullifierReadRequests: ClaimedLengthArray<ReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_CALL>;
54
+ nullifierReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_CALL>;
55
55
  /**
56
56
  * Key validation requests and generators created by the corresponding function call.
57
57
  */
@@ -144,11 +144,11 @@ export declare class PrivateCircuitPublicInputs {
144
144
  /**
145
145
  * Read requests created by the corresponding function call.
146
146
  */
147
- noteHashReadRequests: ClaimedLengthArray<ReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,
147
+ noteHashReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,
148
148
  /**
149
149
  * Nullifier read requests created by the corresponding function call.
150
150
  */
151
- nullifierReadRequests: ClaimedLengthArray<ReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,
151
+ nullifierReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,
152
152
  /**
153
153
  * Key validation requests and generators created by the corresponding function call.
154
154
  */
@@ -237,7 +237,7 @@ export declare class PrivateCircuitPublicInputs {
237
237
  * @param fields - Object with fields.
238
238
  * @returns The array.
239
239
  */
240
- static getFields(fields: FieldsOf<PrivateCircuitPublicInputs>): readonly [CallContext, Fr, Fr, Fr, boolean, bigint, ClaimedLengthArray<ReadRequest, 16>, ClaimedLengthArray<ReadRequest, 16>, ClaimedLengthArray<KeyValidationRequestAndGenerator, 16>, ClaimedLengthArray<NoteHash, 16>, ClaimedLengthArray<Nullifier, 16>, ClaimedLengthArray<PrivateCallRequest, 8>, ClaimedLengthArray<CountedPublicCallRequest, 32>, PublicCallRequest, ClaimedLengthArray<CountedL2ToL1Message, 8>, ClaimedLengthArray<PrivateLogData, 16>, ClaimedLengthArray<CountedLogHash, 1>, Fr, Fr, Fr, Fr, BlockHeader, TxContext];
240
+ static getFields(fields: FieldsOf<PrivateCircuitPublicInputs>): readonly [CallContext, Fr, Fr, Fr, boolean, bigint, ClaimedLengthArray<ScopedReadRequest, 16>, ClaimedLengthArray<ScopedReadRequest, 16>, ClaimedLengthArray<KeyValidationRequestAndGenerator, 16>, ClaimedLengthArray<NoteHash, 16>, ClaimedLengthArray<Nullifier, 16>, ClaimedLengthArray<PrivateCallRequest, 8>, ClaimedLengthArray<CountedPublicCallRequest, 32>, PublicCallRequest, ClaimedLengthArray<CountedL2ToL1Message, 8>, ClaimedLengthArray<PrivateLogData, 16>, ClaimedLengthArray<CountedLogHash, 1>, Fr, Fr, Fr, Fr, BlockHeader, TxContext];
241
241
  /**
242
242
  * Serialize this as a buffer.
243
243
  * @returns The buffer.
@@ -1 +1 @@
1
- {"version":3,"file":"private_circuit_public_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_circuit_public_inputs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"private_circuit_public_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_circuit_public_inputs.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { BlockHeader } from '../tx/block_header.js';
11
11
  import { CallContext } from '../tx/call_context.js';
12
12
  import { TxContext } from '../tx/tx_context.js';
13
13
  import { ClaimedLengthArray, ClaimedLengthArrayFromBuffer, ClaimedLengthArrayFromFields } from './claimed_length_array.js';
14
- import { ReadRequest } from './hints/read_request.js';
14
+ import { ScopedReadRequest } from './hints/read_request.js';
15
15
  import { NoteHash } from './note_hash.js';
16
16
  import { Nullifier } from './nullifier.js';
17
17
  import { CountedPublicCallRequest, PublicCallRequest } from './public_call_request.js';
@@ -129,17 +129,17 @@ import { CountedPublicCallRequest, PublicCallRequest } from './public_call_reque
129
129
  * @returns The deserialized instance.
130
130
  */ static fromBuffer(buffer) {
131
131
  const reader = BufferReader.asReader(buffer);
132
- return new PrivateCircuitPublicInputs(reader.readObject(CallContext), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), reader.readBoolean(), reader.readUInt64(), reader.readObject(ClaimedLengthArrayFromBuffer(ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(NoteHash, MAX_NOTE_HASHES_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(Nullifier, MAX_NULLIFIERS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(CountedPublicCallRequest, MAX_ENQUEUED_CALLS_PER_CALL)), reader.readObject(PublicCallRequest), reader.readObject(ClaimedLengthArrayFromBuffer(CountedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(CountedLogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL)), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(BlockHeader), reader.readObject(TxContext));
132
+ return new PrivateCircuitPublicInputs(reader.readObject(CallContext), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), reader.readBoolean(), reader.readUInt64(), reader.readObject(ClaimedLengthArrayFromBuffer(ScopedReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(ScopedReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(NoteHash, MAX_NOTE_HASHES_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(Nullifier, MAX_NULLIFIERS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(CountedPublicCallRequest, MAX_ENQUEUED_CALLS_PER_CALL)), reader.readObject(PublicCallRequest), reader.readObject(ClaimedLengthArrayFromBuffer(CountedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromBuffer(CountedLogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL)), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(BlockHeader), reader.readObject(TxContext));
133
133
  }
134
134
  static fromFields(fields) {
135
135
  const reader = FieldReader.asReader(fields);
136
- return new PrivateCircuitPublicInputs(reader.readObject(CallContext), reader.readField(), reader.readField(), reader.readField(), reader.readBoolean(), reader.readU64(), reader.readObject(ClaimedLengthArrayFromFields(ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(NoteHash, MAX_NOTE_HASHES_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(Nullifier, MAX_NULLIFIERS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(CountedPublicCallRequest, MAX_ENQUEUED_CALLS_PER_CALL)), reader.readObject(PublicCallRequest), reader.readObject(ClaimedLengthArrayFromFields(CountedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(CountedLogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL)), reader.readField(), reader.readField(), reader.readField(), reader.readField(), reader.readObject(BlockHeader), reader.readObject(TxContext));
136
+ return new PrivateCircuitPublicInputs(reader.readObject(CallContext), reader.readField(), reader.readField(), reader.readField(), reader.readBoolean(), reader.readU64(), reader.readObject(ClaimedLengthArrayFromFields(ScopedReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(ScopedReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(NoteHash, MAX_NOTE_HASHES_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(Nullifier, MAX_NULLIFIERS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(CountedPublicCallRequest, MAX_ENQUEUED_CALLS_PER_CALL)), reader.readObject(PublicCallRequest), reader.readObject(ClaimedLengthArrayFromFields(CountedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL)), reader.readObject(ClaimedLengthArrayFromFields(CountedLogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL)), reader.readField(), reader.readField(), reader.readField(), reader.readField(), reader.readObject(BlockHeader), reader.readObject(TxContext));
137
137
  }
138
138
  /**
139
139
  * Create an empty PrivateCircuitPublicInputs.
140
140
  * @returns An empty PrivateCircuitPublicInputs object.
141
141
  */ static empty() {
142
- return new PrivateCircuitPublicInputs(CallContext.empty(), Fr.ZERO, Fr.ZERO, Fr.ZERO, false, 0n, ClaimedLengthArray.empty(ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL), ClaimedLengthArray.empty(ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL), ClaimedLengthArray.empty(KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL), ClaimedLengthArray.empty(NoteHash, MAX_NOTE_HASHES_PER_CALL), ClaimedLengthArray.empty(Nullifier, MAX_NULLIFIERS_PER_CALL), ClaimedLengthArray.empty(PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL), ClaimedLengthArray.empty(CountedPublicCallRequest, MAX_ENQUEUED_CALLS_PER_CALL), PublicCallRequest.empty(), ClaimedLengthArray.empty(CountedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL), ClaimedLengthArray.empty(PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL), ClaimedLengthArray.empty(CountedLogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL), Fr.ZERO, Fr.ZERO, Fr.ZERO, Fr.ZERO, BlockHeader.empty(), TxContext.empty());
142
+ return new PrivateCircuitPublicInputs(CallContext.empty(), Fr.ZERO, Fr.ZERO, Fr.ZERO, false, 0n, ClaimedLengthArray.empty(ScopedReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL), ClaimedLengthArray.empty(ScopedReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL), ClaimedLengthArray.empty(KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL), ClaimedLengthArray.empty(NoteHash, MAX_NOTE_HASHES_PER_CALL), ClaimedLengthArray.empty(Nullifier, MAX_NULLIFIERS_PER_CALL), ClaimedLengthArray.empty(PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL), ClaimedLengthArray.empty(CountedPublicCallRequest, MAX_ENQUEUED_CALLS_PER_CALL), PublicCallRequest.empty(), ClaimedLengthArray.empty(CountedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL), ClaimedLengthArray.empty(PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL), ClaimedLengthArray.empty(CountedLogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL), Fr.ZERO, Fr.ZERO, Fr.ZERO, Fr.ZERO, BlockHeader.empty(), TxContext.empty());
143
143
  }
144
144
  isEmpty() {
145
145
  return this.callContext.isEmpty() && this.argsHash.isZero() && this.returnsHash.isZero() && this.minRevertibleSideEffectCounter.isZero() && !this.isFeePayer && !this.includeByTimestamp && this.noteHashReadRequests.isEmpty() && this.nullifierReadRequests.isEmpty() && this.keyValidationRequestsAndGenerators.isEmpty() && this.noteHashes.isEmpty() && this.nullifiers.isEmpty() && this.privateCallRequests.isEmpty() && this.publicCallRequests.isEmpty() && this.publicTeardownCallRequest.isEmpty() && this.l2ToL1Msgs.isEmpty() && this.privateLogs.isEmpty() && this.contractClassLogsHashes.isEmpty() && this.startSideEffectCounter.isZero() && this.endSideEffectCounter.isZero() && this.expectedNonRevertibleSideEffectCounter.isZero() && this.expectedRevertibleSideEffectCounter.isZero() && this.anchorBlockHeader.isEmpty() && this.txContext.isEmpty();
@@ -1,4 +1,4 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
2
  /** Computes the inHash for a block's ContentCommitment given its l1 to l2 messages. */
3
- export declare function computeInHashFromL1ToL2Messages(unpaddedL1ToL2Messages: Fr[]): Promise<Fr>;
3
+ export declare function computeInHashFromL1ToL2Messages(unpaddedL1ToL2Messages: Fr[]): Fr;
4
4
  //# sourceMappingURL=in_hash.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in_hash.d.ts","sourceRoot":"","sources":["../../src/messaging/in_hash.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,uFAAuF;AACvF,wBAAsB,+BAA+B,CAAC,sBAAsB,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAO/F"}
1
+ {"version":3,"file":"in_hash.d.ts","sourceRoot":"","sources":["../../src/messaging/in_hash.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,uFAAuF;AACvF,wBAAgB,+BAA+B,CAAC,sBAAsB,EAAE,EAAE,EAAE,GAAG,EAAE,CAGhF"}
@@ -1,15 +1,8 @@
1
1
  import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
2
2
  import { padArrayEnd } from '@aztec/foundation/collection';
3
- import { sha256Trunc } from '@aztec/foundation/crypto';
4
3
  import { Fr } from '@aztec/foundation/fields';
5
- import { MerkleTreeCalculator } from '@aztec/foundation/trees';
6
- /** Computes the inHash for a block's ContentCommitment given its l1 to l2 messages. */ export async function computeInHashFromL1ToL2Messages(unpaddedL1ToL2Messages) {
4
+ import { computeBalancedShaRoot } from '@aztec/foundation/trees';
5
+ /** Computes the inHash for a block's ContentCommitment given its l1 to l2 messages. */ export function computeInHashFromL1ToL2Messages(unpaddedL1ToL2Messages) {
7
6
  const l1ToL2Messages = padArrayEnd(unpaddedL1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
8
- const hasher = (left, right)=>Promise.resolve(sha256Trunc(Buffer.concat([
9
- left,
10
- right
11
- ])));
12
- const parityHeight = Math.ceil(Math.log2(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
13
- const parityCalculator = await MerkleTreeCalculator.create(parityHeight, Fr.ZERO.toBuffer(), hasher);
14
- return new Fr(await parityCalculator.computeTreeRoot(l1ToL2Messages.map((msg)=>msg.toBuffer())));
7
+ return new Fr(computeBalancedShaRoot(l1ToL2Messages.map((msg)=>msg.toBuffer())));
15
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"l2_to_l1_membership.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_membership.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAmE,MAAM,yBAAyB,CAAC;AAEvH,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;CACvE;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,EAAE,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAsB,8BAA8B,CAClD,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,EAAE,GACV,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAO9C;AAID,wBAAgB,mDAAmD,CACjE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EACzB,OAAO,EAAE,EAAE,GACV,uBAAuB,CA4DzB;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,aAAa,CAAC,GAC5E,MAAM,CAER"}
1
+ {"version":3,"file":"l2_to_l1_membership.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_membership.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,WAAW,EAA4D,MAAM,yBAAyB,CAAC;AAEhH,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;CACvE;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,EAAE,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAsB,8BAA8B,CAClD,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,EAAE,GACV,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAO9C;AAID,wBAAgB,mDAAmD,CACjE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EACzB,OAAO,EAAE,EAAE,GACV,uBAAuB,CA4DzB;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,aAAa,CAAC,GAC5E,MAAM,CAER"}
@@ -1,5 +1,5 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
- import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedMerkleTreeRoot } from '@aztec/foundation/trees';
2
+ import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot } from '@aztec/foundation/trees';
3
3
  export async function computeL2ToL1MembershipWitness(messageRetriever, l2BlockNumber, message) {
4
4
  const messagesForAllTxs = await messageRetriever.getL2ToL1Messages(l2BlockNumber);
5
5
  if (!messagesForAllTxs) {
@@ -33,7 +33,7 @@ export function computeL2ToL1MembershipWitnessFromMessagesForAllTxs(messagesForA
33
33
  if (i === txIndex) {
34
34
  return Fr.fromBuffer(txOutHash);
35
35
  }
36
- const root = computeUnbalancedMerkleTreeRoot(messages.map((msg)=>msg.toBuffer()));
36
+ const root = computeUnbalancedShaRoot(messages.map((msg)=>msg.toBuffer()));
37
37
  return Fr.fromBuffer(root);
38
38
  });
39
39
  // Construct the top tree.
@@ -1,12 +1,12 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
- import { UnbalancedMerkleTreeCalculator, computeUnbalancedMerkleTreeRoot } from '@aztec/foundation/trees';
2
+ import { UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot } from '@aztec/foundation/trees';
3
3
  export function computeTxOutHash(messages) {
4
4
  if (!messages.length) {
5
5
  return Fr.ZERO;
6
6
  }
7
7
  // Tx out hash is the root of the unbalanced merkle tree of all the messages.
8
8
  // Zero hashes (which should not happen) are not compressed.
9
- return Fr.fromBuffer(computeUnbalancedMerkleTreeRoot(messages.map((msg)=>msg.toBuffer())));
9
+ return Fr.fromBuffer(computeUnbalancedShaRoot(messages.map((msg)=>msg.toBuffer())));
10
10
  }
11
11
  export function computeBlockOutHash(messagesPerBlock) {
12
12
  const txOutHashes = messagesPerBlock.map((messages)=>computeTxOutHash(messages));
@@ -57,6 +57,7 @@ export declare class BlockAttestation extends Gossipable {
57
57
  payload: {
58
58
  header: {
59
59
  lastArchive: `0x${string}`;
60
+ blockHeadersHash: `0x${string}`;
60
61
  contentCommitment: {
61
62
  blobsHash: `0x${string}`;
62
63
  inHash: `0x${string}`;
@@ -1 +1 @@
1
- {"version":3,"file":"block_attestation.d.ts","sourceRoot":"","sources":["../../src/p2p/block_attestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAI9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,oBAAqB,SAAQ,QAAQ;gBACpC,IAAI,EAAE,MAAM;CAGzB;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAO5C,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;aAC1B,SAAS,EAAE,SAAS;IAEpC,4CAA4C;aAC5B,iBAAiB,EAAE,SAAS;IAb9C,OAAgB,QAAQ,YAA+B;IAEvD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,QAAQ,CAAyB;;IAGvC,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;IAC1B,SAAS,EAAE,SAAS;IAEpC,4CAA4C;IAC5B,iBAAiB,EAAE,SAAS;IAK9C,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAQ5C;IAEQ,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI1D,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,EAAE,CAEnB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,GAAG,SAAS;IAWnC;;;OAGG;IACH,WAAW,IAAI,UAAU,GAAG,SAAS;IAWrC,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAS/D,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC,MAAM,CAAC,MAAM,IAAI,gBAAgB;IAIjC,OAAO,IAAI,MAAM;IAIjB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOV"}
1
+ {"version":3,"file":"block_attestation.d.ts","sourceRoot":"","sources":["../../src/p2p/block_attestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAI9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,oBAAqB,SAAQ,QAAQ;gBACpC,IAAI,EAAE,MAAM;CAGzB;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAO5C,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;aAC1B,SAAS,EAAE,SAAS;IAEpC,4CAA4C;aAC5B,iBAAiB,EAAE,SAAS;IAb9C,OAAgB,QAAQ,YAA+B;IAEvD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,QAAQ,CAAyB;;IAGvC,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;IAC1B,SAAS,EAAE,SAAS;IAEpC,4CAA4C;IAC5B,iBAAiB,EAAE,SAAS;IAK9C,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAQ5C;IAEQ,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI1D,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,EAAE,CAEnB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,GAAG,SAAS;IAWnC;;;OAGG;IACH,WAAW,IAAI,UAAU,GAAG,SAAS;IAWrC,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAS/D,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC,MAAM,CAAC,MAAM,IAAI,gBAAgB;IAIjC,OAAO,IAAI,MAAM;IAIjB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOV"}
@@ -219,6 +219,7 @@ export declare class ConsensusPayload implements Signable {
219
219
  toInspect(): {
220
220
  header: {
221
221
  lastArchive: `0x${string}`;
222
+ blockHeadersHash: `0x${string}`;
222
223
  contentCommitment: {
223
224
  blobsHash: `0x${string}`;
224
225
  inHash: `0x${string}`;
@@ -1 +1 @@
1
- {"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,qBAAa,gBAAiB,YAAW,QAAQ;IAI7C,6DAA6D;aAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;aAChC,OAAO,EAAE,EAAE;IAC3B,mDAAmD;aACnC,cAAc,EAAE,cAAc;IARhD,OAAO,CAAC,IAAI,CAAqB;;IAG/B,6DAA6D;IAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;IAChC,OAAO,EAAE,EAAE;IAC3B,mDAAmD;IACnC,cAAc,EAAE,cAAc;IAGhD,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAInD,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM;IAsBnE,QAAQ,IAAI,MAAM;IAIX,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAQ/C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAU/D,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;IAIvE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAIlD,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC,MAAM,CAAC,MAAM,IAAI,gBAAgB;IAIjC;;;OAGG;IACH,OAAO,IAAI,MAAM;IASjB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;IAQT,QAAQ;CAGT"}
1
+ {"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,qBAAa,gBAAiB,YAAW,QAAQ;IAI7C,6DAA6D;aAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;aAChC,OAAO,EAAE,EAAE;IAC3B,mDAAmD;aACnC,cAAc,EAAE,cAAc;IARhD,OAAO,CAAC,IAAI,CAAqB;;IAG/B,6DAA6D;IAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;IAChC,OAAO,EAAE,EAAE;IAC3B,mDAAmD;IACnC,cAAc,EAAE,cAAc;IAGhD,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAInD,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM;IAsBnE,QAAQ,IAAI,MAAM;IAIX,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAQ/C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAU/D,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;IAIvE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAIlD,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC,MAAM,CAAC,MAAM,IAAI,gBAAgB;IAIjC;;;OAGG;IACH,OAAO,IAAI,MAAM;IASjB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQT,QAAQ;CAGT"}
@@ -0,0 +1,4 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import type { BlockHeader } from '../tx/block_header.js';
3
+ export declare function computeBlockHeadersHash(blockHeaders: BlockHeader[]): Promise<Fr>;
4
+ //# sourceMappingURL=block_headers_hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block_headers_hash.d.ts","sourceRoot":"","sources":["../../src/rollup/block_headers_hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,wBAAsB,uBAAuB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAMtF"}
@@ -0,0 +1,9 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import { computeUnbalancedPoseidonRoot } from '@aztec/foundation/trees';
3
+ export async function computeBlockHeadersHash(blockHeaders) {
4
+ const blockHeaderHashes = await Promise.all(blockHeaders.map((header)=>header.hash()));
5
+ // Must match the implementation in merge_block_rollups.nr, with the **wonky** rollup structure
6
+ // (see validate_consecutive_block_rollups.nr > assert_rollups_filled_greedily.nr).
7
+ const blockHeadersHash = await computeUnbalancedPoseidonRoot(blockHeaderHashes.map((hash)=>hash.toBuffer()));
8
+ return Fr.fromBuffer(blockHeadersHash);
9
+ }
@@ -45,6 +45,12 @@ export declare class BlockRollupPublicInputs {
45
45
  * Timestamp of the last block in this block range.
46
46
  */
47
47
  endTimestamp: UInt64;
48
+ /**
49
+ * Hash of the headers of all blocks in this block range. It will be combined with the `blockHeadersHash` from
50
+ * other blocks in the same checkpoint to form a wonky tree. The root of that tree becomes the final hash stored in
51
+ * the checkpoint header, enabling validation of the blocks included in a checkpoint given their headers.
52
+ */
53
+ blockHeadersHash: Fr;
48
54
  /**
49
55
  * SHA256 hash of l1 to l2 messages.
50
56
  */
@@ -98,6 +104,12 @@ export declare class BlockRollupPublicInputs {
98
104
  * Timestamp of the last block in this block range.
99
105
  */
100
106
  endTimestamp: UInt64,
107
+ /**
108
+ * Hash of the headers of all blocks in this block range. It will be combined with the `blockHeadersHash` from
109
+ * other blocks in the same checkpoint to form a wonky tree. The root of that tree becomes the final hash stored in
110
+ * the checkpoint header, enabling validation of the blocks included in a checkpoint given their headers.
111
+ */
112
+ blockHeadersHash: Fr,
101
113
  /**
102
114
  * SHA256 hash of l1 to l2 messages.
103
115
  */
@@ -1 +1 @@
1
- {"version":3,"file":"block_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/block_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAGhG,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,qBAAa,uBAAuB;IAEhC;;OAEG;IACI,SAAS,EAAE,sBAAsB;IACxC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;OAEG;IACI,UAAU,EAAE,cAAc;IACjC;;OAEG;IACI,QAAQ,EAAE,cAAc;IAC/B;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;OAEG;IACI,cAAc,EAAE,MAAM;IAC7B;;OAEG;IACI,YAAY,EAAE,MAAM;IAC3B;;OAEG;IACI,MAAM,EAAE,EAAE;IACjB;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE;;IAnD9B;;OAEG;IACI,SAAS,EAAE,sBAAsB;IACxC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;OAEG;IACI,UAAU,EAAE,cAAc;IACjC;;OAEG;IACI,QAAQ,EAAE,cAAc;IAC/B;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;OAEG;IACI,cAAc,EAAE,MAAM;IAC7B;;OAEG;IACI,YAAY,EAAE,MAAM;IAC3B;;OAEG;IACI,MAAM,EAAE,EAAE;IACjB;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE;IAGhC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,uBAAuB;IAmBzE,QAAQ;IAkBR,QAAQ;IAIR,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,MAAM;IAIN,MAAM,KAAK,MAAM,gEAEhB;CACF"}
1
+ {"version":3,"file":"block_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/block_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAGhG,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,qBAAa,uBAAuB;IAEhC;;OAEG;IACI,SAAS,EAAE,sBAAsB;IACxC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;OAEG;IACI,UAAU,EAAE,cAAc;IACjC;;OAEG;IACI,QAAQ,EAAE,cAAc;IAC/B;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;OAEG;IACI,cAAc,EAAE,MAAM;IAC7B;;OAEG;IACI,YAAY,EAAE,MAAM;IAC3B;;;;OAIG;IACI,gBAAgB,EAAE,EAAE;IAC3B;;OAEG;IACI,MAAM,EAAE,EAAE;IACjB;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE;;IAzD9B;;OAEG;IACI,SAAS,EAAE,sBAAsB;IACxC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;OAEG;IACI,UAAU,EAAE,cAAc;IACjC;;OAEG;IACI,QAAQ,EAAE,cAAc;IAC/B;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;OAEG;IACI,cAAc,EAAE,MAAM;IAC7B;;OAEG;IACI,YAAY,EAAE,MAAM;IAC3B;;;;OAIG;IACI,gBAAgB,EAAE,EAAE;IAC3B;;OAEG;IACI,MAAM,EAAE,EAAE;IACjB;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE;IAGhC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,uBAAuB;IAoBzE,QAAQ;IAmBR,QAAQ;IAIR,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,MAAM;IAIN,MAAM,KAAK,MAAM,gEAEhB;CACF"}
@@ -18,6 +18,7 @@ import { CheckpointConstantData } from './checkpoint_constant_data.js';
18
18
  endSpongeBlob;
19
19
  startTimestamp;
20
20
  endTimestamp;
21
+ blockHeadersHash;
21
22
  inHash;
22
23
  outHash;
23
24
  accumulatedFees;
@@ -41,6 +42,10 @@ import { CheckpointConstantData } from './checkpoint_constant_data.js';
41
42
  */ startTimestamp, /**
42
43
  * Timestamp of the last block in this block range.
43
44
  */ endTimestamp, /**
45
+ * Hash of the headers of all blocks in this block range. It will be combined with the `blockHeadersHash` from
46
+ * other blocks in the same checkpoint to form a wonky tree. The root of that tree becomes the final hash stored in
47
+ * the checkpoint header, enabling validation of the blocks included in a checkpoint given their headers.
48
+ */ blockHeadersHash, /**
44
49
  * SHA256 hash of l1 to l2 messages.
45
50
  */ inHash, /**
46
51
  * SHA256 hash of L2 to L1 messages created in this block range.
@@ -58,6 +63,7 @@ import { CheckpointConstantData } from './checkpoint_constant_data.js';
58
63
  this.endSpongeBlob = endSpongeBlob;
59
64
  this.startTimestamp = startTimestamp;
60
65
  this.endTimestamp = endTimestamp;
66
+ this.blockHeadersHash = blockHeadersHash;
61
67
  this.inHash = inHash;
62
68
  this.outHash = outHash;
63
69
  this.accumulatedFees = accumulatedFees;
@@ -65,10 +71,10 @@ import { CheckpointConstantData } from './checkpoint_constant_data.js';
65
71
  }
66
72
  static fromBuffer(buffer) {
67
73
  const reader = BufferReader.asReader(buffer);
68
- return new BlockRollupPublicInputs(reader.readObject(CheckpointConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(StateReference), reader.readObject(StateReference), reader.readObject(SpongeBlob), reader.readObject(SpongeBlob), reader.readUInt64(), reader.readUInt64(), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
74
+ return new BlockRollupPublicInputs(reader.readObject(CheckpointConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(StateReference), reader.readObject(StateReference), reader.readObject(SpongeBlob), reader.readObject(SpongeBlob), reader.readUInt64(), reader.readUInt64(), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
69
75
  }
70
76
  toBuffer() {
71
- return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.startState, this.endState, this.startSpongeBlob, this.endSpongeBlob, bigintToUInt64BE(this.startTimestamp), bigintToUInt64BE(this.endTimestamp), this.inHash, this.outHash, this.accumulatedFees, this.accumulatedManaUsed);
77
+ return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.startState, this.endState, this.startSpongeBlob, this.endSpongeBlob, bigintToUInt64BE(this.startTimestamp), bigintToUInt64BE(this.endTimestamp), this.blockHeadersHash, this.inHash, this.outHash, this.accumulatedFees, this.accumulatedManaUsed);
72
78
  }
73
79
  toString() {
74
80
  return bufferToHex(this.toBuffer());