viem 0.4.0-main.20230418T011420 → 0.4.0-main.20230419T202802

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.
Files changed (48) hide show
  1. package/README.md +6 -0
  2. package/dist/cjs/errors/encoding.js +13 -1
  3. package/dist/cjs/errors/encoding.js.map +1 -1
  4. package/dist/cjs/errors/index.js +3 -2
  5. package/dist/cjs/errors/index.js.map +1 -1
  6. package/dist/cjs/errors/version.js +1 -1
  7. package/dist/cjs/utils/encoding/fromBytes.js +29 -12
  8. package/dist/cjs/utils/encoding/fromBytes.js.map +1 -1
  9. package/dist/cjs/utils/encoding/fromHex.js +32 -10
  10. package/dist/cjs/utils/encoding/fromHex.js.map +1 -1
  11. package/dist/cjs/utils/encoding/toBytes.js +31 -15
  12. package/dist/cjs/utils/encoding/toBytes.js.map +1 -1
  13. package/dist/cjs/utils/encoding/toHex.js +31 -20
  14. package/dist/cjs/utils/encoding/toHex.js.map +1 -1
  15. package/dist/esm/errors/encoding.js +11 -0
  16. package/dist/esm/errors/encoding.js.map +1 -1
  17. package/dist/esm/errors/index.js +1 -1
  18. package/dist/esm/errors/index.js.map +1 -1
  19. package/dist/esm/errors/version.js +1 -1
  20. package/dist/esm/utils/encoding/fromBytes.js +30 -13
  21. package/dist/esm/utils/encoding/fromBytes.js.map +1 -1
  22. package/dist/esm/utils/encoding/fromHex.js +31 -10
  23. package/dist/esm/utils/encoding/fromHex.js.map +1 -1
  24. package/dist/esm/utils/encoding/toBytes.js +31 -15
  25. package/dist/esm/utils/encoding/toBytes.js.map +1 -1
  26. package/dist/esm/utils/encoding/toHex.js +28 -17
  27. package/dist/esm/utils/encoding/toHex.js.map +1 -1
  28. package/dist/types/errors/encoding.d.ts +7 -0
  29. package/dist/types/errors/encoding.d.ts.map +1 -1
  30. package/dist/types/errors/index.d.ts +1 -1
  31. package/dist/types/errors/index.d.ts.map +1 -1
  32. package/dist/types/errors/version.d.ts +1 -1
  33. package/dist/types/utils/encoding/fromBytes.d.ts +95 -10
  34. package/dist/types/utils/encoding/fromBytes.d.ts.map +1 -1
  35. package/dist/types/utils/encoding/fromHex.d.ts +122 -12
  36. package/dist/types/utils/encoding/fromHex.d.ts.map +1 -1
  37. package/dist/types/utils/encoding/toBytes.d.ts +113 -9
  38. package/dist/types/utils/encoding/toBytes.d.ts.map +1 -1
  39. package/dist/types/utils/encoding/toHex.d.ts +120 -10
  40. package/dist/types/utils/encoding/toHex.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/src/errors/encoding.ts +9 -0
  43. package/src/errors/index.ts +1 -0
  44. package/src/errors/version.ts +1 -1
  45. package/src/utils/encoding/fromBytes.ts +147 -18
  46. package/src/utils/encoding/fromHex.ts +162 -19
  47. package/src/utils/encoding/toBytes.ts +148 -18
  48. package/src/utils/encoding/toHex.ts +151 -26
@@ -1,19 +1,31 @@
1
- import { InvalidHexBooleanError } from '../../errors/index.js';
1
+ import { InvalidHexBooleanError, SizeOverflowError, } from '../../errors/index.js';
2
+ import { size as size_ } from '../data/size.js';
2
3
  import { trim } from '../data/index.js';
3
4
  import { hexToBytes } from './toBytes.js';
4
- export function fromHex(hex, to) {
5
+ export function assertSize(hexOrBytes, { size }) {
6
+ if (size_(hexOrBytes) > size)
7
+ throw new SizeOverflowError({
8
+ givenSize: size_(hexOrBytes),
9
+ maxSize: size,
10
+ });
11
+ }
12
+ export function fromHex(hex, toOrOpts) {
13
+ const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;
14
+ const to = opts.to;
5
15
  if (to === 'number')
6
- return hexToNumber(hex);
16
+ return hexToNumber(hex, opts);
7
17
  if (to === 'bigint')
8
- return hexToBigInt(hex);
18
+ return hexToBigInt(hex, opts);
9
19
  if (to === 'string')
10
- return hexToString(hex);
20
+ return hexToString(hex, opts);
11
21
  if (to === 'boolean')
12
- return hexToBool(hex);
13
- return hexToBytes(hex);
22
+ return hexToBool(hex, opts);
23
+ return hexToBytes(hex, opts);
14
24
  }
15
25
  export function hexToBigInt(hex, opts = {}) {
16
26
  const { signed } = opts;
27
+ if (opts.size)
28
+ assertSize(hex, { size: opts.size });
17
29
  const value = BigInt(hex);
18
30
  if (!signed)
19
31
  return value;
@@ -23,7 +35,12 @@ export function hexToBigInt(hex, opts = {}) {
23
35
  return value;
24
36
  return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n;
25
37
  }
26
- export function hexToBool(hex) {
38
+ export function hexToBool(hex_, opts = {}) {
39
+ let hex = hex_;
40
+ if (opts.size) {
41
+ assertSize(hex, { size: opts.size });
42
+ hex = trim(hex);
43
+ }
27
44
  if (trim(hex) === '0x0')
28
45
  return false;
29
46
  if (trim(hex) === '0x1')
@@ -33,8 +50,12 @@ export function hexToBool(hex) {
33
50
  export function hexToNumber(hex, opts = {}) {
34
51
  return Number(hexToBigInt(hex, opts));
35
52
  }
36
- export function hexToString(hex) {
37
- const bytes = hexToBytes(hex);
53
+ export function hexToString(hex, opts = {}) {
54
+ let bytes = hexToBytes(hex);
55
+ if (opts.size) {
56
+ assertSize(bytes, { size: opts.size });
57
+ bytes = trim(bytes, { dir: 'right' });
58
+ }
38
59
  return new TextDecoder().decode(bytes);
39
60
  }
40
61
  //# sourceMappingURL=fromHex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fromHex.js","sourceRoot":"","sources":["../../../../src/utils/encoding/fromHex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAiBzC,MAAM,UAAU,OAAO,CAErB,GAAQ,EAAE,EAAO;IACjB,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC,GAAG,CAA2B,CAAA;IACtE,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC,GAAG,CAA2B,CAAA;IACtE,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC,GAAG,CAA2B,CAAA;IACtE,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC,GAAG,CAA2B,CAAA;IACrE,OAAO,UAAU,CAAC,GAAG,CAA2B,CAAA;AAClD,CAAC;AAUD,MAAM,UAAU,WAAW,CAAC,GAAQ,EAAE,OAAwB,EAAE;IAC9D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAEvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACzB,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAEzB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;IACjD,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,KAAK,CAAA;IAE9B,OAAO,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA;AAChE,CAAC;AAKD,MAAM,UAAU,SAAS,CAAC,GAAQ;IAChC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IACrC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAA;IACpC,MAAM,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAA;AACvC,CAAC;AAOD,MAAM,UAAU,WAAW,CAAC,GAAQ,EAAE,OAAwB,EAAE;IAC9D,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;AACvC,CAAC;AAKD,MAAM,UAAU,WAAW,CAAC,GAAQ;IAClC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IAC7B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACxC,CAAC"}
1
+ {"version":3,"file":"fromHex.js","sourceRoot":"","sources":["../../../../src/utils/encoding/fromHex.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,43 @@
1
1
  import { BaseError } from '../../errors/index.js';
2
2
  import { isHex } from '../data/isHex.js';
3
+ import { pad } from '../data/pad.js';
4
+ import { assertSize } from './fromHex.js';
3
5
  import { numberToHex } from './toHex.js';
4
6
  const encoder = new TextEncoder();
5
- export function toBytes(value) {
7
+ export function toBytes(value, opts = {}) {
6
8
  if (typeof value === 'number' || typeof value === 'bigint')
7
- return numberToBytes(value);
9
+ return numberToBytes(value, opts);
8
10
  if (typeof value === 'boolean')
9
- return boolToBytes(value);
11
+ return boolToBytes(value, opts);
10
12
  if (isHex(value))
11
- return hexToBytes(value);
12
- return stringToBytes(value);
13
+ return hexToBytes(value, opts);
14
+ return stringToBytes(value, opts);
13
15
  }
14
- export function boolToBytes(value) {
16
+ export function boolToBytes(value, opts = {}) {
15
17
  const bytes = new Uint8Array(1);
16
18
  bytes[0] = Number(value);
19
+ if (typeof opts.size === 'number') {
20
+ assertSize(bytes, { size: opts.size });
21
+ return pad(bytes, { size: opts.size });
22
+ }
17
23
  return bytes;
18
24
  }
19
- export function hexToBytes(hex_) {
20
- let hex = hex_.slice(2);
21
- if (hex.length % 2)
22
- hex = `0${hex}`;
23
- const bytes = new Uint8Array(hex.length / 2);
25
+ export function hexToBytes(hex_, opts = {}) {
26
+ let hex = hex_;
27
+ if (opts.size) {
28
+ assertSize(hex, { size: opts.size });
29
+ hex = pad(hex, { dir: 'right', size: opts.size });
30
+ }
31
+ let hexString = hex.slice(2);
32
+ if (hexString.length % 2)
33
+ hexString = `0${hexString}`;
34
+ const bytes = new Uint8Array(hexString.length / 2);
24
35
  for (let index = 0; index < bytes.length; index++) {
25
36
  const start = index * 2;
26
- const hexByte = hex.slice(start, start + 2);
37
+ const hexByte = hexString.slice(start, start + 2);
27
38
  const byte = Number.parseInt(hexByte, 16);
28
39
  if (Number.isNaN(byte) || byte < 0)
29
- throw new BaseError(`Invalid byte sequence ("${hexByte}" in "${hex}").`);
40
+ throw new BaseError(`Invalid byte sequence ("${hexByte}" in "${hexString}").`);
30
41
  bytes[index] = byte;
31
42
  }
32
43
  return bytes;
@@ -35,7 +46,12 @@ export function numberToBytes(value, opts) {
35
46
  const hex = numberToHex(value, opts);
36
47
  return hexToBytes(hex);
37
48
  }
38
- export function stringToBytes(value) {
39
- return encoder.encode(value);
49
+ export function stringToBytes(value, opts = {}) {
50
+ const bytes = encoder.encode(value);
51
+ if (typeof opts.size === 'number') {
52
+ assertSize(bytes, { size: opts.size });
53
+ return pad(bytes, { dir: 'right', size: opts.size });
54
+ }
55
+ return bytes;
40
56
  }
41
57
  //# sourceMappingURL=toBytes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toBytes.js","sourceRoot":"","sources":["../../../../src/utils/encoding/toBytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AAGjC,MAAM,UAAU,OAAO,CACrB,KAA+C;IAE/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QACxD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAA;IAC7B,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAA;IACzD,IAAI,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;IAC1C,OAAO,aAAa,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC;AAKD,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IAC/B,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACxB,OAAO,KAAK,CAAA;AACd,CAAC;AAKD,MAAM,UAAU,UAAU,CAAC,IAAS;IAClC,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,CAAA;IAEjC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;IAEnC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC5C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;QACvB,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QACzC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;YAChC,MAAM,IAAI,SAAS,CAAC,2BAA2B,OAAO,SAAS,GAAG,KAAK,CAAC,CAAA;QAC1E,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;KACpB;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAKD,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;AAKD,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC"}
1
+ {"version":3,"file":"toBytes.js","sourceRoot":"","sources":["../../../../src/utils/encoding/toBytes.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,36 @@
1
1
  import { pad } from '../data/index.js';
2
2
  import { IntegerOutOfRangeError } from '../../errors/index.js';
3
+ import { assertSize } from './fromHex.js';
3
4
  const hexes = Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));
4
- export function boolToHex(value) {
5
- return `0x${Number(value)}`;
6
- }
7
- export function bytesToHex(value) {
8
- let hex = '';
9
- for (let i = 0; i < value.length; i++) {
10
- hex += hexes[value[i]];
11
- }
12
- return `0x${hex}`;
13
- }
14
- export function toHex(value) {
5
+ export function toHex(value, opts = {}) {
15
6
  if (typeof value === 'number' || typeof value === 'bigint')
16
- return numberToHex(value);
7
+ return numberToHex(value, opts);
17
8
  if (typeof value === 'string') {
18
- return stringToHex(value);
9
+ return stringToHex(value, opts);
19
10
  }
20
11
  if (typeof value === 'boolean')
21
- return boolToHex(value);
22
- return bytesToHex(value);
12
+ return boolToHex(value, opts);
13
+ return bytesToHex(value, opts);
14
+ }
15
+ export function boolToHex(value, opts = {}) {
16
+ const hex = `0x${Number(value)}`;
17
+ if (typeof opts.size === 'number') {
18
+ assertSize(hex, { size: opts.size });
19
+ return pad(hex, { size: opts.size });
20
+ }
21
+ return hex;
22
+ }
23
+ export function bytesToHex(value, opts = {}) {
24
+ let hexString = '';
25
+ for (let i = 0; i < value.length; i++) {
26
+ hexString += hexes[value[i]];
27
+ }
28
+ const hex = `0x${hexString}`;
29
+ if (typeof opts.size === 'number') {
30
+ assertSize(hex, { size: opts.size });
31
+ return pad(hex, { dir: 'right', size: opts.size });
32
+ }
33
+ return hex;
23
34
  }
24
35
  export function numberToHex(value_, opts = {}) {
25
36
  const { signed, size } = opts;
@@ -53,8 +64,8 @@ export function numberToHex(value_, opts = {}) {
53
64
  return hex;
54
65
  }
55
66
  const encoder = new TextEncoder();
56
- export function stringToHex(value_) {
67
+ export function stringToHex(value_, opts = {}) {
57
68
  const value = encoder.encode(value_);
58
- return toHex(value);
69
+ return bytesToHex(value, opts);
59
70
  }
60
71
  //# sourceMappingURL=toHex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toHex.js","sourceRoot":"","sources":["../../../../src/utils/encoding/toHex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toHex.js","sourceRoot":"","sources":["../../../../src/utils/encoding/toHex.ts"],"names":[],"mappings":"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"}
@@ -43,4 +43,11 @@ export declare class OffsetOutOfBoundsError extends BaseError {
43
43
  offset: number;
44
44
  });
45
45
  }
46
+ export declare class SizeOverflowError extends BaseError {
47
+ name: string;
48
+ constructor({ givenSize, maxSize }: {
49
+ givenSize: number;
50
+ maxSize: number;
51
+ });
52
+ }
46
53
  //# sourceMappingURL=encoding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../../src/errors/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,qBAAa,sBAAuB,SAAQ,SAAS;IAC1C,IAAI,SAA2B;gBAC5B,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAOvE;AAED,qBAAa,uBAAwB,SAAQ,SAAS;IAC3C,IAAI,SAA4B;gBAC7B,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CAO3E;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IAC1C,IAAI,SAA2B;gBAC5B,EACV,GAAG,EACH,GAAG,EACH,MAAM,EACN,IAAI,EACJ,KAAK,GACN,EAAE;QACD,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACd;CAOF;AAED,qBAAa,wBAAyB,SAAQ,SAAS;IAC5C,IAAI,SAA6B;gBAC9B,KAAK,EAAE,SAAS;CAK7B;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IAC1C,IAAI,SAA2B;gBAC5B,GAAG,EAAE,GAAG;CAKrB;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IACxC,IAAI,SAAyB;gBAC1B,KAAK,EAAE,GAAG;CAKvB;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IAC1C,IAAI,SAA2B;gBAC5B,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAK3E"}
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../../src/errors/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,qBAAa,sBAAuB,SAAQ,SAAS;IAC1C,IAAI,SAA2B;gBAC5B,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAOvE;AAED,qBAAa,uBAAwB,SAAQ,SAAS;IAC3C,IAAI,SAA4B;gBAC7B,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CAO3E;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IAC1C,IAAI,SAA2B;gBAC5B,EACV,GAAG,EACH,GAAG,EACH,MAAM,EACN,IAAI,EACJ,KAAK,GACN,EAAE;QACD,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACd;CAOF;AAED,qBAAa,wBAAyB,SAAQ,SAAS;IAC5C,IAAI,SAA6B;gBAC9B,KAAK,EAAE,SAAS;CAK7B;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IAC1C,IAAI,SAA2B;gBAC5B,GAAG,EAAE,GAAG;CAKrB;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IACxC,IAAI,SAAyB;gBAC1B,KAAK,EAAE,GAAG;CAKvB;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IAC1C,IAAI,SAA2B;gBAC5B,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAK3E;AAED,qBAAa,iBAAkB,SAAQ,SAAS;IACrC,IAAI,SAAsB;gBACvB,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAK3E"}
@@ -6,7 +6,7 @@ export { BlockNotFoundError } from './block.js';
6
6
  export { ChainDoesNotSupportContract, ChainMismatchError, ChainNotFoundError, InvalidChainIdError, } from './chain.js';
7
7
  export { CallExecutionError, ContractFunctionExecutionError, ContractFunctionRevertedError, ContractFunctionZeroDataError, RawContractError, } from './contract.js';
8
8
  export { SizeExceedsPaddingSizeError } from './data.js';
9
- export { DataLengthTooLongError, DataLengthTooShortError, IntegerOutOfRangeError, InvalidBytesBooleanError, InvalidHexBooleanError, InvalidHexValueError, OffsetOutOfBoundsError, } from './encoding.js';
9
+ export { DataLengthTooLongError, DataLengthTooShortError, IntegerOutOfRangeError, InvalidBytesBooleanError, InvalidHexBooleanError, InvalidHexValueError, OffsetOutOfBoundsError, SizeOverflowError, } from './encoding.js';
10
10
  export { EnsAvatarInvalidMetadataError, EnsAvatarInvalidNftUriError, EnsAvatarUnsupportedNamespaceError, EnsAvatarUriResolutionError, } from './ens.js';
11
11
  export { EstimateGasExecutionError } from './estimateGas.js';
12
12
  export { FilterTypeNotSupportedError } from './log.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,+BAA+B,EAC/B,gCAAgC,EAChC,wBAAwB,EACxB,mCAAmC,EACnC,iCAAiC,EACjC,8BAA8B,EAC9B,2BAA2B,EAC3B,qBAAqB,EACrB,8BAA8B,EAC9B,qBAAqB,EACrB,iCAAiC,EACjC,8BAA8B,EAC9B,wBAAwB,EACxB,+BAA+B,EAC/B,iCAAiC,EACjC,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,gBAAgB,GACjB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAA;AAEvD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,kCAAkC,EAClC,2BAA2B,GAC5B,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAE5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAEtD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gCAAgC,EAChC,gBAAgB,GACjB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,qBAAqB,GACtB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,8BAA8B,EAC9B,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,aAAa,EACb,yBAAyB,EACzB,gBAAgB,EAChB,wBAAwB,EACxB,2BAA2B,EAC3B,QAAQ,EACR,gBAAgB,EAChB,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mCAAmC,EACnC,iCAAiC,EACjC,qCAAqC,EACrC,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,+BAA+B,EAC/B,qCAAqC,GACtC,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,+BAA+B,EAC/B,gCAAgC,EAChC,wBAAwB,EACxB,mCAAmC,EACnC,iCAAiC,EACjC,8BAA8B,EAC9B,2BAA2B,EAC3B,qBAAqB,EACrB,8BAA8B,EAC9B,qBAAqB,EACrB,iCAAiC,EACjC,8BAA8B,EAC9B,wBAAwB,EACxB,+BAA+B,EAC/B,iCAAiC,EACjC,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,gBAAgB,GACjB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAA;AAEvD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,kCAAkC,EAClC,2BAA2B,GAC5B,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAE5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAEtD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,gCAAgC,EAChC,gBAAgB,GACjB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,qBAAqB,GACtB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,8BAA8B,EAC9B,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,aAAa,EACb,yBAAyB,EACzB,gBAAgB,EAChB,wBAAwB,EACxB,2BAA2B,EAC3B,QAAQ,EACR,gBAAgB,EAChB,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mCAAmC,EACnC,iCAAiC,EACjC,qCAAqC,EACrC,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,+BAA+B,EAC/B,qCAAqC,GACtC,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const version = "0.4.0-main.20230418T011420";
1
+ export declare const version = "0.4.0-main.20230419T202802";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,25 +1,110 @@
1
1
  import type { ByteArray, Hex } from '../../types/index.js';
2
2
  import { bytesToHex } from './toHex.js';
3
+ export type FromBytesParameters<TTo extends 'string' | 'hex' | 'bigint' | 'number' | 'boolean'> = TTo | {
4
+ /** Size of the bytes. */
5
+ size?: number;
6
+ /** Type to convert to. */
7
+ to: TTo;
8
+ };
3
9
  type FromBytesReturnType<TTo> = TTo extends 'string' ? string : TTo extends 'hex' ? Hex : TTo extends 'bigint' ? bigint : TTo extends 'number' ? number : TTo extends 'boolean' ? boolean : never;
4
10
  /**
5
- * @description Decodes a byte array into a UTF-8 string, hex value, number, bigint or boolean.
11
+ * Decodes a byte array into a UTF-8 string, hex value, number, bigint or boolean.
12
+ *
13
+ * - Docs: https://viem.sh/docs/utilities/fromBytes.html
14
+ * - Example: https://viem.sh/docs/utilities/fromBytes.html#usage
15
+ *
16
+ * @param bytes Byte array to decode.
17
+ * @param toOrOpts Type to convert to or options.
18
+ * @returns Decoded value.
19
+ *
20
+ * @example
21
+ * import { fromBytes } from 'viem'
22
+ * const data = fromBytes(new Uint8Array([1, 164]), 'number')
23
+ * // 420
24
+ *
25
+ * @example
26
+ * import { fromBytes } from 'viem'
27
+ * const data = fromBytes(
28
+ * new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),
29
+ * 'string'
30
+ * )
31
+ * // 'Hello world'
6
32
  */
7
- export declare function fromBytes<TTo extends 'string' | 'hex' | 'bigint' | 'number' | 'boolean'>(bytes: ByteArray, to: TTo): FromBytesReturnType<TTo>;
33
+ export declare function fromBytes<TTo extends 'string' | 'hex' | 'bigint' | 'number' | 'boolean'>(bytes: ByteArray, toOrOpts: FromBytesParameters<TTo>): FromBytesReturnType<TTo>;
34
+ export type BytesToBigIntOpts = {
35
+ /** Whether or not the number of a signed representation. */
36
+ signed?: boolean;
37
+ /** Size of the bytes. */
38
+ size?: number;
39
+ };
8
40
  /**
9
- * @description Decodes a byte array into a bigint.
41
+ * Decodes a byte array into a bigint.
42
+ *
43
+ * - Docs: https://viem.sh/docs/utilities/fromBytes.html#bytestobigint
44
+ *
45
+ * @param bytes Byte array to decode.
46
+ * @param opts Options.
47
+ * @returns BigInt value.
48
+ *
49
+ * @example
50
+ * import { bytesToBigint } from 'viem'
51
+ * const data = bytesToBigint(new Uint8Array([1, 164]))
52
+ * // 420n
10
53
  */
11
- export declare function bytesToBigint(bytes: ByteArray): bigint;
54
+ export declare function bytesToBigint(bytes: ByteArray, opts?: BytesToBigIntOpts): bigint;
55
+ export type BytesToBoolOpts = {
56
+ /** Size of the bytes. */
57
+ size?: number;
58
+ };
12
59
  /**
13
- * @description Decodes a byte array into a boolean.
60
+ * Decodes a byte array into a boolean.
61
+ *
62
+ * - Docs: https://viem.sh/docs/utilities/fromBytes.html#bytestobool
63
+ *
64
+ * @param bytes Byte array to decode.
65
+ * @param opts Options.
66
+ * @returns Boolean value.
67
+ *
68
+ * @example
69
+ * import { bytesToBool } from 'viem'
70
+ * const data = bytesToBool(new Uint8Array([1]))
71
+ * // true
14
72
  */
15
- export declare function bytesToBool(bytes: ByteArray): boolean;
73
+ export declare function bytesToBool(bytes_: ByteArray, opts?: BytesToBoolOpts): boolean;
16
74
  export { bytesToHex };
75
+ export type BytesToNumberOpts = BytesToBigIntOpts;
17
76
  /**
18
- * @description Decodes a byte array into a number.
77
+ * Decodes a byte array into a number.
78
+ *
79
+ * - Docs: https://viem.sh/docs/utilities/fromBytes.html#bytestonumber
80
+ *
81
+ * @param bytes Byte array to decode.
82
+ * @param opts Options.
83
+ * @returns Number value.
84
+ *
85
+ * @example
86
+ * import { bytesToNumber } from 'viem'
87
+ * const data = bytesToNumber(new Uint8Array([1, 164]))
88
+ * // 420
19
89
  */
20
- export declare function bytesToNumber(bytes: ByteArray): number;
90
+ export declare function bytesToNumber(bytes: ByteArray, opts?: BytesToNumberOpts): number;
91
+ export type BytesToStringOpts = {
92
+ /** Size of the bytes. */
93
+ size?: number;
94
+ };
21
95
  /**
22
- * @description Decodes a byte array into a UTF-8 string.
96
+ * Decodes a byte array into a UTF-8 string.
97
+ *
98
+ * - Docs: https://viem.sh/docs/utilities/fromBytes.html#bytestostring
99
+ *
100
+ * @param bytes Byte array to decode.
101
+ * @param opts Options.
102
+ * @returns String value.
103
+ *
104
+ * @example
105
+ * import { bytesToString } from 'viem'
106
+ * const data = bytesToString(new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))
107
+ * // 'Hello world'
23
108
  */
24
- export declare function bytesToString(bytes: ByteArray): string;
109
+ export declare function bytesToString(bytes_: ByteArray, opts?: BytesToStringOpts): string;
25
110
  //# sourceMappingURL=fromBytes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fromBytes.d.ts","sourceRoot":"","sources":["../../../../src/utils/encoding/fromBytes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,KAAK,mBAAmB,CAAC,GAAG,IAAI,GAAG,SAAS,QAAQ,GAChD,MAAM,GACN,GAAG,SAAS,KAAK,GACjB,GAAG,GACH,GAAG,SAAS,QAAQ,GACpB,MAAM,GACN,GAAG,SAAS,QAAQ,GACpB,MAAM,GACN,GAAG,SAAS,SAAS,GACrB,OAAO,GACP,KAAK,CAAA;AAET;;GAEG;AACH,wBAAgB,SAAS,CACvB,GAAG,SAAS,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,EAC9D,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAMrD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAGtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAIrD;AAED,OAAO,EAAE,UAAU,EAAE,CAAA;AAErB;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAGtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAEtD"}
1
+ {"version":3,"file":"fromBytes.d.ts","sourceRoot":"","sources":["../../../../src/utils/encoding/fromBytes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,MAAM,mBAAmB,CAC7B,GAAG,SAAS,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,IAE5D,GAAG,GACH;IACE,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,EAAE,EAAE,GAAG,CAAA;CACR,CAAA;AAEL,KAAK,mBAAmB,CAAC,GAAG,IAAI,GAAG,SAAS,QAAQ,GAChD,MAAM,GACN,GAAG,SAAS,KAAK,GACjB,GAAG,GACH,GAAG,SAAS,QAAQ,GACpB,MAAM,GACN,GAAG,SAAS,QAAQ,GACpB,MAAM,GACN,GAAG,SAAS,SAAS,GACrB,OAAO,GACP,KAAK,CAAA;AAET;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CACvB,GAAG,SAAS,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,EAE9D,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,mBAAmB,CAAC,GAAG,CAAC,GACjC,mBAAmB,CAAC,GAAG,CAAC,CAa1B;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,IAAI,GAAE,iBAAsB,GAC3B,MAAM,CAIR;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAST;AAED,OAAO,EAAE,UAAU,EAAE,CAAA;AAErB,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAA;AAEjD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,IAAI,GAAE,iBAAsB,GAC3B,MAAM,CAIR;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,IAAI,GAAE,iBAAsB,GAC3B,MAAM,CAOR"}
@@ -1,28 +1,138 @@
1
1
  import type { ByteArray, Hex } from '../../types/index.js';
2
- type FromHexReturnType<TTo> = TTo extends 'string' ? string : TTo extends 'bigint' ? bigint : TTo extends 'number' ? number : TTo extends 'bytes' ? ByteArray : TTo extends 'boolean' ? boolean : never;
2
+ export declare function assertSize(hexOrBytes: Hex | ByteArray, { size }: {
3
+ size: number;
4
+ }): void;
5
+ export type FromHexParameters<TTo extends 'string' | 'bigint' | 'number' | 'bytes' | 'boolean'> = TTo | {
6
+ /** Size (in bytes) of the hex value. */
7
+ size?: number;
8
+ /** Type to convert to. */
9
+ to: TTo;
10
+ };
11
+ export type FromHexReturnType<TTo> = TTo extends 'string' ? string : TTo extends 'bigint' ? bigint : TTo extends 'number' ? number : TTo extends 'bytes' ? ByteArray : TTo extends 'boolean' ? boolean : never;
3
12
  /**
4
- * @description Decodes a hex string into a string, number, bigint, boolean, or bytes32 array.
13
+ * Decodes a hex string into a string, number, bigint, boolean, or byte array.
14
+ *
15
+ * - Docs: https://viem.sh/docs/utilities/fromHex.html
16
+ * - Example: https://viem.sh/docs/utilities/fromHex.html#usage
17
+ *
18
+ * @param hex Hex string to decode.
19
+ * @param toOrOpts Type to convert to or options.
20
+ * @returns Decoded value.
21
+ *
22
+ * @example
23
+ * import { fromHex } from 'viem'
24
+ * const data = fromHex('0x1a4', 'number')
25
+ * // 420
26
+ *
27
+ * @example
28
+ * import { fromHex } from 'viem'
29
+ * const data = fromHex('0x48656c6c6f20576f726c6421', 'string')
30
+ * // 'Hello world'
31
+ *
32
+ * @example
33
+ * import { fromHex } from 'viem'
34
+ * const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {
35
+ * size: 32,
36
+ * to: 'string'
37
+ * })
38
+ * // 'Hello world'
5
39
  */
6
- export declare function fromHex<TTo extends 'string' | 'bigint' | 'number' | 'bytes' | 'boolean'>(hex: Hex, to: TTo): FromHexReturnType<TTo>;
40
+ export declare function fromHex<TTo extends 'string' | 'bigint' | 'number' | 'bytes' | 'boolean'>(hex: Hex, toOrOpts: FromHexParameters<TTo>): FromHexReturnType<TTo>;
7
41
  export type HexToBigIntOpts = {
42
+ /** Whether or not the number of a signed representation. */
8
43
  signed?: boolean;
44
+ /** Size (in bytes) of the hex value. */
45
+ size?: number;
9
46
  };
10
47
  /**
11
- * @description Decodes a hex string into a bigint.
48
+ * Decodes a hex value into a bigint.
49
+ *
50
+ * - Docs: https://viem.sh/docs/utilities/fromHex.html#hextobigint
51
+ *
52
+ * @param hex Hex value to decode.
53
+ * @param opts Options.
54
+ * @returns BigInt value.
55
+ *
56
+ * @example
57
+ * import { hexToBigInt } from 'viem'
58
+ * const data = hexToBigInt('0x1a4', { signed: true })
59
+ * // 420n
60
+ *
61
+ * @example
62
+ * import { hexToBigInt } from 'viem'
63
+ * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })
64
+ * // 420n
12
65
  */
13
66
  export declare function hexToBigInt(hex: Hex, opts?: HexToBigIntOpts): bigint;
67
+ export type HexToBoolOpts = {
68
+ /** Size (in bytes) of the hex value. */
69
+ size?: number;
70
+ };
14
71
  /**
15
- * @description Decodes a hex string into a boolean.
72
+ * Decodes a hex value into a boolean.
73
+ *
74
+ * - Docs: https://viem.sh/docs/utilities/fromHex.html#hextobool
75
+ *
76
+ * @param hex Hex value to decode.
77
+ * @param opts Options.
78
+ * @returns Boolean value.
79
+ *
80
+ * @example
81
+ * import { hexToBool } from 'viem'
82
+ * const data = hexToBool('0x1')
83
+ * // true
84
+ *
85
+ * @example
86
+ * import { hexToBool } from 'viem'
87
+ * const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })
88
+ * // true
16
89
  */
17
- export declare function hexToBool(hex: Hex): boolean;
18
- type NumberToHexOpts = HexToBigIntOpts;
90
+ export declare function hexToBool(hex_: Hex, opts?: HexToBoolOpts): boolean;
91
+ export type HexToNumberOpts = HexToBigIntOpts;
19
92
  /**
20
- * @description Decodes a hex string into a number.
93
+ * Decodes a hex string into a number.
94
+ *
95
+ * - Docs: https://viem.sh/docs/utilities/fromHex.html#hextonumber
96
+ *
97
+ * @param hex Hex value to decode.
98
+ * @param opts Options.
99
+ * @returns Number value.
100
+ *
101
+ * @example
102
+ * import { hexToNumber } from 'viem'
103
+ * const data = hexToNumber('0x1a4')
104
+ * // 420
105
+ *
106
+ * @example
107
+ * import { hexToNumber } from 'viem'
108
+ * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })
109
+ * // 420
21
110
  */
22
- export declare function hexToNumber(hex: Hex, opts?: NumberToHexOpts): number;
111
+ export declare function hexToNumber(hex: Hex, opts?: HexToNumberOpts): number;
112
+ export type HexToStringOpts = {
113
+ /** Size (in bytes) of the hex value. */
114
+ size?: number;
115
+ };
23
116
  /**
24
- * @description Decodes a hex string into a UTF-8 string.
117
+ * Decodes a hex value into a UTF-8 string.
118
+ *
119
+ * - Docs: https://viem.sh/docs/utilities/fromHex.html#hextostring
120
+ *
121
+ * @param hex Hex value to decode.
122
+ * @param opts Options.
123
+ * @returns String value.
124
+ *
125
+ * @example
126
+ * import { hexToString } from 'viem'
127
+ * const data = hexToString('0x48656c6c6f20576f726c6421')
128
+ * // 'Hello world!'
129
+ *
130
+ * @example
131
+ * import { hexToString } from 'viem'
132
+ * const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {
133
+ * size: 32,
134
+ * })
135
+ * // 'Hello world'
25
136
  */
26
- export declare function hexToString(hex: Hex): string;
27
- export {};
137
+ export declare function hexToString(hex: Hex, opts?: HexToStringOpts): string;
28
138
  //# sourceMappingURL=fromHex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fromHex.d.ts","sourceRoot":"","sources":["../../../../src/utils/encoding/fromHex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAI1D,KAAK,iBAAiB,CAAC,GAAG,IAAI,GAAG,SAAS,QAAQ,GAC9C,MAAM,GACN,GAAG,SAAS,QAAQ,GACpB,MAAM,GACN,GAAG,SAAS,QAAQ,GACpB,MAAM,GACN,GAAG,SAAS,OAAO,GACnB,SAAS,GACT,GAAG,SAAS,SAAS,GACrB,OAAO,GACP,KAAK,CAAA;AAET;;GAEG;AACH,wBAAgB,OAAO,CACrB,GAAG,SAAS,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,EAChE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAM3C;AAED,MAAM,MAAM,eAAe,GAAG;IAE5B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,eAAoB,GAAG,MAAM,CAWxE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAI3C;AAED,KAAK,eAAe,GAAG,eAAe,CAAA;AAEtC;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,eAAoB,GAAG,MAAM,CAExE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAG5C"}
1
+ {"version":3,"file":"fromHex.d.ts","sourceRoot":"","sources":["../../../../src/utils/encoding/fromHex.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAK1D,wBAAgB,UAAU,CACxB,UAAU,EAAE,GAAG,GAAG,SAAS,EAC3B,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB,IAAI,CAMN;AAED,MAAM,MAAM,iBAAiB,CAC3B,GAAG,SAAS,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,IAE9D,GAAG,GACH;IACE,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,EAAE,EAAE,GAAG,CAAA;CACR,CAAA;AAEL,MAAM,MAAM,iBAAiB,CAAC,GAAG,IAAI,GAAG,SAAS,QAAQ,GACrD,MAAM,GACN,GAAG,SAAS,QAAQ,GACpB,MAAM,GACN,GAAG,SAAS,QAAQ,GACpB,MAAM,GACN,GAAG,SAAS,OAAO,GACnB,SAAS,GACT,GAAG,SAAS,SAAS,GACrB,OAAO,GACP,KAAK,CAAA;AAET;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,OAAO,CACrB,GAAG,SAAS,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,EAChE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CASpE;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,eAAoB,GAAG,MAAM,CAaxE;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAStE;AAED,MAAM,MAAM,eAAe,GAAG,eAAe,CAAA;AAE7C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,eAAoB,GAAG,MAAM,CAExE;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,eAAoB,GAAG,MAAM,CAOxE"}