viem 0.0.0-w-20230725184008 → 0.0.0-w-20230810155401

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 (438) hide show
  1. package/README.md +6 -0
  2. package/chains/utils/package.json +5 -0
  3. package/dist/cjs/accounts/index.js +6 -2
  4. package/dist/cjs/accounts/index.js.map +1 -1
  5. package/dist/cjs/accounts/utils/privateKeyToAddress.js +12 -0
  6. package/dist/cjs/accounts/utils/privateKeyToAddress.js.map +1 -0
  7. package/dist/cjs/accounts/utils/signMessage.js +1 -1
  8. package/dist/cjs/accounts/utils/signMessage.js.map +1 -1
  9. package/dist/cjs/accounts/utils/signTransaction.js.map +1 -1
  10. package/dist/cjs/accounts/utils/signTypedData.js +1 -1
  11. package/dist/cjs/accounts/utils/signTypedData.js.map +1 -1
  12. package/dist/cjs/actions/ens/getEnsAddress.js +18 -13
  13. package/dist/cjs/actions/ens/getEnsAddress.js.map +1 -1
  14. package/dist/cjs/actions/index.js.map +1 -1
  15. package/dist/cjs/actions/public/createContractEventFilter.js.map +1 -1
  16. package/dist/cjs/actions/public/createEventFilter.js +16 -8
  17. package/dist/cjs/actions/public/createEventFilter.js.map +1 -1
  18. package/dist/cjs/actions/public/estimateContractGas.js +1 -1
  19. package/dist/cjs/actions/public/estimateContractGas.js.map +1 -1
  20. package/dist/cjs/actions/public/estimateGas.js +3 -1
  21. package/dist/cjs/actions/public/estimateGas.js.map +1 -1
  22. package/dist/cjs/actions/public/getBlock.js +3 -1
  23. package/dist/cjs/actions/public/getBlock.js.map +1 -1
  24. package/dist/cjs/actions/public/getBlockNumber.js +2 -2
  25. package/dist/cjs/actions/public/getBlockNumber.js.map +1 -1
  26. package/dist/cjs/actions/public/getFilterChanges.js.map +1 -1
  27. package/dist/cjs/actions/public/getFilterLogs.js +1 -1
  28. package/dist/cjs/actions/public/getFilterLogs.js.map +1 -1
  29. package/dist/cjs/actions/public/getLogs.js +16 -10
  30. package/dist/cjs/actions/public/getLogs.js.map +1 -1
  31. package/dist/cjs/actions/public/getTransaction.js +2 -1
  32. package/dist/cjs/actions/public/getTransaction.js.map +1 -1
  33. package/dist/cjs/actions/public/watchBlockNumber.js +1 -1
  34. package/dist/cjs/actions/public/watchBlockNumber.js.map +1 -1
  35. package/dist/cjs/actions/public/watchBlocks.js +2 -1
  36. package/dist/cjs/actions/public/watchBlocks.js.map +1 -1
  37. package/dist/cjs/actions/public/watchContractEvent.js +135 -65
  38. package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
  39. package/dist/cjs/actions/public/watchEvent.js +138 -59
  40. package/dist/cjs/actions/public/watchEvent.js.map +1 -1
  41. package/dist/cjs/actions/wallet/sendTransaction.js.map +1 -1
  42. package/dist/cjs/actions/wallet/writeContract.js.map +1 -1
  43. package/dist/cjs/chains/{formatters/celo.js → celo/formatters.js} +1 -1
  44. package/dist/cjs/chains/celo/formatters.js.map +1 -0
  45. package/dist/cjs/chains/{serializers/celo.js → celo/serializers.js} +1 -1
  46. package/dist/cjs/chains/celo/serializers.js.map +1 -0
  47. package/dist/cjs/{types/formatter.js → chains/celo/types.js} +1 -1
  48. package/dist/cjs/chains/celo/types.js.map +1 -0
  49. package/dist/cjs/chains/index.js +30 -15
  50. package/dist/cjs/chains/index.js.map +1 -1
  51. package/dist/cjs/chains/optimism/fees.js +7 -0
  52. package/dist/cjs/chains/optimism/fees.js.map +1 -0
  53. package/dist/cjs/chains/{formatters/optimism.js → optimism/formatters.js} +13 -1
  54. package/dist/cjs/chains/optimism/formatters.js.map +1 -0
  55. package/dist/cjs/{types/serializer.js → chains/optimism/types.js} +1 -1
  56. package/dist/cjs/chains/optimism/types.js.map +1 -0
  57. package/dist/cjs/chains/utils.js +11 -0
  58. package/dist/cjs/chains/utils.js.map +1 -0
  59. package/dist/cjs/clients/createClient.js +2 -1
  60. package/dist/cjs/clients/createClient.js.map +1 -1
  61. package/dist/cjs/clients/createPublicClient.js.map +1 -1
  62. package/dist/cjs/clients/createTestClient.js.map +1 -1
  63. package/dist/cjs/clients/createWalletClient.js.map +1 -1
  64. package/dist/cjs/clients/decorators/public.js.map +1 -1
  65. package/dist/cjs/constants/abis.js +12 -2
  66. package/dist/cjs/constants/abis.js.map +1 -1
  67. package/dist/cjs/constants/number.js +101 -0
  68. package/dist/cjs/constants/number.js.map +1 -0
  69. package/dist/cjs/contract.js.map +1 -1
  70. package/dist/cjs/errors/abi.js +8 -1
  71. package/dist/cjs/errors/abi.js.map +1 -1
  72. package/dist/cjs/errors/contract.js +56 -32
  73. package/dist/cjs/errors/contract.js.map +1 -1
  74. package/dist/cjs/errors/node.js +1 -1
  75. package/dist/cjs/errors/node.js.map +1 -1
  76. package/dist/cjs/errors/version.js +1 -1
  77. package/dist/cjs/errors/version.js.map +1 -1
  78. package/dist/cjs/index.js +110 -7
  79. package/dist/cjs/index.js.map +1 -1
  80. package/dist/cjs/public.js.map +1 -1
  81. package/dist/cjs/utils/abi/encodeAbiParameters.js +11 -14
  82. package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
  83. package/dist/cjs/utils/abi/encodePacked.js +2 -0
  84. package/dist/cjs/utils/abi/encodePacked.js.map +1 -1
  85. package/dist/cjs/utils/chain.js +5 -3
  86. package/dist/cjs/utils/chain.js.map +1 -1
  87. package/dist/cjs/utils/formatters/block.js.map +1 -1
  88. package/dist/cjs/utils/formatters/extract.js.map +1 -1
  89. package/dist/cjs/utils/formatters/formatter.js +1 -0
  90. package/dist/cjs/utils/formatters/formatter.js.map +1 -1
  91. package/dist/cjs/utils/formatters/transaction.js.map +1 -1
  92. package/dist/cjs/utils/formatters/transactionReceipt.js.map +1 -1
  93. package/dist/cjs/utils/formatters/transactionRequest.js.map +1 -1
  94. package/dist/cjs/utils/hash/hashFunction.js +3 -2
  95. package/dist/cjs/utils/hash/hashFunction.js.map +1 -1
  96. package/dist/cjs/utils/promise/withCache.js +3 -3
  97. package/dist/cjs/utils/promise/withCache.js.map +1 -1
  98. package/dist/cjs/utils/signature/hexToSignature.js +12 -0
  99. package/dist/cjs/utils/signature/hexToSignature.js.map +1 -0
  100. package/dist/cjs/utils/signature/signatureToHex.js.map +1 -0
  101. package/dist/cjs/utils/transaction/prepareRequest.js +19 -12
  102. package/dist/cjs/utils/transaction/prepareRequest.js.map +1 -1
  103. package/dist/cjs/utils/unit/parseUnits.js +2 -1
  104. package/dist/cjs/utils/unit/parseUnits.js.map +1 -1
  105. package/dist/esm/accounts/index.js +3 -1
  106. package/dist/esm/accounts/index.js.map +1 -1
  107. package/dist/esm/accounts/utils/privateKeyToAddress.js +15 -0
  108. package/dist/esm/accounts/utils/privateKeyToAddress.js.map +1 -0
  109. package/dist/esm/accounts/utils/signMessage.js +1 -1
  110. package/dist/esm/accounts/utils/signMessage.js.map +1 -1
  111. package/dist/esm/accounts/utils/signTransaction.js.map +1 -1
  112. package/dist/esm/accounts/utils/signTypedData.js +1 -1
  113. package/dist/esm/accounts/utils/signTypedData.js.map +1 -1
  114. package/dist/esm/actions/ens/getEnsAddress.js +19 -14
  115. package/dist/esm/actions/ens/getEnsAddress.js.map +1 -1
  116. package/dist/esm/actions/index.js.map +1 -1
  117. package/dist/esm/actions/public/createContractEventFilter.js.map +1 -1
  118. package/dist/esm/actions/public/createEventFilter.js +16 -8
  119. package/dist/esm/actions/public/createEventFilter.js.map +1 -1
  120. package/dist/esm/actions/public/estimateContractGas.js +1 -1
  121. package/dist/esm/actions/public/estimateContractGas.js.map +1 -1
  122. package/dist/esm/actions/public/estimateGas.js +4 -2
  123. package/dist/esm/actions/public/estimateGas.js.map +1 -1
  124. package/dist/esm/actions/public/getBlock.js +3 -1
  125. package/dist/esm/actions/public/getBlock.js.map +1 -1
  126. package/dist/esm/actions/public/getBlockNumber.js +2 -2
  127. package/dist/esm/actions/public/getBlockNumber.js.map +1 -1
  128. package/dist/esm/actions/public/getFilterChanges.js.map +1 -1
  129. package/dist/esm/actions/public/getFilterLogs.js +1 -1
  130. package/dist/esm/actions/public/getFilterLogs.js.map +1 -1
  131. package/dist/esm/actions/public/getLogs.js +16 -10
  132. package/dist/esm/actions/public/getLogs.js.map +1 -1
  133. package/dist/esm/actions/public/getTransaction.js +2 -1
  134. package/dist/esm/actions/public/getTransaction.js.map +1 -1
  135. package/dist/esm/actions/public/watchBlockNumber.js +1 -1
  136. package/dist/esm/actions/public/watchBlockNumber.js.map +1 -1
  137. package/dist/esm/actions/public/watchBlocks.js +2 -1
  138. package/dist/esm/actions/public/watchBlocks.js.map +1 -1
  139. package/dist/esm/actions/public/watchContractEvent.js +145 -71
  140. package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
  141. package/dist/esm/actions/public/watchEvent.js +148 -65
  142. package/dist/esm/actions/public/watchEvent.js.map +1 -1
  143. package/dist/esm/actions/wallet/sendTransaction.js +1 -1
  144. package/dist/esm/actions/wallet/sendTransaction.js.map +1 -1
  145. package/dist/esm/actions/wallet/writeContract.js.map +1 -1
  146. package/dist/esm/chains/{formatters/celo.js → celo/formatters.js} +2 -2
  147. package/dist/esm/chains/celo/formatters.js.map +1 -0
  148. package/dist/esm/chains/{serializers/celo.js → celo/serializers.js} +1 -1
  149. package/dist/esm/chains/celo/serializers.js.map +1 -0
  150. package/dist/esm/chains/celo/types.js +2 -0
  151. package/dist/esm/chains/celo/types.js.map +1 -0
  152. package/dist/esm/chains/index.js +22 -7
  153. package/dist/esm/chains/index.js.map +1 -1
  154. package/dist/esm/chains/optimism/fees.js +4 -0
  155. package/dist/esm/chains/optimism/fees.js.map +1 -0
  156. package/dist/esm/chains/{formatters/optimism.js → optimism/formatters.js} +15 -2
  157. package/dist/esm/chains/optimism/formatters.js.map +1 -0
  158. package/dist/esm/chains/optimism/types.js +2 -0
  159. package/dist/esm/chains/optimism/types.js.map +1 -0
  160. package/dist/esm/chains/utils.js +4 -0
  161. package/dist/esm/chains/utils.js.map +1 -0
  162. package/dist/esm/clients/createClient.js +2 -1
  163. package/dist/esm/clients/createClient.js.map +1 -1
  164. package/dist/esm/clients/createPublicClient.js.map +1 -1
  165. package/dist/esm/clients/createTestClient.js.map +1 -1
  166. package/dist/esm/clients/createWalletClient.js.map +1 -1
  167. package/dist/esm/clients/decorators/public.js.map +1 -1
  168. package/dist/esm/constants/abis.js +11 -1
  169. package/dist/esm/constants/abis.js.map +1 -1
  170. package/dist/esm/constants/number.js +97 -0
  171. package/dist/esm/constants/number.js.map +1 -0
  172. package/dist/esm/contract.js.map +1 -1
  173. package/dist/esm/errors/abi.js +8 -1
  174. package/dist/esm/errors/abi.js.map +1 -1
  175. package/dist/esm/errors/contract.js +56 -32
  176. package/dist/esm/errors/contract.js.map +1 -1
  177. package/dist/esm/errors/node.js +1 -1
  178. package/dist/esm/errors/node.js.map +1 -1
  179. package/dist/esm/errors/version.js +1 -1
  180. package/dist/esm/errors/version.js.map +1 -1
  181. package/dist/esm/index.js +4 -1
  182. package/dist/esm/index.js.map +1 -1
  183. package/dist/esm/public.js.map +1 -1
  184. package/dist/esm/utils/abi/encodeAbiParameters.js +13 -14
  185. package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
  186. package/dist/esm/utils/abi/encodePacked.js +2 -0
  187. package/dist/esm/utils/abi/encodePacked.js.map +1 -1
  188. package/dist/esm/utils/chain.js +5 -3
  189. package/dist/esm/utils/chain.js.map +1 -1
  190. package/dist/esm/utils/formatters/block.js.map +1 -1
  191. package/dist/esm/utils/formatters/extract.js.map +1 -1
  192. package/dist/esm/utils/formatters/formatter.js +1 -0
  193. package/dist/esm/utils/formatters/formatter.js.map +1 -1
  194. package/dist/esm/utils/formatters/transaction.js.map +1 -1
  195. package/dist/esm/utils/formatters/transactionReceipt.js.map +1 -1
  196. package/dist/esm/utils/formatters/transactionRequest.js.map +1 -1
  197. package/dist/esm/utils/hash/hashFunction.js +3 -2
  198. package/dist/esm/utils/hash/hashFunction.js.map +1 -1
  199. package/dist/esm/utils/promise/withCache.js +3 -3
  200. package/dist/esm/utils/promise/withCache.js.map +1 -1
  201. package/dist/esm/utils/signature/hexToSignature.js +18 -0
  202. package/dist/esm/utils/signature/hexToSignature.js.map +1 -0
  203. package/dist/esm/utils/signature/signatureToHex.js +21 -0
  204. package/dist/esm/utils/signature/signatureToHex.js.map +1 -0
  205. package/dist/esm/utils/transaction/prepareRequest.js +20 -13
  206. package/dist/esm/utils/transaction/prepareRequest.js.map +1 -1
  207. package/dist/esm/utils/unit/parseUnits.js +2 -1
  208. package/dist/esm/utils/unit/parseUnits.js.map +1 -1
  209. package/dist/types/accounts/index.d.ts +3 -1
  210. package/dist/types/accounts/index.d.ts.map +1 -1
  211. package/dist/types/accounts/utils/privateKeyToAddress.d.ts +11 -0
  212. package/dist/types/accounts/utils/privateKeyToAddress.d.ts.map +1 -0
  213. package/dist/types/accounts/utils/signTransaction.d.ts +2 -2
  214. package/dist/types/accounts/utils/signTransaction.d.ts.map +1 -1
  215. package/dist/types/actions/ens/getEnsAddress.d.ts +3 -1
  216. package/dist/types/actions/ens/getEnsAddress.d.ts.map +1 -1
  217. package/dist/types/actions/index.d.ts +5 -1
  218. package/dist/types/actions/index.d.ts.map +1 -1
  219. package/dist/types/actions/public/createContractEventFilter.d.ts +5 -5
  220. package/dist/types/actions/public/createContractEventFilter.d.ts.map +1 -1
  221. package/dist/types/actions/public/createEventFilter.d.ts +20 -7
  222. package/dist/types/actions/public/createEventFilter.d.ts.map +1 -1
  223. package/dist/types/actions/public/estimateGas.d.ts.map +1 -1
  224. package/dist/types/actions/public/getBlock.d.ts +5 -5
  225. package/dist/types/actions/public/getBlock.d.ts.map +1 -1
  226. package/dist/types/actions/public/getBlockNumber.d.ts +4 -2
  227. package/dist/types/actions/public/getBlockNumber.d.ts.map +1 -1
  228. package/dist/types/actions/public/getFilterChanges.d.ts +5 -8
  229. package/dist/types/actions/public/getFilterChanges.d.ts.map +1 -1
  230. package/dist/types/actions/public/getFilterLogs.d.ts +5 -4
  231. package/dist/types/actions/public/getFilterLogs.d.ts.map +1 -1
  232. package/dist/types/actions/public/getLogs.d.ts +17 -6
  233. package/dist/types/actions/public/getLogs.d.ts.map +1 -1
  234. package/dist/types/actions/public/getTransaction.d.ts +4 -4
  235. package/dist/types/actions/public/getTransaction.d.ts.map +1 -1
  236. package/dist/types/actions/public/getTransactionReceipt.d.ts +1 -1
  237. package/dist/types/actions/public/getTransactionReceipt.d.ts.map +1 -1
  238. package/dist/types/actions/public/simulateContract.d.ts +2 -2
  239. package/dist/types/actions/public/simulateContract.d.ts.map +1 -1
  240. package/dist/types/actions/public/watchBlocks.d.ts +10 -10
  241. package/dist/types/actions/public/watchBlocks.d.ts.map +1 -1
  242. package/dist/types/actions/public/watchContractEvent.d.ts +35 -9
  243. package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
  244. package/dist/types/actions/public/watchEvent.d.ts +48 -14
  245. package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
  246. package/dist/types/actions/wallet/deployContract.d.ts +1 -1
  247. package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
  248. package/dist/types/actions/wallet/sendTransaction.d.ts +2 -2
  249. package/dist/types/actions/wallet/sendTransaction.d.ts.map +1 -1
  250. package/dist/types/actions/wallet/writeContract.d.ts +4 -2
  251. package/dist/types/actions/wallet/writeContract.d.ts.map +1 -1
  252. package/dist/types/chains/{formatters/celo.d.ts → celo/formatters.d.ts} +30 -85
  253. package/dist/types/chains/celo/formatters.d.ts.map +1 -0
  254. package/dist/types/chains/{serializers/celo.d.ts → celo/serializers.d.ts} +4 -4
  255. package/dist/types/chains/celo/serializers.d.ts.map +1 -0
  256. package/dist/types/chains/celo/types.d.ts +60 -0
  257. package/dist/types/chains/celo/types.d.ts.map +1 -0
  258. package/dist/types/chains/index.d.ts +2527 -2722
  259. package/dist/types/chains/index.d.ts.map +1 -1
  260. package/dist/types/chains/optimism/fees.d.ts +4 -0
  261. package/dist/types/chains/optimism/fees.d.ts.map +1 -0
  262. package/dist/types/chains/{formatters/optimism.d.ts → optimism/formatters.d.ts} +79 -54
  263. package/dist/types/chains/optimism/formatters.d.ts.map +1 -0
  264. package/dist/types/chains/optimism/types.d.ts +53 -0
  265. package/dist/types/chains/optimism/types.d.ts.map +1 -0
  266. package/dist/types/chains/utils.d.ts +6 -0
  267. package/dist/types/chains/utils.d.ts.map +1 -0
  268. package/dist/types/clients/createClient.d.ts +7 -0
  269. package/dist/types/clients/createClient.d.ts.map +1 -1
  270. package/dist/types/clients/createPublicClient.d.ts +1 -1
  271. package/dist/types/clients/createPublicClient.d.ts.map +1 -1
  272. package/dist/types/clients/createTestClient.d.ts +1 -1
  273. package/dist/types/clients/createTestClient.d.ts.map +1 -1
  274. package/dist/types/clients/createWalletClient.d.ts +1 -1
  275. package/dist/types/clients/createWalletClient.d.ts.map +1 -1
  276. package/dist/types/clients/decorators/public.d.ts +11 -10
  277. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  278. package/dist/types/constants/abis.d.ts +16 -1
  279. package/dist/types/constants/abis.d.ts.map +1 -1
  280. package/dist/types/constants/number.d.ts +97 -0
  281. package/dist/types/constants/number.d.ts.map +1 -0
  282. package/dist/types/contract.d.ts +5 -1
  283. package/dist/types/contract.d.ts.map +1 -1
  284. package/dist/types/errors/abi.d.ts +1 -0
  285. package/dist/types/errors/abi.d.ts.map +1 -1
  286. package/dist/types/errors/contract.d.ts +1 -0
  287. package/dist/types/errors/contract.d.ts.map +1 -1
  288. package/dist/types/errors/node.d.ts.map +1 -1
  289. package/dist/types/errors/version.d.ts +1 -1
  290. package/dist/types/errors/version.d.ts.map +1 -1
  291. package/dist/types/index.d.ts +24 -6
  292. package/dist/types/index.d.ts.map +1 -1
  293. package/dist/types/public.d.ts +5 -1
  294. package/dist/types/public.d.ts.map +1 -1
  295. package/dist/types/types/block.d.ts +7 -7
  296. package/dist/types/types/block.d.ts.map +1 -1
  297. package/dist/types/types/chain.d.ts +52 -8
  298. package/dist/types/types/chain.d.ts.map +1 -1
  299. package/dist/types/types/contract.d.ts +1 -1
  300. package/dist/types/types/contract.d.ts.map +1 -1
  301. package/dist/types/types/filter.d.ts +7 -3
  302. package/dist/types/types/filter.d.ts.map +1 -1
  303. package/dist/types/types/log.d.ts +8 -8
  304. package/dist/types/types/log.d.ts.map +1 -1
  305. package/dist/types/types/misc.d.ts.map +1 -1
  306. package/dist/types/types/rpc.d.ts +3 -3
  307. package/dist/types/types/rpc.d.ts.map +1 -1
  308. package/dist/types/types/transaction.d.ts +8 -8
  309. package/dist/types/types/transaction.d.ts.map +1 -1
  310. package/dist/types/types/utils.d.ts +10 -0
  311. package/dist/types/types/utils.d.ts.map +1 -1
  312. package/dist/types/utils/abi/encodeAbiParameters.d.ts.map +1 -1
  313. package/dist/types/utils/chain.d.ts +3 -6
  314. package/dist/types/utils/chain.d.ts.map +1 -1
  315. package/dist/types/utils/formatters/block.d.ts +18 -4
  316. package/dist/types/utils/formatters/block.d.ts.map +1 -1
  317. package/dist/types/utils/formatters/extract.d.ts +2 -2
  318. package/dist/types/utils/formatters/extract.d.ts.map +1 -1
  319. package/dist/types/utils/formatters/formatter.d.ts +2 -1
  320. package/dist/types/utils/formatters/formatter.d.ts.map +1 -1
  321. package/dist/types/utils/formatters/transaction.d.ts +15 -4
  322. package/dist/types/utils/formatters/transaction.d.ts.map +1 -1
  323. package/dist/types/utils/formatters/transactionReceipt.d.ts +4 -4
  324. package/dist/types/utils/formatters/transactionReceipt.d.ts.map +1 -1
  325. package/dist/types/utils/formatters/transactionRequest.d.ts +5 -5
  326. package/dist/types/utils/formatters/transactionRequest.d.ts.map +1 -1
  327. package/dist/types/utils/hash/hashFunction.d.ts +1 -1
  328. package/dist/types/utils/hash/hashFunction.d.ts.map +1 -1
  329. package/dist/types/utils/promise/withCache.d.ts +3 -3
  330. package/dist/types/utils/promise/withCache.d.ts.map +1 -1
  331. package/dist/types/utils/signature/hexToSignature.d.ts +13 -0
  332. package/dist/types/utils/signature/hexToSignature.d.ts.map +1 -0
  333. package/dist/types/utils/signature/signatureToHex.d.ts +17 -0
  334. package/dist/types/utils/signature/signatureToHex.d.ts.map +1 -0
  335. package/dist/types/utils/transaction/prepareRequest.d.ts +6 -11
  336. package/dist/types/utils/transaction/prepareRequest.d.ts.map +1 -1
  337. package/dist/types/utils/unit/parseUnits.d.ts.map +1 -1
  338. package/package.json +9 -2
  339. package/src/accounts/index.ts +7 -1
  340. package/src/accounts/utils/privateKeyToAddress.ts +20 -0
  341. package/src/accounts/utils/signMessage.ts +1 -1
  342. package/src/accounts/utils/signTransaction.ts +2 -2
  343. package/src/accounts/utils/signTypedData.ts +1 -1
  344. package/src/actions/ens/getEnsAddress.ts +24 -15
  345. package/src/actions/index.ts +6 -2
  346. package/src/actions/public/createContractEventFilter.ts +30 -7
  347. package/src/actions/public/createEventFilter.ts +78 -24
  348. package/src/actions/public/estimateContractGas.ts +1 -1
  349. package/src/actions/public/estimateGas.ts +11 -2
  350. package/src/actions/public/getBlock.ts +18 -8
  351. package/src/actions/public/getBlockNumber.ts +5 -3
  352. package/src/actions/public/getFilterChanges.ts +46 -10
  353. package/src/actions/public/getFilterLogs.ts +26 -10
  354. package/src/actions/public/getLogs.ts +73 -18
  355. package/src/actions/public/getTransaction.ts +15 -8
  356. package/src/actions/public/simulateContract.ts +2 -2
  357. package/src/actions/public/watchBlockNumber.ts +1 -1
  358. package/src/actions/public/watchBlocks.ts +37 -18
  359. package/src/actions/public/watchContractEvent.ts +208 -90
  360. package/src/actions/public/watchEvent.ts +262 -104
  361. package/src/actions/wallet/deployContract.ts +1 -1
  362. package/src/actions/wallet/sendTransaction.ts +9 -6
  363. package/src/actions/wallet/writeContract.ts +11 -7
  364. package/src/chains/{formatters/celo.ts → celo/formatters.ts} +29 -48
  365. package/src/chains/{serializers/celo.ts → celo/serializers.ts} +5 -5
  366. package/src/chains/celo/types.ts +111 -0
  367. package/src/chains/index.ts +22 -7
  368. package/src/chains/optimism/fees.ts +5 -0
  369. package/src/chains/optimism/formatters.ts +74 -0
  370. package/src/chains/optimism/types.ts +102 -0
  371. package/src/chains/utils.ts +41 -0
  372. package/src/clients/createClient.ts +9 -0
  373. package/src/clients/createPublicClient.ts +7 -1
  374. package/src/clients/createTestClient.ts +7 -1
  375. package/src/clients/createWalletClient.ts +7 -1
  376. package/src/clients/decorators/public.ts +117 -28
  377. package/src/constants/abis.ts +11 -1
  378. package/src/constants/number.ts +98 -0
  379. package/src/contract.ts +6 -2
  380. package/src/errors/abi.ts +5 -1
  381. package/src/errors/contract.ts +52 -31
  382. package/src/errors/node.ts +2 -1
  383. package/src/errors/version.ts +1 -1
  384. package/src/index.ts +133 -11
  385. package/src/public.ts +6 -2
  386. package/src/types/block.ts +25 -10
  387. package/src/types/chain.ts +91 -14
  388. package/src/types/contract.ts +7 -3
  389. package/src/types/filter.ts +32 -26
  390. package/src/types/log.ts +13 -8
  391. package/src/types/misc.ts +3 -0
  392. package/src/types/rpc.ts +16 -6
  393. package/src/types/transaction.ts +22 -11
  394. package/src/types/utils.ts +11 -0
  395. package/src/utils/abi/encodeAbiParameters.ts +14 -17
  396. package/src/utils/abi/encodePacked.ts +1 -0
  397. package/src/utils/chain.ts +21 -10
  398. package/src/utils/formatters/block.ts +34 -5
  399. package/src/utils/formatters/extract.ts +2 -2
  400. package/src/utils/formatters/formatter.ts +3 -2
  401. package/src/utils/formatters/transaction.ts +28 -3
  402. package/src/utils/formatters/transactionReceipt.ts +9 -3
  403. package/src/utils/formatters/transactionRequest.ts +9 -3
  404. package/src/utils/hash/hashFunction.ts +3 -2
  405. package/src/utils/promise/withCache.ts +5 -5
  406. package/src/utils/signature/hexToSignature.ts +20 -0
  407. package/src/utils/signature/signatureToHex.ts +26 -0
  408. package/src/utils/transaction/prepareRequest.ts +55 -30
  409. package/src/utils/unit/parseUnits.ts +2 -1
  410. package/dist/cjs/accounts/utils/signatureToHex.js.map +0 -1
  411. package/dist/cjs/chains/formatters/celo.js.map +0 -1
  412. package/dist/cjs/chains/formatters/optimism.js.map +0 -1
  413. package/dist/cjs/chains/serializers/celo.js.map +0 -1
  414. package/dist/cjs/types/formatter.js.map +0 -1
  415. package/dist/cjs/types/serializer.js.map +0 -1
  416. package/dist/esm/accounts/utils/signatureToHex.js +0 -7
  417. package/dist/esm/accounts/utils/signatureToHex.js.map +0 -1
  418. package/dist/esm/chains/formatters/celo.js.map +0 -1
  419. package/dist/esm/chains/formatters/optimism.js.map +0 -1
  420. package/dist/esm/chains/serializers/celo.js.map +0 -1
  421. package/dist/esm/types/formatter.js +0 -2
  422. package/dist/esm/types/formatter.js.map +0 -1
  423. package/dist/esm/types/serializer.js +0 -2
  424. package/dist/esm/types/serializer.js.map +0 -1
  425. package/dist/types/accounts/utils/signatureToHex.d.ts +0 -3
  426. package/dist/types/accounts/utils/signatureToHex.d.ts.map +0 -1
  427. package/dist/types/chains/formatters/celo.d.ts.map +0 -1
  428. package/dist/types/chains/formatters/optimism.d.ts.map +0 -1
  429. package/dist/types/chains/serializers/celo.d.ts.map +0 -1
  430. package/dist/types/types/formatter.d.ts +0 -14
  431. package/dist/types/types/formatter.d.ts.map +0 -1
  432. package/dist/types/types/serializer.d.ts +0 -7
  433. package/dist/types/types/serializer.d.ts.map +0 -1
  434. package/src/accounts/utils/signatureToHex.ts +0 -12
  435. package/src/chains/formatters/optimism.ts +0 -91
  436. package/src/types/formatter.ts +0 -33
  437. package/src/types/serializer.ts +0 -19
  438. /package/dist/cjs/{accounts/utils → utils/signature}/signatureToHex.js +0 -0
@@ -4,9 +4,9 @@ import { InvalidAddressError } from '../../errors/address.js'
4
4
  import { BaseError } from '../../errors/base.js'
5
5
  import { InvalidChainIdError } from '../../errors/chain.js'
6
6
  import { FeeCapTooHighError, TipAboveFeeCapError } from '../../errors/node.js'
7
+ import type { ChainSerializers } from '../../types/chain.js'
7
8
  import type { FeeValuesEIP1559 } from '../../types/fee.js'
8
9
  import type { Signature } from '../../types/misc.js'
9
- import type { Serializers } from '../../types/serializer.js'
10
10
  import type {
11
11
  AccessList,
12
12
  TransactionSerializable,
@@ -24,7 +24,7 @@ import {
24
24
  } from '../../utils/transaction/serializeTransaction.js'
25
25
 
26
26
  export const serializeTransactionCelo: SerializeTransactionFn<
27
- TransactionSerializableCelo
27
+ CeloTransactionSerializable
28
28
  > = (tx, signature) => {
29
29
  // Handle CIP-42 transactions
30
30
  if (isCIP42(tx))
@@ -39,7 +39,7 @@ export const serializeTransactionCelo: SerializeTransactionFn<
39
39
 
40
40
  export const serializersCelo = {
41
41
  transaction: serializeTransactionCelo,
42
- } as const satisfies Serializers
42
+ } as const satisfies ChainSerializers
43
43
 
44
44
  //////////////////////////////////////////////////////////////////////////////
45
45
  // Types
@@ -58,7 +58,7 @@ export type TransactionSerializableCIP42<
58
58
  type?: 'cip42'
59
59
  }
60
60
 
61
- export type TransactionSerializableCelo =
61
+ export type CeloTransactionSerializable =
62
62
  | TransactionSerializableCIP42
63
63
  | TransactionSerializable
64
64
 
@@ -123,7 +123,7 @@ function serializeTransactionCIP42(
123
123
  // Utilities
124
124
 
125
125
  // process as CIP42 if any of these fields are present. realistically gatewayfee is not used but is part of spec
126
- function isCIP42(transaction: TransactionSerializableCelo) {
126
+ function isCIP42(transaction: CeloTransactionSerializable) {
127
127
  if (
128
128
  'maxFeePerGas' in transaction &&
129
129
  'maxPriorityFeePerGas' in transaction &&
@@ -0,0 +1,111 @@
1
+ import type { Address } from 'abitype'
2
+
3
+ import type { Block, BlockTag } from '../../types/block.js'
4
+ import type { Hex } from '../../types/misc.js'
5
+ import type {
6
+ RpcBlock,
7
+ RpcTransaction,
8
+ RpcTransactionReceipt,
9
+ RpcTransactionRequest,
10
+ } from '../../types/rpc.js'
11
+ import type {
12
+ Transaction,
13
+ TransactionReceipt,
14
+ TransactionRequest,
15
+ } from '../../types/transaction.js'
16
+ import type { NeverBy } from '../../types/utils.js'
17
+ import type { OptimismRpcTransaction } from '../optimism/types.js'
18
+
19
+ type CeloBlockExclude =
20
+ | 'difficulty'
21
+ | 'gasLimit'
22
+ | 'mixHash'
23
+ | 'nonce'
24
+ | 'uncles'
25
+
26
+ export type CeloBlockOverrides = {
27
+ randomness: {
28
+ committed: Hex
29
+ revealed: Hex
30
+ }
31
+ }
32
+ export type CeloBlock<
33
+ TIncludeTransactions extends boolean = boolean,
34
+ TBlockTag extends BlockTag = BlockTag,
35
+ > = NeverBy<
36
+ Block<
37
+ bigint,
38
+ TIncludeTransactions,
39
+ TBlockTag,
40
+ CeloTransaction<TBlockTag extends 'pending' ? true : false>
41
+ >,
42
+ CeloBlockExclude
43
+ > &
44
+ CeloBlockOverrides
45
+
46
+ export type CeloRpcBlockOverrides = {
47
+ randomness: {
48
+ committed: Hex
49
+ revealed: Hex
50
+ }
51
+ }
52
+ export type CeloRpcBlock<
53
+ TBlockTag extends BlockTag = BlockTag,
54
+ TIncludeTransactions extends boolean = boolean,
55
+ > = NeverBy<
56
+ RpcBlock<
57
+ TBlockTag,
58
+ TIncludeTransactions,
59
+ OptimismRpcTransaction<TBlockTag extends 'pending' ? true : false>
60
+ >,
61
+ CeloBlockExclude
62
+ > &
63
+ CeloRpcBlockOverrides
64
+
65
+ export type CeloRpcTransactionOverrides = {
66
+ feeCurrency: Address | null
67
+ gatewayFee: Hex | null
68
+ gatewayFeeRecipient: Address | null
69
+ }
70
+ export type CeloRpcTransaction<TPending extends boolean = boolean> =
71
+ RpcTransaction<TPending> & CeloRpcTransactionOverrides
72
+
73
+ export type CeloRpcTransactionReceiptOverrides = {
74
+ feeCurrency: Address | null
75
+ gatewayFee: Hex | null
76
+ gatewayFeeRecipient: Address | null
77
+ }
78
+ export type CeloRpcTransactionReceipt = RpcTransactionReceipt &
79
+ CeloRpcTransactionReceiptOverrides
80
+
81
+ export type CeloRpcTransactionRequestOverrides = {
82
+ feeCurrency?: Address
83
+ gatewayFee?: Hex
84
+ gatewayFeeRecipient?: Address
85
+ }
86
+ export type CeloRpcTransactionRequest = RpcTransactionRequest &
87
+ CeloRpcTransactionRequestOverrides
88
+
89
+ export type CeloTransactionOverrides = {
90
+ feeCurrency: Address | null
91
+ gatewayFee: bigint | null
92
+ gatewayFeeRecipient: Address | null
93
+ }
94
+ export type CeloTransaction<TPending extends boolean = boolean> =
95
+ Transaction<TPending> & CeloTransactionOverrides
96
+
97
+ export type CeloTransactionReceiptOverrides = {
98
+ feeCurrency: Address | null
99
+ gatewayFee: bigint | null
100
+ gatewayFeeRecipient: Address | null
101
+ }
102
+ export type CeloTransactionReceipt = TransactionReceipt &
103
+ CeloTransactionReceiptOverrides
104
+
105
+ export type CeloTransactionRequestOverrides = {
106
+ feeCurrency?: Address
107
+ gatewayFee?: bigint
108
+ gatewayFeeRecipient?: Address
109
+ }
110
+ export type CeloTransactionRequest = TransactionRequest &
111
+ CeloTransactionRequestOverrides
@@ -1,9 +1,10 @@
1
1
  import * as chains from '@wagmi/chains'
2
2
 
3
3
  import { defineChain } from '../utils/chain.js'
4
- import { formattersCelo } from './formatters/celo.js'
5
- import { formattersOptimism } from './formatters/optimism.js'
6
- import { serializersCelo } from './serializers/celo.js'
4
+ import { formattersCelo } from './celo/formatters.js'
5
+ import { serializersCelo } from './celo/serializers.js'
6
+ import { feesOptimism } from './optimism/fees.js'
7
+ import { formattersOptimism } from './optimism/formatters.js'
7
8
 
8
9
  export const arbitrum = /*#__PURE__*/ defineChain(chains.arbitrum)
9
10
  export const arbitrumGoerli = /*#__PURE__*/ defineChain(chains.arbitrumGoerli)
@@ -11,8 +12,14 @@ export const aurora = /*#__PURE__*/ defineChain(chains.aurora)
11
12
  export const auroraTestnet = /*#__PURE__*/ defineChain(chains.auroraTestnet)
12
13
  export const avalanche = /*#__PURE__*/ defineChain(chains.avalanche)
13
14
  export const avalancheFuji = /*#__PURE__*/ defineChain(chains.avalancheFuji)
14
- export const base = /*#__PURE__*/ defineChain(chains.base)
15
- export const baseGoerli = /*#__PURE__*/ defineChain(chains.baseGoerli)
15
+ export const base = /*#__PURE__*/ defineChain(chains.base, {
16
+ fees: feesOptimism,
17
+ formatters: formattersOptimism,
18
+ })
19
+ export const baseGoerli = /*#__PURE__*/ defineChain(chains.baseGoerli, {
20
+ fees: feesOptimism,
21
+ formatters: formattersOptimism,
22
+ })
16
23
  export const boba = /*#__PURE__*/ defineChain(chains.boba)
17
24
  export const bronos = /*#__PURE__*/ defineChain(chains.bronos)
18
25
  export const bronosTestnet = /*#__PURE__*/ defineChain(chains.bronosTestnet)
@@ -72,9 +79,11 @@ export const moonriver = /*#__PURE__*/ defineChain(chains.moonriver)
72
79
  export const nexi = /*#__PURE__*/ defineChain(chains.nexi)
73
80
  export const okc = /*#__PURE__*/ defineChain(chains.okc)
74
81
  export const optimism = /*#__PURE__*/ defineChain(chains.optimism, {
82
+ fees: feesOptimism,
75
83
  formatters: formattersOptimism,
76
84
  })
77
85
  export const optimismGoerli = /*#__PURE__*/ defineChain(chains.optimismGoerli, {
86
+ fees: feesOptimism,
78
87
  formatters: formattersOptimism,
79
88
  })
80
89
  export const polygon = /*#__PURE__*/ defineChain(chains.polygon)
@@ -136,7 +145,13 @@ export const xdcTestnet = /*#__PURE__*/ defineChain(chains.xdcTestnet)
136
145
  export const zhejiang = /*#__PURE__*/ defineChain(chains.zhejiang)
137
146
  export const zkSync = /*#__PURE__*/ defineChain(chains.zkSync)
138
147
  export const zkSyncTestnet = /*#__PURE__*/ defineChain(chains.zkSyncTestnet)
139
- export const zora = /*#__PURE__*/ defineChain(chains.zora)
140
- export const zoraTestnet = /*#__PURE__*/ defineChain(chains.zoraTestnet)
148
+ export const zora = /*#__PURE__*/ defineChain(chains.zora, {
149
+ fees: feesOptimism,
150
+ formatters: formattersOptimism,
151
+ })
152
+ export const zoraTestnet = /*#__PURE__*/ defineChain(chains.zoraTestnet, {
153
+ fees: feesOptimism,
154
+ formatters: formattersOptimism,
155
+ })
141
156
 
142
157
  export type { Chain } from '../types/chain.js'
@@ -0,0 +1,5 @@
1
+ import type { ChainFees } from '../../types/chain.js'
2
+
3
+ export const feesOptimism = {
4
+ defaultPriorityFee: 1_000_000n, // 0.001 gwei
5
+ } as const satisfies ChainFees
@@ -0,0 +1,74 @@
1
+ import { type ChainFormatters } from '../../types/chain.js'
2
+ import type { Hash } from '../../types/misc.js'
3
+ import { type RpcTransaction } from '../../types/rpc.js'
4
+ import { hexToBigInt } from '../../utils/encoding/fromHex.js'
5
+ import { defineBlock } from '../../utils/formatters/block.js'
6
+ import {
7
+ defineTransaction,
8
+ formatTransaction,
9
+ } from '../../utils/formatters/transaction.js'
10
+ import { defineTransactionReceipt } from '../../utils/formatters/transactionReceipt.js'
11
+ import type {
12
+ OptimismBlockOverrides,
13
+ OptimismRpcBlockOverrides,
14
+ OptimismRpcTransaction,
15
+ OptimismRpcTransactionReceiptOverrides,
16
+ OptimismTransaction,
17
+ OptimismTransactionReceiptOverrides,
18
+ } from './types.js'
19
+
20
+ export const formattersOptimism = {
21
+ block: /*#__PURE__*/ defineBlock({
22
+ format(
23
+ args: OptimismRpcBlockOverrides & {
24
+ transactions: Hash[] | OptimismRpcTransaction[]
25
+ },
26
+ ): OptimismBlockOverrides & {
27
+ transactions: Hash[] | OptimismTransaction[]
28
+ } {
29
+ const transactions = args.transactions?.map((transaction) => {
30
+ if (typeof transaction === 'string') return transaction
31
+ const formatted = formatTransaction(
32
+ transaction as RpcTransaction,
33
+ ) as OptimismTransaction
34
+ if (formatted.typeHex === '0x7e') {
35
+ formatted.isSystemTx = transaction.isSystemTx
36
+ formatted.mint = transaction.mint
37
+ ? hexToBigInt(transaction.mint)
38
+ : undefined
39
+ formatted.sourceHash = transaction.sourceHash
40
+ formatted.type = 'deposit'
41
+ }
42
+ return formatted
43
+ }) as Hash[] | OptimismTransaction[]
44
+ return {
45
+ transactions,
46
+ stateRoot: args.stateRoot,
47
+ }
48
+ },
49
+ }),
50
+ transaction: /*#__PURE__*/ defineTransaction({
51
+ format(args: OptimismRpcTransaction): OptimismTransaction {
52
+ const transaction = {} as OptimismTransaction
53
+ if (args.type === '0x7e') {
54
+ transaction.isSystemTx = args.isSystemTx
55
+ transaction.mint = args.mint ? hexToBigInt(args.mint) : undefined
56
+ transaction.sourceHash = args.sourceHash
57
+ transaction.type = 'deposit'
58
+ }
59
+ return transaction
60
+ },
61
+ }),
62
+ transactionReceipt: /*#__PURE__*/ defineTransactionReceipt({
63
+ format(
64
+ args: OptimismRpcTransactionReceiptOverrides,
65
+ ): OptimismTransactionReceiptOverrides {
66
+ return {
67
+ l1GasPrice: args.l1GasPrice ? hexToBigInt(args.l1GasPrice) : null,
68
+ l1GasUsed: args.l1GasUsed ? hexToBigInt(args.l1GasUsed) : null,
69
+ l1Fee: args.l1Fee ? hexToBigInt(args.l1Fee) : null,
70
+ l1FeeScalar: args.l1FeeScalar ? Number(args.l1FeeScalar) : null,
71
+ }
72
+ },
73
+ }),
74
+ } as const satisfies ChainFormatters
@@ -0,0 +1,102 @@
1
+ import type { Block, BlockTag } from '../../types/block.js'
2
+ import type { FeeValuesEIP1559 } from '../../types/fee.js'
3
+ import type { Hash, Hex } from '../../types/misc.js'
4
+ import type {
5
+ Index,
6
+ Quantity,
7
+ RpcBlock,
8
+ RpcTransaction as RpcTransaction_,
9
+ RpcTransactionReceipt,
10
+ } from '../../types/rpc.js'
11
+ import type {
12
+ Transaction as Transaction_,
13
+ TransactionBase,
14
+ TransactionReceipt,
15
+ } from '../../types/transaction.js'
16
+
17
+ export type OptimismBlockOverrides = {
18
+ stateRoot: Hash
19
+ }
20
+ export type OptimismBlock<
21
+ TIncludeTransactions extends boolean = boolean,
22
+ TBlockTag extends BlockTag = BlockTag,
23
+ > = Block<
24
+ bigint,
25
+ TIncludeTransactions,
26
+ TBlockTag,
27
+ OptimismTransaction<TBlockTag extends 'pending' ? true : false>
28
+ > &
29
+ OptimismBlockOverrides
30
+
31
+ export type OptimismRpcBlockOverrides = {
32
+ stateRoot: Hash
33
+ }
34
+ export type OptimismRpcBlock<
35
+ TBlockTag extends BlockTag = BlockTag,
36
+ TIncludeTransactions extends boolean = boolean,
37
+ > = RpcBlock<
38
+ TBlockTag,
39
+ TIncludeTransactions,
40
+ OptimismRpcTransaction<TBlockTag extends 'pending' ? true : false>
41
+ > &
42
+ OptimismRpcBlockOverrides
43
+
44
+ type RpcTransaction<TPending extends boolean = boolean> =
45
+ RpcTransaction_<TPending> & {
46
+ isSystemTx?: undefined
47
+ mint?: undefined
48
+ sourceHash?: undefined
49
+ }
50
+
51
+ export type OptimismRpcDepositTransaction<TPending extends boolean = boolean> =
52
+ Omit<TransactionBase<Quantity, Index, TPending>, 'typeHex'> &
53
+ FeeValuesEIP1559<Quantity> & {
54
+ isSystemTx?: boolean
55
+ mint?: Hex
56
+ sourceHash: Hex
57
+ type: '0x7e'
58
+ }
59
+ export type OptimismRpcTransaction<TPending extends boolean = boolean> =
60
+ | RpcTransaction<TPending>
61
+ | OptimismRpcDepositTransaction<TPending>
62
+
63
+ export type OptimismRpcTransactionReceiptOverrides = {
64
+ l1GasPrice: Hex | null
65
+ l1GasUsed: Hex | null
66
+ l1Fee: Hex | null
67
+ l1FeeScalar: `${number}` | null
68
+ }
69
+ export type OptimismRpcTransactionReceipt = RpcTransactionReceipt &
70
+ OptimismRpcTransactionReceiptOverrides
71
+
72
+ type Transaction<TPending extends boolean = boolean> = Transaction_<
73
+ bigint,
74
+ number,
75
+ TPending
76
+ > & {
77
+ isSystemTx?: undefined
78
+ mint?: undefined
79
+ sourceHash?: undefined
80
+ }
81
+
82
+ export type OptimismDepositTransaction<TPending extends boolean = boolean> =
83
+ TransactionBase<bigint, number, TPending> &
84
+ FeeValuesEIP1559 & {
85
+ isSystemTx?: boolean
86
+ mint?: bigint
87
+ sourceHash: Hex
88
+ type: 'deposit'
89
+ }
90
+
91
+ export type OptimismTransaction<TPending extends boolean = boolean> =
92
+ | Transaction<TPending>
93
+ | OptimismDepositTransaction<TPending>
94
+
95
+ export type OptimismTransactionReceiptOverrides = {
96
+ l1GasPrice: bigint | null
97
+ l1GasUsed: bigint | null
98
+ l1Fee: bigint | null
99
+ l1FeeScalar: number | null
100
+ }
101
+ export type OptimismTransactionReceipt = TransactionReceipt &
102
+ OptimismTransactionReceiptOverrides
@@ -0,0 +1,41 @@
1
+ export { formattersCelo } from './celo/formatters.js'
2
+ export {
3
+ type CeloTransactionSerializable,
4
+ type TransactionSerializableCIP42,
5
+ serializeTransactionCelo,
6
+ serializersCelo,
7
+ } from './celo/serializers.js'
8
+ export type {
9
+ CeloBlock,
10
+ CeloBlockOverrides,
11
+ CeloRpcBlock,
12
+ CeloRpcBlockOverrides,
13
+ CeloRpcTransaction,
14
+ CeloRpcTransactionOverrides,
15
+ CeloRpcTransactionReceipt,
16
+ CeloRpcTransactionReceiptOverrides,
17
+ CeloRpcTransactionRequest,
18
+ CeloRpcTransactionRequestOverrides,
19
+ CeloTransaction,
20
+ CeloTransactionOverrides,
21
+ CeloTransactionReceipt,
22
+ CeloTransactionReceiptOverrides,
23
+ CeloTransactionRequest,
24
+ CeloTransactionRequestOverrides,
25
+ } from './celo/types.js'
26
+
27
+ export { formattersOptimism } from './optimism/formatters.js'
28
+ export type {
29
+ OptimismBlock,
30
+ OptimismBlockOverrides,
31
+ OptimismDepositTransaction,
32
+ OptimismRpcBlock,
33
+ OptimismRpcBlockOverrides,
34
+ OptimismRpcDepositTransaction,
35
+ OptimismRpcTransaction,
36
+ OptimismRpcTransactionReceipt,
37
+ OptimismRpcTransactionReceiptOverrides,
38
+ OptimismTransaction,
39
+ OptimismTransactionReceipt,
40
+ OptimismTransactionReceiptOverrides,
41
+ } from './optimism/types.js'
@@ -29,6 +29,11 @@ export type ClientConfig<
29
29
  multicall?: boolean | Prettify<MulticallBatchOptions> | undefined
30
30
  }
31
31
  | undefined
32
+ /**
33
+ * Time (in ms) that cached data will remain in memory.
34
+ * @default 4_000
35
+ */
36
+ cacheTime?: number | undefined
32
37
  /** Chain for the client. */
33
38
  chain?: Chain | undefined | chain
34
39
  /** A key for the client. */
@@ -79,6 +84,8 @@ type Client_Base<
79
84
  account: account
80
85
  /** Flags for batch settings. */
81
86
  batch?: ClientConfig['batch']
87
+ /** Time (in ms) that cached data will remain in memory. */
88
+ cacheTime: number
82
89
  /** Chain for the client. */
83
90
  chain: chain
84
91
  /** A key for the client. */
@@ -135,6 +142,7 @@ export function createClient<
135
142
  export function createClient(parameters: ClientConfig): Client {
136
143
  const {
137
144
  batch,
145
+ cacheTime = parameters.pollingInterval ?? 4_000,
138
146
  key = 'base',
139
147
  name = 'Base Client',
140
148
  pollingInterval = 4_000,
@@ -154,6 +162,7 @@ export function createClient(parameters: ClientConfig): Client {
154
162
  const client = {
155
163
  account,
156
164
  batch,
165
+ cacheTime,
157
166
  chain,
158
167
  key,
159
168
  name,
@@ -11,7 +11,13 @@ export type PublicClientConfig<
11
11
  > = Prettify<
12
12
  Pick<
13
13
  ClientConfig<transport, chain>,
14
- 'batch' | 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'
14
+ | 'batch'
15
+ | 'cacheTime'
16
+ | 'chain'
17
+ | 'key'
18
+ | 'name'
19
+ | 'pollingInterval'
20
+ | 'transport'
15
21
  >
16
22
  >
17
23
 
@@ -21,7 +21,13 @@ export type TestClientConfig<
21
21
  > = Prettify<
22
22
  Pick<
23
23
  ClientConfig<transport, chain, accountOrAddress>,
24
- 'account' | 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'
24
+ | 'account'
25
+ | 'cacheTime'
26
+ | 'chain'
27
+ | 'key'
28
+ | 'name'
29
+ | 'pollingInterval'
30
+ | 'transport'
25
31
  > & {
26
32
  /** Mode of the test client. */
27
33
  mode: mode | ('anvil' | 'hardhat' | 'ganache') // TODO: Type utility that expands `TestClientMode`
@@ -19,7 +19,13 @@ export type WalletClientConfig<
19
19
  > = Prettify<
20
20
  Pick<
21
21
  ClientConfig<transport, chain, accountOrAddress>,
22
- 'account' | 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'
22
+ | 'account'
23
+ | 'cacheTime'
24
+ | 'chain'
25
+ | 'key'
26
+ | 'name'
27
+ | 'pollingInterval'
28
+ | 'transport'
23
29
  >
24
30
  >
25
31