@lodestar/utils 1.36.0-dev.f657221d88 → 1.36.0-dev.faac5550fb
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/bytes/browser.d.ts +17 -0
- package/lib/bytes/browser.d.ts.map +1 -1
- package/lib/bytes/browser.js +55 -0
- package/lib/bytes/browser.js.map +1 -1
- package/lib/bytes/bun.d.ts +12 -0
- package/lib/bytes/bun.d.ts.map +1 -0
- package/lib/bytes/bun.js +57 -0
- package/lib/bytes/bun.js.map +1 -0
- package/lib/bytes/nodejs.d.ts +1 -0
- package/lib/bytes/nodejs.d.ts.map +1 -1
- package/lib/bytes/nodejs.js +1 -0
- package/lib/bytes/nodejs.js.map +1 -1
- package/lib/format.d.ts +1 -0
- package/lib/format.d.ts.map +1 -1
- package/lib/format.js +16 -1
- package/lib/format.js.map +1 -1
- package/lib/index.d.ts +1 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -2
- package/lib/index.js.map +1 -1
- package/package.json +11 -2
- package/src/bytes/browser.ts +65 -0
- package/src/bytes/bun.ts +72 -0
- package/src/bytes/nodejs.ts +2 -0
- package/src/format.ts +21 -1
- package/src/index.ts +1 -2
- package/lib/bytes/index.d.ts +0 -8
- package/lib/bytes/index.d.ts.map +0 -1
- package/lib/bytes/index.js +0 -16
- package/lib/bytes/index.js.map +0 -1
- package/lib/bytes.d.ts +0 -19
- package/lib/bytes.d.ts.map +0 -1
- package/lib/bytes.js +0 -71
- package/lib/bytes.js.map +0 -1
- package/src/bytes/index.ts +0 -29
- package/src/bytes.ts +0 -84
package/lib/bytes/browser.d.ts
CHANGED
|
@@ -9,4 +9,21 @@ export declare function toRootHex(root: Uint8Array): string;
|
|
|
9
9
|
export declare function toPubkeyHex(pubkey: Uint8Array): string;
|
|
10
10
|
export declare function fromHex(hex: string): Uint8Array;
|
|
11
11
|
export declare function fromHexInto(hex: string, buffer: Uint8Array): void;
|
|
12
|
+
type Endianness = "le" | "be";
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Use toHex() instead.
|
|
15
|
+
*/
|
|
16
|
+
export declare function toHexString(bytes: Uint8Array): string;
|
|
17
|
+
/**
|
|
18
|
+
* Return a byte array from a number or BigInt
|
|
19
|
+
*/
|
|
20
|
+
export declare function intToBytes(value: bigint | number, length: number, endianness?: Endianness): Uint8Array;
|
|
21
|
+
/**
|
|
22
|
+
* Convert byte array in LE to integer.
|
|
23
|
+
*/
|
|
24
|
+
export declare function bytesToInt(value: Uint8Array, endianness?: Endianness): number;
|
|
25
|
+
export declare function bigIntToBytes(value: bigint, length: number, endianness?: Endianness): Uint8Array;
|
|
26
|
+
export declare function bytesToBigInt(value: Uint8Array, endianness?: Endianness): bigint;
|
|
27
|
+
export declare function xor(a: Uint8Array, b: Uint8Array): Uint8Array;
|
|
28
|
+
export {};
|
|
12
29
|
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/bytes/browser.ts"],"names":[],"mappings":"AAKA,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAO/C;AAMD;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAOlD;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAOtD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAqB/C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAcjE"}
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/bytes/browser.ts"],"names":[],"mappings":"AAKA,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAO/C;AAMD;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAOlD;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAOtD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAqB/C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAcjE;AA2CD,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AAG9B;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CASrD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,UAAiB,GAAG,UAAU,CAE5G;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,GAAE,UAAiB,GAAG,MAAM,CAEnF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,UAAiB,GAAG,UAAU,CAQtG;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,GAAE,UAAiB,GAAG,MAAM,CAYtF;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAM5D"}
|
package/lib/bytes/browser.js
CHANGED
|
@@ -99,4 +99,59 @@ function charCodeToByte(charCode) {
|
|
|
99
99
|
}
|
|
100
100
|
throw new Error(`Invalid hex character code: ${charCode}`);
|
|
101
101
|
}
|
|
102
|
+
import { toBigIntBE, toBigIntLE, toBufferBE, toBufferLE } from "bigint-buffer";
|
|
103
|
+
const hexByByte = [];
|
|
104
|
+
/**
|
|
105
|
+
* @deprecated Use toHex() instead.
|
|
106
|
+
*/
|
|
107
|
+
export function toHexString(bytes) {
|
|
108
|
+
let hex = "0x";
|
|
109
|
+
for (const byte of bytes) {
|
|
110
|
+
if (!hexByByte[byte]) {
|
|
111
|
+
hexByByte[byte] = byte < 16 ? "0" + byte.toString(16) : byte.toString(16);
|
|
112
|
+
}
|
|
113
|
+
hex += hexByByte[byte];
|
|
114
|
+
}
|
|
115
|
+
return hex;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Return a byte array from a number or BigInt
|
|
119
|
+
*/
|
|
120
|
+
export function intToBytes(value, length, endianness = "le") {
|
|
121
|
+
return bigIntToBytes(BigInt(value), length, endianness);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Convert byte array in LE to integer.
|
|
125
|
+
*/
|
|
126
|
+
export function bytesToInt(value, endianness = "le") {
|
|
127
|
+
return Number(bytesToBigInt(value, endianness));
|
|
128
|
+
}
|
|
129
|
+
export function bigIntToBytes(value, length, endianness = "le") {
|
|
130
|
+
if (endianness === "le") {
|
|
131
|
+
return toBufferLE(value, length);
|
|
132
|
+
}
|
|
133
|
+
if (endianness === "be") {
|
|
134
|
+
return toBufferBE(value, length);
|
|
135
|
+
}
|
|
136
|
+
throw new Error("endianness must be either 'le' or 'be'");
|
|
137
|
+
}
|
|
138
|
+
export function bytesToBigInt(value, endianness = "le") {
|
|
139
|
+
if (!(value instanceof Uint8Array)) {
|
|
140
|
+
throw new TypeError("expected a Uint8Array");
|
|
141
|
+
}
|
|
142
|
+
if (endianness === "le") {
|
|
143
|
+
return toBigIntLE(value);
|
|
144
|
+
}
|
|
145
|
+
if (endianness === "be") {
|
|
146
|
+
return toBigIntBE(value);
|
|
147
|
+
}
|
|
148
|
+
throw new Error("endianness must be either 'le' or 'be'");
|
|
149
|
+
}
|
|
150
|
+
export function xor(a, b) {
|
|
151
|
+
const length = Math.min(a.length, b.length);
|
|
152
|
+
for (let i = 0; i < length; i++) {
|
|
153
|
+
a[i] = a[i] ^ b[i];
|
|
154
|
+
}
|
|
155
|
+
return a;
|
|
156
|
+
}
|
|
102
157
|
//# sourceMappingURL=browser.js.map
|
package/lib/bytes/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/bytes/browser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/bytes/browser.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,0BAA0B;AAC1B,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAS,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAC3B,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAE3B,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,aAAa,GAAG,IAAI,KAAK,CAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;AAC/B,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAgB;IACxC,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACvB,MAAM,KAAK,CAAC,mCAAmC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,eAAe,GAAG,IAAI,KAAK,CAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,eAAe,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;AACjC,eAAe,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;AAEjC;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAkB;IAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,KAAK,CAAC,qCAAqC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,GAAG,yBAAyB,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,MAAM,wBAAwB,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1D,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,MAAkB;IACzD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,MAAM,6CAA6C,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAiB,EAAE,SAAmB;IAChE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QAC9C,MAAM,KAAK,CAAC,oCAAoC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;QAE3B,yBAAyB;QACzB,uCAAuC;QACvC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5D,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,gEAAgE;IAChE,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACtC,OAAO,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,+DAA+D;IAC/D,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACrC,OAAO,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,+DAA+D;IAC/D,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACrC,OAAO,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,OAAO,EAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAI7E,MAAM,SAAS,GAAa,EAAE,CAAC;AAC/B;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAiB;IAC3C,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB,EAAE,MAAc,EAAE,aAAyB,IAAI;IAC9F,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAiB,EAAE,aAAyB,IAAI;IACzE,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,aAAyB,IAAI;IACxF,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAiB,EAAE,aAAyB,IAAI;IAC5E,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC,KAAe,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC,KAAe,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAa,EAAE,CAAa;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function toHex(data: Uint8Array): string;
|
|
2
|
+
export declare function toRootHex(root: Uint8Array): string;
|
|
3
|
+
export declare function toPubkeyHex(pubkey: Uint8Array): string;
|
|
4
|
+
export declare function fromHex(hex: string): Uint8Array;
|
|
5
|
+
export declare function fromHexInto(hex: string, buffer: Uint8Array): void;
|
|
6
|
+
export declare const toHexString: typeof toHex;
|
|
7
|
+
export declare function intToBytes(value: number | bigint, byteLength: number, endianness?: "be" | "le"): Uint8Array;
|
|
8
|
+
export declare function bytesToInt(buf: Uint8Array, endianness?: "be" | "le"): number;
|
|
9
|
+
export declare const bigIntToBytes: typeof intToBytes;
|
|
10
|
+
export declare function bytesToBigInt(buf: Uint8Array, endianness?: "be" | "le"): bigint;
|
|
11
|
+
export { xor } from "./browser.ts";
|
|
12
|
+
//# sourceMappingURL=bun.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../../src/bytes/bun.ts"],"names":[],"mappings":"AAEA,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAE9C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAKlD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAKtD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAU/C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAUjE;AAED,eAAO,MAAM,WAAW,cAAQ,CAAC;AAIjC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAE,IAAI,GAAG,IAAW,GAAG,UAAU,CAKjH;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,GAAE,IAAI,GAAG,IAAW,GAAG,MAAM,CAKlF;AAED,eAAO,MAAM,aAAa,mBAAa,CAAC;AAExC,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,GAAE,IAAI,GAAG,IAAW,GAAG,MAAM,CAKrF;AAED,OAAO,EAAC,GAAG,EAAC,MAAM,cAAc,CAAC"}
|
package/lib/bytes/bun.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { bytes } from "@lodestar/bun";
|
|
2
|
+
export function toHex(data) {
|
|
3
|
+
return `0x${data.toHex()}`;
|
|
4
|
+
}
|
|
5
|
+
export function toRootHex(root) {
|
|
6
|
+
if (root.length !== 32) {
|
|
7
|
+
throw Error(`Expect root to be 32 bytes, got ${root.length}`);
|
|
8
|
+
}
|
|
9
|
+
return `0x${root.toHex()}`;
|
|
10
|
+
}
|
|
11
|
+
export function toPubkeyHex(pubkey) {
|
|
12
|
+
if (pubkey.length !== 48) {
|
|
13
|
+
throw Error(`Expect pubkey to be 48 bytes, got ${pubkey.length}`);
|
|
14
|
+
}
|
|
15
|
+
return `0x${pubkey.toHex()}`;
|
|
16
|
+
}
|
|
17
|
+
export function fromHex(hex) {
|
|
18
|
+
if (hex.startsWith("0x")) {
|
|
19
|
+
hex = hex.slice(2);
|
|
20
|
+
}
|
|
21
|
+
if (hex.length % 2 !== 0) {
|
|
22
|
+
throw new Error(`hex string length ${hex.length} must be multiple of 2`);
|
|
23
|
+
}
|
|
24
|
+
return Uint8Array.fromHex(hex);
|
|
25
|
+
}
|
|
26
|
+
export function fromHexInto(hex, buffer) {
|
|
27
|
+
if (hex.startsWith("0x")) {
|
|
28
|
+
hex = hex.slice(2);
|
|
29
|
+
}
|
|
30
|
+
if (hex.length !== buffer.length * 2) {
|
|
31
|
+
throw new Error(`hex string length ${hex.length} must be exactly double the buffer length ${buffer.length}`);
|
|
32
|
+
}
|
|
33
|
+
buffer.setFromHex(hex);
|
|
34
|
+
}
|
|
35
|
+
export const toHexString = toHex;
|
|
36
|
+
import { bytesToBigInt as bBytesToBigInt, bytesToInt as bBytesToInt, intToBytes as bIntToBytes } from "./browser.js";
|
|
37
|
+
export function intToBytes(value, byteLength, endianness = "le") {
|
|
38
|
+
if (byteLength > 8) {
|
|
39
|
+
return bIntToBytes(value, byteLength, endianness);
|
|
40
|
+
}
|
|
41
|
+
return bytes.intToBytes(value, byteLength, endianness);
|
|
42
|
+
}
|
|
43
|
+
export function bytesToInt(buf, endianness = "le") {
|
|
44
|
+
if (buf.length > 8) {
|
|
45
|
+
return bBytesToInt(buf, endianness);
|
|
46
|
+
}
|
|
47
|
+
return bytes.bytesToInt(buf, endianness);
|
|
48
|
+
}
|
|
49
|
+
export const bigIntToBytes = intToBytes;
|
|
50
|
+
export function bytesToBigInt(buf, endianness = "le") {
|
|
51
|
+
if (buf.length > 8) {
|
|
52
|
+
return bBytesToBigInt(buf, endianness);
|
|
53
|
+
}
|
|
54
|
+
return bytes.bytesToBigint(buf, endianness);
|
|
55
|
+
}
|
|
56
|
+
export { xor } from "./browser.js";
|
|
57
|
+
//# sourceMappingURL=bun.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun.js","sourceRoot":"","sources":["../../src/bytes/bun.ts"],"names":[],"mappings":"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"}
|
package/lib/bytes/nodejs.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ export declare function toHex(buffer: Uint8Array | Parameters<typeof Buffer.from
|
|
|
5
5
|
export declare function toRootHex(root: Uint8Array): string;
|
|
6
6
|
export declare function toPubkeyHex(pubkey: Uint8Array): string;
|
|
7
7
|
export declare function fromHex(hex: string): Uint8Array;
|
|
8
|
+
export { bigIntToBytes, bytesToBigInt, bytesToInt, fromHexInto, intToBytes, toHexString, xor } from "./browser.ts";
|
|
8
9
|
//# sourceMappingURL=nodejs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodejs.d.ts","sourceRoot":"","sources":["../../src/bytes/nodejs.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAQpF;AAKD;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAWlD;AAKD,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAWtD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAe/C"}
|
|
1
|
+
{"version":3,"file":"nodejs.d.ts","sourceRoot":"","sources":["../../src/bytes/nodejs.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAQpF;AAKD;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAWlD;AAKD,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAWtD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAe/C;AAID,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAC,MAAM,cAAc,CAAC"}
|
package/lib/bytes/nodejs.js
CHANGED
|
@@ -48,4 +48,5 @@ export function fromHex(hex) {
|
|
|
48
48
|
return new Uint8Array(b.buffer, b.byteOffset, b.length);
|
|
49
49
|
}
|
|
50
50
|
/// the performance of fromHexInto using a preallocated buffer is very bad compared to browser so I moved it to the benchmark
|
|
51
|
+
export { bigIntToBytes, bytesToBigInt, bytesToInt, fromHexInto, intToBytes, toHexString, xor } from "./browser.js";
|
|
51
52
|
//# sourceMappingURL=nodejs.js.map
|
package/lib/bytes/nodejs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodejs.js","sourceRoot":"","sources":["../../src/bytes/nodejs.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,MAAsD;IAC1E,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;QACjC,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,uCAAuC;AACvC,IAAI,OAA2B,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAgB;IACxC,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACvB,MAAM,KAAK,CAAC,mCAAmC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,yCAAyC;AACzC,IAAI,SAA6B,CAAC;AAElC,MAAM,UAAU,WAAW,CAAC,MAAkB;IAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACzB,MAAM,KAAK,CAAC,qCAAqC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,GAAG,yBAAyB,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,MAAM,wBAAwB,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,6HAA6H"}
|
|
1
|
+
{"version":3,"file":"nodejs.js","sourceRoot":"","sources":["../../src/bytes/nodejs.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,MAAsD;IAC1E,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;QACjC,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,uCAAuC;AACvC,IAAI,OAA2B,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAgB;IACxC,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACvB,MAAM,KAAK,CAAC,mCAAmC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,yCAAyC;AACzC,IAAI,SAA6B,CAAC;AAElC,MAAM,UAAU,WAAW,CAAC,MAAkB;IAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACzB,MAAM,KAAK,CAAC,qCAAqC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,GAAG,yBAAyB,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,MAAM,wBAAwB,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,6HAA6H;AAE7H,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAC,MAAM,cAAc,CAAC"}
|
package/lib/format.d.ts
CHANGED
|
@@ -46,4 +46,5 @@ export declare function groupSequentialIndices(indices: number[]): string[];
|
|
|
46
46
|
* ```
|
|
47
47
|
*/
|
|
48
48
|
export declare function prettyPrintIndices(indices: number[]): string;
|
|
49
|
+
export declare function formatBytes(bytes: number): string;
|
|
49
50
|
//# sourceMappingURL=format.d.ts.map
|
package/lib/format.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAG7D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAGlE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAOzG;AAKD;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA4BlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAG5D"}
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAG7D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAGlE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAOzG;AAKD;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA4BlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAG5D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBjD"}
|
package/lib/format.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { toRootHex } from "
|
|
1
|
+
import { toRootHex } from "#bytes";
|
|
2
2
|
import { ETH_TO_WEI } from "./ethConversion.js";
|
|
3
3
|
/**
|
|
4
4
|
* Format bytes as `0x1234…1234`
|
|
@@ -100,4 +100,19 @@ export function prettyPrintIndices(indices) {
|
|
|
100
100
|
const increments = groupSequentialIndices(indices);
|
|
101
101
|
return `[${increments.join(", ")}]`;
|
|
102
102
|
}
|
|
103
|
+
export function formatBytes(bytes) {
|
|
104
|
+
if (bytes < 0) {
|
|
105
|
+
throw new Error("bytes must be a positive number, got " + bytes);
|
|
106
|
+
}
|
|
107
|
+
if (bytes === 0) {
|
|
108
|
+
return "0 Bytes";
|
|
109
|
+
}
|
|
110
|
+
// size of a kb
|
|
111
|
+
const k = 1024;
|
|
112
|
+
// only support up to GB
|
|
113
|
+
const units = ["Bytes", "KB", "MB", "GB"];
|
|
114
|
+
const i = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), units.length - 1);
|
|
115
|
+
const formattedSize = (bytes / Math.pow(k, i)).toFixed(2);
|
|
116
|
+
return `${formattedSize} ${units[i]}`;
|
|
117
|
+
}
|
|
103
118
|
//# 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,SAAS,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,KAAK,YAAY,EAAE,KAAK,EAAC,MAAM,YAAY,CAAC;AACpD,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,OAAO,EAAC,MAAM,YAAY,CAAC;AAClF,cAAc,UAAU,CAAC;AACzB,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
|
package/lib/index.js
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAoB,KAAK,EAAC,MAAM,YAAY,CAAC;AACpD,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAgD,OAAO,EAAC,MAAM,YAAY,CAAC;AAClF,cAAc,UAAU,CAAC;AACzB,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -11,14 +11,22 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.36.0-dev.
|
|
14
|
+
"version": "1.36.0-dev.faac5550fb",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
18
18
|
"bun": "./src/index.ts",
|
|
19
|
+
"types": "./lib/index.d.ts",
|
|
19
20
|
"import": "./lib/index.js"
|
|
20
21
|
}
|
|
21
22
|
},
|
|
23
|
+
"imports": {
|
|
24
|
+
"#bytes": {
|
|
25
|
+
"bun": "./src/bytes/bun.ts",
|
|
26
|
+
"browser": "./lib/bytes/browser.js",
|
|
27
|
+
"default": "./lib/bytes/nodejs.js"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
22
30
|
"files": [
|
|
23
31
|
"src",
|
|
24
32
|
"lib",
|
|
@@ -40,6 +48,7 @@
|
|
|
40
48
|
"types": "lib/index.d.ts",
|
|
41
49
|
"dependencies": {
|
|
42
50
|
"@chainsafe/as-sha256": "^1.2.0",
|
|
51
|
+
"@lodestar/bun": "git+https://github.com/ChainSafe/lodestar-bun.git",
|
|
43
52
|
"any-signal": "^4.1.1",
|
|
44
53
|
"bigint-buffer": "^1.1.5",
|
|
45
54
|
"case": "^1.6.3",
|
|
@@ -56,5 +65,5 @@
|
|
|
56
65
|
"beacon",
|
|
57
66
|
"blockchain"
|
|
58
67
|
],
|
|
59
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "b411ee6055e18b5509edc469f1af85e67497ec27"
|
|
60
69
|
}
|
package/src/bytes/browser.ts
CHANGED
|
@@ -121,3 +121,68 @@ function charCodeToByte(charCode: number): number {
|
|
|
121
121
|
|
|
122
122
|
throw new Error(`Invalid hex character code: ${charCode}`);
|
|
123
123
|
}
|
|
124
|
+
|
|
125
|
+
import {toBigIntBE, toBigIntLE, toBufferBE, toBufferLE} from "bigint-buffer";
|
|
126
|
+
|
|
127
|
+
type Endianness = "le" | "be";
|
|
128
|
+
|
|
129
|
+
const hexByByte: string[] = [];
|
|
130
|
+
/**
|
|
131
|
+
* @deprecated Use toHex() instead.
|
|
132
|
+
*/
|
|
133
|
+
export function toHexString(bytes: Uint8Array): string {
|
|
134
|
+
let hex = "0x";
|
|
135
|
+
for (const byte of bytes) {
|
|
136
|
+
if (!hexByByte[byte]) {
|
|
137
|
+
hexByByte[byte] = byte < 16 ? "0" + byte.toString(16) : byte.toString(16);
|
|
138
|
+
}
|
|
139
|
+
hex += hexByByte[byte];
|
|
140
|
+
}
|
|
141
|
+
return hex;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Return a byte array from a number or BigInt
|
|
146
|
+
*/
|
|
147
|
+
export function intToBytes(value: bigint | number, length: number, endianness: Endianness = "le"): Uint8Array {
|
|
148
|
+
return bigIntToBytes(BigInt(value), length, endianness);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Convert byte array in LE to integer.
|
|
153
|
+
*/
|
|
154
|
+
export function bytesToInt(value: Uint8Array, endianness: Endianness = "le"): number {
|
|
155
|
+
return Number(bytesToBigInt(value, endianness));
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export function bigIntToBytes(value: bigint, length: number, endianness: Endianness = "le"): Uint8Array {
|
|
159
|
+
if (endianness === "le") {
|
|
160
|
+
return toBufferLE(value, length);
|
|
161
|
+
}
|
|
162
|
+
if (endianness === "be") {
|
|
163
|
+
return toBufferBE(value, length);
|
|
164
|
+
}
|
|
165
|
+
throw new Error("endianness must be either 'le' or 'be'");
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export function bytesToBigInt(value: Uint8Array, endianness: Endianness = "le"): bigint {
|
|
169
|
+
if (!(value instanceof Uint8Array)) {
|
|
170
|
+
throw new TypeError("expected a Uint8Array");
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
if (endianness === "le") {
|
|
174
|
+
return toBigIntLE(value as Buffer);
|
|
175
|
+
}
|
|
176
|
+
if (endianness === "be") {
|
|
177
|
+
return toBigIntBE(value as Buffer);
|
|
178
|
+
}
|
|
179
|
+
throw new Error("endianness must be either 'le' or 'be'");
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export function xor(a: Uint8Array, b: Uint8Array): Uint8Array {
|
|
183
|
+
const length = Math.min(a.length, b.length);
|
|
184
|
+
for (let i = 0; i < length; i++) {
|
|
185
|
+
a[i] = a[i] ^ b[i];
|
|
186
|
+
}
|
|
187
|
+
return a;
|
|
188
|
+
}
|
package/src/bytes/bun.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import {bytes} from "@lodestar/bun";
|
|
2
|
+
|
|
3
|
+
export function toHex(data: Uint8Array): string {
|
|
4
|
+
return `0x${data.toHex()}`;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function toRootHex(root: Uint8Array): string {
|
|
8
|
+
if (root.length !== 32) {
|
|
9
|
+
throw Error(`Expect root to be 32 bytes, got ${root.length}`);
|
|
10
|
+
}
|
|
11
|
+
return `0x${root.toHex()}`;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function toPubkeyHex(pubkey: Uint8Array): string {
|
|
15
|
+
if (pubkey.length !== 48) {
|
|
16
|
+
throw Error(`Expect pubkey to be 48 bytes, got ${pubkey.length}`);
|
|
17
|
+
}
|
|
18
|
+
return `0x${pubkey.toHex()}`;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function fromHex(hex: string): Uint8Array {
|
|
22
|
+
if (hex.startsWith("0x")) {
|
|
23
|
+
hex = hex.slice(2);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (hex.length % 2 !== 0) {
|
|
27
|
+
throw new Error(`hex string length ${hex.length} must be multiple of 2`);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return Uint8Array.fromHex(hex);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function fromHexInto(hex: string, buffer: Uint8Array): void {
|
|
34
|
+
if (hex.startsWith("0x")) {
|
|
35
|
+
hex = hex.slice(2);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (hex.length !== buffer.length * 2) {
|
|
39
|
+
throw new Error(`hex string length ${hex.length} must be exactly double the buffer length ${buffer.length}`);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
buffer.setFromHex(hex);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export const toHexString = toHex;
|
|
46
|
+
|
|
47
|
+
import {bytesToBigInt as bBytesToBigInt, bytesToInt as bBytesToInt, intToBytes as bIntToBytes} from "./browser.ts";
|
|
48
|
+
|
|
49
|
+
export function intToBytes(value: number | bigint, byteLength: number, endianness: "be" | "le" = "le"): Uint8Array {
|
|
50
|
+
if (byteLength > 8) {
|
|
51
|
+
return bIntToBytes(value, byteLength, endianness);
|
|
52
|
+
}
|
|
53
|
+
return bytes.intToBytes(value, byteLength, endianness);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export function bytesToInt(buf: Uint8Array, endianness: "be" | "le" = "le"): number {
|
|
57
|
+
if (buf.length > 8) {
|
|
58
|
+
return bBytesToInt(buf, endianness);
|
|
59
|
+
}
|
|
60
|
+
return bytes.bytesToInt(buf, endianness);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export const bigIntToBytes = intToBytes;
|
|
64
|
+
|
|
65
|
+
export function bytesToBigInt(buf: Uint8Array, endianness: "be" | "le" = "le"): bigint {
|
|
66
|
+
if (buf.length > 8) {
|
|
67
|
+
return bBytesToBigInt(buf, endianness);
|
|
68
|
+
}
|
|
69
|
+
return bytes.bytesToBigint(buf, endianness);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export {xor} from "./browser.ts";
|
package/src/bytes/nodejs.ts
CHANGED
|
@@ -61,3 +61,5 @@ export function fromHex(hex: string): Uint8Array {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
/// the performance of fromHexInto using a preallocated buffer is very bad compared to browser so I moved it to the benchmark
|
|
64
|
+
|
|
65
|
+
export {bigIntToBytes, bytesToBigInt, bytesToInt, fromHexInto, intToBytes, toHexString, xor} from "./browser.ts";
|
package/src/format.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {toRootHex} from "
|
|
1
|
+
import {toRootHex} from "#bytes";
|
|
2
2
|
import {ETH_TO_WEI} from "./ethConversion.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -117,3 +117,23 @@ export function prettyPrintIndices(indices: number[]): string {
|
|
|
117
117
|
const increments = groupSequentialIndices(indices);
|
|
118
118
|
return `[${increments.join(", ")}]`;
|
|
119
119
|
}
|
|
120
|
+
|
|
121
|
+
export function formatBytes(bytes: number): string {
|
|
122
|
+
if (bytes < 0) {
|
|
123
|
+
throw new Error("bytes must be a positive number, got " + bytes);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (bytes === 0) {
|
|
127
|
+
return "0 Bytes";
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// size of a kb
|
|
131
|
+
const k = 1024;
|
|
132
|
+
|
|
133
|
+
// only support up to GB
|
|
134
|
+
const units = ["Bytes", "KB", "MB", "GB"];
|
|
135
|
+
const i = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), units.length - 1);
|
|
136
|
+
const formattedSize = (bytes / Math.pow(k, i)).toFixed(2);
|
|
137
|
+
|
|
138
|
+
return `${formattedSize} ${units[i]}`;
|
|
139
|
+
}
|
package/src/index.ts
CHANGED
package/lib/bytes/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { fromHex as browserFromHex, fromHexInto as browserFromHexInto, toHex as browserToHex, toPubkeyHex as browserToPubkeyHex, toRootHex as browserToRootHex } from "./browser.js";
|
|
2
|
-
declare let toHex: typeof browserToHex;
|
|
3
|
-
declare let toRootHex: typeof browserToRootHex;
|
|
4
|
-
declare let toPubkeyHex: typeof browserToPubkeyHex;
|
|
5
|
-
declare let fromHex: typeof browserFromHex;
|
|
6
|
-
declare const fromHexInto: typeof browserFromHexInto;
|
|
7
|
-
export { toHex, toRootHex, toPubkeyHex, fromHex, fromHexInto };
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
package/lib/bytes/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bytes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,cAAc,EACzB,WAAW,IAAI,kBAAkB,EACjC,KAAK,IAAI,YAAY,EACrB,WAAW,IAAI,kBAAkB,EACjC,SAAS,IAAI,gBAAgB,EAC9B,MAAM,cAAc,CAAC;AAQtB,QAAA,IAAI,KAAK,qBAAe,CAAC;AACzB,QAAA,IAAI,SAAS,yBAAmB,CAAC;AACjC,QAAA,IAAI,WAAW,2BAAqB,CAAC;AACrC,QAAA,IAAI,OAAO,uBAAiB,CAAC;AAE7B,QAAA,MAAM,WAAW,2BAAqB,CAAC;AASvC,OAAO,EAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAC,CAAC"}
|
package/lib/bytes/index.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { fromHex as browserFromHex, fromHexInto as browserFromHexInto, toHex as browserToHex, toPubkeyHex as browserToPubkeyHex, toRootHex as browserToRootHex, } from "./browser.js";
|
|
2
|
-
import { fromHex as nodeFromHex, toHex as nodeToHex, toPubkeyHex as nodeToPubkeyHex, toRootHex as nodeToRootHex, } from "./nodejs.js";
|
|
3
|
-
let toHex = browserToHex;
|
|
4
|
-
let toRootHex = browserToRootHex;
|
|
5
|
-
let toPubkeyHex = browserToPubkeyHex;
|
|
6
|
-
let fromHex = browserFromHex;
|
|
7
|
-
// there is no fromHexInto for NodeJs as the performance of browserFromHexInto is >100x faster
|
|
8
|
-
const fromHexInto = browserFromHexInto;
|
|
9
|
-
if (typeof Buffer !== "undefined") {
|
|
10
|
-
toHex = nodeToHex;
|
|
11
|
-
toRootHex = nodeToRootHex;
|
|
12
|
-
toPubkeyHex = nodeToPubkeyHex;
|
|
13
|
-
fromHex = nodeFromHex;
|
|
14
|
-
}
|
|
15
|
-
export { toHex, toRootHex, toPubkeyHex, fromHex, fromHexInto };
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
package/lib/bytes/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bytes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,cAAc,EACzB,WAAW,IAAI,kBAAkB,EACjC,KAAK,IAAI,YAAY,EACrB,WAAW,IAAI,kBAAkB,EACjC,SAAS,IAAI,gBAAgB,GAC9B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,KAAK,IAAI,SAAS,EAClB,WAAW,IAAI,eAAe,EAC9B,SAAS,IAAI,aAAa,GAC3B,MAAM,aAAa,CAAC;AAErB,IAAI,KAAK,GAAG,YAAY,CAAC;AACzB,IAAI,SAAS,GAAG,gBAAgB,CAAC;AACjC,IAAI,WAAW,GAAG,kBAAkB,CAAC;AACrC,IAAI,OAAO,GAAG,cAAc,CAAC;AAC7B,8FAA8F;AAC9F,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAEvC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,KAAK,GAAG,SAAS,CAAC;IAClB,SAAS,GAAG,aAAa,CAAC;IAC1B,WAAW,GAAG,eAAe,CAAC;IAC9B,OAAO,GAAG,WAAW,CAAC;AACxB,CAAC;AAED,OAAO,EAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAC,CAAC"}
|
package/lib/bytes.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
type Endianness = "le" | "be";
|
|
2
|
-
/**
|
|
3
|
-
* @deprecated Use toHex() instead.
|
|
4
|
-
*/
|
|
5
|
-
export declare function toHexString(bytes: Uint8Array): string;
|
|
6
|
-
/**
|
|
7
|
-
* Return a byte array from a number or BigInt
|
|
8
|
-
*/
|
|
9
|
-
export declare function intToBytes(value: bigint | number, length: number, endianness?: Endianness): Buffer;
|
|
10
|
-
/**
|
|
11
|
-
* Convert byte array in LE to integer.
|
|
12
|
-
*/
|
|
13
|
-
export declare function bytesToInt(value: Uint8Array, endianness?: Endianness): number;
|
|
14
|
-
export declare function bigIntToBytes(value: bigint, length: number, endianness?: Endianness): Buffer;
|
|
15
|
-
export declare function bytesToBigInt(value: Uint8Array, endianness?: Endianness): bigint;
|
|
16
|
-
export declare function formatBytes(bytes: number): string;
|
|
17
|
-
export declare function xor(a: Uint8Array, b: Uint8Array): Uint8Array;
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=bytes.d.ts.map
|
package/lib/bytes.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AAG9B;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CASrD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,UAAiB,GAAG,MAAM,CAExG;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,GAAE,UAAiB,GAAG,MAAM,CAEnF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,UAAiB,GAAG,MAAM,CAQlG;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,GAAE,UAAiB,GAAG,MAAM,CAYtF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBjD;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAM5D"}
|
package/lib/bytes.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { toBigIntBE, toBigIntLE, toBufferBE, toBufferLE } from "bigint-buffer";
|
|
2
|
-
const hexByByte = [];
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated Use toHex() instead.
|
|
5
|
-
*/
|
|
6
|
-
export function toHexString(bytes) {
|
|
7
|
-
let hex = "0x";
|
|
8
|
-
for (const byte of bytes) {
|
|
9
|
-
if (!hexByByte[byte]) {
|
|
10
|
-
hexByByte[byte] = byte < 16 ? "0" + byte.toString(16) : byte.toString(16);
|
|
11
|
-
}
|
|
12
|
-
hex += hexByByte[byte];
|
|
13
|
-
}
|
|
14
|
-
return hex;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Return a byte array from a number or BigInt
|
|
18
|
-
*/
|
|
19
|
-
export function intToBytes(value, length, endianness = "le") {
|
|
20
|
-
return bigIntToBytes(BigInt(value), length, endianness);
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Convert byte array in LE to integer.
|
|
24
|
-
*/
|
|
25
|
-
export function bytesToInt(value, endianness = "le") {
|
|
26
|
-
return Number(bytesToBigInt(value, endianness));
|
|
27
|
-
}
|
|
28
|
-
export function bigIntToBytes(value, length, endianness = "le") {
|
|
29
|
-
if (endianness === "le") {
|
|
30
|
-
return toBufferLE(value, length);
|
|
31
|
-
}
|
|
32
|
-
if (endianness === "be") {
|
|
33
|
-
return toBufferBE(value, length);
|
|
34
|
-
}
|
|
35
|
-
throw new Error("endianness must be either 'le' or 'be'");
|
|
36
|
-
}
|
|
37
|
-
export function bytesToBigInt(value, endianness = "le") {
|
|
38
|
-
if (!(value instanceof Uint8Array)) {
|
|
39
|
-
throw new TypeError("expected a Uint8Array");
|
|
40
|
-
}
|
|
41
|
-
if (endianness === "le") {
|
|
42
|
-
return toBigIntLE(value);
|
|
43
|
-
}
|
|
44
|
-
if (endianness === "be") {
|
|
45
|
-
return toBigIntBE(value);
|
|
46
|
-
}
|
|
47
|
-
throw new Error("endianness must be either 'le' or 'be'");
|
|
48
|
-
}
|
|
49
|
-
export function formatBytes(bytes) {
|
|
50
|
-
if (bytes < 0) {
|
|
51
|
-
throw new Error("bytes must be a positive number, got " + bytes);
|
|
52
|
-
}
|
|
53
|
-
if (bytes === 0) {
|
|
54
|
-
return "0 Bytes";
|
|
55
|
-
}
|
|
56
|
-
// size of a kb
|
|
57
|
-
const k = 1024;
|
|
58
|
-
// only support up to GB
|
|
59
|
-
const units = ["Bytes", "KB", "MB", "GB"];
|
|
60
|
-
const i = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), units.length - 1);
|
|
61
|
-
const formattedSize = (bytes / Math.pow(k, i)).toFixed(2);
|
|
62
|
-
return `${formattedSize} ${units[i]}`;
|
|
63
|
-
}
|
|
64
|
-
export function xor(a, b) {
|
|
65
|
-
const length = Math.min(a.length, b.length);
|
|
66
|
-
for (let i = 0; i < length; i++) {
|
|
67
|
-
a[i] = a[i] ^ b[i];
|
|
68
|
-
}
|
|
69
|
-
return a;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=bytes.js.map
|
package/lib/bytes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../src/bytes.ts"],"names":[],"mappings":"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"}
|
package/src/bytes/index.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
fromHex as browserFromHex,
|
|
3
|
-
fromHexInto as browserFromHexInto,
|
|
4
|
-
toHex as browserToHex,
|
|
5
|
-
toPubkeyHex as browserToPubkeyHex,
|
|
6
|
-
toRootHex as browserToRootHex,
|
|
7
|
-
} from "./browser.js";
|
|
8
|
-
import {
|
|
9
|
-
fromHex as nodeFromHex,
|
|
10
|
-
toHex as nodeToHex,
|
|
11
|
-
toPubkeyHex as nodeToPubkeyHex,
|
|
12
|
-
toRootHex as nodeToRootHex,
|
|
13
|
-
} from "./nodejs.js";
|
|
14
|
-
|
|
15
|
-
let toHex = browserToHex;
|
|
16
|
-
let toRootHex = browserToRootHex;
|
|
17
|
-
let toPubkeyHex = browserToPubkeyHex;
|
|
18
|
-
let fromHex = browserFromHex;
|
|
19
|
-
// there is no fromHexInto for NodeJs as the performance of browserFromHexInto is >100x faster
|
|
20
|
-
const fromHexInto = browserFromHexInto;
|
|
21
|
-
|
|
22
|
-
if (typeof Buffer !== "undefined") {
|
|
23
|
-
toHex = nodeToHex;
|
|
24
|
-
toRootHex = nodeToRootHex;
|
|
25
|
-
toPubkeyHex = nodeToPubkeyHex;
|
|
26
|
-
fromHex = nodeFromHex;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export {toHex, toRootHex, toPubkeyHex, fromHex, fromHexInto};
|
package/src/bytes.ts
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import {toBigIntBE, toBigIntLE, toBufferBE, toBufferLE} from "bigint-buffer";
|
|
2
|
-
|
|
3
|
-
type Endianness = "le" | "be";
|
|
4
|
-
|
|
5
|
-
const hexByByte: string[] = [];
|
|
6
|
-
/**
|
|
7
|
-
* @deprecated Use toHex() instead.
|
|
8
|
-
*/
|
|
9
|
-
export function toHexString(bytes: Uint8Array): string {
|
|
10
|
-
let hex = "0x";
|
|
11
|
-
for (const byte of bytes) {
|
|
12
|
-
if (!hexByByte[byte]) {
|
|
13
|
-
hexByByte[byte] = byte < 16 ? "0" + byte.toString(16) : byte.toString(16);
|
|
14
|
-
}
|
|
15
|
-
hex += hexByByte[byte];
|
|
16
|
-
}
|
|
17
|
-
return hex;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Return a byte array from a number or BigInt
|
|
22
|
-
*/
|
|
23
|
-
export function intToBytes(value: bigint | number, length: number, endianness: Endianness = "le"): Buffer {
|
|
24
|
-
return bigIntToBytes(BigInt(value), length, endianness);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Convert byte array in LE to integer.
|
|
29
|
-
*/
|
|
30
|
-
export function bytesToInt(value: Uint8Array, endianness: Endianness = "le"): number {
|
|
31
|
-
return Number(bytesToBigInt(value, endianness));
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export function bigIntToBytes(value: bigint, length: number, endianness: Endianness = "le"): Buffer {
|
|
35
|
-
if (endianness === "le") {
|
|
36
|
-
return toBufferLE(value, length);
|
|
37
|
-
}
|
|
38
|
-
if (endianness === "be") {
|
|
39
|
-
return toBufferBE(value, length);
|
|
40
|
-
}
|
|
41
|
-
throw new Error("endianness must be either 'le' or 'be'");
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export function bytesToBigInt(value: Uint8Array, endianness: Endianness = "le"): bigint {
|
|
45
|
-
if (!(value instanceof Uint8Array)) {
|
|
46
|
-
throw new TypeError("expected a Uint8Array");
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (endianness === "le") {
|
|
50
|
-
return toBigIntLE(value as Buffer);
|
|
51
|
-
}
|
|
52
|
-
if (endianness === "be") {
|
|
53
|
-
return toBigIntBE(value as Buffer);
|
|
54
|
-
}
|
|
55
|
-
throw new Error("endianness must be either 'le' or 'be'");
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export function formatBytes(bytes: number): string {
|
|
59
|
-
if (bytes < 0) {
|
|
60
|
-
throw new Error("bytes must be a positive number, got " + bytes);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (bytes === 0) {
|
|
64
|
-
return "0 Bytes";
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// size of a kb
|
|
68
|
-
const k = 1024;
|
|
69
|
-
|
|
70
|
-
// only support up to GB
|
|
71
|
-
const units = ["Bytes", "KB", "MB", "GB"];
|
|
72
|
-
const i = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), units.length - 1);
|
|
73
|
-
const formattedSize = (bytes / Math.pow(k, i)).toFixed(2);
|
|
74
|
-
|
|
75
|
-
return `${formattedSize} ${units[i]}`;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export function xor(a: Uint8Array, b: Uint8Array): Uint8Array {
|
|
79
|
-
const length = Math.min(a.length, b.length);
|
|
80
|
-
for (let i = 0; i < length; i++) {
|
|
81
|
-
a[i] = a[i] ^ b[i];
|
|
82
|
-
}
|
|
83
|
-
return a;
|
|
84
|
-
}
|