@aztec/stdlib 2.1.0-rc.6 → 2.1.0-rc.7
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/published_l2_block.d.ts +5 -1
- package/dest/block/published_l2_block.d.ts.map +1 -1
- package/dest/block/published_l2_block.js +5 -2
- package/dest/interfaces/aztec-node-admin.d.ts +3 -0
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/configs.d.ts +5 -0
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +2 -1
- package/dest/p2p/block_attestation.d.ts +35 -0
- package/dest/p2p/block_attestation.d.ts.map +1 -1
- package/dest/p2p/block_attestation.js +17 -0
- package/package.json +8 -8
- package/src/block/published_l2_block.ts +10 -4
- package/src/interfaces/configs.ts +3 -0
- package/src/p2p/block_attestation.ts +20 -0
|
@@ -141,5 +141,9 @@ export declare class PublishedL2Block {
|
|
|
141
141
|
static fromFields(fields: FieldsOf<PublishedL2Block>): PublishedL2Block;
|
|
142
142
|
toBuffer(): Buffer;
|
|
143
143
|
}
|
|
144
|
-
|
|
144
|
+
/**
|
|
145
|
+
* Extracts block attestations from a published L2 block.
|
|
146
|
+
* Returns undefined for attestations with empty signatures, preserving array indices.
|
|
147
|
+
*/
|
|
148
|
+
export declare function getAttestationsFromPublishedL2Block(block: Pick<PublishedL2Block, 'attestations' | 'block'>): (BlockAttestation | undefined)[];
|
|
145
149
|
//# sourceMappingURL=published_l2_block.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"published_l2_block.d.ts","sourceRoot":"","sources":["../../src/block/published_l2_block.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,qBAAa,eAAe;IAEjB,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;gBAFjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM;IAG1B,MAAM,KAAK,MAAM;;;;;;;;;;;;OAMhB;IAED,MAAM,CAAC,MAAM;IAQb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC;CAGpD;AAED,qBAAa,gBAAgB;IAElB,KAAK,EAAE,OAAO;IACd,EAAE,EAAE,eAAe;IACnB,YAAY,EAAE,oBAAoB,EAAE;gBAFpC,KAAK,EAAE,OAAO,EACd,EAAE,EAAE,eAAe,EACnB,YAAY,EAAE,oBAAoB,EAAE;IAG7C,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAU1E,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAI7C,QAAQ,IAAI,MAAM;CAU1B;AAED,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,GAAG,OAAO,CAAC,GACtD,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"published_l2_block.d.ts","sourceRoot":"","sources":["../../src/block/published_l2_block.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,qBAAa,eAAe;IAEjB,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;gBAFjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM;IAG1B,MAAM,KAAK,MAAM;;;;;;;;;;;;OAMhB;IAED,MAAM,CAAC,MAAM;IAQb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC;CAGpD;AAED,qBAAa,gBAAgB;IAElB,KAAK,EAAE,OAAO;IACd,EAAE,EAAE,eAAe;IACnB,YAAY,EAAE,oBAAoB,EAAE;gBAFpC,KAAK,EAAE,OAAO,EACd,EAAE,EAAE,eAAe,EACnB,YAAY,EAAE,oBAAoB,EAAE;IAG7C,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAU1E,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAI7C,QAAQ,IAAI,MAAM;CAU1B;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,GAAG,OAAO,CAAC,GACtD,CAAC,gBAAgB,GAAG,SAAS,CAAC,EAAE,CAOlC"}
|
|
@@ -63,7 +63,10 @@ export class PublishedL2Block {
|
|
|
63
63
|
return serializeToBuffer(this.block, this.l1.blockNumber, this.l1.blockHash, this.l1.timestamp, this.attestations.length, this.attestations);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Extracts block attestations from a published L2 block.
|
|
68
|
+
* Returns undefined for attestations with empty signatures, preserving array indices.
|
|
69
|
+
*/ export function getAttestationsFromPublishedL2Block(block) {
|
|
67
70
|
const payload = ConsensusPayload.fromBlock(block.block);
|
|
68
|
-
return block.attestations.
|
|
71
|
+
return block.attestations.map((attestation)=>attestation.signature.isEmpty() ? undefined : new BlockAttestation(block.block.number, payload, attestation.signature));
|
|
69
72
|
}
|
|
@@ -95,6 +95,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
95
95
|
skipCollectingAttestations: z.ZodOptional<z.ZodBoolean>;
|
|
96
96
|
secondsBeforeInvalidatingBlockAsCommitteeMember: z.ZodNumber;
|
|
97
97
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.ZodNumber;
|
|
98
|
+
injectFakeAttestation: z.ZodOptional<z.ZodBoolean>;
|
|
98
99
|
} & {
|
|
99
100
|
nodeUrl: z.ZodOptional<z.ZodString>;
|
|
100
101
|
realProofs: z.ZodBoolean;
|
|
@@ -199,6 +200,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
199
200
|
fakeProcessingDelayPerTxMs?: number | undefined;
|
|
200
201
|
attestationPropagationTime?: number | undefined;
|
|
201
202
|
skipCollectingAttestations?: boolean | undefined;
|
|
203
|
+
injectFakeAttestation?: boolean | undefined;
|
|
202
204
|
proverId?: import("@aztec/foundation/schemas").EthAddress | undefined;
|
|
203
205
|
archiverPollingIntervalMS?: number | undefined;
|
|
204
206
|
archiverBatchSize?: number | undefined;
|
|
@@ -267,6 +269,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
267
269
|
fakeProcessingDelayPerTxMs?: number | undefined;
|
|
268
270
|
attestationPropagationTime?: number | undefined;
|
|
269
271
|
skipCollectingAttestations?: boolean | undefined;
|
|
272
|
+
injectFakeAttestation?: boolean | undefined;
|
|
270
273
|
proverId?: any;
|
|
271
274
|
archiverPollingIntervalMS?: string | number | bigint | undefined;
|
|
272
275
|
archiverBatchSize?: string | number | bigint | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aztec-node-admin.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node-admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAE1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,KAAK,OAAO,EAAiB,KAAK,iBAAiB,EAA2B,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,KAAK,sBAAsB,EAAgC,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,cAAc,CAAC;AACvE,OAAO,EAA+B,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;;OAIG;IACH,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE,+CAA+C;IAC/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,gDAAgD;IAChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,2EAA2E;IAC3E,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEjD,2DAA2D;IAC3D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACzE;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAC1D,eAAe,GACf,YAAY,GACZ,aAAa,GACb,IAAI,CAAC,sBAAsB,EAAE,2BAA2B,GAAG,+BAA+B,GAAG,mBAAmB,CAAC,GAAG;IAClH,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEJ,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"aztec-node-admin.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node-admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAE1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,KAAK,OAAO,EAAiB,KAAK,iBAAiB,EAA2B,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,KAAK,sBAAsB,EAAgC,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,cAAc,CAAC;AACvE,OAAO,EAA+B,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;;OAIG;IACH,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE,+CAA+C;IAC/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,gDAAgD;IAChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,2EAA2E;IAC3E,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEjD,2DAA2D;IAC3D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACzE;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAC1D,eAAe,GACf,YAAY,GACZ,aAAa,GACb,IAAI,CAAC,sBAAsB,EAAE,2BAA2B,GAAG,+BAA+B,GAAG,mBAAmB,CAAC,GAAG;IAClH,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEJ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUU,CAAC;AAElD,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAYhE,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,OAAO,CAAC,kBAAkB,CAAM,EAC1C,KAAK,sBAAe,GACnB,cAAc,CAMhB"}
|
|
@@ -49,6 +49,8 @@ export interface SequencerConfig {
|
|
|
49
49
|
skipCollectingAttestations?: boolean;
|
|
50
50
|
/** Do not invalidate the previous block if invalid when we are the proposer (for testing only) */
|
|
51
51
|
skipInvalidateBlockAsProposer?: boolean;
|
|
52
|
+
/** Inject a fake attestation (for testing only) */
|
|
53
|
+
injectFakeAttestation?: boolean;
|
|
52
54
|
}
|
|
53
55
|
export declare const SequencerConfigSchema: z.ZodObject<{
|
|
54
56
|
transactionPollingIntervalMS: z.ZodOptional<z.ZodNumber>;
|
|
@@ -101,6 +103,7 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
101
103
|
skipCollectingAttestations: z.ZodOptional<z.ZodBoolean>;
|
|
102
104
|
secondsBeforeInvalidatingBlockAsCommitteeMember: z.ZodNumber;
|
|
103
105
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.ZodNumber;
|
|
106
|
+
injectFakeAttestation: z.ZodOptional<z.ZodBoolean>;
|
|
104
107
|
}, "strip", z.ZodTypeAny, {
|
|
105
108
|
secondsBeforeInvalidatingBlockAsCommitteeMember: number;
|
|
106
109
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: number;
|
|
@@ -132,6 +135,7 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
132
135
|
fakeProcessingDelayPerTxMs?: number | undefined;
|
|
133
136
|
attestationPropagationTime?: number | undefined;
|
|
134
137
|
skipCollectingAttestations?: boolean | undefined;
|
|
138
|
+
injectFakeAttestation?: boolean | undefined;
|
|
135
139
|
}, {
|
|
136
140
|
secondsBeforeInvalidatingBlockAsCommitteeMember: number;
|
|
137
141
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: number;
|
|
@@ -163,5 +167,6 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
163
167
|
fakeProcessingDelayPerTxMs?: number | undefined;
|
|
164
168
|
attestationPropagationTime?: number | undefined;
|
|
165
169
|
skipCollectingAttestations?: boolean | undefined;
|
|
170
|
+
injectFakeAttestation?: boolean | undefined;
|
|
166
171
|
}>;
|
|
167
172
|
//# sourceMappingURL=configs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../src/interfaces/configs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1C,qBAAqB;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,yBAAyB,CAAC,EAAE,UAAU,CAAC;IACvC,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gFAAgF;IAChF,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,0EAA0E;IAC1E,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,wGAAwG;IACxG,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,oGAAoG;IACpG,+CAA+C,CAAC,EAAE,MAAM,CAAC;IACzD,wGAAwG;IACxG,kDAAkD,CAAC,EAAE,MAAM,CAAC;IAC5D,sDAAsD;IACtD,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,kGAAkG;IAClG,6BAA6B,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../src/interfaces/configs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1C,qBAAqB;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,yBAAyB,CAAC,EAAE,UAAU,CAAC;IACvC,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gFAAgF;IAChF,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,0EAA0E;IAC1E,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,wGAAwG;IACxG,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,oGAAoG;IACpG,+CAA+C,CAAC,EAAE,MAAM,CAAC;IACzD,wGAAwG;IACxG,kDAAkD,CAAC,EAAE,MAAM,CAAC;IAC5D,sDAAsD;IACtD,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,kGAAkG;IAClG,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,mDAAmD;IACnD,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBE,CAAC"}
|
|
@@ -21,5 +21,6 @@ export const SequencerConfigSchema = z.object({
|
|
|
21
21
|
attestationPropagationTime: z.number().optional(),
|
|
22
22
|
skipCollectingAttestations: z.boolean().optional(),
|
|
23
23
|
secondsBeforeInvalidatingBlockAsCommitteeMember: z.number(),
|
|
24
|
-
secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.number()
|
|
24
|
+
secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.number(),
|
|
25
|
+
injectFakeAttestation: z.boolean().optional()
|
|
25
26
|
});
|
|
@@ -42,11 +42,46 @@ export declare class BlockAttestation extends Gossipable {
|
|
|
42
42
|
* @returns The signer of the attestation
|
|
43
43
|
*/
|
|
44
44
|
getSender(): EthAddress;
|
|
45
|
+
/**
|
|
46
|
+
* Tries to get the sender of the attestation
|
|
47
|
+
* @returns The sender of the attestation or undefined if it fails during recovery
|
|
48
|
+
*/
|
|
49
|
+
tryGetSender(): EthAddress | undefined;
|
|
45
50
|
getPayload(): Buffer;
|
|
46
51
|
toBuffer(): Buffer;
|
|
47
52
|
static fromBuffer(buf: Buffer | BufferReader): BlockAttestation;
|
|
48
53
|
static empty(): BlockAttestation;
|
|
49
54
|
static random(): BlockAttestation;
|
|
50
55
|
getSize(): number;
|
|
56
|
+
toInspect(): {
|
|
57
|
+
blockNumber: number;
|
|
58
|
+
payload: {
|
|
59
|
+
header: {
|
|
60
|
+
lastArchive: `0x${string}`;
|
|
61
|
+
contentCommitment: {
|
|
62
|
+
blobsHash: `0x${string}`;
|
|
63
|
+
inHash: `0x${string}`;
|
|
64
|
+
outHash: `0x${string}`;
|
|
65
|
+
};
|
|
66
|
+
slotNumber: bigint;
|
|
67
|
+
timestamp: bigint;
|
|
68
|
+
coinbase: `0x${string}`;
|
|
69
|
+
feeRecipient: `0x${string}`;
|
|
70
|
+
gasFees: {
|
|
71
|
+
feePerDaGas: bigint;
|
|
72
|
+
feePerL2Gas: bigint;
|
|
73
|
+
};
|
|
74
|
+
totalManaUsed: bigint;
|
|
75
|
+
};
|
|
76
|
+
archive: `0x${string}`;
|
|
77
|
+
stateReference: {
|
|
78
|
+
l1ToL2MessageTree: `0x${string}`;
|
|
79
|
+
noteHashTree: `0x${string}`;
|
|
80
|
+
nullifierTree: `0x${string}`;
|
|
81
|
+
publicDataTree: `0x${string}`;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
signature: `0x${string}`;
|
|
85
|
+
};
|
|
51
86
|
}
|
|
52
87
|
//# sourceMappingURL=block_attestation.d.ts.map
|
|
@@ -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,EAAE,KAAK,MAAM,EAAW,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,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;IAM5C,2CAA2C;aAC3B,WAAW,EAAE,MAAM;IAEnC,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;aAC1B,SAAS,EAAE,SAAS;IAZtC,OAAgB,QAAQ,YAA+B;IAEvD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,2CAA2C;IAC3B,WAAW,EAAE,MAAM;IAEnC,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;IAC1B,SAAS,EAAE,SAAS;IAKtC,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;IAWvB,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAK/D,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC,MAAM,CAAC,MAAM,IAAI,gBAAgB;IAIjC,OAAO,IAAI,MAAM;
|
|
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,EAAE,KAAK,MAAM,EAAW,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,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;IAM5C,2CAA2C;aAC3B,WAAW,EAAE,MAAM;IAEnC,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;aAC1B,SAAS,EAAE,SAAS;IAZtC,OAAgB,QAAQ,YAA+B;IAEvD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,2CAA2C;IAC3B,WAAW,EAAE,MAAM;IAEnC,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;IAC1B,SAAS,EAAE,SAAS;IAKtC,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;IAWvB;;;OAGG;IACH,YAAY,IAAI,UAAU,GAAG,SAAS;IAQtC,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAK/D,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC,MAAM,CAAC,MAAM,IAAI,gBAAgB;IAIjC,OAAO,IAAI,MAAM;IAIjB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOV"}
|
|
@@ -55,6 +55,16 @@ export class BlockAttestationHash extends Buffer32 {
|
|
|
55
55
|
}
|
|
56
56
|
return this.sender;
|
|
57
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Tries to get the sender of the attestation
|
|
60
|
+
* @returns The sender of the attestation or undefined if it fails during recovery
|
|
61
|
+
*/ tryGetSender() {
|
|
62
|
+
try {
|
|
63
|
+
return this.getSender();
|
|
64
|
+
} catch {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
58
68
|
getPayload() {
|
|
59
69
|
return this.payload.getPayloadToSign(SignatureDomainSeparator.blockAttestation);
|
|
60
70
|
}
|
|
@@ -78,4 +88,11 @@ export class BlockAttestationHash extends Buffer32 {
|
|
|
78
88
|
getSize() {
|
|
79
89
|
return 4 /* blockNumber */ + this.payload.getSize() + this.signature.getSize();
|
|
80
90
|
}
|
|
91
|
+
toInspect() {
|
|
92
|
+
return {
|
|
93
|
+
blockNumber: this.blockNumber,
|
|
94
|
+
payload: this.payload.toInspect(),
|
|
95
|
+
signature: this.signature.toString()
|
|
96
|
+
};
|
|
97
|
+
}
|
|
81
98
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "2.1.0-rc.
|
|
3
|
+
"version": "2.1.0-rc.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -70,13 +70,13 @@
|
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"@aws-sdk/client-s3": "^3.892.0",
|
|
73
|
-
"@aztec/bb.js": "2.1.0-rc.
|
|
74
|
-
"@aztec/blob-lib": "2.1.0-rc.
|
|
75
|
-
"@aztec/constants": "2.1.0-rc.
|
|
76
|
-
"@aztec/ethereum": "2.1.0-rc.
|
|
77
|
-
"@aztec/foundation": "2.1.0-rc.
|
|
78
|
-
"@aztec/l1-artifacts": "2.1.0-rc.
|
|
79
|
-
"@aztec/noir-noirc_abi": "2.1.0-rc.
|
|
73
|
+
"@aztec/bb.js": "2.1.0-rc.7",
|
|
74
|
+
"@aztec/blob-lib": "2.1.0-rc.7",
|
|
75
|
+
"@aztec/constants": "2.1.0-rc.7",
|
|
76
|
+
"@aztec/ethereum": "2.1.0-rc.7",
|
|
77
|
+
"@aztec/foundation": "2.1.0-rc.7",
|
|
78
|
+
"@aztec/l1-artifacts": "2.1.0-rc.7",
|
|
79
|
+
"@aztec/noir-noirc_abi": "2.1.0-rc.7",
|
|
80
80
|
"@google-cloud/storage": "^7.15.0",
|
|
81
81
|
"axios": "^1.12.0",
|
|
82
82
|
"json-stringify-deterministic": "1.0.12",
|
|
@@ -83,11 +83,17 @@ export class PublishedL2Block {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
/**
|
|
87
|
+
* Extracts block attestations from a published L2 block.
|
|
88
|
+
* Returns undefined for attestations with empty signatures, preserving array indices.
|
|
89
|
+
*/
|
|
86
90
|
export function getAttestationsFromPublishedL2Block(
|
|
87
91
|
block: Pick<PublishedL2Block, 'attestations' | 'block'>,
|
|
88
|
-
): BlockAttestation[] {
|
|
92
|
+
): (BlockAttestation | undefined)[] {
|
|
89
93
|
const payload = ConsensusPayload.fromBlock(block.block);
|
|
90
|
-
return block.attestations
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
return block.attestations.map(attestation =>
|
|
95
|
+
attestation.signature.isEmpty()
|
|
96
|
+
? undefined
|
|
97
|
+
: new BlockAttestation(block.block.number, payload, attestation.signature),
|
|
98
|
+
);
|
|
93
99
|
}
|
|
@@ -52,6 +52,8 @@ export interface SequencerConfig {
|
|
|
52
52
|
skipCollectingAttestations?: boolean;
|
|
53
53
|
/** Do not invalidate the previous block if invalid when we are the proposer (for testing only) */
|
|
54
54
|
skipInvalidateBlockAsProposer?: boolean;
|
|
55
|
+
/** Inject a fake attestation (for testing only) */
|
|
56
|
+
injectFakeAttestation?: boolean;
|
|
55
57
|
}
|
|
56
58
|
|
|
57
59
|
export const SequencerConfigSchema = z.object({
|
|
@@ -75,4 +77,5 @@ export const SequencerConfigSchema = z.object({
|
|
|
75
77
|
skipCollectingAttestations: z.boolean().optional(),
|
|
76
78
|
secondsBeforeInvalidatingBlockAsCommitteeMember: z.number(),
|
|
77
79
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.number(),
|
|
80
|
+
injectFakeAttestation: z.boolean().optional(),
|
|
78
81
|
}) satisfies ZodFor<SequencerConfig>;
|
|
@@ -81,6 +81,18 @@ export class BlockAttestation extends Gossipable {
|
|
|
81
81
|
return this.sender;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
/**
|
|
85
|
+
* Tries to get the sender of the attestation
|
|
86
|
+
* @returns The sender of the attestation or undefined if it fails during recovery
|
|
87
|
+
*/
|
|
88
|
+
tryGetSender(): EthAddress | undefined {
|
|
89
|
+
try {
|
|
90
|
+
return this.getSender();
|
|
91
|
+
} catch {
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
84
96
|
getPayload(): Buffer {
|
|
85
97
|
return this.payload.getPayloadToSign(SignatureDomainSeparator.blockAttestation);
|
|
86
98
|
}
|
|
@@ -105,4 +117,12 @@ export class BlockAttestation extends Gossipable {
|
|
|
105
117
|
getSize(): number {
|
|
106
118
|
return 4 /* blockNumber */ + this.payload.getSize() + this.signature.getSize();
|
|
107
119
|
}
|
|
120
|
+
|
|
121
|
+
toInspect() {
|
|
122
|
+
return {
|
|
123
|
+
blockNumber: this.blockNumber,
|
|
124
|
+
payload: this.payload.toInspect(),
|
|
125
|
+
signature: this.signature.toString(),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
108
128
|
}
|