@wagmi/core 1.4.1 → 2.0.0

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 (523) hide show
  1. package/dist/esm/actions/connect.js +53 -0
  2. package/dist/esm/actions/connect.js.map +1 -0
  3. package/dist/esm/actions/disconnect.js +49 -0
  4. package/dist/esm/actions/disconnect.js.map +1 -0
  5. package/dist/esm/actions/estimateFeesPerGas.js +24 -0
  6. package/dist/esm/actions/estimateFeesPerGas.js.map +1 -0
  7. package/dist/esm/actions/estimateGas.js +25 -0
  8. package/dist/esm/actions/estimateGas.js.map +1 -0
  9. package/dist/esm/actions/getAccount.js +61 -0
  10. package/dist/esm/actions/getAccount.js.map +1 -0
  11. package/dist/esm/actions/getBalance.js +83 -0
  12. package/dist/esm/actions/getBalance.js.map +1 -0
  13. package/dist/esm/actions/getBlockNumber.js +9 -0
  14. package/dist/esm/actions/getBlockNumber.js.map +1 -0
  15. package/dist/esm/actions/getChainId.js +5 -0
  16. package/dist/esm/actions/getChainId.js.map +1 -0
  17. package/dist/esm/actions/getClient.js +5 -0
  18. package/dist/esm/actions/getClient.js.map +1 -0
  19. package/dist/esm/actions/getConnections.js +13 -0
  20. package/dist/esm/actions/getConnections.js.map +1 -0
  21. package/dist/esm/actions/getConnectorClient.js +42 -0
  22. package/dist/esm/actions/getConnectorClient.js.map +1 -0
  23. package/dist/esm/actions/getEnsAddress.js +9 -0
  24. package/dist/esm/actions/getEnsAddress.js.map +1 -0
  25. package/dist/esm/actions/getEnsAvatar.js +9 -0
  26. package/dist/esm/actions/getEnsAvatar.js.map +1 -0
  27. package/dist/esm/actions/getEnsName.js +9 -0
  28. package/dist/esm/actions/getEnsName.js.map +1 -0
  29. package/dist/esm/actions/getEnsResolver.js +9 -0
  30. package/dist/esm/actions/getEnsResolver.js.map +1 -0
  31. package/dist/esm/actions/getPublicClient.js +6 -0
  32. package/dist/esm/actions/getPublicClient.js.map +1 -0
  33. package/dist/esm/actions/getToken.js +101 -0
  34. package/dist/esm/actions/getToken.js.map +1 -0
  35. package/dist/esm/actions/getTransaction.js +10 -0
  36. package/dist/esm/actions/getTransaction.js.map +1 -0
  37. package/dist/esm/actions/getWalletClient.js +7 -0
  38. package/dist/esm/actions/getWalletClient.js.map +1 -0
  39. package/dist/esm/actions/multicall.js +11 -0
  40. package/dist/esm/actions/multicall.js.map +1 -0
  41. package/dist/esm/actions/readContract.js +10 -0
  42. package/dist/esm/actions/readContract.js.map +1 -0
  43. package/dist/esm/actions/readContracts.js +46 -0
  44. package/dist/esm/actions/readContracts.js.map +1 -0
  45. package/dist/esm/actions/reconnect.js +78 -0
  46. package/dist/esm/actions/reconnect.js.map +1 -0
  47. package/dist/esm/actions/sendTransaction.js +22 -0
  48. package/dist/esm/actions/sendTransaction.js.map +1 -0
  49. package/dist/esm/actions/signMessage.js +10 -0
  50. package/dist/esm/actions/signMessage.js.map +1 -0
  51. package/dist/esm/actions/signTypedData.js +10 -0
  52. package/dist/esm/actions/signTypedData.js.map +1 -0
  53. package/dist/esm/actions/simulateContract.js +33 -0
  54. package/dist/esm/actions/simulateContract.js.map +1 -0
  55. package/dist/esm/actions/switchAccount.js +19 -0
  56. package/dist/esm/actions/switchAccount.js.map +1 -0
  57. package/dist/esm/actions/switchChain.js +23 -0
  58. package/dist/esm/actions/switchChain.js.map +1 -0
  59. package/dist/esm/actions/waitForTransactionReceipt.js +23 -0
  60. package/dist/esm/actions/waitForTransactionReceipt.js.map +1 -0
  61. package/dist/esm/actions/watchAccount.js +18 -0
  62. package/dist/esm/actions/watchAccount.js.map +1 -0
  63. package/dist/esm/actions/watchBlockNumber.js +28 -0
  64. package/dist/esm/actions/watchBlockNumber.js.map +1 -0
  65. package/dist/esm/actions/watchChainId.js +6 -0
  66. package/dist/esm/actions/watchChainId.js.map +1 -0
  67. package/dist/esm/actions/watchClient.js +11 -0
  68. package/dist/esm/actions/watchClient.js.map +1 -0
  69. package/dist/esm/actions/watchConnections.js +10 -0
  70. package/dist/esm/actions/watchConnections.js.map +1 -0
  71. package/dist/esm/actions/watchContractEvent.js +27 -0
  72. package/dist/esm/actions/watchContractEvent.js.map +1 -0
  73. package/dist/esm/actions/watchPendingTransactions.js +27 -0
  74. package/dist/esm/actions/watchPendingTransactions.js.map +1 -0
  75. package/dist/esm/actions/watchPublicClient.js +11 -0
  76. package/dist/esm/actions/watchPublicClient.js.map +1 -0
  77. package/dist/esm/actions/writeContract.js +31 -0
  78. package/dist/esm/actions/writeContract.js.map +1 -0
  79. package/dist/esm/createConfig.js +218 -0
  80. package/dist/esm/createConfig.js.map +1 -0
  81. package/dist/esm/createConnector.js +8 -0
  82. package/dist/esm/createConnector.js.map +1 -0
  83. package/dist/esm/createEmitter.js +39 -0
  84. package/dist/esm/createEmitter.js.map +1 -0
  85. package/dist/esm/createStorage.js +37 -0
  86. package/dist/esm/createStorage.js.map +1 -0
  87. package/dist/esm/errors/base.js +86 -0
  88. package/dist/esm/errors/base.js.map +1 -0
  89. package/dist/esm/errors/config.js +70 -0
  90. package/dist/esm/errors/config.js.map +1 -0
  91. package/dist/esm/errors/connector.js +24 -0
  92. package/dist/esm/errors/connector.js.map +1 -0
  93. package/dist/esm/exports/actions.js +42 -0
  94. package/dist/esm/exports/actions.js.map +1 -0
  95. package/dist/esm/exports/chains.js +4 -0
  96. package/dist/esm/exports/chains.js.map +1 -0
  97. package/dist/esm/exports/index.js +71 -0
  98. package/dist/esm/exports/index.js.map +1 -0
  99. package/dist/esm/exports/internal.js +11 -0
  100. package/dist/esm/exports/internal.js.map +1 -0
  101. package/dist/esm/exports/query.js +29 -0
  102. package/dist/esm/exports/query.js.map +1 -0
  103. package/dist/esm/query/connect.js +11 -0
  104. package/dist/esm/query/connect.js.map +1 -0
  105. package/dist/esm/query/disconnect.js +10 -0
  106. package/dist/esm/query/disconnect.js.map +1 -0
  107. package/dist/esm/query/estimateFeesPerGas.js +16 -0
  108. package/dist/esm/query/estimateFeesPerGas.js.map +1 -0
  109. package/dist/esm/query/estimateGas.js +20 -0
  110. package/dist/esm/query/estimateGas.js.map +1 -0
  111. package/dist/esm/query/getBalance.js +21 -0
  112. package/dist/esm/query/getBalance.js.map +1 -0
  113. package/dist/esm/query/getBlockNumber.js +18 -0
  114. package/dist/esm/query/getBlockNumber.js.map +1 -0
  115. package/dist/esm/query/getConnectorClient.js +24 -0
  116. package/dist/esm/query/getConnectorClient.js.map +1 -0
  117. package/dist/esm/query/getEnsAddress.js +18 -0
  118. package/dist/esm/query/getEnsAddress.js.map +1 -0
  119. package/dist/esm/query/getEnsAvatar.js +18 -0
  120. package/dist/esm/query/getEnsAvatar.js.map +1 -0
  121. package/dist/esm/query/getEnsName.js +18 -0
  122. package/dist/esm/query/getEnsName.js.map +1 -0
  123. package/dist/esm/query/getEnsResolver.js +18 -0
  124. package/dist/esm/query/getEnsResolver.js.map +1 -0
  125. package/dist/esm/query/getToken.js +18 -0
  126. package/dist/esm/query/getToken.js.map +1 -0
  127. package/dist/esm/query/getTransaction.js +20 -0
  128. package/dist/esm/query/getTransaction.js.map +1 -0
  129. package/dist/esm/query/getWalletClient.js +21 -0
  130. package/dist/esm/query/getWalletClient.js.map +1 -0
  131. package/dist/esm/query/readContract.js +32 -0
  132. package/dist/esm/query/readContract.js.map +1 -0
  133. package/dist/esm/query/readContracts.js +36 -0
  134. package/dist/esm/query/readContracts.js.map +1 -0
  135. package/dist/esm/query/reconnect.js +10 -0
  136. package/dist/esm/query/reconnect.js.map +1 -0
  137. package/dist/esm/query/sendTransaction.js +11 -0
  138. package/dist/esm/query/sendTransaction.js.map +1 -0
  139. package/dist/esm/query/signMessage.js +13 -0
  140. package/dist/esm/query/signMessage.js.map +1 -0
  141. package/dist/esm/query/signTypedData.js +11 -0
  142. package/dist/esm/query/signTypedData.js.map +1 -0
  143. package/dist/esm/query/simulateContract.js +25 -0
  144. package/dist/esm/query/simulateContract.js.map +1 -0
  145. package/dist/esm/query/switchAccount.js +11 -0
  146. package/dist/esm/query/switchAccount.js.map +1 -0
  147. package/dist/esm/query/switchChain.js +11 -0
  148. package/dist/esm/query/switchChain.js.map +1 -0
  149. package/dist/esm/query/types.js +2 -0
  150. package/dist/esm/query/types.js.map +1 -0
  151. package/dist/esm/query/utils.js +45 -0
  152. package/dist/esm/query/utils.js.map +1 -0
  153. package/dist/esm/query/waitForTransactionReceipt.js +23 -0
  154. package/dist/esm/query/waitForTransactionReceipt.js.map +1 -0
  155. package/dist/esm/query/writeContract.js +11 -0
  156. package/dist/esm/query/writeContract.js.map +1 -0
  157. package/dist/esm/tsconfig.build.tsbuildinfo +1 -0
  158. package/dist/esm/types/chain.js +2 -0
  159. package/dist/esm/types/chain.js.map +1 -0
  160. package/dist/esm/types/properties.js +2 -0
  161. package/dist/esm/types/properties.js.map +1 -0
  162. package/dist/esm/types/register.js +2 -0
  163. package/dist/esm/types/register.js.map +1 -0
  164. package/dist/esm/types/unit.js +2 -0
  165. package/dist/esm/types/unit.js.map +1 -0
  166. package/dist/esm/types/utils.js +2 -0
  167. package/dist/esm/types/utils.js.map +1 -0
  168. package/dist/esm/utils/assertActiveChain.js +14 -0
  169. package/dist/esm/utils/assertActiveChain.js.map +1 -0
  170. package/dist/esm/utils/deepEqual.js +41 -0
  171. package/dist/esm/utils/deepEqual.js.map +1 -0
  172. package/dist/esm/utils/deserialize.js +11 -0
  173. package/dist/esm/utils/deserialize.js.map +1 -0
  174. package/dist/esm/utils/getUnit.js +10 -0
  175. package/dist/esm/utils/getUnit.js.map +1 -0
  176. package/dist/esm/utils/getVersion.js +3 -0
  177. package/dist/esm/utils/getVersion.js.map +1 -0
  178. package/dist/esm/utils/normalizeChainId.js +10 -0
  179. package/dist/esm/utils/normalizeChainId.js.map +1 -0
  180. package/dist/esm/utils/serialize.js +87 -0
  181. package/dist/esm/utils/serialize.js.map +1 -0
  182. package/dist/esm/utils/uid.js +14 -0
  183. package/dist/esm/utils/uid.js.map +1 -0
  184. package/dist/esm/version.js +2 -0
  185. package/dist/esm/version.js.map +1 -0
  186. package/dist/types/actions/connect.d.ts +19 -0
  187. package/dist/types/actions/connect.d.ts.map +1 -0
  188. package/dist/types/actions/disconnect.d.ts +9 -0
  189. package/dist/types/actions/disconnect.d.ts.map +1 -0
  190. package/dist/types/actions/estimateFeesPerGas.d.ts +16 -0
  191. package/dist/types/actions/estimateFeesPerGas.d.ts.map +1 -0
  192. package/dist/types/actions/estimateGas.d.ts +14 -0
  193. package/dist/types/actions/estimateGas.d.ts.map +1 -0
  194. package/dist/types/actions/getAccount.d.ts +46 -0
  195. package/dist/types/actions/getAccount.d.ts.map +1 -0
  196. package/dist/types/actions/getBalance.d.ts +21 -0
  197. package/dist/types/actions/getBalance.d.ts.map +1 -0
  198. package/dist/types/actions/getBlockNumber.d.ts +10 -0
  199. package/dist/types/actions/getBlockNumber.d.ts.map +1 -0
  200. package/dist/types/actions/getChainId.d.ts +5 -0
  201. package/dist/types/actions/getChainId.d.ts.map +1 -0
  202. package/dist/types/actions/getClient.d.ts +10 -0
  203. package/dist/types/actions/getClient.d.ts.map +1 -0
  204. package/dist/types/actions/getConnections.d.ts +6 -0
  205. package/dist/types/actions/getConnections.d.ts.map +1 -0
  206. package/dist/types/actions/getConnectorClient.d.ts +15 -0
  207. package/dist/types/actions/getConnectorClient.d.ts.map +1 -0
  208. package/dist/types/actions/getEnsAddress.d.ts +10 -0
  209. package/dist/types/actions/getEnsAddress.d.ts.map +1 -0
  210. package/dist/types/actions/getEnsAvatar.d.ts +10 -0
  211. package/dist/types/actions/getEnsAvatar.d.ts.map +1 -0
  212. package/dist/types/actions/getEnsName.d.ts +10 -0
  213. package/dist/types/actions/getEnsName.d.ts.map +1 -0
  214. package/dist/types/actions/getEnsResolver.d.ts +10 -0
  215. package/dist/types/actions/getEnsResolver.d.ts.map +1 -0
  216. package/dist/types/actions/getPublicClient.d.ts +10 -0
  217. package/dist/types/actions/getPublicClient.d.ts.map +1 -0
  218. package/dist/types/actions/getToken.d.ts +22 -0
  219. package/dist/types/actions/getToken.d.ts.map +1 -0
  220. package/dist/types/actions/getTransaction.d.ts +14 -0
  221. package/dist/types/actions/getTransaction.d.ts.map +1 -0
  222. package/dist/types/actions/getWalletClient.d.ts +11 -0
  223. package/dist/types/actions/getWalletClient.d.ts.map +1 -0
  224. package/dist/types/actions/multicall.d.ts +7 -0
  225. package/dist/types/actions/multicall.d.ts.map +1 -0
  226. package/dist/types/actions/readContract.d.ts +11 -0
  227. package/dist/types/actions/readContract.d.ts.map +1 -0
  228. package/dist/types/actions/readContracts.d.ts +10 -0
  229. package/dist/types/actions/readContracts.d.ts.map +1 -0
  230. package/dist/types/actions/reconnect.d.ts +12 -0
  231. package/dist/types/actions/reconnect.d.ts.map +1 -0
  232. package/dist/types/actions/sendTransaction.d.ts +15 -0
  233. package/dist/types/actions/sendTransaction.d.ts.map +1 -0
  234. package/dist/types/actions/signMessage.d.ts +11 -0
  235. package/dist/types/actions/signMessage.d.ts.map +1 -0
  236. package/dist/types/actions/signTypedData.d.ts +10 -0
  237. package/dist/types/actions/signTypedData.d.ts.map +1 -0
  238. package/dist/types/actions/simulateContract.d.ts +21 -0
  239. package/dist/types/actions/simulateContract.d.ts.map +1 -0
  240. package/dist/types/actions/switchAccount.d.ts +14 -0
  241. package/dist/types/actions/switchAccount.d.ts.map +1 -0
  242. package/dist/types/actions/switchChain.d.ts +16 -0
  243. package/dist/types/actions/switchChain.d.ts.map +1 -0
  244. package/dist/types/actions/waitForTransactionReceipt.d.ts +12 -0
  245. package/dist/types/actions/waitForTransactionReceipt.d.ts.map +1 -0
  246. package/dist/types/actions/watchAccount.d.ts +9 -0
  247. package/dist/types/actions/watchAccount.d.ts.map +1 -0
  248. package/dist/types/actions/watchBlockNumber.d.ts +13 -0
  249. package/dist/types/actions/watchBlockNumber.d.ts.map +1 -0
  250. package/dist/types/actions/watchChainId.d.ts +9 -0
  251. package/dist/types/actions/watchChainId.d.ts.map +1 -0
  252. package/dist/types/actions/watchClient.d.ts +9 -0
  253. package/dist/types/actions/watchClient.d.ts.map +1 -0
  254. package/dist/types/actions/watchConnections.d.ts +9 -0
  255. package/dist/types/actions/watchConnections.d.ts.map +1 -0
  256. package/dist/types/actions/watchContractEvent.d.ts +13 -0
  257. package/dist/types/actions/watchContractEvent.d.ts.map +1 -0
  258. package/dist/types/actions/watchPendingTransactions.d.ts +13 -0
  259. package/dist/types/actions/watchPendingTransactions.d.ts.map +1 -0
  260. package/dist/types/actions/watchPublicClient.d.ts +9 -0
  261. package/dist/types/actions/watchPublicClient.d.ts.map +1 -0
  262. package/dist/types/actions/writeContract.d.ts +15 -0
  263. package/dist/types/actions/writeContract.d.ts.map +1 -0
  264. package/dist/types/createConfig.d.ts +72 -0
  265. package/dist/types/createConfig.d.ts.map +1 -0
  266. package/dist/types/createConnector.d.ts +57 -0
  267. package/dist/types/createConnector.d.ts.map +1 -0
  268. package/dist/types/createEmitter.d.ts +31 -0
  269. package/dist/types/createEmitter.d.ts.map +1 -0
  270. package/dist/types/createStorage.d.ts +30 -0
  271. package/dist/types/createStorage.d.ts.map +1 -0
  272. package/dist/types/errors/base.d.ts +24 -0
  273. package/dist/types/errors/base.d.ts.map +1 -0
  274. package/dist/types/errors/config.d.ts +34 -0
  275. package/dist/types/errors/config.d.ts.map +1 -0
  276. package/dist/types/errors/connector.d.ts +13 -0
  277. package/dist/types/errors/connector.d.ts.map +1 -0
  278. package/dist/types/exports/actions.d.ts +40 -0
  279. package/dist/types/exports/actions.d.ts.map +1 -0
  280. package/dist/types/exports/chains.d.ts +2 -0
  281. package/dist/types/exports/chains.d.ts.map +1 -0
  282. package/dist/types/exports/index.d.ts +52 -0
  283. package/dist/types/exports/index.d.ts.map +1 -0
  284. package/dist/types/exports/internal.d.ts +5 -0
  285. package/dist/types/exports/internal.d.ts.map +1 -0
  286. package/dist/types/exports/query.d.ts +27 -0
  287. package/dist/types/exports/query.d.ts.map +1 -0
  288. package/dist/types/query/connect.d.ts +15 -0
  289. package/dist/types/query/connect.d.ts.map +1 -0
  290. package/dist/types/query/disconnect.d.ts +12 -0
  291. package/dist/types/query/disconnect.d.ts.map +1 -0
  292. package/dist/types/query/estimateFeesPerGas.d.ts +34 -0
  293. package/dist/types/query/estimateFeesPerGas.d.ts.map +1 -0
  294. package/dist/types/query/estimateGas.d.ts +18 -0
  295. package/dist/types/query/estimateGas.d.ts.map +1 -0
  296. package/dist/types/query/getBalance.d.ts +42 -0
  297. package/dist/types/query/getBalance.d.ts.map +1 -0
  298. package/dist/types/query/getBlockNumber.d.ts +34 -0
  299. package/dist/types/query/getBlockNumber.d.ts.map +1 -0
  300. package/dist/types/query/getConnectorClient.d.ts +319 -0
  301. package/dist/types/query/getConnectorClient.d.ts.map +1 -0
  302. package/dist/types/query/getEnsAddress.d.ts +42 -0
  303. package/dist/types/query/getEnsAddress.d.ts.map +1 -0
  304. package/dist/types/query/getEnsAvatar.d.ts +42 -0
  305. package/dist/types/query/getEnsAvatar.d.ts.map +1 -0
  306. package/dist/types/query/getEnsName.d.ts +39 -0
  307. package/dist/types/query/getEnsName.d.ts.map +1 -0
  308. package/dist/types/query/getEnsResolver.d.ts +39 -0
  309. package/dist/types/query/getEnsResolver.d.ts.map +1 -0
  310. package/dist/types/query/getToken.d.ts +33 -0
  311. package/dist/types/query/getToken.d.ts.map +1 -0
  312. package/dist/types/query/getTransaction.d.ts +110 -0
  313. package/dist/types/query/getTransaction.d.ts.map +1 -0
  314. package/dist/types/query/getWalletClient.d.ts +540 -0
  315. package/dist/types/query/getWalletClient.d.ts.map +1 -0
  316. package/dist/types/query/readContract.d.ts +19 -0
  317. package/dist/types/query/readContract.d.ts.map +1 -0
  318. package/dist/types/query/readContracts.d.ts +65 -0
  319. package/dist/types/query/readContracts.d.ts.map +1 -0
  320. package/dist/types/query/reconnect.d.ts +13 -0
  321. package/dist/types/query/reconnect.d.ts.map +1 -0
  322. package/dist/types/query/sendTransaction.d.ts +13 -0
  323. package/dist/types/query/sendTransaction.d.ts.map +1 -0
  324. package/dist/types/query/signMessage.d.ts +17 -0
  325. package/dist/types/query/signMessage.d.ts.map +1 -0
  326. package/dist/types/query/signTypedData.d.ts +219 -0
  327. package/dist/types/query/signTypedData.d.ts.map +1 -0
  328. package/dist/types/query/simulateContract.d.ts +19 -0
  329. package/dist/types/query/simulateContract.d.ts.map +1 -0
  330. package/dist/types/query/switchAccount.d.ts +15 -0
  331. package/dist/types/query/switchAccount.d.ts.map +1 -0
  332. package/dist/types/query/switchChain.d.ts +18 -0
  333. package/dist/types/query/switchChain.d.ts.map +1 -0
  334. package/dist/types/query/types.d.ts +9 -0
  335. package/dist/types/query/types.d.ts.map +1 -0
  336. package/dist/types/query/utils.d.ts +4 -0
  337. package/dist/types/query/utils.d.ts.map +1 -0
  338. package/dist/types/query/waitForTransactionReceipt.d.ts +131 -0
  339. package/dist/types/query/waitForTransactionReceipt.d.ts.map +1 -0
  340. package/dist/types/query/writeContract.d.ts +14 -0
  341. package/dist/types/query/writeContract.d.ts.map +1 -0
  342. package/dist/types/types/chain.d.ts +15 -0
  343. package/dist/types/types/chain.d.ts.map +1 -0
  344. package/dist/types/types/properties.d.ts +11 -0
  345. package/dist/types/types/properties.d.ts.map +1 -0
  346. package/dist/types/types/register.d.ts +8 -0
  347. package/dist/types/types/register.d.ts.map +1 -0
  348. package/dist/types/types/unit.d.ts +2 -0
  349. package/dist/types/types/unit.d.ts.map +1 -0
  350. package/dist/types/types/utils.d.ts +41 -0
  351. package/dist/types/types/utils.d.ts.map +1 -0
  352. package/dist/types/utils/assertActiveChain.d.ts +8 -0
  353. package/dist/types/utils/assertActiveChain.d.ts.map +1 -0
  354. package/dist/types/utils/deepEqual.d.ts +3 -0
  355. package/dist/types/utils/deepEqual.d.ts.map +1 -0
  356. package/dist/types/utils/deserialize.d.ts +4 -0
  357. package/dist/types/utils/deserialize.d.ts.map +1 -0
  358. package/dist/types/utils/getUnit.d.ts +3 -0
  359. package/dist/types/utils/getUnit.d.ts.map +1 -0
  360. package/dist/types/utils/getVersion.d.ts +2 -0
  361. package/dist/types/utils/getVersion.d.ts.map +1 -0
  362. package/dist/types/utils/normalizeChainId.d.ts +2 -0
  363. package/dist/types/utils/normalizeChainId.d.ts.map +1 -0
  364. package/dist/types/utils/serialize.d.ts +16 -0
  365. package/dist/types/utils/serialize.d.ts.map +1 -0
  366. package/dist/types/utils/uid.d.ts +2 -0
  367. package/dist/types/utils/uid.d.ts.map +1 -0
  368. package/dist/types/version.d.ts +2 -0
  369. package/dist/types/version.d.ts.map +1 -0
  370. package/package.json +65 -101
  371. package/src/actions/connect.ts +86 -0
  372. package/src/actions/disconnect.ts +68 -0
  373. package/src/actions/estimateFeesPerGas.ts +76 -0
  374. package/src/actions/estimateGas.ts +62 -0
  375. package/src/actions/getAccount.ts +109 -0
  376. package/src/actions/getBalance.ts +141 -0
  377. package/src/actions/getBlockNumber.ts +27 -0
  378. package/src/actions/getChainId.ts +11 -0
  379. package/src/actions/getClient.ts +30 -0
  380. package/src/actions/getConnections.ts +16 -0
  381. package/src/actions/getConnectorClient.ts +96 -0
  382. package/src/actions/getEnsAddress.ts +27 -0
  383. package/src/actions/getEnsAvatar.ts +27 -0
  384. package/src/actions/getEnsName.ts +27 -0
  385. package/src/actions/getEnsResolver.ts +27 -0
  386. package/src/actions/getPublicClient.ts +34 -0
  387. package/src/actions/getToken.ts +140 -0
  388. package/src/actions/getTransaction.ts +44 -0
  389. package/src/actions/getWalletClient.ts +41 -0
  390. package/src/actions/multicall.ts +37 -0
  391. package/src/actions/readContract.ts +55 -0
  392. package/src/actions/readContracts.ts +98 -0
  393. package/src/actions/reconnect.ts +102 -0
  394. package/src/actions/sendTransaction.ts +68 -0
  395. package/src/actions/signMessage.ts +29 -0
  396. package/src/actions/signTypedData.ts +36 -0
  397. package/src/actions/simulateContract.ts +161 -0
  398. package/src/actions/switchAccount.ts +37 -0
  399. package/src/actions/switchChain.ts +63 -0
  400. package/src/actions/waitForTransactionReceipt.ts +69 -0
  401. package/src/actions/watchAccount.ts +32 -0
  402. package/src/actions/watchBlockNumber.ts +78 -0
  403. package/src/actions/watchChainId.ts +20 -0
  404. package/src/actions/watchClient.ts +34 -0
  405. package/src/actions/watchConnections.ts +26 -0
  406. package/src/actions/watchContractEvent.ts +98 -0
  407. package/src/actions/watchPendingTransactions.ts +79 -0
  408. package/src/actions/watchPublicClient.ts +37 -0
  409. package/src/actions/writeContract.ts +111 -0
  410. package/src/createConfig.ts +382 -0
  411. package/src/createConnector.ts +78 -0
  412. package/src/createEmitter.ts +68 -0
  413. package/src/createStorage.ts +89 -0
  414. package/src/errors/base.ts +71 -0
  415. package/src/errors/config.ts +60 -0
  416. package/src/errors/connector.ts +17 -0
  417. package/src/exports/actions.ts +258 -0
  418. package/src/exports/chains.ts +4 -0
  419. package/src/exports/index.ts +339 -0
  420. package/src/exports/internal.ts +28 -0
  421. package/src/exports/query.ts +220 -0
  422. package/src/query/connect.ts +45 -0
  423. package/src/query/disconnect.ts +43 -0
  424. package/src/query/estimateFeesPerGas.ts +56 -0
  425. package/src/query/estimateGas.ts +55 -0
  426. package/src/query/getBalance.ts +61 -0
  427. package/src/query/getBlockNumber.ts +50 -0
  428. package/src/query/getConnectorClient.ts +68 -0
  429. package/src/query/getEnsAddress.ts +49 -0
  430. package/src/query/getEnsAvatar.ts +49 -0
  431. package/src/query/getEnsName.ts +49 -0
  432. package/src/query/getEnsResolver.ts +49 -0
  433. package/src/query/getToken.ts +49 -0
  434. package/src/query/getTransaction.ts +75 -0
  435. package/src/query/getWalletClient.ts +64 -0
  436. package/src/query/readContract.ts +88 -0
  437. package/src/query/readContracts.ts +98 -0
  438. package/src/query/reconnect.ts +42 -0
  439. package/src/query/sendTransaction.ts +65 -0
  440. package/src/query/signMessage.ts +42 -0
  441. package/src/query/signTypedData.ts +63 -0
  442. package/src/query/simulateContract.ts +128 -0
  443. package/src/query/switchAccount.ts +52 -0
  444. package/src/query/switchChain.ts +67 -0
  445. package/src/query/types.ts +52 -0
  446. package/src/query/utils.ts +54 -0
  447. package/src/query/waitForTransactionReceipt.ts +71 -0
  448. package/src/query/writeContract.ts +91 -0
  449. package/src/types/chain.ts +25 -0
  450. package/src/types/properties.ts +21 -0
  451. package/src/types/register.ts +8 -0
  452. package/src/types/unit.ts +1 -0
  453. package/src/types/utils.ts +85 -0
  454. package/src/utils/assertActiveChain.ts +26 -0
  455. package/src/utils/deepEqual.ts +43 -0
  456. package/src/utils/deserialize.ts +10 -0
  457. package/src/utils/getUnit.ts +9 -0
  458. package/src/utils/getVersion.ts +3 -0
  459. package/src/utils/normalizeChainId.ts +12 -0
  460. package/src/utils/serialize.ts +116 -0
  461. package/src/utils/uid.ts +14 -0
  462. package/src/version.ts +1 -0
  463. package/README.md +0 -30
  464. package/chains/package.json +0 -4
  465. package/connectors/coinbaseWallet/package.json +0 -4
  466. package/connectors/injected/package.json +0 -4
  467. package/connectors/ledger/package.json +0 -4
  468. package/connectors/metaMask/package.json +0 -4
  469. package/connectors/mock/package.json +0 -4
  470. package/connectors/package.json +0 -4
  471. package/connectors/safe/package.json +0 -4
  472. package/connectors/walletConnect/package.json +0 -4
  473. package/connectors/walletConnectLegacy/package.json +0 -4
  474. package/dist/chains.d.ts +0 -2
  475. package/dist/chains.js +0 -2
  476. package/dist/chunk-4E64EZ7V.js +0 -7
  477. package/dist/chunk-BVC4KGLQ.js +0 -8
  478. package/dist/chunk-EQOEZP46.js +0 -6
  479. package/dist/chunk-KFW652VN.js +0 -7
  480. package/dist/chunk-LAFZBYO7.js +0 -2934
  481. package/dist/chunk-MQXBDTVK.js +0 -29
  482. package/dist/connectors/coinbaseWallet.d.ts +0 -1
  483. package/dist/connectors/coinbaseWallet.js +0 -7
  484. package/dist/connectors/index.d.ts +0 -2
  485. package/dist/connectors/index.js +0 -9
  486. package/dist/connectors/injected.d.ts +0 -1
  487. package/dist/connectors/injected.js +0 -7
  488. package/dist/connectors/ledger.d.ts +0 -1
  489. package/dist/connectors/ledger.js +0 -7
  490. package/dist/connectors/metaMask.d.ts +0 -1
  491. package/dist/connectors/metaMask.js +0 -7
  492. package/dist/connectors/mock.d.ts +0 -1
  493. package/dist/connectors/mock.js +0 -9
  494. package/dist/connectors/safe.d.ts +0 -1
  495. package/dist/connectors/safe.js +0 -7
  496. package/dist/connectors/walletConnect.d.ts +0 -1
  497. package/dist/connectors/walletConnect.js +0 -7
  498. package/dist/connectors/walletConnectLegacy.d.ts +0 -1
  499. package/dist/connectors/walletConnectLegacy.js +0 -7
  500. package/dist/index-e744bbc2.d.ts +0 -22
  501. package/dist/index.d.ts +0 -1397
  502. package/dist/index.js +0 -135
  503. package/dist/internal/index.d.ts +0 -24
  504. package/dist/internal/index.js +0 -10
  505. package/dist/internal/test.d.ts +0 -438
  506. package/dist/internal/test.js +0 -160
  507. package/dist/providers/alchemy.d.ts +0 -11
  508. package/dist/providers/alchemy.js +0 -29
  509. package/dist/providers/infura.d.ts +0 -11
  510. package/dist/providers/infura.js +0 -29
  511. package/dist/providers/jsonRpc.d.ts +0 -13
  512. package/dist/providers/jsonRpc.js +0 -28
  513. package/dist/providers/public.d.ts +0 -7
  514. package/dist/providers/public.js +0 -16
  515. package/dist/window.d.ts +0 -7
  516. package/dist/window.js +0 -0
  517. package/internal/package.json +0 -4
  518. package/internal/test/package.json +0 -4
  519. package/providers/alchemy/package.json +0 -4
  520. package/providers/infura/package.json +0 -4
  521. package/providers/jsonRpc/package.json +0 -4
  522. package/providers/public/package.json +0 -4
  523. package/window/package.json +0 -4
@@ -0,0 +1,96 @@
1
+ import {
2
+ type Account,
3
+ type Address,
4
+ type Client,
5
+ createClient,
6
+ custom,
7
+ } from 'viem'
8
+
9
+ import { parseAccount } from 'viem/utils'
10
+ import type { Config, Connection } from '../createConfig.js'
11
+ import {
12
+ ConnectorAccountNotFound,
13
+ ConnectorNotConnectedError,
14
+ } from '../errors/config.js'
15
+ import type {
16
+ ChainIdParameter,
17
+ ConnectorParameter,
18
+ } from '../types/properties.js'
19
+ import type { Evaluate } from '../types/utils.js'
20
+
21
+ export type GetConnectorClientParameters<
22
+ config extends Config = Config,
23
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
24
+ > = Evaluate<
25
+ ChainIdParameter<config, chainId> &
26
+ ConnectorParameter & {
27
+ account?: Address | Account | undefined
28
+ }
29
+ >
30
+
31
+ export type GetConnectorClientReturnType<
32
+ config extends Config = Config,
33
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
34
+ > = Evaluate<
35
+ Client<
36
+ config['_internal']['transports'][chainId],
37
+ Extract<config['chains'][number], { id: chainId }>,
38
+ Account
39
+ >
40
+ >
41
+
42
+ export type GetConnectorClientError =
43
+ | ConnectorAccountNotFound
44
+ | ConnectorNotConnectedError
45
+ | Error
46
+
47
+ /** https://alpha.wagmi.sh/core/api/actions/getConnectorClient */
48
+ export async function getConnectorClient<
49
+ config extends Config,
50
+ chainId extends config['chains'][number]['id'],
51
+ >(
52
+ config: config,
53
+ parameters: GetConnectorClientParameters<config, chainId> = {},
54
+ ): Promise<GetConnectorClientReturnType<config, chainId>> {
55
+ // Get connection
56
+ let connection: Connection | undefined
57
+ if (parameters.connector) {
58
+ const { connector } = parameters
59
+ const [accounts, chainId] = await Promise.all([
60
+ connector.getAccounts(),
61
+ connector.getChainId(),
62
+ ])
63
+ connection = {
64
+ accounts: accounts as readonly [Address, ...Address[]],
65
+ chainId,
66
+ connector,
67
+ }
68
+ } else connection = config.state.connections.get(config.state.current!)
69
+ if (!connection) throw new ConnectorNotConnectedError()
70
+
71
+ const chainId = parameters.chainId ?? connection.chainId
72
+
73
+ // If connector has custom `getClient` implementation
74
+ type Return = GetConnectorClientReturnType<config, chainId>
75
+ const connector = connection.connector
76
+ if (connector.getClient)
77
+ return connector.getClient({ chainId: chainId }) as unknown as Return
78
+
79
+ // Default using `custom` transport
80
+ const account = parseAccount(parameters.account ?? connection.accounts[0]!)
81
+ const chain = config.chains.find((chain) => chain.id === chainId)
82
+ const provider = (await connection.connector.getProvider({ chainId })) as {
83
+ request(...args: any): Promise<any>
84
+ }
85
+
86
+ // if account was provided, check that it exists on the connector
87
+ if (parameters.account && !connection.accounts.includes(account.address))
88
+ throw new ConnectorAccountNotFound({ address: account.address, connector })
89
+
90
+ return createClient({
91
+ account,
92
+ chain,
93
+ name: 'Connector Client',
94
+ transport: (opts) => custom(provider)({ ...opts, retryCount: 0 }),
95
+ }) as unknown as Return
96
+ }
@@ -0,0 +1,27 @@
1
+ import {
2
+ type GetEnsAddressParameters as viem_GetEnsAddressParameters,
3
+ type GetEnsAddressReturnType as viem_GetEnsAddressReturnType,
4
+ getEnsAddress as viem_getEnsAddress,
5
+ } from 'viem/actions'
6
+
7
+ import { type Config } from '../createConfig.js'
8
+ import type { ChainIdParameter } from '../types/properties.js'
9
+ import type { Evaluate } from '../types/utils.js'
10
+
11
+ export type GetEnsAddressParameters<config extends Config = Config> = Evaluate<
12
+ viem_GetEnsAddressParameters & ChainIdParameter<config>
13
+ >
14
+
15
+ export type GetEnsAddressReturnType = viem_GetEnsAddressReturnType
16
+
17
+ export type GetEnsAddressError = Error
18
+
19
+ /** https://alpha.wagmi.sh/core/api/actions/getEnsAddress */
20
+ export function getEnsAddress<config extends Config>(
21
+ config: config,
22
+ parameters: GetEnsAddressParameters<config>,
23
+ ): Promise<GetEnsAddressReturnType> {
24
+ const { chainId } = parameters
25
+ const client = config.getClient({ chainId })
26
+ return viem_getEnsAddress(client, parameters)
27
+ }
@@ -0,0 +1,27 @@
1
+ import {
2
+ type GetEnsAvatarParameters as viem_GetEnsAvatarParameters,
3
+ type GetEnsAvatarReturnType as viem_GetEnsAvatarReturnType,
4
+ getEnsAvatar as viem_getEnsAvatar,
5
+ } from 'viem/actions'
6
+
7
+ import { type Config } from '../createConfig.js'
8
+ import type { ChainIdParameter } from '../types/properties.js'
9
+ import type { Evaluate } from '../types/utils.js'
10
+
11
+ export type GetEnsAvatarParameters<config extends Config = Config> = Evaluate<
12
+ viem_GetEnsAvatarParameters & ChainIdParameter<config>
13
+ >
14
+
15
+ export type GetEnsAvatarReturnType = viem_GetEnsAvatarReturnType
16
+
17
+ export type GetEnsAvatarError = Error
18
+
19
+ /** https://alpha.wagmi.sh/core/api/actions/getEnsAvatar */
20
+ export function getEnsAvatar<config extends Config>(
21
+ config: config,
22
+ parameters: GetEnsAvatarParameters<config>,
23
+ ): Promise<GetEnsAvatarReturnType> {
24
+ const { chainId } = parameters
25
+ const client = config.getClient({ chainId })
26
+ return viem_getEnsAvatar(client, parameters)
27
+ }
@@ -0,0 +1,27 @@
1
+ import {
2
+ type GetEnsNameParameters as viem_GetEnsNameParameters,
3
+ type GetEnsNameReturnType as viem_GetEnsNameReturnType,
4
+ getEnsName as viem_getEnsName,
5
+ } from 'viem/actions'
6
+
7
+ import { type Config } from '../createConfig.js'
8
+ import type { ChainIdParameter } from '../types/properties.js'
9
+ import type { Evaluate } from '../types/utils.js'
10
+
11
+ export type GetEnsNameParameters<config extends Config = Config> = Evaluate<
12
+ viem_GetEnsNameParameters & ChainIdParameter<config>
13
+ >
14
+
15
+ export type GetEnsNameReturnType = viem_GetEnsNameReturnType
16
+
17
+ export type GetEnsNameError = Error
18
+
19
+ /** https://alpha.wagmi.sh/core/api/actions/getEnsName */
20
+ export function getEnsName<config extends Config>(
21
+ config: config,
22
+ parameters: GetEnsNameParameters<config>,
23
+ ): Promise<GetEnsNameReturnType> {
24
+ const { chainId } = parameters
25
+ const client = config.getClient({ chainId })
26
+ return viem_getEnsName(client, parameters)
27
+ }
@@ -0,0 +1,27 @@
1
+ import {
2
+ type GetEnsResolverParameters as viem_GetEnsResolverParameters,
3
+ type GetEnsResolverReturnType as viem_GetEnsResolverReturnType,
4
+ getEnsResolver as viem_getEnsResolver,
5
+ } from 'viem/actions'
6
+
7
+ import { type Config } from '../createConfig.js'
8
+ import type { ChainIdParameter } from '../types/properties.js'
9
+ import type { Evaluate } from '../types/utils.js'
10
+
11
+ export type GetEnsResolverParameters<config extends Config = Config> = Evaluate<
12
+ viem_GetEnsResolverParameters & ChainIdParameter<config>
13
+ >
14
+
15
+ export type GetEnsResolverReturnType = viem_GetEnsResolverReturnType
16
+
17
+ export type GetEnsResolverError = Error
18
+
19
+ /** https://alpha.wagmi.sh/core/api/actions/getEnsResolver */
20
+ export function getEnsResolver<config extends Config>(
21
+ config: config,
22
+ parameters: GetEnsResolverParameters<config>,
23
+ ): Promise<GetEnsResolverReturnType> {
24
+ const { chainId } = parameters
25
+ const client = config.getClient({ chainId })
26
+ return viem_getEnsResolver(client, parameters)
27
+ }
@@ -0,0 +1,34 @@
1
+ import { type PublicClient, publicActions } from 'viem'
2
+
3
+ import type { Config } from '../createConfig.js'
4
+ import type { ChainIdParameter } from '../types/properties.js'
5
+ import type { Evaluate } from '../types/utils.js'
6
+
7
+ export type GetPublicClientParameters<
8
+ config extends Config = Config,
9
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
10
+ > = ChainIdParameter<config, chainId>
11
+
12
+ export type GetPublicClientReturnType<
13
+ config extends Config = Config,
14
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
15
+ > = Evaluate<
16
+ PublicClient<
17
+ config['_internal']['transports'][chainId],
18
+ Extract<config['chains'][number], { id: chainId }>
19
+ >
20
+ >
21
+
22
+ export function getPublicClient<
23
+ config extends Config,
24
+ chainId extends config['chains'][number]['id'],
25
+ >(
26
+ config: config,
27
+ parameters: GetPublicClientParameters<config, chainId> = {},
28
+ ): GetPublicClientReturnType<config, chainId> {
29
+ const client = config.getClient(parameters)
30
+ return client.extend(publicActions) as GetPublicClientReturnType<
31
+ config,
32
+ chainId
33
+ >
34
+ }
@@ -0,0 +1,140 @@
1
+ import type { Address, Hex } from 'viem'
2
+ import {
3
+ ContractFunctionExecutionError,
4
+ formatUnits,
5
+ hexToString,
6
+ trim,
7
+ } from 'viem'
8
+
9
+ import type { Config } from '../createConfig.js'
10
+ import type { ChainIdParameter } from '../types/properties.js'
11
+ import type { Unit } from '../types/unit.js'
12
+ import type { Evaluate } from '../types/utils.js'
13
+ import { getUnit } from '../utils/getUnit.js'
14
+ import { readContracts } from './readContracts.js'
15
+
16
+ export type GetTokenParameters<config extends Config = Config> = Evaluate<
17
+ {
18
+ address: Address
19
+ formatUnits?: Unit
20
+ } & ChainIdParameter<config>
21
+ >
22
+
23
+ export type GetTokenReturnType = {
24
+ address: Address
25
+ decimals: number
26
+ name: string | undefined
27
+ symbol: string | undefined
28
+ totalSupply: {
29
+ formatted: string
30
+ value: bigint
31
+ }
32
+ }
33
+
34
+ export type GetTokenError = Error
35
+
36
+ export async function getToken<config extends Config>(
37
+ config: config,
38
+ parameters: GetTokenParameters<config>,
39
+ ): Promise<GetTokenReturnType> {
40
+ const { address, chainId, formatUnits: unit = 18 } = parameters
41
+
42
+ function getAbi<type extends 'bytes32' | 'string'>(type: type) {
43
+ return [
44
+ {
45
+ type: 'function',
46
+ name: 'decimals',
47
+ stateMutability: 'view',
48
+ inputs: [],
49
+ outputs: [{ type: 'uint8' }],
50
+ },
51
+ {
52
+ type: 'function',
53
+ name: 'name',
54
+ stateMutability: 'view',
55
+ inputs: [],
56
+ outputs: [{ type }],
57
+ },
58
+ {
59
+ type: 'function',
60
+ name: 'symbol',
61
+ stateMutability: 'view',
62
+ inputs: [],
63
+ outputs: [{ type }],
64
+ },
65
+ {
66
+ type: 'function',
67
+ name: 'totalSupply',
68
+ stateMutability: 'view',
69
+ inputs: [],
70
+ outputs: [{ type: 'uint256' }],
71
+ },
72
+ ] as const
73
+ }
74
+
75
+ try {
76
+ const abi = getAbi('string')
77
+ const contractConfig = { address, abi, chainId } as const
78
+ const [decimals, name, symbol, totalSupply] = await readContracts(config, {
79
+ allowFailure: true,
80
+ contracts: [
81
+ { ...contractConfig, functionName: 'decimals' },
82
+ { ...contractConfig, functionName: 'name' },
83
+ { ...contractConfig, functionName: 'symbol' },
84
+ { ...contractConfig, functionName: 'totalSupply' },
85
+ ] as const,
86
+ })
87
+
88
+ // throw if `name` or `symbol` failed
89
+ if (name.error instanceof ContractFunctionExecutionError) throw name.error
90
+ if (symbol.error instanceof ContractFunctionExecutionError)
91
+ throw symbol.error
92
+
93
+ // `decimals` and `totalSupply` are required
94
+ if (decimals.error) throw decimals.error
95
+ if (totalSupply.error) throw totalSupply.error
96
+
97
+ return {
98
+ address,
99
+ decimals: decimals.result,
100
+ name: name.result,
101
+ symbol: symbol.result,
102
+ totalSupply: {
103
+ formatted: formatUnits(totalSupply.result!, getUnit(unit)),
104
+ value: totalSupply.result,
105
+ },
106
+ }
107
+ } catch (error) {
108
+ // In the chance that there is an error upon decoding the contract result,
109
+ // it could be likely that the contract data is represented as bytes32 instead
110
+ // of a string.
111
+ if (error instanceof ContractFunctionExecutionError) {
112
+ const abi = getAbi('bytes32')
113
+ const contractConfig = { address, abi, chainId } as const
114
+ const [decimals, name, symbol, totalSupply] = await readContracts(
115
+ config,
116
+ {
117
+ allowFailure: false,
118
+ contracts: [
119
+ { ...contractConfig, functionName: 'decimals' },
120
+ { ...contractConfig, functionName: 'name' },
121
+ { ...contractConfig, functionName: 'symbol' },
122
+ { ...contractConfig, functionName: 'totalSupply' },
123
+ ] as const,
124
+ },
125
+ )
126
+ return {
127
+ address,
128
+ decimals,
129
+ name: hexToString(trim(name as Hex, { dir: 'right' })),
130
+ symbol: hexToString(trim(symbol as Hex, { dir: 'right' })),
131
+ totalSupply: {
132
+ formatted: formatUnits(totalSupply, getUnit(unit)),
133
+ value: totalSupply,
134
+ },
135
+ }
136
+ }
137
+
138
+ throw error
139
+ }
140
+ }
@@ -0,0 +1,44 @@
1
+ import type { Chain } from 'viem'
2
+ import {
3
+ type GetTransactionParameters as viem_GetTransactionParameters,
4
+ type GetTransactionReturnType as viem_GetTransactionReturnType,
5
+ getTransaction as viem_getTransaction,
6
+ } from 'viem/actions'
7
+
8
+ import { type Config } from '../createConfig.js'
9
+ import type { SelectChains } from '../types/chain.js'
10
+ import type { ChainIdParameter } from '../types/properties.js'
11
+ import { type Evaluate } from '../types/utils.js'
12
+
13
+ export type GetTransactionParameters<
14
+ config extends Config = Config,
15
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
16
+ > = Evaluate<viem_GetTransactionParameters & ChainIdParameter<config, chainId>>
17
+
18
+ export type GetTransactionReturnType<
19
+ config extends Config = Config,
20
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
21
+ ///
22
+ chains extends readonly Chain[] = SelectChains<config, chainId>,
23
+ > = Evaluate<
24
+ {
25
+ [key in keyof chains]: viem_GetTransactionReturnType<chains[key]>
26
+ }[number]
27
+ >
28
+
29
+ export type GetTransactionError = Error
30
+
31
+ /** https://alpha.wagmi.sh/core/api/actions/getTransaction */
32
+ export function getTransaction<
33
+ config extends Config,
34
+ chainId extends config['chains'][number]['id'],
35
+ >(
36
+ config: config,
37
+ parameters: GetTransactionParameters<config, chainId>,
38
+ ): Promise<GetTransactionReturnType<config, chainId>> {
39
+ const { chainId } = parameters
40
+ const client = config.getClient({ chainId })
41
+ return viem_getTransaction(client, parameters) as unknown as Promise<
42
+ GetTransactionReturnType<config, chainId>
43
+ >
44
+ }
@@ -0,0 +1,41 @@
1
+ import { type Account, type WalletClient, walletActions } from 'viem'
2
+
3
+ import type { Config } from '../createConfig.js'
4
+ import type { Evaluate } from '../types/utils.js'
5
+ import {
6
+ type GetConnectorClientError,
7
+ type GetConnectorClientParameters,
8
+ getConnectorClient,
9
+ } from './getConnectorClient.js'
10
+
11
+ export type GetWalletClientParameters<
12
+ config extends Config = Config,
13
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
14
+ > = GetConnectorClientParameters<Config, chainId>
15
+
16
+ export type GetWalletClientReturnType<
17
+ config extends Config = Config,
18
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
19
+ > = Evaluate<
20
+ WalletClient<
21
+ config['_internal']['transports'][chainId],
22
+ Extract<config['chains'][number], { id: chainId }>,
23
+ Account
24
+ >
25
+ >
26
+
27
+ export type GetWalletClientError = GetConnectorClientError
28
+
29
+ export async function getWalletClient<
30
+ config extends Config,
31
+ chainId extends config['chains'][number]['id'],
32
+ >(
33
+ config: config,
34
+ parameters: GetWalletClientParameters<config, chainId> = {},
35
+ ): Promise<GetWalletClientReturnType<config, chainId>> {
36
+ const client = await getConnectorClient(config, parameters)
37
+ return client.extend(walletActions) as unknown as GetWalletClientReturnType<
38
+ config,
39
+ chainId
40
+ >
41
+ }
@@ -0,0 +1,37 @@
1
+ import type {
2
+ ContractFunctionParameters,
3
+ MulticallParameters as viem_MulticallParameters,
4
+ MulticallReturnType as viem_MulticallReturnType,
5
+ } from 'viem'
6
+ import { multicall as viem_multicall } from 'viem/actions'
7
+
8
+ import type { Config } from '../createConfig.js'
9
+ import type { ChainIdParameter } from '../types/properties.js'
10
+
11
+ export type MulticallParameters<
12
+ contracts extends readonly unknown[] = readonly ContractFunctionParameters[],
13
+ allowFailure extends boolean = true,
14
+ config extends Config = Config,
15
+ > = viem_MulticallParameters<contracts, allowFailure> & ChainIdParameter<config>
16
+
17
+ export type MulticallReturnType<
18
+ contracts extends readonly unknown[] = readonly ContractFunctionParameters[],
19
+ allowFailure extends boolean = true,
20
+ > = viem_MulticallReturnType<contracts, allowFailure>
21
+
22
+ export async function multicall<
23
+ config extends Config,
24
+ const contracts extends readonly unknown[],
25
+ allowFailure extends boolean = true,
26
+ >(
27
+ config: config,
28
+ parameters: MulticallParameters<contracts, allowFailure, config>,
29
+ ): Promise<MulticallReturnType<contracts, allowFailure>> {
30
+ const { allowFailure = true, chainId, contracts, ...rest } = parameters
31
+ const client = config.getClient({ chainId })
32
+ return viem_multicall(client, {
33
+ allowFailure,
34
+ contracts,
35
+ ...rest,
36
+ }) as Promise<MulticallReturnType<contracts, allowFailure>>
37
+ }
@@ -0,0 +1,55 @@
1
+ import { type Abi } from 'viem'
2
+ import type { ContractFunctionArgs, ContractFunctionName } from 'viem'
3
+ import {
4
+ type ReadContractParameters as viem_ReadContractParameters,
5
+ type ReadContractReturnType as viem_ReadContractReturnType,
6
+ readContract as viem_readContract,
7
+ } from 'viem/actions'
8
+
9
+ import { type Config } from '../createConfig.js'
10
+ import type { ChainIdParameter } from '../types/properties.js'
11
+
12
+ export type ReadContractParameters<
13
+ abi extends Abi | readonly unknown[] = Abi,
14
+ functionName extends ContractFunctionName<
15
+ abi,
16
+ 'pure' | 'view'
17
+ > = ContractFunctionName<abi, 'pure' | 'view'>,
18
+ args extends ContractFunctionArgs<
19
+ abi,
20
+ 'pure' | 'view',
21
+ functionName
22
+ > = ContractFunctionArgs<abi, 'pure' | 'view', functionName>,
23
+ config extends Config = Config,
24
+ > = viem_ReadContractParameters<abi, functionName, args> &
25
+ ChainIdParameter<config>
26
+
27
+ export type ReadContractReturnType<
28
+ abi extends Abi | readonly unknown[] = Abi,
29
+ functionName extends ContractFunctionName<
30
+ abi,
31
+ 'pure' | 'view'
32
+ > = ContractFunctionName<abi, 'pure' | 'view'>,
33
+ args extends ContractFunctionArgs<
34
+ abi,
35
+ 'pure' | 'view',
36
+ functionName
37
+ > = ContractFunctionArgs<abi, 'pure' | 'view', functionName>,
38
+ > = viem_ReadContractReturnType<abi, functionName, args>
39
+
40
+ export type ReadContractError = Error
41
+
42
+ /** https://alpha.wagmi.sh/core/api/actions/readContract */
43
+ export function readContract<
44
+ config extends Config,
45
+ const abi extends Abi | readonly unknown[],
46
+ functionName extends ContractFunctionName<abi, 'pure' | 'view'>,
47
+ args extends ContractFunctionArgs<abi, 'pure' | 'view', functionName>,
48
+ >(
49
+ config: config,
50
+ parameters: ReadContractParameters<abi, functionName, args, config>,
51
+ ): Promise<ReadContractReturnType<abi, functionName, args>> {
52
+ const { chainId } = parameters
53
+ const client = config.getClient({ chainId })
54
+ return viem_readContract(client, parameters as any)
55
+ }
@@ -0,0 +1,98 @@
1
+ import type {
2
+ ContractFunctionParameters,
3
+ MulticallParameters as viem_MulticallParameters,
4
+ MulticallReturnType as viem_MulticallReturnType,
5
+ } from 'viem'
6
+ import { ContractFunctionExecutionError } from 'viem'
7
+
8
+ import { type Config } from '../createConfig.js'
9
+ import { type ChainIdParameter } from '../types/properties.js'
10
+ import { multicall } from './multicall.js'
11
+ import { readContract } from './readContract.js'
12
+
13
+ export type ReadContractsParameters<
14
+ contracts extends readonly unknown[] = readonly ContractFunctionParameters[],
15
+ allowFailure extends boolean = true,
16
+ config extends Config = Config,
17
+ > = viem_MulticallParameters<
18
+ contracts,
19
+ allowFailure,
20
+ { properties: ChainIdParameter<config> }
21
+ >
22
+
23
+ export type ReadContractsReturnType<
24
+ contracts extends readonly unknown[] = readonly ContractFunctionParameters[],
25
+ allowFailure extends boolean = true,
26
+ > = viem_MulticallReturnType<contracts, allowFailure>
27
+
28
+ export type ReadContractsError = Error
29
+
30
+ export async function readContracts<
31
+ config extends Config,
32
+ const contracts extends readonly ContractFunctionParameters[],
33
+ allowFailure extends boolean = true,
34
+ >(
35
+ config: config,
36
+ parameters: ReadContractsParameters<contracts, allowFailure, config>,
37
+ ): Promise<ReadContractsReturnType<contracts, allowFailure>> {
38
+ const { allowFailure = true, blockNumber, blockTag, ...rest } = parameters
39
+ const contracts = parameters.contracts as (ContractFunctionParameters & {
40
+ chainId?: number | undefined
41
+ })[]
42
+
43
+ try {
44
+ const contractsByChainId = contracts.reduce(
45
+ (contracts, contract, index) => {
46
+ const chainId = contract.chainId ?? config.state.chainId
47
+ return {
48
+ ...contracts,
49
+ [chainId]: [...(contracts[chainId] || []), { contract, index }],
50
+ }
51
+ },
52
+ {} as {
53
+ [chainId: number]: {
54
+ contract: ContractFunctionParameters
55
+ index: number
56
+ }[]
57
+ },
58
+ )
59
+ const promises = () =>
60
+ Object.entries(contractsByChainId).map(([chainId, contracts]) =>
61
+ multicall(config, {
62
+ ...rest,
63
+ allowFailure,
64
+ chainId: parseInt(chainId),
65
+ contracts: contracts.map(({ contract }) => contract),
66
+ }),
67
+ )
68
+
69
+ const multicallResults = (await Promise.all(promises())).flat()
70
+ // Reorder the contract results back to the order they were
71
+ // provided in.
72
+ const resultIndexes = Object.values(contractsByChainId).flatMap(
73
+ (contracts) => contracts.map(({ index }) => index),
74
+ )
75
+ return multicallResults.reduce((results, result, index) => {
76
+ if (results) results[resultIndexes[index]!] = result
77
+ return results
78
+ }, [] as unknown[]) as ReadContractsReturnType<contracts, allowFailure>
79
+ } catch (error) {
80
+ if (error instanceof ContractFunctionExecutionError) throw error
81
+
82
+ const promises = () =>
83
+ contracts.map((contract) =>
84
+ readContract(config, { ...contract, blockNumber, blockTag }),
85
+ )
86
+ if (allowFailure)
87
+ return (await Promise.allSettled(promises())).map((result) => {
88
+ if (result.status === 'fulfilled')
89
+ return { result: result.value, status: 'success' }
90
+ return { error: result.reason, result: undefined, status: 'failure' }
91
+ }) as ReadContractsReturnType<contracts, allowFailure>
92
+
93
+ return (await Promise.all(promises())) as ReadContractsReturnType<
94
+ contracts,
95
+ allowFailure
96
+ >
97
+ }
98
+ }