@lodestar/utils 1.36.0-dev.f259361847 → 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.
@@ -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"}
@@ -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
@@ -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"}
@@ -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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"}
@@ -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"}
@@ -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
@@ -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
@@ -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 "./bytes/index.js";
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":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
+ export * from "#bytes";
1
2
  export * from "./assert.js";
2
3
  export * from "./base64.js";
3
- export * from "./bytes/index.js";
4
- export * from "./bytes.js";
5
4
  export * from "./command.js";
6
5
  export * from "./diff.js";
7
6
  export * from "./err.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,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"}
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
@@ -1,7 +1,6 @@
1
+ export * from "#bytes";
1
2
  export * from "./assert.js";
2
3
  export * from "./base64.js";
3
- export * from "./bytes/index.js";
4
- export * from "./bytes.js";
5
4
  export * from "./command.js";
6
5
  export * from "./diff.js";
7
6
  export * from "./err.js";
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,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"}
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.f259361847",
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": "45bf6147618a6996859bb0345ba6e09afb2f54df"
68
+ "gitHead": "b411ee6055e18b5509edc469f1af85e67497ec27"
60
69
  }
@@ -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
+ }
@@ -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";
@@ -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 "./bytes/index.js";
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
@@ -1,7 +1,6 @@
1
+ export * from "#bytes";
1
2
  export * from "./assert.js";
2
3
  export * from "./base64.js";
3
- export * from "./bytes/index.js";
4
- export * from "./bytes.js";
5
4
  export * from "./command.js";
6
5
  export * from "./diff.js";
7
6
  export * from "./err.js";
@@ -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
@@ -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"}
@@ -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
@@ -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
@@ -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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"}
@@ -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
- }