viem 0.0.0-main.20230924T205703 → 0.0.0-main.20230924T215842
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/_cjs/errors/version.js +1 -1
- package/_cjs/utils/encoding/toBytes.js +28 -28
- package/_cjs/utils/encoding/toBytes.js.map +1 -1
- package/_cjs/utils/encoding/toHex.js +6 -19
- package/_cjs/utils/encoding/toHex.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/utils/encoding/toBytes.js +27 -26
- package/_esm/utils/encoding/toBytes.js.map +1 -1
- package/_esm/utils/encoding/toHex.js +5 -18
- package/_esm/utils/encoding/toHex.js.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/utils/encoding/toBytes.d.ts +0 -4
- package/_types/utils/encoding/toBytes.d.ts.map +1 -1
- package/_types/utils/encoding/toHex.d.ts +0 -4
- package/_types/utils/encoding/toHex.d.ts.map +1 -1
- package/errors/version.ts +1 -1
- package/package.json +1 -1
- package/utils/encoding/toBytes.ts +31 -27
- package/utils/encoding/toHex.ts +5 -23
package/_cjs/errors/version.js
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.stringToBytes = exports.numberToBytes = exports.
|
3
|
+
exports.stringToBytes = exports.numberToBytes = exports.hexToBytes = exports.boolToBytes = exports.toBytes = void 0;
|
4
4
|
const base_js_1 = require("../../errors/base.js");
|
5
5
|
const isHex_js_1 = require("../data/isHex.js");
|
6
6
|
const pad_js_1 = require("../data/pad.js");
|
7
7
|
const fromHex_js_1 = require("./fromHex.js");
|
8
8
|
const toHex_js_1 = require("./toHex.js");
|
9
9
|
const encoder = new TextEncoder();
|
10
|
-
const hasBuffer = 'Buffer' in globalThis && typeof Buffer.from === 'function';
|
11
10
|
function toBytes(value, opts = {}) {
|
12
11
|
if (typeof value === 'number' || typeof value === 'bigint')
|
13
12
|
return numberToBytes(value, opts);
|
@@ -28,44 +27,45 @@ function boolToBytes(value, opts = {}) {
|
|
28
27
|
return bytes;
|
29
28
|
}
|
30
29
|
exports.boolToBytes = boolToBytes;
|
30
|
+
const charCodeMap = {
|
31
|
+
zero: 48,
|
32
|
+
nine: 57,
|
33
|
+
A: 65,
|
34
|
+
F: 70,
|
35
|
+
a: 97,
|
36
|
+
f: 102,
|
37
|
+
};
|
38
|
+
function charCodeToBase16(char) {
|
39
|
+
if (char >= charCodeMap.zero && char <= charCodeMap.nine)
|
40
|
+
return char - charCodeMap.zero;
|
41
|
+
else if (char >= charCodeMap.A && char <= charCodeMap.F)
|
42
|
+
return char - (charCodeMap.A - 10);
|
43
|
+
else if (char >= charCodeMap.a && char <= charCodeMap.f)
|
44
|
+
return char - (charCodeMap.a - 10);
|
45
|
+
return undefined;
|
46
|
+
}
|
31
47
|
function hexToBytes(hex_, opts = {}) {
|
32
48
|
let hex = hex_;
|
33
49
|
if (opts.size) {
|
34
50
|
(0, fromHex_js_1.assertSize)(hex, { size: opts.size });
|
35
51
|
hex = (0, pad_js_1.pad)(hex, { dir: 'right', size: opts.size });
|
36
52
|
}
|
37
|
-
return hasBuffer ? hexToBytes_buffer(hex) : hexToBytes_native(hex);
|
38
|
-
}
|
39
|
-
exports.hexToBytes = hexToBytes;
|
40
|
-
function hexToBytes_buffer(hex) {
|
41
|
-
if (!hasBuffer)
|
42
|
-
throw new Error('`Buffer` not implemented.');
|
43
|
-
let hexString = hex.slice(2);
|
44
|
-
if (hexString.length % 2)
|
45
|
-
hexString = `0${hexString}`;
|
46
|
-
if (hexString === '')
|
47
|
-
return Uint8Array.from([]);
|
48
|
-
if (!(0, isHex_js_1.isHex)(hex))
|
49
|
-
throw new base_js_1.BaseError(`${hex} is not a valid hex value.`);
|
50
|
-
return Uint8Array.from(Buffer.from(hexString, 'hex'));
|
51
|
-
}
|
52
|
-
exports.hexToBytes_buffer = hexToBytes_buffer;
|
53
|
-
function hexToBytes_native(hex) {
|
54
53
|
let hexString = hex.slice(2);
|
55
54
|
if (hexString.length % 2)
|
56
55
|
hexString = `0${hexString}`;
|
57
|
-
const
|
58
|
-
|
59
|
-
|
60
|
-
const
|
61
|
-
const
|
62
|
-
if (
|
63
|
-
throw new base_js_1.BaseError(`Invalid byte sequence ("${
|
64
|
-
|
56
|
+
const length = hexString.length / 2;
|
57
|
+
const bytes = new Uint8Array(length);
|
58
|
+
for (let index = 0, j = 0; index < length; index++) {
|
59
|
+
const nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++));
|
60
|
+
const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++));
|
61
|
+
if (nibbleLeft === undefined || nibbleRight === undefined) {
|
62
|
+
throw new base_js_1.BaseError(`Invalid byte sequence ("${hexString[j - 2]}${hexString[j - 1]}" in "${hexString}").`);
|
63
|
+
}
|
64
|
+
bytes[index] = nibbleLeft * 16 + nibbleRight;
|
65
65
|
}
|
66
66
|
return bytes;
|
67
67
|
}
|
68
|
-
exports.
|
68
|
+
exports.hexToBytes = hexToBytes;
|
69
69
|
function numberToBytes(value, opts) {
|
70
70
|
const hex = (0, toHex_js_1.numberToHex)(value, opts);
|
71
71
|
return hexToBytes(hex);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"toBytes.js","sourceRoot":"","sources":["../../../utils/encoding/toBytes.ts"],"names":[],"mappings":";;;AAAA,kDAAgD;AAEhD,+CAAwC;AACxC,2CAAoC;AAEpC,6CAAyC;AACzC,yCAA8D;AAE9D,MAAM,OAAO,GAAiB,IAAI,WAAW,EAAE,CAAA;
|
1
|
+
{"version":3,"file":"toBytes.js","sourceRoot":"","sources":["../../../utils/encoding/toBytes.ts"],"names":[],"mappings":"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"}
|
@@ -1,10 +1,9 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.stringToHex = exports.numberToHex = exports.
|
3
|
+
exports.stringToHex = exports.numberToHex = exports.bytesToHex = exports.boolToHex = exports.toHex = void 0;
|
4
4
|
const encoding_js_1 = require("../../errors/encoding.js");
|
5
5
|
const pad_js_1 = require("../data/pad.js");
|
6
6
|
const fromHex_js_1 = require("./fromHex.js");
|
7
|
-
const hasBuffer = 'Buffer' in globalThis && typeof Buffer.from === 'function';
|
8
7
|
const hexes = Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));
|
9
8
|
function toHex(value, opts = {}) {
|
10
9
|
if (typeof value === 'number' || typeof value === 'bigint')
|
@@ -27,7 +26,11 @@ function boolToHex(value, opts = {}) {
|
|
27
26
|
}
|
28
27
|
exports.boolToHex = boolToHex;
|
29
28
|
function bytesToHex(value, opts = {}) {
|
30
|
-
|
29
|
+
let string = '';
|
30
|
+
for (let i = 0; i < value.length; i++) {
|
31
|
+
string += hexes[value[i]];
|
32
|
+
}
|
33
|
+
const hex = `0x${string}`;
|
31
34
|
if (typeof opts.size === 'number') {
|
32
35
|
(0, fromHex_js_1.assertSize)(hex, { size: opts.size });
|
33
36
|
return (0, pad_js_1.pad)(hex, { dir: 'right', size: opts.size });
|
@@ -35,22 +38,6 @@ function bytesToHex(value, opts = {}) {
|
|
35
38
|
return hex;
|
36
39
|
}
|
37
40
|
exports.bytesToHex = bytesToHex;
|
38
|
-
function bytesToHex_buffer(value) {
|
39
|
-
if (!hasBuffer)
|
40
|
-
throw new Error('`Buffer` not implemented.');
|
41
|
-
if (value.length === 0)
|
42
|
-
return '0x';
|
43
|
-
return `0x${Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString('hex')}`;
|
44
|
-
}
|
45
|
-
exports.bytesToHex_buffer = bytesToHex_buffer;
|
46
|
-
function bytesToHex_native(value) {
|
47
|
-
let string = '';
|
48
|
-
for (let i = 0; i < value.length; i++) {
|
49
|
-
string += hexes[value[i]];
|
50
|
-
}
|
51
|
-
return `0x${string}`;
|
52
|
-
}
|
53
|
-
exports.bytesToHex_native = bytesToHex_native;
|
54
41
|
function numberToHex(value_, opts = {}) {
|
55
42
|
const { signed, size } = opts;
|
56
43
|
const value = BigInt(value_);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"toHex.js","sourceRoot":"","sources":["../../../utils/encoding/toHex.ts"],"names":[],"mappings":";;;AAAA,0DAAiE;AAEjE,2CAAoC;AAEpC,6CAAyC;AAEzC,MAAM,
|
1
|
+
{"version":3,"file":"toHex.js","sourceRoot":"","sources":["../../../utils/encoding/toHex.ts"],"names":[],"mappings":"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"}
|
package/_esm/errors/version.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export const version = '0.0.0-main.
|
1
|
+
export const version = '0.0.0-main.20230924T215842';
|
2
2
|
//# sourceMappingURL=version.js.map
|
@@ -4,7 +4,6 @@ import { pad } from '../data/pad.js';
|
|
4
4
|
import { assertSize } from './fromHex.js';
|
5
5
|
import { numberToHex } from './toHex.js';
|
6
6
|
const encoder = /*#__PURE__*/ new TextEncoder();
|
7
|
-
const hasBuffer = 'Buffer' in globalThis && typeof Buffer.from === 'function';
|
8
7
|
/**
|
9
8
|
* Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array.
|
10
9
|
*
|
@@ -67,6 +66,24 @@ export function boolToBytes(value, opts = {}) {
|
|
67
66
|
}
|
68
67
|
return bytes;
|
69
68
|
}
|
69
|
+
// We use very optimized technique to convert hex string to byte array
|
70
|
+
const charCodeMap = {
|
71
|
+
zero: 48,
|
72
|
+
nine: 57,
|
73
|
+
A: 65,
|
74
|
+
F: 70,
|
75
|
+
a: 97,
|
76
|
+
f: 102,
|
77
|
+
};
|
78
|
+
function charCodeToBase16(char) {
|
79
|
+
if (char >= charCodeMap.zero && char <= charCodeMap.nine)
|
80
|
+
return char - charCodeMap.zero;
|
81
|
+
else if (char >= charCodeMap.A && char <= charCodeMap.F)
|
82
|
+
return char - (charCodeMap.A - 10);
|
83
|
+
else if (char >= charCodeMap.a && char <= charCodeMap.f)
|
84
|
+
return char - (charCodeMap.a - 10);
|
85
|
+
return undefined;
|
86
|
+
}
|
70
87
|
/**
|
71
88
|
* Encodes a hex string into a byte array.
|
72
89
|
*
|
@@ -92,34 +109,18 @@ export function hexToBytes(hex_, opts = {}) {
|
|
92
109
|
assertSize(hex, { size: opts.size });
|
93
110
|
hex = pad(hex, { dir: 'right', size: opts.size });
|
94
111
|
}
|
95
|
-
return hasBuffer ? hexToBytes_buffer(hex) : hexToBytes_native(hex);
|
96
|
-
}
|
97
|
-
/** @internal */
|
98
|
-
export function hexToBytes_buffer(hex) {
|
99
|
-
if (!hasBuffer)
|
100
|
-
throw new Error('`Buffer` not implemented.');
|
101
|
-
let hexString = hex.slice(2);
|
102
|
-
if (hexString.length % 2)
|
103
|
-
hexString = `0${hexString}`;
|
104
|
-
if (hexString === '')
|
105
|
-
return Uint8Array.from([]);
|
106
|
-
if (!isHex(hex))
|
107
|
-
throw new BaseError(`${hex} is not a valid hex value.`);
|
108
|
-
return Uint8Array.from(Buffer.from(hexString, 'hex'));
|
109
|
-
}
|
110
|
-
/** @internal */
|
111
|
-
export function hexToBytes_native(hex) {
|
112
112
|
let hexString = hex.slice(2);
|
113
113
|
if (hexString.length % 2)
|
114
114
|
hexString = `0${hexString}`;
|
115
|
-
const
|
116
|
-
|
117
|
-
|
118
|
-
const
|
119
|
-
const
|
120
|
-
if (
|
121
|
-
throw new BaseError(`Invalid byte sequence ("${
|
122
|
-
|
115
|
+
const length = hexString.length / 2;
|
116
|
+
const bytes = new Uint8Array(length);
|
117
|
+
for (let index = 0, j = 0; index < length; index++) {
|
118
|
+
const nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++));
|
119
|
+
const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++));
|
120
|
+
if (nibbleLeft === undefined || nibbleRight === undefined) {
|
121
|
+
throw new BaseError(`Invalid byte sequence ("${hexString[j - 2]}${hexString[j - 1]}" in "${hexString}").`);
|
122
|
+
}
|
123
|
+
bytes[index] = nibbleLeft * 16 + nibbleRight;
|
123
124
|
}
|
124
125
|
return bytes;
|
125
126
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"toBytes.js","sourceRoot":"","sources":["../../../utils/encoding/toBytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAwB,WAAW,EAAE,MAAM,YAAY,CAAA;AAE9D,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,WAAW,EAAE,CAAA;
|
1
|
+
{"version":3,"file":"toBytes.js","sourceRoot":"","sources":["../../../utils/encoding/toBytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAwB,WAAW,EAAE,MAAM,YAAY,CAAA;AAE9D,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,WAAW,EAAE,CAAA;AAO/C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,OAAO,CACrB,KAA+C,EAC/C,OAA0B,EAAE;IAE5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QACxD,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACnC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC/D,IAAI,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAChD,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACnC,CAAC;AAOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,OAAsB,EAAE;IAClE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IAC/B,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACxB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QACjC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACtC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;KACvC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,sEAAsE;AACtE,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,GAAG;CACE,CAAA;AAEV,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI;QACtD,OAAO,IAAI,GAAG,WAAW,CAAC,IAAI,CAAA;SAC3B,IAAI,IAAI,IAAI,WAAW,CAAC,CAAC,IAAI,IAAI,IAAI,WAAW,CAAC,CAAC;QACrD,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;SAC/B,IAAI,IAAI,IAAI,WAAW,CAAC,CAAC,IAAI,IAAI,IAAI,WAAW,CAAC,CAAC;QACrD,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACpC,OAAO,SAAS,CAAA;AAClB,CAAC;AAOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,UAAU,CAAC,IAAS,EAAE,OAAuB,EAAE;IAC7D,IAAI,GAAG,GAAG,IAAI,CAAA;IACd,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,UAAU,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACpC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;KAClD;IAED,IAAI,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAW,CAAA;IACtC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;IAErD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;IACnC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IACpC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE;QAClD,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9D,MAAM,WAAW,GAAG,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/D,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE;YACzD,MAAM,IAAI,SAAS,CACjB,2BAA2B,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GACzC,SAAS,CAAC,CAAC,GAAG,CAAC,CACjB,SAAS,SAAS,KAAK,CACxB,CAAA;SACF;QACD,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,GAAG,EAAE,GAAG,WAAW,CAAA;KAC7C;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAAC,KAAsB,EAAE,IAAsB;IAC1E,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACpC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAa,EACb,OAA0B,EAAE;IAE5B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QACjC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACtC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;KACrD;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import { IntegerOutOfRangeError } from '../../errors/encoding.js';
|
2
2
|
import { pad } from '../data/pad.js';
|
3
3
|
import { assertSize } from './fromHex.js';
|
4
|
-
const hasBuffer = 'Buffer' in globalThis && typeof Buffer.from === 'function';
|
5
4
|
const hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));
|
6
5
|
/**
|
7
6
|
* Encodes a string, number, bigint, or ByteArray into a hex string
|
@@ -90,29 +89,17 @@ export function boolToHex(value, opts = {}) {
|
|
90
89
|
* // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'
|
91
90
|
*/
|
92
91
|
export function bytesToHex(value, opts = {}) {
|
93
|
-
|
92
|
+
let string = '';
|
93
|
+
for (let i = 0; i < value.length; i++) {
|
94
|
+
string += hexes[value[i]];
|
95
|
+
}
|
96
|
+
const hex = `0x${string}`;
|
94
97
|
if (typeof opts.size === 'number') {
|
95
98
|
assertSize(hex, { size: opts.size });
|
96
99
|
return pad(hex, { dir: 'right', size: opts.size });
|
97
100
|
}
|
98
101
|
return hex;
|
99
102
|
}
|
100
|
-
/** @internal */
|
101
|
-
export function bytesToHex_buffer(value) {
|
102
|
-
if (!hasBuffer)
|
103
|
-
throw new Error('`Buffer` not implemented.');
|
104
|
-
if (value.length === 0)
|
105
|
-
return '0x';
|
106
|
-
return `0x${Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString('hex')}`;
|
107
|
-
}
|
108
|
-
/** @internal */
|
109
|
-
export function bytesToHex_native(value) {
|
110
|
-
let string = '';
|
111
|
-
for (let i = 0; i < value.length; i++) {
|
112
|
-
string += hexes[value[i]];
|
113
|
-
}
|
114
|
-
return `0x${string}`;
|
115
|
-
}
|
116
103
|
/**
|
117
104
|
* Encodes a number or bigint into a hex string
|
118
105
|
*
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"toHex.js","sourceRoot":"","sources":["../../../utils/encoding/toHex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,
|
1
|
+
{"version":3,"file":"toHex.js","sourceRoot":"","sources":["../../../utils/encoding/toHex.ts"],"names":[],"mappings":"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"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "0.0.0-main.
|
1
|
+
export declare const version = "0.0.0-main.20230924T215842";
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
@@ -78,10 +78,6 @@ export type HexToBytesOpts = {
|
|
78
78
|
* // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
|
79
79
|
*/
|
80
80
|
export declare function hexToBytes(hex_: Hex, opts?: HexToBytesOpts): ByteArray;
|
81
|
-
/** @internal */
|
82
|
-
export declare function hexToBytes_buffer(hex: Hex): ByteArray;
|
83
|
-
/** @internal */
|
84
|
-
export declare function hexToBytes_native(hex: Hex): ByteArray;
|
85
81
|
/**
|
86
82
|
* Encodes a number into a byte array.
|
87
83
|
*
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"toBytes.d.ts","sourceRoot":"","sources":["../../../utils/encoding/toBytes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAKzD,OAAO,EAAE,KAAK,eAAe,EAAe,MAAM,YAAY,CAAA;
|
1
|
+
{"version":3,"file":"toBytes.d.ts","sourceRoot":"","sources":["../../../utils/encoding/toBytes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAKzD,OAAO,EAAE,KAAK,eAAe,EAAe,MAAM,YAAY,CAAA;AAI9D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,EAC/C,IAAI,GAAE,iBAAsB,GAC3B,SAAS,CAMX;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,aAAkB,cAQnE;AAsBD,MAAM,MAAM,cAAc,GAAG;IAC3B,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,GAAE,cAAmB,GAAG,SAAS,CAyB1E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,cAG3E;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,iBAAsB,GAC3B,SAAS,CAOX"}
|
@@ -82,10 +82,6 @@ export type BytesToHexOpts = {
|
|
82
82
|
* // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'
|
83
83
|
*/
|
84
84
|
export declare function bytesToHex(value: ByteArray, opts?: BytesToHexOpts): Hex;
|
85
|
-
/** @internal */
|
86
|
-
export declare function bytesToHex_buffer(value: ByteArray): Hex;
|
87
|
-
/** @internal */
|
88
|
-
export declare function bytesToHex_native(value: ByteArray): Hex;
|
89
85
|
export type NumberToHexOpts = {
|
90
86
|
/** Whether or not the number of a signed representation. */
|
91
87
|
signed?: boolean;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"toHex.d.ts","sourceRoot":"","sources":["../../../utils/encoding/toHex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;
|
1
|
+
{"version":3,"file":"toHex.d.ts","sourceRoot":"","sources":["../../../utils/encoding/toHex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AASzD,MAAM,MAAM,eAAe,GAAG;IAC5B,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,KAAK,CACnB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,EACrD,IAAI,GAAE,eAAoB,GACzB,GAAG,CAQL;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,aAAkB,GAAG,GAAG,CAOvE;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,GAAE,cAAmB,GAAG,GAAG,CAY3E;AAED,MAAM,MAAM,eAAe,GACvB;IACE,4DAA4D;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAA;CACb,GACD;IACE,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAEL;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,IAAI,GAAE,eAAoB,GACzB,GAAG,CAgCL;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,GAAG,CAG3E"}
|
package/errors/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = '0.0.0-main.
|
1
|
+
export const version = '0.0.0-main.20230924T215842'
|
package/package.json
CHANGED
@@ -8,8 +8,6 @@ import { type NumberToHexOpts, numberToHex } from './toHex.js'
|
|
8
8
|
|
9
9
|
const encoder = /*#__PURE__*/ new TextEncoder()
|
10
10
|
|
11
|
-
const hasBuffer = 'Buffer' in globalThis && typeof Buffer.from === 'function'
|
12
|
-
|
13
11
|
export type ToBytesParameters = {
|
14
12
|
/** Size of the output bytes. */
|
15
13
|
size?: number
|
@@ -85,6 +83,26 @@ export function boolToBytes(value: boolean, opts: BoolToHexOpts = {}) {
|
|
85
83
|
return bytes
|
86
84
|
}
|
87
85
|
|
86
|
+
// We use very optimized technique to convert hex string to byte array
|
87
|
+
const charCodeMap = {
|
88
|
+
zero: 48,
|
89
|
+
nine: 57,
|
90
|
+
A: 65,
|
91
|
+
F: 70,
|
92
|
+
a: 97,
|
93
|
+
f: 102,
|
94
|
+
} as const
|
95
|
+
|
96
|
+
function charCodeToBase16(char: number) {
|
97
|
+
if (char >= charCodeMap.zero && char <= charCodeMap.nine)
|
98
|
+
return char - charCodeMap.zero
|
99
|
+
else if (char >= charCodeMap.A && char <= charCodeMap.F)
|
100
|
+
return char - (charCodeMap.A - 10)
|
101
|
+
else if (char >= charCodeMap.a && char <= charCodeMap.f)
|
102
|
+
return char - (charCodeMap.a - 10)
|
103
|
+
return undefined
|
104
|
+
}
|
105
|
+
|
88
106
|
export type HexToBytesOpts = {
|
89
107
|
/** Size of the output bytes. */
|
90
108
|
size?: number
|
@@ -116,36 +134,22 @@ export function hexToBytes(hex_: Hex, opts: HexToBytesOpts = {}): ByteArray {
|
|
116
134
|
hex = pad(hex, { dir: 'right', size: opts.size })
|
117
135
|
}
|
118
136
|
|
119
|
-
return hasBuffer ? hexToBytes_buffer(hex) : hexToBytes_native(hex)
|
120
|
-
}
|
121
|
-
|
122
|
-
/** @internal */
|
123
|
-
export function hexToBytes_buffer(hex: Hex): ByteArray {
|
124
|
-
if (!hasBuffer) throw new Error('`Buffer` not implemented.')
|
125
|
-
|
126
|
-
let hexString = hex.slice(2) as string
|
127
|
-
if (hexString.length % 2) hexString = `0${hexString}`
|
128
|
-
|
129
|
-
if (hexString === '') return Uint8Array.from([])
|
130
|
-
if (!isHex(hex)) throw new BaseError(`${hex} is not a valid hex value.`)
|
131
|
-
return Uint8Array.from(Buffer.from(hexString, 'hex'))
|
132
|
-
}
|
133
|
-
|
134
|
-
/** @internal */
|
135
|
-
export function hexToBytes_native(hex: Hex): ByteArray {
|
136
137
|
let hexString = hex.slice(2) as string
|
137
138
|
if (hexString.length % 2) hexString = `0${hexString}`
|
138
139
|
|
139
|
-
const
|
140
|
-
|
141
|
-
|
142
|
-
const
|
143
|
-
const
|
144
|
-
if (
|
140
|
+
const length = hexString.length / 2
|
141
|
+
const bytes = new Uint8Array(length)
|
142
|
+
for (let index = 0, j = 0; index < length; index++) {
|
143
|
+
const nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++))
|
144
|
+
const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++))
|
145
|
+
if (nibbleLeft === undefined || nibbleRight === undefined) {
|
145
146
|
throw new BaseError(
|
146
|
-
`Invalid byte sequence ("${
|
147
|
+
`Invalid byte sequence ("${hexString[j - 2]}${
|
148
|
+
hexString[j - 1]
|
149
|
+
}" in "${hexString}").`,
|
147
150
|
)
|
148
|
-
|
151
|
+
}
|
152
|
+
bytes[index] = nibbleLeft * 16 + nibbleRight
|
149
153
|
}
|
150
154
|
return bytes
|
151
155
|
}
|
package/utils/encoding/toHex.ts
CHANGED
@@ -4,8 +4,6 @@ import { pad } from '../data/pad.js'
|
|
4
4
|
|
5
5
|
import { assertSize } from './fromHex.js'
|
6
6
|
|
7
|
-
const hasBuffer = 'Buffer' in globalThis && typeof Buffer.from === 'function'
|
8
|
-
|
9
7
|
const hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) =>
|
10
8
|
i.toString(16).padStart(2, '0'),
|
11
9
|
)
|
@@ -116,7 +114,11 @@ export type BytesToHexOpts = {
|
|
116
114
|
* // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'
|
117
115
|
*/
|
118
116
|
export function bytesToHex(value: ByteArray, opts: BytesToHexOpts = {}): Hex {
|
119
|
-
|
117
|
+
let string = ''
|
118
|
+
for (let i = 0; i < value.length; i++) {
|
119
|
+
string += hexes[value[i]]
|
120
|
+
}
|
121
|
+
const hex = `0x${string}` as const
|
120
122
|
|
121
123
|
if (typeof opts.size === 'number') {
|
122
124
|
assertSize(hex, { size: opts.size })
|
@@ -125,26 +127,6 @@ export function bytesToHex(value: ByteArray, opts: BytesToHexOpts = {}): Hex {
|
|
125
127
|
return hex
|
126
128
|
}
|
127
129
|
|
128
|
-
/** @internal */
|
129
|
-
export function bytesToHex_buffer(value: ByteArray): Hex {
|
130
|
-
if (!hasBuffer) throw new Error('`Buffer` not implemented.')
|
131
|
-
if (value.length === 0) return '0x'
|
132
|
-
return `0x${Buffer.from(
|
133
|
-
value.buffer,
|
134
|
-
value.byteOffset,
|
135
|
-
value.byteLength,
|
136
|
-
).toString('hex')}`
|
137
|
-
}
|
138
|
-
|
139
|
-
/** @internal */
|
140
|
-
export function bytesToHex_native(value: ByteArray): Hex {
|
141
|
-
let string = ''
|
142
|
-
for (let i = 0; i < value.length; i++) {
|
143
|
-
string += hexes[value[i]]
|
144
|
-
}
|
145
|
-
return `0x${string}`
|
146
|
-
}
|
147
|
-
|
148
130
|
export type NumberToHexOpts =
|
149
131
|
| {
|
150
132
|
/** Whether or not the number of a signed representation. */
|