viem 0.3.3 → 0.3.4

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 (132) hide show
  1. package/README.md +6 -0
  2. package/dist/cjs/actions/public/call.js +97 -10
  3. package/dist/cjs/actions/public/call.js.map +1 -1
  4. package/dist/cjs/actions/public/simulateContract.js +1 -0
  5. package/dist/cjs/actions/public/simulateContract.js.map +1 -1
  6. package/dist/cjs/chains.js +1 -24
  7. package/dist/cjs/chains.js.map +1 -1
  8. package/dist/cjs/clients/createPublicClient.js +2 -1
  9. package/dist/cjs/clients/createPublicClient.js.map +1 -1
  10. package/dist/cjs/clients/transports/fallback.js +1 -1
  11. package/dist/cjs/clients/transports/fallback.js.map +1 -1
  12. package/dist/cjs/constants/contract.js +5 -0
  13. package/dist/cjs/constants/contract.js.map +1 -0
  14. package/dist/cjs/constants/index.js +3 -1
  15. package/dist/cjs/constants/index.js.map +1 -1
  16. package/dist/cjs/errors/chain.js +13 -1
  17. package/dist/cjs/errors/chain.js.map +1 -1
  18. package/dist/cjs/errors/contract.js +1 -1
  19. package/dist/cjs/errors/contract.js.map +1 -1
  20. package/dist/cjs/errors/encoding.js +13 -1
  21. package/dist/cjs/errors/encoding.js.map +1 -1
  22. package/dist/cjs/errors/index.js +5 -2
  23. package/dist/cjs/errors/index.js.map +1 -1
  24. package/dist/cjs/errors/version.js +1 -1
  25. package/dist/cjs/index.js +5 -4
  26. package/dist/cjs/index.js.map +1 -1
  27. package/dist/cjs/utils/encoding/fromBytes.js +29 -12
  28. package/dist/cjs/utils/encoding/fromBytes.js.map +1 -1
  29. package/dist/cjs/utils/encoding/fromHex.js +32 -10
  30. package/dist/cjs/utils/encoding/fromHex.js.map +1 -1
  31. package/dist/cjs/utils/encoding/toBytes.js +31 -15
  32. package/dist/cjs/utils/encoding/toBytes.js.map +1 -1
  33. package/dist/cjs/utils/encoding/toHex.js +31 -20
  34. package/dist/cjs/utils/encoding/toHex.js.map +1 -1
  35. package/dist/cjs/utils/errors/getContractError.js +7 -5
  36. package/dist/cjs/utils/errors/getContractError.js.map +1 -1
  37. package/dist/cjs/utils/promise/createBatchScheduler.js +47 -0
  38. package/dist/cjs/utils/promise/createBatchScheduler.js.map +1 -0
  39. package/dist/cjs/utils/promise/index.js +3 -1
  40. package/dist/cjs/utils/promise/index.js.map +1 -1
  41. package/dist/esm/actions/public/call.js +91 -4
  42. package/dist/esm/actions/public/call.js.map +1 -1
  43. package/dist/esm/actions/public/simulateContract.js +1 -0
  44. package/dist/esm/actions/public/simulateContract.js.map +1 -1
  45. package/dist/esm/clients/createPublicClient.js +2 -1
  46. package/dist/esm/clients/createPublicClient.js.map +1 -1
  47. package/dist/esm/clients/transports/fallback.js +1 -1
  48. package/dist/esm/clients/transports/fallback.js.map +1 -1
  49. package/dist/esm/constants/contract.js +2 -0
  50. package/dist/esm/constants/contract.js.map +1 -0
  51. package/dist/esm/constants/index.js +1 -0
  52. package/dist/esm/constants/index.js.map +1 -1
  53. package/dist/esm/errors/chain.js +11 -0
  54. package/dist/esm/errors/chain.js.map +1 -1
  55. package/dist/esm/errors/contract.js +1 -1
  56. package/dist/esm/errors/contract.js.map +1 -1
  57. package/dist/esm/errors/encoding.js +11 -0
  58. package/dist/esm/errors/encoding.js.map +1 -1
  59. package/dist/esm/errors/index.js +2 -2
  60. package/dist/esm/errors/index.js.map +1 -1
  61. package/dist/esm/errors/version.js +1 -1
  62. package/dist/esm/index.js +1 -1
  63. package/dist/esm/index.js.map +1 -1
  64. package/dist/esm/utils/encoding/fromBytes.js +30 -13
  65. package/dist/esm/utils/encoding/fromBytes.js.map +1 -1
  66. package/dist/esm/utils/encoding/fromHex.js +31 -10
  67. package/dist/esm/utils/encoding/fromHex.js.map +1 -1
  68. package/dist/esm/utils/encoding/toBytes.js +31 -15
  69. package/dist/esm/utils/encoding/toBytes.js.map +1 -1
  70. package/dist/esm/utils/encoding/toHex.js +28 -17
  71. package/dist/esm/utils/encoding/toHex.js.map +1 -1
  72. package/dist/esm/utils/errors/getContractError.js +7 -5
  73. package/dist/esm/utils/errors/getContractError.js.map +1 -1
  74. package/dist/esm/utils/promise/createBatchScheduler.js +43 -0
  75. package/dist/esm/utils/promise/createBatchScheduler.js.map +1 -0
  76. package/dist/esm/utils/promise/index.js +1 -0
  77. package/dist/esm/utils/promise/index.js.map +1 -1
  78. package/dist/types/actions/public/call.d.ts +1 -0
  79. package/dist/types/actions/public/call.d.ts.map +1 -1
  80. package/dist/types/actions/public/simulateContract.d.ts +1 -1
  81. package/dist/types/actions/public/simulateContract.d.ts.map +1 -1
  82. package/dist/types/clients/createPublicClient.d.ts +15 -3
  83. package/dist/types/clients/createPublicClient.d.ts.map +1 -1
  84. package/dist/types/constants/contract.d.ts +2 -0
  85. package/dist/types/constants/contract.d.ts.map +1 -0
  86. package/dist/types/constants/index.d.ts +1 -0
  87. package/dist/types/constants/index.d.ts.map +1 -1
  88. package/dist/types/errors/chain.d.ts +4 -0
  89. package/dist/types/errors/chain.d.ts.map +1 -1
  90. package/dist/types/errors/encoding.d.ts +7 -0
  91. package/dist/types/errors/encoding.d.ts.map +1 -1
  92. package/dist/types/errors/index.d.ts +2 -2
  93. package/dist/types/errors/index.d.ts.map +1 -1
  94. package/dist/types/errors/version.d.ts +1 -1
  95. package/dist/types/index.d.ts +1 -1
  96. package/dist/types/index.d.ts.map +1 -1
  97. package/dist/types/types/eip1193.d.ts +1 -1
  98. package/dist/types/types/eip1193.d.ts.map +1 -1
  99. package/dist/types/utils/encoding/fromBytes.d.ts +95 -10
  100. package/dist/types/utils/encoding/fromBytes.d.ts.map +1 -1
  101. package/dist/types/utils/encoding/fromHex.d.ts +122 -12
  102. package/dist/types/utils/encoding/fromHex.d.ts.map +1 -1
  103. package/dist/types/utils/encoding/toBytes.d.ts +113 -9
  104. package/dist/types/utils/encoding/toBytes.d.ts.map +1 -1
  105. package/dist/types/utils/encoding/toHex.d.ts +120 -10
  106. package/dist/types/utils/encoding/toHex.d.ts.map +1 -1
  107. package/dist/types/utils/errors/getContractError.d.ts.map +1 -1
  108. package/dist/types/utils/promise/createBatchScheduler.d.ts +15 -0
  109. package/dist/types/utils/promise/createBatchScheduler.d.ts.map +1 -0
  110. package/dist/types/utils/promise/index.d.ts +1 -0
  111. package/dist/types/utils/promise/index.d.ts.map +1 -1
  112. package/package.json +1 -1
  113. package/src/actions/public/call.ts +141 -7
  114. package/src/actions/public/simulateContract.ts +2 -1
  115. package/src/clients/createPublicClient.ts +17 -1
  116. package/src/clients/transports/fallback.ts +1 -1
  117. package/src/constants/contract.ts +1 -0
  118. package/src/constants/index.ts +2 -0
  119. package/src/errors/chain.ts +8 -0
  120. package/src/errors/contract.ts +1 -1
  121. package/src/errors/encoding.ts +9 -0
  122. package/src/errors/index.ts +2 -0
  123. package/src/errors/version.ts +1 -1
  124. package/src/index.ts +1 -0
  125. package/src/types/eip1193.ts +1 -1
  126. package/src/utils/encoding/fromBytes.ts +147 -18
  127. package/src/utils/encoding/fromHex.ts +162 -19
  128. package/src/utils/encoding/toBytes.ts +148 -18
  129. package/src/utils/encoding/toHex.ts +151 -26
  130. package/src/utils/errors/getContractError.ts +9 -5
  131. package/src/utils/promise/createBatchScheduler.ts +82 -0
  132. package/src/utils/promise/index.ts +1 -0
@@ -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"}
@@ -1,21 +1,125 @@
1
1
  import type { ByteArray, Hex } from '../../types/index.js';
2
2
  import type { NumberToHexOpts } from './toHex.js';
3
- /** @description Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array. */
4
- export declare function toBytes(value: string | bigint | number | boolean | Hex): ByteArray;
3
+ export type ToBytesParameters = {
4
+ /** Size of the output bytes. */
5
+ size?: number;
6
+ };
5
7
  /**
6
- * @description Encodes a boolean into a byte array.
8
+ * Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array.
9
+ *
10
+ * - Docs: https://viem.sh/docs/utilities/toBytes.html
11
+ * - Example: https://viem.sh/docs/utilities/toBytes.html#usage
12
+ *
13
+ * @param value Value to encode.
14
+ * @param opts Options.
15
+ * @returns Byte array value.
16
+ *
17
+ * @example
18
+ * import { toBytes } from 'viem'
19
+ * const data = toBytes('Hello world')
20
+ * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])
21
+ *
22
+ * @example
23
+ * import { toBytes } from 'viem'
24
+ * const data = toBytes(420)
25
+ * // Uint8Array([1, 164])
26
+ *
27
+ * @example
28
+ * import { toBytes } from 'viem'
29
+ * const data = toBytes(420, { size: 4 })
30
+ * // Uint8Array([0, 0, 1, 164])
7
31
  */
8
- export declare function boolToBytes(value: boolean): Uint8Array;
32
+ export declare function toBytes(value: string | bigint | number | boolean | Hex, opts?: ToBytesParameters): ByteArray;
33
+ export type BoolToHexOpts = {
34
+ /** Size of the output bytes. */
35
+ size?: number;
36
+ };
9
37
  /**
10
- * @description Encodes a hex string into a byte array.
38
+ * Encodes a boolean into a byte array.
39
+ *
40
+ * - Docs: https://viem.sh/docs/utilities/toBytes.html#booltobytes
41
+ *
42
+ * @param value Boolean value to encode.
43
+ * @param opts Options.
44
+ * @returns Byte array value.
45
+ *
46
+ * @example
47
+ * import { boolToBytes } from 'viem'
48
+ * const data = boolToBytes(true)
49
+ * // Uint8Array([1])
50
+ *
51
+ * @example
52
+ * import { boolToBytes } from 'viem'
53
+ * const data = boolToBytes(true, { size: 32 })
54
+ * // Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])
11
55
  */
12
- export declare function hexToBytes(hex_: Hex): ByteArray;
56
+ export declare function boolToBytes(value: boolean, opts?: BoolToHexOpts): Uint8Array;
57
+ export type HexToBytesOpts = {
58
+ /** Size of the output bytes. */
59
+ size?: number;
60
+ };
13
61
  /**
14
- * @description Encodes a number into a byte array.
62
+ * Encodes a hex string into a byte array.
63
+ *
64
+ * - Docs: https://viem.sh/docs/utilities/toBytes.html#hextobytes
65
+ *
66
+ * @param hex Hex string to encode.
67
+ * @param opts Options.
68
+ * @returns Byte array value.
69
+ *
70
+ * @example
71
+ * import { hexToBytes } from 'viem'
72
+ * const data = hexToBytes('0x48656c6c6f20776f726c6421')
73
+ * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])
74
+ *
75
+ * @example
76
+ * import { hexToBytes } from 'viem'
77
+ * const data = hexToBytes('0x48656c6c6f20776f726c6421', { size: 32 })
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
+ */
80
+ export declare function hexToBytes(hex_: Hex, opts?: HexToBytesOpts): ByteArray;
81
+ /**
82
+ * Encodes a number into a byte array.
83
+ *
84
+ * - Docs: https://viem.sh/docs/utilities/toBytes.html#numbertobytes
85
+ *
86
+ * @param value Number to encode.
87
+ * @param opts Options.
88
+ * @returns Byte array value.
89
+ *
90
+ * @example
91
+ * import { numberToBytes } from 'viem'
92
+ * const data = numberToBytes(420)
93
+ * // Uint8Array([1, 164])
94
+ *
95
+ * @example
96
+ * import { numberToBytes } from 'viem'
97
+ * const data = numberToBytes(420, { size: 4 })
98
+ * // Uint8Array([0, 0, 1, 164])
15
99
  */
16
100
  export declare function numberToBytes(value: bigint | number, opts?: NumberToHexOpts): Uint8Array;
101
+ export type StringToBytesOpts = {
102
+ /** Size of the output bytes. */
103
+ size?: number;
104
+ };
17
105
  /**
18
- * @description Encodes a UTF-8 string into a byte array.
106
+ * Encodes a UTF-8 string into a byte array.
107
+ *
108
+ * - Docs: https://viem.sh/docs/utilities/toBytes.html#stringtobytes
109
+ *
110
+ * @param value String to encode.
111
+ * @param opts Options.
112
+ * @returns Byte array value.
113
+ *
114
+ * @example
115
+ * import { stringToBytes } from 'viem'
116
+ * const data = stringToBytes('Hello world!')
117
+ * // Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])
118
+ *
119
+ * @example
120
+ * import { stringToBytes } from 'viem'
121
+ * const data = stringToBytes('Hello world!', { size: 32 })
122
+ * // 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])
19
123
  */
20
- export declare function stringToBytes(value: string): ByteArray;
124
+ export declare function stringToBytes(value: string, opts?: StringToBytesOpts): ByteArray;
21
125
  //# sourceMappingURL=toBytes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toBytes.d.ts","sourceRoot":"","sources":["../../../../src/utils/encoding/toBytes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAKjD,iGAAiG;AACjG,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,GAC9C,SAAS,CAMX;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,cAIzC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,SAAS,CAe/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,cAG3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAEtD"}
1
+ {"version":3,"file":"toBytes.d.ts","sourceRoot":"","sources":["../../../../src/utils/encoding/toBytes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAI1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAKjD,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,CAsB1E;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,29 +1,139 @@
1
1
  import type { ByteArray, Hex } from '../../types/index.js';
2
+ export type ToHexParameters = {
3
+ /** The size (in bytes) of the output hex value. */
4
+ size?: number;
5
+ };
2
6
  /**
3
- * @description Encodes a boolean into a hex string
7
+ * Encodes a string, number, bigint, or ByteArray into a hex string
8
+ *
9
+ * - Docs: https://viem.sh/docs/utilities/toHex.html
10
+ * - Example: https://viem.sh/docs/utilities/toHex.html#usage
11
+ *
12
+ * @param value Value to encode.
13
+ * @param opts Options.
14
+ * @returns Hex value.
15
+ *
16
+ * @example
17
+ * import { toHex } from 'viem'
18
+ * const data = toHex('Hello world')
19
+ * // '0x48656c6c6f20776f726c6421'
20
+ *
21
+ * @example
22
+ * import { toHex } from 'viem'
23
+ * const data = toHex(420)
24
+ * // '0x1a4'
25
+ *
26
+ * @example
27
+ * import { toHex } from 'viem'
28
+ * const data = toHex('Hello world', { size: 32 })
29
+ * // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'
4
30
  */
5
- export declare function boolToHex(value: boolean): Hex;
31
+ export declare function toHex(value: string | number | bigint | boolean | ByteArray, opts?: ToHexParameters): Hex;
32
+ export type BoolToHexOpts = {
33
+ /** The size (in bytes) of the output hex value. */
34
+ size?: number;
35
+ };
6
36
  /**
7
- * @description Encodes a bytes array into a hex string
37
+ * Encodes a boolean into a hex string
38
+ *
39
+ * - Docs: https://viem.sh/docs/utilities/toHex.html#booltohex
40
+ *
41
+ * @param value Value to encode.
42
+ * @param opts Options.
43
+ * @returns Hex value.
44
+ *
45
+ * @example
46
+ * import { boolToHex } from 'viem'
47
+ * const data = boolToHex(true)
48
+ * // '0x1'
49
+ *
50
+ * @example
51
+ * import { boolToHex } from 'viem'
52
+ * const data = boolToHex(false)
53
+ * // '0x0'
54
+ *
55
+ * @example
56
+ * import { boolToHex } from 'viem'
57
+ * const data = boolToHex(true, { size: 32 })
58
+ * // '0x0000000000000000000000000000000000000000000000000000000000000001'
8
59
  */
9
- export declare function bytesToHex(value: ByteArray): Hex;
60
+ export declare function boolToHex(value: boolean, opts?: BoolToHexOpts): Hex;
61
+ export type BytesToHexOpts = {
62
+ /** The size (in bytes) of the output hex value. */
63
+ size?: number;
64
+ };
10
65
  /**
11
- * @description Encodes a string, number, bigint, or ByteArray into a hex string
66
+ * Encodes a bytes array into a hex string
67
+ *
68
+ * - Docs: https://viem.sh/docs/utilities/toHex.html#bytestohex
69
+ *
70
+ * @param value Value to encode.
71
+ * @param opts Options.
72
+ * @returns Hex value.
73
+ *
74
+ * @example
75
+ * import { bytesToHex } from 'viem'
76
+ * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])
77
+ * // '0x48656c6c6f20576f726c6421'
78
+ *
79
+ * @example
80
+ * import { bytesToHex } from 'viem'
81
+ * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })
82
+ * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'
12
83
  */
13
- export declare function toHex(value: string | number | bigint | boolean | ByteArray): Hex;
84
+ export declare function bytesToHex(value: ByteArray, opts?: BytesToHexOpts): Hex;
14
85
  export type NumberToHexOpts = {
86
+ /** Whether or not the number of a signed representation. */
15
87
  signed?: boolean;
88
+ /** The size (in bytes) of the output hex value. */
16
89
  size: number;
17
90
  } | {
18
91
  signed?: never;
19
- size?: never;
92
+ /** The size (in bytes) of the output hex value. */
93
+ size?: number;
20
94
  };
21
95
  /**
22
- * @description Encodes a number or bigint into a hex string
96
+ * Encodes a number or bigint into a hex string
97
+ *
98
+ * - Docs: https://viem.sh/docs/utilities/toHex.html#numbertohex
99
+ *
100
+ * @param value Value to encode.
101
+ * @param opts Options.
102
+ * @returns Hex value.
103
+ *
104
+ * @example
105
+ * import { numberToHex } from 'viem'
106
+ * const data = numberToHex(420)
107
+ * // '0x1a4'
108
+ *
109
+ * @example
110
+ * import { numberToHex } from 'viem'
111
+ * const data = numberToHex(420, { size: 32 })
112
+ * // '0x00000000000000000000000000000000000000000000000000000000000001a4'
23
113
  */
24
114
  export declare function numberToHex(value_: number | bigint, opts?: NumberToHexOpts): Hex;
115
+ export type StringToHexOpts = {
116
+ /** The size (in bytes) of the output hex value. */
117
+ size?: number;
118
+ };
25
119
  /**
26
- * @description Encodes a UTF-8 string into a hex string
120
+ * Encodes a UTF-8 string into a hex string
121
+ *
122
+ * - Docs: https://viem.sh/docs/utilities/toHex.html#stringtohex
123
+ *
124
+ * @param value Value to encode.
125
+ * @param opts Options.
126
+ * @returns Hex value.
127
+ *
128
+ * @example
129
+ * import { stringToHex } from 'viem'
130
+ * const data = stringToHex('Hello World!')
131
+ * // '0x48656c6c6f20576f726c6421'
132
+ *
133
+ * @example
134
+ * import { stringToHex } from 'viem'
135
+ * const data = stringToHex('Hello World!', { size: 32 })
136
+ * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'
27
137
  */
28
- export declare function stringToHex(value_: string): Hex;
138
+ export declare function stringToHex(value_: string, opts?: StringToHexOpts): Hex;
29
139
  //# sourceMappingURL=toHex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toHex.d.ts","sourceRoot":"","sources":["../../../../src/utils/encoding/toHex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAO1D;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAE7C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAMhD;AAED;;GAEG;AACH,wBAAgB,KAAK,CACnB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GACpD,GAAG,CAQL;AAED,MAAM,MAAM,eAAe,GACvB;IAEE,MAAM,CAAC,EAAE,OAAO,CAAA;IAEhB,IAAI,EAAE,MAAM,CAAA;CACb,GACD;IACE,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,IAAI,CAAC,EAAE,KAAK,CAAA;CACb,CAAA;AAEL;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,IAAI,GAAE,eAAoB,GACzB,GAAG,CAgCL;AAID;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAG/C"}
1
+ {"version":3,"file":"toHex.d.ts","sourceRoot":"","sources":["../../../../src/utils/encoding/toHex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAQ1D,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getContractError.d.ts","sourceRoot":"","sources":["../../../../src/utils/errors/getContractError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAEL,8BAA8B,EAG/B,MAAM,uBAAuB,CAAA;AAM9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAInD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,SAAS,EACd,EACE,GAAG,EACH,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,MAAM,GACP,EAAE;IACD,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,GAAG,CAAA;IACT,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,kCA+BF"}
1
+ {"version":3,"file":"getContractError.d.ts","sourceRoot":"","sources":["../../../../src/utils/errors/getContractError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAEL,8BAA8B,EAG/B,MAAM,uBAAuB,CAAA;AAM9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAInD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,SAAS,EACd,EACE,GAAG,EACH,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,MAAM,GACP,EAAE;IACD,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,GAAG,CAAA;IACT,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,kCAmCF"}
@@ -0,0 +1,15 @@
1
+ type Resolved<TReturnType extends readonly unknown[] = any> = [
2
+ result: TReturnType[number],
3
+ results: TReturnType
4
+ ];
5
+ export declare function createBatchScheduler<TParameters, TReturnType extends readonly unknown[]>({ fn, id, shouldSplitBatch, wait, }: {
6
+ fn: (args: TParameters[]) => Promise<TReturnType>;
7
+ id: number | string;
8
+ shouldSplitBatch?: (args: TParameters[]) => boolean;
9
+ wait?: number;
10
+ }): {
11
+ flush: () => boolean;
12
+ schedule(args: TParameters): Promise<Resolved<TReturnType>>;
13
+ };
14
+ export {};
15
+ //# sourceMappingURL=createBatchScheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBatchScheduler.d.ts","sourceRoot":"","sources":["../../../../src/utils/promise/createBatchScheduler.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,CAAC,WAAW,SAAS,SAAS,OAAO,EAAE,GAAG,GAAG,IAAI;IAC5D,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;IAC3B,OAAO,EAAE,WAAW;CACrB,CAAA;AAWD,wBAAgB,oBAAoB,CAClC,WAAW,EACX,WAAW,SAAS,SAAS,OAAO,EAAE,EACtC,EACA,EAAE,EACF,EAAE,EACF,gBAAgB,EAChB,IAAQ,GACT,EAAE;IACD,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;IACjD,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAA;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;;mBAgCwB,WAAW;EAsBnC"}
@@ -1,3 +1,4 @@
1
+ export { createBatchScheduler } from './createBatchScheduler.js';
1
2
  export { getCache, withCache } from './withCache.js';
2
3
  export { withRetry } from './withRetry.js';
3
4
  export { withTimeout } from './withTimeout.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/promise/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/promise/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
package/package.json CHANGED
@@ -12,7 +12,7 @@
12
12
  "isomorphic-ws": "5.0.0",
13
13
  "ws": "8.12.0"
14
14
  },
15
- "version": "0.3.3",
15
+ "version": "0.3.4",
16
16
  "files": [
17
17
  "dist",
18
18
  "!dist/**/*.tsbuildinfo",