@lodestar/state-transition 1.40.0-dev.63c5c3e7f7 → 1.40.0-dev.9defa5c09b
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/lib/block/processExecutionPayloadBid.d.ts.map +1 -1
- package/lib/block/processExecutionPayloadBid.js +4 -4
- package/lib/block/processExecutionPayloadBid.js.map +1 -1
- package/lib/signatureSets/executionPayloadBid.d.ts +5 -0
- package/lib/signatureSets/executionPayloadBid.d.ts.map +1 -0
- package/lib/signatureSets/executionPayloadBid.js +8 -0
- package/lib/signatureSets/executionPayloadBid.js.map +1 -0
- package/lib/signatureSets/executionPayloadEnvelope.d.ts +4 -0
- package/lib/signatureSets/executionPayloadEnvelope.d.ts.map +1 -0
- package/lib/signatureSets/executionPayloadEnvelope.js +8 -0
- package/lib/signatureSets/executionPayloadEnvelope.js.map +1 -0
- package/lib/signatureSets/index.d.ts +2 -0
- package/lib/signatureSets/index.d.ts.map +1 -1
- package/lib/signatureSets/index.js +2 -0
- package/lib/signatureSets/index.js.map +1 -1
- package/lib/signatureSets/indexedPayloadAttestation.d.ts +2 -2
- package/lib/util/gloas.d.ts +10 -9
- package/lib/util/gloas.d.ts.map +1 -1
- package/lib/util/gloas.js.map +1 -1
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -0
- package/lib/util/index.js.map +1 -1
- package/package.json +7 -7
- package/src/block/processExecutionPayloadBid.ts +4 -4
- package/src/signatureSets/executionPayloadBid.ts +15 -0
- package/src/signatureSets/executionPayloadEnvelope.ts +13 -0
- package/src/signatureSets/index.ts +2 -0
- package/src/signatureSets/indexedPayloadAttestation.ts +2 -2
- package/src/util/gloas.ts +19 -11
- package/src/util/index.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExecutionPayloadBid.d.ts","sourceRoot":"","sources":["../../src/block/processExecutionPayloadBid.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"processExecutionPayloadBid.d.ts","sourceRoot":"","sources":["../../src/block/processExecutionPayloadBid.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAC,WAAW,EAAa,MAAM,iBAAiB,CAAC;AAIxD,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAInD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CAqEjH"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { PublicKey, Signature, verify } from "@chainsafe/blst";
|
|
2
2
|
import { byteArrayEquals } from "@chainsafe/ssz";
|
|
3
|
-
import { BUILDER_INDEX_SELF_BUILD,
|
|
3
|
+
import { BUILDER_INDEX_SELF_BUILD, SLOTS_PER_EPOCH } from "@lodestar/params";
|
|
4
4
|
import { ssz } from "@lodestar/types";
|
|
5
5
|
import { toHex, toRootHex } from "@lodestar/utils";
|
|
6
6
|
import { G2_POINT_AT_INFINITY } from "../constants/constants.js";
|
|
7
|
+
import { getExecutionPayloadBidSigningRoot } from "../signatureSets/executionPayloadBid.js";
|
|
7
8
|
import { canBuilderCoverBid, isActiveBuilder } from "../util/gloas.js";
|
|
8
|
-
import {
|
|
9
|
+
import { getCurrentEpoch, getRandaoMix } from "../util/index.js";
|
|
9
10
|
export function processExecutionPayloadBid(state, block) {
|
|
10
11
|
const signedBid = block.body.signedExecutionPayloadBid;
|
|
11
12
|
const bid = signedBid.message;
|
|
@@ -62,8 +63,7 @@ export function processExecutionPayloadBid(state, block) {
|
|
|
62
63
|
state.latestExecutionPayloadBid = ssz.gloas.ExecutionPayloadBid.toViewDU(bid);
|
|
63
64
|
}
|
|
64
65
|
function verifyExecutionPayloadBidSignature(state, pubkey, signedBid) {
|
|
65
|
-
const
|
|
66
|
-
const signingRoot = computeSigningRoot(ssz.gloas.ExecutionPayloadBid, signedBid.message, domain);
|
|
66
|
+
const signingRoot = getExecutionPayloadBidSigningRoot(state.config, state, signedBid.message);
|
|
67
67
|
try {
|
|
68
68
|
const publicKey = PublicKey.fromBytes(pubkey);
|
|
69
69
|
const signature = Signature.fromBytes(signedBid.signature, true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExecutionPayloadBid.js","sourceRoot":"","sources":["../../src/block/processExecutionPayloadBid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"processExecutionPayloadBid.js","sourceRoot":"","sources":["../../src/block/processExecutionPayloadBid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BeaconConfig } from "@lodestar/config";
|
|
2
|
+
import { gloas } from "@lodestar/types";
|
|
3
|
+
import { CachedBeaconStateGloas } from "../types.js";
|
|
4
|
+
export declare function getExecutionPayloadBidSigningRoot(config: BeaconConfig, state: CachedBeaconStateGloas, bid: gloas.ExecutionPayloadBid): Uint8Array;
|
|
5
|
+
//# sourceMappingURL=executionPayloadBid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executionPayloadBid.d.ts","sourceRoot":"","sources":["../../src/signatureSets/executionPayloadBid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAGnD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,sBAAsB,EAC7B,GAAG,EAAE,KAAK,CAAC,mBAAmB,GAC7B,UAAU,CAIZ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DOMAIN_BEACON_BUILDER } from "@lodestar/params";
|
|
2
|
+
import { ssz } from "@lodestar/types";
|
|
3
|
+
import { computeSigningRoot } from "../util/index.js";
|
|
4
|
+
export function getExecutionPayloadBidSigningRoot(config, state, bid) {
|
|
5
|
+
const domain = config.getDomain(state.slot, DOMAIN_BEACON_BUILDER);
|
|
6
|
+
return computeSigningRoot(ssz.gloas.ExecutionPayloadBid, bid, domain);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=executionPayloadBid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executionPayloadBid.js","sourceRoot":"","sources":["../../src/signatureSets/executionPayloadBid.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,MAAM,UAAU,iCAAiC,CAC/C,MAAoB,EACpB,KAA6B,EAC7B,GAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAEnE,OAAO,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BeaconConfig } from "@lodestar/config";
|
|
2
|
+
import { gloas } from "@lodestar/types";
|
|
3
|
+
export declare function getExecutionPayloadEnvelopeSigningRoot(config: BeaconConfig, envelope: gloas.ExecutionPayloadEnvelope): Uint8Array;
|
|
4
|
+
//# sourceMappingURL=executionPayloadEnvelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../src/signatureSets/executionPayloadEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAG3C,wBAAgB,sCAAsC,CACpD,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,KAAK,CAAC,wBAAwB,GACvC,UAAU,CAIZ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DOMAIN_BEACON_BUILDER } from "@lodestar/params";
|
|
2
|
+
import { ssz } from "@lodestar/types";
|
|
3
|
+
import { computeSigningRoot } from "../util/index.js";
|
|
4
|
+
export function getExecutionPayloadEnvelopeSigningRoot(config, envelope) {
|
|
5
|
+
const domain = config.getDomain(envelope.slot, DOMAIN_BEACON_BUILDER);
|
|
6
|
+
return computeSigningRoot(ssz.gloas.ExecutionPayloadEnvelope, envelope, domain);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=executionPayloadEnvelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executionPayloadEnvelope.js","sourceRoot":"","sources":["../../src/signatureSets/executionPayloadEnvelope.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,MAAM,UAAU,sCAAsC,CACpD,MAAoB,EACpB,QAAwC;IAExC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAEtE,OAAO,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -5,6 +5,8 @@ import { SyncCommitteeCache } from "../cache/syncCommitteeCache.js";
|
|
|
5
5
|
import { ISignatureSet } from "../util/index.js";
|
|
6
6
|
export * from "./attesterSlashings.js";
|
|
7
7
|
export * from "./blsToExecutionChange.js";
|
|
8
|
+
export * from "./executionPayloadBid.js";
|
|
9
|
+
export * from "./executionPayloadEnvelope.js";
|
|
8
10
|
export * from "./indexedAttestation.js";
|
|
9
11
|
export * from "./indexedPayloadAttestation.js";
|
|
10
12
|
export * from "./proposer.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signatureSets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAkB,MAAM,iBAAiB,CAAC;AAEvF,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAS/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAEpC;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,2BAA2B,EAAE,kBAAkB,EAC/C,WAAW,EAAE,iBAAiB,EAC9B,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,IAAI,CAAC,EAAE;IACL,wFAAwF;IACxF,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GACA,aAAa,EAAE,CA0CjB"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signatureSets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAkB,MAAM,iBAAiB,CAAC;AAEvF,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAS/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAEpC;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,2BAA2B,EAAE,kBAAkB,EAC/C,WAAW,EAAE,iBAAiB,EAC9B,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,IAAI,CAAC,EAAE;IACL,wFAAwF;IACxF,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GACA,aAAa,EAAE,CA0CjB"}
|
|
@@ -9,6 +9,8 @@ import { getRandaoRevealSignatureSet } from "./randao.js";
|
|
|
9
9
|
import { getVoluntaryExitsSignatureSets } from "./voluntaryExits.js";
|
|
10
10
|
export * from "./attesterSlashings.js";
|
|
11
11
|
export * from "./blsToExecutionChange.js";
|
|
12
|
+
export * from "./executionPayloadBid.js";
|
|
13
|
+
export * from "./executionPayloadEnvelope.js";
|
|
12
14
|
export * from "./indexedAttestation.js";
|
|
13
15
|
export * from "./indexedPayloadAttestation.js";
|
|
14
16
|
export * from "./proposer.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signatureSets/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAC,4BAA4B,EAAC,MAAM,kCAAkC,CAAC;AAI9E,OAAO,EAAC,iCAAiC,EAAC,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAC,oCAAoC,EAAC,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAC,4BAA4B,EAAC,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,iCAAiC,EAAC,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,aAAa,CAAC;AACxD,OAAO,EAAC,8BAA8B,EAAC,MAAM,qBAAqB,CAAC;AAEnE,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAoB,EACpB,YAA+B,EAC/B,2BAA+C,EAC/C,WAA8B,EAC9B,mBAAyC,EACzC,IAGC;IAED,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD,MAAM,aAAa,GAAG;QACpB,2BAA2B,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC;QACtE,GAAG,iCAAiC,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC;QACvE,GAAG,iCAAiC,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC;QACvE,GAAG,4BAA4B,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAC;QACvF,GAAG,8BAA8B,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC;KACrE,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,CAAC;QACjC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,2DAA2D;IAC3D,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,yBAAyB,GAAG,4BAA4B,CAC5D,MAAM,EACN,YAAY,EACZ,2BAA2B,EAC1B,WAAwC,CAAC,OAAO,CAClD,CAAC;QACF,2FAA2F;QAC3F,IAAI,yBAAyB,EAAE,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,iCAAiC,GAAG,oCAAoC,CAC5E,MAAM,EACN,WAAwC,CACzC,CAAC;QACF,IAAI,iCAAiC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,aAAa,CAAC,IAAI,CAAC,GAAG,iCAAiC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signatureSets/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAC,4BAA4B,EAAC,MAAM,kCAAkC,CAAC;AAI9E,OAAO,EAAC,iCAAiC,EAAC,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAC,oCAAoC,EAAC,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAC,4BAA4B,EAAC,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,iCAAiC,EAAC,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,aAAa,CAAC;AACxD,OAAO,EAAC,8BAA8B,EAAC,MAAM,qBAAqB,CAAC;AAEnE,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAoB,EACpB,YAA+B,EAC/B,2BAA+C,EAC/C,WAA8B,EAC9B,mBAAyC,EACzC,IAGC;IAED,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD,MAAM,aAAa,GAAG;QACpB,2BAA2B,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC;QACtE,GAAG,iCAAiC,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC;QACvE,GAAG,iCAAiC,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC;QACvE,GAAG,4BAA4B,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAC;QACvF,GAAG,8BAA8B,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC;KACrE,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,CAAC;QACjC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,2DAA2D;IAC3D,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,yBAAyB,GAAG,4BAA4B,CAC5D,MAAM,EACN,YAAY,EACZ,2BAA2B,EAC1B,WAAwC,CAAC,OAAO,CAClD,CAAC;QACF,2FAA2F;QAC3F,IAAI,yBAAyB,EAAE,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,iCAAiC,GAAG,oCAAoC,CAC5E,MAAM,EACN,WAAwC,CACzC,CAAC;QACF,IAAI,iCAAiC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,aAAa,CAAC,IAAI,CAAC,GAAG,iCAAiC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { gloas } from "@lodestar/types";
|
|
2
|
-
import { CachedBeaconStateGloas } from "../types.
|
|
3
|
-
import { ISignatureSet } from "../util/index.
|
|
2
|
+
import { CachedBeaconStateGloas } from "../types.js";
|
|
3
|
+
import { ISignatureSet } from "../util/index.js";
|
|
4
4
|
export declare function getIndexedPayloadAttestationSignatureSet(state: CachedBeaconStateGloas, indexedPayloadAttestation: gloas.IndexedPayloadAttestation): ISignatureSet;
|
|
5
5
|
export declare function getPayloadAttestationDataSigningRoot(state: CachedBeaconStateGloas, data: gloas.PayloadAttestationData): Uint8Array;
|
|
6
6
|
//# sourceMappingURL=indexedPayloadAttestation.d.ts.map
|
package/lib/util/gloas.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { BuilderIndex, ValidatorIndex } from "@lodestar/types";
|
|
1
2
|
import { AttestationData } from "@lodestar/types/phase0";
|
|
2
|
-
import { CachedBeaconStateGloas } from "../types.
|
|
3
|
-
import { RootCache } from "./rootCache.
|
|
3
|
+
import { CachedBeaconStateGloas } from "../types.js";
|
|
4
|
+
import { RootCache } from "./rootCache.js";
|
|
4
5
|
export declare function isBuilderWithdrawalCredential(withdrawalCredentials: Uint8Array): boolean;
|
|
5
6
|
export declare function getBuilderPaymentQuorumThreshold(state: CachedBeaconStateGloas): number;
|
|
6
7
|
/**
|
|
@@ -12,39 +13,39 @@ export declare function isBuilderIndex(validatorIndex: number): boolean;
|
|
|
12
13
|
* Convert a builder index to a flagged validator index for use in Withdrawal containers.
|
|
13
14
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-convert_builder_index_to_validator_index
|
|
14
15
|
*/
|
|
15
|
-
export declare function convertBuilderIndexToValidatorIndex(builderIndex:
|
|
16
|
+
export declare function convertBuilderIndexToValidatorIndex(builderIndex: BuilderIndex): ValidatorIndex;
|
|
16
17
|
/**
|
|
17
18
|
* Convert a flagged validator index back to a builder index.
|
|
18
19
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-convert_validator_index_to_builder_index
|
|
19
20
|
*/
|
|
20
|
-
export declare function convertValidatorIndexToBuilderIndex(validatorIndex:
|
|
21
|
+
export declare function convertValidatorIndexToBuilderIndex(validatorIndex: ValidatorIndex): BuilderIndex;
|
|
21
22
|
/**
|
|
22
23
|
* Check if a builder is active (deposited and not yet withdrawable).
|
|
23
24
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#isactivebuilder
|
|
24
25
|
*/
|
|
25
|
-
export declare function isActiveBuilder(state: CachedBeaconStateGloas, builderIndex:
|
|
26
|
+
export declare function isActiveBuilder(state: CachedBeaconStateGloas, builderIndex: BuilderIndex): boolean;
|
|
26
27
|
/**
|
|
27
28
|
* Get the total pending balance to withdraw for a builder (from withdrawals + payments).
|
|
28
29
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-get_pending_balance_to_withdraw_for_builder
|
|
29
30
|
*/
|
|
30
|
-
export declare function getPendingBalanceToWithdrawForBuilder(state: CachedBeaconStateGloas, builderIndex:
|
|
31
|
+
export declare function getPendingBalanceToWithdrawForBuilder(state: CachedBeaconStateGloas, builderIndex: BuilderIndex): number;
|
|
31
32
|
/**
|
|
32
33
|
* Check if a builder has sufficient balance to cover a bid amount.
|
|
33
34
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-can_builder_cover_bid
|
|
34
35
|
*/
|
|
35
|
-
export declare function canBuilderCoverBid(state: CachedBeaconStateGloas, builderIndex:
|
|
36
|
+
export declare function canBuilderCoverBid(state: CachedBeaconStateGloas, builderIndex: BuilderIndex, bidAmount: number): boolean;
|
|
36
37
|
/**
|
|
37
38
|
* Initiate a builder exit by setting their withdrawable epoch.
|
|
38
39
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-initiate_builder_exit
|
|
39
40
|
*/
|
|
40
|
-
export declare function initiateBuilderExit(state: CachedBeaconStateGloas, builderIndex:
|
|
41
|
+
export declare function initiateBuilderExit(state: CachedBeaconStateGloas, builderIndex: BuilderIndex): void;
|
|
41
42
|
/**
|
|
42
43
|
* Find the index of a builder by their public key.
|
|
43
44
|
* Returns null if not found.
|
|
44
45
|
*
|
|
45
46
|
* May consider builder pubkey cache if performance becomes an issue.
|
|
46
47
|
*/
|
|
47
|
-
export declare function findBuilderIndexByPubkey(state: CachedBeaconStateGloas, pubkey: Uint8Array):
|
|
48
|
+
export declare function findBuilderIndexByPubkey(state: CachedBeaconStateGloas, pubkey: Uint8Array): BuilderIndex | null;
|
|
48
49
|
export declare function isAttestationSameSlot(state: CachedBeaconStateGloas, data: AttestationData): boolean;
|
|
49
50
|
export declare function isAttestationSameSlotRootCache(rootCache: RootCache, data: AttestationData): boolean;
|
|
50
51
|
export declare function isParentBlockFull(state: CachedBeaconStateGloas): boolean;
|
package/lib/util/gloas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gloas.d.ts","sourceRoot":"","sources":["../../src/util/gloas.ts"],"names":[],"mappings":"AAWA,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,wBAAgB,6BAA6B,CAAC,qBAAqB,EAAE,UAAU,GAAG,OAAO,CAExF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAMtF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"gloas.d.ts","sourceRoot":"","sources":["../../src/util/gloas.ts"],"names":[],"mappings":"AAWA,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,wBAAgB,6BAA6B,CAAC,qBAAqB,EAAE,UAAU,GAAG,OAAO,CAExF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAMtF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,CAE9F;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,cAAc,EAAE,cAAc,GAAG,YAAY,CAEhG;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAKlG;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,sBAAsB,EAC7B,YAAY,EAAE,YAAY,GACzB,MAAM,CAoBR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,sBAAsB,EAC7B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAUT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI,CAWnG;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAO/G;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAOnG;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAOnG;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAExE"}
|
package/lib/util/gloas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gloas.js","sourceRoot":"","sources":["../../src/util/gloas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,qCAAqC,EACrC,mCAAmC,EACnC,yBAAyB,EACzB,2BAA2B,EAC3B,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"gloas.js","sourceRoot":"","sources":["../../src/util/gloas.ts"],"names":[],"mappings":"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"}
|
package/lib/util/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export * from "./epochShuffling.js";
|
|
|
15
15
|
export * from "./execution.js";
|
|
16
16
|
export * from "./finality.js";
|
|
17
17
|
export * from "./genesis.js";
|
|
18
|
+
export * from "./gloas.js";
|
|
18
19
|
export * from "./interop.js";
|
|
19
20
|
export * from "./loadState/index.js";
|
|
20
21
|
export * from "./rootCache.js";
|
package/lib/util/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
package/lib/util/index.js
CHANGED
|
@@ -15,6 +15,7 @@ export * from "./epochShuffling.js";
|
|
|
15
15
|
export * from "./execution.js";
|
|
16
16
|
export * from "./finality.js";
|
|
17
17
|
export * from "./genesis.js";
|
|
18
|
+
export * from "./gloas.js";
|
|
18
19
|
export * from "./interop.js";
|
|
19
20
|
export * from "./loadState/index.js";
|
|
20
21
|
export * from "./rootCache.js";
|
package/lib/util/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.40.0-dev.
|
|
14
|
+
"version": "1.40.0-dev.9defa5c09b",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -62,14 +62,14 @@
|
|
|
62
62
|
"@chainsafe/pubkey-index-map": "^3.0.0",
|
|
63
63
|
"@chainsafe/ssz": "^1.2.2",
|
|
64
64
|
"@chainsafe/swap-or-not-shuffle": "^1.2.1",
|
|
65
|
-
"@lodestar/config": "^1.40.0-dev.
|
|
66
|
-
"@lodestar/params": "^1.40.0-dev.
|
|
67
|
-
"@lodestar/types": "^1.40.0-dev.
|
|
68
|
-
"@lodestar/utils": "^1.40.0-dev.
|
|
65
|
+
"@lodestar/config": "^1.40.0-dev.9defa5c09b",
|
|
66
|
+
"@lodestar/params": "^1.40.0-dev.9defa5c09b",
|
|
67
|
+
"@lodestar/types": "^1.40.0-dev.9defa5c09b",
|
|
68
|
+
"@lodestar/utils": "^1.40.0-dev.9defa5c09b",
|
|
69
69
|
"bigint-buffer": "^1.1.5"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@lodestar/api": "^1.40.0-dev.
|
|
72
|
+
"@lodestar/api": "^1.40.0-dev.9defa5c09b"
|
|
73
73
|
},
|
|
74
74
|
"keywords": [
|
|
75
75
|
"ethereum",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"beacon",
|
|
78
78
|
"blockchain"
|
|
79
79
|
],
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "948cfcdb1cbffd00545034a0c8ae6ed1b0c266bb"
|
|
81
81
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {PublicKey, Signature, verify} from "@chainsafe/blst";
|
|
2
2
|
import {byteArrayEquals} from "@chainsafe/ssz";
|
|
3
|
-
import {BUILDER_INDEX_SELF_BUILD,
|
|
3
|
+
import {BUILDER_INDEX_SELF_BUILD, ForkPostGloas, SLOTS_PER_EPOCH} from "@lodestar/params";
|
|
4
4
|
import {BeaconBlock, gloas, ssz} from "@lodestar/types";
|
|
5
5
|
import {toHex, toRootHex} from "@lodestar/utils";
|
|
6
6
|
import {G2_POINT_AT_INFINITY} from "../constants/constants.ts";
|
|
7
|
+
import {getExecutionPayloadBidSigningRoot} from "../signatureSets/executionPayloadBid.js";
|
|
7
8
|
import {CachedBeaconStateGloas} from "../types.ts";
|
|
8
9
|
import {canBuilderCoverBid, isActiveBuilder} from "../util/gloas.ts";
|
|
9
|
-
import {
|
|
10
|
+
import {getCurrentEpoch, getRandaoMix} from "../util/index.ts";
|
|
10
11
|
|
|
11
12
|
export function processExecutionPayloadBid(state: CachedBeaconStateGloas, block: BeaconBlock<ForkPostGloas>): void {
|
|
12
13
|
const signedBid = block.body.signedExecutionPayloadBid;
|
|
@@ -84,8 +85,7 @@ function verifyExecutionPayloadBidSignature(
|
|
|
84
85
|
pubkey: Uint8Array,
|
|
85
86
|
signedBid: gloas.SignedExecutionPayloadBid
|
|
86
87
|
): boolean {
|
|
87
|
-
const
|
|
88
|
-
const signingRoot = computeSigningRoot(ssz.gloas.ExecutionPayloadBid, signedBid.message, domain);
|
|
88
|
+
const signingRoot = getExecutionPayloadBidSigningRoot(state.config, state, signedBid.message);
|
|
89
89
|
|
|
90
90
|
try {
|
|
91
91
|
const publicKey = PublicKey.fromBytes(pubkey);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {BeaconConfig} from "@lodestar/config";
|
|
2
|
+
import {DOMAIN_BEACON_BUILDER} from "@lodestar/params";
|
|
3
|
+
import {gloas, ssz} from "@lodestar/types";
|
|
4
|
+
import {CachedBeaconStateGloas} from "../types.js";
|
|
5
|
+
import {computeSigningRoot} from "../util/index.js";
|
|
6
|
+
|
|
7
|
+
export function getExecutionPayloadBidSigningRoot(
|
|
8
|
+
config: BeaconConfig,
|
|
9
|
+
state: CachedBeaconStateGloas,
|
|
10
|
+
bid: gloas.ExecutionPayloadBid
|
|
11
|
+
): Uint8Array {
|
|
12
|
+
const domain = config.getDomain(state.slot, DOMAIN_BEACON_BUILDER);
|
|
13
|
+
|
|
14
|
+
return computeSigningRoot(ssz.gloas.ExecutionPayloadBid, bid, domain);
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {BeaconConfig} from "@lodestar/config";
|
|
2
|
+
import {DOMAIN_BEACON_BUILDER} from "@lodestar/params";
|
|
3
|
+
import {gloas, ssz} from "@lodestar/types";
|
|
4
|
+
import {computeSigningRoot} from "../util/index.js";
|
|
5
|
+
|
|
6
|
+
export function getExecutionPayloadEnvelopeSigningRoot(
|
|
7
|
+
config: BeaconConfig,
|
|
8
|
+
envelope: gloas.ExecutionPayloadEnvelope
|
|
9
|
+
): Uint8Array {
|
|
10
|
+
const domain = config.getDomain(envelope.slot, DOMAIN_BEACON_BUILDER);
|
|
11
|
+
|
|
12
|
+
return computeSigningRoot(ssz.gloas.ExecutionPayloadEnvelope, envelope, domain);
|
|
13
|
+
}
|
|
@@ -15,6 +15,8 @@ import {getVoluntaryExitsSignatureSets} from "./voluntaryExits.js";
|
|
|
15
15
|
|
|
16
16
|
export * from "./attesterSlashings.js";
|
|
17
17
|
export * from "./blsToExecutionChange.js";
|
|
18
|
+
export * from "./executionPayloadBid.js";
|
|
19
|
+
export * from "./executionPayloadEnvelope.js";
|
|
18
20
|
export * from "./indexedAttestation.js";
|
|
19
21
|
export * from "./indexedPayloadAttestation.js";
|
|
20
22
|
export * from "./proposer.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {DOMAIN_PTC_ATTESTER} from "@lodestar/params";
|
|
2
2
|
import {gloas, ssz} from "@lodestar/types";
|
|
3
|
-
import {CachedBeaconStateGloas} from "../types.
|
|
4
|
-
import {ISignatureSet, computeSigningRoot, createAggregateSignatureSetFromComponents} from "../util/index.
|
|
3
|
+
import {CachedBeaconStateGloas} from "../types.js";
|
|
4
|
+
import {ISignatureSet, computeSigningRoot, createAggregateSignatureSetFromComponents} from "../util/index.js";
|
|
5
5
|
|
|
6
6
|
export function getIndexedPayloadAttestationSignatureSet(
|
|
7
7
|
state: CachedBeaconStateGloas,
|
package/src/util/gloas.ts
CHANGED
|
@@ -9,11 +9,12 @@ import {
|
|
|
9
9
|
MIN_DEPOSIT_AMOUNT,
|
|
10
10
|
SLOTS_PER_EPOCH,
|
|
11
11
|
} from "@lodestar/params";
|
|
12
|
+
import {BuilderIndex, ValidatorIndex} from "@lodestar/types";
|
|
12
13
|
import {AttestationData} from "@lodestar/types/phase0";
|
|
13
|
-
import {CachedBeaconStateGloas} from "../types.
|
|
14
|
-
import {getBlockRootAtSlot} from "./blockRoot.
|
|
15
|
-
import {computeEpochAtSlot} from "./epoch.
|
|
16
|
-
import {RootCache} from "./rootCache.
|
|
14
|
+
import {CachedBeaconStateGloas} from "../types.js";
|
|
15
|
+
import {getBlockRootAtSlot} from "./blockRoot.js";
|
|
16
|
+
import {computeEpochAtSlot} from "./epoch.js";
|
|
17
|
+
import {RootCache} from "./rootCache.js";
|
|
17
18
|
|
|
18
19
|
export function isBuilderWithdrawalCredential(withdrawalCredentials: Uint8Array): boolean {
|
|
19
20
|
return withdrawalCredentials[0] === BUILDER_WITHDRAWAL_PREFIX;
|
|
@@ -39,7 +40,7 @@ export function isBuilderIndex(validatorIndex: number): boolean {
|
|
|
39
40
|
* Convert a builder index to a flagged validator index for use in Withdrawal containers.
|
|
40
41
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-convert_builder_index_to_validator_index
|
|
41
42
|
*/
|
|
42
|
-
export function convertBuilderIndexToValidatorIndex(builderIndex:
|
|
43
|
+
export function convertBuilderIndexToValidatorIndex(builderIndex: BuilderIndex): ValidatorIndex {
|
|
43
44
|
return builderIndex | BUILDER_INDEX_FLAG;
|
|
44
45
|
}
|
|
45
46
|
|
|
@@ -47,7 +48,7 @@ export function convertBuilderIndexToValidatorIndex(builderIndex: number): numbe
|
|
|
47
48
|
* Convert a flagged validator index back to a builder index.
|
|
48
49
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-convert_validator_index_to_builder_index
|
|
49
50
|
*/
|
|
50
|
-
export function convertValidatorIndexToBuilderIndex(validatorIndex:
|
|
51
|
+
export function convertValidatorIndexToBuilderIndex(validatorIndex: ValidatorIndex): BuilderIndex {
|
|
51
52
|
return validatorIndex & ~BUILDER_INDEX_FLAG;
|
|
52
53
|
}
|
|
53
54
|
|
|
@@ -55,7 +56,7 @@ export function convertValidatorIndexToBuilderIndex(validatorIndex: number): num
|
|
|
55
56
|
* Check if a builder is active (deposited and not yet withdrawable).
|
|
56
57
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#isactivebuilder
|
|
57
58
|
*/
|
|
58
|
-
export function isActiveBuilder(state: CachedBeaconStateGloas, builderIndex:
|
|
59
|
+
export function isActiveBuilder(state: CachedBeaconStateGloas, builderIndex: BuilderIndex): boolean {
|
|
59
60
|
const builder = state.builders.getReadonly(builderIndex);
|
|
60
61
|
const finalizedEpoch = state.finalizedCheckpoint.epoch;
|
|
61
62
|
|
|
@@ -66,7 +67,10 @@ export function isActiveBuilder(state: CachedBeaconStateGloas, builderIndex: num
|
|
|
66
67
|
* Get the total pending balance to withdraw for a builder (from withdrawals + payments).
|
|
67
68
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-get_pending_balance_to_withdraw_for_builder
|
|
68
69
|
*/
|
|
69
|
-
export function getPendingBalanceToWithdrawForBuilder(
|
|
70
|
+
export function getPendingBalanceToWithdrawForBuilder(
|
|
71
|
+
state: CachedBeaconStateGloas,
|
|
72
|
+
builderIndex: BuilderIndex
|
|
73
|
+
): number {
|
|
70
74
|
let pendingBalance = 0;
|
|
71
75
|
|
|
72
76
|
// Sum pending withdrawals
|
|
@@ -92,7 +96,11 @@ export function getPendingBalanceToWithdrawForBuilder(state: CachedBeaconStateGl
|
|
|
92
96
|
* Check if a builder has sufficient balance to cover a bid amount.
|
|
93
97
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-can_builder_cover_bid
|
|
94
98
|
*/
|
|
95
|
-
export function canBuilderCoverBid(
|
|
99
|
+
export function canBuilderCoverBid(
|
|
100
|
+
state: CachedBeaconStateGloas,
|
|
101
|
+
builderIndex: BuilderIndex,
|
|
102
|
+
bidAmount: number
|
|
103
|
+
): boolean {
|
|
96
104
|
const builder = state.builders.getReadonly(builderIndex);
|
|
97
105
|
const pendingBalance = getPendingBalanceToWithdrawForBuilder(state, builderIndex);
|
|
98
106
|
const minBalance = MIN_DEPOSIT_AMOUNT + pendingBalance;
|
|
@@ -108,7 +116,7 @@ export function canBuilderCoverBid(state: CachedBeaconStateGloas, builderIndex:
|
|
|
108
116
|
* Initiate a builder exit by setting their withdrawable epoch.
|
|
109
117
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-initiate_builder_exit
|
|
110
118
|
*/
|
|
111
|
-
export function initiateBuilderExit(state: CachedBeaconStateGloas, builderIndex:
|
|
119
|
+
export function initiateBuilderExit(state: CachedBeaconStateGloas, builderIndex: BuilderIndex): void {
|
|
112
120
|
const builder = state.builders.get(builderIndex);
|
|
113
121
|
|
|
114
122
|
// Return if builder already initiated exit
|
|
@@ -127,7 +135,7 @@ export function initiateBuilderExit(state: CachedBeaconStateGloas, builderIndex:
|
|
|
127
135
|
*
|
|
128
136
|
* May consider builder pubkey cache if performance becomes an issue.
|
|
129
137
|
*/
|
|
130
|
-
export function findBuilderIndexByPubkey(state: CachedBeaconStateGloas, pubkey: Uint8Array):
|
|
138
|
+
export function findBuilderIndexByPubkey(state: CachedBeaconStateGloas, pubkey: Uint8Array): BuilderIndex | null {
|
|
131
139
|
for (let i = 0; i < state.builders.length; i++) {
|
|
132
140
|
if (byteArrayEquals(state.builders.getReadonly(i).pubkey, pubkey)) {
|
|
133
141
|
return i;
|
package/src/util/index.ts
CHANGED
|
@@ -15,6 +15,7 @@ export * from "./epochShuffling.js";
|
|
|
15
15
|
export * from "./execution.js";
|
|
16
16
|
export * from "./finality.js";
|
|
17
17
|
export * from "./genesis.js";
|
|
18
|
+
export * from "./gloas.js";
|
|
18
19
|
export * from "./interop.js";
|
|
19
20
|
export * from "./loadState/index.js";
|
|
20
21
|
export * from "./rootCache.js";
|