viem 0.0.1-alpha.24 → 0.0.1-alpha.26

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 (510) hide show
  1. package/contract/package.json +4 -0
  2. package/dist/call-3476b8ee.d.ts +22 -0
  3. package/dist/{chain-afa13f5a.d.ts → chain-42de87e5.d.ts} +20 -14
  4. package/dist/{chain-e33d019b.d.ts → chain-b0cfb141.d.ts} +1 -1
  5. package/dist/chains.d.ts +20 -8
  6. package/dist/chains.js +46 -46
  7. package/dist/chains.mjs +1 -1
  8. package/dist/{chunk-3ARWEJ3G.mjs → chunk-BSAB6UH4.mjs} +18 -2
  9. package/dist/chunk-BSAB6UH4.mjs.map +1 -0
  10. package/dist/{chunk-4D5XG6XB.js → chunk-DSQO3E4F.js} +367 -429
  11. package/dist/chunk-DSQO3E4F.js.map +1 -0
  12. package/dist/{chunk-A2HXAZXC.js → chunk-LINNE4N4.js} +199 -161
  13. package/dist/chunk-LINNE4N4.js.map +1 -0
  14. package/dist/{chunk-LQVMDX5I.mjs → chunk-PRG3BBPZ.mjs} +397 -459
  15. package/dist/chunk-PRG3BBPZ.mjs.map +1 -0
  16. package/dist/{chunk-YQUC52RL.mjs → chunk-QSIX64VZ.mjs} +136 -98
  17. package/dist/chunk-QSIX64VZ.mjs.map +1 -0
  18. package/dist/{chunk-ZYSXBTBB.js → chunk-YTG4YXMB.js} +30 -14
  19. package/dist/chunk-YTG4YXMB.js.map +1 -0
  20. package/dist/{contract-70f4ddbe.d.ts → contract-9dd2f98b.d.ts} +44 -31
  21. package/dist/contract.d.ts +129 -0
  22. package/dist/contract.js +55 -0
  23. package/dist/{clients/index.js.map → contract.js.map} +0 -0
  24. package/dist/contract.mjs +55 -0
  25. package/dist/{clients/index.mjs.map → contract.mjs.map} +0 -0
  26. package/dist/{createClient-60e3ab98.d.ts → createClient-6689596e.d.ts} +11 -5
  27. package/dist/{createPublicClient-d3d12dc3.d.ts → createPublicClient-fd558574.d.ts} +3 -3
  28. package/dist/{createTestClient-5f4532c4.d.ts → createTestClient-bc1d9028.d.ts} +3 -3
  29. package/dist/{createWalletClient-9ec3df4f.d.ts → createWalletClient-4df88244.d.ts} +3 -3
  30. package/dist/decodeErrorResult-ac835649.d.ts +16 -0
  31. package/dist/{eip1193-9317a312.d.ts → eip1193-617a05ae.d.ts} +2 -2
  32. package/dist/ens.d.ts +82 -1
  33. package/dist/ens.js +208 -3
  34. package/dist/ens.js.map +1 -1
  35. package/dist/ens.mjs +209 -4
  36. package/dist/ens.mjs.map +1 -1
  37. package/dist/getAbiItem-d2e8bd76.d.ts +97 -0
  38. package/dist/index.d.ts +113 -180
  39. package/dist/index.js +259 -279
  40. package/dist/index.js.map +1 -1
  41. package/dist/index.mjs +267 -287
  42. package/dist/index.mjs.map +1 -1
  43. package/dist/public.d.ts +353 -10
  44. package/dist/public.js +3 -4
  45. package/dist/public.mjs +6 -7
  46. package/dist/readContract-c460f23a.d.ts +10 -0
  47. package/dist/rpc-8c10fc98.d.ts +119 -0
  48. package/dist/{sendTransaction-54a0d509.d.ts → sendTransaction-7ce442c0.d.ts} +3 -3
  49. package/dist/test.d.ts +160 -5
  50. package/dist/test.js +222 -18
  51. package/dist/test.js.map +1 -1
  52. package/dist/test.mjs +233 -29
  53. package/dist/test.mjs.map +1 -1
  54. package/dist/transactionReceipt-44dbf122.d.ts +26 -0
  55. package/dist/{transactionRequest-bdf57f7d.d.ts → transactionRequest-f437b4ba.d.ts} +1 -1
  56. package/dist/utils/index.d.ts +228 -21
  57. package/dist/utils/index.js +2 -6
  58. package/dist/utils/index.mjs +3 -7
  59. package/dist/wallet.d.ts +41 -7
  60. package/dist/wallet.js +3 -3
  61. package/dist/wallet.mjs +2 -2
  62. package/dist/watchEvent-569c9976.d.ts +41 -0
  63. package/dist/window.d.ts +2 -2
  64. package/ens/package.json +4 -0
  65. package/package.json +16 -12
  66. package/public/package.json +4 -0
  67. package/test/package.json +4 -0
  68. package/wallet/package.json +4 -0
  69. package/clients/package.json +0 -4
  70. package/dist/chunk-3ARWEJ3G.mjs.map +0 -1
  71. package/dist/chunk-4D5XG6XB.js.map +0 -1
  72. package/dist/chunk-6QTEW2BE.mjs +0 -260
  73. package/dist/chunk-6QTEW2BE.mjs.map +0 -1
  74. package/dist/chunk-A2HXAZXC.js.map +0 -1
  75. package/dist/chunk-KRPS5CIB.mjs +0 -256
  76. package/dist/chunk-KRPS5CIB.mjs.map +0 -1
  77. package/dist/chunk-LQVMDX5I.mjs.map +0 -1
  78. package/dist/chunk-N3IOPT3R.js +0 -256
  79. package/dist/chunk-N3IOPT3R.js.map +0 -1
  80. package/dist/chunk-YQUC52RL.mjs.map +0 -1
  81. package/dist/chunk-ZSTVHQ6J.js +0 -260
  82. package/dist/chunk-ZSTVHQ6J.js.map +0 -1
  83. package/dist/chunk-ZYSXBTBB.js.map +0 -1
  84. package/dist/clients/index.d.ts +0 -9
  85. package/dist/clients/index.js +0 -24
  86. package/dist/clients/index.mjs +0 -24
  87. package/dist/normalize-ef9240c0.d.ts +0 -33
  88. package/dist/parseGwei-492ab7dd.d.ts +0 -355
  89. package/dist/rpc-26932bae.d.ts +0 -61
  90. package/dist/stopImpersonatingAccount-c1a4b7e5.d.ts +0 -156
  91. package/dist/watchAsset-d59d6e35.d.ts +0 -38
  92. package/dist/watchPendingTransactions-ea21b31d.d.ts +0 -373
  93. package/dist/webSocket-775b4037.d.ts +0 -83
  94. package/src/_test/abis.ts +0 -1420
  95. package/src/_test/bench.ts +0 -15
  96. package/src/_test/constants.ts +0 -61
  97. package/src/_test/globalSetup.ts +0 -11
  98. package/src/_test/index.ts +0 -25
  99. package/src/_test/setup.ts +0 -8
  100. package/src/_test/utils.ts +0 -150
  101. package/src/actions/index.test.ts +0 -81
  102. package/src/actions/index.ts +0 -182
  103. package/src/actions/public/call.bench.ts +0 -48
  104. package/src/actions/public/call.test.ts +0 -99
  105. package/src/actions/public/call.ts +0 -97
  106. package/src/actions/public/createBlockFilter.bench.ts +0 -11
  107. package/src/actions/public/createBlockFilter.test.ts +0 -9
  108. package/src/actions/public/createBlockFilter.ts +0 -14
  109. package/src/actions/public/createContractEventFilter.test.ts +0 -119
  110. package/src/actions/public/createContractEventFilter.ts +0 -69
  111. package/src/actions/public/createEventFilter.test.ts +0 -245
  112. package/src/actions/public/createEventFilter.ts +0 -76
  113. package/src/actions/public/createPendingTransactionFilter.bench.ts +0 -11
  114. package/src/actions/public/createPendingTransactionFilter.test.ts +0 -9
  115. package/src/actions/public/createPendingTransactionFilter.ts +0 -14
  116. package/src/actions/public/deployContract.test.ts +0 -56
  117. package/src/actions/public/deployContract.ts +0 -38
  118. package/src/actions/public/estimateGas.bench.ts +0 -46
  119. package/src/actions/public/estimateGas.test.ts +0 -92
  120. package/src/actions/public/estimateGas.ts +0 -61
  121. package/src/actions/public/getBalance.test.ts +0 -83
  122. package/src/actions/public/getBalance.ts +0 -37
  123. package/src/actions/public/getBlock.bench.ts +0 -28
  124. package/src/actions/public/getBlock.test.ts +0 -575
  125. package/src/actions/public/getBlock.ts +0 -65
  126. package/src/actions/public/getBlockNumber.bench.ts +0 -28
  127. package/src/actions/public/getBlockNumber.test.ts +0 -27
  128. package/src/actions/public/getBlockNumber.ts +0 -32
  129. package/src/actions/public/getBlockTransactionCount.bench.ts +0 -15
  130. package/src/actions/public/getBlockTransactionCount.test.ts +0 -57
  131. package/src/actions/public/getBlockTransactionCount.ts +0 -52
  132. package/src/actions/public/getBytecode.test.ts +0 -27
  133. package/src/actions/public/getBytecode.ts +0 -32
  134. package/src/actions/public/getChainId.bench.ts +0 -15
  135. package/src/actions/public/getChainId.test.ts +0 -8
  136. package/src/actions/public/getChainId.ts +0 -7
  137. package/src/actions/public/getFeeHistory.bench.ts +0 -18
  138. package/src/actions/public/getFeeHistory.test.ts +0 -137
  139. package/src/actions/public/getFeeHistory.ts +0 -44
  140. package/src/actions/public/getFilterChanges.bench.ts +0 -13
  141. package/src/actions/public/getFilterChanges.test.ts +0 -189
  142. package/src/actions/public/getFilterChanges.ts +0 -23
  143. package/src/actions/public/getFilterLogs.test.ts +0 -104
  144. package/src/actions/public/getFilterLogs.ts +0 -20
  145. package/src/actions/public/getGasPrice.bench.ts +0 -19
  146. package/src/actions/public/getGasPrice.test.ts +0 -8
  147. package/src/actions/public/getGasPrice.ts +0 -15
  148. package/src/actions/public/getLogs.test.ts +0 -107
  149. package/src/actions/public/getLogs.ts +0 -84
  150. package/src/actions/public/getStorageAt.test.ts +0 -34
  151. package/src/actions/public/getStorageAt.ts +0 -32
  152. package/src/actions/public/getTransaction.bench.ts +0 -33
  153. package/src/actions/public/getTransaction.test.ts +0 -311
  154. package/src/actions/public/getTransaction.ts +0 -95
  155. package/src/actions/public/getTransactionConfirmations.test.ts +0 -69
  156. package/src/actions/public/getTransactionConfirmations.ts +0 -38
  157. package/src/actions/public/getTransactionCount.test.ts +0 -56
  158. package/src/actions/public/getTransactionCount.ts +0 -34
  159. package/src/actions/public/getTransactionReceipt.bench.ts +0 -33
  160. package/src/actions/public/getTransactionReceipt.test.ts +0 -179
  161. package/src/actions/public/getTransactionReceipt.ts +0 -34
  162. package/src/actions/public/index.test.ts +0 -44
  163. package/src/actions/public/index.ts +0 -152
  164. package/src/actions/public/multicall.test.ts +0 -452
  165. package/src/actions/public/multicall.ts +0 -103
  166. package/src/actions/public/readContract.test.ts +0 -328
  167. package/src/actions/public/readContract.ts +0 -73
  168. package/src/actions/public/simulateContract.bench.ts +0 -41
  169. package/src/actions/public/simulateContract.test.ts +0 -410
  170. package/src/actions/public/simulateContract.ts +0 -94
  171. package/src/actions/public/uninstallFilter.bench.ts +0 -13
  172. package/src/actions/public/uninstallFilter.test.ts +0 -65
  173. package/src/actions/public/uninstallFilter.ts +0 -17
  174. package/src/actions/public/waitForTransactionReceipt.test.ts +0 -322
  175. package/src/actions/public/waitForTransactionReceipt.ts +0 -170
  176. package/src/actions/public/watchBlockNumber.test.ts +0 -166
  177. package/src/actions/public/watchBlockNumber.ts +0 -79
  178. package/src/actions/public/watchBlocks.test.ts +0 -210
  179. package/src/actions/public/watchBlocks.ts +0 -114
  180. package/src/actions/public/watchContractEvent.test.ts +0 -305
  181. package/src/actions/public/watchContractEvent.ts +0 -108
  182. package/src/actions/public/watchEvent.test.ts +0 -195
  183. package/src/actions/public/watchEvent.ts +0 -95
  184. package/src/actions/public/watchPendingTransactions.test.ts +0 -116
  185. package/src/actions/public/watchPendingTransactions.ts +0 -74
  186. package/src/actions/test/dropTransaction.test.ts +0 -34
  187. package/src/actions/test/dropTransaction.ts +0 -17
  188. package/src/actions/test/getAutomine.test.ts +0 -14
  189. package/src/actions/test/getAutomine.ts +0 -11
  190. package/src/actions/test/getTxpoolContent.test.ts +0 -45
  191. package/src/actions/test/getTxpoolContent.ts +0 -7
  192. package/src/actions/test/getTxpoolStatus.test.ts +0 -41
  193. package/src/actions/test/getTxpoolStatus.ts +0 -12
  194. package/src/actions/test/impersonateAccount.test.ts +0 -26
  195. package/src/actions/test/impersonateAccount.ts +0 -17
  196. package/src/actions/test/increaseTime.test.ts +0 -18
  197. package/src/actions/test/increaseTime.ts +0 -17
  198. package/src/actions/test/index.test.ts +0 -38
  199. package/src/actions/test/index.ts +0 -77
  200. package/src/actions/test/inspectTxpool.test.ts +0 -50
  201. package/src/actions/test/inspectTxpool.ts +0 -7
  202. package/src/actions/test/mine.test.ts +0 -20
  203. package/src/actions/test/mine.ts +0 -16
  204. package/src/actions/test/removeBlockTimestampInterval.test.ts +0 -23
  205. package/src/actions/test/removeBlockTimestampInterval.ts +0 -7
  206. package/src/actions/test/reset.test.ts +0 -19
  207. package/src/actions/test/reset.ts +0 -18
  208. package/src/actions/test/revert.test.ts +0 -39
  209. package/src/actions/test/revert.ts +0 -14
  210. package/src/actions/test/sendUnsignedTransaction.test.ts +0 -52
  211. package/src/actions/test/sendUnsignedTransaction.ts +0 -19
  212. package/src/actions/test/setAutomine.test.ts +0 -14
  213. package/src/actions/test/setAutomine.ts +0 -8
  214. package/src/actions/test/setBalance.test.ts +0 -29
  215. package/src/actions/test/setBalance.ts +0 -20
  216. package/src/actions/test/setBlockGasLimit.test.ts +0 -21
  217. package/src/actions/test/setBlockGasLimit.ts +0 -17
  218. package/src/actions/test/setBlockTimestampInterval.test.ts +0 -23
  219. package/src/actions/test/setBlockTimestampInterval.ts +0 -16
  220. package/src/actions/test/setCode.test.ts +0 -26
  221. package/src/actions/test/setCode.ts +0 -19
  222. package/src/actions/test/setCoinbase.test.ts +0 -11
  223. package/src/actions/test/setCoinbase.ts +0 -17
  224. package/src/actions/test/setIntervalMining.test.ts +0 -30
  225. package/src/actions/test/setIntervalMining.ts +0 -16
  226. package/src/actions/test/setLoggingEnabled.test.ts +0 -10
  227. package/src/actions/test/setLoggingEnabled.ts +0 -8
  228. package/src/actions/test/setMinGasPrice.test.ts +0 -22
  229. package/src/actions/test/setMinGasPrice.ts +0 -17
  230. package/src/actions/test/setNextBlockBaseFeePerGas.test.ts +0 -23
  231. package/src/actions/test/setNextBlockBaseFeePerGas.ts +0 -17
  232. package/src/actions/test/setNextBlockTimestamp.test.ts +0 -19
  233. package/src/actions/test/setNextBlockTimestamp.ts +0 -17
  234. package/src/actions/test/setNonce.test.ts +0 -28
  235. package/src/actions/test/setNonce.ts +0 -20
  236. package/src/actions/test/setRpcUrl.test.ts +0 -9
  237. package/src/actions/test/setRpcUrl.ts +0 -8
  238. package/src/actions/test/setStorageAt.test.ts +0 -36
  239. package/src/actions/test/setStorageAt.ts +0 -26
  240. package/src/actions/test/snapshot.test.ts +0 -18
  241. package/src/actions/test/snapshot.ts +0 -7
  242. package/src/actions/test/stopImpersonatingAccount.test.ts +0 -29
  243. package/src/actions/test/stopImpersonatingAccount.ts +0 -17
  244. package/src/actions/wallet/addChain.test.ts +0 -14
  245. package/src/actions/wallet/addChain.ts +0 -21
  246. package/src/actions/wallet/getAccounts.test.ts +0 -22
  247. package/src/actions/wallet/getAccounts.ts +0 -7
  248. package/src/actions/wallet/getPermissions.test.ts +0 -24
  249. package/src/actions/wallet/getPermissions.ts +0 -9
  250. package/src/actions/wallet/index.test.ts +0 -20
  251. package/src/actions/wallet/index.ts +0 -30
  252. package/src/actions/wallet/requestAccounts.test.ts +0 -13
  253. package/src/actions/wallet/requestAccounts.ts +0 -7
  254. package/src/actions/wallet/requestPermissions.test.ts +0 -26
  255. package/src/actions/wallet/requestPermissions.ts +0 -19
  256. package/src/actions/wallet/sendTransaction.bench.ts +0 -57
  257. package/src/actions/wallet/sendTransaction.test.ts +0 -440
  258. package/src/actions/wallet/sendTransaction.ts +0 -77
  259. package/src/actions/wallet/signMessage.test.ts +0 -61
  260. package/src/actions/wallet/signMessage.ts +0 -35
  261. package/src/actions/wallet/switchChain.test.ts +0 -21
  262. package/src/actions/wallet/switchChain.ts +0 -19
  263. package/src/actions/wallet/watchAsset.test.ts +0 -40
  264. package/src/actions/wallet/watchAsset.ts +0 -16
  265. package/src/actions/wallet/writeContract.test.ts +0 -84
  266. package/src/actions/wallet/writeContract.ts +0 -47
  267. package/src/chains.test.ts +0 -1912
  268. package/src/chains.ts +0 -99
  269. package/src/clients/createClient.test.ts +0 -295
  270. package/src/clients/createClient.ts +0 -81
  271. package/src/clients/createPublicClient.test.ts +0 -165
  272. package/src/clients/createPublicClient.ts +0 -49
  273. package/src/clients/createTestClient.test.ts +0 -145
  274. package/src/clients/createTestClient.ts +0 -72
  275. package/src/clients/createWalletClient.test.ts +0 -121
  276. package/src/clients/createWalletClient.ts +0 -54
  277. package/src/clients/index.test.ts +0 -19
  278. package/src/clients/index.ts +0 -31
  279. package/src/clients/transports/createTransport.test.ts +0 -58
  280. package/src/clients/transports/createTransport.ts +0 -48
  281. package/src/clients/transports/custom.test.ts +0 -98
  282. package/src/clients/transports/custom.ts +0 -34
  283. package/src/clients/transports/fallback.test.ts +0 -257
  284. package/src/clients/transports/fallback.ts +0 -50
  285. package/src/clients/transports/http.test.ts +0 -109
  286. package/src/clients/transports/http.ts +0 -51
  287. package/src/clients/transports/index.test.ts +0 -15
  288. package/src/clients/transports/index.ts +0 -17
  289. package/src/clients/transports/webSocket.test.ts +0 -163
  290. package/src/clients/transports/webSocket.ts +0 -117
  291. package/src/constants/abis.test.ts +0 -53
  292. package/src/constants/abis.ts +0 -44
  293. package/src/constants/index.test.ts +0 -14
  294. package/src/constants/index.ts +0 -3
  295. package/src/constants/solidity.test.ts +0 -41
  296. package/src/constants/solidity.ts +0 -35
  297. package/src/ens.ts +0 -5
  298. package/src/errors/abi.test.ts +0 -81
  299. package/src/errors/abi.ts +0 -238
  300. package/src/errors/address.test.ts +0 -14
  301. package/src/errors/address.ts +0 -9
  302. package/src/errors/base.test.ts +0 -114
  303. package/src/errors/base.ts +0 -57
  304. package/src/errors/block.test.ts +0 -24
  305. package/src/errors/block.ts +0 -18
  306. package/src/errors/contract.test.ts +0 -233
  307. package/src/errors/contract.ts +0 -178
  308. package/src/errors/data.ts +0 -20
  309. package/src/errors/encoding.ts +0 -60
  310. package/src/errors/index.ts +0 -79
  311. package/src/errors/log.ts +0 -8
  312. package/src/errors/request.test.ts +0 -330
  313. package/src/errors/request.ts +0 -163
  314. package/src/errors/rpc.test.ts +0 -87
  315. package/src/errors/rpc.ts +0 -113
  316. package/src/errors/transaction.test.ts +0 -83
  317. package/src/errors/transaction.ts +0 -54
  318. package/src/errors/transport.test.ts +0 -11
  319. package/src/errors/transport.ts +0 -12
  320. package/src/index.test.ts +0 -263
  321. package/src/index.ts +0 -389
  322. package/src/public.ts +0 -80
  323. package/src/test.ts +0 -51
  324. package/src/types/block.ts +0 -71
  325. package/src/types/chain.ts +0 -6
  326. package/src/types/contract.ts +0 -393
  327. package/src/types/eip1193.ts +0 -1041
  328. package/src/types/fee.ts +0 -47
  329. package/src/types/filter.ts +0 -8
  330. package/src/types/formatter.ts +0 -23
  331. package/src/types/index.ts +0 -83
  332. package/src/types/log.ts +0 -22
  333. package/src/types/misc.ts +0 -5
  334. package/src/types/multicall.ts +0 -82
  335. package/src/types/rpc.ts +0 -35
  336. package/src/types/transaction.ts +0 -145
  337. package/src/types/utils.ts +0 -67
  338. package/src/types/window.ts +0 -9
  339. package/src/utils/abi/decodeAbi.bench.ts +0 -135
  340. package/src/utils/abi/decodeAbi.test.ts +0 -1614
  341. package/src/utils/abi/decodeAbi.ts +0 -300
  342. package/src/utils/abi/decodeDeployData.test.ts +0 -151
  343. package/src/utils/abi/decodeDeployData.ts +0 -44
  344. package/src/utils/abi/decodeErrorResult.test.ts +0 -230
  345. package/src/utils/abi/decodeErrorResult.ts +0 -45
  346. package/src/utils/abi/decodeFunctionData.test.ts +0 -139
  347. package/src/utils/abi/decodeFunctionData.ts +0 -29
  348. package/src/utils/abi/decodeFunctionResult.test.ts +0 -333
  349. package/src/utils/abi/decodeFunctionResult.ts +0 -57
  350. package/src/utils/abi/encodeAbi.bench.ts +0 -163
  351. package/src/utils/abi/encodeAbi.test.ts +0 -1447
  352. package/src/utils/abi/encodeAbi.ts +0 -273
  353. package/src/utils/abi/encodeDeployData.test.ts +0 -124
  354. package/src/utils/abi/encodeDeployData.ts +0 -40
  355. package/src/utils/abi/encodeErrorResult.test.ts +0 -192
  356. package/src/utils/abi/encodeErrorResult.ts +0 -47
  357. package/src/utils/abi/encodeEventTopics.test.ts +0 -345
  358. package/src/utils/abi/encodeEventTopics.ts +0 -75
  359. package/src/utils/abi/encodeFunctionData.test.ts +0 -138
  360. package/src/utils/abi/encodeFunctionData.ts +0 -45
  361. package/src/utils/abi/encodeFunctionResult.test.ts +0 -279
  362. package/src/utils/abi/encodeFunctionResult.ts +0 -41
  363. package/src/utils/abi/formatAbiItem.test.ts +0 -335
  364. package/src/utils/abi/formatAbiItem.ts +0 -41
  365. package/src/utils/abi/formatAbiItemWithArgs.test.ts +0 -291
  366. package/src/utils/abi/formatAbiItemWithArgs.ts +0 -27
  367. package/src/utils/abi/getAbiItem.test.ts +0 -547
  368. package/src/utils/abi/getAbiItem.ts +0 -95
  369. package/src/utils/abi/index.test.ts +0 -23
  370. package/src/utils/abi/index.ts +0 -42
  371. package/src/utils/address/getAddress.bench.ts +0 -22
  372. package/src/utils/address/getAddress.test.ts +0 -46
  373. package/src/utils/address/getAddress.ts +0 -28
  374. package/src/utils/address/getContractAddress.bench.ts +0 -20
  375. package/src/utils/address/getContractAddress.test.ts +0 -78
  376. package/src/utils/address/getContractAddress.ts +0 -59
  377. package/src/utils/address/index.test.ts +0 -17
  378. package/src/utils/address/index.ts +0 -16
  379. package/src/utils/address/isAddress.test.ts +0 -10
  380. package/src/utils/address/isAddress.ts +0 -10
  381. package/src/utils/address/isAddressEqual.test.ts +0 -55
  382. package/src/utils/address/isAddressEqual.ts +0 -6
  383. package/src/utils/buildRequest.test.ts +0 -365
  384. package/src/utils/buildRequest.ts +0 -45
  385. package/src/utils/chain.test.ts +0 -43
  386. package/src/utils/chain.ts +0 -8
  387. package/src/utils/contract/extractFunctionParts.test.ts +0 -109
  388. package/src/utils/contract/extractFunctionParts.ts +0 -27
  389. package/src/utils/contract/getContractError.test.ts +0 -282
  390. package/src/utils/contract/getContractError.ts +0 -58
  391. package/src/utils/contract/index.test.ts +0 -15
  392. package/src/utils/contract/index.ts +0 -8
  393. package/src/utils/data/concat.test.ts +0 -35
  394. package/src/utils/data/concat.ts +0 -34
  395. package/src/utils/data/index.test.ts +0 -23
  396. package/src/utils/data/index.ts +0 -13
  397. package/src/utils/data/isBytes.test.ts +0 -9
  398. package/src/utils/data/isBytes.ts +0 -7
  399. package/src/utils/data/isHex.test.ts +0 -13
  400. package/src/utils/data/isHex.ts +0 -5
  401. package/src/utils/data/pad.bench.ts +0 -30
  402. package/src/utils/data/pad.test.ts +0 -367
  403. package/src/utils/data/pad.ts +0 -53
  404. package/src/utils/data/size.test.ts +0 -18
  405. package/src/utils/data/size.ts +0 -13
  406. package/src/utils/data/slice.test.ts +0 -203
  407. package/src/utils/data/slice.ts +0 -60
  408. package/src/utils/data/trim.bench.ts +0 -34
  409. package/src/utils/data/trim.test.ts +0 -175
  410. package/src/utils/data/trim.ts +0 -33
  411. package/src/utils/encoding/decodeBytes.bench.ts +0 -40
  412. package/src/utils/encoding/decodeBytes.test.ts +0 -144
  413. package/src/utils/encoding/decodeBytes.ts +0 -63
  414. package/src/utils/encoding/decodeHex.bench.ts +0 -24
  415. package/src/utils/encoding/decodeHex.test.ts +0 -167
  416. package/src/utils/encoding/decodeHex.ts +0 -76
  417. package/src/utils/encoding/decodeRlp.bench.ts +0 -34
  418. package/src/utils/encoding/decodeRlp.test.ts +0 -350
  419. package/src/utils/encoding/decodeRlp.ts +0 -121
  420. package/src/utils/encoding/encodeBytes.bench.ts +0 -29
  421. package/src/utils/encoding/encodeBytes.test.ts +0 -676
  422. package/src/utils/encoding/encodeBytes.ts +0 -59
  423. package/src/utils/encoding/encodeHex.bench.ts +0 -49
  424. package/src/utils/encoding/encodeHex.test.ts +0 -232
  425. package/src/utils/encoding/encodeHex.ts +0 -104
  426. package/src/utils/encoding/encodeRlp.bench.ts +0 -54
  427. package/src/utils/encoding/encodeRlp.test.ts +0 -254
  428. package/src/utils/encoding/encodeRlp.ts +0 -48
  429. package/src/utils/encoding/index.test.ts +0 -32
  430. package/src/utils/encoding/index.ts +0 -36
  431. package/src/utils/ens/index.test.ts +0 -13
  432. package/src/utils/ens/index.ts +0 -5
  433. package/src/utils/ens/labelhash.test.ts +0 -55
  434. package/src/utils/ens/labelhash.ts +0 -16
  435. package/src/utils/ens/namehash.test.ts +0 -65
  436. package/src/utils/ens/namehash.ts +0 -28
  437. package/src/utils/ens/normalize.bench.ts +0 -14
  438. package/src/utils/ens/normalize.test.ts +0 -35
  439. package/src/utils/ens/normalize.ts +0 -14
  440. package/src/utils/formatters/block.bench.ts +0 -51
  441. package/src/utils/formatters/block.test.ts +0 -115
  442. package/src/utils/formatters/block.ts +0 -37
  443. package/src/utils/formatters/extract.test.ts +0 -14
  444. package/src/utils/formatters/extract.ts +0 -18
  445. package/src/utils/formatters/feeHistory.test.ts +0 -66
  446. package/src/utils/formatters/feeHistory.ts +0 -12
  447. package/src/utils/formatters/format.test.ts +0 -93
  448. package/src/utils/formatters/format.ts +0 -90
  449. package/src/utils/formatters/index.test.ts +0 -27
  450. package/src/utils/formatters/index.ts +0 -34
  451. package/src/utils/formatters/log.test.ts +0 -79
  452. package/src/utils/formatters/log.ts +0 -12
  453. package/src/utils/formatters/transaction.test.ts +0 -271
  454. package/src/utils/formatters/transaction.ts +0 -63
  455. package/src/utils/formatters/transactionReceipt.bench.ts +0 -73
  456. package/src/utils/formatters/transactionReceipt.test.ts +0 -151
  457. package/src/utils/formatters/transactionReceipt.ts +0 -63
  458. package/src/utils/formatters/transactionRequest.bench.ts +0 -29
  459. package/src/utils/formatters/transactionRequest.test.ts +0 -237
  460. package/src/utils/formatters/transactionRequest.ts +0 -56
  461. package/src/utils/hash/getEventSignature.test.ts +0 -61
  462. package/src/utils/hash/getEventSignature.ts +0 -4
  463. package/src/utils/hash/getFunctionSignature.test.ts +0 -22
  464. package/src/utils/hash/getFunctionSignature.ts +0 -5
  465. package/src/utils/hash/hashFunction.test.ts +0 -65
  466. package/src/utils/hash/hashFunction.ts +0 -12
  467. package/src/utils/hash/index.test.ts +0 -13
  468. package/src/utils/hash/index.ts +0 -5
  469. package/src/utils/hash/keccak256.test.ts +0 -59
  470. package/src/utils/hash/keccak256.ts +0 -21
  471. package/src/utils/index.test.ts +0 -113
  472. package/src/utils/index.ts +0 -141
  473. package/src/utils/observe.test.ts +0 -176
  474. package/src/utils/observe.ts +0 -66
  475. package/src/utils/poll.test.ts +0 -127
  476. package/src/utils/poll.ts +0 -42
  477. package/src/utils/promise/index.test.ts +0 -14
  478. package/src/utils/promise/index.ts +0 -3
  479. package/src/utils/promise/withCache.test.ts +0 -97
  480. package/src/utils/promise/withCache.ts +0 -73
  481. package/src/utils/promise/withRetry.test.ts +0 -231
  482. package/src/utils/promise/withRetry.ts +0 -61
  483. package/src/utils/promise/withTimeout.test.ts +0 -37
  484. package/src/utils/promise/withTimeout.ts +0 -39
  485. package/src/utils/rpc.test.ts +0 -989
  486. package/src/utils/rpc.ts +0 -292
  487. package/src/utils/stringify.test.ts +0 -13
  488. package/src/utils/stringify.ts +0 -5
  489. package/src/utils/uid.ts +0 -14
  490. package/src/utils/unit/constants.test.ts +0 -22
  491. package/src/utils/unit/constants.ts +0 -12
  492. package/src/utils/unit/formatEther.test.ts +0 -75
  493. package/src/utils/unit/formatEther.ts +0 -6
  494. package/src/utils/unit/formatGwei.test.ts +0 -32
  495. package/src/utils/unit/formatGwei.ts +0 -6
  496. package/src/utils/unit/formatUnit.bench.ts +0 -21
  497. package/src/utils/unit/formatUnit.test.ts +0 -40
  498. package/src/utils/unit/formatUnit.ts +0 -16
  499. package/src/utils/unit/index.test.ts +0 -28
  500. package/src/utils/unit/index.ts +0 -7
  501. package/src/utils/unit/parseEther.test.ts +0 -126
  502. package/src/utils/unit/parseEther.ts +0 -6
  503. package/src/utils/unit/parseGwei.test.ts +0 -50
  504. package/src/utils/unit/parseGwei.ts +0 -6
  505. package/src/utils/unit/parseUnit.bench.ts +0 -21
  506. package/src/utils/unit/parseUnit.test.ts +0 -54
  507. package/src/utils/unit/parseUnit.ts +0 -27
  508. package/src/utils/wait.ts +0 -3
  509. package/src/wallet.ts +0 -23
  510. package/src/window.ts +0 -1
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var __defProp = Object.defineProperty;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -6,159 +6,15 @@ var __publicField = (obj, key, value) => {
6
6
  };
7
7
 
8
8
  // package.json
9
- var package_default = {
10
- name: "viem",
11
- description: "TypeScript Interface for Ethereum",
12
- version: "0.0.1-alpha.24",
13
- scripts: {
14
- anvil: "source .env && anvil --fork-url $VITE_ANVIL_FORK_URL --fork-block-number $VITE_ANVIL_BLOCK_NUMBER --block-time $VITE_ANVIL_BLOCK_TIME",
15
- bench: "vitest bench --no-threads",
16
- "bench:ci": "CI=true vitest bench --no-threads",
17
- build: "tsup",
18
- changeset: "changeset",
19
- "changeset:release": "pnpm build && changeset publish",
20
- "changeset:version": "changeset version && pnpm install --lockfile-only",
21
- "contracts:build": "wagmi generate",
22
- dev: "DEV=true tsup",
23
- "dev:docs": "pnpm -r --filter site dev",
24
- format: "rome format src/ test/ --write",
25
- lint: "rome check .",
26
- "lint:fix": "pnpm lint --apply-suggested",
27
- playground: "pnpm --filter playground-dev dev",
28
- "playground:benchmark": "pnpm --filter playground-benchmark dev",
29
- postinstall: "pnpm dev && pnpm contracts:build",
30
- preinstall: "npx only-allow pnpm",
31
- prepublishOnly: "pnpm ts-node scripts/generate-package-json.ts",
32
- prepare: "npx simple-git-hooks",
33
- test: "vitest dev --no-threads",
34
- "test:ci": "CI=true vitest --coverage --no-threads",
35
- "test:ui": "vitest dev --ui --no-threads",
36
- "ts-node": "node --loader esbuild-register/loader -r esbuild-register",
37
- typecheck: "tsc --noEmit"
38
- },
39
- files: [
40
- "/actions",
41
- "/chains",
42
- "/dist",
43
- "/clients",
44
- "/src",
45
- "/types",
46
- "/utils",
47
- "/window"
48
- ],
49
- exports: {
50
- ".": {
51
- types: "./dist/index.d.ts",
52
- module: "./dist/index.mjs",
53
- default: "./dist/index.js"
54
- },
55
- "./chains": {
56
- types: "./dist/chains.d.ts",
57
- module: "./dist/chains.mjs",
58
- default: "./dist/chains.js"
59
- },
60
- "./clients": {
61
- types: "./dist/clients/index.d.ts",
62
- module: "./dist/clients/index.mjs",
63
- default: "./dist/clients/index.js"
64
- },
65
- "./ens": {
66
- types: "./dist/ens.d.ts",
67
- module: "./dist/ens.mjs",
68
- default: "./dist/ens.js"
69
- },
70
- "./public": {
71
- types: "./dist/public.d.ts",
72
- module: "./dist/public.mjs",
73
- default: "./dist/public.js"
74
- },
75
- "./test": {
76
- types: "./dist/test.d.ts",
77
- module: "./dist/test.mjs",
78
- default: "./dist/test.js"
79
- },
80
- "./utils": {
81
- types: "./dist/utils/index.d.ts",
82
- module: "./dist/utils/index.mjs",
83
- default: "./dist/utils/index.js"
84
- },
85
- "./wallet": {
86
- types: "./dist/wallet.d.ts",
87
- module: "./dist/wallet.mjs",
88
- default: "./dist/wallet.js"
89
- },
90
- "./window": {
91
- types: "./dist/window.d.ts",
92
- module: "./dist/window.mjs",
93
- default: "./dist/window.js"
94
- },
95
- "./package.json": "./package.json"
96
- },
97
- main: "dist/index.js",
98
- module: "dist/index.mjs",
99
- types: "dist/index.d.ts",
100
- sideEffects: false,
101
- dependencies: {
102
- "@noble/hashes": "^1.1.2",
103
- "@wagmi/chains": "~0.2.6",
104
- abitype: "~0.3.0",
105
- "idna-uts46-hx": "^4.1.2"
106
- },
107
- devDependencies: {
108
- "@actions/core": "^1.10.0",
109
- "@actions/github": "^5.1.1",
110
- "@adraffy/ens-normalize": "^1.8.9",
111
- "@changesets/changelog-github": "^0.4.5",
112
- "@changesets/cli": "^2.23.2",
113
- "@testing-library/jest-dom": "^5.16.5",
114
- "@types/dedent": "^0.7.0",
115
- "@types/fs-extra": "^9.0.13",
116
- "@types/node": "^17.0.45",
117
- "@vitest/coverage-c8": "^0.24.3",
118
- "@vitest/ui": "^0.19.1",
119
- "@wagmi/cli": "^0.1.5",
120
- bundlewatch: "^0.3.3",
121
- dedent: "^0.7.0",
122
- esbuild: "^0.16.12",
123
- "esbuild-register": "^3.4.2",
124
- ethers: "^5.7.2",
125
- "ethers@6": "npm:ethers@^6.0.2",
126
- execa: "^6.1.0",
127
- "fs-extra": "^10.1.0",
128
- jsdom: "^20.0.0",
129
- rome: "^11.0.0",
130
- "simple-git-hooks": "^2.8.1",
131
- tsup: "^6.5.0",
132
- typescript: "^4.9.4",
133
- vite: "^3.0.4",
134
- vitest: "^0.25.2",
135
- web3: "^1.8.1"
136
- },
137
- license: "MIT",
138
- repository: "wagmi-dev/viem",
139
- authors: [
140
- "awkweb.eth",
141
- "jxom.eth"
142
- ],
143
- keywords: [
144
- "eth",
145
- "ethereum",
146
- "dapps",
147
- "wallet",
148
- "web3"
149
- ],
150
- "simple-git-hooks": {
151
- "pre-commit": "pnpm format & pnpm lint:fix"
152
- },
153
- pnpm: {
154
- patchedDependencies: {
155
- "vitepress@1.0.0-alpha.34": "patches/vitepress@1.0.0-alpha.34.patch"
156
- }
157
- }
158
- };
9
+ var name = "viem";
10
+ var version = "0.0.1-alpha.26";
11
+
12
+ // src/errors/utils.ts
13
+ var getContractAddress = (address) => address;
14
+ var getUrl = (url) => url;
15
+ var getVersion = () => `${name}@${version}`;
159
16
 
160
17
  // src/errors/base.ts
161
- var version = process.env.TEST ? "1.0.2" : package_default.version;
162
18
  var BaseError = class extends Error {
163
19
  constructor(shortMessage, args = {}) {
164
20
  const details = args.cause instanceof BaseError ? args.cause.details : _optionalChain([args, 'access', _2 => _2.cause, 'optionalAccess', _3 => _3.message]) ? args.cause.message : args.details;
@@ -169,7 +25,7 @@ var BaseError = class extends Error {
169
25
  ...args.metaMessages ? [...args.metaMessages, ""] : [],
170
26
  ...docsPath5 ? [`Docs: https://viem.sh${docsPath5}`] : [],
171
27
  ...details ? [`Details: ${details}`] : [],
172
- `Version: viem@${version}`
28
+ `Version: ${getVersion()}`
173
29
  ].join("\n");
174
30
  super(message);
175
31
  __publicField(this, "details");
@@ -298,7 +154,7 @@ var AbiErrorSignatureNotFoundError = class extends BaseError {
298
154
  [
299
155
  `Encoded error signature "${signature}" not found on ABI.`,
300
156
  "Make sure you are using the correct ABI and that the error exists on it.",
301
- `You can look up the signature "${signature}" here: https://sig.eth.samczsun.com/.`
157
+ `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`
302
158
  ].join("\n"),
303
159
  {
304
160
  docsPath: docsPath5
@@ -307,6 +163,21 @@ var AbiErrorSignatureNotFoundError = class extends BaseError {
307
163
  __publicField(this, "name", "AbiErrorSignatureNotFoundError");
308
164
  }
309
165
  };
166
+ var AbiEventSignatureNotFoundError = class extends BaseError {
167
+ constructor(signature, { docsPath: docsPath5 }) {
168
+ super(
169
+ [
170
+ `Encoded event signature "${signature}" not found on ABI.`,
171
+ "Make sure you are using the correct ABI and that the event exists on it.",
172
+ `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`
173
+ ].join("\n"),
174
+ {
175
+ docsPath: docsPath5
176
+ }
177
+ );
178
+ __publicField(this, "name", "AbiEventSignatureNotFoundError");
179
+ }
180
+ };
310
181
  var AbiEventNotFoundError = class extends BaseError {
311
182
  constructor(eventName, { docsPath: docsPath5 }) {
312
183
  super(
@@ -356,7 +227,7 @@ var AbiFunctionSignatureNotFoundError = class extends BaseError {
356
227
  [
357
228
  `Encoded function signature "${signature}" not found on ABI.`,
358
229
  "Make sure you are using the correct ABI and that the function exists on it.",
359
- `You can look up the signature "${signature}" here: https://sig.eth.samczsun.com/.`
230
+ `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`
360
231
  ].join("\n"),
361
232
  {
362
233
  docsPath: docsPath5
@@ -431,6 +302,30 @@ var BlockNotFoundError = class extends BaseError {
431
302
  }
432
303
  };
433
304
 
305
+ // src/errors/chain.ts
306
+ var ChainDoesNotSupportContract = class extends BaseError {
307
+ constructor({
308
+ blockNumber,
309
+ chain,
310
+ contract
311
+ }) {
312
+ super(
313
+ `Chain "${chain.name}" does not support contract "${contract.name}".`,
314
+ {
315
+ metaMessages: [
316
+ "This could be due to any of the following:",
317
+ ...blockNumber && contract.blockCreated && contract.blockCreated > blockNumber ? [
318
+ `- The contract "${contract.name}" was not deployed until block ${contract.blockCreated} (current block ${blockNumber}).`
319
+ ] : [
320
+ `- The chain does not have the contract "${contract.name}" configured.`
321
+ ]
322
+ ]
323
+ }
324
+ );
325
+ __publicField(this, "name", "ChainDoesNotSupportContract");
326
+ }
327
+ };
328
+
434
329
  // src/constants/abis.ts
435
330
  var multicall3Abi = [
436
331
  {
@@ -534,7 +429,7 @@ var ContractFunctionExecutionError = class extends BaseError {
534
429
  docsPath: docsPath5,
535
430
  metaMessages: [
536
431
  ...cause.metaMessages ? [...cause.metaMessages, " "] : [],
537
- contractAddress && `Contract: ${process.env.TEST ? "0x0000000000000000000000000000000000000000" : contractAddress}`,
432
+ contractAddress && `Contract: ${getContractAddress(contractAddress)}`,
538
433
  functionWithParams && `Function: ${functionWithParams}`,
539
434
  formattedArgs && formattedArgs !== "()" && `Arguments: ${[...Array(_nullishCoalesce(_optionalChain([functionName, 'optionalAccess', _4 => _4.length]), () => ( 0))).keys()].map(() => " ").join("")}${formattedArgs}`,
540
435
  sender && `Sender: ${sender}`
@@ -703,17 +598,22 @@ var FilterTypeNotSupportedError = class extends BaseError {
703
598
 
704
599
  // src/errors/request.ts
705
600
  var RequestError = class extends BaseError {
706
- constructor(err, { docsPath: docsPath5, shortMessage }) {
601
+ constructor(err, {
602
+ docsPath: docsPath5,
603
+ metaMessages,
604
+ shortMessage
605
+ }) {
707
606
  super(shortMessage, {
708
607
  cause: err,
709
- docsPath: docsPath5
608
+ docsPath: docsPath5,
609
+ metaMessages
710
610
  });
711
611
  this.name = err.name;
712
612
  }
713
613
  };
714
614
  var RpcRequestError = class extends RequestError {
715
615
  constructor(err, { docsPath: docsPath5, shortMessage }) {
716
- super(err, { docsPath: docsPath5, shortMessage });
616
+ super(err, { docsPath: docsPath5, metaMessages: err.metaMessages, shortMessage });
717
617
  __publicField(this, "code");
718
618
  this.code = err.code;
719
619
  this.name = err.name;
@@ -833,24 +733,27 @@ var HttpRequestError = class extends BaseError {
833
733
  constructor({
834
734
  body,
835
735
  details,
736
+ headers,
836
737
  status,
837
738
  url
838
739
  }) {
839
- super(
840
- [
841
- "HTTP request failed.",
842
- "",
843
- `Status: ${status}`,
844
- `URL: ${url}`,
740
+ super("HTTP request failed.", {
741
+ details,
742
+ metaMessages: [
743
+ status && `Status: ${status}`,
744
+ `URL: ${getUrl(url)}`,
845
745
  `Request body: ${stringify(body)}`
846
- ].join("\n"),
847
- {
848
- details
849
- }
850
- );
746
+ ].filter(Boolean)
747
+ });
851
748
  __publicField(this, "name", "HttpRequestError");
749
+ __publicField(this, "body");
750
+ __publicField(this, "headers");
852
751
  __publicField(this, "status");
752
+ __publicField(this, "url");
753
+ this.body = body;
754
+ this.headers = headers;
853
755
  this.status = status;
756
+ this.url = url;
854
757
  }
855
758
  };
856
759
  var WebSocketRequestError = class extends BaseError {
@@ -859,17 +762,10 @@ var WebSocketRequestError = class extends BaseError {
859
762
  details,
860
763
  url
861
764
  }) {
862
- super(
863
- [
864
- "WebSocket request failed.",
865
- "",
866
- `URL: ${url}`,
867
- `Request body: ${stringify(body)}`
868
- ].join("\n"),
869
- {
870
- details
871
- }
872
- );
765
+ super("WebSocket request failed.", {
766
+ details,
767
+ metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`]
768
+ });
873
769
  __publicField(this, "name", "WebSocketRequestError");
874
770
  }
875
771
  };
@@ -879,18 +775,11 @@ var RpcError = class extends BaseError {
879
775
  error,
880
776
  url
881
777
  }) {
882
- super(
883
- [
884
- "RPC Request failed.",
885
- "",
886
- `URL: ${url}`,
887
- `Request body: ${stringify(body)}`
888
- ].join("\n"),
889
- {
890
- cause: error,
891
- details: error.message
892
- }
893
- );
778
+ super("RPC Request failed.", {
779
+ cause: error,
780
+ details: error.message,
781
+ metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`]
782
+ });
894
783
  __publicField(this, "code");
895
784
  __publicField(this, "name", "RpcError");
896
785
  this.code = error.code;
@@ -901,17 +790,10 @@ var TimeoutError = class extends BaseError {
901
790
  body,
902
791
  url
903
792
  }) {
904
- super(
905
- [
906
- "The request took too long to respond.",
907
- "",
908
- `URL: ${url}`,
909
- `Request body: ${stringify(body)}`
910
- ].join("\n"),
911
- {
912
- details: "The request timed out."
913
- }
914
- );
793
+ super("The request took too long to respond.", {
794
+ details: "The request timed out.",
795
+ metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`]
796
+ });
915
797
  __publicField(this, "name", "TimeoutError");
916
798
  }
917
799
  };
@@ -1378,9 +1260,9 @@ var paramsRegex = /((function|event)\s)?(.*)(\((.*)\))/;
1378
1260
  function extractFunctionParts(def) {
1379
1261
  const parts = def.match(paramsRegex);
1380
1262
  const type = _optionalChain([parts, 'optionalAccess', _6 => _6[2]]) || void 0;
1381
- const name = _optionalChain([parts, 'optionalAccess', _7 => _7[3]]);
1263
+ const name2 = _optionalChain([parts, 'optionalAccess', _7 => _7[3]]);
1382
1264
  const params = _optionalChain([parts, 'optionalAccess', _8 => _8[5]]) || void 0;
1383
- return { type, name, params };
1265
+ return { type, name: name2, params };
1384
1266
  }
1385
1267
  function extractFunctionName(def) {
1386
1268
  return extractFunctionParts(def).name;
@@ -1443,11 +1325,11 @@ function keccak256(value, to_) {
1443
1325
  // src/utils/hash/hashFunction.ts
1444
1326
  var hash = (value) => keccak256(encodeBytes(value));
1445
1327
  function hashFunction(def) {
1446
- const name = extractFunctionName(def);
1328
+ const name2 = extractFunctionName(def);
1447
1329
  const params = extractFunctionParams(def);
1448
1330
  if (!params || params.length === 0)
1449
1331
  return hash(def.replace(/ /g, ""));
1450
- return hash(`${name}(${params.map(({ type }) => type).join(",")})`);
1332
+ return hash(`${name2}(${params.map(({ type }) => type).join(",")})`);
1451
1333
  }
1452
1334
 
1453
1335
  // src/utils/hash/getEventSignature.ts
@@ -1479,7 +1361,7 @@ function getAddress(address) {
1479
1361
  }
1480
1362
 
1481
1363
  // src/utils/address/getContractAddress.ts
1482
- function getContractAddress(opts) {
1364
+ function getContractAddress2(opts) {
1483
1365
  if (opts.opcode === "CREATE2")
1484
1366
  return getCreate2Address(opts);
1485
1367
  return getCreateAddress(opts);
@@ -1710,7 +1592,10 @@ function encodeTuple(value, { param }) {
1710
1592
  }
1711
1593
  function getArrayComponents(type) {
1712
1594
  const matches = type.match(/^(.*)\[(\d+)?\]$/);
1713
- return matches ? [matches[2] ? Number(matches[2]) : null, matches[1]] : void 0;
1595
+ return matches ? (
1596
+ // Return `null` if the array is dynamic.
1597
+ [matches[2] ? Number(matches[2]) : null, matches[1]]
1598
+ ) : void 0;
1714
1599
  }
1715
1600
 
1716
1601
  // src/utils/abi/decodeAbi.ts
@@ -1863,7 +1748,7 @@ function decodeString(data, { position }) {
1863
1748
  return { consumed: 32, value };
1864
1749
  }
1865
1750
  function decodeTuple(data, { param, position }) {
1866
- const hasUnnamedChild = param.components.length === 0 || param.components.some(({ name }) => !name);
1751
+ const hasUnnamedChild = param.components.length === 0 || param.components.some(({ name: name2 }) => !name2);
1867
1752
  let value = hasUnnamedChild ? [] : {};
1868
1753
  let consumed = 0;
1869
1754
  if (hasDynamicChild(param)) {
@@ -1952,6 +1837,61 @@ function decodeErrorResult({
1952
1837
  };
1953
1838
  }
1954
1839
 
1840
+ // src/utils/abi/decodeEventLog.ts
1841
+ function decodeEventLog({
1842
+ abi,
1843
+ data,
1844
+ topics
1845
+ }) {
1846
+ const [signature, ...argTopics] = topics;
1847
+ const abiItem = abi.find(
1848
+ (x) => signature === getEventSignature(formatAbiItem(x))
1849
+ );
1850
+ if (!(abiItem && "name" in abiItem))
1851
+ throw new AbiEventSignatureNotFoundError(signature, {
1852
+ docsPath: "/docs/contract/decodeEventLog"
1853
+ });
1854
+ const { name: name2, inputs } = abiItem;
1855
+ const isUnnamed = _optionalChain([inputs, 'optionalAccess', _22 => _22.some, 'call', _23 => _23((x) => !("name" in x && x.name))]);
1856
+ let args = isUnnamed ? [] : {};
1857
+ for (let i = 0; i < inputs.length; i++) {
1858
+ const param = inputs[i];
1859
+ const topic = argTopics[i];
1860
+ if (topic === null)
1861
+ args[param.name || i] = null;
1862
+ if (!topic)
1863
+ continue;
1864
+ if (Array.isArray(topic)) {
1865
+ args[param.name || i] = topic.map((t) => decodeTopic({ param, value: t }));
1866
+ } else {
1867
+ args[param.name || i] = decodeTopic({ param, value: topic });
1868
+ }
1869
+ }
1870
+ if (data) {
1871
+ const params = inputs.filter((x) => !("indexed" in x && x.indexed));
1872
+ const decodedData = decodeAbi({ params, data });
1873
+ if (decodedData) {
1874
+ if (isUnnamed)
1875
+ args = [...args, ...decodedData];
1876
+ else {
1877
+ for (let i = 0; i < params.length; i++) {
1878
+ args[params[i].name] = decodedData[i];
1879
+ }
1880
+ }
1881
+ }
1882
+ }
1883
+ return {
1884
+ eventName: name2,
1885
+ args: Object.values(args).length > 0 ? args : void 0
1886
+ };
1887
+ }
1888
+ function decodeTopic({ param, value }) {
1889
+ if (param.type === "string" || param.type === "bytes" || param.type === "tuple" || param.type.match(/^(.*)\[(\d+)?\]$/))
1890
+ return value;
1891
+ const decodedArg = decodeAbi({ params: [param], data: value }) || [];
1892
+ return decodedArg[0];
1893
+ }
1894
+
1955
1895
  // src/utils/abi/decodeFunctionData.ts
1956
1896
  function decodeFunctionData({ abi, data }) {
1957
1897
  const signature = slice(data, 0, 4);
@@ -1969,8 +1909,8 @@ function decodeFunctionData({ abi, data }) {
1969
1909
  }
1970
1910
 
1971
1911
  // src/utils/abi/getAbiItem.ts
1972
- function getAbiItem({ abi, args = [], name }) {
1973
- const abiItems = abi.filter((x) => "name" in x && x.name === name);
1912
+ function getAbiItem({ abi, args = [], name: name2 }) {
1913
+ const abiItems = abi.filter((x) => "name" in x && x.name === name2);
1974
1914
  if (abiItems.length === 0)
1975
1915
  return void 0;
1976
1916
  if (abiItems.length === 1)
@@ -2030,6 +1970,7 @@ function isArgOfType(arg, abiParameter) {
2030
1970
  return Array.isArray(arg) && arg.every(
2031
1971
  (x) => isArgOfType(x, {
2032
1972
  ...abiParameter,
1973
+ // Pop off `[]` or `[M]` from end of type
2033
1974
  type: abiParameterType.replace(/(\[[0-9]{0,}\])$/, "")
2034
1975
  })
2035
1976
  );
@@ -2121,8 +2062,8 @@ function encodeEventTopics({ abi, eventName, args }) {
2121
2062
  const signature = getEventSignature(definition);
2122
2063
  let topics = [];
2123
2064
  if (args && "inputs" in abiItem) {
2124
- const args_ = Array.isArray(args) ? args : _nullishCoalesce(_optionalChain([abiItem, 'access', _22 => _22.inputs, 'optionalAccess', _23 => _23.map, 'call', _24 => _24((x) => args[x.name])]), () => ( []));
2125
- topics = _nullishCoalesce(_optionalChain([abiItem, 'access', _25 => _25.inputs, 'optionalAccess', _26 => _26.filter, 'call', _27 => _27((param) => "indexed" in param && param.indexed), 'access', _28 => _28.map, 'call', _29 => _29(
2065
+ const args_ = Array.isArray(args) ? args : _nullishCoalesce(_optionalChain([abiItem, 'access', _24 => _24.inputs, 'optionalAccess', _25 => _25.map, 'call', _26 => _26((x) => args[x.name])]), () => ( []));
2066
+ topics = _nullishCoalesce(_optionalChain([abiItem, 'access', _27 => _27.inputs, 'optionalAccess', _28 => _28.filter, 'call', _29 => _29((param) => "indexed" in param && param.indexed), 'access', _30 => _30.map, 'call', _31 => _31(
2126
2067
  (param, i) => Array.isArray(args_[i]) ? args_[i].map(
2127
2068
  (_, j) => encodeArg({ param, value: args_[i][j] })
2128
2069
  ) : args_[i] ? encodeArg({ param, value: args_[i] }) : null
@@ -2199,74 +2140,180 @@ function formatAbiItemWithArgs({
2199
2140
  ).join(", ")})`;
2200
2141
  }
2201
2142
 
2202
- // src/utils/buildRequest.ts
2203
- function buildRequest(request) {
2204
- return async (args) => {
2205
- try {
2206
- return await request(args);
2207
- } catch (err_) {
2208
- let err = err_;
2209
- if (err.code === -32700)
2210
- throw new ParseRpcError(err);
2211
- if (err.code === -32600)
2212
- throw new InvalidRequestRpcError(err);
2213
- if (err.code === -32601)
2214
- throw new MethodNotFoundRpcError(err);
2215
- if (err.code === -32602)
2216
- throw new InvalidParamsRpcError(err);
2217
- if (err.code === -32603)
2218
- throw new InternalRpcError(err);
2219
- if (err.code === -32e3)
2220
- throw new InvalidInputRpcError(err);
2221
- if (err.code === -32001)
2222
- throw new ResourceNotFoundRpcError(err);
2223
- if (err.code === -32002)
2224
- throw new ResourceUnavailableRpcError(err);
2225
- if (err.code === -32003)
2226
- throw new TransactionRejectedRpcError(err);
2227
- if (err.code === -32004)
2228
- throw new MethodNotSupportedRpcError(err);
2229
- if (err.code === -32005)
2230
- throw new LimitExceededRpcError(err);
2231
- if (err.code === -32006)
2232
- throw new JsonRpcVersionUnsupportedError(err);
2233
- if (err_ instanceof BaseError)
2234
- throw err_;
2235
- throw new UnknownRpcError(err);
2236
- }
2143
+ // src/utils/promise/withCache.ts
2144
+ var promiseCache = /* @__PURE__ */ new Map();
2145
+ var responseCache = /* @__PURE__ */ new Map();
2146
+ function getCache(cacheKey) {
2147
+ const buildCache = (cacheKey2, cache) => ({
2148
+ clear: () => cache.delete(cacheKey2),
2149
+ get: () => cache.get(cacheKey2),
2150
+ set: (data) => cache.set(cacheKey2, data)
2151
+ });
2152
+ const promise = buildCache(cacheKey, promiseCache);
2153
+ const response = buildCache(
2154
+ cacheKey,
2155
+ responseCache
2156
+ );
2157
+ return {
2158
+ clear: () => {
2159
+ promise.clear();
2160
+ response.clear();
2161
+ },
2162
+ promise,
2163
+ response
2237
2164
  };
2238
2165
  }
2166
+ async function withCache(fn, { cacheKey, maxAge = Infinity }) {
2167
+ const cache = getCache(cacheKey);
2168
+ const response = cache.response.get();
2169
+ if (response && maxAge > 0) {
2170
+ const age = (/* @__PURE__ */ new Date()).getTime() - response.created.getTime();
2171
+ if (age < maxAge)
2172
+ return response.data;
2173
+ }
2174
+ let promise = cache.promise.get();
2175
+ if (!promise) {
2176
+ promise = fn();
2177
+ cache.promise.set(promise);
2178
+ }
2179
+ const data = await promise;
2180
+ cache.promise.clear();
2181
+ cache.response.set({ created: /* @__PURE__ */ new Date(), data });
2182
+ return data;
2183
+ }
2239
2184
 
2240
- // src/utils/chain.ts
2241
- function defineChain(chain) {
2242
- return chain;
2185
+ // src/utils/wait.ts
2186
+ async function wait(time) {
2187
+ return new Promise((res) => setTimeout(res, time));
2243
2188
  }
2244
2189
 
2245
- // src/utils/ens/normalize.ts
2246
- var _idnauts46hx = require('idna-uts46-hx');
2247
- function normalize(name) {
2248
- return _idnauts46hx.toUnicode.call(void 0, name, { useStd3ASCII: true });
2190
+ // src/utils/promise/withRetry.ts
2191
+ function withRetry(fn, {
2192
+ delay: delay_ = 100,
2193
+ retryCount = 2,
2194
+ shouldRetry = () => true
2195
+ } = {}) {
2196
+ return new Promise((resolve, reject) => {
2197
+ const attemptRetry = async ({ count = 0 } = {}) => {
2198
+ const retry = async ({ error }) => {
2199
+ const delay = typeof delay_ === "function" ? delay_({ count, error }) : delay_;
2200
+ if (delay)
2201
+ await wait(delay);
2202
+ attemptRetry({ count: count + 1 });
2203
+ };
2204
+ try {
2205
+ const data = await fn();
2206
+ resolve(data);
2207
+ } catch (err) {
2208
+ if (count < retryCount && await shouldRetry({ count, error: err }))
2209
+ return retry({ error: err });
2210
+ reject(err);
2211
+ }
2212
+ };
2213
+ attemptRetry();
2214
+ });
2249
2215
  }
2250
2216
 
2251
- // src/utils/ens/labelhash.ts
2252
- function labelhash(label) {
2253
- let result = new Uint8Array(32).fill(0);
2254
- if (!label)
2255
- return bytesToHex(result);
2256
- return keccak256(stringToBytes(normalize(label)));
2217
+ // src/utils/promise/withTimeout.ts
2218
+ function withTimeout(fn, {
2219
+ errorInstance,
2220
+ timeout,
2221
+ signal
2222
+ }) {
2223
+ return new Promise((resolve, reject) => {
2224
+ ;
2225
+ (async () => {
2226
+ let timeoutId;
2227
+ try {
2228
+ const controller = new AbortController();
2229
+ if (timeout > 0) {
2230
+ timeoutId = setTimeout(() => {
2231
+ if (signal) {
2232
+ controller.abort();
2233
+ } else {
2234
+ reject(errorInstance);
2235
+ }
2236
+ }, timeout);
2237
+ }
2238
+ resolve(await fn({ signal: _optionalChain([controller, 'optionalAccess', _32 => _32.signal]) }));
2239
+ } catch (err) {
2240
+ if (err.name === "AbortError")
2241
+ reject(errorInstance);
2242
+ reject(err);
2243
+ } finally {
2244
+ clearTimeout(timeoutId);
2245
+ }
2246
+ })();
2247
+ });
2257
2248
  }
2258
2249
 
2259
- // src/utils/ens/namehash.ts
2260
- function namehash(name) {
2261
- let result = new Uint8Array(32).fill(0);
2262
- if (!name)
2263
- return bytesToHex(result);
2264
- const labels = normalize(name).split(".");
2265
- for (let i = labels.length - 1; i >= 0; i -= 1) {
2266
- const hashed = keccak256(stringToBytes(labels[i]), "bytes");
2267
- result = keccak256(concat([result, hashed]), "bytes");
2268
- }
2269
- return bytesToHex(result);
2250
+ // src/utils/buildRequest.ts
2251
+ var isDeterministicError = (error) => {
2252
+ if (error instanceof UnknownRpcError)
2253
+ return false;
2254
+ if ("code" in error)
2255
+ return error.code !== -32603 && error.code !== -32005;
2256
+ if (error instanceof HttpRequestError && error.status)
2257
+ return error.status !== 408 && error.status !== 413 && error.status !== 429 && error.status !== 500;
2258
+ return true;
2259
+ };
2260
+ function buildRequest(request, {
2261
+ retryDelay = 150,
2262
+ retryCount = 3
2263
+ } = {}) {
2264
+ return async (args) => withRetry(
2265
+ async () => {
2266
+ try {
2267
+ return await request(args);
2268
+ } catch (err_) {
2269
+ let err = err_;
2270
+ if (err.code === -32700)
2271
+ throw new ParseRpcError(err);
2272
+ if (err.code === -32600)
2273
+ throw new InvalidRequestRpcError(err);
2274
+ if (err.code === -32601)
2275
+ throw new MethodNotFoundRpcError(err);
2276
+ if (err.code === -32602)
2277
+ throw new InvalidParamsRpcError(err);
2278
+ if (err.code === -32603)
2279
+ throw new InternalRpcError(err);
2280
+ if (err.code === -32e3)
2281
+ throw new InvalidInputRpcError(err);
2282
+ if (err.code === -32001)
2283
+ throw new ResourceNotFoundRpcError(err);
2284
+ if (err.code === -32002)
2285
+ throw new ResourceUnavailableRpcError(err);
2286
+ if (err.code === -32003)
2287
+ throw new TransactionRejectedRpcError(err);
2288
+ if (err.code === -32004)
2289
+ throw new MethodNotSupportedRpcError(err);
2290
+ if (err.code === -32005)
2291
+ throw new LimitExceededRpcError(err);
2292
+ if (err.code === -32006)
2293
+ throw new JsonRpcVersionUnsupportedError(err);
2294
+ if (err_ instanceof BaseError)
2295
+ throw err_;
2296
+ throw new UnknownRpcError(err);
2297
+ }
2298
+ },
2299
+ {
2300
+ delay: ({ count, error }) => {
2301
+ if (error && error instanceof HttpRequestError) {
2302
+ const retryAfter = _optionalChain([error, 'optionalAccess', _33 => _33.headers, 'optionalAccess', _34 => _34.get, 'call', _35 => _35("Retry-After")]);
2303
+ if (_optionalChain([retryAfter, 'optionalAccess', _36 => _36.match, 'call', _37 => _37(/\d/)]))
2304
+ return parseInt(retryAfter) * 1e3;
2305
+ }
2306
+ return ~~(1 << count) * retryDelay;
2307
+ },
2308
+ retryCount,
2309
+ shouldRetry: ({ error }) => !isDeterministicError(error)
2310
+ }
2311
+ );
2312
+ }
2313
+
2314
+ // src/utils/chain.ts
2315
+ function defineChain(chain) {
2316
+ return chain;
2270
2317
  }
2271
2318
 
2272
2319
  // src/utils/formatters/format.ts
@@ -2288,7 +2335,7 @@ function defineFormatter({
2288
2335
  }
2289
2336
  return {
2290
2337
  ...formatted,
2291
- ..._optionalChain([formatOverride, 'optionalCall', _30 => _30(data)])
2338
+ ..._optionalChain([formatOverride, 'optionalCall', _38 => _38(data)])
2292
2339
  };
2293
2340
  };
2294
2341
  }
@@ -2328,7 +2375,7 @@ var defineTransaction = defineFormatter({ format: formatTransaction });
2328
2375
 
2329
2376
  // src/utils/formatters/block.ts
2330
2377
  function formatBlock(block) {
2331
- const transactions = _optionalChain([block, 'access', _31 => _31.transactions, 'optionalAccess', _32 => _32.map, 'call', _33 => _33((transaction) => {
2378
+ const transactions = _optionalChain([block, 'access', _39 => _39.transactions, 'optionalAccess', _40 => _40.map, 'call', _41 => _41((transaction) => {
2332
2379
  if (typeof transaction === "string")
2333
2380
  return transaction;
2334
2381
  return formatTransaction(transaction);
@@ -2354,7 +2401,7 @@ function extract(value, { formatter }) {
2354
2401
  return {};
2355
2402
  const keys = Object.keys(formatter({}));
2356
2403
  return keys.reduce((data, key) => {
2357
- if (_optionalChain([value, 'optionalAccess', _34 => _34.hasOwnProperty, 'call', _35 => _35(key)])) {
2404
+ if (_optionalChain([value, 'optionalAccess', _42 => _42.hasOwnProperty, 'call', _43 => _43(key)])) {
2358
2405
  ;
2359
2406
  data[key] = value[key];
2360
2407
  }
@@ -2368,7 +2415,7 @@ function formatFeeHistory(feeHistory) {
2368
2415
  baseFeePerGas: feeHistory.baseFeePerGas.map((value) => BigInt(value)),
2369
2416
  gasUsedRatio: feeHistory.gasUsedRatio,
2370
2417
  oldestBlock: BigInt(feeHistory.oldestBlock),
2371
- reward: _optionalChain([feeHistory, 'access', _36 => _36.reward, 'optionalAccess', _37 => _37.map, 'call', _38 => _38(
2418
+ reward: _optionalChain([feeHistory, 'access', _44 => _44.reward, 'optionalAccess', _45 => _45.map, 'call', _46 => _46(
2372
2419
  (reward) => reward.map((value) => BigInt(value))
2373
2420
  )])
2374
2421
  };
@@ -2422,115 +2469,9 @@ var defineTransactionRequest = defineFormatter({
2422
2469
  format: formatTransactionRequest
2423
2470
  });
2424
2471
 
2425
- // src/utils/promise/withCache.ts
2426
- var promiseCache = /* @__PURE__ */ new Map();
2427
- var responseCache = /* @__PURE__ */ new Map();
2428
- function getCache(cacheKey) {
2429
- const buildCache = (cacheKey2, cache) => ({
2430
- clear: () => cache.delete(cacheKey2),
2431
- get: () => cache.get(cacheKey2),
2432
- set: (data) => cache.set(cacheKey2, data)
2433
- });
2434
- const promise = buildCache(cacheKey, promiseCache);
2435
- const response = buildCache(
2436
- cacheKey,
2437
- responseCache
2438
- );
2439
- return {
2440
- clear: () => {
2441
- promise.clear();
2442
- response.clear();
2443
- },
2444
- promise,
2445
- response
2446
- };
2447
- }
2448
- async function withCache(fn, { cacheKey, maxAge = Infinity }) {
2449
- const cache = getCache(cacheKey);
2450
- const response = cache.response.get();
2451
- if (response && maxAge > 0) {
2452
- const age = new Date().getTime() - response.created.getTime();
2453
- if (age < maxAge)
2454
- return response.data;
2455
- }
2456
- let promise = cache.promise.get();
2457
- if (!promise) {
2458
- promise = fn();
2459
- cache.promise.set(promise);
2460
- }
2461
- const data = await promise;
2462
- cache.promise.clear();
2463
- cache.response.set({ created: new Date(), data });
2464
- return data;
2465
- }
2466
-
2467
- // src/utils/wait.ts
2468
- async function wait(time) {
2469
- return new Promise((res) => setTimeout(res, time));
2470
- }
2471
-
2472
- // src/utils/promise/withRetry.ts
2473
- function withRetry(fn, {
2474
- delay: delay_ = 100,
2475
- retryCount = 2,
2476
- shouldRetryOnResponse = () => false,
2477
- shouldRetryOnError = () => false
2478
- } = {}) {
2479
- return new Promise((resolve, reject) => {
2480
- const attemptRetry = async ({ count = 0 } = {}) => {
2481
- const retry = async ({ data } = {}) => {
2482
- const delay = typeof delay_ === "function" ? delay_({ count, data }) : delay_;
2483
- if (delay)
2484
- await wait(delay);
2485
- attemptRetry({ count: count + 1 });
2486
- };
2487
- try {
2488
- const data = await fn();
2489
- if (count < retryCount && await shouldRetryOnResponse({ count, data }))
2490
- return retry({ data });
2491
- resolve(data);
2492
- } catch (err) {
2493
- if (count < retryCount && await shouldRetryOnError({ count, error: err }))
2494
- return retry();
2495
- reject(err);
2496
- }
2497
- };
2498
- attemptRetry();
2499
- });
2500
- }
2501
-
2502
- // src/utils/promise/withTimeout.ts
2503
- function withTimeout(fn, {
2504
- errorInstance,
2505
- timeout,
2506
- signal
2507
- }) {
2508
- return new Promise((resolve, reject) => {
2509
- ;
2510
- (async () => {
2511
- let timeoutId;
2512
- try {
2513
- const controller = new AbortController();
2514
- if (timeout > 0) {
2515
- timeoutId = setTimeout(() => {
2516
- if (signal) {
2517
- controller.abort();
2518
- } else {
2519
- reject(errorInstance);
2520
- }
2521
- }, timeout);
2522
- }
2523
- resolve(await fn({ signal: _optionalChain([controller, 'optionalAccess', _39 => _39.signal]) }));
2524
- } catch (err) {
2525
- if (err.name === "AbortError")
2526
- reject(errorInstance);
2527
- reject(err);
2528
- } finally {
2529
- clearTimeout(timeoutId);
2530
- }
2531
- })();
2532
- });
2533
- }
2472
+ // src/utils/rpc.ts
2473
+ var _isomorphicunfetch = require('isomorphic-unfetch'); var _isomorphicunfetch2 = _interopRequireDefault(_isomorphicunfetch);
2474
+ var _isomorphicws = require('isomorphic-ws'); var _isomorphicws2 = _interopRequireDefault(_isomorphicws);
2534
2475
 
2535
2476
  // src/utils/stringify.ts
2536
2477
  function stringify(value) {
@@ -2544,14 +2485,12 @@ function stringify(value) {
2544
2485
  var id = 0;
2545
2486
  async function http(url, {
2546
2487
  body,
2547
- retryDelay = 100,
2548
- retryCount = 2,
2549
2488
  timeout = 0
2550
2489
  }) {
2551
- const response = await withRetry(
2552
- () => withTimeout(
2490
+ try {
2491
+ const response = await withTimeout(
2553
2492
  async ({ signal }) => {
2554
- const response2 = await fetch(url, {
2493
+ const response2 = await _isomorphicunfetch2.default.call(void 0, url, {
2555
2494
  headers: {
2556
2495
  "Content-Type": "application/json"
2557
2496
  },
@@ -2566,42 +2505,39 @@ async function http(url, {
2566
2505
  timeout,
2567
2506
  signal: true
2568
2507
  }
2569
- ),
2570
- {
2571
- delay: ({ count, data: data2 }) => {
2572
- const retryAfter = _optionalChain([data2, 'optionalAccess', _40 => _40.headers, 'access', _41 => _41.get, 'call', _42 => _42("Retry-After")]);
2573
- if (_optionalChain([retryAfter, 'optionalAccess', _43 => _43.match, 'call', _44 => _44(/\d/)]))
2574
- return parseInt(retryAfter) * 1e3;
2575
- return ~~((Math.random() + 0.5) * (1 << count)) * retryDelay;
2576
- },
2577
- retryCount,
2578
- shouldRetryOnResponse: async ({ data: data2 }) => {
2579
- if (data2.status >= 500)
2580
- return true;
2581
- if ([408, 413, 429].includes(data2.status))
2582
- return true;
2583
- return false;
2584
- }
2508
+ );
2509
+ let data;
2510
+ if (_optionalChain([response, 'access', _47 => _47.headers, 'access', _48 => _48.get, 'call', _49 => _49("Content-Type"), 'optionalAccess', _50 => _50.startsWith, 'call', _51 => _51("application/json")])) {
2511
+ data = await response.json();
2512
+ } else {
2513
+ data = await response.text();
2585
2514
  }
2586
- );
2587
- let data;
2588
- if (_optionalChain([response, 'access', _45 => _45.headers, 'access', _46 => _46.get, 'call', _47 => _47("Content-Type"), 'optionalAccess', _48 => _48.startsWith, 'call', _49 => _49("application/json")])) {
2589
- data = await response.json();
2590
- } else {
2591
- data = await response.text();
2592
- }
2593
- if (!response.ok) {
2515
+ if (!response.ok) {
2516
+ throw new HttpRequestError({
2517
+ body,
2518
+ details: stringify(data.error) || response.statusText,
2519
+ headers: response.headers,
2520
+ status: response.status,
2521
+ url
2522
+ });
2523
+ }
2524
+ if (data.error) {
2525
+ throw new RpcError({ body, error: data.error, url });
2526
+ }
2527
+ return data;
2528
+ } catch (err) {
2529
+ if (err instanceof HttpRequestError)
2530
+ throw err;
2531
+ if (err instanceof RpcError)
2532
+ throw err;
2533
+ if (err instanceof TimeoutError)
2534
+ throw err;
2594
2535
  throw new HttpRequestError({
2595
2536
  body,
2596
- details: stringify(data.error) || response.statusText,
2597
- status: response.status,
2537
+ details: err.message,
2598
2538
  url
2599
2539
  });
2600
2540
  }
2601
- if (data.error) {
2602
- throw new RpcError({ body, error: data.error, url });
2603
- }
2604
- return data;
2605
2541
  }
2606
2542
  var sockets = /* @__PURE__ */ new Map();
2607
2543
  async function getSocket(url_) {
@@ -2610,7 +2546,7 @@ async function getSocket(url_) {
2610
2546
  let socket = sockets.get(urlKey);
2611
2547
  if (socket)
2612
2548
  return socket;
2613
- const webSocket2 = new WebSocket(url);
2549
+ const webSocket2 = new (0, _isomorphicws2.default)(url);
2614
2550
  const requests = /* @__PURE__ */ new Map();
2615
2551
  const subscriptions = /* @__PURE__ */ new Map();
2616
2552
  const onMessage = ({ data }) => {
@@ -2631,7 +2567,7 @@ async function getSocket(url_) {
2631
2567
  };
2632
2568
  webSocket2.addEventListener("close", onClose);
2633
2569
  webSocket2.addEventListener("message", onMessage);
2634
- if (webSocket2.readyState === WebSocket.CONNECTING) {
2570
+ if (webSocket2.readyState === _isomorphicws2.default.CONNECTING) {
2635
2571
  await new Promise((resolve, reject) => {
2636
2572
  if (!webSocket2)
2637
2573
  return;
@@ -2663,15 +2599,15 @@ function webSocket(socket, {
2663
2599
  if (typeof message.id === "number" && id_ !== message.id)
2664
2600
  return;
2665
2601
  if (message.error) {
2666
- _optionalChain([onError, 'optionalCall', _50 => _50(new RpcError({ body, error: message.error, url: socket.url }))]);
2602
+ _optionalChain([onError, 'optionalCall', _52 => _52(new RpcError({ body, error: message.error, url: socket.url }))]);
2667
2603
  } else {
2668
- _optionalChain([onData, 'optionalCall', _51 => _51(message)]);
2604
+ _optionalChain([onData, 'optionalCall', _53 => _53(message)]);
2669
2605
  }
2670
2606
  if (body.method === "eth_subscribe" && typeof message.result === "string") {
2671
2607
  socket.subscriptions.set(message.result, callback);
2672
2608
  }
2673
2609
  if (body.method === "eth_unsubscribe") {
2674
- socket.subscriptions.delete(_optionalChain([body, 'access', _52 => _52.params, 'optionalAccess', _53 => _53[0]]));
2610
+ socket.subscriptions.delete(_optionalChain([body, 'access', _54 => _54.params, 'optionalAccess', _55 => _55[0]]));
2675
2611
  }
2676
2612
  };
2677
2613
  socket.requests.set(id_, callback);
@@ -2925,5 +2861,7 @@ function parseGwei(ether, unit = "wei") {
2925
2861
 
2926
2862
 
2927
2863
 
2928
- exports.BaseError = BaseError; exports.AbiConstructorNotFoundError = AbiConstructorNotFoundError; exports.AbiConstructorParamsNotFoundError = AbiConstructorParamsNotFoundError; exports.AbiDecodingDataSizeInvalidError = AbiDecodingDataSizeInvalidError; exports.AbiDecodingZeroDataError = AbiDecodingZeroDataError; exports.AbiEncodingArrayLengthMismatchError = AbiEncodingArrayLengthMismatchError; exports.AbiEncodingLengthMismatchError = AbiEncodingLengthMismatchError; exports.AbiErrorInputsNotFoundError = AbiErrorInputsNotFoundError; exports.AbiErrorNotFoundError = AbiErrorNotFoundError; exports.AbiErrorSignatureNotFoundError = AbiErrorSignatureNotFoundError; exports.AbiEventNotFoundError = AbiEventNotFoundError; exports.AbiFunctionNotFoundError = AbiFunctionNotFoundError; exports.AbiFunctionOutputsNotFoundError = AbiFunctionOutputsNotFoundError; exports.AbiFunctionSignatureNotFoundError = AbiFunctionSignatureNotFoundError; exports.InvalidAbiEncodingTypeError = InvalidAbiEncodingTypeError; exports.InvalidAbiDecodingTypeError = InvalidAbiDecodingTypeError; exports.InvalidArrayError = InvalidArrayError; exports.InvalidDefinitionTypeError = InvalidDefinitionTypeError; exports.InvalidAddressError = InvalidAddressError; exports.BlockNotFoundError = BlockNotFoundError; exports.multicall3Abi = multicall3Abi; exports.isBytes = isBytes; exports.isHex = isHex; exports.pad = pad; exports.padHex = padHex; exports.padBytes = padBytes; exports.trim = trim; exports.size = size; exports.slice = slice; exports.sliceBytes = sliceBytes; exports.sliceHex = sliceHex; exports.boolToHex = boolToHex; exports.bytesToHex = bytesToHex; exports.encodeHex = encodeHex; exports.numberToHex = numberToHex; exports.stringToHex = stringToHex; exports.boolToBytes = boolToBytes; exports.encodeBytes = encodeBytes; exports.hexToBytes = hexToBytes; exports.numberToBytes = numberToBytes; exports.stringToBytes = stringToBytes; exports.encodeRlp = encodeRlp; exports.decodeHex = decodeHex; exports.hexToBigInt = hexToBigInt; exports.hexToBool = hexToBool; exports.hexToNumber = hexToNumber; exports.hexToString = hexToString; exports.decodeBytes = decodeBytes; exports.bytesToBigint = bytesToBigint; exports.bytesToBool = bytesToBool; exports.bytesToNumber = bytesToNumber; exports.bytesToString = bytesToString; exports.decodeRlp = decodeRlp; exports.extractFunctionParts = extractFunctionParts; exports.extractFunctionName = extractFunctionName; exports.extractFunctionParams = extractFunctionParams; exports.extractFunctionType = extractFunctionType; exports.getContractError = getContractError; exports.keccak256 = keccak256; exports.getEventSignature = getEventSignature; exports.getFunctionSignature = getFunctionSignature; exports.checksumAddress = checksumAddress; exports.getAddress = getAddress; exports.getContractAddress = getContractAddress; exports.getCreateAddress = getCreateAddress; exports.getCreate2Address = getCreate2Address; exports.isAddress = isAddress; exports.isAddressEqual = isAddressEqual; exports.encodeAbi = encodeAbi; exports.decodeAbi = decodeAbi; exports.formatAbiItem = formatAbiItem; exports.decodeErrorResult = decodeErrorResult; exports.decodeFunctionData = decodeFunctionData; exports.getAbiItem = getAbiItem; exports.decodeFunctionResult = decodeFunctionResult; exports.encodeDeployData = encodeDeployData; exports.encodeErrorResult = encodeErrorResult; exports.encodeEventTopics = encodeEventTopics; exports.encodeFunctionData = encodeFunctionData; exports.encodeFunctionResult = encodeFunctionResult; exports.formatAbiItemWithArgs = formatAbiItemWithArgs; exports.buildRequest = buildRequest; exports.defineChain = defineChain; exports.normalize = normalize; exports.labelhash = labelhash; exports.namehash = namehash; exports.format = format3; exports.defineFormatter = defineFormatter; exports.transactionType = transactionType; exports.formatTransaction = formatTransaction; exports.defineTransaction = defineTransaction; exports.formatBlock = formatBlock; exports.defineBlock = defineBlock; exports.extract = extract; exports.formatFeeHistory = formatFeeHistory; exports.formatLog = formatLog; exports.formatTransactionReceipt = formatTransactionReceipt; exports.defineTransactionReceipt = defineTransactionReceipt; exports.formatTransactionRequest = formatTransactionRequest; exports.defineTransactionRequest = defineTransactionRequest; exports.getCache = getCache; exports.withCache = withCache; exports.wait = wait; exports.stringify = stringify; exports.getSocket = getSocket; exports.rpc = rpc; exports.etherUnits = etherUnits; exports.gweiUnits = gweiUnits; exports.weiUnits = weiUnits; exports.formatUnit = formatUnit; exports.formatEther = formatEther; exports.formatGwei = formatGwei; exports.parseUnit = parseUnit; exports.parseEther = parseEther; exports.parseGwei = parseGwei; exports.ContractFunctionExecutionError = ContractFunctionExecutionError; exports.ContractFunctionRevertedError = ContractFunctionRevertedError; exports.ContractFunctionZeroDataError = ContractFunctionZeroDataError; exports.RawContractError = RawContractError; exports.SizeExceedsPaddingSizeError = SizeExceedsPaddingSizeError; exports.DataLengthTooLongError = DataLengthTooLongError; exports.DataLengthTooShortError = DataLengthTooShortError; exports.InvalidBytesBooleanError = InvalidBytesBooleanError; exports.InvalidHexBooleanError = InvalidHexBooleanError; exports.InvalidHexValueError = InvalidHexValueError; exports.OffsetOutOfBoundsError = OffsetOutOfBoundsError; exports.FilterTypeNotSupportedError = FilterTypeNotSupportedError; exports.RequestError = RequestError; exports.RpcRequestError = RpcRequestError; exports.ParseRpcError = ParseRpcError; exports.InvalidRequestRpcError = InvalidRequestRpcError; exports.MethodNotFoundRpcError = MethodNotFoundRpcError; exports.InvalidParamsRpcError = InvalidParamsRpcError; exports.InternalRpcError = InternalRpcError; exports.InvalidInputRpcError = InvalidInputRpcError; exports.ResourceNotFoundRpcError = ResourceNotFoundRpcError; exports.ResourceUnavailableRpcError = ResourceUnavailableRpcError; exports.TransactionRejectedRpcError = TransactionRejectedRpcError; exports.MethodNotSupportedRpcError = MethodNotSupportedRpcError; exports.LimitExceededRpcError = LimitExceededRpcError; exports.JsonRpcVersionUnsupportedError = JsonRpcVersionUnsupportedError; exports.UnknownRpcError = UnknownRpcError; exports.HttpRequestError = HttpRequestError; exports.WebSocketRequestError = WebSocketRequestError; exports.RpcError = RpcError; exports.TimeoutError = TimeoutError; exports.InvalidGasArgumentsError = InvalidGasArgumentsError; exports.TransactionNotFoundError = TransactionNotFoundError; exports.TransactionReceiptNotFoundError = TransactionReceiptNotFoundError; exports.WaitForTransactionReceiptTimeoutError = WaitForTransactionReceiptTimeoutError; exports.UrlRequiredError = UrlRequiredError;
2929
- //# sourceMappingURL=chunk-4D5XG6XB.js.map
2864
+
2865
+
2866
+ exports.BaseError = BaseError; exports.AbiConstructorNotFoundError = AbiConstructorNotFoundError; exports.AbiConstructorParamsNotFoundError = AbiConstructorParamsNotFoundError; exports.AbiDecodingDataSizeInvalidError = AbiDecodingDataSizeInvalidError; exports.AbiDecodingZeroDataError = AbiDecodingZeroDataError; exports.AbiEncodingArrayLengthMismatchError = AbiEncodingArrayLengthMismatchError; exports.AbiEncodingLengthMismatchError = AbiEncodingLengthMismatchError; exports.AbiErrorInputsNotFoundError = AbiErrorInputsNotFoundError; exports.AbiErrorNotFoundError = AbiErrorNotFoundError; exports.AbiErrorSignatureNotFoundError = AbiErrorSignatureNotFoundError; exports.AbiEventNotFoundError = AbiEventNotFoundError; exports.AbiFunctionNotFoundError = AbiFunctionNotFoundError; exports.AbiFunctionOutputsNotFoundError = AbiFunctionOutputsNotFoundError; exports.AbiFunctionSignatureNotFoundError = AbiFunctionSignatureNotFoundError; exports.InvalidAbiEncodingTypeError = InvalidAbiEncodingTypeError; exports.InvalidAbiDecodingTypeError = InvalidAbiDecodingTypeError; exports.InvalidArrayError = InvalidArrayError; exports.InvalidDefinitionTypeError = InvalidDefinitionTypeError; exports.InvalidAddressError = InvalidAddressError; exports.BlockNotFoundError = BlockNotFoundError; exports.ChainDoesNotSupportContract = ChainDoesNotSupportContract; exports.multicall3Abi = multicall3Abi; exports.panicReasons = panicReasons; exports.ContractFunctionExecutionError = ContractFunctionExecutionError; exports.ContractFunctionRevertedError = ContractFunctionRevertedError; exports.ContractFunctionZeroDataError = ContractFunctionZeroDataError; exports.RawContractError = RawContractError; exports.SizeExceedsPaddingSizeError = SizeExceedsPaddingSizeError; exports.DataLengthTooLongError = DataLengthTooLongError; exports.DataLengthTooShortError = DataLengthTooShortError; exports.InvalidBytesBooleanError = InvalidBytesBooleanError; exports.InvalidHexBooleanError = InvalidHexBooleanError; exports.InvalidHexValueError = InvalidHexValueError; exports.OffsetOutOfBoundsError = OffsetOutOfBoundsError; exports.FilterTypeNotSupportedError = FilterTypeNotSupportedError; exports.RequestError = RequestError; exports.RpcRequestError = RpcRequestError; exports.ParseRpcError = ParseRpcError; exports.InvalidRequestRpcError = InvalidRequestRpcError; exports.MethodNotFoundRpcError = MethodNotFoundRpcError; exports.InvalidParamsRpcError = InvalidParamsRpcError; exports.InternalRpcError = InternalRpcError; exports.InvalidInputRpcError = InvalidInputRpcError; exports.ResourceNotFoundRpcError = ResourceNotFoundRpcError; exports.ResourceUnavailableRpcError = ResourceUnavailableRpcError; exports.TransactionRejectedRpcError = TransactionRejectedRpcError; exports.MethodNotSupportedRpcError = MethodNotSupportedRpcError; exports.LimitExceededRpcError = LimitExceededRpcError; exports.JsonRpcVersionUnsupportedError = JsonRpcVersionUnsupportedError; exports.UnknownRpcError = UnknownRpcError; exports.HttpRequestError = HttpRequestError; exports.WebSocketRequestError = WebSocketRequestError; exports.RpcError = RpcError; exports.TimeoutError = TimeoutError; exports.InvalidGasArgumentsError = InvalidGasArgumentsError; exports.TransactionNotFoundError = TransactionNotFoundError; exports.TransactionReceiptNotFoundError = TransactionReceiptNotFoundError; exports.WaitForTransactionReceiptTimeoutError = WaitForTransactionReceiptTimeoutError; exports.UrlRequiredError = UrlRequiredError; exports.concat = concat; exports.isBytes = isBytes; exports.isHex = isHex; exports.pad = pad; exports.padHex = padHex; exports.padBytes = padBytes; exports.trim = trim; exports.size = size; exports.slice = slice; exports.sliceBytes = sliceBytes; exports.sliceHex = sliceHex; exports.boolToHex = boolToHex; exports.bytesToHex = bytesToHex; exports.encodeHex = encodeHex; exports.numberToHex = numberToHex; exports.stringToHex = stringToHex; exports.boolToBytes = boolToBytes; exports.encodeBytes = encodeBytes; exports.hexToBytes = hexToBytes; exports.numberToBytes = numberToBytes; exports.stringToBytes = stringToBytes; exports.encodeRlp = encodeRlp; exports.decodeHex = decodeHex; exports.hexToBigInt = hexToBigInt; exports.hexToBool = hexToBool; exports.hexToNumber = hexToNumber; exports.hexToString = hexToString; exports.decodeBytes = decodeBytes; exports.bytesToBigint = bytesToBigint; exports.bytesToBool = bytesToBool; exports.bytesToNumber = bytesToNumber; exports.bytesToString = bytesToString; exports.decodeRlp = decodeRlp; exports.extractFunctionParts = extractFunctionParts; exports.extractFunctionName = extractFunctionName; exports.extractFunctionParams = extractFunctionParams; exports.extractFunctionType = extractFunctionType; exports.getContractError = getContractError; exports.keccak256 = keccak256; exports.getEventSignature = getEventSignature; exports.getFunctionSignature = getFunctionSignature; exports.checksumAddress = checksumAddress; exports.getAddress = getAddress; exports.getContractAddress = getContractAddress2; exports.getCreateAddress = getCreateAddress; exports.getCreate2Address = getCreate2Address; exports.isAddress = isAddress; exports.isAddressEqual = isAddressEqual; exports.encodeAbi = encodeAbi; exports.decodeAbi = decodeAbi; exports.formatAbiItem = formatAbiItem; exports.decodeErrorResult = decodeErrorResult; exports.decodeEventLog = decodeEventLog; exports.decodeFunctionData = decodeFunctionData; exports.getAbiItem = getAbiItem; exports.decodeFunctionResult = decodeFunctionResult; exports.encodeDeployData = encodeDeployData; exports.encodeErrorResult = encodeErrorResult; exports.encodeEventTopics = encodeEventTopics; exports.encodeFunctionData = encodeFunctionData; exports.encodeFunctionResult = encodeFunctionResult; exports.formatAbiItemWithArgs = formatAbiItemWithArgs; exports.getCache = getCache; exports.withCache = withCache; exports.wait = wait; exports.isDeterministicError = isDeterministicError; exports.buildRequest = buildRequest; exports.defineChain = defineChain; exports.format = format3; exports.defineFormatter = defineFormatter; exports.transactionType = transactionType; exports.formatTransaction = formatTransaction; exports.defineTransaction = defineTransaction; exports.formatBlock = formatBlock; exports.defineBlock = defineBlock; exports.extract = extract; exports.formatFeeHistory = formatFeeHistory; exports.formatLog = formatLog; exports.formatTransactionReceipt = formatTransactionReceipt; exports.defineTransactionReceipt = defineTransactionReceipt; exports.formatTransactionRequest = formatTransactionRequest; exports.defineTransactionRequest = defineTransactionRequest; exports.stringify = stringify; exports.getSocket = getSocket; exports.rpc = rpc; exports.etherUnits = etherUnits; exports.gweiUnits = gweiUnits; exports.weiUnits = weiUnits; exports.formatUnit = formatUnit; exports.formatEther = formatEther; exports.formatGwei = formatGwei; exports.parseUnit = parseUnit; exports.parseEther = parseEther; exports.parseGwei = parseGwei;
2867
+ //# sourceMappingURL=chunk-DSQO3E4F.js.map