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.
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = '0.0.0-main.20230924T205703';
4
+ exports.version = '0.0.0-main.20230924T215842';
5
5
  //# sourceMappingURL=version.js.map
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stringToBytes = exports.numberToBytes = exports.hexToBytes_native = exports.hexToBytes_buffer = exports.hexToBytes = exports.boolToBytes = exports.toBytes = void 0;
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 bytes = new Uint8Array(hexString.length / 2);
58
- for (let index = 0; index < bytes.length; index++) {
59
- const start = index * 2;
60
- const hexByte = hexString.slice(start, start + 2);
61
- const byte = Number.parseInt(hexByte, 16);
62
- if (Number.isNaN(byte) || byte < 0)
63
- throw new base_js_1.BaseError(`Invalid byte sequence ("${hexByte}" in "${hexString}").`);
64
- bytes[index] = byte;
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.hexToBytes_native = hexToBytes_native;
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":"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"}
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.bytesToHex_native = exports.bytesToHex_buffer = exports.bytesToHex = exports.boolToHex = exports.toHex = void 0;
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
- const hex = hasBuffer ? bytesToHex_buffer(value) : bytesToHex_native(value);
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":"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"}
1
+ {"version":3,"file":"toHex.js","sourceRoot":"","sources":["../../../utils/encoding/toHex.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export const version = '0.0.0-main.20230924T205703';
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 bytes = new Uint8Array(hexString.length / 2);
116
- for (let index = 0; index < bytes.length; index++) {
117
- const start = index * 2;
118
- const hexByte = hexString.slice(start, start + 2);
119
- const byte = Number.parseInt(hexByte, 16);
120
- if (Number.isNaN(byte) || byte < 0)
121
- throw new BaseError(`Invalid byte sequence ("${hexByte}" in "${hexString}").`);
122
- bytes[index] = byte;
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":"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"}
1
+ {"version":3,"file":"toBytes.js","sourceRoot":"","sources":["../../../utils/encoding/toBytes.ts"],"names":[],"mappings":"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"}
@@ -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
- const hex = hasBuffer ? bytesToHex_buffer(value) : bytesToHex_native(value);
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":"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"}
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.20230924T205703";
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;AAM9D,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;AAED,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,CAQ1E;AAED,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CASrD;AAED,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAgBrD;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"}
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;AAWzD,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,CAQ3E;AAED,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAQvD;AAED,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAMvD;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"}
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.20230924T205703'
1
+ export const version = '0.0.0-main.20230924T215842'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "0.0.0-main.20230924T205703",
4
+ "version": "0.0.0-main.20230924T215842",
5
5
  "type": "module",
6
6
  "main": "./_cjs/index.js",
7
7
  "module": "./_esm/index.js",
@@ -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 bytes = new Uint8Array(hexString.length / 2)
140
- for (let index = 0; index < bytes.length; index++) {
141
- const start = index * 2
142
- const hexByte = hexString.slice(start, start + 2)
143
- const byte = Number.parseInt(hexByte, 16)
144
- if (Number.isNaN(byte) || byte < 0)
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 ("${hexByte}" in "${hexString}").`,
147
+ `Invalid byte sequence ("${hexString[j - 2]}${
148
+ hexString[j - 1]
149
+ }" in "${hexString}").`,
147
150
  )
148
- bytes[index] = byte
151
+ }
152
+ bytes[index] = nibbleLeft * 16 + nibbleRight
149
153
  }
150
154
  return bytes
151
155
  }
@@ -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
- const hex = hasBuffer ? bytesToHex_buffer(value) : bytesToHex_native(value)
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. */