@aztec/stdlib 3.0.0-nightly.20251120 → 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.
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +5 -6
- package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
- package/dest/block/l2_block_code_to_purge.js +1 -1
- package/dest/block/l2_block_header.d.ts +7 -2
- package/dest/block/l2_block_header.d.ts.map +1 -1
- package/dest/block/l2_block_header.js +17 -10
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +3 -5
- package/dest/interfaces/epoch-prover.d.ts +1 -2
- package/dest/interfaces/epoch-prover.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +6 -6
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +4 -4
- package/dest/messaging/in_hash.d.ts +1 -1
- package/dest/messaging/in_hash.d.ts.map +1 -1
- package/dest/messaging/in_hash.js +3 -10
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +2 -2
- package/dest/messaging/out_hash.js +2 -2
- package/dest/p2p/block_attestation.d.ts +1 -0
- package/dest/p2p/block_attestation.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.d.ts +1 -0
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.d.ts +4 -0
- package/dest/rollup/block_headers_hash.d.ts.map +1 -0
- package/dest/rollup/block_headers_hash.js +9 -0
- package/dest/rollup/block_rollup_public_inputs.d.ts +12 -0
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +8 -2
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +1 -12
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_root_rollup_private_inputs.js +1 -9
- package/dest/rollup/checkpoint_header.d.ts +6 -1
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +15 -6
- package/dest/rollup/index.d.ts +1 -0
- package/dest/rollup/index.d.ts.map +1 -1
- package/dest/rollup/index.js +1 -0
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +8 -7
- package/dest/tx/tx_effect.d.ts +0 -4
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +1 -4
- package/package.json +8 -8
- package/src/block/l2_block.ts +3 -3
- package/src/block/l2_block_code_to_purge.ts +1 -0
- package/src/block/l2_block_header.ts +16 -3
- package/src/checkpoint/checkpoint.ts +4 -3
- package/src/interfaces/epoch-prover.ts +0 -2
- package/src/kernel/private_circuit_public_inputs.ts +9 -9
- package/src/messaging/in_hash.ts +3 -8
- package/src/messaging/l2_to_l1_membership.ts +2 -2
- package/src/messaging/out_hash.ts +2 -2
- package/src/rollup/block_headers_hash.ts +12 -0
- package/src/rollup/block_rollup_public_inputs.ts +8 -0
- package/src/rollup/block_root_rollup_private_inputs.ts +0 -9
- package/src/rollup/checkpoint_header.ts +14 -0
- package/src/rollup/index.ts +1 -0
- package/src/tests/factories.ts +17 -6
- 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,
|
|
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"}
|
package/dest/block/l2_block.js
CHANGED
|
@@ -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.
|
|
114
|
-
return [
|
|
115
|
-
|
|
116
|
-
]
|
|
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,
|
|
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;;
|
|
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
|
-
|
|
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":"
|
|
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 {
|
|
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
|
|
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,
|
|
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
|
|
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 {
|
|
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<
|
|
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<
|
|
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<
|
|
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<
|
|
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<
|
|
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":"AAAA,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,oCAAoC,EACpC,0BAA0B,EAC1B,wBAAwB,EACxB,oCAAoC,EACpC,uBAAuB,EACvB,oCAAoC,EACpC,sCAAsC,EACtC,yBAAyB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EACL,YAAY,EACZ,WAAW,EAIZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,gCAAgC,EAAE,MAAM,yDAAyD,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,kBAAkB,EAGnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,
|
|
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 {
|
|
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(
|
|
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(
|
|
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(
|
|
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[]):
|
|
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":"
|
|
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 {
|
|
6
|
-
/** Computes the inHash for a block's ContentCommitment given its l1 to l2 messages. */ export
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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 =
|
|
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,
|
|
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(
|
|
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));
|
|
@@ -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
|
|
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 +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
|
|
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 @@
|
|
|
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;;
|
|
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());
|