@aztec/stdlib 2.1.2-rc.1 → 2.1.2-rc.2
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/proposal/attestations_and_signers.d.ts +15 -4
- package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
- package/dest/block/proposal/attestations_and_signers.js +14 -0
- package/dest/interfaces/archiver.d.ts +5 -0
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +2 -1
- package/dest/interfaces/aztec-node-admin.d.ts +4 -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/gossipable.d.ts +1 -1
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +1 -1
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +2 -2
- package/package.json +8 -8
- package/src/block/proposal/attestations_and_signers.ts +20 -1
- package/src/interfaces/archiver.ts +4 -0
- package/src/interfaces/configs.ts +3 -0
- package/src/p2p/gossipable.ts +1 -1
- package/src/tx/tx.ts +2 -3
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { ViemCommitteeAttestations } from '@aztec/ethereum';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import type { Signable, SignatureDomainSeparator } from '../../p2p/signature_utils.js';
|
|
4
|
-
import { CommitteeAttestation } from './committee_attestation.js';
|
|
4
|
+
import { CommitteeAttestation, EthAddress } from './committee_attestation.js';
|
|
5
5
|
export declare class CommitteeAttestationsAndSigners implements Signable {
|
|
6
6
|
attestations: CommitteeAttestation[];
|
|
7
7
|
constructor(attestations: CommitteeAttestation[]);
|
|
8
8
|
static get schema(): z.ZodEffects<z.ZodObject<{
|
|
9
9
|
attestations: z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
10
|
-
address: z.ZodType<
|
|
10
|
+
address: z.ZodType<EthAddress, any, string>;
|
|
11
11
|
signature: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, `0x${string}`, string>, `0x${string}`, string>, import("./committee_attestation.js").Signature, string>;
|
|
12
12
|
}, "strip", z.ZodTypeAny, {
|
|
13
|
-
address:
|
|
13
|
+
address: EthAddress;
|
|
14
14
|
signature: import("./committee_attestation.js").Signature;
|
|
15
15
|
}, {
|
|
16
16
|
address: string;
|
|
@@ -35,7 +35,7 @@ export declare class CommitteeAttestationsAndSigners implements Signable {
|
|
|
35
35
|
getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
|
|
36
36
|
static empty(): CommitteeAttestationsAndSigners;
|
|
37
37
|
toString(): string;
|
|
38
|
-
getSigners():
|
|
38
|
+
getSigners(): EthAddress[];
|
|
39
39
|
getSignedAttestations(): CommitteeAttestation[];
|
|
40
40
|
/**
|
|
41
41
|
* Packs an array of committee attestations into the format expected by the Solidity contract
|
|
@@ -45,4 +45,15 @@ export declare class CommitteeAttestationsAndSigners implements Signable {
|
|
|
45
45
|
*/
|
|
46
46
|
getPackedAttestations(): ViemCommitteeAttestations;
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Malicious extension of CommitteeAttestationsAndSigners that keeps separate attestations and
|
|
50
|
+
* signers. Used for tricking the L1 contract into accepting attestations by reconstructing
|
|
51
|
+
* the correct committee commitment (which relies on the signers, ignoring the signatures)
|
|
52
|
+
* with an invalid set of attestation signatures.
|
|
53
|
+
*/
|
|
54
|
+
export declare class MaliciousCommitteeAttestationsAndSigners extends CommitteeAttestationsAndSigners {
|
|
55
|
+
private signers;
|
|
56
|
+
constructor(attestations: CommitteeAttestation[], signers: EthAddress[]);
|
|
57
|
+
getSigners(): EthAddress[];
|
|
58
|
+
}
|
|
48
59
|
//# sourceMappingURL=attestations_and_signers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestations_and_signers.d.ts","sourceRoot":"","sources":["../../../src/block/proposal/attestations_and_signers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAIjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"attestations_and_signers.d.ts","sourceRoot":"","sources":["../../../src/block/proposal/attestations_and_signers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAIjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE9E,qBAAa,+BAAgC,YAAW,QAAQ;IAC3C,YAAY,EAAE,oBAAoB,EAAE;gBAApC,YAAY,EAAE,oBAAoB,EAAE;IAEvD,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;OAMhB;IAED,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM;IAanE,MAAM,CAAC,KAAK,IAAI,+BAA+B;IAI/C,QAAQ;IAIR,UAAU;IAIV,qBAAqB;IAIrB;;;;;OAKG;IACH,qBAAqB,IAAI,yBAAyB;CAiEnD;AAED;;;;;GAKG;AACH,qBAAa,wCAAyC,SAAQ,+BAA+B;IAGzF,OAAO,CAAC,OAAO;gBADf,YAAY,EAAE,oBAAoB,EAAE,EAC5B,OAAO,EAAE,UAAU,EAAE;IAKtB,UAAU,IAAI,UAAU,EAAE;CAGpC"}
|
|
@@ -97,3 +97,17 @@ export class CommitteeAttestationsAndSigners {
|
|
|
97
97
|
};
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Malicious extension of CommitteeAttestationsAndSigners that keeps separate attestations and
|
|
102
|
+
* signers. Used for tricking the L1 contract into accepting attestations by reconstructing
|
|
103
|
+
* the correct committee commitment (which relies on the signers, ignoring the signatures)
|
|
104
|
+
* with an invalid set of attestation signatures.
|
|
105
|
+
*/ export class MaliciousCommitteeAttestationsAndSigners extends CommitteeAttestationsAndSigners {
|
|
106
|
+
signers;
|
|
107
|
+
constructor(attestations, signers){
|
|
108
|
+
super(attestations), this.signers = signers;
|
|
109
|
+
}
|
|
110
|
+
getSigners() {
|
|
111
|
+
return this.signers;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -23,6 +23,8 @@ export type ArchiverSpecificConfig = {
|
|
|
23
23
|
archiverStoreMapSizeKb?: number;
|
|
24
24
|
/** Whether to skip validating block attestations (use only for testing). */
|
|
25
25
|
skipValidateBlockAttestations?: boolean;
|
|
26
|
+
/** Maximum allowed drift in seconds between the Ethereum client and current time. */
|
|
27
|
+
maxAllowedEthClientDriftSeconds?: number;
|
|
26
28
|
};
|
|
27
29
|
export declare const ArchiverSpecificConfigSchema: z.ZodObject<{
|
|
28
30
|
archiverPollingIntervalMS: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
|
|
@@ -31,6 +33,7 @@ export declare const ArchiverSpecificConfigSchema: z.ZodObject<{
|
|
|
31
33
|
maxLogs: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
|
|
32
34
|
archiverStoreMapSizeKb: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
|
|
33
35
|
skipValidateBlockAttestations: z.ZodOptional<z.ZodBoolean>;
|
|
36
|
+
maxAllowedEthClientDriftSeconds: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
|
|
34
37
|
}, "strip", z.ZodTypeAny, {
|
|
35
38
|
archiverPollingIntervalMS?: number | undefined;
|
|
36
39
|
archiverBatchSize?: number | undefined;
|
|
@@ -38,6 +41,7 @@ export declare const ArchiverSpecificConfigSchema: z.ZodObject<{
|
|
|
38
41
|
maxLogs?: number | undefined;
|
|
39
42
|
archiverStoreMapSizeKb?: number | undefined;
|
|
40
43
|
skipValidateBlockAttestations?: boolean | undefined;
|
|
44
|
+
maxAllowedEthClientDriftSeconds?: number | undefined;
|
|
41
45
|
}, {
|
|
42
46
|
archiverPollingIntervalMS?: string | number | bigint | undefined;
|
|
43
47
|
archiverBatchSize?: string | number | bigint | undefined;
|
|
@@ -45,6 +49,7 @@ export declare const ArchiverSpecificConfigSchema: z.ZodObject<{
|
|
|
45
49
|
maxLogs?: string | number | bigint | undefined;
|
|
46
50
|
archiverStoreMapSizeKb?: string | number | bigint | undefined;
|
|
47
51
|
skipValidateBlockAttestations?: boolean | undefined;
|
|
52
|
+
maxAllowedEthClientDriftSeconds?: string | number | bigint | undefined;
|
|
48
53
|
}>;
|
|
49
54
|
export type ArchiverApi = Omit<L2BlockSource & L2LogsSource & ContractDataSource & L1ToL2MessageSource, 'start' | 'stop'>;
|
|
50
55
|
export declare const ArchiverApiSchema: ApiSchemaFor<ArchiverApi>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/interfaces/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,6BAA6B,CAAC;AAG/E,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAOnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,kFAAkF;IAClF,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,yCAAyC;IACzC,WAAW,EAAE,mBAAmB,CAAC;IAEjC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qGAAqG;IACrG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,4EAA4E;IAC5E,6BAA6B,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/interfaces/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,6BAA6B,CAAC;AAG/E,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAOnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,kFAAkF;IAClF,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,yCAAyC;IACzC,WAAW,EAAE,mBAAmB,CAAC;IAEjC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qGAAqG;IACrG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,4EAA4E;IAC5E,6BAA6B,CAAC,EAAE,OAAO,CAAC;IAExC,qFAAqF;IACrF,+BAA+B,CAAC,EAAE,MAAM,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;EAQvC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,EACvE,OAAO,GAAG,MAAM,CACjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,CAyDvD,CAAC"}
|
|
@@ -20,7 +20,8 @@ export const ArchiverSpecificConfigSchema = z.object({
|
|
|
20
20
|
viemPollingIntervalMS: schemas.Integer.optional(),
|
|
21
21
|
maxLogs: schemas.Integer.optional(),
|
|
22
22
|
archiverStoreMapSizeKb: schemas.Integer.optional(),
|
|
23
|
-
skipValidateBlockAttestations: z.boolean().optional()
|
|
23
|
+
skipValidateBlockAttestations: z.boolean().optional(),
|
|
24
|
+
maxAllowedEthClientDriftSeconds: schemas.Integer.optional()
|
|
24
25
|
});
|
|
25
26
|
export const ArchiverApiSchema = {
|
|
26
27
|
getRollupAddress: z.function().args().returns(schemas.EthAddress),
|
|
@@ -65,6 +65,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
65
65
|
secondsBeforeInvalidatingBlockAsCommitteeMember: z.ZodNumber;
|
|
66
66
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.ZodNumber;
|
|
67
67
|
injectFakeAttestation: z.ZodOptional<z.ZodBoolean>;
|
|
68
|
+
shuffleAttestationOrdering: z.ZodOptional<z.ZodBoolean>;
|
|
68
69
|
nodeUrl: z.ZodOptional<z.ZodString>;
|
|
69
70
|
realProofs: z.ZodBoolean;
|
|
70
71
|
proverId: z.ZodOptional<import("../schemas/schemas.js").ZodFor<import("@aztec/foundation/schemas").EthAddress>>;
|
|
@@ -138,6 +139,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
138
139
|
maxLogs: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
|
|
139
140
|
archiverStoreMapSizeKb: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
|
|
140
141
|
skipValidateBlockAttestations: z.ZodOptional<z.ZodBoolean>;
|
|
142
|
+
maxAllowedEthClientDriftSeconds: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
|
|
141
143
|
}, "archiverPollingIntervalMS" | "archiverBatchSize" | "skipValidateBlockAttestations"> & {
|
|
142
144
|
maxTxPoolSize: z.ZodNumber;
|
|
143
145
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -200,6 +202,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
200
202
|
attestationPropagationTime?: number | undefined;
|
|
201
203
|
skipCollectingAttestations?: boolean | undefined;
|
|
202
204
|
injectFakeAttestation?: boolean | undefined;
|
|
205
|
+
shuffleAttestationOrdering?: boolean | undefined;
|
|
203
206
|
proverId?: import("@aztec/foundation/schemas").EthAddress | undefined;
|
|
204
207
|
archiverPollingIntervalMS?: number | undefined;
|
|
205
208
|
archiverBatchSize?: number | undefined;
|
|
@@ -270,6 +273,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
270
273
|
attestationPropagationTime?: number | undefined;
|
|
271
274
|
skipCollectingAttestations?: boolean | undefined;
|
|
272
275
|
injectFakeAttestation?: boolean | undefined;
|
|
276
|
+
shuffleAttestationOrdering?: boolean | undefined;
|
|
273
277
|
proverId?: any;
|
|
274
278
|
archiverPollingIntervalMS?: string | number | bigint | undefined;
|
|
275
279
|
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,EAAE,KAAK,yBAAyB,EAAmC,MAAM,gBAAgB,CAAC;AAEjG;;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,EAAE,KAAK,yBAAyB,EAAmC,MAAM,gBAAgB,CAAC;AAEjG;;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"}
|
|
@@ -51,6 +51,8 @@ export interface SequencerConfig {
|
|
|
51
51
|
skipInvalidateBlockAsProposer?: boolean;
|
|
52
52
|
/** Inject a fake attestation (for testing only) */
|
|
53
53
|
injectFakeAttestation?: boolean;
|
|
54
|
+
/** Shuffle attestation ordering to create invalid ordering (for testing only) */
|
|
55
|
+
shuffleAttestationOrdering?: boolean;
|
|
54
56
|
}
|
|
55
57
|
export declare const SequencerConfigSchema: z.ZodObject<{
|
|
56
58
|
transactionPollingIntervalMS: z.ZodOptional<z.ZodNumber>;
|
|
@@ -104,6 +106,7 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
104
106
|
secondsBeforeInvalidatingBlockAsCommitteeMember: z.ZodNumber;
|
|
105
107
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.ZodNumber;
|
|
106
108
|
injectFakeAttestation: z.ZodOptional<z.ZodBoolean>;
|
|
109
|
+
shuffleAttestationOrdering: z.ZodOptional<z.ZodBoolean>;
|
|
107
110
|
}, "strip", z.ZodTypeAny, {
|
|
108
111
|
secondsBeforeInvalidatingBlockAsCommitteeMember: number;
|
|
109
112
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: number;
|
|
@@ -136,6 +139,7 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
136
139
|
attestationPropagationTime?: number | undefined;
|
|
137
140
|
skipCollectingAttestations?: boolean | undefined;
|
|
138
141
|
injectFakeAttestation?: boolean | undefined;
|
|
142
|
+
shuffleAttestationOrdering?: boolean | undefined;
|
|
139
143
|
}, {
|
|
140
144
|
secondsBeforeInvalidatingBlockAsCommitteeMember: number;
|
|
141
145
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: number;
|
|
@@ -168,5 +172,6 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
168
172
|
attestationPropagationTime?: number | undefined;
|
|
169
173
|
skipCollectingAttestations?: boolean | undefined;
|
|
170
174
|
injectFakeAttestation?: boolean | undefined;
|
|
175
|
+
shuffleAttestationOrdering?: boolean | undefined;
|
|
171
176
|
}>;
|
|
172
177
|
//# 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;IACxC,mDAAmD;IACnD,qBAAqB,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;IAChC,iFAAiF;IACjF,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBE,CAAC"}
|
|
@@ -22,5 +22,6 @@ export const SequencerConfigSchema = z.object({
|
|
|
22
22
|
skipCollectingAttestations: z.boolean().optional(),
|
|
23
23
|
secondsBeforeInvalidatingBlockAsCommitteeMember: z.number(),
|
|
24
24
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.number(),
|
|
25
|
-
injectFakeAttestation: z.boolean().optional()
|
|
25
|
+
injectFakeAttestation: z.boolean().optional(),
|
|
26
|
+
shuffleAttestationOrdering: z.boolean().optional()
|
|
26
27
|
});
|
package/dest/p2p/gossipable.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export declare abstract class Gossipable {
|
|
|
20
20
|
* A digest of the message information **used for logging only**.
|
|
21
21
|
* The identifier used for deduplication is `getMsgIdFn` as defined in `encoding.ts` which is a hash over topic and data.
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
p2pMessageLoggingIdentifier(): Promise<Buffer32>;
|
|
24
24
|
abstract generateP2PMessageIdentifier(): Promise<Buffer32>;
|
|
25
25
|
abstract toBuffer(): Buffer;
|
|
26
26
|
toMessage(): Buffer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;aACO,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAE3C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU;IAItD,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU;IAMvD,aAAa,IAAI,MAAM;CAGxB;AAED;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAAuB;IACvC,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACG,
|
|
1
|
+
{"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;aACO,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAE3C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU;IAItD,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU;IAMvD,aAAa,IAAI,MAAM;CAGxB;AAED;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAAuB;IACvC,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACG,2BAA2B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAQtD,QAAQ,CAAC,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAE1D,QAAQ,CAAC,QAAQ,IAAI,MAAM;IAE3B,SAAS,IAAI,MAAM;IAInB;;;OAGG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM;CAC3B"}
|
package/dest/p2p/gossipable.js
CHANGED
|
@@ -28,7 +28,7 @@ export class P2PMessage {
|
|
|
28
28
|
/**
|
|
29
29
|
* A digest of the message information **used for logging only**.
|
|
30
30
|
* The identifier used for deduplication is `getMsgIdFn` as defined in `encoding.ts` which is a hash over topic and data.
|
|
31
|
-
*/ async
|
|
31
|
+
*/ async p2pMessageLoggingIdentifier() {
|
|
32
32
|
if (this.cachedId) {
|
|
33
33
|
return this.cachedId;
|
|
34
34
|
}
|
package/dest/tx/tx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"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"}
|
package/dest/tx/tx.js
CHANGED
|
@@ -224,12 +224,12 @@ import { TxHash } from './tx_hash.js';
|
|
|
224
224
|
* Helper class to handle Serialization and Deserialization of Txs array.
|
|
225
225
|
*/ export class TxArray extends Array {
|
|
226
226
|
static fromBuffer(buffer) {
|
|
227
|
+
const reader = BufferReader.asReader(buffer);
|
|
227
228
|
try {
|
|
228
|
-
const reader = BufferReader.asReader(buffer);
|
|
229
229
|
const txs = reader.readVector(Tx);
|
|
230
230
|
return new TxArray(...txs);
|
|
231
231
|
} catch {
|
|
232
|
-
|
|
232
|
+
throw new Error('Failed to deserialize TxArray from buffer');
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
235
|
toBuffer() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "2.1.2-rc.
|
|
3
|
+
"version": "2.1.2-rc.2",
|
|
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.2-rc.
|
|
74
|
-
"@aztec/blob-lib": "2.1.2-rc.
|
|
75
|
-
"@aztec/constants": "2.1.2-rc.
|
|
76
|
-
"@aztec/ethereum": "2.1.2-rc.
|
|
77
|
-
"@aztec/foundation": "2.1.2-rc.
|
|
78
|
-
"@aztec/l1-artifacts": "2.1.2-rc.
|
|
79
|
-
"@aztec/noir-noirc_abi": "2.1.2-rc.
|
|
73
|
+
"@aztec/bb.js": "2.1.2-rc.2",
|
|
74
|
+
"@aztec/blob-lib": "2.1.2-rc.2",
|
|
75
|
+
"@aztec/constants": "2.1.2-rc.2",
|
|
76
|
+
"@aztec/ethereum": "2.1.2-rc.2",
|
|
77
|
+
"@aztec/foundation": "2.1.2-rc.2",
|
|
78
|
+
"@aztec/l1-artifacts": "2.1.2-rc.2",
|
|
79
|
+
"@aztec/noir-noirc_abi": "2.1.2-rc.2",
|
|
80
80
|
"@google-cloud/storage": "^7.15.0",
|
|
81
81
|
"axios": "^1.12.0",
|
|
82
82
|
"json-stringify-deterministic": "1.0.12",
|
|
@@ -5,7 +5,7 @@ import { encodeAbiParameters, parseAbiParameters } from 'viem';
|
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
|
|
7
7
|
import type { Signable, SignatureDomainSeparator } from '../../p2p/signature_utils.js';
|
|
8
|
-
import { CommitteeAttestation } from './committee_attestation.js';
|
|
8
|
+
import { CommitteeAttestation, EthAddress } from './committee_attestation.js';
|
|
9
9
|
|
|
10
10
|
export class CommitteeAttestationsAndSigners implements Signable {
|
|
11
11
|
constructor(public attestations: CommitteeAttestation[]) {}
|
|
@@ -119,3 +119,22 @@ export class CommitteeAttestationsAndSigners implements Signable {
|
|
|
119
119
|
};
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Malicious extension of CommitteeAttestationsAndSigners that keeps separate attestations and
|
|
125
|
+
* signers. Used for tricking the L1 contract into accepting attestations by reconstructing
|
|
126
|
+
* the correct committee commitment (which relies on the signers, ignoring the signatures)
|
|
127
|
+
* with an invalid set of attestation signatures.
|
|
128
|
+
*/
|
|
129
|
+
export class MaliciousCommitteeAttestationsAndSigners extends CommitteeAttestationsAndSigners {
|
|
130
|
+
constructor(
|
|
131
|
+
attestations: CommitteeAttestation[],
|
|
132
|
+
private signers: EthAddress[],
|
|
133
|
+
) {
|
|
134
|
+
super(attestations);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
override getSigners(): EthAddress[] {
|
|
138
|
+
return this.signers;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -49,6 +49,9 @@ export type ArchiverSpecificConfig = {
|
|
|
49
49
|
|
|
50
50
|
/** Whether to skip validating block attestations (use only for testing). */
|
|
51
51
|
skipValidateBlockAttestations?: boolean;
|
|
52
|
+
|
|
53
|
+
/** Maximum allowed drift in seconds between the Ethereum client and current time. */
|
|
54
|
+
maxAllowedEthClientDriftSeconds?: number;
|
|
52
55
|
};
|
|
53
56
|
|
|
54
57
|
export const ArchiverSpecificConfigSchema = z.object({
|
|
@@ -58,6 +61,7 @@ export const ArchiverSpecificConfigSchema = z.object({
|
|
|
58
61
|
maxLogs: schemas.Integer.optional(),
|
|
59
62
|
archiverStoreMapSizeKb: schemas.Integer.optional(),
|
|
60
63
|
skipValidateBlockAttestations: z.boolean().optional(),
|
|
64
|
+
maxAllowedEthClientDriftSeconds: schemas.Integer.optional(),
|
|
61
65
|
});
|
|
62
66
|
|
|
63
67
|
export type ArchiverApi = Omit<
|
|
@@ -54,6 +54,8 @@ export interface SequencerConfig {
|
|
|
54
54
|
skipInvalidateBlockAsProposer?: boolean;
|
|
55
55
|
/** Inject a fake attestation (for testing only) */
|
|
56
56
|
injectFakeAttestation?: boolean;
|
|
57
|
+
/** Shuffle attestation ordering to create invalid ordering (for testing only) */
|
|
58
|
+
shuffleAttestationOrdering?: boolean;
|
|
57
59
|
}
|
|
58
60
|
|
|
59
61
|
export const SequencerConfigSchema = z.object({
|
|
@@ -78,4 +80,5 @@ export const SequencerConfigSchema = z.object({
|
|
|
78
80
|
secondsBeforeInvalidatingBlockAsCommitteeMember: z.number(),
|
|
79
81
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.number(),
|
|
80
82
|
injectFakeAttestation: z.boolean().optional(),
|
|
83
|
+
shuffleAttestationOrdering: z.boolean().optional(),
|
|
81
84
|
}) satisfies ZodFor<SequencerConfig>;
|
package/src/p2p/gossipable.ts
CHANGED
|
@@ -35,7 +35,7 @@ export abstract class Gossipable {
|
|
|
35
35
|
* A digest of the message information **used for logging only**.
|
|
36
36
|
* The identifier used for deduplication is `getMsgIdFn` as defined in `encoding.ts` which is a hash over topic and data.
|
|
37
37
|
*/
|
|
38
|
-
async
|
|
38
|
+
async p2pMessageLoggingIdentifier(): Promise<Buffer32> {
|
|
39
39
|
if (this.cachedId) {
|
|
40
40
|
return this.cachedId;
|
|
41
41
|
}
|
package/src/tx/tx.ts
CHANGED
|
@@ -308,13 +308,12 @@ export class Tx extends Gossipable {
|
|
|
308
308
|
*/
|
|
309
309
|
export class TxArray extends Array<Tx> {
|
|
310
310
|
static fromBuffer(buffer: Buffer | BufferReader): TxArray {
|
|
311
|
+
const reader = BufferReader.asReader(buffer);
|
|
311
312
|
try {
|
|
312
|
-
const reader = BufferReader.asReader(buffer);
|
|
313
313
|
const txs = reader.readVector(Tx);
|
|
314
|
-
|
|
315
314
|
return new TxArray(...txs);
|
|
316
315
|
} catch {
|
|
317
|
-
|
|
316
|
+
throw new Error('Failed to deserialize TxArray from buffer');
|
|
318
317
|
}
|
|
319
318
|
}
|
|
320
319
|
|