@chainsafe/lodestar 1.19.0 → 1.20.0-dev.0cb3998a2a
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/.git-data.json +2 -2
- package/README.md +1 -1
- package/lib/cmds/beacon/handler.js +4 -3
- package/lib/cmds/beacon/handler.js.map +1 -1
- package/lib/cmds/beacon/index.js +3 -3
- package/lib/cmds/beacon/index.js.map +1 -1
- package/lib/cmds/bootnode/index.js +1 -1
- package/lib/cmds/bootnode/index.js.map +1 -1
- package/lib/cmds/dev/options.d.ts +4 -1
- package/lib/cmds/lightclient/handler.js +4 -5
- package/lib/cmds/lightclient/handler.js.map +1 -1
- package/lib/cmds/lightclient/index.js +3 -3
- package/lib/cmds/lightclient/index.js.map +1 -1
- package/lib/cmds/validator/blsToExecutionChange.js +9 -11
- package/lib/cmds/validator/blsToExecutionChange.js.map +1 -1
- package/lib/cmds/validator/handler.js +21 -1
- package/lib/cmds/validator/handler.js.map +1 -1
- package/lib/cmds/validator/import.js +1 -1
- package/lib/cmds/validator/import.js.map +1 -1
- package/lib/cmds/validator/index.js +3 -3
- package/lib/cmds/validator/index.js.map +1 -1
- package/lib/cmds/validator/keymanager/impl.d.ts +48 -74
- package/lib/cmds/validator/keymanager/impl.js +72 -114
- package/lib/cmds/validator/keymanager/impl.js.map +1 -1
- package/lib/cmds/validator/keymanager/server.d.ts +2 -3
- package/lib/cmds/validator/keymanager/server.js.map +1 -1
- package/lib/cmds/validator/list.js +2 -0
- package/lib/cmds/validator/list.js.map +1 -1
- package/lib/cmds/validator/options.d.ts +2 -0
- package/lib/cmds/validator/options.js +13 -0
- package/lib/cmds/validator/options.js.map +1 -1
- package/lib/cmds/validator/slashingProtection/export.js +1 -1
- package/lib/cmds/validator/slashingProtection/export.js.map +1 -1
- package/lib/cmds/validator/slashingProtection/import.js +1 -1
- package/lib/cmds/validator/slashingProtection/import.js.map +1 -1
- package/lib/cmds/validator/slashingProtection/utils.js +3 -3
- package/lib/cmds/validator/slashingProtection/utils.js.map +1 -1
- package/lib/cmds/validator/voluntaryExit.js +9 -11
- package/lib/cmds/validator/voluntaryExit.js.map +1 -1
- package/lib/networks/holesky.d.ts +2 -2
- package/lib/networks/holesky.js +2 -2
- package/lib/networks/holesky.js.map +1 -1
- package/lib/networks/index.d.ts +1 -1
- package/lib/networks/index.js +12 -12
- package/lib/networks/index.js.map +1 -1
- package/lib/networks/sepolia.d.ts +2 -2
- package/lib/networks/sepolia.js +8 -6
- package/lib/networks/sepolia.js.map +1 -1
- package/lib/options/beaconNodeOptions/chain.d.ts +2 -1
- package/lib/options/beaconNodeOptions/chain.js +12 -3
- package/lib/options/beaconNodeOptions/chain.js.map +1 -1
- package/lib/options/beaconNodeOptions/execution.js +2 -2
- package/lib/options/beaconNodeOptions/execution.js.map +1 -1
- package/lib/options/beaconNodeOptions/index.d.ts +2 -1
- package/lib/util/pruneOldFilesInDir.d.ts +1 -1
- package/lib/util/pruneOldFilesInDir.js +8 -1
- package/lib/util/pruneOldFilesInDir.js.map +1 -1
- package/package.json +14 -14
- package/lib/networks/goerli.d.ts +0 -6
- package/lib/networks/goerli.js +0 -14
- package/lib/networks/goerli.js.map +0 -1
- package/lib/networks/ropsten.d.ts +0 -6
- package/lib/networks/ropsten.js +0 -6
- package/lib/networks/ropsten.js.map +0 -1
|
@@ -3,6 +3,7 @@ import { Keystore } from "@chainsafe/bls-keystore";
|
|
|
3
3
|
import { fromHexString } from "@chainsafe/ssz";
|
|
4
4
|
import { DeleteRemoteKeyStatus, DeletionStatus, ImportStatus, ImportRemoteKeyStatus, } from "@lodestar/api/keymanager";
|
|
5
5
|
import { SignerType } from "@lodestar/validator";
|
|
6
|
+
import { ApiError } from "@lodestar/api/server";
|
|
6
7
|
import { isValidHttpUrl } from "@lodestar/utils";
|
|
7
8
|
import { getPubkeyHexFromKeystore, isValidatePubkeyHex } from "../../../util/format.js";
|
|
8
9
|
import { parseFeeRecipient } from "../../../util/index.js";
|
|
@@ -19,51 +20,52 @@ export class KeymanagerApi {
|
|
|
19
20
|
throw Error("proposerSettingsFile option activated");
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
|
-
async listFeeRecipient(
|
|
23
|
-
return { data: { pubkey
|
|
23
|
+
async listFeeRecipient({ pubkey }) {
|
|
24
|
+
return { data: { pubkey, ethaddress: this.validator.validatorStore.getFeeRecipient(pubkey) } };
|
|
24
25
|
}
|
|
25
|
-
async setFeeRecipient(
|
|
26
|
+
async setFeeRecipient({ pubkey, ethaddress }) {
|
|
26
27
|
this.checkIfProposerWriteEnabled();
|
|
27
|
-
this.validator.validatorStore.setFeeRecipient(
|
|
28
|
-
this.persistedKeysBackend.writeProposerConfig(
|
|
28
|
+
this.validator.validatorStore.setFeeRecipient(pubkey, parseFeeRecipient(ethaddress));
|
|
29
|
+
this.persistedKeysBackend.writeProposerConfig(pubkey, this.validator.validatorStore.getProposerConfig(pubkey));
|
|
30
|
+
return { status: 202 };
|
|
29
31
|
}
|
|
30
|
-
async deleteFeeRecipient(
|
|
32
|
+
async deleteFeeRecipient({ pubkey }) {
|
|
31
33
|
this.checkIfProposerWriteEnabled();
|
|
32
|
-
this.validator.validatorStore.deleteFeeRecipient(
|
|
33
|
-
this.persistedKeysBackend.writeProposerConfig(
|
|
34
|
+
this.validator.validatorStore.deleteFeeRecipient(pubkey);
|
|
35
|
+
this.persistedKeysBackend.writeProposerConfig(pubkey, this.validator.validatorStore.getProposerConfig(pubkey));
|
|
36
|
+
return { status: 204 };
|
|
34
37
|
}
|
|
35
|
-
async
|
|
36
|
-
return { data: { pubkey
|
|
38
|
+
async getGraffiti({ pubkey }) {
|
|
39
|
+
return { data: { pubkey, graffiti: this.validator.validatorStore.getGraffiti(pubkey) } };
|
|
37
40
|
}
|
|
38
|
-
async setGraffiti(
|
|
41
|
+
async setGraffiti({ pubkey, graffiti }) {
|
|
39
42
|
this.checkIfProposerWriteEnabled();
|
|
40
|
-
this.validator.validatorStore.setGraffiti(
|
|
41
|
-
this.persistedKeysBackend.writeProposerConfig(
|
|
43
|
+
this.validator.validatorStore.setGraffiti(pubkey, graffiti);
|
|
44
|
+
this.persistedKeysBackend.writeProposerConfig(pubkey, this.validator.validatorStore.getProposerConfig(pubkey));
|
|
45
|
+
return { status: 202 };
|
|
42
46
|
}
|
|
43
|
-
async deleteGraffiti(
|
|
47
|
+
async deleteGraffiti({ pubkey }) {
|
|
44
48
|
this.checkIfProposerWriteEnabled();
|
|
45
|
-
this.validator.validatorStore.deleteGraffiti(
|
|
46
|
-
this.persistedKeysBackend.writeProposerConfig(
|
|
49
|
+
this.validator.validatorStore.deleteGraffiti(pubkey);
|
|
50
|
+
this.persistedKeysBackend.writeProposerConfig(pubkey, this.validator.validatorStore.getProposerConfig(pubkey));
|
|
51
|
+
return { status: 204 };
|
|
47
52
|
}
|
|
48
|
-
async getGasLimit(
|
|
49
|
-
const gasLimit = this.validator.validatorStore.getGasLimit(
|
|
50
|
-
return { data: { pubkey
|
|
53
|
+
async getGasLimit({ pubkey }) {
|
|
54
|
+
const gasLimit = this.validator.validatorStore.getGasLimit(pubkey);
|
|
55
|
+
return { data: { pubkey, gasLimit } };
|
|
51
56
|
}
|
|
52
|
-
async setGasLimit(
|
|
57
|
+
async setGasLimit({ pubkey, gasLimit }) {
|
|
53
58
|
this.checkIfProposerWriteEnabled();
|
|
54
|
-
this.validator.validatorStore.setGasLimit(
|
|
55
|
-
this.persistedKeysBackend.writeProposerConfig(
|
|
59
|
+
this.validator.validatorStore.setGasLimit(pubkey, gasLimit);
|
|
60
|
+
this.persistedKeysBackend.writeProposerConfig(pubkey, this.validator.validatorStore.getProposerConfig(pubkey));
|
|
61
|
+
return { status: 202 };
|
|
56
62
|
}
|
|
57
|
-
async deleteGasLimit(
|
|
63
|
+
async deleteGasLimit({ pubkey }) {
|
|
58
64
|
this.checkIfProposerWriteEnabled();
|
|
59
|
-
this.validator.validatorStore.deleteGasLimit(
|
|
60
|
-
this.persistedKeysBackend.writeProposerConfig(
|
|
65
|
+
this.validator.validatorStore.deleteGasLimit(pubkey);
|
|
66
|
+
this.persistedKeysBackend.writeProposerConfig(pubkey, this.validator.validatorStore.getProposerConfig(pubkey));
|
|
67
|
+
return { status: 204 };
|
|
61
68
|
}
|
|
62
|
-
/**
|
|
63
|
-
* List all validating pubkeys known to and decrypted by this keymanager binary
|
|
64
|
-
*
|
|
65
|
-
* https://github.com/ethereum/keymanager-APIs/blob/0c975dae2ac6053c8245ebdb6a9f27c2f114f407/keymanager-oapi.yaml
|
|
66
|
-
*/
|
|
67
69
|
async listKeys() {
|
|
68
70
|
const pubkeys = this.validator.validatorStore.votingPubkeys();
|
|
69
71
|
return {
|
|
@@ -74,37 +76,24 @@ export class KeymanagerApi {
|
|
|
74
76
|
})),
|
|
75
77
|
};
|
|
76
78
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
*
|
|
80
|
-
* Users SHOULD send slashing_protection data associated with the imported pubkeys. MUST follow the format defined in
|
|
81
|
-
* EIP-3076: Slashing Protection Interchange Format.
|
|
82
|
-
*
|
|
83
|
-
* @param keystoresStr JSON-encoded keystore files generated with the Launchpad
|
|
84
|
-
* @param passwords Passwords to unlock imported keystore files. `passwords[i]` must unlock `keystores[i]`
|
|
85
|
-
* @param slashingProtectionStr Slashing protection data for some of the keys of `keystores`
|
|
86
|
-
* @returns Status result of each `request.keystores` with same length and order of `request.keystores`
|
|
87
|
-
*
|
|
88
|
-
* https://github.com/ethereum/keymanager-APIs/blob/0c975dae2ac6053c8245ebdb6a9f27c2f114f407/keymanager-oapi.yaml
|
|
89
|
-
*/
|
|
90
|
-
async importKeystores(keystoresStr, passwords, slashingProtectionStr) {
|
|
91
|
-
if (slashingProtectionStr) {
|
|
79
|
+
async importKeystores({ keystores, passwords, slashingProtection, }) {
|
|
80
|
+
if (slashingProtection) {
|
|
92
81
|
// The arguments to this function is passed in within the body of an HTTP request
|
|
93
82
|
// hence fastify will parse it into an object before this function is called.
|
|
94
|
-
// Even though the
|
|
95
|
-
// at runtime, when the handler for the request is selected, it would see
|
|
83
|
+
// Even though the slashingProtection is typed as SlashingProtectionData,
|
|
84
|
+
// at runtime, when the handler for the request is selected, it would see slashingProtection
|
|
96
85
|
// as an object, hence trying to parse it using JSON.parse won't work. Instead, we cast straight to Interchange
|
|
97
|
-
const interchange = ensureJSON(
|
|
86
|
+
const interchange = ensureJSON(slashingProtection);
|
|
98
87
|
await this.validator.importInterchange(interchange);
|
|
99
88
|
}
|
|
100
89
|
const statuses = [];
|
|
101
|
-
const decryptKeystores = new DecryptKeystoresThreadPool(
|
|
102
|
-
for (let i = 0; i <
|
|
90
|
+
const decryptKeystores = new DecryptKeystoresThreadPool(keystores.length, this.signal);
|
|
91
|
+
for (let i = 0; i < keystores.length; i++) {
|
|
103
92
|
try {
|
|
104
|
-
const keystoreStr =
|
|
93
|
+
const keystoreStr = keystores[i];
|
|
105
94
|
const password = passwords[i];
|
|
106
95
|
if (password === undefined) {
|
|
107
|
-
throw
|
|
96
|
+
throw new ApiError(400, `No password for keystores[${i}]`);
|
|
108
97
|
}
|
|
109
98
|
const keystore = Keystore.parse(keystoreStr);
|
|
110
99
|
const pubkeyHex = getPubkeyHexFromKeystore(keystore);
|
|
@@ -140,35 +129,14 @@ export class KeymanagerApi {
|
|
|
140
129
|
await decryptKeystores.completed();
|
|
141
130
|
return { data: statuses };
|
|
142
131
|
}
|
|
143
|
-
|
|
144
|
-
* DELETE must delete all keys from `request.pubkeys` that are known to the keymanager and exist in its
|
|
145
|
-
* persistent storage. Additionally, DELETE must fetch the slashing protection data for the requested keys from
|
|
146
|
-
* persistent storage, which must be retained (and not deleted) after the response has been sent. Therefore in the
|
|
147
|
-
* case of two identical delete requests being made, both will have access to slashing protection data.
|
|
148
|
-
*
|
|
149
|
-
* In a single atomic sequential operation the keymanager must:
|
|
150
|
-
* 1. Guarantee that key(s) can not produce any more signature; only then
|
|
151
|
-
* 2. Delete key(s) and serialize its associated slashing protection data
|
|
152
|
-
*
|
|
153
|
-
* DELETE should never return a 404 response, even if all pubkeys from request.pubkeys have no extant keystores
|
|
154
|
-
* nor slashing protection data.
|
|
155
|
-
*
|
|
156
|
-
* Slashing protection data must only be returned for keys from `request.pubkeys` for which a
|
|
157
|
-
* `deleted` or `not_active` status is returned.
|
|
158
|
-
*
|
|
159
|
-
* @param pubkeysHex List of public keys to delete.
|
|
160
|
-
* @returns Deletion status of all keys in `request.pubkeys` in the same order.
|
|
161
|
-
*
|
|
162
|
-
* https://github.com/ethereum/keymanager-APIs/blob/0c975dae2ac6053c8245ebdb6a9f27c2f114f407/keymanager-oapi.yaml
|
|
163
|
-
*/
|
|
164
|
-
async deleteKeys(pubkeysHex) {
|
|
132
|
+
async deleteKeys({ pubkeys }) {
|
|
165
133
|
const deletedKey = [];
|
|
166
|
-
const statuses = new Array(
|
|
167
|
-
for (let i = 0; i <
|
|
134
|
+
const statuses = new Array(pubkeys.length);
|
|
135
|
+
for (let i = 0; i < pubkeys.length; i++) {
|
|
168
136
|
try {
|
|
169
|
-
const pubkeyHex =
|
|
137
|
+
const pubkeyHex = pubkeys[i];
|
|
170
138
|
if (!isValidatePubkeyHex(pubkeyHex)) {
|
|
171
|
-
throw
|
|
139
|
+
throw new ApiError(400, `Invalid pubkey ${pubkeyHex}`);
|
|
172
140
|
}
|
|
173
141
|
// Skip unknown keys or remote signers
|
|
174
142
|
const signer = this.validator.validatorStore.getSigner(pubkeyHex);
|
|
@@ -185,7 +153,7 @@ export class KeymanagerApi {
|
|
|
185
153
|
// This unlocks the keystore, so perform after deleting from in-memory store
|
|
186
154
|
const diskDeleteStatus = this.persistedKeysBackend.deleteKeystore(pubkeyHex);
|
|
187
155
|
if (diskDeleteStatus) {
|
|
188
|
-
// TODO: What if the diskDeleteStatus status is
|
|
156
|
+
// TODO: What if the diskDeleteStatus status is inconsistent?
|
|
189
157
|
deletedKey[i] = true;
|
|
190
158
|
}
|
|
191
159
|
}
|
|
@@ -193,31 +161,30 @@ export class KeymanagerApi {
|
|
|
193
161
|
statuses[i] = { status: DeletionStatus.error, message: e.message };
|
|
194
162
|
}
|
|
195
163
|
}
|
|
196
|
-
const pubkeysBytes =
|
|
164
|
+
const pubkeysBytes = pubkeys.map((pubkeyHex) => fromHexString(pubkeyHex));
|
|
197
165
|
const interchangeV5 = await this.validator.exportInterchange(pubkeysBytes, {
|
|
198
166
|
version: "5",
|
|
199
167
|
});
|
|
200
168
|
// After exporting slashing protection data in bulk, render the status
|
|
201
169
|
const pubkeysWithSlashingProtectionData = new Set(interchangeV5.data.map((data) => data.pubkey));
|
|
202
|
-
for (let i = 0; i <
|
|
170
|
+
for (let i = 0; i < pubkeys.length; i++) {
|
|
203
171
|
if (statuses[i]?.status === DeletionStatus.error) {
|
|
204
172
|
continue;
|
|
205
173
|
}
|
|
206
174
|
const status = deletedKey[i]
|
|
207
175
|
? DeletionStatus.deleted
|
|
208
|
-
: pubkeysWithSlashingProtectionData.has(
|
|
176
|
+
: pubkeysWithSlashingProtectionData.has(pubkeys[i])
|
|
209
177
|
? DeletionStatus.not_active
|
|
210
178
|
: DeletionStatus.not_found;
|
|
211
179
|
statuses[i] = { status };
|
|
212
180
|
}
|
|
213
181
|
return {
|
|
214
|
-
data:
|
|
215
|
-
|
|
182
|
+
data: {
|
|
183
|
+
statuses,
|
|
184
|
+
slashingProtection: JSON.stringify(interchangeV5),
|
|
185
|
+
},
|
|
216
186
|
};
|
|
217
187
|
}
|
|
218
|
-
/**
|
|
219
|
-
* List all remote validating pubkeys known to this validator client binary
|
|
220
|
-
*/
|
|
221
188
|
async listRemoteKeys() {
|
|
222
189
|
const remoteKeys = [];
|
|
223
190
|
for (const pubkeyHex of this.validator.validatorStore.votingPubkeys()) {
|
|
@@ -230,17 +197,14 @@ export class KeymanagerApi {
|
|
|
230
197
|
data: remoteKeys,
|
|
231
198
|
};
|
|
232
199
|
}
|
|
233
|
-
|
|
234
|
-
* Import remote keys for the validator client to request duties for
|
|
235
|
-
*/
|
|
236
|
-
async importRemoteKeys(remoteSigners) {
|
|
200
|
+
async importRemoteKeys({ remoteSigners, }) {
|
|
237
201
|
const importPromises = remoteSigners.map(async ({ pubkey, url }) => {
|
|
238
202
|
try {
|
|
239
203
|
if (!isValidatePubkeyHex(pubkey)) {
|
|
240
|
-
throw
|
|
204
|
+
throw new ApiError(400, `Invalid pubkey ${pubkey}`);
|
|
241
205
|
}
|
|
242
206
|
if (!isValidHttpUrl(url)) {
|
|
243
|
-
throw
|
|
207
|
+
throw new ApiError(400, `Invalid URL ${url}`);
|
|
244
208
|
}
|
|
245
209
|
// Check if key exists
|
|
246
210
|
if (this.validator.validatorStore.hasVotingPubkey(pubkey)) {
|
|
@@ -265,16 +229,11 @@ export class KeymanagerApi {
|
|
|
265
229
|
data: await Promise.all(importPromises),
|
|
266
230
|
};
|
|
267
231
|
}
|
|
268
|
-
|
|
269
|
-
* DELETE must delete all keys from `request.pubkeys` that are known to the validator client and exist in its
|
|
270
|
-
* persistent storage.
|
|
271
|
-
* DELETE should never return a 404 response, even if all pubkeys from request.pubkeys have no existing keystores.
|
|
272
|
-
*/
|
|
273
|
-
async deleteRemoteKeys(pubkeys) {
|
|
232
|
+
async deleteRemoteKeys({ pubkeys }) {
|
|
274
233
|
const results = pubkeys.map((pubkeyHex) => {
|
|
275
234
|
try {
|
|
276
235
|
if (!isValidatePubkeyHex(pubkeyHex)) {
|
|
277
|
-
throw
|
|
236
|
+
throw new ApiError(400, `Invalid pubkey ${pubkeyHex}`);
|
|
278
237
|
}
|
|
279
238
|
const signer = this.validator.validatorStore.getSigner(pubkeyHex);
|
|
280
239
|
// Remove key from live local signer
|
|
@@ -296,26 +255,25 @@ export class KeymanagerApi {
|
|
|
296
255
|
data: results,
|
|
297
256
|
};
|
|
298
257
|
}
|
|
299
|
-
async getBuilderBoostFactor(
|
|
300
|
-
const builderBoostFactor = this.validator.validatorStore.getBuilderBoostFactor(
|
|
301
|
-
return { data: { pubkey
|
|
258
|
+
async getBuilderBoostFactor({ pubkey }) {
|
|
259
|
+
const builderBoostFactor = this.validator.validatorStore.getBuilderBoostFactor(pubkey);
|
|
260
|
+
return { data: { pubkey, builderBoostFactor } };
|
|
302
261
|
}
|
|
303
|
-
async setBuilderBoostFactor(
|
|
262
|
+
async setBuilderBoostFactor({ pubkey, builderBoostFactor, }) {
|
|
304
263
|
this.checkIfProposerWriteEnabled();
|
|
305
|
-
this.validator.validatorStore.setBuilderBoostFactor(
|
|
306
|
-
this.persistedKeysBackend.writeProposerConfig(
|
|
264
|
+
this.validator.validatorStore.setBuilderBoostFactor(pubkey, builderBoostFactor);
|
|
265
|
+
this.persistedKeysBackend.writeProposerConfig(pubkey, this.validator.validatorStore.getProposerConfig(pubkey));
|
|
266
|
+
return { status: 202 };
|
|
307
267
|
}
|
|
308
|
-
async deleteBuilderBoostFactor(
|
|
268
|
+
async deleteBuilderBoostFactor({ pubkey }) {
|
|
309
269
|
this.checkIfProposerWriteEnabled();
|
|
310
|
-
this.validator.validatorStore.deleteBuilderBoostFactor(
|
|
311
|
-
this.persistedKeysBackend.writeProposerConfig(
|
|
270
|
+
this.validator.validatorStore.deleteBuilderBoostFactor(pubkey);
|
|
271
|
+
this.persistedKeysBackend.writeProposerConfig(pubkey, this.validator.validatorStore.getProposerConfig(pubkey));
|
|
272
|
+
return { status: 204 };
|
|
312
273
|
}
|
|
313
|
-
|
|
314
|
-
* Create and sign a voluntary exit message for an active validator
|
|
315
|
-
*/
|
|
316
|
-
async signVoluntaryExit(pubkey, epoch) {
|
|
274
|
+
async signVoluntaryExit({ pubkey, epoch }) {
|
|
317
275
|
if (!isValidatePubkeyHex(pubkey)) {
|
|
318
|
-
throw
|
|
276
|
+
throw new ApiError(400, `Invalid pubkey ${pubkey}`);
|
|
319
277
|
}
|
|
320
278
|
return { data: await this.validator.signVoluntaryExit(pubkey, epoch) };
|
|
321
279
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl.js","sourceRoot":"","sources":["../../../../src/cmds/validator/keymanager/impl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"impl.js","sourceRoot":"","sources":["../../../../src/cmds/validator/keymanager/impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { RestApiServer, RestApiServerOpts, RestApiServerModules } from "@lodestar/beacon-node";
|
|
2
|
-
import {
|
|
2
|
+
import { KeymanagerApiMethods } from "@lodestar/api/keymanager/server";
|
|
3
3
|
import { ChainForkConfig } from "@lodestar/config";
|
|
4
|
-
import { ServerApi } from "@lodestar/api";
|
|
5
4
|
export type KeymanagerRestApiServerOpts = RestApiServerOpts & {
|
|
6
5
|
isAuthEnabled: boolean;
|
|
7
6
|
tokenDir?: string;
|
|
@@ -10,7 +9,7 @@ export type KeymanagerRestApiServerOpts = RestApiServerOpts & {
|
|
|
10
9
|
export declare const keymanagerRestApiServerOptsDefault: KeymanagerRestApiServerOpts;
|
|
11
10
|
export type KeymanagerRestApiServerModules = RestApiServerModules & {
|
|
12
11
|
config: ChainForkConfig;
|
|
13
|
-
api:
|
|
12
|
+
api: KeymanagerApiMethods;
|
|
14
13
|
};
|
|
15
14
|
export declare const apiTokenFileName = "api-token.txt";
|
|
16
15
|
export declare class KeymanagerRestApiServer extends RestApiServer {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/cmds/validator/keymanager/server.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAA0C,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/cmds/validator/keymanager/server.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAA0C,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAuB,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAErF,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AASxD,MAAM,CAAC,MAAM,kCAAkC,GAAgC;IAC7E,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,GAAG;IACT,aAAa,EAAE,IAAI;IACnB,uGAAuG;IACvG,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;CACrC,CAAC;AAOF,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAEhD,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IAIxD,YAAY,OAA6C,EAAE,OAAuC;QAChG,sBAAsB;QACtB,MAAM,IAAI,GAAG;YACX,GAAG,kCAAkC;YACrC,kGAAkG;YAClG,gFAAgF;YAChF,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;SAC7E,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS;YACjC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACtD,IAAI,WAA+B,CAAC;QAEpC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,mFAAmF;YACnF,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,IAAI,aAAa,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACnG,gBAAgB,CAAC,YAAY,EAAE,WAAW,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;QAClE,CAAC;QAED,KAAK,CAAC,EAAC,GAAG,IAAI,EAAE,WAAW,EAAC,EAAE,OAAO,CAAC,CAAC;QAEvC,iDAAiD;QACjD,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAEzD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iEAAiE,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC3G,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAK,CAAoB,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;;YACpD,MAAM,CAAC,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -12,6 +12,8 @@ export const list = {
|
|
|
12
12
|
],
|
|
13
13
|
handler: async (args) => {
|
|
14
14
|
const { network } = getBeaconConfigFromArgs(args);
|
|
15
|
+
// Ignore lockfiles to allow listing while validator client is running
|
|
16
|
+
args.force = true;
|
|
15
17
|
const signers = await getSignersFromArgs(args, network, { logger: console, signal: new AbortController().signal });
|
|
16
18
|
logSigners(console, signers);
|
|
17
19
|
// Return values for testing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cmds/validator/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAGrE,OAAO,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAInD,MAAM,CAAC,MAAM,IAAI,GAA0D;IACzE,OAAO,EAAE,MAAM;IAEf,QAAQ,EAAE,yCAAyC;IAEnD,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,gBAAgB;YACzB,WAAW,EAAE,oDAAoD;SAClE;KACF;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,EAAC,OAAO,EAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAC,CAAC,CAAC;QAEjH,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE7B,4BAA4B;QAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACzC,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cmds/validator/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAGrE,OAAO,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAInD,MAAM,CAAC,MAAM,IAAI,GAA0D;IACzE,OAAO,EAAE,MAAM;IAEf,QAAQ,EAAE,yCAAyC;IAEnD,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,gBAAgB;YACzB,WAAW,EAAE,oDAAoD;SAClE;KACF;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,EAAC,OAAO,EAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAEhD,sEAAsE;QACtE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAC,CAAC,CAAC;QAEjH,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE7B,4BAA4B;QAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACzC,CAAC;CACF,CAAC"}
|
|
@@ -39,6 +39,8 @@ export type IValidatorCliArgs = AccountValidatorArgs & KeymanagerArgs & LogArgs
|
|
|
39
39
|
blindedLocal?: boolean;
|
|
40
40
|
importKeystores?: string[];
|
|
41
41
|
importKeystoresPassword?: string;
|
|
42
|
+
"http.requestWireFormat"?: string;
|
|
43
|
+
"http.responseWireFormat"?: string;
|
|
42
44
|
"externalSigner.url"?: string;
|
|
43
45
|
"externalSigner.pubkeys"?: string[];
|
|
44
46
|
"externalSigner.fetch"?: boolean;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { WireFormat, defaultInit } from "@lodestar/api";
|
|
1
2
|
import { defaultOptions } from "@lodestar/validator";
|
|
2
3
|
import { logOptions } from "../../options/logOptions.js";
|
|
3
4
|
import { ensure0xPrefix } from "../../util/index.js";
|
|
@@ -199,6 +200,18 @@ export const validatorOptions = {
|
|
|
199
200
|
default: false,
|
|
200
201
|
type: "boolean",
|
|
201
202
|
},
|
|
203
|
+
"http.requestWireFormat": {
|
|
204
|
+
type: "string",
|
|
205
|
+
description: `Wire format to use in HTTP requests to beacon node. Can be one of \`${WireFormat.json}\` or \`${WireFormat.ssz}\``,
|
|
206
|
+
defaultDescription: `${defaultInit.requestWireFormat}`,
|
|
207
|
+
group: "http",
|
|
208
|
+
},
|
|
209
|
+
"http.responseWireFormat": {
|
|
210
|
+
type: "string",
|
|
211
|
+
description: `Preferred wire format for HTTP responses from beacon node. Can be one of \`${WireFormat.json}\` or \`${WireFormat.ssz}\``,
|
|
212
|
+
defaultDescription: `${defaultInit.responseWireFormat}`,
|
|
213
|
+
group: "http",
|
|
214
|
+
},
|
|
202
215
|
// External signer
|
|
203
216
|
"externalSigner.url": {
|
|
204
217
|
description: "URL to connect to an external signing server",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/cmds/validator/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAU,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,kCAAkC,EAAC,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAC,mBAAmB,EAAE,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAStE,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,WAAW;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,MAAM;IAChB,YAAY,EAAE,MAAM;IACpB,cAAc,EAAE,MAAM;IACtB,kBAAkB,EAAE,KAAK;CAC1B,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/cmds/validator/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAU,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,kCAAkC,EAAC,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAC,mBAAmB,EAAE,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAStE,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,WAAW;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,MAAM;IAChB,YAAY,EAAE,MAAM;IACpB,cAAc,EAAE,MAAM;IACtB,kBAAkB,EAAE,KAAK;CAC1B,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAiE1C,MAAM,CAAC,MAAM,iBAAiB,GAAsC;IAClE,UAAU,EAAE;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,YAAY;KACpB;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,CAAC,wBAAwB,CAAC;QACjC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+DAA+D;QAC5E,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,YAAY;KACpB;IACD,sBAAsB,EAAE;QACtB,KAAK,EAAE,CAAC,WAAW,CAAC;QACpB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8EAA8E;QAC3F,KAAK,EAAE,YAAY;KACpB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8BAA8B;QAC3C,kBAAkB,EAAE,MAAM,CAAC,kCAAkC,CAAC,IAAI,CAAC;QACnE,KAAK,EAAE,YAAY;KACpB;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8BAA8B;QAC3C,kBAAkB,EAAE,kCAAkC,CAAC,OAAO;QAC9D,KAAK,EAAE,YAAY;KACpB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,4EAA4E;QACzF,kBAAkB,EAAE,kCAAkC,CAAC,IAAI;QAC3D,KAAK,EAAE,YAAY;KACpB;IACD,wBAAwB,EAAE;QACxB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,0FAA0F;KACxG;IACD,sBAAsB,EAAE;QACtB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wEAAwE;KACtF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAyC;IACpE,GAAG,UAAU;IACb,GAAG,iBAAiB;IAEpB,YAAY,EAAE;QACZ,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,4CAA4C;QACzD,kBAAkB,EAAE,mBAAmB,CAAC,YAAY;QACpD,IAAI,EAAE,QAAQ;KACf;IAED,UAAU,EAAE;QACV,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,mDAAmD;QAChE,kBAAkB,EAAE,mBAAmB,CAAC,UAAU;QAClD,IAAI,EAAE,QAAQ;KACf;IAED,aAAa,EAAE;QACb,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,yDAAyD;QACtE,kBAAkB,EAAE,mBAAmB,CAAC,YAAY;QACpD,IAAI,EAAE,QAAQ;KACf;IAED,WAAW,EAAE;QACX,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,oEAAoE;QACjF,kBAAkB,EAAE,mBAAmB,CAAC,WAAW;QACnD,IAAI,EAAE,QAAQ;KACf;IAED,eAAe,EAAE;QACf,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,yCAAyC;QACtD,kBAAkB,EAAE,qBAAqB,CAAC,eAAe;QACzD,IAAI,EAAE,QAAQ;KACf;IAED,WAAW,EAAE;QACX,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,CAAC,uBAAuB,CAAC;QAClC,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,CAAC,IAAc,EAAY,EAAE;QACnC,0CAA0C;QAC1C,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,8BAA8B;KAClD;IAED,KAAK,EAAE;QACL,WAAW,EAAE,8DAA8D;QAC3E,IAAI,EAAE,SAAS;KAChB;IAED,QAAQ,EAAE;QACR,WAAW,EAAE,4FAA4F;QACzG,iGAAiG;QACjG,IAAI,EAAE,QAAQ;KACf;IAED,2BAA2B,EAAE;QAC3B,MAAM,EAAE,IAAI;QACZ,WAAW,EACT,yIAAyI;QAC3I,IAAI,EAAE,QAAQ;KACf;IAED,6BAA6B,EAAE;QAC7B,MAAM,EAAE,IAAI;QACZ,WAAW,EACT,mJAAmJ;QACrJ,IAAI,EAAE,QAAQ;KACf;IAED,0BAA0B,EAAE;QAC1B,MAAM,EAAE,IAAI;QACZ,WAAW,EACT,+IAA+I;QACjJ,IAAI,EAAE,SAAS;KAChB;IAED,oBAAoB,EAAE;QACpB,WAAW,EACT,qKAAqK;QACvK,IAAI,EAAE,QAAQ;KACf;IAED,qBAAqB,EAAE;QACrB,WAAW,EACT,oQAAoQ;QACtQ,kBAAkB,EAAE,cAAc,CAAC,qBAAqB;QACxD,IAAI,EAAE,QAAQ;KACf;IAED,uBAAuB,EAAE;QACvB,WAAW,EAAE,0FAA0F;QACvG,IAAI,EAAE,SAAS;KAChB;IAED,eAAe,EAAE;QACf,WAAW,EAAE,kGAAkG;QAC/G,kBAAkB,EAAE,GAAG,cAAc,CAAC,eAAe,EAAE;QACvD,IAAI,EAAE,QAAQ;KACf;IAED,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,sCAAsC,cAAc,CAAC,qBAAqB,oFAAoF;QAC3K,KAAK,EAAE,SAAS;KACjB;IAED,mBAAmB,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,gIAAgI;QAClI,kBAAkB,EAAE,GAAG,cAAc,CAAC,gBAAgB,EAAE;QACxD,KAAK,EAAE,SAAS;KACjB;IAED,qBAAqB,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,2PAA2P;QAC7P,kBAAkB,EAAE,GAAG,cAAc,CAAC,kBAAkB,EAAE;QAC1D,KAAK,EAAE,SAAS;KACjB;IAED,iBAAiB,EAAE;QACjB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+FAA+F;KAC7G;IAED,mBAAmB,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,+EAA+E;QAC5F,kBAAkB,EAAE,GAAG,cAAc,CAAC,mBAAmB,EAAE;KAC5D;IAED,YAAY,EAAE;QACZ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,mEAAmE;QAChF,kBAAkB,EAAE,GAAG,cAAc,CAAC,YAAY,EAAE;KACrD;IAED,eAAe,EAAE;QACf,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,2DAA2D;QAChF,WAAW,EAAE,8FAA8F;QAC3G,kBAAkB,EAAE,oBAAoB;QACxC,IAAI,EAAE,OAAO;KACd;IAED,uBAAuB,EAAE;QACvB,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,0DAA0D;QACrF,WAAW,EAAE,qFAAqF;QAClG,kBAAkB,EAAE,gBAAgB;QACpC,IAAI,EAAE,QAAQ;KACf;IAED,sBAAsB,EAAE;QACtB,KAAK,EAAE,CAAC,+BAA+B,CAAC;QACxC,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,SAAS;KAChB;IAED,wBAAwB,EAAE;QACxB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uEAAuE,UAAU,CAAC,IAAI,WAAW,UAAU,CAAC,GAAG,IAAI;QAChI,kBAAkB,EAAE,GAAG,WAAW,CAAC,iBAAiB,EAAE;QACtD,KAAK,EAAE,MAAM;KACd;IAED,yBAAyB,EAAE;QACzB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8EAA8E,UAAU,CAAC,IAAI,WAAW,UAAU,CAAC,GAAG,IAAI;QACvI,kBAAkB,EAAE,GAAG,WAAW,CAAC,kBAAkB,EAAE;QACvD,KAAK,EAAE,MAAM;KACd;IAED,kBAAkB;IAElB,oBAAoB,EAAE;QACpB,WAAW,EAAE,8CAA8C;QAC3D,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,gBAAgB;KACxB;IAED,wBAAwB,EAAE;QACxB,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,WAAW,EACT,2HAA2H;QAC7H,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI,EAAE,sEAAsE;QACpF,MAAM,EAAE,CAAC,OAAiB,EAAY,EAAE;QACtC,0CAA0C;QAC1C,OAAO;aACJ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC9B,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,cAAc,CAAC;QACxB,KAAK,EAAE,gBAAgB;KACxB;IAED,sBAAsB,EAAE;QACtB,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,SAAS,EAAE,CAAC,wBAAwB,CAAC;QACrC,WAAW,EACT,kIAAkI;QACpI,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,gBAAgB;KACxB;IAED,8BAA8B,EAAE;QAC9B,OAAO,EAAE,CAAC,sBAAsB,CAAC;QACjC,WAAW,EACT,mHAAmH;QACrH,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,gBAAgB;KACxB;IAED,wBAAwB;IAExB,WAAW,EAAE;QACX,WAAW,EAAE,sFAAsF;QACnG,IAAI,EAAE,SAAS;KAChB;IAED,UAAU;IAEV,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,2CAA2C;QACxD,kBAAkB,EAAE,MAAM,CAAC,8BAA8B,CAAC,OAAO,CAAC;QAClE,KAAK,EAAE,SAAS;KACjB;IAED,cAAc,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wDAAwD;QACrE,kBAAkB,EAAE,MAAM,CAAC,8BAA8B,CAAC,IAAI,CAAC;QAC/D,KAAK,EAAE,SAAS;KACjB;IAED,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uDAAuD;QACpE,kBAAkB,EAAE,MAAM,CAAC,8BAA8B,CAAC,OAAO,CAAC;QAClE,KAAK,EAAE,SAAS;KACjB;IAED,aAAa;IAEb,qBAAqB,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,wHAAwH;QAC1H,KAAK,EAAE,YAAY;KACpB;IAED,qBAAqB,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,6EAA6E;QAC1F,kBAAkB,EAAE,MAAM,CAAC,iCAAiC,CAAC,QAAQ,CAAC;QACtE,KAAK,EAAE,YAAY;KACpB;IAED,yBAAyB,EAAE;QACzB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kFAAkF;QAC/F,kBAAkB,EAAE,MAAM,CAAC,iCAAiC,CAAC,YAAY,CAAC;QAC1E,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,IAAI;KACb;IAED,2BAA2B,EAAE;QAC3B,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wEAAwE;QACrF,kBAAkB,EAAE,MAAM,CAAC,iCAAiC,CAAC,cAAc,CAAC;QAC5E,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,IAAI;KACb;IAED,+BAA+B,EAAE;QAC/B,IAAI,EAAE,SAAS;QACf,WAAW,EACT,iIAAiI;QACnI,kBAAkB,EAAE,MAAM,CAAC,iCAAiC,CAAC,kBAAkB,CAAC;QAChF,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,IAAI;KACb;IAED,mBAAmB;IAEnB,cAAc,EAAE;QACd,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,kEAAkE;QAC/E,IAAI,EAAE,QAAQ;KACf;IAED,YAAY,EAAE;QACZ,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,mEAAmE;QAChF,IAAI,EAAE,QAAQ;KACf;IAED,eAAe,EAAE;QACf,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,2EAA2E;QACxF,IAAI,EAAE,QAAQ;KACf;CACF,CAAC"}
|
|
@@ -11,7 +11,7 @@ export const exportCmd = {
|
|
|
11
11
|
describe: "Export an interchange file.",
|
|
12
12
|
examples: [
|
|
13
13
|
{
|
|
14
|
-
command: "validator slashing-protection export --network
|
|
14
|
+
command: "validator slashing-protection export --network holesky --file interchange.json",
|
|
15
15
|
description: "Export an interchange JSON file for all validators in the slashing protection DB",
|
|
16
16
|
},
|
|
17
17
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../../src/cmds/validator/slashingProtection/export.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACzG,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAC,uBAAuB,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAQ3E,MAAM,CAAC,MAAM,SAAS,GACpB;IACE,OAAO,EAAE,QAAQ;IAEjB,QAAQ,EAAE,6BAA6B;IAEvC,QAAQ,EAAE;QACR;YACE,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../../src/cmds/validator/slashingProtection/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export const importCmd = {
|
|
|
10
10
|
describe: "Import an interchange file.",
|
|
11
11
|
examples: [
|
|
12
12
|
{
|
|
13
|
-
command: "validator slashing-protection import --network
|
|
13
|
+
command: "validator slashing-protection import --network holesky --file interchange.json",
|
|
14
14
|
description: "Import an interchange file to the slashing protection DB",
|
|
15
15
|
},
|
|
16
16
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../src/cmds/validator/slashingProtection/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAC,uBAAuB,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAO3E,MAAM,CAAC,MAAM,SAAS,GACpB;IACE,OAAO,EAAE,QAAQ;IAEjB,QAAQ,EAAE,6BAA6B;IAEvC,QAAQ,EAAE;QACR;YACE,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../src/cmds/validator/slashingProtection/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAC,uBAAuB,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAO3E,MAAM,CAAC,MAAM,SAAS,GACpB;IACE,OAAO,EAAE,QAAQ;IAEjB,QAAQ,EAAE,6BAA6B;IAEvC,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,gFAAgF;YACzF,WAAW,EAAE,0DAA0D;SACxE;KACF;IAED,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,WAAW,EAAE,6DAA6D;YAC1E,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,QAAQ;SACf;KACF;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,EAAC,IAAI,EAAC,GAAG,IAAI,CAAC;QAEpB,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,yEAAyE;QACzE,MAAM,MAAM,GAAG,aAAa,CAC1B,eAAe,CAAC,IAAI,EAAE,EAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,EAAC,EAAE,MAAM,CAAC,CACxG,CAAC;QAEF,MAAM,EAAC,eAAe,EAAE,MAAM,EAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEnE,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;QAE5D,MAAM,EAAC,kBAAkB,EAAE,QAAQ,EAAC,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE1F,oCAAoC;QACpC,oCAAoC;QACpC,6CAA6C;QAC7C,gCAAgC;QAChC,MAAM,qBAAqB,GACzB,CAAC,MAAM,QAAQ,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAAC,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;QAExF,MAAM,CAAC,OAAO,CAAC,kCAAkC,EAAE,EAAC,IAAI,EAAC,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChE,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAgB,CAAC;QAElE,MAAM,kBAAkB,CAAC,iBAAiB,CAAC,eAAe,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC3F,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;CACF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getClient } from "@lodestar/api";
|
|
2
2
|
import { fromHex } from "@lodestar/utils";
|
|
3
3
|
import { genesisData } from "@lodestar/config/networks";
|
|
4
4
|
import { SlashingProtection, MetaDataRepository } from "@lodestar/validator";
|
|
@@ -30,7 +30,7 @@ export async function getGenesisValidatorsRoot(args) {
|
|
|
30
30
|
const api = getClient({ baseUrl: server }, { config });
|
|
31
31
|
const genesis = await api.beacon.getGenesis();
|
|
32
32
|
try {
|
|
33
|
-
|
|
33
|
+
genesis.assertOk();
|
|
34
34
|
}
|
|
35
35
|
catch (e) {
|
|
36
36
|
if (args.force) {
|
|
@@ -38,6 +38,6 @@ export async function getGenesisValidatorsRoot(args) {
|
|
|
38
38
|
}
|
|
39
39
|
throw e;
|
|
40
40
|
}
|
|
41
|
-
return genesis.
|
|
41
|
+
return genesis.value().genesisValidatorsRoot;
|
|
42
42
|
}
|
|
43
43
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/cmds/validator/slashingProtection/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/cmds/validator/slashingProtection/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AACxC,OAAO,EAAC,OAAO,EAAS,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAC,WAAW,EAAc,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAC,uBAAuB,EAAC,MAAM,0BAA0B,CAAC;AAGjE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAgB,EAChB,OAAe,EACf,MAAc;IAEd,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,cAAc,CAAC,eAAe,CAAC;IAE9C,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;IAEpE,OAAO;QACL,kBAAkB,EAAE,IAAI,kBAAkB,CAAC,EAAE,CAAC;QAC9C,QAAQ,EAAE,IAAI,kBAAkB,CAAC,EAAE,CAAC;KACrC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAA0C;IACvF,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,OAAsB,CAAC,CAAC;IAChE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,EAAC,MAAM,EAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,SAAS,CAAC,EAAC,OAAO,EAAE,MAAM,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAE9C,IAAI,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,qBAAqB,CAAC;AAC/C,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { createBeaconConfig } from "@lodestar/config";
|
|
|
5
5
|
import { ssz } from "@lodestar/types";
|
|
6
6
|
import { toHex } from "@lodestar/utils";
|
|
7
7
|
import { externalSignerPostSignature, SignableMessageType, SignerType } from "@lodestar/validator";
|
|
8
|
-
import {
|
|
8
|
+
import { getClient } from "@lodestar/api";
|
|
9
9
|
import { ensure0xPrefix, YargsError, wrapError } from "../../util/index.js";
|
|
10
10
|
import { getBeaconConfigFromArgs } from "../../config/index.js";
|
|
11
11
|
import { getSignersFromArgs } from "./signers/index.js";
|
|
@@ -15,11 +15,11 @@ export const voluntaryExit = {
|
|
|
15
15
|
If no `pubkeys` are provided, it will exit all validators that have been imported.",
|
|
16
16
|
examples: [
|
|
17
17
|
{
|
|
18
|
-
command: "validator voluntary-exit --network
|
|
18
|
+
command: "validator voluntary-exit --network holesky --pubkeys 0xF00",
|
|
19
19
|
description: "Perform a voluntary exit for the validator who has a public key 0xF00",
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
|
-
command: "validator voluntary-exit --network
|
|
22
|
+
command: "validator voluntary-exit --network holesky --externalSigner.url http://signer:9000 --externalSigner.fetch --pubkeys 0xF00",
|
|
23
23
|
description: "Perform a voluntary exit for the validator who has a public key 0xF00 and its secret key is on an external signer",
|
|
24
24
|
},
|
|
25
25
|
],
|
|
@@ -49,9 +49,7 @@ If no `pubkeys` are provided, it will exit all validators that have been importe
|
|
|
49
49
|
// Do not use known networks cache, it defaults to mainnet for devnets
|
|
50
50
|
const { config: chainForkConfig, network } = getBeaconConfigFromArgs(args);
|
|
51
51
|
const client = getClient({ urls: args.beaconNodes }, { config: chainForkConfig });
|
|
52
|
-
const
|
|
53
|
-
ApiError.assert(genesisRes, "Unable to fetch genesisValidatorsRoot from beacon node");
|
|
54
|
-
const { genesisValidatorsRoot, genesisTime } = genesisRes.response.data;
|
|
52
|
+
const { genesisValidatorsRoot, genesisTime } = (await client.beacon.getGenesis()).value();
|
|
55
53
|
const config = createBeaconConfig(chainForkConfig, genesisValidatorsRoot);
|
|
56
54
|
// Set exitEpoch to current epoch if unspecified
|
|
57
55
|
const exitEpoch = args.exitEpoch ?? computeEpochAtSlot(getCurrentSlot(config, genesisTime));
|
|
@@ -131,10 +129,11 @@ async function processVoluntaryExit({ config, client }, exitEpoch, validatorToEx
|
|
|
131
129
|
default:
|
|
132
130
|
throw new YargsError(`Unexpected signer type for ${pubkey}`);
|
|
133
131
|
}
|
|
134
|
-
|
|
132
|
+
const signedVoluntaryExit = {
|
|
135
133
|
message: voluntaryExit,
|
|
136
134
|
signature: signature.toBytes(),
|
|
137
|
-
}
|
|
135
|
+
};
|
|
136
|
+
(await client.beacon.submitPoolVoluntaryExit({ signedVoluntaryExit })).assertOk();
|
|
138
137
|
}
|
|
139
138
|
function selectSignersToExit(args, signers) {
|
|
140
139
|
const signersWithPubkey = signers.map((signer) => ({
|
|
@@ -162,9 +161,8 @@ function selectSignersToExit(args, signers) {
|
|
|
162
161
|
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
163
162
|
async function resolveValidatorIndexes(client, signersToExit) {
|
|
164
163
|
const pubkeys = signersToExit.map(({ pubkey }) => pubkey);
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
const dataByPubkey = new Map(res.response.data.map((item) => [toHex(item.validator.pubkey), item]));
|
|
164
|
+
const validators = (await client.beacon.getStateValidators({ stateId: "head", validatorIds: pubkeys })).value();
|
|
165
|
+
const dataByPubkey = new Map(validators.map((item) => [toHex(item.validator.pubkey), item]));
|
|
168
166
|
return signersToExit.map(({ signer, pubkey }) => {
|
|
169
167
|
const item = dataByPubkey.get(pubkey);
|
|
170
168
|
if (!item) {
|