@lodestar/utils 1.12.0-dev.37f404fa19 → 1.12.0-dev.3a6702e954

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/format.d.ts CHANGED
@@ -8,4 +8,10 @@ export declare function prettyBytes(root: Uint8Array | string): string;
8
8
  * Paired with block numbers or slots, it can still act as a decent identify-able format
9
9
  */
10
10
  export declare function prettyBytesShort(root: Uint8Array | string): string;
11
+ /**
12
+ * Truncate and format bytes as `0x123456789abc`
13
+ * 6 bytes is sufficient to avoid collisions and it allows to easily look up
14
+ * values on explorers like beaconcha.in while improving readability of logs
15
+ */
16
+ export declare function truncBytes(root: Uint8Array | string): string;
11
17
  //# sourceMappingURL=format.d.ts.map
package/lib/format.js CHANGED
@@ -15,4 +15,13 @@ export function prettyBytesShort(root) {
15
15
  const str = typeof root === "string" ? root : toHexString(root);
16
16
  return `${str.slice(0, 6)}…`;
17
17
  }
18
+ /**
19
+ * Truncate and format bytes as `0x123456789abc`
20
+ * 6 bytes is sufficient to avoid collisions and it allows to easily look up
21
+ * values on explorers like beaconcha.in while improving readability of logs
22
+ */
23
+ export function truncBytes(root) {
24
+ const str = typeof root === "string" ? root : toHexString(root);
25
+ return str.slice(0, 14);
26
+ }
18
27
  //# sourceMappingURL=format.js.map
package/lib/format.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAyB;IACnD,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACxD,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAyB;IACnD,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACxD,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAyB;IAClD,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1B,CAAC"}
package/lib/index.d.ts CHANGED
@@ -9,12 +9,12 @@ export * from "./logger.js";
9
9
  export * from "./map.js";
10
10
  export * from "./math.js";
11
11
  export * from "./objects.js";
12
- export { retry, RetryOptions } from "./retry.js";
12
+ export { retry, type RetryOptions } from "./retry.js";
13
13
  export * from "./notNullish.js";
14
14
  export * from "./sleep.js";
15
15
  export * from "./sort.js";
16
16
  export * from "./timeout.js";
17
- export { RecursivePartial, bnToNum } from "./types.js";
17
+ export { type RecursivePartial, bnToNum } from "./types.js";
18
18
  export * from "./validation.js";
19
19
  export * from "./verifyMerkleBranch.js";
20
20
  export * from "./promise.js";
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,KAAK,EAAe,MAAM,YAAY,CAAC;AAC/C,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAmB,OAAO,EAAC,MAAM,YAAY,CAAC;AACrD,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,KAAK,EAAoB,MAAM,YAAY,CAAC;AACpD,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAwB,OAAO,EAAC,MAAM,YAAY,CAAC;AAC1D,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
package/lib/logger.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Interface of a generic Lodestar logger. For implementations, see `@lodestar/logger`
3
3
  */
4
- export type Logger = Record<LogLevel, LogHandler>;
4
+ export type Logger = Record<Exclude<LogLevel, LogLevel.trace>, LogHandler>;
5
5
  export declare enum LogLevel {
6
6
  error = "error",
7
7
  warn = "warn",
package/lib/retry.d.ts CHANGED
@@ -13,6 +13,7 @@ export type RetryOptions = {
13
13
  * Milliseconds to wait before retrying again
14
14
  */
15
15
  retryDelay?: number;
16
+ signal?: AbortSignal;
16
17
  };
17
18
  /**
18
19
  * Retry a given function on error.
package/lib/retry.js CHANGED
@@ -19,7 +19,7 @@ export async function retry(fn, opts) {
19
19
  break;
20
20
  }
21
21
  else if (opts?.retryDelay !== undefined) {
22
- await sleep(opts?.retryDelay);
22
+ await sleep(opts?.retryDelay, opts?.signal);
23
23
  }
24
24
  }
25
25
  }
package/lib/retry.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAmBjC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAI,EAAuC,EAAE,IAAmB;IACzF,MAAM,UAAU,GAAG,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;IAEtC,IAAI,SAAS,GAAU,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE;QACpC,IAAI;YACF,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;SACpB;QAAC,OAAO,CAAC,EAAE;YACV,SAAS,GAAG,CAAU,CAAC;YACvB,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;gBAC1C,MAAM;aACP;iBAAM,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,EAAE;gBACzC,MAAM,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;aAC/B;SACF;KACF;IACD,MAAM,SAAS,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAoBjC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAI,EAAuC,EAAE,IAAmB;IACzF,MAAM,UAAU,GAAG,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;IAEtC,IAAI,SAAS,GAAU,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE;QACpC,IAAI;YACF,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;SACpB;QAAC,OAAO,CAAC,EAAE;YACV,SAAS,GAAG,CAAU,CAAC;YACvB,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;gBAC1C,MAAM;aACP;iBAAM,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,EAAE;gBACzC,MAAM,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;aAC7C;SACF;KACF;IACD,MAAM,SAAS,CAAC;AAClB,CAAC"}
package/lib/waitFor.d.ts CHANGED
@@ -10,4 +10,17 @@ export type WaitForOpts = {
10
10
  * Wait for a condition to be true
11
11
  */
12
12
  export declare function waitFor(condition: () => boolean, opts?: WaitForOpts): Promise<void>;
13
+ export interface ElapsedTimeTracker {
14
+ (): boolean;
15
+ msSinceLastCall: number;
16
+ }
17
+ /**
18
+ * Create a tracker which keeps track of the last time a function was called
19
+ *
20
+ * @param durationMs
21
+ * @returns
22
+ */
23
+ export declare function createElapsedTimeTracker({ minElapsedTime }: {
24
+ minElapsedTime: number;
25
+ }): ElapsedTimeTracker;
13
26
  //# sourceMappingURL=waitFor.d.ts.map
package/lib/waitFor.js CHANGED
@@ -36,4 +36,25 @@ export function waitFor(condition, opts = {}) {
36
36
  };
37
37
  });
38
38
  }
39
+ /**
40
+ * Create a tracker which keeps track of the last time a function was called
41
+ *
42
+ * @param durationMs
43
+ * @returns
44
+ */
45
+ export function createElapsedTimeTracker({ minElapsedTime }) {
46
+ // Initialized with undefined as the function has not been called yet
47
+ let lastTimeCalled = undefined;
48
+ function elapsedTimeTracker() {
49
+ const now = Date.now();
50
+ const msSinceLastCall = now - (lastTimeCalled ?? 0);
51
+ lastTimeCalled = now;
52
+ return msSinceLastCall > minElapsedTime;
53
+ }
54
+ return Object.assign(elapsedTimeTracker, {
55
+ get msSinceLastCall() {
56
+ return Date.now() - (lastTimeCalled ?? 0);
57
+ },
58
+ });
59
+ }
39
60
  //# sourceMappingURL=waitFor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"waitFor.js","sourceRoot":"","sources":["../src/waitFor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAWvD;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,SAAwB,EAAE,OAAoB,EAAE;IACtE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,EAAC,QAAQ,GAAG,EAAE,EAAE,OAAO,GAAG,QAAQ,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC;QAEzD,IAAI,MAAM,EAAE,OAAO,EAAE;YACnB,OAAO,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;SACnC;QAED,IAAI,SAAS,EAAE,EAAE;YACf,OAAO,OAAO,EAAE,CAAC;SAClB;QAED,IAAI,MAAM,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;QAElC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QAC7B,CAAC,EAAE,OAAO,CAAC,CAAC;QAEZ,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YAClC,IAAI,SAAS,EAAE,EAAE;gBACf,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,CAAC;aACX;QACH,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEb,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,IAAI,MAAM;YAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEtD,MAAM,GAAG,GAAG,EAAE;YACZ,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1B,IAAI,MAAM;gBAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"waitFor.js","sourceRoot":"","sources":["../src/waitFor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAWvD;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,SAAwB,EAAE,OAAoB,EAAE;IACtE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,EAAC,QAAQ,GAAG,EAAE,EAAE,OAAO,GAAG,QAAQ,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC;QAEzD,IAAI,MAAM,EAAE,OAAO,EAAE;YACnB,OAAO,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;SACnC;QAED,IAAI,SAAS,EAAE,EAAE;YACf,OAAO,OAAO,EAAE,CAAC;SAClB;QAED,IAAI,MAAM,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;QAElC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QAC7B,CAAC,EAAE,OAAO,CAAC,CAAC;QAEZ,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YAClC,IAAI,SAAS,EAAE,EAAE;gBACf,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,CAAC;aACX;QACH,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEb,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,IAAI,MAAM;YAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEtD,MAAM,GAAG,GAAG,EAAE;YACZ,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1B,IAAI,MAAM;gBAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAOD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,EAAC,cAAc,EAA2B;IACjF,qEAAqE;IACrE,IAAI,cAAc,GAAuB,SAAS,CAAC;IAEnD,SAAS,kBAAkB;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,GAAG,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;QACpD,cAAc,GAAG,GAAG,CAAC;QAErB,OAAO,eAAe,GAAG,cAAc,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE;QACvC,IAAI,eAAe;YACjB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC,CAAC;AACL,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.12.0-dev.37f404fa19",
14
+ "version": "1.12.0-dev.3a6702e954",
15
15
  "type": "module",
16
16
  "exports": "./lib/index.js",
17
17
  "files": [
@@ -55,5 +55,5 @@
55
55
  "beacon",
56
56
  "blockchain"
57
57
  ],
58
- "gitHead": "83b95efeb08f4ae75fd981ea6f17c55ad6b04a5f"
58
+ "gitHead": "6654a8abc18216965dbd6a3365a9fcf24a9cf9d0"
59
59
  }