@lodestar/validator 1.48.0-dev.f22c5ce63e → 1.48.0-dev.ff9749be2c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/lib/services/validatorStore.js +1 -1
  2. package/lib/services/validatorStore.js.map +1 -1
  3. package/lib/slashingProtection/attestation/attestationByTargetRepository.d.ts +2 -0
  4. package/lib/slashingProtection/attestation/attestationByTargetRepository.d.ts.map +1 -1
  5. package/lib/slashingProtection/attestation/attestationByTargetRepository.js +11 -0
  6. package/lib/slashingProtection/attestation/attestationByTargetRepository.js.map +1 -1
  7. package/lib/slashingProtection/attestation/errors.d.ts +10 -1
  8. package/lib/slashingProtection/attestation/errors.d.ts.map +1 -1
  9. package/lib/slashingProtection/attestation/errors.js +5 -0
  10. package/lib/slashingProtection/attestation/errors.js.map +1 -1
  11. package/lib/slashingProtection/attestation/index.d.ts.map +1 -1
  12. package/lib/slashingProtection/attestation/index.js +41 -2
  13. package/lib/slashingProtection/attestation/index.js.map +1 -1
  14. package/lib/slashingProtection/minMaxSurround/minMaxSurround.d.ts +3 -1
  15. package/lib/slashingProtection/minMaxSurround/minMaxSurround.d.ts.map +1 -1
  16. package/lib/slashingProtection/minMaxSurround/minMaxSurround.js +7 -2
  17. package/lib/slashingProtection/minMaxSurround/minMaxSurround.js.map +1 -1
  18. package/lib/util/externalSignerClient.d.ts +2 -2
  19. package/lib/util/externalSignerClient.d.ts.map +1 -1
  20. package/lib/util/externalSignerClient.js +38 -10
  21. package/lib/util/externalSignerClient.js.map +1 -1
  22. package/package.json +13 -13
  23. package/src/services/validatorStore.ts +1 -1
  24. package/src/slashingProtection/attestation/attestationByTargetRepository.ts +12 -0
  25. package/src/slashingProtection/attestation/errors.ts +10 -0
  26. package/src/slashingProtection/attestation/index.ts +43 -2
  27. package/src/slashingProtection/minMaxSurround/minMaxSurround.ts +9 -3
  28. package/src/util/externalSignerClient.ts +40 -12
@@ -599,7 +599,7 @@ export class ValidatorStore {
599
599
  signingRoot: toRootHex(signingRoot),
600
600
  });
601
601
  const signableMessage = {
602
- type: SignableMessageType.PAYLOAD_ATTESTATION,
602
+ type: SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE,
603
603
  data,
604
604
  };
605
605
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"validatorStore.js","sourceRoot":"","sources":["../../src/services/validatorStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validatorStore.js","sourceRoot":"","sources":["../../src/services/validatorStore.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ export declare class AttestationByTargetRepository {
18
18
  private readonly maxKey;
19
19
  constructor(db: LodestarValidatorDatabaseController);
20
20
  getAll(pubkey: BLSPubkey, limit?: number): Promise<SlashingProtectionAttestation[]>;
21
+ /** Attestation with the highest target epoch recorded for `pubkey`, or null if none */
22
+ getLatest(pubkey: BLSPubkey): Promise<SlashingProtectionAttestation | null>;
21
23
  get(pubkey: BLSPubkey, targetEpoch: Epoch): Promise<SlashingProtectionAttestation | null>;
22
24
  set(pubkey: BLSPubkey, atts: SlashingProtectionAttestation[]): Promise<void>;
23
25
  listPubkeys(): Promise<BLSPubkey[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"attestationByTargetRepository.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/attestationByTargetRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAC,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAC,SAAS,EAAE,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAC,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAC,mCAAmC,EAAC,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAC;AAG1D;;;;GAIG;AACH,qBAAa,6BAA6B;IAS5B,SAAS,CAAC,EAAE,EAAE,mCAAmC;IAR7D,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,SAAgD;IAEhE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,YAAsB,EAAE,EAAE,mCAAmC,EAQ5D;IAEK,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAQxF;IAEK,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,GAAG,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAG9F;IAEK,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjF;IAEK,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAGxC;IAED,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;CASlB"}
1
+ {"version":3,"file":"attestationByTargetRepository.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/attestationByTargetRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAC,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAC,SAAS,EAAE,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAC,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAC,mCAAmC,EAAC,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAC;AAG1D;;;;GAIG;AACH,qBAAa,6BAA6B;IAS5B,SAAS,CAAC,EAAE,EAAE,mCAAmC;IAR7D,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,SAAgD;IAEhE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,YAAsB,EAAE,EAAE,mCAAmC,EAQ5D;IAEK,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAQxF;IAED,uFAAuF;IACjF,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAShF;IAEK,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,GAAG,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAG9F;IAEK,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjF;IAEK,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAGxC;IAED,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;CASlB"}
@@ -36,6 +36,17 @@ export class AttestationByTargetRepository {
36
36
  });
37
37
  return attestations.map((attestation) => this.type.deserialize(attestation));
38
38
  }
39
+ /** Attestation with the highest target epoch recorded for `pubkey`, or null if none */
40
+ async getLatest(pubkey) {
41
+ const [att] = await this.db.values({
42
+ gte: this.encodeKey(pubkey, 0),
43
+ lt: this.encodeKey(pubkey, Number.MAX_SAFE_INTEGER),
44
+ reverse: true,
45
+ limit: 1,
46
+ bucketId: this.bucketId,
47
+ });
48
+ return att ? this.type.deserialize(att) : null;
49
+ }
39
50
  async get(pubkey, targetEpoch) {
40
51
  const att = await this.db.get(this.encodeKey(pubkey, targetEpoch), this.dbReqOpts);
41
52
  return att && this.type.deserialize(att);
@@ -1 +1 @@
1
- {"version":3,"file":"attestationByTargetRepository.js","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/attestationByTargetRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attestationByTargetRepository.js","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/attestationByTargetRepository.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,12 @@ export declare enum InvalidAttestationErrorCode {
27
27
  * The attestation is invalid because its target epoch is less than or equal to the lower
28
28
  * bound on target epochs for this validator.
29
29
  */
30
- TARGET_LESS_THAN_OR_EQ_LOWER_BOUND = "ERR_INVALID_ATTESTATION_TARGET_LESS_THAN_OR_EQ_LOWER_BOUND"
30
+ TARGET_LESS_THAN_OR_EQ_LOWER_BOUND = "ERR_INVALID_ATTESTATION_TARGET_LESS_THAN_OR_EQ_LOWER_BOUND",
31
+ /**
32
+ * The attestation is invalid because its source epoch is below the min-max span lookback window of the
33
+ * latest attestation of this validator, where a surround vote could not be detected.
34
+ */
35
+ SOURCE_BELOW_MIN_SPAN_LOOKBACK = "ERR_INVALID_ATTESTATION_SOURCE_BELOW_MIN_SPAN_LOOKBACK"
31
36
  }
32
37
  type InvalidAttestationErrorType = {
33
38
  code: InvalidAttestationErrorCode.DOUBLE_VOTE;
@@ -51,6 +56,10 @@ type InvalidAttestationErrorType = {
51
56
  code: InvalidAttestationErrorCode.TARGET_LESS_THAN_OR_EQ_LOWER_BOUND;
52
57
  targetEpoch: Epoch;
53
58
  minTargetEpoch: Epoch;
59
+ } | {
60
+ code: InvalidAttestationErrorCode.SOURCE_BELOW_MIN_SPAN_LOOKBACK;
61
+ sourceEpoch: Epoch;
62
+ minSourceEpoch: Epoch;
54
63
  };
55
64
  export declare class InvalidAttestationError extends LodestarError<InvalidAttestationErrorType> {
56
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAC;AAE1D,oBAAY,2BAA2B;IACrC;;OAEG;IACH,WAAW,wCAAwC;IACnD;;OAEG;IACH,kBAAkB,+CAA+C;IACjE;;OAEG;IACH,kBAAkB,+CAA+C;IACjE;;OAEG;IACH,qBAAqB,kDAAkD;IACvE;;;OAGG;IACH,4BAA4B,yDAAyD;IACrF;;;OAGG;IACH,kCAAkC,+DAA+D;CAClG;AAED,KAAK,2BAA2B,GAC5B;IACE,IAAI,EAAE,2BAA2B,CAAC,WAAW,CAAC;IAC9C,WAAW,EAAE,6BAA6B,CAAC;IAC3C,IAAI,EAAE,6BAA6B,CAAC;CACrC,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,kBAAkB,CAAC;IACrD,WAAW,EAAE,6BAA6B,CAAC;IAE3C,IAAI,EAAE,6BAA6B,GAAG,IAAI,CAAC;CAC5C,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,kBAAkB,CAAC;IACrD,WAAW,EAAE,6BAA6B,CAAC;IAE3C,IAAI,EAAE,6BAA6B,GAAG,IAAI,CAAC;CAC5C,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,qBAAqB,CAAC;CACzD,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,4BAA4B,CAAC;IAC/D,WAAW,EAAE,KAAK,CAAC;IACnB,cAAc,EAAE,KAAK,CAAC;CACvB,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,kCAAkC,CAAC;IACrE,WAAW,EAAE,KAAK,CAAC;IACnB,cAAc,EAAE,KAAK,CAAC;CACvB,CAAC;AAEN,qBAAa,uBAAwB,SAAQ,aAAa,CAAC,2BAA2B,CAAC;CAAG"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAC;AAE1D,oBAAY,2BAA2B;IACrC;;OAEG;IACH,WAAW,wCAAwC;IACnD;;OAEG;IACH,kBAAkB,+CAA+C;IACjE;;OAEG;IACH,kBAAkB,+CAA+C;IACjE;;OAEG;IACH,qBAAqB,kDAAkD;IACvE;;;OAGG;IACH,4BAA4B,yDAAyD;IACrF;;;OAGG;IACH,kCAAkC,+DAA+D;IACjG;;;OAGG;IACH,8BAA8B,2DAA2D;CAC1F;AAED,KAAK,2BAA2B,GAC5B;IACE,IAAI,EAAE,2BAA2B,CAAC,WAAW,CAAC;IAC9C,WAAW,EAAE,6BAA6B,CAAC;IAC3C,IAAI,EAAE,6BAA6B,CAAC;CACrC,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,kBAAkB,CAAC;IACrD,WAAW,EAAE,6BAA6B,CAAC;IAE3C,IAAI,EAAE,6BAA6B,GAAG,IAAI,CAAC;CAC5C,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,kBAAkB,CAAC;IACrD,WAAW,EAAE,6BAA6B,CAAC;IAE3C,IAAI,EAAE,6BAA6B,GAAG,IAAI,CAAC;CAC5C,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,qBAAqB,CAAC;CACzD,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,4BAA4B,CAAC;IAC/D,WAAW,EAAE,KAAK,CAAC;IACnB,cAAc,EAAE,KAAK,CAAC;CACvB,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,kCAAkC,CAAC;IACrE,WAAW,EAAE,KAAK,CAAC;IACnB,cAAc,EAAE,KAAK,CAAC;CACvB,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,8BAA8B,CAAC;IACjE,WAAW,EAAE,KAAK,CAAC;IACnB,cAAc,EAAE,KAAK,CAAC;CACvB,CAAC;AAEN,qBAAa,uBAAwB,SAAQ,aAAa,CAAC,2BAA2B,CAAC;CAAG"}
@@ -27,6 +27,11 @@ export var InvalidAttestationErrorCode;
27
27
  * bound on target epochs for this validator.
28
28
  */
29
29
  InvalidAttestationErrorCode["TARGET_LESS_THAN_OR_EQ_LOWER_BOUND"] = "ERR_INVALID_ATTESTATION_TARGET_LESS_THAN_OR_EQ_LOWER_BOUND";
30
+ /**
31
+ * The attestation is invalid because its source epoch is below the min-max span lookback window of the
32
+ * latest attestation of this validator, where a surround vote could not be detected.
33
+ */
34
+ InvalidAttestationErrorCode["SOURCE_BELOW_MIN_SPAN_LOOKBACK"] = "ERR_INVALID_ATTESTATION_SOURCE_BELOW_MIN_SPAN_LOOKBACK";
30
35
  })(InvalidAttestationErrorCode || (InvalidAttestationErrorCode = {}));
31
36
  export class InvalidAttestationError extends LodestarError {
32
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,MAAM,CAAN,IAAY,2BA2BX;AA3BD,WAAY,2BAA2B;IACrC;;OAEG;IACH,kFAAmD,CAAA;IACnD;;OAEG;IACH,gGAAiE,CAAA;IACjE;;OAEG;IACH,gGAAiE,CAAA;IACjE;;OAEG;IACH,sGAAuE,CAAA;IACvE;;;OAGG;IACH,oHAAqF,CAAA;IACrF;;;OAGG;IACH,gIAAiG,CAAA;AACnG,CAAC,EA3BW,2BAA2B,KAA3B,2BAA2B,QA2BtC;AAkCD,MAAM,OAAO,uBAAwB,SAAQ,aAA0C;CAAG"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,MAAM,CAAN,IAAY,2BAgCX;AAhCD,WAAY,2BAA2B;IACrC;;OAEG;IACH,kFAAmD,CAAA;IACnD;;OAEG;IACH,gGAAiE,CAAA;IACjE;;OAEG;IACH,gGAAiE,CAAA;IACjE;;OAEG;IACH,sGAAuE,CAAA;IACvE;;;OAGG;IACH,oHAAqF,CAAA;IACrF;;;OAGG;IACH,gIAAiG,CAAA;IACjG;;;OAGG;IACH,wHAAyF,CAAA;AAC3F,CAAC,EAhCW,2BAA2B,KAA3B,2BAA2B,QAgCtC;AAuCD,MAAM,OAAO,uBAAwB,SAAQ,aAA0C;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,cAAc,EAAyD,MAAM,4BAA4B,CAAC;AAClH,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,+BAA+B,EAAC,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAC,uBAAuB,EAAE,2BAA2B,EAAC,MAAM,aAAa,CAAC;AACjF,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,uBAAuB,EACvB,2BAA2B,GAC5B,CAAC;AAEF,aAAK,UAAU;IACb,SAAS,0BAA0B;IACnC,EAAE,mBAAmB;CACtB;AAED,qBAAa,oCAAoC;IAC/C,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,qBAAqB,CAAkC;IAC/D,OAAO,CAAC,cAAc,CAAiB;IAEvC,YACE,mBAAmB,EAAE,6BAA6B,EAClD,qBAAqB,EAAE,+BAA+B,EACtD,cAAc,EAAE,cAAc,EAK/B;IAED;;;OAGG;IACG,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5G;IAED;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,GAAG,OAAO,CAAC,UAAU,CAAC,CAuEzG;IAED;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpG;IAED;;OAEG;IACG,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAE3G;IAED;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,6BAA6B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAcxG;IAED;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAEpF;IAEK,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAExC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,cAAc,EAAyD,MAAM,4BAA4B,CAAC;AAClH,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,+BAA+B,EAAC,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAC,uBAAuB,EAAE,2BAA2B,EAAC,MAAM,aAAa,CAAC;AACjF,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,uBAAuB,EACvB,2BAA2B,GAC5B,CAAC;AAEF,aAAK,UAAU;IACb,SAAS,0BAA0B;IACnC,EAAE,mBAAmB;CACtB;AAED,qBAAa,oCAAoC;IAC/C,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,qBAAqB,CAAkC;IAC/D,OAAO,CAAC,cAAc,CAAiB;IAEvC,YACE,mBAAmB,EAAE,6BAA6B,EAClD,qBAAqB,EAAE,+BAA+B,EACtD,cAAc,EAAE,cAAc,EAK/B;IAED;;;OAGG;IACG,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5G;IAED;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,GAAG,OAAO,CAAC,UAAU,CAAC,CA4FzG;IAED;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpG;IAED;;OAEG;IACG,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAE3G;IAED;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,6BAA6B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCxG;IAED;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAEpF;IAEK,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAExC;CACF"}
@@ -38,9 +38,16 @@ export class SlashingProtectionAttestationService {
38
38
  if (attestation.sourceEpoch > attestation.targetEpoch) {
39
39
  throw new InvalidAttestationError({ code: InvalidAttestationErrorCode.SOURCE_EXCEEDS_TARGET });
40
40
  }
41
+ const latestAtt = await this.attestationByTarget.getLatest(pubKey);
41
42
  // Check for a double vote. Namely, an existing attestation with the same target epoch,
42
- // and a different signing root.
43
- const sameTargetAtt = await this.attestationByTarget.get(pubKey, attestation.targetEpoch);
43
+ // and a different signing root. No db read needed if the latest attestation has a lower target epoch.
44
+ let sameTargetAtt = null;
45
+ if (latestAtt && latestAtt.targetEpoch === attestation.targetEpoch) {
46
+ sameTargetAtt = latestAtt;
47
+ }
48
+ else if (latestAtt && latestAtt.targetEpoch > attestation.targetEpoch) {
49
+ sameTargetAtt = await this.attestationByTarget.get(pubKey, attestation.targetEpoch);
50
+ }
44
51
  if (sameTargetAtt) {
45
52
  // Interchange format allows for attestations without signing_root, then assume root is equal
46
53
  if (isEqualNonZeroRoot(sameTargetAtt.signingRoot, attestation.signingRoot)) {
@@ -52,6 +59,19 @@ export class SlashingProtectionAttestationService {
52
59
  prev: sameTargetAtt,
53
60
  });
54
61
  }
62
+ // Min-span entries only exist within the lookback window below each recorded source epoch, a surround vote
63
+ // with an older source epoch is undetectable by min-max surround and must be rejected outright. Recorded
64
+ // attestations are surround-free, so the latest one has the highest source epoch and the widest window.
65
+ if (latestAtt) {
66
+ const minSourceEpoch = this.minMaxSurround.minSpanCoverageStart(latestAtt.sourceEpoch);
67
+ if (attestation.sourceEpoch < minSourceEpoch) {
68
+ throw new InvalidAttestationError({
69
+ code: InvalidAttestationErrorCode.SOURCE_BELOW_MIN_SPAN_LOOKBACK,
70
+ sourceEpoch: attestation.sourceEpoch,
71
+ minSourceEpoch,
72
+ });
73
+ }
74
+ }
55
75
  // Check for a surround vote
56
76
  try {
57
77
  await this.minMaxSurround.assertNoSurround(pubKey, attestation);
@@ -119,6 +139,25 @@ export class SlashingProtectionAttestationService {
119
139
  * Interchange import / export functionality
120
140
  */
121
141
  async importAttestations(pubkey, attestations) {
142
+ // Min-max surround misses a surround vote beyond its lookback, require the highest target attestation to
143
+ // have the highest source epoch as `checkAttestation` relies on it
144
+ let latestAtt = await this.attestationByTarget.getLatest(pubkey);
145
+ let maxSourceAtt = latestAtt;
146
+ for (const attestation of attestations) {
147
+ if (latestAtt === null || attestation.targetEpoch >= latestAtt.targetEpoch) {
148
+ latestAtt = attestation;
149
+ }
150
+ if (maxSourceAtt === null || attestation.sourceEpoch > maxSourceAtt.sourceEpoch) {
151
+ maxSourceAtt = attestation;
152
+ }
153
+ }
154
+ if (latestAtt && maxSourceAtt && latestAtt.sourceEpoch < maxSourceAtt.sourceEpoch) {
155
+ throw new InvalidAttestationError({
156
+ code: InvalidAttestationErrorCode.NEW_SURROUNDS_PREV,
157
+ attestation: latestAtt,
158
+ prev: maxSourceAtt,
159
+ });
160
+ }
122
161
  await this.attestationByTarget.set(pubkey, attestations);
123
162
  // Pre-compute spans for all attestations
124
163
  for (const attestation of attestations) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,wBAAwB,EAAE,4BAA4B,EAAC,MAAM,4BAA4B,CAAC;AAElH,OAAO,EAAC,kBAAkB,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AACzD,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,+BAA+B,EAAC,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAC,uBAAuB,EAAE,2BAA2B,EAAC,MAAM,aAAa,CAAC;AACjF,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,uBAAuB,EACvB,2BAA2B,GAC5B,CAAC;AAEF,IAAK,UAGJ;AAHD,WAAK,UAAU;IACb,iDAAmC,CAAA;IACnC,mCAAqB,CAAA;AACvB,CAAC,EAHI,UAAU,KAAV,UAAU,QAGd;AAED,MAAM,OAAO,oCAAoC;IACvC,mBAAmB,CAAgC;IACnD,qBAAqB,CAAkC;IACvD,cAAc,CAAiB;IAEvC,YACE,mBAAkD,EAClD,qBAAsD,EACtD,cAA8B;QAE9B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,yBAAyB,CAAC,MAAiB,EAAE,WAA0C;QAC3F,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAEpE,IAAI,UAAU,KAAK,UAAU,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC;QAED,uDAAuD;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAiB,EAAE,WAA0C;QAClF,yEAAyE;QACzE,sFAAsF;QACtF,IAAI,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,IAAI,uBAAuB,CAAC,EAAC,IAAI,EAAE,2BAA2B,CAAC,qBAAqB,EAAC,CAAC,CAAC;QAC/F,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEnE,uFAAuF;QACvF,sGAAsG;QACtG,IAAI,aAAa,GAAyC,IAAI,CAAC;QAC/D,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC;YACnE,aAAa,GAAG,SAAS,CAAC;QAC5B,CAAC;aAAM,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YACxE,aAAa,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,aAAa,EAAE,CAAC;YAClB,6FAA6F;YAC7F,IAAI,kBAAkB,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3E,OAAO,UAAU,CAAC,SAAS,CAAC;YAC9B,CAAC;YACD,MAAM,IAAI,uBAAuB,CAAC;gBAChC,IAAI,EAAE,2BAA2B,CAAC,WAAW;gBAC7C,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,aAAa;aACpB,CAAC,CAAC;QACL,CAAC;QAED,2GAA2G;QAC3G,yGAAyG;QACzG,wGAAwG;QACxG,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACvF,IAAI,WAAW,CAAC,WAAW,GAAG,cAAc,EAAE,CAAC;gBAC7C,MAAM,IAAI,uBAAuB,CAAC;oBAChC,IAAI,EAAE,2BAA2B,CAAC,8BAA8B;oBAChE,WAAW,EAAE,WAAW,CAAC,WAAW;oBACpC,cAAc;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,wBAAwB,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACrG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACpB,KAAK,4BAA4B,CAAC,cAAc;wBAC9C,MAAM,IAAI,uBAAuB,CAAC;4BAChC,IAAI,EAAE,2BAA2B,CAAC,kBAAkB;4BACpD,WAAW;4BACX,IAAI;yBACL,CAAC,CAAC;oBACL,KAAK,4BAA4B,CAAC,aAAa;wBAC7C,MAAM,IAAI,uBAAuB,CAAC;4BAChC,IAAI,EAAE,2BAA2B,CAAC,kBAAkB;4BACpD,WAAW;4BACX,IAAI;yBACL,CAAC,CAAC;gBACP,CAAC;YACH,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;QAED,uCAAuC;QACvC,kHAAkH;QAClH,+GAA+G;QAC/G,6DAA6D;QAC7D,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,EAAC,cAAc,EAAE,cAAc,EAAC,GAAG,qBAAqB,CAAC;YAC/D,IAAI,WAAW,CAAC,WAAW,GAAG,cAAc,EAAE,CAAC;gBAC7C,MAAM,IAAI,uBAAuB,CAAC;oBAChC,IAAI,EAAE,2BAA2B,CAAC,4BAA4B;oBAC9D,WAAW,EAAE,WAAW,CAAC,WAAW;oBACpC,cAAc;iBACf,CAAC,CAAC;YACL,CAAC;YAED,IAAI,WAAW,CAAC,WAAW,IAAI,cAAc,EAAE,CAAC;gBAC9C,MAAM,IAAI,uBAAuB,CAAC;oBAChC,IAAI,EAAE,2BAA2B,CAAC,kCAAkC;oBACpE,WAAW,EAAE,WAAW,CAAC,WAAW;oBACpC,cAAc;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC,EAAE,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAiB,EAAE,WAA0C;QACnF,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAAC,MAAiB,EAAE,KAAY;QAC1D,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAiB,EAAE,YAA6C;QACvF,yGAAyG;QACzG,mEAAmE;QACnE,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,YAAY,GAAG,SAAS,CAAC;QAC7B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC3E,SAAS,GAAG,WAAW,CAAC;YAC1B,CAAC;YACD,IAAI,YAAY,KAAK,IAAI,IAAI,WAAW,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;gBAChF,YAAY,GAAG,WAAW,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;YAClF,MAAM,IAAI,uBAAuB,CAAC;gBAChC,IAAI,EAAE,2BAA2B,CAAC,kBAAkB;gBACpD,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAEzD,yCAAyC;QACzC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACnE,CAAC;QAED,oCAAoC;QACpC,MAAM,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5F,MAAM,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5F,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAC,cAAc,EAAE,cAAc,EAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAiB;QACxC,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;IAChD,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { BLSPubkey } from "@lodestar/types";
1
+ import { BLSPubkey, Epoch } from "@lodestar/types";
2
2
  import { IDistanceStore, IMinMaxSurround, MinMaxSurroundAttestation } from "./interface.js";
3
3
  export declare class MinMaxSurround implements IMinMaxSurround {
4
4
  private store;
@@ -6,6 +6,8 @@ export declare class MinMaxSurround implements IMinMaxSurround {
6
6
  constructor(store: IDistanceStore, options?: {
7
7
  maxEpochLookback?: number;
8
8
  });
9
+ /** Lowest epoch with a min-span entry after inserting an attestation with `sourceEpoch` */
10
+ minSpanCoverageStart(sourceEpoch: Epoch): Epoch;
9
11
  assertNoSurround(pubKey: BLSPubkey, attestation: MinMaxSurroundAttestation): Promise<void>;
10
12
  insertAttestation(pubKey: BLSPubkey, attestation: MinMaxSurroundAttestation): Promise<void>;
11
13
  private updateMinSpan;
@@ -1 +1 @@
1
- {"version":3,"file":"minMaxSurround.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/minMaxSurround/minMaxSurround.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAgB,cAAc,EAAE,eAAe,EAAE,yBAAyB,EAAC,MAAM,gBAAgB,CAAC;AAqBzG,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,gBAAgB,CAAS;IAEjC,YAAY,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAC,EAGvE;IAEK,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/F;IAEK,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG;YAIa,aAAa;YAkBb,oBAAoB;YAcpB,aAAa;YAgBb,mBAAmB;CAWlC"}
1
+ {"version":3,"file":"minMaxSurround.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/minMaxSurround/minMaxSurround.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAgB,cAAc,EAAE,eAAe,EAAE,yBAAyB,EAAC,MAAM,gBAAgB,CAAC;AAsBzG,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,gBAAgB,CAAS;IAEjC,YAAY,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAC,EAGvE;IAED,2FAA2F;IAC3F,oBAAoB,CAAC,WAAW,EAAE,KAAK,GAAG,KAAK,CAE9C;IAEK,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/F;IAEK,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG;YAIa,aAAa;YAkBb,oBAAoB;YAcpB,aAAa;YAgBb,mBAAmB;CAWlC"}
@@ -5,7 +5,8 @@ import { SurroundAttestationError, SurroundAttestationErrorCode } from "./errors
5
5
  * Number of epochs in the past to check for surrounding attestations.
6
6
  *
7
7
  * This value can be limited to a reasonable high amount as Lodestar does not solely rely on this strategy but also
8
- * implements the minimal strategy which has been formally proven to be safe (https://github.com/michaelsproul/slashing-proofs).
8
+ * rejects any source epoch below `minSpanCoverageStart` of the latest recorded attestation, which is the minimal
9
+ * strategy (formally proven safe, https://github.com/michaelsproul/slashing-proofs) relaxed by this lookback.
9
10
  *
10
11
  * Limiting this value is required due to practical reasons as otherwise there would be a min-span DB read and write
11
12
  * for each validator from current epoch until genesis which massively increases DB size and causes I/O lag, resulting in
@@ -23,6 +24,10 @@ export class MinMaxSurround {
23
24
  this.store = store;
24
25
  this.maxEpochLookback = options?.maxEpochLookback ?? DEFAULT_MAX_EPOCH_LOOKBACK;
25
26
  }
27
+ /** Lowest epoch with a min-span entry after inserting an attestation with `sourceEpoch` */
28
+ minSpanCoverageStart(sourceEpoch) {
29
+ return Math.max(0, sourceEpoch - 1 - this.maxEpochLookback);
30
+ }
26
31
  async assertNoSurround(pubKey, attestation) {
27
32
  await this.assertNotSurrounding(pubKey, attestation);
28
33
  await this.assertNotSurrounded(pubKey, attestation);
@@ -34,7 +39,7 @@ export class MinMaxSurround {
34
39
  // min span
35
40
  async updateMinSpan(pubKey, attestation) {
36
41
  await this.assertNotSurrounding(pubKey, attestation);
37
- const untilEpoch = Math.max(0, attestation.sourceEpoch - 1 - this.maxEpochLookback);
42
+ const untilEpoch = this.minSpanCoverageStart(attestation.sourceEpoch);
38
43
  const values = [];
39
44
  for (let epoch = attestation.sourceEpoch - 1; epoch >= untilEpoch; epoch--) {
40
45
  const minSpan = await this.store.minSpan.get(pubKey, epoch);
@@ -1 +1 @@
1
- {"version":3,"file":"minMaxSurround.js","sourceRoot":"","sources":["../../../src/slashingProtection/minMaxSurround/minMaxSurround.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"minMaxSurround.js","sourceRoot":"","sources":["../../../src/slashingProtection/minMaxSurround/minMaxSurround.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export declare enum SignableMessageType {
18
18
  SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF = "SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF",
19
19
  VALIDATOR_REGISTRATION = "VALIDATOR_REGISTRATION",
20
20
  EXECUTION_PAYLOAD_ENVELOPE = "EXECUTION_PAYLOAD_ENVELOPE",
21
- PAYLOAD_ATTESTATION = "PAYLOAD_ATTESTATION",
21
+ PAYLOAD_ATTESTATION_MESSAGE = "PAYLOAD_ATTESTATION_MESSAGE",
22
22
  PROPOSER_PREFERENCES = "PROPOSER_PREFERENCES",
23
23
  BUILDER_REQUEST_AUTH = "BUILDER_REQUEST_AUTH"
24
24
  }
@@ -80,7 +80,7 @@ export type SignableMessage = {
80
80
  type: SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE;
81
81
  data: gloas.ExecutionPayloadEnvelope;
82
82
  } | {
83
- type: SignableMessageType.PAYLOAD_ATTESTATION;
83
+ type: SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE;
84
84
  data: gloas.PayloadAttestationData;
85
85
  } | {
86
86
  type: SignableMessageType.PROPOSER_PREFERENCES;
@@ -1 +1 @@
1
- {"version":3,"file":"externalSignerClient.d.ts","sourceRoot":"","sources":["../../src/util/externalSignerClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"externalSignerClient.d.ts","sourceRoot":"","sources":["../../src/util/externalSignerClient.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export var SignableMessageType;
18
18
  SignableMessageType["SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF"] = "SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF";
19
19
  SignableMessageType["VALIDATOR_REGISTRATION"] = "VALIDATOR_REGISTRATION";
20
20
  SignableMessageType["EXECUTION_PAYLOAD_ENVELOPE"] = "EXECUTION_PAYLOAD_ENVELOPE";
21
- SignableMessageType["PAYLOAD_ATTESTATION"] = "PAYLOAD_ATTESTATION";
21
+ SignableMessageType["PAYLOAD_ATTESTATION_MESSAGE"] = "PAYLOAD_ATTESTATION_MESSAGE";
22
22
  SignableMessageType["PROPOSER_PREFERENCES"] = "PROPOSER_PREFERENCES";
23
23
  SignableMessageType["BUILDER_REQUEST_AUTH"] = "BUILDER_REQUEST_AUTH";
24
24
  })(SignableMessageType || (SignableMessageType = {}));
@@ -56,7 +56,7 @@ const requiresForkInfo = {
56
56
  [SignableMessageType.SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF]: true,
57
57
  [SignableMessageType.VALIDATOR_REGISTRATION]: false,
58
58
  [SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE]: true,
59
- [SignableMessageType.PAYLOAD_ATTESTATION]: true,
59
+ [SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE]: true,
60
60
  [SignableMessageType.PROPOSER_PREFERENCES]: true,
61
61
  [SignableMessageType.BUILDER_REQUEST_AUTH]: false,
62
62
  };
@@ -185,14 +185,42 @@ function serializerSignableMessagePayload(config, payload) {
185
185
  return { contribution_and_proof: ssz.altair.ContributionAndProof.toJson(payload.data) };
186
186
  case SignableMessageType.VALIDATOR_REGISTRATION:
187
187
  return { validator_registration: ssz.bellatrix.ValidatorRegistrationV1.toJson(payload.data) };
188
- case SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE:
189
- return { execution_payload_envelope: ssz.gloas.ExecutionPayloadEnvelope.toJson(payload.data) };
190
- case SignableMessageType.PAYLOAD_ATTESTATION:
191
- return { payload_attestation: ssz.gloas.PayloadAttestationData.toJson(payload.data) };
192
- case SignableMessageType.PROPOSER_PREFERENCES:
193
- return { proposer_preferences: ssz.gloas.ProposerPreferences.toJson(payload.data) };
194
- case SignableMessageType.BUILDER_REQUEST_AUTH:
195
- return { builder_request_auth: ssz.gloas.BuilderRequestAuth.toJson(payload.data) };
188
+ case SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE: {
189
+ const slot = payload.data.payload.slotNumber;
190
+ return {
191
+ execution_payload_envelope: {
192
+ version: config.getForkName(slot).toUpperCase(),
193
+ data: config.getForkTypes(slot).ExecutionPayloadEnvelope.toJson(payload.data),
194
+ },
195
+ };
196
+ }
197
+ case SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE: {
198
+ const slot = payload.data.slot;
199
+ return {
200
+ payload_attestation_message: {
201
+ version: config.getForkName(slot).toUpperCase(),
202
+ data: config.getForkTypes(slot).PayloadAttestationData.toJson(payload.data),
203
+ },
204
+ };
205
+ }
206
+ case SignableMessageType.PROPOSER_PREFERENCES: {
207
+ const slot = payload.data.proposalSlot;
208
+ return {
209
+ proposer_preferences: {
210
+ version: config.getForkName(slot).toUpperCase(),
211
+ data: config.getForkTypes(slot).ProposerPreferences.toJson(payload.data),
212
+ },
213
+ };
214
+ }
215
+ case SignableMessageType.BUILDER_REQUEST_AUTH: {
216
+ const slot = payload.data.slot;
217
+ return {
218
+ builder_request_auth: {
219
+ version: config.getForkName(slot).toUpperCase(),
220
+ data: config.getForkTypes(slot).BuilderRequestAuth.toJson(payload.data),
221
+ },
222
+ };
223
+ }
196
224
  }
197
225
  }
198
226
  function getForkInfoForSigning(config, signingSlot, messageType) {
@@ -1 +1 @@
1
- {"version":3,"file":"externalSignerClient.js","sourceRoot":"","sources":["../../src/util/externalSignerClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"externalSignerClient.js","sourceRoot":"","sources":["../../src/util/externalSignerClient.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodestar/validator",
3
- "version": "1.48.0-dev.f22c5ce63e",
3
+ "version": "1.48.0-dev.ff9749be2c",
4
4
  "description": "A Typescript implementation of the validator client",
5
5
  "author": "ChainSafe Systems",
6
6
  "license": "Apache-2.0",
@@ -49,22 +49,22 @@
49
49
  ],
50
50
  "dependencies": {
51
51
  "@chainsafe/lodestar-z": "catalog:",
52
- "@chainsafe/ssz": "^1.6.3",
53
- "@lodestar/api": "^1.48.0-dev.f22c5ce63e",
54
- "@lodestar/config": "^1.48.0-dev.f22c5ce63e",
55
- "@lodestar/db": "^1.48.0-dev.f22c5ce63e",
56
- "@lodestar/params": "^1.48.0-dev.f22c5ce63e",
57
- "@lodestar/state-transition": "^1.48.0-dev.f22c5ce63e",
58
- "@lodestar/types": "^1.48.0-dev.f22c5ce63e",
59
- "@lodestar/utils": "^1.48.0-dev.f22c5ce63e",
52
+ "@chainsafe/ssz": "^1.8.0",
53
+ "@lodestar/api": "^1.48.0-dev.ff9749be2c",
54
+ "@lodestar/config": "^1.48.0-dev.ff9749be2c",
55
+ "@lodestar/db": "^1.48.0-dev.ff9749be2c",
56
+ "@lodestar/params": "^1.48.0-dev.ff9749be2c",
57
+ "@lodestar/state-transition": "^1.48.0-dev.ff9749be2c",
58
+ "@lodestar/types": "^1.48.0-dev.ff9749be2c",
59
+ "@lodestar/utils": "^1.48.0-dev.ff9749be2c",
60
60
  "strict-event-emitter-types": "^2.0.0"
61
61
  },
62
62
  "devDependencies": {
63
- "@lodestar/logger": "^1.48.0-dev.f22c5ce63e",
64
- "@lodestar/spec-test-util": "^1.48.0-dev.f22c5ce63e",
65
- "@lodestar/test-utils": "^1.48.0-dev.f22c5ce63e",
63
+ "@lodestar/logger": "^1.48.0-dev.ff9749be2c",
64
+ "@lodestar/spec-test-util": "^1.48.0-dev.ff9749be2c",
65
+ "@lodestar/test-utils": "^1.48.0-dev.ff9749be2c",
66
66
  "@vekexasia/bigint-buffer2": "^1.1.1",
67
67
  "rimraf": "^4.4.1"
68
68
  },
69
- "gitHead": "6afd96f70f4313804c55ad09386ec91062cd68ba"
69
+ "gitHead": "bb8a252f7ae741ea6943becf36aeeea93b08e36d"
70
70
  }
@@ -909,7 +909,7 @@ export class ValidatorStore {
909
909
  });
910
910
 
911
911
  const signableMessage: SignableMessage = {
912
- type: SignableMessageType.PAYLOAD_ATTESTATION,
912
+ type: SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE,
913
913
  data,
914
914
  };
915
915
 
@@ -41,6 +41,18 @@ export class AttestationByTargetRepository {
41
41
  return attestations.map((attestation) => this.type.deserialize(attestation));
42
42
  }
43
43
 
44
+ /** Attestation with the highest target epoch recorded for `pubkey`, or null if none */
45
+ async getLatest(pubkey: BLSPubkey): Promise<SlashingProtectionAttestation | null> {
46
+ const [att] = await this.db.values({
47
+ gte: this.encodeKey(pubkey, 0),
48
+ lt: this.encodeKey(pubkey, Number.MAX_SAFE_INTEGER),
49
+ reverse: true,
50
+ limit: 1,
51
+ bucketId: this.bucketId,
52
+ });
53
+ return att ? this.type.deserialize(att) : null;
54
+ }
55
+
44
56
  async get(pubkey: BLSPubkey, targetEpoch: Epoch): Promise<SlashingProtectionAttestation | null> {
45
57
  const att = await this.db.get(this.encodeKey(pubkey, targetEpoch), this.dbReqOpts);
46
58
  return att && this.type.deserialize(att);
@@ -29,6 +29,11 @@ export enum InvalidAttestationErrorCode {
29
29
  * bound on target epochs for this validator.
30
30
  */
31
31
  TARGET_LESS_THAN_OR_EQ_LOWER_BOUND = "ERR_INVALID_ATTESTATION_TARGET_LESS_THAN_OR_EQ_LOWER_BOUND",
32
+ /**
33
+ * The attestation is invalid because its source epoch is below the min-max span lookback window of the
34
+ * latest attestation of this validator, where a surround vote could not be detected.
35
+ */
36
+ SOURCE_BELOW_MIN_SPAN_LOOKBACK = "ERR_INVALID_ATTESTATION_SOURCE_BELOW_MIN_SPAN_LOOKBACK",
32
37
  }
33
38
 
34
39
  type InvalidAttestationErrorType =
@@ -61,6 +66,11 @@ type InvalidAttestationErrorType =
61
66
  code: InvalidAttestationErrorCode.TARGET_LESS_THAN_OR_EQ_LOWER_BOUND;
62
67
  targetEpoch: Epoch;
63
68
  minTargetEpoch: Epoch;
69
+ }
70
+ | {
71
+ code: InvalidAttestationErrorCode.SOURCE_BELOW_MIN_SPAN_LOOKBACK;
72
+ sourceEpoch: Epoch;
73
+ minSourceEpoch: Epoch;
64
74
  };
65
75
 
66
76
  export class InvalidAttestationError extends LodestarError<InvalidAttestationErrorType> {}
@@ -56,9 +56,16 @@ export class SlashingProtectionAttestationService {
56
56
  throw new InvalidAttestationError({code: InvalidAttestationErrorCode.SOURCE_EXCEEDS_TARGET});
57
57
  }
58
58
 
59
+ const latestAtt = await this.attestationByTarget.getLatest(pubKey);
60
+
59
61
  // Check for a double vote. Namely, an existing attestation with the same target epoch,
60
- // and a different signing root.
61
- const sameTargetAtt = await this.attestationByTarget.get(pubKey, attestation.targetEpoch);
62
+ // and a different signing root. No db read needed if the latest attestation has a lower target epoch.
63
+ let sameTargetAtt: SlashingProtectionAttestation | null = null;
64
+ if (latestAtt && latestAtt.targetEpoch === attestation.targetEpoch) {
65
+ sameTargetAtt = latestAtt;
66
+ } else if (latestAtt && latestAtt.targetEpoch > attestation.targetEpoch) {
67
+ sameTargetAtt = await this.attestationByTarget.get(pubKey, attestation.targetEpoch);
68
+ }
62
69
  if (sameTargetAtt) {
63
70
  // Interchange format allows for attestations without signing_root, then assume root is equal
64
71
  if (isEqualNonZeroRoot(sameTargetAtt.signingRoot, attestation.signingRoot)) {
@@ -71,6 +78,20 @@ export class SlashingProtectionAttestationService {
71
78
  });
72
79
  }
73
80
 
81
+ // Min-span entries only exist within the lookback window below each recorded source epoch, a surround vote
82
+ // with an older source epoch is undetectable by min-max surround and must be rejected outright. Recorded
83
+ // attestations are surround-free, so the latest one has the highest source epoch and the widest window.
84
+ if (latestAtt) {
85
+ const minSourceEpoch = this.minMaxSurround.minSpanCoverageStart(latestAtt.sourceEpoch);
86
+ if (attestation.sourceEpoch < minSourceEpoch) {
87
+ throw new InvalidAttestationError({
88
+ code: InvalidAttestationErrorCode.SOURCE_BELOW_MIN_SPAN_LOOKBACK,
89
+ sourceEpoch: attestation.sourceEpoch,
90
+ minSourceEpoch,
91
+ });
92
+ }
93
+ }
94
+
74
95
  // Check for a surround vote
75
96
  try {
76
97
  await this.minMaxSurround.assertNoSurround(pubKey, attestation);
@@ -143,6 +164,26 @@ export class SlashingProtectionAttestationService {
143
164
  * Interchange import / export functionality
144
165
  */
145
166
  async importAttestations(pubkey: BLSPubkey, attestations: SlashingProtectionAttestation[]): Promise<void> {
167
+ // Min-max surround misses a surround vote beyond its lookback, require the highest target attestation to
168
+ // have the highest source epoch as `checkAttestation` relies on it
169
+ let latestAtt = await this.attestationByTarget.getLatest(pubkey);
170
+ let maxSourceAtt = latestAtt;
171
+ for (const attestation of attestations) {
172
+ if (latestAtt === null || attestation.targetEpoch >= latestAtt.targetEpoch) {
173
+ latestAtt = attestation;
174
+ }
175
+ if (maxSourceAtt === null || attestation.sourceEpoch > maxSourceAtt.sourceEpoch) {
176
+ maxSourceAtt = attestation;
177
+ }
178
+ }
179
+ if (latestAtt && maxSourceAtt && latestAtt.sourceEpoch < maxSourceAtt.sourceEpoch) {
180
+ throw new InvalidAttestationError({
181
+ code: InvalidAttestationErrorCode.NEW_SURROUNDS_PREV,
182
+ attestation: latestAtt,
183
+ prev: maxSourceAtt,
184
+ });
185
+ }
186
+
146
187
  await this.attestationByTarget.set(pubkey, attestations);
147
188
 
148
189
  // Pre-compute spans for all attestations
@@ -1,4 +1,4 @@
1
- import {BLSPubkey} from "@lodestar/types";
1
+ import {BLSPubkey, Epoch} from "@lodestar/types";
2
2
  import {SurroundAttestationError, SurroundAttestationErrorCode} from "./errors.js";
3
3
  import {DistanceEntry, IDistanceStore, IMinMaxSurround, MinMaxSurroundAttestation} from "./interface.js";
4
4
 
@@ -9,7 +9,8 @@ import {DistanceEntry, IDistanceStore, IMinMaxSurround, MinMaxSurroundAttestatio
9
9
  * Number of epochs in the past to check for surrounding attestations.
10
10
  *
11
11
  * This value can be limited to a reasonable high amount as Lodestar does not solely rely on this strategy but also
12
- * implements the minimal strategy which has been formally proven to be safe (https://github.com/michaelsproul/slashing-proofs).
12
+ * rejects any source epoch below `minSpanCoverageStart` of the latest recorded attestation, which is the minimal
13
+ * strategy (formally proven safe, https://github.com/michaelsproul/slashing-proofs) relaxed by this lookback.
13
14
  *
14
15
  * Limiting this value is required due to practical reasons as otherwise there would be a min-span DB read and write
15
16
  * for each validator from current epoch until genesis which massively increases DB size and causes I/O lag, resulting in
@@ -30,6 +31,11 @@ export class MinMaxSurround implements IMinMaxSurround {
30
31
  this.maxEpochLookback = options?.maxEpochLookback ?? DEFAULT_MAX_EPOCH_LOOKBACK;
31
32
  }
32
33
 
34
+ /** Lowest epoch with a min-span entry after inserting an attestation with `sourceEpoch` */
35
+ minSpanCoverageStart(sourceEpoch: Epoch): Epoch {
36
+ return Math.max(0, sourceEpoch - 1 - this.maxEpochLookback);
37
+ }
38
+
33
39
  async assertNoSurround(pubKey: BLSPubkey, attestation: MinMaxSurroundAttestation): Promise<void> {
34
40
  await this.assertNotSurrounding(pubKey, attestation);
35
41
  await this.assertNotSurrounded(pubKey, attestation);
@@ -45,7 +51,7 @@ export class MinMaxSurround implements IMinMaxSurround {
45
51
  private async updateMinSpan(pubKey: BLSPubkey, attestation: MinMaxSurroundAttestation): Promise<void> {
46
52
  await this.assertNotSurrounding(pubKey, attestation);
47
53
 
48
- const untilEpoch = Math.max(0, attestation.sourceEpoch - 1 - this.maxEpochLookback);
54
+ const untilEpoch = this.minSpanCoverageStart(attestation.sourceEpoch);
49
55
 
50
56
  const values: DistanceEntry[] = [];
51
57
  for (let epoch = attestation.sourceEpoch - 1; epoch >= untilEpoch; epoch--) {
@@ -1,6 +1,6 @@
1
1
  import {ContainerType, ValueOf} from "@chainsafe/ssz";
2
2
  import {BeaconConfig} from "@lodestar/config";
3
- import {ForkName, ForkPreBellatrix, ForkSeq, isForkPostDeneb} from "@lodestar/params";
3
+ import {ForkName, ForkPostGloas, ForkPreBellatrix, ForkSeq, isForkPostDeneb} from "@lodestar/params";
4
4
  import {blindedOrFullBlockToHeader, computeEpochAtSlot} from "@lodestar/state-transition";
5
5
  import {
6
6
  AggregateAndProof,
@@ -34,7 +34,7 @@ export enum SignableMessageType {
34
34
  SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF = "SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF",
35
35
  VALIDATOR_REGISTRATION = "VALIDATOR_REGISTRATION",
36
36
  EXECUTION_PAYLOAD_ENVELOPE = "EXECUTION_PAYLOAD_ENVELOPE",
37
- PAYLOAD_ATTESTATION = "PAYLOAD_ATTESTATION",
37
+ PAYLOAD_ATTESTATION_MESSAGE = "PAYLOAD_ATTESTATION_MESSAGE",
38
38
  PROPOSER_PREFERENCES = "PROPOSER_PREFERENCES",
39
39
  BUILDER_REQUEST_AUTH = "BUILDER_REQUEST_AUTH",
40
40
  }
@@ -87,7 +87,7 @@ export type SignableMessage =
87
87
  | {type: SignableMessageType.SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF; data: altair.ContributionAndProof}
88
88
  | {type: SignableMessageType.VALIDATOR_REGISTRATION; data: ValidatorRegistrationV1}
89
89
  | {type: SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE; data: gloas.ExecutionPayloadEnvelope}
90
- | {type: SignableMessageType.PAYLOAD_ATTESTATION; data: gloas.PayloadAttestationData}
90
+ | {type: SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE; data: gloas.PayloadAttestationData}
91
91
  | {type: SignableMessageType.PROPOSER_PREFERENCES; data: gloas.ProposerPreferences}
92
92
  | {type: SignableMessageType.BUILDER_REQUEST_AUTH; data: gloas.BuilderRequestAuth};
93
93
 
@@ -105,7 +105,7 @@ const requiresForkInfo: Record<SignableMessageType, boolean> = {
105
105
  [SignableMessageType.SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF]: true,
106
106
  [SignableMessageType.VALIDATOR_REGISTRATION]: false,
107
107
  [SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE]: true,
108
- [SignableMessageType.PAYLOAD_ATTESTATION]: true,
108
+ [SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE]: true,
109
109
  [SignableMessageType.PROPOSER_PREFERENCES]: true,
110
110
  [SignableMessageType.BUILDER_REQUEST_AUTH]: false,
111
111
  };
@@ -280,17 +280,45 @@ function serializerSignableMessagePayload(config: BeaconConfig, payload: Signabl
280
280
  case SignableMessageType.VALIDATOR_REGISTRATION:
281
281
  return {validator_registration: ssz.bellatrix.ValidatorRegistrationV1.toJson(payload.data)};
282
282
 
283
- case SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE:
284
- return {execution_payload_envelope: ssz.gloas.ExecutionPayloadEnvelope.toJson(payload.data)};
283
+ case SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE: {
284
+ const slot = payload.data.payload.slotNumber;
285
+ return {
286
+ execution_payload_envelope: {
287
+ version: config.getForkName(slot).toUpperCase(),
288
+ data: config.getForkTypes<ForkPostGloas>(slot).ExecutionPayloadEnvelope.toJson(payload.data),
289
+ },
290
+ };
291
+ }
285
292
 
286
- case SignableMessageType.PAYLOAD_ATTESTATION:
287
- return {payload_attestation: ssz.gloas.PayloadAttestationData.toJson(payload.data)};
293
+ case SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE: {
294
+ const slot = payload.data.slot;
295
+ return {
296
+ payload_attestation_message: {
297
+ version: config.getForkName(slot).toUpperCase(),
298
+ data: config.getForkTypes<ForkPostGloas>(slot).PayloadAttestationData.toJson(payload.data),
299
+ },
300
+ };
301
+ }
288
302
 
289
- case SignableMessageType.PROPOSER_PREFERENCES:
290
- return {proposer_preferences: ssz.gloas.ProposerPreferences.toJson(payload.data)};
303
+ case SignableMessageType.PROPOSER_PREFERENCES: {
304
+ const slot = payload.data.proposalSlot;
305
+ return {
306
+ proposer_preferences: {
307
+ version: config.getForkName(slot).toUpperCase(),
308
+ data: config.getForkTypes<ForkPostGloas>(slot).ProposerPreferences.toJson(payload.data),
309
+ },
310
+ };
311
+ }
291
312
 
292
- case SignableMessageType.BUILDER_REQUEST_AUTH:
293
- return {builder_request_auth: ssz.gloas.BuilderRequestAuth.toJson(payload.data)};
313
+ case SignableMessageType.BUILDER_REQUEST_AUTH: {
314
+ const slot = payload.data.slot;
315
+ return {
316
+ builder_request_auth: {
317
+ version: config.getForkName(slot).toUpperCase(),
318
+ data: config.getForkTypes<ForkPostGloas>(slot).BuilderRequestAuth.toJson(payload.data),
319
+ },
320
+ };
321
+ }
294
322
  }
295
323
  }
296
324