@aztec/stdlib 0.0.1-commit.f2ce05ee → 0.0.1-commit.f8ca9b2f3
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/contract/interfaces/node-info.d.ts +3 -1
- package/dest/contract/interfaces/node-info.d.ts.map +1 -1
- package/dest/contract/interfaces/node-info.js +2 -1
- package/dest/interfaces/aztec-node-admin.d.ts +7 -1
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/slasher.d.ts +5 -1
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +1 -0
- package/dest/interfaces/validator.d.ts +13 -2
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +3 -1
- package/dest/p2p/constants.d.ts +3 -1
- package/dest/p2p/constants.d.ts.map +1 -1
- package/dest/p2p/constants.js +1 -0
- package/dest/slashing/empire.d.ts +1 -1
- package/dest/slashing/empire.d.ts.map +1 -1
- package/dest/slashing/empire.js +1 -0
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +3 -0
- package/dest/slashing/types.d.ts +5 -3
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +7 -1
- package/dest/trees/public_data_leaf.d.ts +2 -1
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.js +7 -6
- package/dest/tx/validator/empty_validator.d.ts +2 -2
- package/dest/tx/validator/empty_validator.d.ts.map +1 -1
- package/dest/tx/validator/tx_validator.d.ts +2 -2
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/contract/interfaces/node-info.ts +3 -0
- package/src/interfaces/slasher.ts +2 -0
- package/src/interfaces/validator.ts +9 -1
- package/src/p2p/constants.ts +3 -0
- package/src/slashing/empire.ts +2 -1
- package/src/slashing/helpers.ts +4 -0
- package/src/slashing/types.ts +7 -0
- package/src/trees/public_data_leaf.ts +11 -5
- package/src/tx/validator/empty_validator.ts +1 -1
- package/src/tx/validator/tx_validator.ts +1 -1
|
@@ -15,6 +15,8 @@ export interface NodeInfo {
|
|
|
15
15
|
l1ContractAddresses: L1ContractAddresses;
|
|
16
16
|
/** Protocol contract addresses */
|
|
17
17
|
protocolContractAddresses: ProtocolContractAddresses;
|
|
18
|
+
/** Whether the node requires real proofs for transaction submission. */
|
|
19
|
+
realProofs: boolean;
|
|
18
20
|
}
|
|
19
21
|
export declare const NodeInfoSchema: ZodFor<NodeInfo>;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pbmZvLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3QvaW50ZXJmYWNlcy9ub2RlLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssbUJBQW1CLEVBQTZCLE1BQU0sdUNBQXVDLENBQUM7QUFDNUcsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJeEQsT0FBTyxFQUFFLEtBQUsseUJBQXlCLEVBQW1DLE1BQU0sa0NBQWtDLENBQUM7QUFFbkgseURBQXlEO0FBQ3pELE1BQU0sV0FBVyxRQUFRO0lBQ3ZCLDJEQUEyRDtJQUMzRCxXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLG1CQUFtQjtJQUNuQixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLHNCQUFzQjtJQUN0QixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLHNCQUFzQjtJQUN0QixHQUFHLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN4Qix5Q0FBeUM7SUFDekMsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUM7SUFDekMsa0NBQWtDO0lBQ2xDLHlCQUF5QixFQUFFLHlCQUF5QixDQUFDO0lBQ3JELHdFQUF3RTtJQUN4RSxVQUFVLEVBQUUsT0FBTyxDQUFDO0NBQ3JCO0FBRUQsZUFBTyxNQUFNLGNBQWMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQVVLLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-info.d.ts","sourceRoot":"","sources":["../../../src/contract/interfaces/node-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAA6B,MAAM,uCAAuC,CAAC;AAC5G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAIxD,OAAO,EAAE,KAAK,yBAAyB,EAAmC,MAAM,kCAAkC,CAAC;AAEnH,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,yCAAyC;IACzC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,kCAAkC;IAClC,yBAAyB,EAAE,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"node-info.d.ts","sourceRoot":"","sources":["../../../src/contract/interfaces/node-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAA6B,MAAM,uCAAuC,CAAC;AAC5G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAIxD,OAAO,EAAE,KAAK,yBAAyB,EAAmC,MAAM,kCAAkC,CAAC;AAEnH,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,yCAAyC;IACzC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,kCAAkC;IAClC,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,wEAAwE;IACxE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,QAAQ,CAUK,CAAC"}
|
|
@@ -7,7 +7,8 @@ export const NodeInfoSchema = z.object({
|
|
|
7
7
|
rollupVersion: z.number().int().nonnegative(),
|
|
8
8
|
enr: z.string().optional(),
|
|
9
9
|
l1ContractAddresses: L1ContractAddressesSchema,
|
|
10
|
-
protocolContractAddresses: ProtocolContractAddressesSchema
|
|
10
|
+
protocolContractAddresses: ProtocolContractAddressesSchema,
|
|
11
|
+
realProofs: z.boolean()
|
|
11
12
|
}).transform((obj)=>({
|
|
12
13
|
enr: undefined,
|
|
13
14
|
...obj
|
|
@@ -120,6 +120,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
120
120
|
fishermanMode: z.ZodOptional<z.ZodBoolean>;
|
|
121
121
|
skipCheckpointProposalValidation: z.ZodOptional<z.ZodBoolean>;
|
|
122
122
|
skipPushProposedBlocksToArchiver: z.ZodOptional<z.ZodBoolean>;
|
|
123
|
+
attestToEquivocatedProposals: z.ZodOptional<z.ZodBoolean>;
|
|
123
124
|
txPublicSetupAllowList: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
|
|
124
125
|
address: import("../schemas/schemas.js").ZodFor<import("../aztec-address/index.js").AztecAddress>;
|
|
125
126
|
selector: import("../schemas/schemas.js").ZodFor<import("../abi/function_selector.js").FunctionSelector>;
|
|
@@ -154,6 +155,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
154
155
|
broadcastInvalidBlockProposal: z.ZodOptional<z.ZodBoolean>;
|
|
155
156
|
slashBroadcastedInvalidBlockPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
156
157
|
slashDuplicateProposalPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
158
|
+
slashDuplicateAttestationPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
157
159
|
disableTransactions: z.ZodOptional<z.ZodBoolean>;
|
|
158
160
|
} & Pick<{
|
|
159
161
|
archiverPollingIntervalMS: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
|
|
@@ -244,6 +246,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
244
246
|
fishermanMode?: boolean | undefined;
|
|
245
247
|
skipCheckpointProposalValidation?: boolean | undefined;
|
|
246
248
|
skipPushProposedBlocksToArchiver?: boolean | undefined;
|
|
249
|
+
attestToEquivocatedProposals?: boolean | undefined;
|
|
247
250
|
txPublicSetupAllowList?: ({
|
|
248
251
|
address: import("../aztec-address/index.js").AztecAddress;
|
|
249
252
|
selector: import("../abi/function_selector.js").FunctionSelector;
|
|
@@ -258,6 +261,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
258
261
|
broadcastInvalidBlockProposal?: boolean | undefined;
|
|
259
262
|
slashBroadcastedInvalidBlockPenalty: bigint;
|
|
260
263
|
slashDuplicateProposalPenalty: bigint;
|
|
264
|
+
slashDuplicateAttestationPenalty: bigint;
|
|
261
265
|
disableTransactions?: boolean | undefined;
|
|
262
266
|
maxPendingTxCount: number;
|
|
263
267
|
}, {
|
|
@@ -338,6 +342,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
338
342
|
fishermanMode?: boolean | undefined;
|
|
339
343
|
skipCheckpointProposalValidation?: boolean | undefined;
|
|
340
344
|
skipPushProposedBlocksToArchiver?: boolean | undefined;
|
|
345
|
+
attestToEquivocatedProposals?: boolean | undefined;
|
|
341
346
|
txPublicSetupAllowList?: ({
|
|
342
347
|
address?: any;
|
|
343
348
|
selector?: any;
|
|
@@ -352,9 +357,10 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
352
357
|
broadcastInvalidBlockProposal?: boolean | undefined;
|
|
353
358
|
slashBroadcastedInvalidBlockPenalty: string | number | bigint;
|
|
354
359
|
slashDuplicateProposalPenalty: string | number | bigint;
|
|
360
|
+
slashDuplicateAttestationPenalty: string | number | bigint;
|
|
355
361
|
disableTransactions?: boolean | undefined;
|
|
356
362
|
maxPendingTxCount: number;
|
|
357
363
|
}>;
|
|
358
364
|
export declare const AztecNodeAdminApiSchema: ApiSchemaFor<AztecNodeAdmin>;
|
|
359
365
|
export declare function createAztecNodeAdminClient(url: string, versions?: Partial<ComponentsVersions>, fetch?: typeof defaultFetch): AztecNodeAdmin;
|
|
360
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
366
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWMtbm9kZS1hZG1pbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYXp0ZWMtbm9kZS1hZG1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFGLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssT0FBTyxFQUFpQixLQUFLLGlCQUFpQixFQUEyQixNQUFNLHNCQUFzQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFnQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9GLE9BQU8sRUFBRSxLQUFLLHNCQUFzQixFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXlCLE1BQU0sY0FBYyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBc0IsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsS0FBSyxhQUFhLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxLQUFLLHlCQUF5QixFQUFtQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpHOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGNBQWM7SUFDN0I7O09BRUc7SUFDSCxTQUFTLElBQUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFM0M7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsb0JBQW9CLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFaEU7OztPQUdHO0lBQ0gsbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV0RSwrQ0FBK0M7SUFDL0MsU0FBUyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUzQixnREFBZ0Q7SUFDaEQsVUFBVSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU1QiwyRUFBMkU7SUFDM0UsZ0JBQWdCLElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUVqRCwyREFBMkQ7SUFDM0QsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxLQUFLLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0NBQ3pFO0FBR0QsTUFBTSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxhQUFhLENBQUMsR0FDL0UsZUFBZSxHQUNmLFlBQVksR0FDWixhQUFhLEdBQ2IsSUFBSSxDQUNGLHNCQUFzQixFQUN0QiwyQkFBMkIsR0FBRyxtQkFBbUIsR0FBRyxvQ0FBb0MsQ0FDekYsR0FBRztJQUNGLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztDQUMzQixDQUFDO0FBRUosZUFBTyxNQUFNLDBCQUEwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQVVjLENBQUM7QUFFdEQsZUFBTyxNQUFNLHVCQUF1QixFQUFFLFlBQVksQ0FBQyxjQUFjLENBWWhFLENBQUM7QUFFRix3QkFBZ0IsMEJBQTBCLENBQ3hDLEdBQUcsRUFBRSxNQUFNLEVBQ1gsUUFBUSxHQUFFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBTSxFQUMxQyxLQUFLLHNCQUFlLEdBQ25CLGNBQWMsQ0FNaEIifQ==
|
|
@@ -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;AAGD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,EAAE,aAAa,CAAC,GAC/E,eAAe,GACf,YAAY,GACZ,aAAa,GACb,IAAI,CACF,sBAAsB,EACtB,2BAA2B,GAAG,mBAAmB,GAAG,oCAAoC,CACzF,GAAG;IACF,iBAAiB,EAAE,MAAM,CAAC;CAC3B,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;AAGD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,EAAE,aAAa,CAAC,GAC/E,eAAe,GACf,YAAY,GACZ,aAAa,GACb,IAAI,CACF,sBAAsB,EACtB,2BAA2B,GAAG,mBAAmB,GAAG,oCAAoC,CACzF,GAAG;IACF,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEJ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUc,CAAC;AAEtD,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"}
|
|
@@ -15,6 +15,7 @@ export interface SlasherConfig {
|
|
|
15
15
|
slashInactivityPenalty: bigint;
|
|
16
16
|
slashBroadcastedInvalidBlockPenalty: bigint;
|
|
17
17
|
slashDuplicateProposalPenalty: bigint;
|
|
18
|
+
slashDuplicateAttestationPenalty: bigint;
|
|
18
19
|
slashProposeInvalidAttestationsPenalty: bigint;
|
|
19
20
|
slashAttestDescendantOfInvalidPenalty: bigint;
|
|
20
21
|
slashUnknownPenalty: bigint;
|
|
@@ -36,6 +37,7 @@ export declare const SlasherConfigSchema: z.ZodObject<{
|
|
|
36
37
|
slashInactivityPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
37
38
|
slashProposeInvalidAttestationsPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
38
39
|
slashDuplicateProposalPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
40
|
+
slashDuplicateAttestationPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
39
41
|
slashAttestDescendantOfInvalidPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
40
42
|
slashUnknownPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
41
43
|
slashOffenseExpirationRounds: z.ZodNumber;
|
|
@@ -57,6 +59,7 @@ export declare const SlasherConfigSchema: z.ZodObject<{
|
|
|
57
59
|
slashInactivityPenalty: bigint;
|
|
58
60
|
slashProposeInvalidAttestationsPenalty: bigint;
|
|
59
61
|
slashDuplicateProposalPenalty: bigint;
|
|
62
|
+
slashDuplicateAttestationPenalty: bigint;
|
|
60
63
|
slashAttestDescendantOfInvalidPenalty: bigint;
|
|
61
64
|
slashUnknownPenalty: bigint;
|
|
62
65
|
slashOffenseExpirationRounds: number;
|
|
@@ -78,6 +81,7 @@ export declare const SlasherConfigSchema: z.ZodObject<{
|
|
|
78
81
|
slashInactivityPenalty: string | number | bigint;
|
|
79
82
|
slashProposeInvalidAttestationsPenalty: string | number | bigint;
|
|
80
83
|
slashDuplicateProposalPenalty: string | number | bigint;
|
|
84
|
+
slashDuplicateAttestationPenalty: string | number | bigint;
|
|
81
85
|
slashAttestDescendantOfInvalidPenalty: string | number | bigint;
|
|
82
86
|
slashUnknownPenalty: string | number | bigint;
|
|
83
87
|
slashOffenseExpirationRounds: number;
|
|
@@ -87,4 +91,4 @@ export declare const SlasherConfigSchema: z.ZodObject<{
|
|
|
87
91
|
slashExecuteRoundsLookBack: number;
|
|
88
92
|
slashSelfAllowed?: boolean | undefined;
|
|
89
93
|
}>;
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhc2hlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvc2xhc2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUdoRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE1BQU0sTUFBTSxpQkFBaUIsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDO0FBRW5ELE1BQU0sV0FBVyxhQUFhO0lBQzVCLG9CQUFvQixDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ2xDLHlCQUF5QixFQUFFLE1BQU0sQ0FBQztJQUNsQyx5QkFBeUIsRUFBRSxNQUFNLENBQUM7SUFDbEMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDM0IscUJBQXFCLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDcEMsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDbkMsK0JBQStCLEVBQUUsTUFBTSxDQUFDO0lBQ3hDLHdDQUF3QyxFQUFFLE1BQU0sQ0FBQztJQUNqRCxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDMUIsMkJBQTJCLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQztJQUMvQixtQ0FBbUMsRUFBRSxNQUFNLENBQUM7SUFDNUMsNkJBQTZCLEVBQUUsTUFBTSxDQUFDO0lBQ3RDLGdDQUFnQyxFQUFFLE1BQU0sQ0FBQztJQUN6QyxzQ0FBc0MsRUFBRSxNQUFNLENBQUM7SUFDL0MscUNBQXFDLEVBQUUsTUFBTSxDQUFDO0lBQzlDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUM1Qiw0QkFBNEIsRUFBRSxNQUFNLENBQUM7SUFDckMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDO0lBQzVCLHVCQUF1QixFQUFFLE1BQU0sQ0FBQztJQUNoQywwQkFBMEIsRUFBRSxNQUFNLENBQUM7Q0FDcEM7QUFFRCxlQUFPLE1BQU0sbUJBQW1COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF3Qi9CLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slasher.d.ts","sourceRoot":"","sources":["../../src/interfaces/slasher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,UAAU,EAAE,CAAC;IACpC,oBAAoB,EAAE,UAAU,EAAE,CAAC;IACnC,+BAA+B,EAAE,MAAM,CAAC;IACxC,wCAAwC,EAAE,MAAM,CAAC;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2BAA2B,EAAE,MAAM,CAAC;IACpC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mCAAmC,EAAE,MAAM,CAAC;IAC5C,6BAA6B,EAAE,MAAM,CAAC;IACtC,sCAAsC,EAAE,MAAM,CAAC;IAC/C,qCAAqC,EAAE,MAAM,CAAC;IAC9C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4BAA4B,EAAE,MAAM,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"slasher.d.ts","sourceRoot":"","sources":["../../src/interfaces/slasher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,UAAU,EAAE,CAAC;IACpC,oBAAoB,EAAE,UAAU,EAAE,CAAC;IACnC,+BAA+B,EAAE,MAAM,CAAC;IACxC,wCAAwC,EAAE,MAAM,CAAC;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2BAA2B,EAAE,MAAM,CAAC;IACpC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mCAAmC,EAAE,MAAM,CAAC;IAC5C,6BAA6B,EAAE,MAAM,CAAC;IACtC,gCAAgC,EAAE,MAAM,CAAC;IACzC,sCAAsC,EAAE,MAAM,CAAC;IAC/C,qCAAqC,EAAE,MAAM,CAAC;IAC9C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4BAA4B,EAAE,MAAM,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB/B,CAAC"}
|
|
@@ -13,6 +13,7 @@ export const SlasherConfigSchema = zodFor()(z.object({
|
|
|
13
13
|
slashInactivityPenalty: schemas.BigInt,
|
|
14
14
|
slashProposeInvalidAttestationsPenalty: schemas.BigInt,
|
|
15
15
|
slashDuplicateProposalPenalty: schemas.BigInt,
|
|
16
|
+
slashDuplicateAttestationPenalty: schemas.BigInt,
|
|
16
17
|
slashAttestDescendantOfInvalidPenalty: schemas.BigInt,
|
|
17
18
|
slashUnknownPenalty: schemas.BigInt,
|
|
18
19
|
slashOffenseExpirationRounds: z.number(),
|
|
@@ -35,8 +35,10 @@ export type ValidatorClientConfig = ValidatorHASignerConfig & {
|
|
|
35
35
|
skipCheckpointProposalValidation?: boolean;
|
|
36
36
|
/** Skip pushing re-executed blocks to archiver (default: false) */
|
|
37
37
|
skipPushProposedBlocksToArchiver?: boolean;
|
|
38
|
+
/** Agree to attest to equivocated checkpoint proposals (for testing purposes only) */
|
|
39
|
+
attestToEquivocatedProposals?: boolean;
|
|
38
40
|
};
|
|
39
|
-
export type ValidatorClientFullConfig = ValidatorClientConfig & Pick<SequencerConfig, 'txPublicSetupAllowList' | 'broadcastInvalidBlockProposal'> & Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty' | 'slashDuplicateProposalPenalty'> & {
|
|
41
|
+
export type ValidatorClientFullConfig = ValidatorClientConfig & Pick<SequencerConfig, 'txPublicSetupAllowList' | 'broadcastInvalidBlockProposal'> & Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty' | 'slashDuplicateProposalPenalty' | 'slashDuplicateAttestationPenalty'> & {
|
|
40
42
|
/**
|
|
41
43
|
* Whether transactions are disabled for this node
|
|
42
44
|
* @remarks This should match the property in P2PConfig. It's not picked from there to avoid circular dependencies.
|
|
@@ -72,6 +74,7 @@ export declare const ValidatorClientConfigSchema: z.ZodObject<{
|
|
|
72
74
|
fishermanMode: z.ZodOptional<z.ZodBoolean>;
|
|
73
75
|
skipCheckpointProposalValidation: z.ZodOptional<z.ZodBoolean>;
|
|
74
76
|
skipPushProposedBlocksToArchiver: z.ZodOptional<z.ZodBoolean>;
|
|
77
|
+
attestToEquivocatedProposals: z.ZodOptional<z.ZodBoolean>;
|
|
75
78
|
}, "strip", z.ZodTypeAny, {
|
|
76
79
|
haSigningEnabled: boolean;
|
|
77
80
|
l1Contracts: {
|
|
@@ -96,6 +99,7 @@ export declare const ValidatorClientConfigSchema: z.ZodObject<{
|
|
|
96
99
|
fishermanMode?: boolean | undefined;
|
|
97
100
|
skipCheckpointProposalValidation?: boolean | undefined;
|
|
98
101
|
skipPushProposedBlocksToArchiver?: boolean | undefined;
|
|
102
|
+
attestToEquivocatedProposals?: boolean | undefined;
|
|
99
103
|
}, {
|
|
100
104
|
haSigningEnabled: boolean;
|
|
101
105
|
l1Contracts: {
|
|
@@ -120,6 +124,7 @@ export declare const ValidatorClientConfigSchema: z.ZodObject<{
|
|
|
120
124
|
fishermanMode?: boolean | undefined;
|
|
121
125
|
skipCheckpointProposalValidation?: boolean | undefined;
|
|
122
126
|
skipPushProposedBlocksToArchiver?: boolean | undefined;
|
|
127
|
+
attestToEquivocatedProposals?: boolean | undefined;
|
|
123
128
|
}>;
|
|
124
129
|
export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
125
130
|
haSigningEnabled: z.ZodBoolean;
|
|
@@ -150,6 +155,7 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
|
150
155
|
fishermanMode: z.ZodOptional<z.ZodBoolean>;
|
|
151
156
|
skipCheckpointProposalValidation: z.ZodOptional<z.ZodBoolean>;
|
|
152
157
|
skipPushProposedBlocksToArchiver: z.ZodOptional<z.ZodBoolean>;
|
|
158
|
+
attestToEquivocatedProposals: z.ZodOptional<z.ZodBoolean>;
|
|
153
159
|
} & {
|
|
154
160
|
txPublicSetupAllowList: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
|
|
155
161
|
address: import("@aztec/foundation/schemas").ZodFor<import("../aztec-address/index.js").AztecAddress>;
|
|
@@ -185,6 +191,7 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
|
185
191
|
broadcastInvalidBlockProposal: z.ZodOptional<z.ZodBoolean>;
|
|
186
192
|
slashBroadcastedInvalidBlockPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
187
193
|
slashDuplicateProposalPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
194
|
+
slashDuplicateAttestationPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
188
195
|
disableTransactions: z.ZodOptional<z.ZodBoolean>;
|
|
189
196
|
}, "strip", z.ZodTypeAny, {
|
|
190
197
|
haSigningEnabled: boolean;
|
|
@@ -210,6 +217,7 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
|
210
217
|
fishermanMode?: boolean | undefined;
|
|
211
218
|
skipCheckpointProposalValidation?: boolean | undefined;
|
|
212
219
|
skipPushProposedBlocksToArchiver?: boolean | undefined;
|
|
220
|
+
attestToEquivocatedProposals?: boolean | undefined;
|
|
213
221
|
txPublicSetupAllowList?: ({
|
|
214
222
|
address: import("../aztec-address/index.js").AztecAddress;
|
|
215
223
|
selector: import("../abi/function_selector.js").FunctionSelector;
|
|
@@ -224,6 +232,7 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
|
224
232
|
broadcastInvalidBlockProposal?: boolean | undefined;
|
|
225
233
|
slashBroadcastedInvalidBlockPenalty: bigint;
|
|
226
234
|
slashDuplicateProposalPenalty: bigint;
|
|
235
|
+
slashDuplicateAttestationPenalty: bigint;
|
|
227
236
|
disableTransactions?: boolean | undefined;
|
|
228
237
|
}, {
|
|
229
238
|
haSigningEnabled: boolean;
|
|
@@ -249,6 +258,7 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
|
249
258
|
fishermanMode?: boolean | undefined;
|
|
250
259
|
skipCheckpointProposalValidation?: boolean | undefined;
|
|
251
260
|
skipPushProposedBlocksToArchiver?: boolean | undefined;
|
|
261
|
+
attestToEquivocatedProposals?: boolean | undefined;
|
|
252
262
|
txPublicSetupAllowList?: ({
|
|
253
263
|
address?: any;
|
|
254
264
|
selector?: any;
|
|
@@ -263,6 +273,7 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
|
263
273
|
broadcastInvalidBlockProposal?: boolean | undefined;
|
|
264
274
|
slashBroadcastedInvalidBlockPenalty: string | number | bigint;
|
|
265
275
|
slashDuplicateProposalPenalty: string | number | bigint;
|
|
276
|
+
slashDuplicateAttestationPenalty: string | number | bigint;
|
|
266
277
|
disableTransactions?: boolean | undefined;
|
|
267
278
|
}>;
|
|
268
279
|
export type CreateCheckpointProposalLastBlockData = Omit<CheckpointLastBlockData, 'txHashes'> & {
|
|
@@ -292,4 +303,4 @@ export interface Validator {
|
|
|
292
303
|
collectAttestations(proposal: CheckpointProposal, required: number, deadline: Date): Promise<CheckpointAttestation[]>;
|
|
293
304
|
signAttestationsAndSigners(attestationsAndSigners: CommitteeAttestationsAndSigners, proposer: EthAddress, slot: SlotNumber, blockNumber: BlockNumber | CheckpointNumber): Promise<Signature>;
|
|
294
305
|
}
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pHLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEYsT0FBTyxLQUFLLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDMUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsS0FBSyx1QkFBdUIsRUFBaUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUVoSCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sS0FBSyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHekU7O0dBRUc7QUFDSCxNQUFNLE1BQU0scUJBQXFCLEdBQUcsdUJBQXVCLEdBQUc7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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/interfaces/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,KAAK,uBAAuB,EAAiC,MAAM,mCAAmC,CAAC;AAEhH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AAGzE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,uBAAuB,GAAG;IAC5D,6EAA6E;IAC7E,oBAAoB,CAAC,EAAE,WAAW,CAAC,KAAK,MAAM,EAAE,EAAE,CAAC,CAAC;IAEpD,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC;IAElC,+BAA+B;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,6DAA6D;IAC7D,kBAAkB,EAAE,UAAU,EAAE,CAAC;IAEjC,+DAA+D;IAC/D,4BAA4B,EAAE,MAAM,CAAC;IAErC,8EAA8E;IAC9E,kBAAkB,EAAE,OAAO,CAAC;IAE5B,qHAAqH;IACrH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IAExC,iJAAiJ;IACjJ,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,6EAA6E;IAC7E,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAE3C,mEAAmE;IACnE,gCAAgC,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/interfaces/validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,12 +11,14 @@ export const ValidatorClientConfigSchema = zodFor()(ValidatorHASignerConfigSchem
|
|
|
11
11
|
alwaysReexecuteBlockProposals: z.boolean().optional(),
|
|
12
12
|
fishermanMode: z.boolean().optional(),
|
|
13
13
|
skipCheckpointProposalValidation: z.boolean().optional(),
|
|
14
|
-
skipPushProposedBlocksToArchiver: z.boolean().optional()
|
|
14
|
+
skipPushProposedBlocksToArchiver: z.boolean().optional(),
|
|
15
|
+
attestToEquivocatedProposals: z.boolean().optional()
|
|
15
16
|
}));
|
|
16
17
|
export const ValidatorClientFullConfigSchema = zodFor()(ValidatorClientConfigSchema.extend({
|
|
17
18
|
txPublicSetupAllowList: z.array(AllowedElementSchema).optional(),
|
|
18
19
|
broadcastInvalidBlockProposal: z.boolean().optional(),
|
|
19
20
|
slashBroadcastedInvalidBlockPenalty: schemas.BigInt,
|
|
20
21
|
slashDuplicateProposalPenalty: schemas.BigInt,
|
|
22
|
+
slashDuplicateAttestationPenalty: schemas.BigInt,
|
|
21
23
|
disableTransactions: z.boolean().optional()
|
|
22
24
|
}));
|
package/dest/p2p/constants.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export declare const MAX_TX_SIZE_KB: number;
|
|
2
2
|
export declare const MAX_MESSAGE_SIZE_KB: number;
|
|
3
|
-
|
|
3
|
+
/** Maximum size for L2Block response (contains TxEffects, not full Txs with proofs) */
|
|
4
|
+
export declare const MAX_L2_BLOCK_SIZE_KB: number;
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcDJwL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFPLE1BQU0sY0FBYyxFQUFFLE1BQVksQ0FBQztBQUUxQyxlQUFPLE1BQU0sbUJBQW1CLEVBQUUsTUFBa0IsQ0FBQztBQUVyRCx1RkFBdUY7QUFDdkYsZUFBTyxNQUFNLG9CQUFvQixFQUFFLE1BQWlCLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/p2p/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,EAAE,MAAY,CAAC;AAE1C,eAAO,MAAM,mBAAmB,EAAE,MAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/p2p/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,EAAE,MAAY,CAAC;AAE1C,eAAO,MAAM,mBAAmB,EAAE,MAAkB,CAAC;AAErD,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,EAAE,MAAiB,CAAC"}
|
package/dest/p2p/constants.js
CHANGED
|
@@ -28,4 +28,4 @@ export declare function getFirstEligibleRoundForOffense(offense: OffenseIdentifi
|
|
|
28
28
|
epochDuration: number;
|
|
29
29
|
proofSubmissionEpochs: number;
|
|
30
30
|
}): bigint;
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1waXJlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2xhc2hpbmcvZW1waXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekM7Ozs7R0FJRztBQUNILHdCQUFnQix3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FNdEU7QUFFRCxzR0FBc0c7QUFDdEcsd0JBQWdCLGdDQUFnQyxDQUFDLE9BQU8sRUFBRSxZQUFZLEdBQUcsaUJBQWlCLEdBQUcsaUJBQWlCLEVBQUUsQ0FRL0c7QUFFRCxrR0FBa0c7QUFDbEcsd0JBQWdCLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FNOUU7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQWdCLHFCQUFxQixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxNQUFNLENBUXBFO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLCtCQUErQixDQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQzFCLFNBQVMsRUFBRTtJQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUE7Q0FBRSxHQUM3RixNQUFNLENBdUNSIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empire.d.ts","sourceRoot":"","sources":["../../src/slashing/empire.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAMtE;AAED,sGAAsG;AACtG,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,YAAY,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,CAQ/G;AAED,kGAAkG;AAClG,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAM9E;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAQpE;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,GAC7F,MAAM,
|
|
1
|
+
{"version":3,"file":"empire.d.ts","sourceRoot":"","sources":["../../src/slashing/empire.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAMtE;AAED,sGAAsG;AACtG,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,YAAY,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,CAQ/G;AAED,kGAAkG;AAClG,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAM9E;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAQpE;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,GAC7F,MAAM,CAuCR"}
|
package/dest/slashing/empire.js
CHANGED
|
@@ -65,6 +65,7 @@ import { OffenseType } from './types.js';
|
|
|
65
65
|
case OffenseType.ATTESTED_DESCENDANT_OF_INVALID:
|
|
66
66
|
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
|
|
67
67
|
case OffenseType.DUPLICATE_PROPOSAL:
|
|
68
|
+
case OffenseType.DUPLICATE_ATTESTATION:
|
|
68
69
|
{
|
|
69
70
|
const slot = offense.epochOrSlot;
|
|
70
71
|
const detectedSlot = SlotNumber.fromBigInt(slot + 1n);
|
|
@@ -20,7 +20,7 @@ export declare function getEpochsForRound(round: bigint, constants: {
|
|
|
20
20
|
epochDuration: number;
|
|
21
21
|
}): EpochNumber[];
|
|
22
22
|
/** Reads the configured penalty for a given offense type from a slasher config struct */
|
|
23
|
-
export declare function getPenaltyForOffense(offense: OffenseType, config: Pick<SlasherConfig, 'slashAttestDescendantOfInvalidPenalty' | 'slashBroadcastedInvalidBlockPenalty' | 'slashDuplicateProposalPenalty' | 'slashPrunePenalty' | 'slashDataWithholdingPenalty' | 'slashUnknownPenalty' | 'slashInactivityPenalty' | 'slashProposeInvalidAttestationsPenalty'>): bigint;
|
|
23
|
+
export declare function getPenaltyForOffense(offense: OffenseType, config: Pick<SlasherConfig, 'slashAttestDescendantOfInvalidPenalty' | 'slashBroadcastedInvalidBlockPenalty' | 'slashDuplicateProposalPenalty' | 'slashDuplicateAttestationPenalty' | 'slashPrunePenalty' | 'slashDataWithholdingPenalty' | 'slashUnknownPenalty' | 'slashInactivityPenalty' | 'slashProposeInvalidAttestationsPenalty'>): bigint;
|
|
24
24
|
/** Returns whether the `epochOrSlot` field for an offense references an epoch or a slot */
|
|
25
25
|
export declare function getTimeUnitForOffense(offense: OffenseType): 'epoch' | 'slot';
|
|
26
26
|
/** Returns the slot for a given offense. If the offense references an epoch, returns the first slot of the epoch. */
|
|
@@ -33,4 +33,4 @@ export declare function getRoundForOffense(offense: Pick<Offense, 'epochOrSlot'
|
|
|
33
33
|
slashingRoundSize: number;
|
|
34
34
|
epochDuration: number;
|
|
35
35
|
}): bigint;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NsYXNoaW5nL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsS0FBSyxpQkFBaUIsRUFBd0MsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RyxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXZELDRGQUE0RjtBQUM1Rix3QkFBZ0IsZUFBZSxDQUM3QixJQUFJLEVBQUUsVUFBVSxFQUNoQixTQUFTLEVBQUU7SUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUE7Q0FBRSxHQUN2QztJQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7SUFBQyxVQUFVLEVBQUUsVUFBVSxDQUFBO0NBQUUsQ0FNM0M7QUFFRCxnR0FBZ0c7QUFDaEcsd0JBQWdCLGlCQUFpQixDQUMvQixLQUFLLEVBQUUsV0FBVyxFQUNsQixTQUFTLEVBQUU7SUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFBQyxhQUFhLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDOUQsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBS2xCO0FBRUQsK0RBQStEO0FBQy9ELHdCQUFnQixpQkFBaUIsQ0FDL0IsS0FBSyxFQUFFLE1BQU0sRUFDYixTQUFTLEVBQUU7SUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFBQyxhQUFhLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDOUQsV0FBVyxFQUFFLENBVWY7QUFFRCx5RkFBeUY7QUFDekYsd0JBQWdCLG9CQUFvQixDQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUNwQixNQUFNLEVBQUUsSUFBSSxDQUNWLGFBQWEsRUFDWCx1Q0FBdUMsR0FDdkMscUNBQXFDLEdBQ3JDLCtCQUErQixHQUMvQixrQ0FBa0MsR0FDbEMsbUJBQW1CLEdBQ25CLDZCQUE2QixHQUM3QixxQkFBcUIsR0FDckIsd0JBQXdCLEdBQ3hCLHdDQUF3QyxDQUMzQyxVQTJCRjtBQUVELDJGQUEyRjtBQUMzRix3QkFBZ0IscUJBQXFCLENBQUMsT0FBTyxFQUFFLFdBQVcsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQW1CNUU7QUFFRCxxSEFBcUg7QUFDckgsd0JBQWdCLGlCQUFpQixDQUMvQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLEdBQUcsYUFBYSxDQUFDLEVBQ3JELFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLEdBQ2xELFVBQVUsQ0FLWjtBQUVELDZHQUE2RztBQUM3Ryx3QkFBZ0Isa0JBQWtCLENBQ2hDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsR0FBRyxhQUFhLENBQUMsRUFDckQsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsR0FDbEQsTUFBTSxDQUFDO0FBQ1Ysd0JBQWdCLGtCQUFrQixDQUNoQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxHQUFHLGFBQWEsQ0FBQyxDQUFDLEVBQzlELFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLEdBQ2xELE1BQU0sR0FBRyxTQUFTLENBQUM7QUFZdEIsb0VBQW9FO0FBQ3BFLHdCQUFnQixrQkFBa0IsQ0FDaEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxHQUFHLGFBQWEsQ0FBQyxFQUNyRCxTQUFTLEVBQUU7SUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFBQyxhQUFhLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDOUQsTUFBTSxDQUdSIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/slashing/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,KAAK,iBAAiB,EAAwC,MAAM,2BAA2B,CAAC;AACzG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvD,4FAA4F;AAC5F,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,CAM3C;AAED,gGAAgG;AAChG,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC9D,CAAC,MAAM,EAAE,MAAM,CAAC,CAKlB;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC9D,WAAW,EAAE,CAUf;AAED,yFAAyF;AACzF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,IAAI,CACV,aAAa,EACX,uCAAuC,GACvC,qCAAqC,GACrC,+BAA+B,GAC/B,mBAAmB,GACnB,6BAA6B,GAC7B,qBAAqB,GACrB,wBAAwB,GACxB,wCAAwC,CAC3C,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/slashing/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,KAAK,iBAAiB,EAAwC,MAAM,2BAA2B,CAAC;AACzG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvD,4FAA4F;AAC5F,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,CAM3C;AAED,gGAAgG;AAChG,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC9D,CAAC,MAAM,EAAE,MAAM,CAAC,CAKlB;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC9D,WAAW,EAAE,CAUf;AAED,yFAAyF;AACzF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,IAAI,CACV,aAAa,EACX,uCAAuC,GACvC,qCAAqC,GACrC,+BAA+B,GAC/B,kCAAkC,GAClC,mBAAmB,GACnB,6BAA6B,GAC7B,qBAAqB,GACrB,wBAAwB,GACxB,wCAAwC,CAC3C,UA2BF;AAED,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,GAAG,MAAM,CAmB5E;AAED,qHAAqH;AACrH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAAC,EACrD,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAClD,UAAU,CAKZ;AAED,6GAA6G;AAC7G,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAAC,EACrD,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAClD,MAAM,CAAC;AACV,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAAC,CAAC,EAC9D,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAClD,MAAM,GAAG,SAAS,CAAC;AAYtB,oEAAoE;AACpE,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAAC,EACrD,SAAS,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC9D,MAAM,CAGR"}
|
package/dest/slashing/helpers.js
CHANGED
|
@@ -48,6 +48,8 @@ import { OffenseType } from './types.js';
|
|
|
48
48
|
return config.slashBroadcastedInvalidBlockPenalty;
|
|
49
49
|
case OffenseType.DUPLICATE_PROPOSAL:
|
|
50
50
|
return config.slashDuplicateProposalPenalty;
|
|
51
|
+
case OffenseType.DUPLICATE_ATTESTATION:
|
|
52
|
+
return config.slashDuplicateAttestationPenalty;
|
|
51
53
|
case OffenseType.UNKNOWN:
|
|
52
54
|
return config.slashUnknownPenalty;
|
|
53
55
|
default:
|
|
@@ -62,6 +64,7 @@ import { OffenseType } from './types.js';
|
|
|
62
64
|
case OffenseType.ATTESTED_DESCENDANT_OF_INVALID:
|
|
63
65
|
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
|
|
64
66
|
case OffenseType.DUPLICATE_PROPOSAL:
|
|
67
|
+
case OffenseType.DUPLICATE_ATTESTATION:
|
|
65
68
|
case OffenseType.PROPOSED_INCORRECT_ATTESTATIONS:
|
|
66
69
|
case OffenseType.PROPOSED_INSUFFICIENT_ATTESTATIONS:
|
|
67
70
|
return 'slot';
|
package/dest/slashing/types.d.ts
CHANGED
|
@@ -17,9 +17,11 @@ export declare enum OffenseType {
|
|
|
17
17
|
/** A committee member attested to a block that was built as a descendent of an invalid block (as in a block with invalid attestations) */
|
|
18
18
|
ATTESTED_DESCENDANT_OF_INVALID = 7,
|
|
19
19
|
/** A proposer sent duplicate proposals for the same position (slot, indexWithinCheckpoint for blocks or slot for checkpoints) */
|
|
20
|
-
DUPLICATE_PROPOSAL = 8
|
|
20
|
+
DUPLICATE_PROPOSAL = 8,
|
|
21
|
+
/** A validator signed attestations for different proposals at the same slot (equivocation) */
|
|
22
|
+
DUPLICATE_ATTESTATION = 9
|
|
21
23
|
}
|
|
22
|
-
export declare function getOffenseTypeName(offense: OffenseType): "attested_descendant_of_invalid" | "broadcasted_invalid_block_proposal" | "data_withholding" | "duplicate_proposal" | "inactivity" | "proposed_incorrect_attestations" | "proposed_insufficient_attestations" | "unknown" | "valid_epoch_pruned";
|
|
24
|
+
export declare function getOffenseTypeName(offense: OffenseType): "attested_descendant_of_invalid" | "broadcasted_invalid_block_proposal" | "data_withholding" | "duplicate_attestation" | "duplicate_proposal" | "inactivity" | "proposed_incorrect_attestations" | "proposed_insufficient_attestations" | "unknown" | "valid_epoch_pruned";
|
|
23
25
|
export declare const OffenseTypeSchema: z.ZodNativeEnum<typeof OffenseType>;
|
|
24
26
|
export declare const OffenseToBigInt: Record<OffenseType, bigint>;
|
|
25
27
|
export declare function bigIntToOffense(offense: bigint): OffenseType;
|
|
@@ -160,4 +162,4 @@ export type ProposerSlashAction =
|
|
|
160
162
|
round: bigint;
|
|
161
163
|
};
|
|
162
164
|
export type ProposerSlashActionType = ProposerSlashAction['type'];
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zbGFzaGluZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0QsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl4QixvQkFBWSxXQUFXO0lBQ3JCLE9BQU8sSUFBSTtJQUNYLHVGQUF1RjtJQUN2RixnQkFBZ0IsSUFBSTtJQUNwQiwyRUFBMkU7SUFDM0Usa0JBQWtCLElBQUk7SUFDdEIsdUZBQXVGO0lBQ3ZGLFVBQVUsSUFBSTtJQUNkLHNGQUFzRjtJQUN0RixrQ0FBa0MsSUFBSTtJQUN0QywrRUFBK0U7SUFDL0Usa0NBQWtDLElBQUk7SUFDdEMsdUhBQXVIO0lBQ3ZILCtCQUErQixJQUFJO0lBQ25DLDBJQUEwSTtJQUMxSSw4QkFBOEIsSUFBSTtJQUNsQyxpSUFBaUk7SUFDakksa0JBQWtCLElBQUk7SUFDdEIsOEZBQThGO0lBQzlGLHFCQUFxQixJQUFJO0NBQzFCO0FBRUQsd0JBQWdCLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxXQUFXLDhRQXlCdEQ7QUFFRCxlQUFPLE1BQU0saUJBQWlCLHFDQUE0QixDQUFDO0FBRTNELGVBQU8sTUFBTSxlQUFlLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBV3ZELENBQUM7QUFFRix3QkFBZ0IsZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsV0FBVyxDQXlCNUQ7QUFFRCxNQUFNLE1BQU0sT0FBTyxHQUFHO0lBQ3BCLFNBQVMsRUFBRSxVQUFVLENBQUM7SUFDdEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLFdBQVcsRUFBRSxXQUFXLENBQUM7SUFDekIsV0FBVyxFQUFFLE1BQU0sQ0FBQztDQUNyQixDQUFDO0FBRUYsTUFBTSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxHQUFHLGFBQWEsR0FBRyxhQUFhLENBQUMsQ0FBQztBQUUzRixlQUFPLE1BQU0sYUFBYTs7Ozs7Ozs7Ozs7Ozs7O0VBT3pCLENBQUM7QUFFRiwrREFBK0Q7QUFDL0QsTUFBTSxNQUFNLHFCQUFxQixHQUFHO0lBQ2xDLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsV0FBVyxFQUFFLFdBQVcsQ0FBQztDQUMxQixDQUFDO0FBRUYseUZBQXlGO0FBQ3pGLE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFDM0IsU0FBUyxFQUFFLFVBQVUsQ0FBQztJQUN0QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsUUFBUSxFQUFFLHFCQUFxQixFQUFFLENBQUM7Q0FDbkMsQ0FBQztBQUVGLDhEQUE4RDtBQUM5RCxNQUFNLE1BQU0sWUFBWSxHQUFHO0lBQ3pCLE9BQU8sRUFBRSxVQUFVLENBQUM7SUFDcEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDO0lBQzFCLFNBQVMsRUFBRSxNQUFNLENBQUM7Q0FDbkIsQ0FBQztBQUVGLHNFQUFzRTtBQUN0RSxNQUFNLE1BQU0saUJBQWlCLEdBQUcsWUFBWSxHQUFHO0lBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUFDLEtBQUssRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFDO0FBRWhGLGVBQU8sTUFBTSx1QkFBdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBY25DLENBQUM7QUFFRixrRUFBa0U7QUFDbEUsTUFBTSxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQztBQUV4QyxNQUFNLE1BQU0sbUJBQW1CO0FBQzdCLG1FQUFtRTtBQUNqRTtJQUFFLElBQUksRUFBRSx1QkFBdUIsQ0FBQztJQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQTtDQUFFO0FBQzNELG9FQUFvRTtHQUNsRTtJQUFFLElBQUksRUFBRSxxQkFBcUIsQ0FBQztJQUFDLE9BQU8sRUFBRSxVQUFVLENBQUE7Q0FBRTtBQUN0RCxtRUFBbUU7R0FDakU7SUFBRSxJQUFJLEVBQUUsd0JBQXdCLENBQUM7SUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0NBQUU7QUFDbkQseURBQXlEO0dBQ3ZEO0lBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQztJQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxDQUFDO0lBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUM7SUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0NBQUU7QUFDbkcsZ0VBQWdFO0dBQzlEO0lBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQztJQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDO0lBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUM7QUFFekUsTUFBTSxNQUFNLHVCQUF1QixHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/slashing/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,oBAAY,WAAW;IACrB,OAAO,IAAI;IACX,uFAAuF;IACvF,gBAAgB,IAAI;IACpB,2EAA2E;IAC3E,kBAAkB,IAAI;IACtB,uFAAuF;IACvF,UAAU,IAAI;IACd,sFAAsF;IACtF,kCAAkC,IAAI;IACtC,+EAA+E;IAC/E,kCAAkC,IAAI;IACtC,uHAAuH;IACvH,+BAA+B,IAAI;IACnC,0IAA0I;IAC1I,8BAA8B,IAAI;IAClC,iIAAiI;IACjI,kBAAkB,IAAI;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/slashing/types.ts"],"names":[],"mappings":"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"}
|
package/dest/slashing/types.js
CHANGED
|
@@ -10,6 +10,7 @@ export var OffenseType = /*#__PURE__*/ function(OffenseType) {
|
|
|
10
10
|
/** A proposer pushed to L1 a block with incorrect committee attestations (ie signature from a non-committee member) */ OffenseType[OffenseType["PROPOSED_INCORRECT_ATTESTATIONS"] = 6] = "PROPOSED_INCORRECT_ATTESTATIONS";
|
|
11
11
|
/** A committee member attested to a block that was built as a descendent of an invalid block (as in a block with invalid attestations) */ OffenseType[OffenseType["ATTESTED_DESCENDANT_OF_INVALID"] = 7] = "ATTESTED_DESCENDANT_OF_INVALID";
|
|
12
12
|
/** A proposer sent duplicate proposals for the same position (slot, indexWithinCheckpoint for blocks or slot for checkpoints) */ OffenseType[OffenseType["DUPLICATE_PROPOSAL"] = 8] = "DUPLICATE_PROPOSAL";
|
|
13
|
+
/** A validator signed attestations for different proposals at the same slot (equivocation) */ OffenseType[OffenseType["DUPLICATE_ATTESTATION"] = 9] = "DUPLICATE_ATTESTATION";
|
|
13
14
|
return OffenseType;
|
|
14
15
|
}({});
|
|
15
16
|
export function getOffenseTypeName(offense) {
|
|
@@ -32,6 +33,8 @@ export function getOffenseTypeName(offense) {
|
|
|
32
33
|
return 'attested_descendant_of_invalid';
|
|
33
34
|
case 8:
|
|
34
35
|
return 'duplicate_proposal';
|
|
36
|
+
case 9:
|
|
37
|
+
return 'duplicate_attestation';
|
|
35
38
|
default:
|
|
36
39
|
throw new Error(`Unknown offense type: ${offense}`);
|
|
37
40
|
}
|
|
@@ -46,7 +49,8 @@ export const OffenseToBigInt = {
|
|
|
46
49
|
[5]: 5n,
|
|
47
50
|
[6]: 6n,
|
|
48
51
|
[7]: 7n,
|
|
49
|
-
[8]: 8n
|
|
52
|
+
[8]: 8n,
|
|
53
|
+
[9]: 9n
|
|
50
54
|
};
|
|
51
55
|
export function bigIntToOffense(offense) {
|
|
52
56
|
switch(offense){
|
|
@@ -68,6 +72,8 @@ export function bigIntToOffense(offense) {
|
|
|
68
72
|
return 7;
|
|
69
73
|
case 8n:
|
|
70
74
|
return 8;
|
|
75
|
+
case 9n:
|
|
76
|
+
return 9;
|
|
71
77
|
default:
|
|
72
78
|
throw new Error(`Unknown offense: ${offense}`);
|
|
73
79
|
}
|
|
@@ -94,6 +94,7 @@ export declare class PublicDataTreeLeafPreimage implements IndexedTreeLeafPreima
|
|
|
94
94
|
asLeaf(): PublicDataTreeLeaf;
|
|
95
95
|
toBuffer(): Buffer;
|
|
96
96
|
toHashInputs(): Buffer[];
|
|
97
|
+
hash(): Promise<Fr>;
|
|
97
98
|
clone(): PublicDataTreeLeafPreimage;
|
|
98
99
|
static random(): PublicDataTreeLeafPreimage;
|
|
99
100
|
static empty(): PublicDataTreeLeafPreimage;
|
|
@@ -155,4 +156,4 @@ export declare class PublicDataTreeLeaf implements IndexedTreeLeaf {
|
|
|
155
156
|
*/
|
|
156
157
|
static fromPlainObject(obj: any): PublicDataTreeLeaf;
|
|
157
158
|
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2RhdGFfbGVhZi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyZWVzL3B1YmxpY19kYXRhX2xlYWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEYsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qjs7O0dBR0c7QUFDSCxxQkFBYSwwQkFBMkIsWUFBVyx1QkFBdUI7SUFFdEU7O09BRUc7SUFDSSxJQUFJLEVBQUUsa0JBQWtCO0lBQy9COztPQUVHO0lBQ0ksT0FBTyxFQUFFLEVBQUU7SUFDbEI7O09BRUc7SUFDSSxTQUFTLEVBQUUsTUFBTTtJQVoxQjtJQUNFOztPQUVHO0lBQ0ksSUFBSSxFQUFFLGtCQUFrQjtJQUMvQjs7T0FFRztJQUNJLE9BQU8sRUFBRSxFQUFFO0lBQ2xCOztPQUVHO0lBQ0ksU0FBUyxFQUFFLE1BQU0sRUFDdEI7SUFFSixNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQVFoQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRywwQkFBMEIsQ0FTM0Q7SUFFRCxNQUFNLEtBQUssVUFBVTs7Ozs7Ozs7Ozs7O09BRXBCO0lBRUQsTUFBTSxJQUFJLE1BQU0sQ0FFZjtJQUVELFVBQVUsSUFBSSxNQUFNLENBRW5CO0lBRUQsWUFBWSxJQUFJLE1BQU0sQ0FFckI7SUFFRCxNQUFNLElBQUksa0JBQWtCLENBRTNCO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxZQUFZLElBQUksTUFBTSxFQUFFLENBTXZCO0lBRUQsSUFBSSxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFbEI7SUFFRCxLQUFLLElBQUksMEJBQTBCLENBRWxDO0lBRUQsTUFBTSxDQUFDLE1BQU0sK0JBTVo7SUFFRCxNQUFNLENBQUMsS0FBSyxJQUFJLDBCQUEwQixDQUV6QztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsMEJBQTBCLENBTzNFO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxHQUFHLDBCQUEwQixDQUV4RztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLDBCQUEwQixHQUFHLDBCQUEwQixDQUU3RTtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSxrQkFBbUIsWUFBVyxlQUFlO0lBRXREOztPQUVHO0lBQ0ksSUFBSSxFQUFFLEVBQUU7SUFDZjs7T0FFRztJQUNJLEtBQUssRUFBRSxFQUFFO0lBUmxCO0lBQ0U7O09BRUc7SUFDSSxJQUFJLEVBQUUsRUFBRTtJQUNmOztPQUVHO0lBQ0ksS0FBSyxFQUFFLEVBQUUsRUFDZDtJQUVKLE1BQU0sSUFBSSxNQUFNLENBRWY7SUFFRCxRQUFRLDRCQUVQO0lBRUQsS0FBSyxJQUFJLGtCQUFrQixDQUUxQjtJQUVELFlBQVksSUFBSSxNQUFNLEVBQUUsQ0FFdkI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxzQkFHOUM7SUFFRCxNQUFNLENBQUMsT0FBTyxFQUFFLGtCQUFrQixHQUFHLE9BQU8sQ0FFM0M7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsUUFBUSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FLeEQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsa0JBQWtCLENBRWpEO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxrQkFBa0IsQ0FFakM7SUFFRCxNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7O09BT2hCO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLGtCQUFrQixDQUtuRDtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_data_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/public_data_leaf.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"public_data_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/public_data_leaf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,uBAAuB;IAEtE;;OAEG;IACI,IAAI,EAAE,kBAAkB;IAC/B;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,SAAS,EAAE,MAAM;IAZ1B;IACE;;OAEG;IACI,IAAI,EAAE,kBAAkB;IAC/B;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,SAAS,EAAE,MAAM,EACtB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,0BAA0B,CAS3D;IAED,MAAM,KAAK,UAAU;;;;;;;;;;;;OAEpB;IAED,MAAM,IAAI,MAAM,CAEf;IAED,UAAU,IAAI,MAAM,CAEnB;IAED,YAAY,IAAI,MAAM,CAErB;IAED,MAAM,IAAI,kBAAkB,CAE3B;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,YAAY,IAAI,MAAM,EAAE,CAMvB;IAED,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,CAElB;IAED,KAAK,IAAI,0BAA0B,CAElC;IAED,MAAM,CAAC,MAAM,+BAMZ;IAED,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAEzC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,0BAA0B,CAO3E;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,0BAA0B,CAExG;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,0BAA0B,GAAG,0BAA0B,CAE7E;CACF;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,eAAe;IAEtD;;OAEG;IACI,IAAI,EAAE,EAAE;IACf;;OAEG;IACI,KAAK,EAAE,EAAE;IARlB;IACE;;OAEG;IACI,IAAI,EAAE,EAAE;IACf;;OAEG;IACI,KAAK,EAAE,EAAE,EACd;IAEJ,MAAM,IAAI,MAAM,CAEf;IAED,QAAQ,4BAEP;IAED,KAAK,IAAI,kBAAkB,CAE1B;IAED,YAAY,IAAI,MAAM,EAAE,CAEvB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,sBAG9C;IAED,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAE3C;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAKxD;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAEjD;IAED,MAAM,CAAC,KAAK,IAAI,kBAAkB,CAEjC;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;OAOhB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,kBAAkB,CAKnD;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { toBigIntBE, toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
2
|
+
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
2
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { schemas } from '@aztec/foundation/schemas';
|
|
4
5
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
@@ -61,10 +62,13 @@ import { z } from 'zod';
|
|
|
61
62
|
toHashInputs() {
|
|
62
63
|
return [
|
|
63
64
|
...this.leaf.toHashInputs(),
|
|
64
|
-
Buffer.from(
|
|
65
|
-
Buffer.from(this.
|
|
65
|
+
Buffer.from(this.nextKey.toBuffer()),
|
|
66
|
+
Buffer.from(toBufferBE(this.nextIndex, 32))
|
|
66
67
|
];
|
|
67
68
|
}
|
|
69
|
+
hash() {
|
|
70
|
+
return poseidon2Hash(this.toHashInputs());
|
|
71
|
+
}
|
|
68
72
|
clone() {
|
|
69
73
|
return new PublicDataTreeLeafPreimage(this.leaf.clone(), this.nextKey, this.nextIndex);
|
|
70
74
|
}
|
|
@@ -76,10 +80,7 @@ import { z } from 'zod';
|
|
|
76
80
|
}
|
|
77
81
|
static fromBuffer(buffer) {
|
|
78
82
|
const reader = BufferReader.asReader(buffer);
|
|
79
|
-
|
|
80
|
-
const nextIndex = toBigIntBE(reader.readBytes(32));
|
|
81
|
-
const nextSlot = Fr.fromBuffer(reader);
|
|
82
|
-
return new PublicDataTreeLeafPreimage(value, nextSlot, nextIndex);
|
|
83
|
+
return new PublicDataTreeLeafPreimage(PublicDataTreeLeaf.fromBuffer(reader), Fr.fromBuffer(reader), toBigIntBE(reader.readBytes(32)));
|
|
83
84
|
}
|
|
84
85
|
static fromLeaf(leaf, nextKey, nextIndex) {
|
|
85
86
|
return new PublicDataTreeLeafPreimage(leaf, new Fr(nextKey), nextIndex);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AnyTx, TxValidationResult, TxValidator } from './tx_validator.js';
|
|
2
|
-
export declare class EmptyTxValidator<T
|
|
2
|
+
export declare class EmptyTxValidator<T = AnyTx> implements TxValidator<T> {
|
|
3
3
|
validateTx(_tx: T): Promise<TxValidationResult>;
|
|
4
4
|
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHlfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHgvdmFsaWRhdG9yL2VtcHR5X3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEYscUJBQWEsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBRSxZQUFXLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDekQsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBRXJEO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty_validator.d.ts","sourceRoot":"","sources":["../../../src/tx/validator/empty_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhF,qBAAa,gBAAgB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"empty_validator.d.ts","sourceRoot":"","sources":["../../../src/tx/validator/empty_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhF,qBAAa,gBAAgB,CAAC,CAAC,GAAG,KAAK,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;IACzD,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAErD;CACF"}
|
|
@@ -14,7 +14,7 @@ export type TxValidationResult = {
|
|
|
14
14
|
result: 'skipped';
|
|
15
15
|
reason: string[];
|
|
16
16
|
};
|
|
17
|
-
export interface TxValidator<T
|
|
17
|
+
export interface TxValidator<T = AnyTx> {
|
|
18
18
|
validateTx(tx: T): Promise<TxValidationResult>;
|
|
19
19
|
}
|
|
20
20
|
export declare const TxValidationResultSchema: z.ZodDiscriminatedUnion<"result", [z.ZodObject<{
|
|
@@ -42,4 +42,4 @@ export declare const TxValidationResultSchema: z.ZodDiscriminatedUnion<"result",
|
|
|
42
42
|
result: "skipped";
|
|
43
43
|
reason: string[];
|
|
44
44
|
}>]>;
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHgvdmFsaWRhdG9yL3R4X3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBR3hCLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsTUFBTSxNQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsV0FBVyxDQUFDO0FBRXJDLHdCQUFnQixTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssR0FBRyxNQUFNLENBRTNDO0FBRUQsd0JBQWdCLGNBQWMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxHQUFHLE9BQU8sQ0FFakQ7QUFFRCxNQUFNLE1BQU0sa0JBQWtCLEdBQzFCO0lBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQTtDQUFFLEdBQ25CO0lBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztJQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQTtDQUFFLEdBQ3ZDO0lBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztJQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQTtDQUFFLENBQUM7QUFFNUMsTUFBTSxXQUFXLFdBQVcsQ0FBQyxDQUFDLEdBQUcsS0FBSztJQUNwQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztDQUNoRDtBQUVELGVBQU8sTUFBTSx3QkFBd0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQU1wQyxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_validator.d.ts","sourceRoot":"","sources":["../../../src/tx/validator/tx_validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,KAAK,GAAG,EAAE,GAAG,WAAW,CAAC;AAErC,wBAAgB,SAAS,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM,CAE3C;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,KAAK,GAAG,OAAO,CAEjD;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GACnB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE5C,MAAM,WAAW,WAAW,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"tx_validator.d.ts","sourceRoot":"","sources":["../../../src/tx/validator/tx_validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,KAAK,GAAG,EAAE,GAAG,WAAW,CAAC;AAErC,wBAAgB,SAAS,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM,CAE3C;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,KAAK,GAAG,OAAO,CAEjD;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GACnB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE5C,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,KAAK;IACpC,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAChD;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;IAMpC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.f8ca9b2f3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -90,14 +90,14 @@
|
|
|
90
90
|
},
|
|
91
91
|
"dependencies": {
|
|
92
92
|
"@aws-sdk/client-s3": "^3.892.0",
|
|
93
|
-
"@aztec/bb.js": "0.0.1-commit.
|
|
94
|
-
"@aztec/blob-lib": "0.0.1-commit.
|
|
95
|
-
"@aztec/constants": "0.0.1-commit.
|
|
96
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
97
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
98
|
-
"@aztec/l1-artifacts": "0.0.1-commit.
|
|
99
|
-
"@aztec/noir-noirc_abi": "0.0.1-commit.
|
|
100
|
-
"@aztec/validator-ha-signer": "0.0.1-commit.
|
|
93
|
+
"@aztec/bb.js": "0.0.1-commit.f8ca9b2f3",
|
|
94
|
+
"@aztec/blob-lib": "0.0.1-commit.f8ca9b2f3",
|
|
95
|
+
"@aztec/constants": "0.0.1-commit.f8ca9b2f3",
|
|
96
|
+
"@aztec/ethereum": "0.0.1-commit.f8ca9b2f3",
|
|
97
|
+
"@aztec/foundation": "0.0.1-commit.f8ca9b2f3",
|
|
98
|
+
"@aztec/l1-artifacts": "0.0.1-commit.f8ca9b2f3",
|
|
99
|
+
"@aztec/noir-noirc_abi": "0.0.1-commit.f8ca9b2f3",
|
|
100
|
+
"@aztec/validator-ha-signer": "0.0.1-commit.f8ca9b2f3",
|
|
101
101
|
"@google-cloud/storage": "^7.15.0",
|
|
102
102
|
"axios": "^1.12.0",
|
|
103
103
|
"json-stringify-deterministic": "1.0.12",
|
|
@@ -19,6 +19,8 @@ export interface NodeInfo {
|
|
|
19
19
|
l1ContractAddresses: L1ContractAddresses;
|
|
20
20
|
/** Protocol contract addresses */
|
|
21
21
|
protocolContractAddresses: ProtocolContractAddresses;
|
|
22
|
+
/** Whether the node requires real proofs for transaction submission. */
|
|
23
|
+
realProofs: boolean;
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
export const NodeInfoSchema: ZodFor<NodeInfo> = z
|
|
@@ -29,5 +31,6 @@ export const NodeInfoSchema: ZodFor<NodeInfo> = z
|
|
|
29
31
|
enr: z.string().optional(),
|
|
30
32
|
l1ContractAddresses: L1ContractAddressesSchema,
|
|
31
33
|
protocolContractAddresses: ProtocolContractAddressesSchema,
|
|
34
|
+
realProofs: z.boolean(),
|
|
32
35
|
})
|
|
33
36
|
.transform(obj => ({ enr: undefined, ...obj }));
|
|
@@ -19,6 +19,7 @@ export interface SlasherConfig {
|
|
|
19
19
|
slashInactivityPenalty: bigint;
|
|
20
20
|
slashBroadcastedInvalidBlockPenalty: bigint;
|
|
21
21
|
slashDuplicateProposalPenalty: bigint;
|
|
22
|
+
slashDuplicateAttestationPenalty: bigint;
|
|
22
23
|
slashProposeInvalidAttestationsPenalty: bigint;
|
|
23
24
|
slashAttestDescendantOfInvalidPenalty: bigint;
|
|
24
25
|
slashUnknownPenalty: bigint;
|
|
@@ -42,6 +43,7 @@ export const SlasherConfigSchema = zodFor<SlasherConfig>()(
|
|
|
42
43
|
slashInactivityPenalty: schemas.BigInt,
|
|
43
44
|
slashProposeInvalidAttestationsPenalty: schemas.BigInt,
|
|
44
45
|
slashDuplicateProposalPenalty: schemas.BigInt,
|
|
46
|
+
slashDuplicateAttestationPenalty: schemas.BigInt,
|
|
45
47
|
slashAttestDescendantOfInvalidPenalty: schemas.BigInt,
|
|
46
48
|
slashUnknownPenalty: schemas.BigInt,
|
|
47
49
|
slashOffenseExpirationRounds: z.number(),
|
|
@@ -56,11 +56,17 @@ export type ValidatorClientConfig = ValidatorHASignerConfig & {
|
|
|
56
56
|
|
|
57
57
|
/** Skip pushing re-executed blocks to archiver (default: false) */
|
|
58
58
|
skipPushProposedBlocksToArchiver?: boolean;
|
|
59
|
+
|
|
60
|
+
/** Agree to attest to equivocated checkpoint proposals (for testing purposes only) */
|
|
61
|
+
attestToEquivocatedProposals?: boolean;
|
|
59
62
|
};
|
|
60
63
|
|
|
61
64
|
export type ValidatorClientFullConfig = ValidatorClientConfig &
|
|
62
65
|
Pick<SequencerConfig, 'txPublicSetupAllowList' | 'broadcastInvalidBlockProposal'> &
|
|
63
|
-
Pick<
|
|
66
|
+
Pick<
|
|
67
|
+
SlasherConfig,
|
|
68
|
+
'slashBroadcastedInvalidBlockPenalty' | 'slashDuplicateProposalPenalty' | 'slashDuplicateAttestationPenalty'
|
|
69
|
+
> & {
|
|
64
70
|
/**
|
|
65
71
|
* Whether transactions are disabled for this node
|
|
66
72
|
* @remarks This should match the property in P2PConfig. It's not picked from there to avoid circular dependencies.
|
|
@@ -79,6 +85,7 @@ export const ValidatorClientConfigSchema = zodFor<Omit<ValidatorClientConfig, 'v
|
|
|
79
85
|
fishermanMode: z.boolean().optional(),
|
|
80
86
|
skipCheckpointProposalValidation: z.boolean().optional(),
|
|
81
87
|
skipPushProposedBlocksToArchiver: z.boolean().optional(),
|
|
88
|
+
attestToEquivocatedProposals: z.boolean().optional(),
|
|
82
89
|
}),
|
|
83
90
|
);
|
|
84
91
|
|
|
@@ -88,6 +95,7 @@ export const ValidatorClientFullConfigSchema = zodFor<Omit<ValidatorClientFullCo
|
|
|
88
95
|
broadcastInvalidBlockProposal: z.boolean().optional(),
|
|
89
96
|
slashBroadcastedInvalidBlockPenalty: schemas.BigInt,
|
|
90
97
|
slashDuplicateProposalPenalty: schemas.BigInt,
|
|
98
|
+
slashDuplicateAttestationPenalty: schemas.BigInt,
|
|
91
99
|
disableTransactions: z.boolean().optional(),
|
|
92
100
|
}),
|
|
93
101
|
);
|
package/src/p2p/constants.ts
CHANGED
package/src/slashing/empire.ts
CHANGED
|
@@ -84,7 +84,8 @@ export function getFirstEligibleRoundForOffense(
|
|
|
84
84
|
case OffenseType.PROPOSED_INCORRECT_ATTESTATIONS:
|
|
85
85
|
case OffenseType.ATTESTED_DESCENDANT_OF_INVALID:
|
|
86
86
|
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
|
|
87
|
-
case OffenseType.DUPLICATE_PROPOSAL:
|
|
87
|
+
case OffenseType.DUPLICATE_PROPOSAL:
|
|
88
|
+
case OffenseType.DUPLICATE_ATTESTATION: {
|
|
88
89
|
const slot = offense.epochOrSlot;
|
|
89
90
|
const detectedSlot = SlotNumber.fromBigInt(slot + 1n);
|
|
90
91
|
return getRoundForSlot(detectedSlot, constants).round + 1n;
|
package/src/slashing/helpers.ts
CHANGED
|
@@ -51,6 +51,7 @@ export function getPenaltyForOffense(
|
|
|
51
51
|
| 'slashAttestDescendantOfInvalidPenalty'
|
|
52
52
|
| 'slashBroadcastedInvalidBlockPenalty'
|
|
53
53
|
| 'slashDuplicateProposalPenalty'
|
|
54
|
+
| 'slashDuplicateAttestationPenalty'
|
|
54
55
|
| 'slashPrunePenalty'
|
|
55
56
|
| 'slashDataWithholdingPenalty'
|
|
56
57
|
| 'slashUnknownPenalty'
|
|
@@ -74,6 +75,8 @@ export function getPenaltyForOffense(
|
|
|
74
75
|
return config.slashBroadcastedInvalidBlockPenalty;
|
|
75
76
|
case OffenseType.DUPLICATE_PROPOSAL:
|
|
76
77
|
return config.slashDuplicateProposalPenalty;
|
|
78
|
+
case OffenseType.DUPLICATE_ATTESTATION:
|
|
79
|
+
return config.slashDuplicateAttestationPenalty;
|
|
77
80
|
case OffenseType.UNKNOWN:
|
|
78
81
|
return config.slashUnknownPenalty;
|
|
79
82
|
default: {
|
|
@@ -89,6 +92,7 @@ export function getTimeUnitForOffense(offense: OffenseType): 'epoch' | 'slot' {
|
|
|
89
92
|
case OffenseType.ATTESTED_DESCENDANT_OF_INVALID:
|
|
90
93
|
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
|
|
91
94
|
case OffenseType.DUPLICATE_PROPOSAL:
|
|
95
|
+
case OffenseType.DUPLICATE_ATTESTATION:
|
|
92
96
|
case OffenseType.PROPOSED_INCORRECT_ATTESTATIONS:
|
|
93
97
|
case OffenseType.PROPOSED_INSUFFICIENT_ATTESTATIONS:
|
|
94
98
|
return 'slot';
|
package/src/slashing/types.ts
CHANGED
|
@@ -22,6 +22,8 @@ export enum OffenseType {
|
|
|
22
22
|
ATTESTED_DESCENDANT_OF_INVALID = 7,
|
|
23
23
|
/** A proposer sent duplicate proposals for the same position (slot, indexWithinCheckpoint for blocks or slot for checkpoints) */
|
|
24
24
|
DUPLICATE_PROPOSAL = 8,
|
|
25
|
+
/** A validator signed attestations for different proposals at the same slot (equivocation) */
|
|
26
|
+
DUPLICATE_ATTESTATION = 9,
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
export function getOffenseTypeName(offense: OffenseType) {
|
|
@@ -44,6 +46,8 @@ export function getOffenseTypeName(offense: OffenseType) {
|
|
|
44
46
|
return 'attested_descendant_of_invalid';
|
|
45
47
|
case OffenseType.DUPLICATE_PROPOSAL:
|
|
46
48
|
return 'duplicate_proposal';
|
|
49
|
+
case OffenseType.DUPLICATE_ATTESTATION:
|
|
50
|
+
return 'duplicate_attestation';
|
|
47
51
|
default:
|
|
48
52
|
throw new Error(`Unknown offense type: ${offense}`);
|
|
49
53
|
}
|
|
@@ -61,6 +65,7 @@ export const OffenseToBigInt: Record<OffenseType, bigint> = {
|
|
|
61
65
|
[OffenseType.PROPOSED_INCORRECT_ATTESTATIONS]: 6n,
|
|
62
66
|
[OffenseType.ATTESTED_DESCENDANT_OF_INVALID]: 7n,
|
|
63
67
|
[OffenseType.DUPLICATE_PROPOSAL]: 8n,
|
|
68
|
+
[OffenseType.DUPLICATE_ATTESTATION]: 9n,
|
|
64
69
|
};
|
|
65
70
|
|
|
66
71
|
export function bigIntToOffense(offense: bigint): OffenseType {
|
|
@@ -83,6 +88,8 @@ export function bigIntToOffense(offense: bigint): OffenseType {
|
|
|
83
88
|
return OffenseType.ATTESTED_DESCENDANT_OF_INVALID;
|
|
84
89
|
case 8n:
|
|
85
90
|
return OffenseType.DUPLICATE_PROPOSAL;
|
|
91
|
+
case 9n:
|
|
92
|
+
return OffenseType.DUPLICATE_ATTESTATION;
|
|
86
93
|
default:
|
|
87
94
|
throw new Error(`Unknown offense: ${offense}`);
|
|
88
95
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { toBigIntBE, toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
2
|
+
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
2
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { schemas } from '@aztec/foundation/schemas';
|
|
4
5
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
@@ -81,11 +82,15 @@ export class PublicDataTreeLeafPreimage implements IndexedTreeLeafPreimage {
|
|
|
81
82
|
toHashInputs(): Buffer[] {
|
|
82
83
|
return [
|
|
83
84
|
...this.leaf.toHashInputs(),
|
|
84
|
-
Buffer.from(toBufferBE(this.nextIndex, 32)),
|
|
85
85
|
Buffer.from(this.nextKey.toBuffer()),
|
|
86
|
+
Buffer.from(toBufferBE(this.nextIndex, 32)),
|
|
86
87
|
];
|
|
87
88
|
}
|
|
88
89
|
|
|
90
|
+
hash(): Promise<Fr> {
|
|
91
|
+
return poseidon2Hash(this.toHashInputs());
|
|
92
|
+
}
|
|
93
|
+
|
|
89
94
|
clone(): PublicDataTreeLeafPreimage {
|
|
90
95
|
return new PublicDataTreeLeafPreimage(this.leaf.clone(), this.nextKey, this.nextIndex);
|
|
91
96
|
}
|
|
@@ -104,10 +109,11 @@ export class PublicDataTreeLeafPreimage implements IndexedTreeLeafPreimage {
|
|
|
104
109
|
|
|
105
110
|
static fromBuffer(buffer: Buffer | BufferReader): PublicDataTreeLeafPreimage {
|
|
106
111
|
const reader = BufferReader.asReader(buffer);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
112
|
+
return new PublicDataTreeLeafPreimage(
|
|
113
|
+
PublicDataTreeLeaf.fromBuffer(reader),
|
|
114
|
+
Fr.fromBuffer(reader),
|
|
115
|
+
toBigIntBE(reader.readBytes(32)),
|
|
116
|
+
);
|
|
111
117
|
}
|
|
112
118
|
|
|
113
119
|
static fromLeaf(leaf: PublicDataTreeLeaf, nextKey: bigint, nextIndex: bigint): PublicDataTreeLeafPreimage {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AnyTx, TxValidationResult, TxValidator } from './tx_validator.js';
|
|
2
2
|
|
|
3
|
-
export class EmptyTxValidator<T
|
|
3
|
+
export class EmptyTxValidator<T = AnyTx> implements TxValidator<T> {
|
|
4
4
|
public validateTx(_tx: T): Promise<TxValidationResult> {
|
|
5
5
|
return Promise.resolve({ result: 'valid' });
|
|
6
6
|
}
|
|
@@ -20,7 +20,7 @@ export type TxValidationResult =
|
|
|
20
20
|
| { result: 'invalid'; reason: string[] }
|
|
21
21
|
| { result: 'skipped'; reason: string[] };
|
|
22
22
|
|
|
23
|
-
export interface TxValidator<T
|
|
23
|
+
export interface TxValidator<T = AnyTx> {
|
|
24
24
|
validateTx(tx: T): Promise<TxValidationResult>;
|
|
25
25
|
}
|
|
26
26
|
|