@lodestar/validator 1.39.0-rc.4 → 1.40.0-dev.0ae7a89ead
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ContainerType, ValueOf } from "@chainsafe/ssz";
|
|
2
2
|
import { BeaconConfig } from "@lodestar/config";
|
|
3
3
|
import { ForkPreBellatrix } from "@lodestar/params";
|
|
4
|
-
import { AggregateAndProof, BeaconBlock, BlindedBeaconBlock, Epoch, Root, Slot, altair,
|
|
4
|
+
import { AggregateAndProof, BeaconBlock, BlindedBeaconBlock, Epoch, Root, Slot, altair, phase0 } from "@lodestar/types";
|
|
5
5
|
import { ValidatorRegistrationV1 } from "@lodestar/types/bellatrix";
|
|
6
6
|
import { PubkeyHex } from "../types.js";
|
|
7
7
|
export declare enum SignableMessageType {
|
|
@@ -16,8 +16,7 @@ export declare enum SignableMessageType {
|
|
|
16
16
|
SYNC_COMMITTEE_MESSAGE = "SYNC_COMMITTEE_MESSAGE",
|
|
17
17
|
SYNC_COMMITTEE_SELECTION_PROOF = "SYNC_COMMITTEE_SELECTION_PROOF",
|
|
18
18
|
SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF = "SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF",
|
|
19
|
-
VALIDATOR_REGISTRATION = "VALIDATOR_REGISTRATION"
|
|
20
|
-
BLS_TO_EXECUTION_CHANGE = "BLS_TO_EXECUTION_CHANGE"
|
|
19
|
+
VALIDATOR_REGISTRATION = "VALIDATOR_REGISTRATION"
|
|
21
20
|
}
|
|
22
21
|
declare const DepositType: ContainerType<{
|
|
23
22
|
pubkey: import("@chainsafe/ssz").ByteVectorType;
|
|
@@ -73,9 +72,6 @@ export type SignableMessage = {
|
|
|
73
72
|
} | {
|
|
74
73
|
type: SignableMessageType.VALIDATOR_REGISTRATION;
|
|
75
74
|
data: ValidatorRegistrationV1;
|
|
76
|
-
} | {
|
|
77
|
-
type: SignableMessageType.BLS_TO_EXECUTION_CHANGE;
|
|
78
|
-
data: capella.BLSToExecutionChange;
|
|
79
75
|
};
|
|
80
76
|
/**
|
|
81
77
|
* Return public keys from the server.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"externalSignerClient.d.ts","sourceRoot":"","sources":["../../src/util/externalSignerClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"externalSignerClient.d.ts","sourceRoot":"","sources":["../../src/util/externalSignerClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ContainerType } from "@chainsafe/ssz";
|
|
2
|
-
import { ForkSeq } from "@lodestar/params";
|
|
2
|
+
import { ForkName, ForkSeq, isForkPostDeneb } from "@lodestar/params";
|
|
3
3
|
import { blindedOrFullBlockToHeader, computeEpochAtSlot } from "@lodestar/state-transition";
|
|
4
4
|
import { ssz, sszTypesFor, } from "@lodestar/types";
|
|
5
5
|
import { fetch, toHex, toRootHex } from "@lodestar/utils";
|
|
@@ -17,7 +17,6 @@ export var SignableMessageType;
|
|
|
17
17
|
SignableMessageType["SYNC_COMMITTEE_SELECTION_PROOF"] = "SYNC_COMMITTEE_SELECTION_PROOF";
|
|
18
18
|
SignableMessageType["SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF"] = "SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF";
|
|
19
19
|
SignableMessageType["VALIDATOR_REGISTRATION"] = "VALIDATOR_REGISTRATION";
|
|
20
|
-
SignableMessageType["BLS_TO_EXECUTION_CHANGE"] = "BLS_TO_EXECUTION_CHANGE";
|
|
21
20
|
})(SignableMessageType || (SignableMessageType = {}));
|
|
22
21
|
const AggregationSlotType = new ContainerType({
|
|
23
22
|
slot: ssz.Slot,
|
|
@@ -52,7 +51,6 @@ const requiresForkInfo = {
|
|
|
52
51
|
[SignableMessageType.SYNC_COMMITTEE_SELECTION_PROOF]: true,
|
|
53
52
|
[SignableMessageType.SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF]: true,
|
|
54
53
|
[SignableMessageType.VALIDATOR_REGISTRATION]: false,
|
|
55
|
-
[SignableMessageType.BLS_TO_EXECUTION_CHANGE]: true,
|
|
56
54
|
};
|
|
57
55
|
var MediaType;
|
|
58
56
|
(function (MediaType) {
|
|
@@ -76,12 +74,12 @@ export async function externalSignerPostSignature(config, externalSignerUrl, pub
|
|
|
76
74
|
requestObj.type = signableMessage.type;
|
|
77
75
|
requestObj.signingRoot = toRootHex(signingRoot);
|
|
78
76
|
if (requiresForkInfo[signableMessage.type]) {
|
|
79
|
-
const forkInfo = config.
|
|
77
|
+
const forkInfo = getForkInfoForSigning(config, signingSlot, signableMessage.type);
|
|
80
78
|
requestObj.fork_info = {
|
|
81
79
|
fork: {
|
|
82
80
|
previous_version: toHex(forkInfo.prevVersion),
|
|
83
81
|
current_version: toHex(forkInfo.version),
|
|
84
|
-
epoch: String(
|
|
82
|
+
epoch: String(forkInfo.epoch),
|
|
85
83
|
},
|
|
86
84
|
genesis_validators_root: toRootHex(config.genesisValidatorsRoot),
|
|
87
85
|
};
|
|
@@ -179,8 +177,24 @@ function serializerSignableMessagePayload(config, payload) {
|
|
|
179
177
|
return { contribution_and_proof: ssz.altair.ContributionAndProof.toJson(payload.data) };
|
|
180
178
|
case SignableMessageType.VALIDATOR_REGISTRATION:
|
|
181
179
|
return { validator_registration: ssz.bellatrix.ValidatorRegistrationV1.toJson(payload.data) };
|
|
182
|
-
case SignableMessageType.BLS_TO_EXECUTION_CHANGE:
|
|
183
|
-
return { BLS_TO_EXECUTION_CHANGE: ssz.capella.BLSToExecutionChange.toJson(payload.data) };
|
|
184
180
|
}
|
|
185
181
|
}
|
|
182
|
+
function getForkInfoForSigning(config, signingSlot, messageType) {
|
|
183
|
+
const forkInfo = config.getForkInfo(signingSlot);
|
|
184
|
+
if (messageType === SignableMessageType.VOLUNTARY_EXIT && isForkPostDeneb(forkInfo.name)) {
|
|
185
|
+
// Always uses Capella fork post-Deneb (EIP-7044)
|
|
186
|
+
const capellaFork = config.forks[ForkName.capella];
|
|
187
|
+
return {
|
|
188
|
+
version: capellaFork.version,
|
|
189
|
+
prevVersion: capellaFork.prevVersion,
|
|
190
|
+
epoch: capellaFork.epoch,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
// Use the fork at the signing slot by default
|
|
194
|
+
return {
|
|
195
|
+
version: forkInfo.version,
|
|
196
|
+
prevVersion: forkInfo.prevVersion,
|
|
197
|
+
epoch: computeEpochAtSlot(signingSlot),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
186
200
|
//# sourceMappingURL=externalSignerClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"externalSignerClient.js","sourceRoot":"","sources":["../../src/util/externalSignerClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAEtD,OAAO,
|
|
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.
|
|
3
|
+
"version": "1.40.0-dev.0ae7a89ead",
|
|
4
4
|
"description": "A Typescript implementation of the validator client",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -50,21 +50,21 @@
|
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@chainsafe/blst": "^2.2.0",
|
|
52
52
|
"@chainsafe/ssz": "^1.2.2",
|
|
53
|
-
"@lodestar/api": "^1.
|
|
54
|
-
"@lodestar/config": "^1.
|
|
55
|
-
"@lodestar/db": "^1.
|
|
56
|
-
"@lodestar/params": "^1.
|
|
57
|
-
"@lodestar/state-transition": "^1.
|
|
58
|
-
"@lodestar/types": "^1.
|
|
59
|
-
"@lodestar/utils": "^1.
|
|
53
|
+
"@lodestar/api": "^1.40.0-dev.0ae7a89ead",
|
|
54
|
+
"@lodestar/config": "^1.40.0-dev.0ae7a89ead",
|
|
55
|
+
"@lodestar/db": "^1.40.0-dev.0ae7a89ead",
|
|
56
|
+
"@lodestar/params": "^1.40.0-dev.0ae7a89ead",
|
|
57
|
+
"@lodestar/state-transition": "^1.40.0-dev.0ae7a89ead",
|
|
58
|
+
"@lodestar/types": "^1.40.0-dev.0ae7a89ead",
|
|
59
|
+
"@lodestar/utils": "^1.40.0-dev.0ae7a89ead",
|
|
60
60
|
"strict-event-emitter-types": "^2.0.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@lodestar/logger": "^1.
|
|
64
|
-
"@lodestar/spec-test-util": "^1.
|
|
65
|
-
"@lodestar/test-utils": "^1.
|
|
63
|
+
"@lodestar/logger": "^1.40.0-dev.0ae7a89ead",
|
|
64
|
+
"@lodestar/spec-test-util": "^1.40.0-dev.0ae7a89ead",
|
|
65
|
+
"@lodestar/test-utils": "^1.40.0-dev.0ae7a89ead",
|
|
66
66
|
"bigint-buffer": "^1.1.5",
|
|
67
67
|
"rimraf": "^4.4.1"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "757f82afe00660128b35e96d623c226d22ad9444"
|
|
70
70
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {ContainerType, ValueOf} from "@chainsafe/ssz";
|
|
2
2
|
import {BeaconConfig} from "@lodestar/config";
|
|
3
|
-
import {ForkPreBellatrix, ForkSeq} from "@lodestar/params";
|
|
3
|
+
import {ForkName, ForkPreBellatrix, ForkSeq, isForkPostDeneb} from "@lodestar/params";
|
|
4
4
|
import {blindedOrFullBlockToHeader, computeEpochAtSlot} from "@lodestar/state-transition";
|
|
5
5
|
import {
|
|
6
6
|
AggregateAndProof,
|
|
@@ -11,7 +11,6 @@ import {
|
|
|
11
11
|
RootHex,
|
|
12
12
|
Slot,
|
|
13
13
|
altair,
|
|
14
|
-
capella,
|
|
15
14
|
phase0,
|
|
16
15
|
ssz,
|
|
17
16
|
sszTypesFor,
|
|
@@ -33,7 +32,6 @@ export enum SignableMessageType {
|
|
|
33
32
|
SYNC_COMMITTEE_SELECTION_PROOF = "SYNC_COMMITTEE_SELECTION_PROOF",
|
|
34
33
|
SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF = "SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF",
|
|
35
34
|
VALIDATOR_REGISTRATION = "VALIDATOR_REGISTRATION",
|
|
36
|
-
BLS_TO_EXECUTION_CHANGE = "BLS_TO_EXECUTION_CHANGE",
|
|
37
35
|
}
|
|
38
36
|
|
|
39
37
|
const AggregationSlotType = new ContainerType({
|
|
@@ -82,8 +80,7 @@ export type SignableMessage =
|
|
|
82
80
|
| {type: SignableMessageType.SYNC_COMMITTEE_MESSAGE; data: ValueOf<typeof SyncCommitteeMessageType>}
|
|
83
81
|
| {type: SignableMessageType.SYNC_COMMITTEE_SELECTION_PROOF; data: ValueOf<typeof SyncAggregatorSelectionDataType>}
|
|
84
82
|
| {type: SignableMessageType.SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF; data: altair.ContributionAndProof}
|
|
85
|
-
| {type: SignableMessageType.VALIDATOR_REGISTRATION; data: ValidatorRegistrationV1}
|
|
86
|
-
| {type: SignableMessageType.BLS_TO_EXECUTION_CHANGE; data: capella.BLSToExecutionChange};
|
|
83
|
+
| {type: SignableMessageType.VALIDATOR_REGISTRATION; data: ValidatorRegistrationV1};
|
|
87
84
|
|
|
88
85
|
const requiresForkInfo: Record<SignableMessageType, boolean> = {
|
|
89
86
|
[SignableMessageType.AGGREGATION_SLOT]: true,
|
|
@@ -98,7 +95,6 @@ const requiresForkInfo: Record<SignableMessageType, boolean> = {
|
|
|
98
95
|
[SignableMessageType.SYNC_COMMITTEE_SELECTION_PROOF]: true,
|
|
99
96
|
[SignableMessageType.SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF]: true,
|
|
100
97
|
[SignableMessageType.VALIDATOR_REGISTRATION]: false,
|
|
101
|
-
[SignableMessageType.BLS_TO_EXECUTION_CHANGE]: true,
|
|
102
98
|
};
|
|
103
99
|
|
|
104
100
|
type Web3SignerSerializedRequest = {
|
|
@@ -147,12 +143,12 @@ export async function externalSignerPostSignature(
|
|
|
147
143
|
requestObj.signingRoot = toRootHex(signingRoot);
|
|
148
144
|
|
|
149
145
|
if (requiresForkInfo[signableMessage.type]) {
|
|
150
|
-
const forkInfo = config.
|
|
146
|
+
const forkInfo = getForkInfoForSigning(config, signingSlot, signableMessage.type);
|
|
151
147
|
requestObj.fork_info = {
|
|
152
148
|
fork: {
|
|
153
149
|
previous_version: toHex(forkInfo.prevVersion),
|
|
154
150
|
current_version: toHex(forkInfo.version),
|
|
155
|
-
epoch: String(
|
|
151
|
+
epoch: String(forkInfo.epoch),
|
|
156
152
|
},
|
|
157
153
|
genesis_validators_root: toRootHex(config.genesisValidatorsRoot),
|
|
158
154
|
};
|
|
@@ -270,8 +266,30 @@ function serializerSignableMessagePayload(config: BeaconConfig, payload: Signabl
|
|
|
270
266
|
|
|
271
267
|
case SignableMessageType.VALIDATOR_REGISTRATION:
|
|
272
268
|
return {validator_registration: ssz.bellatrix.ValidatorRegistrationV1.toJson(payload.data)};
|
|
269
|
+
}
|
|
270
|
+
}
|
|
273
271
|
|
|
274
|
-
|
|
275
|
-
|
|
272
|
+
function getForkInfoForSigning(
|
|
273
|
+
config: BeaconConfig,
|
|
274
|
+
signingSlot: Slot,
|
|
275
|
+
messageType: SignableMessageType
|
|
276
|
+
): {version: Uint8Array; prevVersion: Uint8Array; epoch: number} {
|
|
277
|
+
const forkInfo = config.getForkInfo(signingSlot);
|
|
278
|
+
|
|
279
|
+
if (messageType === SignableMessageType.VOLUNTARY_EXIT && isForkPostDeneb(forkInfo.name)) {
|
|
280
|
+
// Always uses Capella fork post-Deneb (EIP-7044)
|
|
281
|
+
const capellaFork = config.forks[ForkName.capella];
|
|
282
|
+
return {
|
|
283
|
+
version: capellaFork.version,
|
|
284
|
+
prevVersion: capellaFork.prevVersion,
|
|
285
|
+
epoch: capellaFork.epoch,
|
|
286
|
+
};
|
|
276
287
|
}
|
|
288
|
+
|
|
289
|
+
// Use the fork at the signing slot by default
|
|
290
|
+
return {
|
|
291
|
+
version: forkInfo.version,
|
|
292
|
+
prevVersion: forkInfo.prevVersion,
|
|
293
|
+
epoch: computeEpochAtSlot(signingSlot),
|
|
294
|
+
};
|
|
277
295
|
}
|