viem 2.21.1 → 2.21.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (259) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/_cjs/account-abstraction/index.js +6 -2
  3. package/_cjs/account-abstraction/index.js.map +1 -1
  4. package/_cjs/celo/serializers.js +2 -1
  5. package/_cjs/celo/serializers.js.map +1 -1
  6. package/_cjs/chains/definitions/acala.js +0 -4
  7. package/_cjs/chains/definitions/acala.js.map +1 -1
  8. package/_cjs/chains/definitions/bahamut.js +0 -12
  9. package/_cjs/chains/definitions/bahamut.js.map +1 -1
  10. package/_cjs/chains/definitions/beam.js +0 -4
  11. package/_cjs/chains/definitions/beam.js.map +1 -1
  12. package/_cjs/chains/definitions/beamTestnet.js +0 -4
  13. package/_cjs/chains/definitions/beamTestnet.js.map +1 -1
  14. package/_cjs/chains/definitions/bitTorrent.js +0 -1
  15. package/_cjs/chains/definitions/bitTorrent.js.map +1 -1
  16. package/_cjs/chains/definitions/bitTorrentTestnet.js +0 -1
  17. package/_cjs/chains/definitions/bitTorrentTestnet.js.map +1 -1
  18. package/_cjs/chains/definitions/bobSepolia.js +0 -4
  19. package/_cjs/chains/definitions/bobSepolia.js.map +1 -1
  20. package/_cjs/chains/definitions/defichainEvm.js +0 -3
  21. package/_cjs/chains/definitions/defichainEvm.js.map +1 -1
  22. package/_cjs/chains/definitions/defichainEvmTestnet.js +0 -3
  23. package/_cjs/chains/definitions/defichainEvmTestnet.js.map +1 -1
  24. package/_cjs/chains/definitions/jbc.js +0 -3
  25. package/_cjs/chains/definitions/jbc.js.map +1 -1
  26. package/_cjs/chains/definitions/kaia.js +1 -0
  27. package/_cjs/chains/definitions/kaia.js.map +1 -1
  28. package/_cjs/chains/definitions/karura.js +0 -4
  29. package/_cjs/chains/definitions/karura.js.map +1 -1
  30. package/_cjs/chains/definitions/kcc.js +0 -3
  31. package/_cjs/chains/definitions/kcc.js.map +1 -1
  32. package/_cjs/chains/definitions/mandala.js +0 -4
  33. package/_cjs/chains/definitions/mandala.js.map +1 -1
  34. package/_cjs/chains/definitions/metis.js +1 -6
  35. package/_cjs/chains/definitions/metis.js.map +1 -1
  36. package/_cjs/chains/definitions/oasisTestnet.js +0 -1
  37. package/_cjs/chains/definitions/oasisTestnet.js.map +1 -1
  38. package/_cjs/chains/definitions/oortmainnetDev.js +0 -4
  39. package/_cjs/chains/definitions/oortmainnetDev.js.map +1 -1
  40. package/_cjs/chains/definitions/pgn.js +0 -5
  41. package/_cjs/chains/definitions/pgn.js.map +1 -1
  42. package/_cjs/chains/definitions/pgnTestnet.js +0 -5
  43. package/_cjs/chains/definitions/pgnTestnet.js.map +1 -1
  44. package/_cjs/chains/definitions/polygon.js +1 -1
  45. package/_cjs/chains/definitions/polygon.js.map +1 -1
  46. package/_cjs/chains/definitions/sapphire.js +0 -5
  47. package/_cjs/chains/definitions/sapphire.js.map +1 -1
  48. package/_cjs/chains/definitions/sapphireTestnet.js +0 -5
  49. package/_cjs/chains/definitions/sapphireTestnet.js.map +1 -1
  50. package/_cjs/chains/definitions/taikoKatla.js +0 -3
  51. package/_cjs/chains/definitions/taikoKatla.js.map +1 -1
  52. package/_cjs/chains/definitions/wemix.js +0 -1
  53. package/_cjs/chains/definitions/wemix.js.map +1 -1
  54. package/_cjs/chains/definitions/wemixTestnet.js +0 -1
  55. package/_cjs/chains/definitions/wemixTestnet.js.map +1 -1
  56. package/_cjs/chains/definitions/xdc.js +0 -4
  57. package/_cjs/chains/definitions/xdc.js.map +1 -1
  58. package/_cjs/chains/definitions/zkFair.js +0 -3
  59. package/_cjs/chains/definitions/zkFair.js.map +1 -1
  60. package/_cjs/chains/definitions/zkFairTestnet.js +0 -3
  61. package/_cjs/chains/definitions/zkFairTestnet.js.map +1 -1
  62. package/_cjs/chains/index.js.map +1 -1
  63. package/_cjs/errors/unit.js +13 -0
  64. package/_cjs/errors/unit.js.map +1 -0
  65. package/_cjs/errors/version.js +1 -1
  66. package/_cjs/index.js +7 -5
  67. package/_cjs/index.js.map +1 -1
  68. package/_cjs/utils/lru.js +8 -0
  69. package/_cjs/utils/lru.js.map +1 -1
  70. package/_cjs/utils/transaction/assertRequest.js +2 -1
  71. package/_cjs/utils/transaction/assertRequest.js.map +1 -1
  72. package/_cjs/utils/transaction/assertTransaction.js +4 -3
  73. package/_cjs/utils/transaction/assertTransaction.js.map +1 -1
  74. package/_cjs/utils/unit/parseUnits.js +3 -0
  75. package/_cjs/utils/unit/parseUnits.js.map +1 -1
  76. package/_esm/account-abstraction/index.js +2 -0
  77. package/_esm/account-abstraction/index.js.map +1 -1
  78. package/_esm/celo/serializers.js +3 -2
  79. package/_esm/celo/serializers.js.map +1 -1
  80. package/_esm/chains/definitions/acala.js +0 -4
  81. package/_esm/chains/definitions/acala.js.map +1 -1
  82. package/_esm/chains/definitions/bahamut.js +0 -12
  83. package/_esm/chains/definitions/bahamut.js.map +1 -1
  84. package/_esm/chains/definitions/beam.js +0 -4
  85. package/_esm/chains/definitions/beam.js.map +1 -1
  86. package/_esm/chains/definitions/beamTestnet.js +0 -4
  87. package/_esm/chains/definitions/beamTestnet.js.map +1 -1
  88. package/_esm/chains/definitions/bitTorrent.js +0 -1
  89. package/_esm/chains/definitions/bitTorrent.js.map +1 -1
  90. package/_esm/chains/definitions/bitTorrentTestnet.js +0 -1
  91. package/_esm/chains/definitions/bitTorrentTestnet.js.map +1 -1
  92. package/_esm/chains/definitions/bobSepolia.js +0 -4
  93. package/_esm/chains/definitions/bobSepolia.js.map +1 -1
  94. package/_esm/chains/definitions/defichainEvm.js +0 -3
  95. package/_esm/chains/definitions/defichainEvm.js.map +1 -1
  96. package/_esm/chains/definitions/defichainEvmTestnet.js +0 -3
  97. package/_esm/chains/definitions/defichainEvmTestnet.js.map +1 -1
  98. package/_esm/chains/definitions/jbc.js +0 -3
  99. package/_esm/chains/definitions/jbc.js.map +1 -1
  100. package/_esm/chains/definitions/kaia.js +1 -0
  101. package/_esm/chains/definitions/kaia.js.map +1 -1
  102. package/_esm/chains/definitions/karura.js +0 -4
  103. package/_esm/chains/definitions/karura.js.map +1 -1
  104. package/_esm/chains/definitions/kcc.js +0 -3
  105. package/_esm/chains/definitions/kcc.js.map +1 -1
  106. package/_esm/chains/definitions/mandala.js +0 -4
  107. package/_esm/chains/definitions/mandala.js.map +1 -1
  108. package/_esm/chains/definitions/metis.js +1 -6
  109. package/_esm/chains/definitions/metis.js.map +1 -1
  110. package/_esm/chains/definitions/oasisTestnet.js +0 -1
  111. package/_esm/chains/definitions/oasisTestnet.js.map +1 -1
  112. package/_esm/chains/definitions/oortmainnetDev.js +0 -4
  113. package/_esm/chains/definitions/oortmainnetDev.js.map +1 -1
  114. package/_esm/chains/definitions/pgn.js +0 -5
  115. package/_esm/chains/definitions/pgn.js.map +1 -1
  116. package/_esm/chains/definitions/pgnTestnet.js +0 -5
  117. package/_esm/chains/definitions/pgnTestnet.js.map +1 -1
  118. package/_esm/chains/definitions/polygon.js +1 -1
  119. package/_esm/chains/definitions/polygon.js.map +1 -1
  120. package/_esm/chains/definitions/sapphire.js +0 -5
  121. package/_esm/chains/definitions/sapphire.js.map +1 -1
  122. package/_esm/chains/definitions/sapphireTestnet.js +0 -5
  123. package/_esm/chains/definitions/sapphireTestnet.js.map +1 -1
  124. package/_esm/chains/definitions/taikoKatla.js +0 -3
  125. package/_esm/chains/definitions/taikoKatla.js.map +1 -1
  126. package/_esm/chains/definitions/wemix.js +0 -1
  127. package/_esm/chains/definitions/wemix.js.map +1 -1
  128. package/_esm/chains/definitions/wemixTestnet.js +0 -1
  129. package/_esm/chains/definitions/wemixTestnet.js.map +1 -1
  130. package/_esm/chains/definitions/xdc.js +0 -4
  131. package/_esm/chains/definitions/xdc.js.map +1 -1
  132. package/_esm/chains/definitions/zkFair.js +0 -3
  133. package/_esm/chains/definitions/zkFair.js.map +1 -1
  134. package/_esm/chains/definitions/zkFairTestnet.js +0 -3
  135. package/_esm/chains/definitions/zkFairTestnet.js.map +1 -1
  136. package/_esm/chains/index.js +1 -0
  137. package/_esm/chains/index.js.map +1 -1
  138. package/_esm/errors/unit.js +9 -0
  139. package/_esm/errors/unit.js.map +1 -0
  140. package/_esm/errors/version.js +1 -1
  141. package/_esm/index.js +1 -0
  142. package/_esm/index.js.map +1 -1
  143. package/_esm/utils/lru.js +8 -0
  144. package/_esm/utils/lru.js.map +1 -1
  145. package/_esm/utils/transaction/assertRequest.js +2 -1
  146. package/_esm/utils/transaction/assertRequest.js.map +1 -1
  147. package/_esm/utils/transaction/assertTransaction.js +4 -3
  148. package/_esm/utils/transaction/assertTransaction.js.map +1 -1
  149. package/_esm/utils/unit/parseUnits.js +3 -0
  150. package/_esm/utils/unit/parseUnits.js.map +1 -1
  151. package/_types/account-abstraction/index.d.ts +2 -0
  152. package/_types/account-abstraction/index.d.ts.map +1 -1
  153. package/_types/celo/serializers.d.ts.map +1 -1
  154. package/_types/chains/definitions/acala.d.ts +0 -4
  155. package/_types/chains/definitions/acala.d.ts.map +1 -1
  156. package/_types/chains/definitions/bahamut.d.ts +0 -4
  157. package/_types/chains/definitions/bahamut.d.ts.map +1 -1
  158. package/_types/chains/definitions/beam.d.ts +0 -4
  159. package/_types/chains/definitions/beam.d.ts.map +1 -1
  160. package/_types/chains/definitions/beamTestnet.d.ts +0 -4
  161. package/_types/chains/definitions/beamTestnet.d.ts.map +1 -1
  162. package/_types/chains/definitions/bitTorrent.d.ts +0 -3
  163. package/_types/chains/definitions/bitTorrent.d.ts.map +1 -1
  164. package/_types/chains/definitions/bitTorrentTestnet.d.ts +0 -3
  165. package/_types/chains/definitions/bitTorrentTestnet.d.ts.map +1 -1
  166. package/_types/chains/definitions/bobSepolia.d.ts +0 -4
  167. package/_types/chains/definitions/bobSepolia.d.ts.map +1 -1
  168. package/_types/chains/definitions/defichainEvm.d.ts +0 -3
  169. package/_types/chains/definitions/defichainEvm.d.ts.map +1 -1
  170. package/_types/chains/definitions/defichainEvmTestnet.d.ts +0 -3
  171. package/_types/chains/definitions/defichainEvmTestnet.d.ts.map +1 -1
  172. package/_types/chains/definitions/jbc.d.ts +0 -3
  173. package/_types/chains/definitions/jbc.d.ts.map +1 -1
  174. package/_types/chains/definitions/kaia.d.ts +1 -0
  175. package/_types/chains/definitions/kaia.d.ts.map +1 -1
  176. package/_types/chains/definitions/karura.d.ts +0 -4
  177. package/_types/chains/definitions/karura.d.ts.map +1 -1
  178. package/_types/chains/definitions/kcc.d.ts +0 -3
  179. package/_types/chains/definitions/kcc.d.ts.map +1 -1
  180. package/_types/chains/definitions/mandala.d.ts +0 -4
  181. package/_types/chains/definitions/mandala.d.ts.map +1 -1
  182. package/_types/chains/definitions/metis.d.ts +1 -6
  183. package/_types/chains/definitions/metis.d.ts.map +1 -1
  184. package/_types/chains/definitions/oasisTestnet.d.ts +0 -3
  185. package/_types/chains/definitions/oasisTestnet.d.ts.map +1 -1
  186. package/_types/chains/definitions/oortmainnetDev.d.ts +0 -4
  187. package/_types/chains/definitions/oortmainnetDev.d.ts.map +1 -1
  188. package/_types/chains/definitions/pgn.d.ts +0 -5
  189. package/_types/chains/definitions/pgn.d.ts.map +1 -1
  190. package/_types/chains/definitions/pgnTestnet.d.ts +0 -5
  191. package/_types/chains/definitions/pgnTestnet.d.ts.map +1 -1
  192. package/_types/chains/definitions/polygon.d.ts +2 -2
  193. package/_types/chains/definitions/sapphire.d.ts +0 -5
  194. package/_types/chains/definitions/sapphire.d.ts.map +1 -1
  195. package/_types/chains/definitions/sapphireTestnet.d.ts +0 -5
  196. package/_types/chains/definitions/sapphireTestnet.d.ts.map +1 -1
  197. package/_types/chains/definitions/taikoKatla.d.ts +0 -3
  198. package/_types/chains/definitions/taikoKatla.d.ts.map +1 -1
  199. package/_types/chains/definitions/wemix.d.ts +0 -3
  200. package/_types/chains/definitions/wemix.d.ts.map +1 -1
  201. package/_types/chains/definitions/wemixTestnet.d.ts +0 -3
  202. package/_types/chains/definitions/wemixTestnet.d.ts.map +1 -1
  203. package/_types/chains/definitions/xdc.d.ts +0 -4
  204. package/_types/chains/definitions/xdc.d.ts.map +1 -1
  205. package/_types/chains/definitions/zkFair.d.ts +0 -3
  206. package/_types/chains/definitions/zkFair.d.ts.map +1 -1
  207. package/_types/chains/definitions/zkFairTestnet.d.ts +0 -3
  208. package/_types/chains/definitions/zkFairTestnet.d.ts.map +1 -1
  209. package/_types/chains/index.d.ts +1 -0
  210. package/_types/chains/index.d.ts.map +1 -1
  211. package/_types/errors/unit.d.ts +10 -0
  212. package/_types/errors/unit.d.ts.map +1 -0
  213. package/_types/errors/version.d.ts +1 -1
  214. package/_types/index.d.ts +1 -0
  215. package/_types/index.d.ts.map +1 -1
  216. package/_types/utils/lru.d.ts +1 -0
  217. package/_types/utils/lru.d.ts.map +1 -1
  218. package/_types/utils/transaction/assertRequest.d.ts.map +1 -1
  219. package/_types/utils/transaction/assertTransaction.d.ts.map +1 -1
  220. package/_types/utils/unit/parseUnits.d.ts.map +1 -1
  221. package/account-abstraction/index.ts +13 -0
  222. package/celo/serializers.ts +3 -2
  223. package/chains/definitions/acala.ts +0 -4
  224. package/chains/definitions/bahamut.ts +0 -12
  225. package/chains/definitions/beam.ts +0 -4
  226. package/chains/definitions/beamTestnet.ts +0 -4
  227. package/chains/definitions/bitTorrent.ts +0 -1
  228. package/chains/definitions/bitTorrentTestnet.ts +0 -1
  229. package/chains/definitions/bobSepolia.ts +0 -4
  230. package/chains/definitions/defichainEvm.ts +0 -3
  231. package/chains/definitions/defichainEvmTestnet.ts +0 -3
  232. package/chains/definitions/jbc.ts +0 -3
  233. package/chains/definitions/kaia.ts +1 -0
  234. package/chains/definitions/karura.ts +0 -4
  235. package/chains/definitions/kcc.ts +0 -3
  236. package/chains/definitions/mandala.ts +0 -4
  237. package/chains/definitions/metis.ts +1 -6
  238. package/chains/definitions/oasisTestnet.ts +0 -1
  239. package/chains/definitions/oortmainnetDev.ts +0 -4
  240. package/chains/definitions/pgn.ts +0 -5
  241. package/chains/definitions/pgnTestnet.ts +0 -5
  242. package/chains/definitions/polygon.ts +1 -1
  243. package/chains/definitions/sapphire.ts +0 -5
  244. package/chains/definitions/sapphireTestnet.ts +0 -5
  245. package/chains/definitions/taikoKatla.ts +0 -3
  246. package/chains/definitions/wemix.ts +0 -1
  247. package/chains/definitions/wemixTestnet.ts +0 -1
  248. package/chains/definitions/xdc.ts +0 -4
  249. package/chains/definitions/zkFair.ts +0 -3
  250. package/chains/definitions/zkFairTestnet.ts +0 -3
  251. package/chains/index.ts +1 -0
  252. package/errors/unit.ts +12 -0
  253. package/errors/version.ts +1 -1
  254. package/index.ts +4 -0
  255. package/package.json +2 -2
  256. package/utils/lru.ts +11 -0
  257. package/utils/transaction/assertRequest.ts +2 -1
  258. package/utils/transaction/assertTransaction.ts +4 -3
  259. package/utils/unit/parseUnits.ts +4 -0
@@ -7,7 +7,6 @@ export const wemixTestnet = /*#__PURE__*/ defineChain({
7
7
  nativeCurrency: { name: 'WEMIX', symbol: 'tWEMIX', decimals: 18 },
8
8
  rpcUrls: {
9
9
  default: { http: ['https://api.test.wemix.com'] },
10
- public: { http: ['https://api.test.wemix.com'] },
11
10
  },
12
11
  blockExplorers: {
13
12
  default: {
@@ -12,10 +12,6 @@ export const xdc = /*#__PURE__*/ defineChain({
12
12
  default: { http: ['https://rpc.xinfin.network'] },
13
13
  },
14
14
  blockExplorers: {
15
- xinfin: {
16
- name: 'XinFin',
17
- url: 'https://explorer.xinfin.network',
18
- },
19
15
  default: {
20
16
  name: 'Blocksscan',
21
17
  url: 'https://xdc.blocksscan.io',
@@ -13,9 +13,6 @@ export const zkFair = /*#__PURE__*/ defineChain({
13
13
  default: {
14
14
  http: ['https://rpc.zkfair.io'],
15
15
  },
16
- public: {
17
- http: ['https://rpc.zkfair.io'],
18
- },
19
16
  },
20
17
  blockExplorers: {
21
18
  default: {
@@ -13,9 +13,6 @@ export const zkFairTestnet = /*#__PURE__*/ defineChain({
13
13
  default: {
14
14
  http: ['https://testnet-rpc.zkfair.io'],
15
15
  },
16
- public: {
17
- http: ['https://testnet-rpc.zkfair.io'],
18
- },
19
16
  },
20
17
  blockExplorers: {
21
18
  default: {
package/chains/index.ts CHANGED
@@ -108,6 +108,7 @@ export { filecoinCalibration } from './definitions/filecoinCalibration.js'
108
108
  export { filecoinHyperspace } from './definitions/filecoinHyperspace.js'
109
109
  export { flare } from './definitions/flare.js'
110
110
  export { flareTestnet } from './definitions/flareTestnet.js'
111
+ /** @deprecated */
111
112
  export { flowPreviewnet } from './definitions/flowPreviewnet.js'
112
113
  export { flowMainnet } from './definitions/flowMainnet.js'
113
114
  export { flowTestnet } from './definitions/flowTestnet.js'
package/errors/unit.ts ADDED
@@ -0,0 +1,12 @@
1
+ import { BaseError } from './base.js'
2
+
3
+ export type InvalidDecimalNumberErrorType = InvalidDecimalNumberError & {
4
+ name: 'InvalidDecimalNumberError'
5
+ }
6
+ export class InvalidDecimalNumberError extends BaseError {
7
+ constructor({ value }: { value: string }) {
8
+ super(`Number \`${value}\` is not a valid decimal number.`, {
9
+ name: 'InvalidDecimalNumberError',
10
+ })
11
+ }
12
+ }
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '2.21.1'
1
+ export const version = '2.21.3'
package/index.ts CHANGED
@@ -825,6 +825,10 @@ export {
825
825
  type EnsAvatarUnsupportedNamespaceErrorType,
826
826
  type EnsAvatarUriResolutionErrorType,
827
827
  } from './errors/ens.js'
828
+ export {
829
+ type InvalidDecimalNumberErrorType,
830
+ InvalidDecimalNumberError,
831
+ } from './errors/unit.js'
828
832
  export {
829
833
  EstimateGasExecutionError,
830
834
  type EstimateGasExecutionErrorType,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.21.1",
4
+ "version": "2.21.3",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -170,7 +170,7 @@
170
170
  "@noble/curves": "1.4.0",
171
171
  "@noble/hashes": "1.4.0",
172
172
  "@scure/bip32": "1.4.0",
173
- "@scure/bip39": "1.3.0",
173
+ "@scure/bip39": "1.4.0",
174
174
  "abitype": "1.0.5",
175
175
  "isows": "1.0.4",
176
176
  "webauthn-p256": "0.0.5",
package/utils/lru.ts CHANGED
@@ -11,6 +11,17 @@ export class LruMap<value = unknown> extends Map<string, value> {
11
11
  this.maxSize = size
12
12
  }
13
13
 
14
+ override get(key: string) {
15
+ const value = super.get(key)
16
+
17
+ if (value !== undefined) {
18
+ this.delete(key)
19
+ super.set(key, value)
20
+ }
21
+
22
+ return value
23
+ }
24
+
14
25
  override set(key: string, value: value) {
15
26
  super.set(key, value)
16
27
  if (this.maxSize && this.size > this.maxSize)
@@ -3,6 +3,7 @@ import {
3
3
  parseAccount,
4
4
  } from '../../accounts/utils/parseAccount.js'
5
5
  import type { SendTransactionParameters } from '../../actions/wallet/sendTransaction.js'
6
+ import { maxUint256 } from '../../constants/number.js'
6
7
  import {
7
8
  InvalidAddressError,
8
9
  type InvalidAddressErrorType,
@@ -53,7 +54,7 @@ export function assertRequest(args: AssertRequestParameters) {
53
54
  )
54
55
  throw new FeeConflictError()
55
56
 
56
- if (maxFeePerGas && maxFeePerGas > 2n ** 256n - 1n)
57
+ if (maxFeePerGas && maxFeePerGas > maxUint256)
57
58
  throw new FeeCapTooHighError({ maxFeePerGas })
58
59
  if (
59
60
  maxPriorityFeePerGas &&
@@ -1,4 +1,5 @@
1
1
  import { versionedHashVersionKzg } from '../../constants/kzg.js'
2
+ import { maxUint256 } from '../../constants/number.js'
2
3
  import {
3
4
  InvalidAddressError,
4
5
  type InvalidAddressErrorType,
@@ -99,7 +100,7 @@ export function assertTransactionEIP1559(
99
100
  const { chainId, maxPriorityFeePerGas, maxFeePerGas, to } = transaction
100
101
  if (chainId <= 0) throw new InvalidChainIdError({ chainId })
101
102
  if (to && !isAddress(to)) throw new InvalidAddressError({ address: to })
102
- if (maxFeePerGas && maxFeePerGas > 2n ** 256n - 1n)
103
+ if (maxFeePerGas && maxFeePerGas > maxUint256)
103
104
  throw new FeeCapTooHighError({ maxFeePerGas })
104
105
  if (
105
106
  maxPriorityFeePerGas &&
@@ -128,7 +129,7 @@ export function assertTransactionEIP2930(
128
129
  throw new BaseError(
129
130
  '`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.',
130
131
  )
131
- if (gasPrice && gasPrice > 2n ** 256n - 1n)
132
+ if (gasPrice && gasPrice > maxUint256)
132
133
  throw new FeeCapTooHighError({ maxFeePerGas: gasPrice })
133
134
  }
134
135
 
@@ -152,6 +153,6 @@ export function assertTransactionLegacy(
152
153
  throw new BaseError(
153
154
  '`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.',
154
155
  )
155
- if (gasPrice && gasPrice > 2n ** 256n - 1n)
156
+ if (gasPrice && gasPrice > maxUint256)
156
157
  throw new FeeCapTooHighError({ maxFeePerGas: gasPrice })
157
158
  }
@@ -1,3 +1,4 @@
1
+ import { InvalidDecimalNumberError } from '../../errors/unit.js'
1
2
  import type { ErrorType } from '../../errors/utils.js'
2
3
 
3
4
  export type ParseUnitsErrorType = ErrorType
@@ -14,6 +15,9 @@ export type ParseUnitsErrorType = ErrorType
14
15
  * // 420000000000n
15
16
  */
16
17
  export function parseUnits(value: string, decimals: number) {
18
+ if (!/^(-?)([0-9]*)\.?([0-9]*)$/.test(value))
19
+ throw new InvalidDecimalNumberError({ value })
20
+
17
21
  let [integer, fraction = '0'] = value.split('.')
18
22
 
19
23
  const negative = integer.startsWith('-')