@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,86 @@
1
+ import { ResourceUnavailableRpcError, UserRejectedRequestError } from 'viem'
2
+ import { type Address } from 'viem'
3
+
4
+ import { type Config, type Connector } from '../createConfig.js'
5
+ import { type CreateConnectorFn } from '../createConnector.js'
6
+ import type { BaseError } from '../errors/base.js'
7
+ import { ConnectorAlreadyConnectedError } from '../errors/config.js'
8
+ import type { ChainIdParameter } from '../types/properties.js'
9
+ import type { Evaluate } from '../types/utils.js'
10
+
11
+ export type ConnectParameters<config extends Config = Config> = Evaluate<
12
+ {
13
+ connector: Connector | CreateConnectorFn
14
+ } & ChainIdParameter<config>
15
+ >
16
+
17
+ export type ConnectReturnType<config extends Config = Config> = {
18
+ accounts: readonly [Address, ...Address[]]
19
+ chainId:
20
+ | config['chains'][number]['id']
21
+ | (number extends config['chains'][number]['id'] ? number : number & {})
22
+ }
23
+
24
+ export type ConnectError =
25
+ // connect()
26
+ | ConnectorAlreadyConnectedError
27
+ // connector.connect()
28
+ | UserRejectedRequestError
29
+ | ResourceUnavailableRpcError
30
+ // base
31
+ | BaseError
32
+ | Error
33
+
34
+ /** https://alpha.wagmi.sh/core/api/actions/connect */
35
+ export async function connect<config extends Config>(
36
+ config: config,
37
+ parameters: ConnectParameters<config>,
38
+ ): Promise<ConnectReturnType<config>> {
39
+ // "Register" connector if not already created
40
+ let connector: Connector
41
+ if (typeof parameters.connector === 'function') {
42
+ connector = config._internal.setup(parameters.connector)
43
+ } else connector = parameters.connector
44
+
45
+ // Check if connector is already connected
46
+ if (connector.uid === config.state.current)
47
+ throw new ConnectorAlreadyConnectedError()
48
+
49
+ try {
50
+ config.setState((x) => ({ ...x, status: 'connecting' }))
51
+ connector.emitter.emit('message', { type: 'connecting' })
52
+
53
+ const data = await connector.connect({ chainId: parameters.chainId })
54
+ const accounts = data.accounts as readonly [Address, ...Address[]]
55
+
56
+ connector.emitter.off('connect', config._internal.connect)
57
+ connector.emitter.on('change', config._internal.change)
58
+ connector.emitter.on('disconnect', config._internal.disconnect)
59
+
60
+ await config.storage?.setItem('recentConnectorId', connector.id)
61
+ config.setState((x) => ({
62
+ ...x,
63
+ connections: new Map(x.connections).set(connector.uid, {
64
+ accounts,
65
+ chainId: data.chainId,
66
+ connector: connector,
67
+ }),
68
+ current: connector.uid,
69
+ status: 'connected',
70
+ }))
71
+
72
+ return {
73
+ accounts,
74
+ chainId: data.chainId,
75
+ }
76
+ } catch (error) {
77
+ config.setState((x) => {
78
+ return {
79
+ ...x,
80
+ // Keep existing connector connected in case of error
81
+ status: x.current ? 'connected' : 'disconnected',
82
+ }
83
+ })
84
+ throw error
85
+ }
86
+ }
@@ -0,0 +1,68 @@
1
+ import {
2
+ type Config,
3
+ type Connection,
4
+ type Connector,
5
+ } from '../createConfig.js'
6
+ import {
7
+ ConnectorNotConnectedError,
8
+ ConnectorNotFoundError,
9
+ } from '../errors/config.js'
10
+
11
+ export type DisconnectParameters = {
12
+ connector?: Connector | undefined
13
+ }
14
+
15
+ export type DisconnectReturnType = void
16
+
17
+ export type DisconnectError = Error
18
+
19
+ /** https://alpha.wagmi.sh/core/api/actions/disconnect */
20
+ export async function disconnect(
21
+ config: Config,
22
+ parameters: DisconnectParameters = {},
23
+ ): Promise<DisconnectReturnType> {
24
+ let connector: Connector | undefined
25
+ if (parameters.connector) connector = parameters.connector
26
+ else {
27
+ const { connections, current } = config.state
28
+ const connection = connections.get(current!)
29
+ connector = connection?.connector
30
+ }
31
+
32
+ if (!connector) throw new ConnectorNotFoundError()
33
+ const connections = config.state.connections
34
+ if (!connections.has(connector.uid)) throw new ConnectorNotConnectedError()
35
+
36
+ await connector.disconnect()
37
+ connector.emitter.off('change', config._internal.change)
38
+ connector.emitter.off('disconnect', config._internal.disconnect)
39
+ connector.emitter.on('connect', config._internal.connect)
40
+
41
+ connections.delete(connector.uid)
42
+
43
+ config.setState((x) => {
44
+ if (connections.size === 0)
45
+ return {
46
+ ...x,
47
+ connections: new Map(),
48
+ current: undefined,
49
+ status: 'disconnected',
50
+ }
51
+
52
+ const nextConnection = connections.values().next().value as Connection
53
+ return {
54
+ ...x,
55
+ connections: new Map(connections),
56
+ current: nextConnection.connector.uid,
57
+ }
58
+ })
59
+
60
+ // Set recent connector if exists
61
+ {
62
+ const current = config.state.current
63
+ if (!current) return
64
+ const connector = config.state.connections.get(current)?.connector
65
+ if (!connector) return
66
+ await config.storage?.setItem('recentConnectorId', connector.id)
67
+ }
68
+ }
@@ -0,0 +1,76 @@
1
+ import {
2
+ type Chain,
3
+ type FeeValuesEIP1559,
4
+ type FeeValuesLegacy,
5
+ type FeeValuesType,
6
+ formatUnits,
7
+ } from 'viem'
8
+ import {
9
+ type EstimateFeesPerGasParameters as viem_EstimateFeesPerGasParameters,
10
+ type EstimateFeesPerGasReturnType as viem_EstimateFeesPerGasReturnType,
11
+ estimateFeesPerGas as viem_estimateFeesPerGas,
12
+ } from 'viem/actions'
13
+
14
+ import { type Config } from '../createConfig.js'
15
+ import type { ChainIdParameter } from '../types/properties.js'
16
+ import type { Unit } from '../types/unit.js'
17
+ import type { Evaluate } from '../types/utils.js'
18
+ import type { UnionEvaluate, UnionLooseOmit } from '../types/utils.js'
19
+ import { getUnit } from '../utils/getUnit.js'
20
+
21
+ export type EstimateFeesPerGasParameters<
22
+ type extends FeeValuesType = FeeValuesType,
23
+ config extends Config = Config,
24
+ > = UnionEvaluate<
25
+ UnionLooseOmit<
26
+ viem_EstimateFeesPerGasParameters<Chain, Chain, type>,
27
+ 'chain'
28
+ > &
29
+ ChainIdParameter<config> & {
30
+ formatUnits?: Unit | undefined
31
+ }
32
+ >
33
+
34
+ export type EstimateFeesPerGasReturnType<
35
+ type extends FeeValuesType = FeeValuesType,
36
+ > = Evaluate<
37
+ viem_EstimateFeesPerGasReturnType<type> & {
38
+ formatted: UnionEvaluate<
39
+ | (type extends 'legacy' ? FeeValuesLegacy<string> : never)
40
+ | (type extends 'eip1559' ? FeeValuesEIP1559<string> : never)
41
+ >
42
+ }
43
+ >
44
+
45
+ export type EstimateFeesPerGasError = Error
46
+
47
+ export async function estimateFeesPerGas<
48
+ config extends Config,
49
+ type extends FeeValuesType = 'eip1559',
50
+ >(
51
+ config: config,
52
+ parameters: EstimateFeesPerGasParameters<type, config> = {},
53
+ ): Promise<EstimateFeesPerGasReturnType<type>> {
54
+ const { chainId, formatUnits: units = 'gwei', ...rest } = parameters
55
+
56
+ const client = config.getClient({ chainId })
57
+
58
+ const { gasPrice, maxFeePerGas, maxPriorityFeePerGas } =
59
+ await viem_estimateFeesPerGas(client, rest)
60
+
61
+ const unit = getUnit(units)
62
+ const formatted = {
63
+ gasPrice: gasPrice ? formatUnits(gasPrice, unit) : undefined,
64
+ maxFeePerGas: maxFeePerGas ? formatUnits(maxFeePerGas, unit) : undefined,
65
+ maxPriorityFeePerGas: maxPriorityFeePerGas
66
+ ? formatUnits(maxPriorityFeePerGas, unit)
67
+ : undefined,
68
+ }
69
+
70
+ return {
71
+ formatted,
72
+ gasPrice,
73
+ maxFeePerGas,
74
+ maxPriorityFeePerGas,
75
+ } as EstimateFeesPerGasReturnType<type>
76
+ }
@@ -0,0 +1,62 @@
1
+ import type { Account, Address, Chain } from 'viem'
2
+ import {
3
+ type EstimateGasParameters as viem_EstimateGasParameters,
4
+ type EstimateGasReturnType as viem_EstimateGasReturnType,
5
+ estimateGas as viem_estimateGas,
6
+ } from 'viem/actions'
7
+
8
+ import { type Config } from '../createConfig.js'
9
+ import type { SelectChains } from '../types/chain.js'
10
+ import type {
11
+ ChainIdParameter,
12
+ ConnectorParameter,
13
+ } from '../types/properties.js'
14
+ import { type UnionEvaluate, type UnionLooseOmit } from '../types/utils.js'
15
+ import { getConnectorClient } from './getConnectorClient.js'
16
+
17
+ export type EstimateGasParameters<
18
+ config extends Config = Config,
19
+ chainId extends
20
+ | config['chains'][number]['id']
21
+ | undefined = config['chains'][number]['id'],
22
+ ///
23
+ chains extends readonly Chain[] = SelectChains<config, chainId>,
24
+ > = {
25
+ [key in keyof chains]: UnionEvaluate<
26
+ UnionLooseOmit<viem_EstimateGasParameters<chains[key], Account>, 'chain'> &
27
+ ChainIdParameter<config, chainId> &
28
+ ConnectorParameter
29
+ >
30
+ }[number]
31
+
32
+ export type EstimateGasReturnType = viem_EstimateGasReturnType
33
+
34
+ export type EstimateGasError = Error
35
+
36
+ /** https://alpha.wagmi.sh/core/api/actions/estimateGas */
37
+ export async function estimateGas<
38
+ config extends Config,
39
+ chainId extends config['chains'][number]['id'] | undefined = undefined,
40
+ >(
41
+ config: config,
42
+ parameters: EstimateGasParameters<config, chainId>,
43
+ ): Promise<EstimateGasReturnType> {
44
+ const { chainId, connector, ...rest } = parameters
45
+
46
+ let account: Address | Account
47
+ if (parameters.account) account = parameters.account
48
+ else {
49
+ const connectorClient = await getConnectorClient(config, {
50
+ account: parameters.account,
51
+ chainId,
52
+ connector,
53
+ })
54
+ account = connectorClient.account
55
+ }
56
+
57
+ const client = config.getClient({ chainId })
58
+ return viem_estimateGas(client, {
59
+ ...(rest as viem_EstimateGasParameters),
60
+ account,
61
+ })
62
+ }
@@ -0,0 +1,109 @@
1
+ import { type Address } from 'viem'
2
+
3
+ import { type Config, type Connector } from '../createConfig.js'
4
+
5
+ export type GetAccountReturnType =
6
+ | {
7
+ address: Address
8
+ addresses: readonly [Address, ...Address[]]
9
+ chainId: number
10
+ connector: Connector
11
+ isConnected: true
12
+ isConnecting: false
13
+ isDisconnected: false
14
+ isReconnecting: false
15
+ status: 'connected'
16
+ }
17
+ | {
18
+ address: Address | undefined
19
+ addresses: readonly Address[] | undefined
20
+ chainId: number | undefined
21
+ connector: Connector | undefined
22
+ isConnected: boolean
23
+ isConnecting: false
24
+ isDisconnected: false
25
+ isReconnecting: true
26
+ status: 'reconnecting'
27
+ }
28
+ | {
29
+ address: Address | undefined
30
+ addresses: readonly Address[] | undefined
31
+ chainId: number | undefined
32
+ connector: Connector | undefined
33
+ isConnected: false
34
+ isReconnecting: false
35
+ isConnecting: true
36
+ isDisconnected: false
37
+ status: 'connecting'
38
+ }
39
+ | {
40
+ address: undefined
41
+ addresses: undefined
42
+ chainId: undefined
43
+ connector: undefined
44
+ isConnected: false
45
+ isReconnecting: false
46
+ isConnecting: false
47
+ isDisconnected: true
48
+ status: 'disconnected'
49
+ }
50
+
51
+ /** https://alpha.wagmi.sh/core/api/actions/getAccount */
52
+ export function getAccount(config: Config): GetAccountReturnType {
53
+ const uid = config.state.current!
54
+ const connection = config.state.connections.get(uid)
55
+ const addresses = connection?.accounts
56
+ const address = addresses?.[0]
57
+ const status = config.state.status
58
+
59
+ switch (status) {
60
+ case 'connected':
61
+ return {
62
+ address: address!,
63
+ addresses: addresses!,
64
+ chainId: connection?.chainId!,
65
+ connector: connection?.connector!,
66
+ isConnected: true,
67
+ isConnecting: false,
68
+ isDisconnected: false,
69
+ isReconnecting: false,
70
+ status,
71
+ }
72
+ case 'reconnecting':
73
+ return {
74
+ address,
75
+ addresses,
76
+ chainId: connection?.chainId,
77
+ connector: connection?.connector,
78
+ isConnected: !!address,
79
+ isConnecting: false,
80
+ isDisconnected: false,
81
+ isReconnecting: true,
82
+ status,
83
+ }
84
+ case 'connecting':
85
+ return {
86
+ address,
87
+ addresses,
88
+ chainId: connection?.chainId,
89
+ connector: connection?.connector,
90
+ isConnected: false,
91
+ isConnecting: true,
92
+ isDisconnected: false,
93
+ isReconnecting: false,
94
+ status,
95
+ }
96
+ case 'disconnected':
97
+ return {
98
+ address: undefined,
99
+ addresses: undefined,
100
+ chainId: undefined,
101
+ connector: undefined,
102
+ isConnected: false,
103
+ isConnecting: false,
104
+ isDisconnected: true,
105
+ isReconnecting: false,
106
+ status,
107
+ }
108
+ }
109
+ }
@@ -0,0 +1,141 @@
1
+ import {
2
+ type Address,
3
+ ContractFunctionExecutionError,
4
+ type Hex,
5
+ formatUnits,
6
+ hexToString,
7
+ trim,
8
+ } from 'viem'
9
+ import {
10
+ type GetBalanceParameters as viem_GetBalanceParameters,
11
+ getBalance as viem_getBalance,
12
+ } from 'viem/actions'
13
+
14
+ import type { Config } from '../createConfig.js'
15
+ import type { ChainIdParameter } from '../types/properties.js'
16
+ import { type Unit } from '../types/unit.js'
17
+ import { type Evaluate } from '../types/utils.js'
18
+ import { getUnit } from '../utils/getUnit.js'
19
+ import { readContracts } from './readContracts.js'
20
+
21
+ export type GetBalanceParameters<config extends Config = Config> = Evaluate<
22
+ ChainIdParameter<config> &
23
+ viem_GetBalanceParameters & {
24
+ /** @deprecated */
25
+ token?: Address | undefined
26
+ unit?: Unit | undefined
27
+ }
28
+ >
29
+
30
+ export type GetBalanceReturnType = {
31
+ decimals: number
32
+ formatted: string
33
+ symbol: string
34
+ value: bigint
35
+ }
36
+
37
+ export type GetBalanceError = Error
38
+
39
+ /** https://alpha.wagmi.sh/core/api/actions/getBalance */
40
+ export async function getBalance<config extends Config>(
41
+ config: config,
42
+ parameters: GetBalanceParameters<config>,
43
+ ): Promise<GetBalanceReturnType> {
44
+ const {
45
+ address,
46
+ blockNumber,
47
+ blockTag,
48
+ chainId,
49
+ token: tokenAddress,
50
+ unit = 'ether',
51
+ } = parameters
52
+
53
+ if (tokenAddress) {
54
+ try {
55
+ return getTokenBalance(config, {
56
+ balanceAddress: address,
57
+ symbolType: 'string',
58
+ tokenAddress,
59
+ })
60
+ } catch (error) {
61
+ // In the chance that there is an error upon decoding the contract result,
62
+ // it could be likely that the contract data is represented as bytes32 instead
63
+ // of a string.
64
+ if (error instanceof ContractFunctionExecutionError) {
65
+ const balance = await getTokenBalance(config, {
66
+ balanceAddress: address,
67
+ symbolType: 'bytes32',
68
+ tokenAddress,
69
+ })
70
+ const symbol = hexToString(
71
+ trim(balance.symbol as Hex, { dir: 'right' }),
72
+ )
73
+ return { ...balance, symbol }
74
+ }
75
+ throw error
76
+ }
77
+ }
78
+
79
+ const client = config.getClient({ chainId })
80
+ const value = await viem_getBalance(
81
+ client,
82
+ blockNumber ? { address, blockNumber } : { address, blockTag },
83
+ )
84
+ const chain = config.chains.find((x) => x.id === chainId) ?? client.chain!
85
+ return {
86
+ decimals: chain.nativeCurrency.decimals,
87
+ formatted: formatUnits(value, getUnit(unit)),
88
+ symbol: chain.nativeCurrency.symbol,
89
+ value,
90
+ }
91
+ }
92
+
93
+ type GetTokenBalanceParameters = {
94
+ balanceAddress: Address
95
+ symbolType: 'bytes32' | 'string'
96
+ tokenAddress: Address
97
+ unit?: Unit | undefined
98
+ }
99
+
100
+ async function getTokenBalance(
101
+ config: Config,
102
+ parameters: GetTokenBalanceParameters,
103
+ ) {
104
+ const { balanceAddress, symbolType, tokenAddress, unit } = parameters
105
+ const contract = {
106
+ abi: [
107
+ {
108
+ type: 'function',
109
+ name: 'balanceOf',
110
+ stateMutability: 'view',
111
+ inputs: [{ type: 'address' }],
112
+ outputs: [{ type: 'uint256' }],
113
+ },
114
+ {
115
+ type: 'function',
116
+ name: 'decimals',
117
+ stateMutability: 'view',
118
+ inputs: [],
119
+ outputs: [{ type: 'uint8' }],
120
+ },
121
+ {
122
+ type: 'function',
123
+ name: 'symbol',
124
+ stateMutability: 'view',
125
+ inputs: [],
126
+ outputs: [{ type: symbolType }],
127
+ },
128
+ ],
129
+ address: tokenAddress,
130
+ } as const
131
+ const [value, decimals, symbol] = await readContracts(config, {
132
+ allowFailure: false,
133
+ contracts: [
134
+ { ...contract, functionName: 'balanceOf', args: [balanceAddress] },
135
+ { ...contract, functionName: 'decimals' },
136
+ { ...contract, functionName: 'symbol' },
137
+ ] as const,
138
+ })
139
+ const formatted = formatUnits(value ?? '0', getUnit(unit ?? decimals))
140
+ return { decimals, formatted, symbol, value }
141
+ }
@@ -0,0 +1,27 @@
1
+ import {
2
+ type GetBlockNumberParameters as viem_GetBlockNumberParameters,
3
+ type GetBlockNumberReturnType as viem_GetBlockNumberReturnType,
4
+ getBlockNumber as viem_getBlockNumber,
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 GetBlockNumberParameters<config extends Config = Config> = Evaluate<
12
+ viem_GetBlockNumberParameters & ChainIdParameter<config>
13
+ >
14
+
15
+ export type GetBlockNumberReturnType = viem_GetBlockNumberReturnType
16
+
17
+ export type GetBlockNumberError = Error
18
+
19
+ /** https://alpha.wagmi.sh/core/api/actions/getBlockNumber */
20
+ export function getBlockNumber<config extends Config>(
21
+ config: config,
22
+ parameters: GetBlockNumberParameters<config> = {},
23
+ ): Promise<GetBlockNumberReturnType> {
24
+ const { chainId } = parameters
25
+ const client = config.getClient({ chainId })
26
+ return viem_getBlockNumber(client, parameters)
27
+ }
@@ -0,0 +1,11 @@
1
+ import type { Config } from '../createConfig.js'
2
+
3
+ export type GetChainIdReturnType<config extends Config = Config> =
4
+ config['chains'][number]['id']
5
+
6
+ /** https://alpha.wagmi.sh/core/api/actions/getChainId */
7
+ export function getChainId<config extends Config>(
8
+ config: config,
9
+ ): GetChainIdReturnType<config> {
10
+ return config.state.chainId
11
+ }
@@ -0,0 +1,30 @@
1
+ import { type Client } 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 GetClientParameters<
8
+ config extends Config = Config,
9
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
10
+ > = ChainIdParameter<config, chainId>
11
+
12
+ export type GetClientReturnType<
13
+ config extends Config = Config,
14
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
15
+ > = Evaluate<
16
+ Client<
17
+ config['_internal']['transports'][chainId],
18
+ Extract<config['chains'][number], { id: chainId }>
19
+ >
20
+ >
21
+
22
+ export function getClient<
23
+ config extends Config,
24
+ chainId extends config['chains'][number]['id'],
25
+ >(
26
+ config: config,
27
+ parameters: GetClientParameters<config, chainId> = {},
28
+ ): GetClientReturnType<config, chainId> {
29
+ return config.getClient(parameters) as GetClientReturnType<config, chainId>
30
+ }
@@ -0,0 +1,16 @@
1
+ import type { Config, Connection } from '../createConfig.js'
2
+ import type { Evaluate } from '../types/utils.js'
3
+ import { deepEqual } from '../utils/deepEqual.js'
4
+
5
+ export type GetConnectionsReturnType = Evaluate<Connection>[]
6
+
7
+ let previousConnections: Connection[] = []
8
+
9
+ /** https://alpha.wagmi.sh/core/api/actions/getConnections */
10
+ export function getConnections(config: Config): GetConnectionsReturnType {
11
+ const connections = [...config.state.connections.values()]
12
+ if (config.state.status === 'reconnecting') return previousConnections
13
+ if (deepEqual(previousConnections, connections)) return previousConnections
14
+ previousConnections = connections
15
+ return connections
16
+ }