@lodestar/validator 1.41.0-dev.9fa839a030 → 1.41.0-dev.c8abf8f187

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.
@@ -2,7 +2,7 @@ import { ChainForkConfig } from "@lodestar/config";
2
2
  import { LoggerVc } from "../util/index.js";
3
3
  import { ValidatorStore } from "./validatorStore.js";
4
4
  export type ExternalSignerOptions = {
5
- url?: string;
5
+ urls?: string[];
6
6
  fetch?: boolean;
7
7
  fetchInterval?: number;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"externalSignerSync.d.ts","sourceRoot":"","sources":["../../src/services/externalSignerSync.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAIjD,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAa,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAE/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,WAAW,EACnB,cAAc,EAAE,cAAc,EAC9B,IAAI,CAAC,EAAE,qBAAqB,GAC3B,IAAI,CAgDN"}
1
+ {"version":3,"file":"externalSignerSync.d.ts","sourceRoot":"","sources":["../../src/services/externalSignerSync.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAIjD,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAa,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAE/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,WAAW,EACnB,cAAc,EAAE,cAAc,EAC9B,IAAI,CAAC,EAAE,qBAAqB,GAC3B,IAAI,CAwDN"}
@@ -10,12 +10,12 @@ import { SignerType } from "./validatorStore.js";
10
10
  */
11
11
  export function pollExternalSignerPubkeys(config, logger, signal, validatorStore, opts) {
12
12
  const externalSigner = opts ?? {};
13
- if (!externalSigner.url || !externalSigner.fetch) {
13
+ const externalSignerUrls = externalSigner.urls ?? [];
14
+ if (externalSignerUrls.length === 0 || !externalSigner.fetch) {
14
15
  return; // Disabled
15
16
  }
16
- async function fetchExternalSignerPubkeys() {
17
+ async function syncSignerPubkeys(externalSignerUrl) {
17
18
  // External signer URL is already validated earlier
18
- const externalSignerUrl = externalSigner.url;
19
19
  const printableUrl = toPrintableUrl(externalSignerUrl);
20
20
  try {
21
21
  logger.debug("Fetching public keys from external signer", { url: printableUrl });
@@ -43,6 +43,13 @@ export function pollExternalSignerPubkeys(config, logger, signal, validatorStore
43
43
  logger.error("Failed to fetch public keys from external signer", { url: printableUrl }, e);
44
44
  }
45
45
  }
46
+ async function fetchExternalSignerPubkeys() {
47
+ const promises = [];
48
+ for (const url of externalSignerUrls) {
49
+ promises.push(syncSignerPubkeys(url));
50
+ }
51
+ await Promise.all(promises);
52
+ }
46
53
  const interval = setInterval(fetchExternalSignerPubkeys, externalSigner.fetchInterval ??
47
54
  // Once per epoch by default
48
55
  SLOTS_PER_EPOCH * config.SLOT_DURATION_MS);
@@ -1 +1 @@
1
- {"version":3,"file":"externalSignerSync.js","sourceRoot":"","sources":["../../src/services/externalSignerSync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"externalSignerSync.js","sourceRoot":"","sources":["../../src/services/externalSignerSync.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.41.0-dev.9fa839a030",
3
+ "version": "1.41.0-dev.c8abf8f187",
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.41.0-dev.9fa839a030",
54
- "@lodestar/config": "^1.41.0-dev.9fa839a030",
55
- "@lodestar/db": "^1.41.0-dev.9fa839a030",
56
- "@lodestar/params": "^1.41.0-dev.9fa839a030",
57
- "@lodestar/state-transition": "^1.41.0-dev.9fa839a030",
58
- "@lodestar/types": "^1.41.0-dev.9fa839a030",
59
- "@lodestar/utils": "^1.41.0-dev.9fa839a030",
53
+ "@lodestar/api": "^1.41.0-dev.c8abf8f187",
54
+ "@lodestar/config": "^1.41.0-dev.c8abf8f187",
55
+ "@lodestar/db": "^1.41.0-dev.c8abf8f187",
56
+ "@lodestar/params": "^1.41.0-dev.c8abf8f187",
57
+ "@lodestar/state-transition": "^1.41.0-dev.c8abf8f187",
58
+ "@lodestar/types": "^1.41.0-dev.c8abf8f187",
59
+ "@lodestar/utils": "^1.41.0-dev.c8abf8f187",
60
60
  "strict-event-emitter-types": "^2.0.0"
61
61
  },
62
62
  "devDependencies": {
63
- "@lodestar/logger": "^1.41.0-dev.9fa839a030",
64
- "@lodestar/spec-test-util": "^1.41.0-dev.9fa839a030",
65
- "@lodestar/test-utils": "^1.41.0-dev.9fa839a030",
63
+ "@lodestar/logger": "^1.41.0-dev.c8abf8f187",
64
+ "@lodestar/spec-test-util": "^1.41.0-dev.c8abf8f187",
65
+ "@lodestar/test-utils": "^1.41.0-dev.c8abf8f187",
66
66
  "@vekexasia/bigint-buffer2": "^1.1.0",
67
67
  "rimraf": "^4.4.1"
68
68
  },
69
- "gitHead": "1ba8fa66f8fc0890153a0ecc8cd5b3be617ce410"
69
+ "gitHead": "6fda1e79b58d70b7a8f253552bf4700272332ebd"
70
70
  }
@@ -7,7 +7,7 @@ import {LoggerVc} from "../util/index.js";
7
7
  import {SignerType, ValidatorStore} from "./validatorStore.js";
8
8
 
9
9
  export type ExternalSignerOptions = {
10
- url?: string;
10
+ urls?: string[];
11
11
  fetch?: boolean;
12
12
  fetchInterval?: number;
13
13
  };
@@ -25,14 +25,14 @@ export function pollExternalSignerPubkeys(
25
25
  opts?: ExternalSignerOptions
26
26
  ): void {
27
27
  const externalSigner = opts ?? {};
28
+ const externalSignerUrls = externalSigner.urls ?? [];
28
29
 
29
- if (!externalSigner.url || !externalSigner.fetch) {
30
+ if (externalSignerUrls.length === 0 || !externalSigner.fetch) {
30
31
  return; // Disabled
31
32
  }
32
33
 
33
- async function fetchExternalSignerPubkeys(): Promise<void> {
34
+ async function syncSignerPubkeys(externalSignerUrl: string): Promise<void> {
34
35
  // External signer URL is already validated earlier
35
- const externalSignerUrl = externalSigner.url as string;
36
36
  const printableUrl = toPrintableUrl(externalSignerUrl);
37
37
 
38
38
  try {
@@ -64,6 +64,14 @@ export function pollExternalSignerPubkeys(
64
64
  }
65
65
  }
66
66
 
67
+ async function fetchExternalSignerPubkeys(): Promise<void> {
68
+ const promises: Promise<void>[] = [];
69
+ for (const url of externalSignerUrls) {
70
+ promises.push(syncSignerPubkeys(url));
71
+ }
72
+ await Promise.all(promises);
73
+ }
74
+
67
75
  const interval = setInterval(
68
76
  fetchExternalSignerPubkeys,
69
77
  externalSigner.fetchInterval ??