@layerzerolabs/common-encoding-utils 0.2.108 → 0.2.110
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/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +65 -2
- package/dist/index.js.map +1 -1
- package/package.json +7 -4
package/dist/index.d.ts
CHANGED
|
@@ -23,10 +23,47 @@ export declare function bytesToHex(bytes: Uint8Array | ArrayBuffer): string;
|
|
|
23
23
|
* @param bytes
|
|
24
24
|
*/
|
|
25
25
|
export declare function bytesToHexPrefixed(bytes: Uint8Array | ArrayBuffer): HexString;
|
|
26
|
+
/**
|
|
27
|
+
* Big-endian `bigint` from a hex string. Empty hex (`''` / `'0x'`) is `0n`.
|
|
28
|
+
* Replaces the inline `BigInt('0x' + ...)` / `BigInt(\`0x${hex}\`)` idiom.
|
|
29
|
+
*/
|
|
30
|
+
export declare function hexToBigInt(hex: string): bigint;
|
|
31
|
+
/**
|
|
32
|
+
* Big-endian `bigint` from bytes. Empty input is `0n`.
|
|
33
|
+
* Replaces the inline `BigInt('0x' + buf.toString('hex'))` idiom.
|
|
34
|
+
*/
|
|
35
|
+
export declare function bytesToBigInt(bytes: Uint8Array | ArrayBuffer): bigint;
|
|
36
|
+
/**
|
|
37
|
+
* Big-endian bytes from a non-negative `bigint`, left-padded to `byteLength`. The inverse of
|
|
38
|
+
* `bytesToBigInt`. Throws on a negative value or one too wide for `byteLength` (via `bigIntToHex` /
|
|
39
|
+
* `hexZeroPad`). Replaces the inline `new BN(v).toBuffer('be', n)` / `writeBigUInt*` idiom.
|
|
40
|
+
*/
|
|
41
|
+
export declare function bigIntToBytes(value: bigint, byteLength: number): Uint8Array;
|
|
42
|
+
/**
|
|
43
|
+
* `0x`-hex from a non-negative `bigint`, optionally left-padded to `byteLength` bytes.
|
|
44
|
+
* Replaces the inline `'0x' + v.toString(16)` (± `padStart`) idiom.
|
|
45
|
+
* Without `byteLength` the output is minimal and may be odd-length (e.g. `0xabc`), which
|
|
46
|
+
* `hexToBytes` rejects — use `bigIntToBytes(value, byteLength)` when you need bytes.
|
|
47
|
+
*/
|
|
48
|
+
export declare function bigIntToHex(value: bigint, byteLength?: number): HexString;
|
|
49
|
+
/**
|
|
50
|
+
* `0x`-hex from a non-negative integer, optionally left-padded to `byteLength` bytes.
|
|
51
|
+
*/
|
|
52
|
+
export declare function numberToHex(value: number, byteLength?: number): HexString;
|
|
53
|
+
/**
|
|
54
|
+
* `number` from a hex string. Throws if the value exceeds `Number.MAX_SAFE_INTEGER`.
|
|
55
|
+
* Replaces the inline `parseInt(hex, 16)` / `Number('0x' + hex)` idiom (which silently
|
|
56
|
+
* lose precision past 2^53).
|
|
57
|
+
*/
|
|
58
|
+
export declare function hexToNumber(hex: string): number;
|
|
26
59
|
export declare function bytesToBase64(bytes: Uint8Array | ArrayBuffer): string;
|
|
27
60
|
export declare function base64ToBytes(base64: string): Uint8Array;
|
|
28
61
|
export declare function hexToBase64(hexString: string): string;
|
|
29
62
|
export declare function base64ToHex(base64String: string): HexString;
|
|
63
|
+
export declare function base58ToBytes(value: string): Uint8Array;
|
|
64
|
+
export declare function bytesToBase58(bytes: Uint8Array | ArrayBuffer): string;
|
|
65
|
+
export declare function base58ToHex(value: string): HexString;
|
|
66
|
+
export declare function hexToBase58(hex: string): string;
|
|
30
67
|
/**
|
|
31
68
|
* Pads a hex string on the left so its length is a multiple of `byteSize`.
|
|
32
69
|
* Used to align hex strings.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AAEvB,MAAM,MAAM,SAAS,GAAG,KAAK,MAAM,EAAE,CAAC;AAMtC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,IAAI,SAAS,CAQ3E;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAUnE;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAEvD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAS7D;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAE7D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiB9C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAIlD;AAOD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CAIlE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAE7E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CAGrE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAE3E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAMzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAMzE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CAIrE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAExD;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAsBrD;AAED,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAK3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAMvD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CAErE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAEpD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAqBD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAI,EAAE,OAAO,SAAM,UAGnE"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { ByteCodec } from './W226MSRV.js';
|
|
2
2
|
export { uuidFromBytes } from './H7YTV4XS.js';
|
|
3
3
|
import { __name } from './VUOMXK5T.js';
|
|
4
|
+
import bs58 from 'bs58';
|
|
4
5
|
|
|
5
|
-
// src/index.ts
|
|
6
6
|
var base58regex = /^[A-HJ-NP-Za-km-z1-9]*$/;
|
|
7
7
|
var base64regex = /^[A-Za-z0-9+/]*={0,2}$/;
|
|
8
8
|
var hexStringRegex = /^(0x)?[0-9A-Fa-f]*$/;
|
|
@@ -81,6 +81,10 @@ function hexToBytes(hex) {
|
|
|
81
81
|
return Uint8Array.from(Buffer.from(value.padStart(len, "0"), "hex"));
|
|
82
82
|
}
|
|
83
83
|
__name(hexToBytes, "hexToBytes");
|
|
84
|
+
function asUint8Array(bytes) {
|
|
85
|
+
return bytes instanceof ArrayBuffer ? new Uint8Array(bytes) : bytes;
|
|
86
|
+
}
|
|
87
|
+
__name(asUint8Array, "asUint8Array");
|
|
84
88
|
function bytesToHex(bytes) {
|
|
85
89
|
return Buffer.from(bytes instanceof ArrayBuffer ? new Uint8Array(bytes) : bytes).toString("hex");
|
|
86
90
|
}
|
|
@@ -89,6 +93,46 @@ function bytesToHexPrefixed(bytes) {
|
|
|
89
93
|
return ensure0xPrefixed(bytesToHex(bytes));
|
|
90
94
|
}
|
|
91
95
|
__name(bytesToHexPrefixed, "bytesToHexPrefixed");
|
|
96
|
+
function hexToBigInt(hex) {
|
|
97
|
+
if (!isHexString(hex)) {
|
|
98
|
+
throw new Error(`invalid hex string (length ${hex.length})`);
|
|
99
|
+
}
|
|
100
|
+
const body = trim0x(hex);
|
|
101
|
+
return body === "" ? 0n : BigInt(`0x${body}`);
|
|
102
|
+
}
|
|
103
|
+
__name(hexToBigInt, "hexToBigInt");
|
|
104
|
+
function bytesToBigInt(bytes) {
|
|
105
|
+
const hex = bytesToHex(bytes);
|
|
106
|
+
return hex === "" ? 0n : BigInt(`0x${hex}`);
|
|
107
|
+
}
|
|
108
|
+
__name(bytesToBigInt, "bytesToBigInt");
|
|
109
|
+
function bigIntToBytes(value, byteLength) {
|
|
110
|
+
return hexToBytes(bigIntToHex(value, byteLength));
|
|
111
|
+
}
|
|
112
|
+
__name(bigIntToBytes, "bigIntToBytes");
|
|
113
|
+
function bigIntToHex(value, byteLength) {
|
|
114
|
+
if (value < 0n) {
|
|
115
|
+
throw new Error("cannot hex-encode a negative value");
|
|
116
|
+
}
|
|
117
|
+
const hex = ensure0xPrefixed(value.toString(16));
|
|
118
|
+
return byteLength === void 0 ? hex : hexZeroPad(hex, byteLength);
|
|
119
|
+
}
|
|
120
|
+
__name(bigIntToHex, "bigIntToHex");
|
|
121
|
+
function numberToHex(value, byteLength) {
|
|
122
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
123
|
+
throw new Error("cannot hex-encode value: expected a non-negative safe integer");
|
|
124
|
+
}
|
|
125
|
+
return bigIntToHex(BigInt(value), byteLength);
|
|
126
|
+
}
|
|
127
|
+
__name(numberToHex, "numberToHex");
|
|
128
|
+
function hexToNumber(hex) {
|
|
129
|
+
const value = hexToBigInt(hex);
|
|
130
|
+
if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
131
|
+
throw new Error(`hex value exceeds Number.MAX_SAFE_INTEGER (length ${hex.length})`);
|
|
132
|
+
}
|
|
133
|
+
return Number(value);
|
|
134
|
+
}
|
|
135
|
+
__name(hexToNumber, "hexToNumber");
|
|
92
136
|
function bytesToBase64(bytes) {
|
|
93
137
|
return Buffer.from(bytes instanceof ArrayBuffer ? new Uint8Array(bytes) : bytes).toString("base64");
|
|
94
138
|
}
|
|
@@ -120,6 +164,25 @@ function base64ToHex(base64String) {
|
|
|
120
164
|
return `0x${Buffer.from(base64String, "base64").toString("hex")}`;
|
|
121
165
|
}
|
|
122
166
|
__name(base64ToHex, "base64ToHex");
|
|
167
|
+
function base58ToBytes(value) {
|
|
168
|
+
if (!isBase58(value)) {
|
|
169
|
+
throw new Error(`invalid base58 string (length ${value.length})`);
|
|
170
|
+
}
|
|
171
|
+
return bs58.decode(value);
|
|
172
|
+
}
|
|
173
|
+
__name(base58ToBytes, "base58ToBytes");
|
|
174
|
+
function bytesToBase58(bytes) {
|
|
175
|
+
return bs58.encode(asUint8Array(bytes));
|
|
176
|
+
}
|
|
177
|
+
__name(bytesToBase58, "bytesToBase58");
|
|
178
|
+
function base58ToHex(value) {
|
|
179
|
+
return bytesToHexPrefixed(base58ToBytes(value));
|
|
180
|
+
}
|
|
181
|
+
__name(base58ToHex, "base58ToHex");
|
|
182
|
+
function hexToBase58(hex) {
|
|
183
|
+
return bytesToBase58(hexToBytes(hex));
|
|
184
|
+
}
|
|
185
|
+
__name(hexToBase58, "hexToBase58");
|
|
123
186
|
function padString(str, length, left, padding = "0") {
|
|
124
187
|
const diff = length - str.length;
|
|
125
188
|
let result = str;
|
|
@@ -146,6 +209,6 @@ function padAlignHex(str, byteSize = 8, padding = "0") {
|
|
|
146
209
|
}
|
|
147
210
|
__name(padAlignHex, "padAlignHex");
|
|
148
211
|
|
|
149
|
-
export { base64ToBytes, base64ToHex, bytesToBase64, bytesToHex, bytesToHexPrefixed, ensure0xPrefixed, hexToAscii, hexToBase64, hexToBytes, hexToUint8Array, hexZeroPad, isBase58, isBase64, isHexString, padAlignHex, stringToUint8Array, trim0x, trimLeadingZeros };
|
|
212
|
+
export { base58ToBytes, base58ToHex, base64ToBytes, base64ToHex, bigIntToBytes, bigIntToHex, bytesToBase58, bytesToBase64, bytesToBigInt, bytesToHex, bytesToHexPrefixed, ensure0xPrefixed, hexToAscii, hexToBase58, hexToBase64, hexToBigInt, hexToBytes, hexToNumber, hexToUint8Array, hexZeroPad, isBase58, isBase64, isHexString, numberToHex, padAlignHex, stringToUint8Array, trim0x, trimLeadingZeros };
|
|
150
213
|
//# sourceMappingURL=index.js.map
|
|
151
214
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["base58regex","base64regex","hexStringRegex","isBase58","address","test","isBase64","isHexString","value","length","match","hexZeroPad","Error","trim0x","padStart","str","replace","ensure0xPrefixed","trimLeadingZeros","hexString","withoutPrefix","hexToUint8Array","Uint8Array","from","Buffer","hexToAscii","hex","i","l","startsWith","code","parseInt","slice","String","fromCharCode","stringToUint8Array","len","hexToBytes","bytesToHex","bytes","ArrayBuffer","toString","bytesToHexPrefixed","bytesToBase64","base64ToBytes","base64","hexToBase64","substr","base64String","base64ToHex","padString","left","padding","diff","result","pad","repeat","padLeft","calcByteLength","byteSize","remainder","padAlignHex","trimmed"],"mappings":";;;;;AAKA,IAAMA,WAAAA,GAAc,yBAAA;AACpB,IAAMC,WAAAA,GAAc,wBAAA;AACpB,IAAMC,cAAAA,GAAiB,qBAAA;AAEhB,SAASC,SAASC,OAAAA,EAAe;AACpC,EAAA,OAAOJ,WAAAA,CAAYK,KAAKD,OAAAA,CAAAA;AAC5B;AAFgBD,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA;AAIT,SAASG,SAASF,OAAAA,EAAe;AACpC,EAAA,OAAOH,WAAAA,CAAYI,KAAKD,OAAAA,CAAAA;AAC5B;AAFgBE,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA;AAIT,SAASC,WAAAA,CAAYC,OAAYC,MAAAA,EAAe;AACnD,EAAA,IAAI,OAAOD,KAAAA,KAAU,QAAA,IAAY,CAACA,KAAAA,CAAME,KAAAA,CAAMR,cAAAA,CAAAA,EAAiB;AAC3D,IAAA,OAAO,KAAA;AACX,EAAA;AACA,EAAA,IAAIO,MAAAA,IAAUD,KAAAA,CAAMC,MAAAA,KAAW,CAAA,GAAI,IAAIA,MAAAA,EAAQ;AAC3C,IAAA,OAAO,KAAA;AACX,EAAA;AACA,EAAA,OAAO,IAAA;AACX;AARgBF,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA;AAUT,SAASI,UAAAA,CAAWH,OAAeC,MAAAA,EAAc;AACpD,EAAA,IAAI,CAACF,WAAAA,CAAYC,KAAAA,CAAAA,EAAQ;AACrB,IAAA,MAAM,IAAII,KAAAA,CAAM,CAAA,oBAAA,EAAuBJ,KAAAA,CAAAA,CAAO,CAAA;AAClD,EAAA;AAEA,EAAA,IAAIA,KAAAA,CAAMC,MAAAA,GAAS,CAAA,GAAIA,MAAAA,GAAS,CAAA,EAAG;AAC/B,IAAA,MAAM,IAAIG,MAAM,oBAAA,CAAA;AACpB,EAAA;AAEA,EAAA,OAAO,CAAA,EAAA,EAAKC,OAAOL,KAAAA,CAAAA,CAAOM,SAAS,CAAA,GAAIL,MAAAA,EAAQ,GAAA,CAAA,CAAA,CAAA;AACnD;AAVgBE,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAYT,SAASE,OAAOE,GAAAA,EAAW;AAC9B,EAAA,OAAOA,GAAAA,CAAIC,OAAAA,CAAQ,KAAA,EAAO,EAAA,CAAA;AAC9B;AAFgBH,MAAAA,CAAAA,MAAAA,EAAAA,QAAAA,CAAAA;AAIT,SAASI,iBAAiBF,GAAAA,EAAW;AACxC,EAAA,OAAO,CAAA,EAAA,EAAKF,MAAAA,CAAOE,GAAAA,CAAAA,CAAAA,CAAAA;AACvB;AAFgBE,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA;AAIT,SAASC,iBAAiBC,SAAAA,EAAiB;AAE9C,EAAA,IAAIC,aAAAA,GAAgBP,OAAOM,SAAAA,CAAAA;AAG3BC,EAAAA,aAAAA,GAAgBA,aAAAA,CAAcJ,OAAAA,CAAQ,KAAA,EAAO,EAAA,CAAA;AAG7C,EAAA,OAAOC,iBAAiBG,aAAAA,CAAAA;AAC5B;AATgBF,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA;AAWT,SAASG,gBAAgBF,SAAAA,EAAiB;AAC7C,EAAA,OAAOG,UAAAA,CAAWC,KAAKC,MAAAA,CAAOD,IAAAA,CAAKV,OAAOM,SAAAA,CAAAA,EAAY,KAAA,CAAA,CAAA;AAC1D;AAFgBE,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA;AAIT,SAASI,WAAWC,GAAAA,EAAW;AAClC,EAAA,IAAI,CAACnB,WAAAA,CAAYmB,GAAAA,CAAAA,EAAM;AACnB,IAAA,MAAM,IAAId,KAAAA,CAAM,CAAA,mBAAA,EAAsBc,GAAAA,CAAAA,CAAK,CAAA;AAC/C,EAAA;AAEA,EAAA,IAAIX,GAAAA,GAAM,EAAA;AACV,EAAA,IAAIY,CAAAA,GAAI,CAAA;AACR,EAAA,MAAMC,IAAIF,GAAAA,CAAIjB,MAAAA;AACd,EAAA,IAAIiB,GAAAA,CAAIG,UAAAA,CAAW,IAAA,CAAA,EAAO;AACtBF,IAAAA,CAAAA,GAAI,CAAA;AACR,EAAA;AACA,EAAA,OAAOA,CAAAA,GAAIC,CAAAA,EAAGD,CAAAA,IAAK,CAAA,EAAG;AAClB,IAAA,MAAMG,IAAAA,GAAOC,SAASL,GAAAA,CAAIM,KAAAA,CAAML,GAAGA,CAAAA,GAAI,CAAA,GAAI,EAAA,CAAA;AAC3CZ,IAAAA,GAAAA,IAAOkB,MAAAA,CAAOC,aAAaJ,IAAAA,CAAAA;AAC/B,EAAA;AAEA,EAAA,OAAOf,GAAAA;AACX;AAjBgBU,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAmBT,SAASU,mBAAmBpB,GAAAA,EAAW;AAC1C,EAAA,MAAMP,KAAAA,GAAQO,GAAAA,CAAIC,OAAAA,CAAQ,MAAA,EAAQ,EAAA,CAAA;AAClC,EAAA,MAAMoB,MAAM5B,KAAAA,CAAMC,MAAAA,GAAS,CAAA,GAAA,CAAMD,KAAAA,CAAMC,SAAS,CAAA,IAAK,CAAA;AACrD,EAAA,OAAOa,UAAAA,CAAWC,IAAAA,CAAKC,MAAAA,CAAOD,IAAAA,CAAKf,KAAAA,CAAMM,SAASsB,GAAAA,EAAK,GAAA,CAAA,EAAM,KAAA,CAAA,CAAA;AACjE;AAJgBD,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAWT,SAASE,WAAWX,GAAAA,EAAW;AAClC,EAAA,MAAMlB,KAAAA,GAAQkB,GAAAA,CAAIV,OAAAA,CAAQ,MAAA,EAAQ,EAAA,CAAA;AAClC,EAAA,MAAMoB,MAAM5B,KAAAA,CAAMC,MAAAA,GAAS,CAAA,GAAA,CAAMD,KAAAA,CAAMC,SAAS,CAAA,IAAK,CAAA;AACrD,EAAA,OAAOa,UAAAA,CAAWC,IAAAA,CAAKC,MAAAA,CAAOD,IAAAA,CAAKf,KAAAA,CAAMM,SAASsB,GAAAA,EAAK,GAAA,CAAA,EAAM,KAAA,CAAA,CAAA;AACjE;AAJgBC,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAMT,SAASC,WAAWC,KAAAA,EAA+B;AACtD,EAAA,OAAOf,MAAAA,CAAOD,IAAAA,CAAKgB,KAAAA,YAAiBC,WAAAA,GAAc,IAAIlB,UAAAA,CAAWiB,KAAAA,CAAAA,GAASA,KAAAA,CAAAA,CAAOE,QAAAA,CAC7E,KAAA,CAAA;AAER;AAJgBH,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAUT,SAASI,mBAAmBH,KAAAA,EAA+B;AAC9D,EAAA,OAAOtB,gBAAAA,CAAiBqB,UAAAA,CAAWC,KAAAA,CAAAA,CAAAA;AACvC;AAFgBG,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAIT,SAASC,cAAcJ,KAAAA,EAA+B;AACzD,EAAA,OAAOf,MAAAA,CAAOD,IAAAA,CAAKgB,KAAAA,YAAiBC,WAAAA,GAAc,IAAIlB,UAAAA,CAAWiB,KAAAA,CAAAA,GAASA,KAAAA,CAAAA,CAAOE,QAAAA,CAC7E,QAAA,CAAA;AAER;AAJgBE,MAAAA,CAAAA,aAAAA,EAAAA,eAAAA,CAAAA;AAMT,SAASC,cAAcC,MAAAA,EAAc;AACxC,EAAA,OAAOvB,WAAWC,IAAAA,CAAKC,MAAAA,CAAOD,IAAAA,CAAKsB,MAAAA,EAAQ,QAAA,CAAA,CAAA;AAC/C;AAFgBD,MAAAA,CAAAA,aAAAA,EAAAA,eAAAA,CAAAA;AAIT,SAASE,YAAY3B,SAAAA,EAAiB;AACzC,EAAA,MAAMO,GAAAA,GAAMb,OAAOM,SAAAA,CAAAA;AAEnB,EAAA,IAAI,CAAC,gBAAA,CAAiBd,IAAAA,CAAKqB,GAAAA,CAAAA,EAAM;AAC7B,IAAA,MAAM,IAAId,KAAAA,CAAM,CAAA,oBAAA,EAAuBO,SAAAA,CAAAA,CAAW,CAAA;AACtD,EAAA;AAGA,EAAA,IAAIO,GAAAA,CAAIjB,MAAAA,GAAS,CAAA,KAAM,CAAA,EAAG;AACtB,IAAA,MAAM,IAAIG,MAAM,qCAAA,CAAA;AACpB,EAAA;AAGA,EAAA,MAAM2B,KAAAA,GAAQ,IAAIjB,UAAAA,CAAWI,GAAAA,CAAIjB,SAAS,CAAA,CAAA;AAC1C,EAAA,KAAA,IAASkB,IAAI,CAAA,EAAGA,CAAAA,GAAID,GAAAA,CAAIjB,MAAAA,EAAQkB,KAAK,CAAA,EAAG;AACpCY,IAAAA,KAAAA,CAAMZ,CAAAA,GAAI,CAAA,CAAA,GAAKI,QAAAA,CAASL,IAAIqB,MAAAA,CAAOpB,CAAAA,EAAG,CAAA,CAAA,EAAI,EAAA,CAAA;AAC9C,EAAA;AAGA,EAAA,MAAMqB,eAAexB,MAAAA,CAAOD,IAAAA,CAAKgB,KAAAA,CAAAA,CAAOE,SAAS,QAAA,CAAA;AAEjD,EAAA,OAAOO,YAAAA;AACX;AAtBgBF,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA;AAwBT,SAASG,YAAYD,YAAAA,EAAoB;AAC5C,EAAA,IAAI,CAAC,mBAAA,CAAoB3C,IAAAA,CAAK2C,YAAAA,CAAAA,EAAe;AACzC,IAAA,MAAM,IAAIpC,KAAAA,CAAM,CAAA,uBAAA,EAA0BoC,YAAAA,CAAAA,CAAc,CAAA;AAC5D,EAAA;AACA,EAAA,OAAO,CAAA,EAAA,EAAKxB,OAAOD,IAAAA,CAAKyB,YAAAA,EAAc,QAAA,CAAA,CAAUP,QAAAA,CAAS,KAAA,CAAA,CAAA,CAAA;AAC7D;AALgBQ,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA;AAOhB,SAASC,SAAAA,CAAUnC,GAAAA,EAAaN,MAAAA,EAAgB0C,IAAAA,EAAeC,UAAU,GAAA,EAAG;AACxE,EAAA,MAAMC,IAAAA,GAAO5C,SAASM,GAAAA,CAAIN,MAAAA;AAC1B,EAAA,IAAI6C,MAAAA,GAASvC,GAAAA;AACb,EAAA,IAAIsC,OAAO,CAAA,EAAG;AACV,IAAA,MAAME,GAAAA,GAAMH,OAAAA,CAAQI,MAAAA,CAAOH,IAAAA,CAAAA;AAC3BC,IAAAA,MAAAA,GAASH,IAAAA,GAAOI,GAAAA,GAAMxC,GAAAA,GAAMA,GAAAA,GAAMwC,GAAAA;AACtC,EAAA;AACA,EAAA,OAAOD,MAAAA;AACX;AARSJ,MAAAA,CAAAA,SAAAA,EAAAA,WAAAA,CAAAA;AAUT,SAASO,OAAAA,CAAQ1C,GAAAA,EAAaN,MAAAA,EAAgB2C,OAAAA,GAAU,GAAA,EAAG;AACvD,EAAA,OAAOF,SAAAA,CAAUnC,GAAAA,EAAKN,MAAAA,EAAQ,IAAA,EAAM2C,OAAAA,CAAAA;AACxC;AAFSK,MAAAA,CAAAA,OAAAA,EAAAA,SAAAA,CAAAA;AAGT,SAASC,cAAAA,CAAe3C,GAAAA,EAAa4C,QAAAA,GAAW,CAAA,EAAC;AAC7C,EAAA,MAAM,EAAElD,QAAM,GAAKM,GAAAA;AACnB,EAAA,MAAM6C,YAAYnD,MAAAA,GAASkD,QAAAA;AAC3B,EAAA,OAAOC,SAAAA,GAAAA,CAAcnD,MAAAA,GAASmD,SAAAA,IAAaD,QAAAA,GAAYA,WAAWA,QAAAA,GAAWlD,MAAAA;AACjF;AAJSiD,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAcF,SAASG,WAAAA,CAAY9C,GAAAA,EAAa4C,QAAAA,GAAW,CAAA,EAAGP,UAAU,GAAA,EAAG;AAChE,EAAA,MAAMU,OAAAA,GAAUjD,OAAOE,GAAAA,CAAAA;AACvB,EAAA,OAAO0C,QAAQK,OAAAA,EAASJ,cAAAA,CAAeI,OAAAA,EAASH,QAAAA,GAAWP,OAAAA,CAAAA;AAC/D;AAHgBS,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA","file":"index.js","sourcesContent":["export * from './byte-codec';\nexport * from './uuid';\n\nexport type HexString = `0x${string}`;\n\nconst base58regex = /^[A-HJ-NP-Za-km-z1-9]*$/;\nconst base64regex = /^[A-Za-z0-9+/]*={0,2}$/;\nconst hexStringRegex = /^(0x)?[0-9A-Fa-f]*$/;\n\nexport function isBase58(address: string): boolean {\n return base58regex.test(address);\n}\n\nexport function isBase64(address: string): boolean {\n return base64regex.test(address);\n}\n\nexport function isHexString(value: any, length?: number): value is HexString {\n if (typeof value !== 'string' || !value.match(hexStringRegex)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\n\nexport function hexZeroPad(value: string, length: number): HexString {\n if (!isHexString(value)) {\n throw new Error(`invalid hex string: ${value}`);\n }\n\n if (value.length > 2 * length + 2) {\n throw new Error('value out of range');\n }\n\n return `0x${trim0x(value).padStart(2 * length, '0')}`;\n}\n\nexport function trim0x(str: string): string {\n return str.replace(/^0x/, '');\n}\n\nexport function ensure0xPrefixed(str: string): HexString {\n return `0x${trim0x(str)}`;\n}\n\nexport function trimLeadingZeros(hexString: string): HexString {\n // Remove the '0x' prefix\n let withoutPrefix = trim0x(hexString);\n\n // Trim leading zeros\n withoutPrefix = withoutPrefix.replace(/^0+/, '');\n\n // Add back the '0x' prefix\n return ensure0xPrefixed(withoutPrefix);\n}\n\nexport function hexToUint8Array(hexString: string): Uint8Array {\n return Uint8Array.from(Buffer.from(trim0x(hexString), 'hex'));\n}\n\nexport function hexToAscii(hex: string): string {\n if (!isHexString(hex)) {\n throw new Error(`Invalid hex string ${hex}`);\n }\n\n let str = '';\n let i = 0;\n const l = hex.length;\n if (hex.startsWith('0x')) {\n i = 2;\n }\n for (; i < l; i += 2) {\n const code = parseInt(hex.slice(i, i + 2), 16);\n str += String.fromCharCode(code);\n }\n\n return str;\n}\n\nexport function stringToUint8Array(str: string): Uint8Array {\n const value = str.replace(/^0x/i, '');\n const len = value.length + 1 - ((value.length + 1) % 2);\n return Uint8Array.from(Buffer.from(value.padStart(len, '0'), 'hex'));\n}\n\n/**\n * A function to convert hex string to Uint8Array (not prefixed)\n * @param hex hex string\n * @returns Uint8Array\n */\nexport function hexToBytes(hex: string): Uint8Array {\n const value = hex.replace(/^0x/i, '');\n const len = value.length + 1 - ((value.length + 1) % 2);\n return Uint8Array.from(Buffer.from(value.padStart(len, '0'), 'hex'));\n}\n\nexport function bytesToHex(bytes: Uint8Array | ArrayBuffer): string {\n return Buffer.from(bytes instanceof ArrayBuffer ? new Uint8Array(bytes) : bytes).toString(\n 'hex',\n );\n}\n\n/**\n * 0x prefixed hex string from Uint8Array\n * @param bytes\n */\nexport function bytesToHexPrefixed(bytes: Uint8Array | ArrayBuffer): HexString {\n return ensure0xPrefixed(bytesToHex(bytes));\n}\n\nexport function bytesToBase64(bytes: Uint8Array | ArrayBuffer): string {\n return Buffer.from(bytes instanceof ArrayBuffer ? new Uint8Array(bytes) : bytes).toString(\n 'base64',\n );\n}\n\nexport function base64ToBytes(base64: string): Uint8Array {\n return Uint8Array.from(Buffer.from(base64, 'base64'));\n}\n\nexport function hexToBase64(hexString: string): string {\n const hex = trim0x(hexString);\n // Validate that the input is a valid hex string\n if (!/^[0-9a-fA-F]+$/.test(hex)) {\n throw new Error(`Invalid hex string: ${hexString}`);\n }\n\n // Ensure the hex string has an even length\n if (hex.length % 2 !== 0) {\n throw new Error('Hex string must have an even length');\n }\n\n // Convert hex string to a byte array\n const bytes = new Uint8Array(hex.length / 2);\n for (let i = 0; i < hex.length; i += 2) {\n bytes[i / 2] = parseInt(hex.substr(i, 2), 16);\n }\n\n // Convert the byte array to a base64 string\n const base64String = Buffer.from(bytes).toString('base64');\n\n return base64String;\n}\n\nexport function base64ToHex(base64String: string): HexString {\n if (!/^[A-Za-z0-9+/=]*$/.test(base64String)) {\n throw new Error(`Invalid base64 string: ${base64String}`);\n }\n return `0x${Buffer.from(base64String, 'base64').toString('hex')}`;\n}\n\nfunction padString(str: string, length: number, left: boolean, padding = '0') {\n const diff = length - str.length;\n let result = str;\n if (diff > 0) {\n const pad = padding.repeat(diff);\n result = left ? pad + str : str + pad;\n }\n return result;\n}\n\nfunction padLeft(str: string, length: number, padding = '0') {\n return padString(str, length, true, padding);\n}\nfunction calcByteLength(str: string, byteSize = 8) {\n const { length } = str;\n const remainder = length % byteSize;\n return remainder ? ((length - remainder) / byteSize) * byteSize + byteSize : length;\n}\n\n/**\n * Pads a hex string on the left so its length is a multiple of `byteSize`.\n * Used to align hex strings.\n * @param str Hex string.\n * @param byteSize Group size to align to, in hex chars (default: 8).\n * @param padding Left-pad character (default: '0').\n * @returns Hex string left-padded to a multiple of `byteSize`.\n */\nexport function padAlignHex(str: string, byteSize = 8, padding = '0') {\n const trimmed = trim0x(str);\n return padLeft(trimmed, calcByteLength(trimmed, byteSize), padding);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["base58regex","base64regex","hexStringRegex","isBase58","address","test","isBase64","isHexString","value","length","match","hexZeroPad","Error","trim0x","padStart","str","replace","ensure0xPrefixed","trimLeadingZeros","hexString","withoutPrefix","hexToUint8Array","Uint8Array","from","Buffer","hexToAscii","hex","i","l","startsWith","code","parseInt","slice","String","fromCharCode","stringToUint8Array","len","hexToBytes","asUint8Array","bytes","ArrayBuffer","bytesToHex","toString","bytesToHexPrefixed","hexToBigInt","body","BigInt","bytesToBigInt","bigIntToBytes","byteLength","bigIntToHex","undefined","numberToHex","Number","isSafeInteger","hexToNumber","MAX_SAFE_INTEGER","bytesToBase64","base64ToBytes","base64","hexToBase64","substr","base64String","base64ToHex","base58ToBytes","bs58","decode","bytesToBase58","encode","base58ToHex","hexToBase58","padString","left","padding","diff","result","pad","repeat","padLeft","calcByteLength","byteSize","remainder","padAlignHex","trimmed"],"mappings":"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","file":"index.js","sourcesContent":["import bs58 from 'bs58';\n\nexport * from './byte-codec';\nexport * from './uuid';\n\nexport type HexString = `0x${string}`;\n\nconst base58regex = /^[A-HJ-NP-Za-km-z1-9]*$/;\nconst base64regex = /^[A-Za-z0-9+/]*={0,2}$/;\nconst hexStringRegex = /^(0x)?[0-9A-Fa-f]*$/;\n\nexport function isBase58(address: string): boolean {\n return base58regex.test(address);\n}\n\nexport function isBase64(address: string): boolean {\n return base64regex.test(address);\n}\n\nexport function isHexString(value: any, length?: number): value is HexString {\n if (typeof value !== 'string' || !value.match(hexStringRegex)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\n\nexport function hexZeroPad(value: string, length: number): HexString {\n if (!isHexString(value)) {\n throw new Error(`invalid hex string: ${value}`);\n }\n\n if (value.length > 2 * length + 2) {\n throw new Error('value out of range');\n }\n\n return `0x${trim0x(value).padStart(2 * length, '0')}`;\n}\n\nexport function trim0x(str: string): string {\n return str.replace(/^0x/, '');\n}\n\nexport function ensure0xPrefixed(str: string): HexString {\n return `0x${trim0x(str)}`;\n}\n\nexport function trimLeadingZeros(hexString: string): HexString {\n // Remove the '0x' prefix\n let withoutPrefix = trim0x(hexString);\n\n // Trim leading zeros\n withoutPrefix = withoutPrefix.replace(/^0+/, '');\n\n // Add back the '0x' prefix\n return ensure0xPrefixed(withoutPrefix);\n}\n\nexport function hexToUint8Array(hexString: string): Uint8Array {\n return Uint8Array.from(Buffer.from(trim0x(hexString), 'hex'));\n}\n\nexport function hexToAscii(hex: string): string {\n if (!isHexString(hex)) {\n throw new Error(`Invalid hex string ${hex}`);\n }\n\n let str = '';\n let i = 0;\n const l = hex.length;\n if (hex.startsWith('0x')) {\n i = 2;\n }\n for (; i < l; i += 2) {\n const code = parseInt(hex.slice(i, i + 2), 16);\n str += String.fromCharCode(code);\n }\n\n return str;\n}\n\nexport function stringToUint8Array(str: string): Uint8Array {\n const value = str.replace(/^0x/i, '');\n const len = value.length + 1 - ((value.length + 1) % 2);\n return Uint8Array.from(Buffer.from(value.padStart(len, '0'), 'hex'));\n}\n\n/**\n * A function to convert hex string to Uint8Array (not prefixed)\n * @param hex hex string\n * @returns Uint8Array\n */\nexport function hexToBytes(hex: string): Uint8Array {\n const value = hex.replace(/^0x/i, '');\n const len = value.length + 1 - ((value.length + 1) % 2);\n return Uint8Array.from(Buffer.from(value.padStart(len, '0'), 'hex'));\n}\n\n// Buffer.from copies a Uint8Array but reinterprets an ArrayBuffer's bytes; normalize to bytes first.\nfunction asUint8Array(bytes: Uint8Array | ArrayBuffer): Uint8Array {\n return bytes instanceof ArrayBuffer ? new Uint8Array(bytes) : bytes;\n}\n\nexport function bytesToHex(bytes: Uint8Array | ArrayBuffer): string {\n return Buffer.from(bytes instanceof ArrayBuffer ? new Uint8Array(bytes) : bytes).toString(\n 'hex',\n );\n}\n\n/**\n * 0x prefixed hex string from Uint8Array\n * @param bytes\n */\nexport function bytesToHexPrefixed(bytes: Uint8Array | ArrayBuffer): HexString {\n return ensure0xPrefixed(bytesToHex(bytes));\n}\n\n/**\n * Big-endian `bigint` from a hex string. Empty hex (`''` / `'0x'`) is `0n`.\n * Replaces the inline `BigInt('0x' + ...)` / `BigInt(\\`0x${hex}\\`)` idiom.\n */\nexport function hexToBigInt(hex: string): bigint {\n if (!isHexString(hex)) {\n throw new Error(`invalid hex string (length ${hex.length})`);\n }\n const body = trim0x(hex);\n return body === '' ? 0n : BigInt(`0x${body}`);\n}\n\n/**\n * Big-endian `bigint` from bytes. Empty input is `0n`.\n * Replaces the inline `BigInt('0x' + buf.toString('hex'))` idiom.\n */\nexport function bytesToBigInt(bytes: Uint8Array | ArrayBuffer): bigint {\n const hex = bytesToHex(bytes);\n return hex === '' ? 0n : BigInt(`0x${hex}`);\n}\n\n/**\n * Big-endian bytes from a non-negative `bigint`, left-padded to `byteLength`. The inverse of\n * `bytesToBigInt`. Throws on a negative value or one too wide for `byteLength` (via `bigIntToHex` /\n * `hexZeroPad`). Replaces the inline `new BN(v).toBuffer('be', n)` / `writeBigUInt*` idiom.\n */\nexport function bigIntToBytes(value: bigint, byteLength: number): Uint8Array {\n return hexToBytes(bigIntToHex(value, byteLength));\n}\n\n/**\n * `0x`-hex from a non-negative `bigint`, optionally left-padded to `byteLength` bytes.\n * Replaces the inline `'0x' + v.toString(16)` (± `padStart`) idiom.\n * Without `byteLength` the output is minimal and may be odd-length (e.g. `0xabc`), which\n * `hexToBytes` rejects — use `bigIntToBytes(value, byteLength)` when you need bytes.\n */\nexport function bigIntToHex(value: bigint, byteLength?: number): HexString {\n if (value < 0n) {\n throw new Error('cannot hex-encode a negative value');\n }\n const hex = ensure0xPrefixed(value.toString(16));\n return byteLength === undefined ? hex : hexZeroPad(hex, byteLength);\n}\n\n/**\n * `0x`-hex from a non-negative integer, optionally left-padded to `byteLength` bytes.\n */\nexport function numberToHex(value: number, byteLength?: number): HexString {\n // isSafeInteger (not isInteger): reject unsafe ints rather than encode a rounded value.\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new Error('cannot hex-encode value: expected a non-negative safe integer');\n }\n return bigIntToHex(BigInt(value), byteLength);\n}\n\n/**\n * `number` from a hex string. Throws if the value exceeds `Number.MAX_SAFE_INTEGER`.\n * Replaces the inline `parseInt(hex, 16)` / `Number('0x' + hex)` idiom (which silently\n * lose precision past 2^53).\n */\nexport function hexToNumber(hex: string): number {\n const value = hexToBigInt(hex);\n if (value > BigInt(Number.MAX_SAFE_INTEGER)) {\n throw new Error(`hex value exceeds Number.MAX_SAFE_INTEGER (length ${hex.length})`);\n }\n return Number(value);\n}\n\nexport function bytesToBase64(bytes: Uint8Array | ArrayBuffer): string {\n return Buffer.from(bytes instanceof ArrayBuffer ? new Uint8Array(bytes) : bytes).toString(\n 'base64',\n );\n}\n\nexport function base64ToBytes(base64: string): Uint8Array {\n return Uint8Array.from(Buffer.from(base64, 'base64'));\n}\n\nexport function hexToBase64(hexString: string): string {\n const hex = trim0x(hexString);\n // Validate that the input is a valid hex string\n if (!/^[0-9a-fA-F]+$/.test(hex)) {\n throw new Error(`Invalid hex string: ${hexString}`);\n }\n\n // Ensure the hex string has an even length\n if (hex.length % 2 !== 0) {\n throw new Error('Hex string must have an even length');\n }\n\n // Convert hex string to a byte array\n const bytes = new Uint8Array(hex.length / 2);\n for (let i = 0; i < hex.length; i += 2) {\n bytes[i / 2] = parseInt(hex.substr(i, 2), 16);\n }\n\n // Convert the byte array to a base64 string\n const base64String = Buffer.from(bytes).toString('base64');\n\n return base64String;\n}\n\nexport function base64ToHex(base64String: string): HexString {\n if (!/^[A-Za-z0-9+/=]*$/.test(base64String)) {\n throw new Error(`Invalid base64 string: ${base64String}`);\n }\n return `0x${Buffer.from(base64String, 'base64').toString('hex')}`;\n}\n\nexport function base58ToBytes(value: string): Uint8Array {\n if (!isBase58(value)) {\n // Length only, never the value (consistent with the hex decoders).\n throw new Error(`invalid base58 string (length ${value.length})`);\n }\n return bs58.decode(value);\n}\n\nexport function bytesToBase58(bytes: Uint8Array | ArrayBuffer): string {\n return bs58.encode(asUint8Array(bytes));\n}\n\nexport function base58ToHex(value: string): HexString {\n return bytesToHexPrefixed(base58ToBytes(value));\n}\n\nexport function hexToBase58(hex: string): string {\n return bytesToBase58(hexToBytes(hex));\n}\n\nfunction padString(str: string, length: number, left: boolean, padding = '0') {\n const diff = length - str.length;\n let result = str;\n if (diff > 0) {\n const pad = padding.repeat(diff);\n result = left ? pad + str : str + pad;\n }\n return result;\n}\n\nfunction padLeft(str: string, length: number, padding = '0') {\n return padString(str, length, true, padding);\n}\nfunction calcByteLength(str: string, byteSize = 8) {\n const { length } = str;\n const remainder = length % byteSize;\n return remainder ? ((length - remainder) / byteSize) * byteSize + byteSize : length;\n}\n\n/**\n * Pads a hex string on the left so its length is a multiple of `byteSize`.\n * Used to align hex strings.\n * @param str Hex string.\n * @param byteSize Group size to align to, in hex chars (default: 8).\n * @param padding Left-pad character (default: '0').\n * @returns Hex string left-padded to a multiple of `byteSize`.\n */\nexport function padAlignHex(str: string, byteSize = 8, padding = '0') {\n const trimmed = trim0x(str);\n return padLeft(trimmed, calcByteLength(trimmed, byteSize), padding);\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@layerzerolabs/common-encoding-utils",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.110",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -15,11 +15,14 @@
|
|
|
15
15
|
"files": [
|
|
16
16
|
"dist/**/*"
|
|
17
17
|
],
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"bs58": "^5.0.0"
|
|
20
|
+
},
|
|
18
21
|
"devDependencies": {
|
|
19
22
|
"tsup": "^8.4.0",
|
|
20
|
-
"vitest": "^3.2.
|
|
21
|
-
"@layerzerolabs/tsup-configuration": "0.2.
|
|
22
|
-
"@layerzerolabs/typescript-configuration": "0.2.
|
|
23
|
+
"vitest": "^3.2.6",
|
|
24
|
+
"@layerzerolabs/tsup-configuration": "0.2.110",
|
|
25
|
+
"@layerzerolabs/typescript-configuration": "0.2.110"
|
|
23
26
|
},
|
|
24
27
|
"publishConfig": {
|
|
25
28
|
"access": "public",
|