@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
@@ -1,2934 +0,0 @@
1
- import {
2
- InjectedConnector
3
- } from "./chunk-BVC4KGLQ.js";
4
- import {
5
- __privateAdd,
6
- __privateGet,
7
- __privateMethod,
8
- __privateSet
9
- } from "./chunk-MQXBDTVK.js";
10
-
11
- // src/utils/configureChains.ts
12
- import { createPublicClient, fallback, http, webSocket } from "viem";
13
- function configureChains(defaultChains, providers, {
14
- batch = { multicall: { wait: 32 } },
15
- pollingInterval = 4e3,
16
- rank,
17
- retryCount,
18
- retryDelay,
19
- stallTimeout
20
- } = {}) {
21
- if (!defaultChains.length)
22
- throw new Error("must have at least one chain");
23
- let chains = [];
24
- const httpUrls = {};
25
- const wsUrls = {};
26
- for (const chain of defaultChains) {
27
- let configExists = false;
28
- for (const provider of providers) {
29
- const apiConfig = provider(chain);
30
- if (!apiConfig)
31
- continue;
32
- configExists = true;
33
- if (!chains.some(({ id }) => id === chain.id)) {
34
- chains = [...chains, apiConfig.chain];
35
- }
36
- httpUrls[chain.id] = [
37
- ...httpUrls[chain.id] || [],
38
- ...apiConfig.rpcUrls.http
39
- ];
40
- if (apiConfig.rpcUrls.webSocket) {
41
- wsUrls[chain.id] = [
42
- ...wsUrls[chain.id] || [],
43
- ...apiConfig.rpcUrls.webSocket
44
- ];
45
- }
46
- }
47
- if (!configExists) {
48
- throw new Error(
49
- [
50
- `Could not find valid provider configuration for chain "${chain.name}".
51
- `,
52
- "You may need to add `jsonRpcProvider` to `configureChains` with the chain's RPC URLs.",
53
- "Read more: https://wagmi.sh/core/providers/jsonRpc"
54
- ].join("\n")
55
- );
56
- }
57
- }
58
- return {
59
- chains,
60
- publicClient: ({ chainId }) => {
61
- const activeChain = chains.find((x) => x.id === chainId) ?? defaultChains[0];
62
- const chainHttpUrls = httpUrls[activeChain.id];
63
- if (!chainHttpUrls || !chainHttpUrls[0])
64
- throw new Error(`No providers configured for chain "${activeChain.id}"`);
65
- const publicClient = createPublicClient({
66
- batch,
67
- chain: activeChain,
68
- transport: fallback(
69
- chainHttpUrls.map((url) => http(url, { timeout: stallTimeout })),
70
- { rank, retryCount, retryDelay }
71
- ),
72
- pollingInterval
73
- });
74
- return Object.assign(publicClient, {
75
- chains
76
- });
77
- },
78
- webSocketPublicClient: ({ chainId }) => {
79
- const activeChain = chains.find((x) => x.id === chainId) ?? defaultChains[0];
80
- const chainWsUrls = wsUrls[activeChain.id];
81
- if (!chainWsUrls || !chainWsUrls[0])
82
- return void 0;
83
- const publicClient = createPublicClient({
84
- batch,
85
- chain: activeChain,
86
- transport: fallback(
87
- chainWsUrls.map((url) => webSocket(url, { timeout: stallTimeout })),
88
- { rank, retryCount, retryDelay }
89
- ),
90
- pollingInterval
91
- });
92
- return Object.assign(publicClient, {
93
- chains
94
- });
95
- }
96
- };
97
- }
98
-
99
- // src/errors.ts
100
- import { ConnectorNotFoundError } from "@wagmi/connectors";
101
- var ChainMismatchError = class extends Error {
102
- constructor({
103
- activeChain,
104
- targetChain
105
- }) {
106
- super(
107
- `Chain mismatch: Expected "${targetChain}", received "${activeChain}".`
108
- );
109
- this.name = "ChainMismatchError";
110
- }
111
- };
112
- var ChainNotConfiguredError = class extends Error {
113
- constructor({
114
- chainId,
115
- connectorId
116
- }) {
117
- super(
118
- `Chain "${chainId}" not configured${connectorId ? ` for connector "${connectorId}"` : ""}.`
119
- );
120
- this.name = "ChainNotConfigured";
121
- }
122
- };
123
- var ConnectorAlreadyConnectedError = class extends Error {
124
- constructor() {
125
- super(...arguments);
126
- this.name = "ConnectorAlreadyConnectedError";
127
- this.message = "Connector already connected";
128
- }
129
- };
130
- var ConfigChainsNotFound = class extends Error {
131
- constructor() {
132
- super(...arguments);
133
- this.name = "ConfigChainsNotFound";
134
- this.message = "No chains were found on the wagmi config. Some functions that require a chain may not work.";
135
- }
136
- };
137
- var SwitchChainNotSupportedError = class extends Error {
138
- constructor({ connector }) {
139
- super(`"${connector.name}" does not support programmatic chain switching.`);
140
- this.name = "SwitchChainNotSupportedError";
141
- }
142
- };
143
-
144
- // src/utils/deepEqual.ts
145
- function deepEqual(a, b) {
146
- if (a === b)
147
- return true;
148
- if (a && b && typeof a === "object" && typeof b === "object") {
149
- if (a.constructor !== b.constructor)
150
- return false;
151
- let length;
152
- let i;
153
- if (Array.isArray(a) && Array.isArray(b)) {
154
- length = a.length;
155
- if (length != b.length)
156
- return false;
157
- for (i = length; i-- !== 0; )
158
- if (!deepEqual(a[i], b[i]))
159
- return false;
160
- return true;
161
- }
162
- if (a.valueOf !== Object.prototype.valueOf)
163
- return a.valueOf() === b.valueOf();
164
- if (a.toString !== Object.prototype.toString)
165
- return a.toString() === b.toString();
166
- const keys = Object.keys(a);
167
- length = keys.length;
168
- if (length !== Object.keys(b).length)
169
- return false;
170
- for (i = length; i-- !== 0; )
171
- if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
172
- return false;
173
- for (i = length; i-- !== 0; ) {
174
- const key = keys[i];
175
- if (key && !deepEqual(a[key], b[key]))
176
- return false;
177
- }
178
- return true;
179
- }
180
- return a !== a && b !== b;
181
- }
182
-
183
- // src/utils/deserialize.ts
184
- var findAndReplace = (cacheRef, {
185
- find,
186
- replace
187
- }) => {
188
- if (cacheRef && find(cacheRef)) {
189
- return replace(cacheRef);
190
- }
191
- if (typeof cacheRef !== "object") {
192
- return cacheRef;
193
- }
194
- if (Array.isArray(cacheRef)) {
195
- return cacheRef.map((item) => findAndReplace(item, { find, replace }));
196
- }
197
- if (cacheRef instanceof Object) {
198
- return Object.entries(cacheRef).reduce(
199
- (curr, [key, value]) => ({
200
- ...curr,
201
- [key]: findAndReplace(value, { find, replace })
202
- }),
203
- {}
204
- );
205
- }
206
- return cacheRef;
207
- };
208
- function deserialize(cachedString) {
209
- const cache = JSON.parse(cachedString);
210
- const deserializedCacheWithBigInts = findAndReplace(cache, {
211
- find: (data) => typeof data === "string" && data.startsWith("#bigint."),
212
- replace: (data) => BigInt(data.replace("#bigint.", ""))
213
- });
214
- return deserializedCacheWithBigInts;
215
- }
216
-
217
- // src/utils/getParameters.ts
218
- function getCallParameters(args) {
219
- return {
220
- accessList: args.accessList,
221
- account: args.account,
222
- blockNumber: args.blockNumber,
223
- blockTag: args.blockTag,
224
- data: args.data,
225
- gas: args.gas,
226
- gasPrice: args.gasPrice,
227
- maxFeePerGas: args.maxFeePerGas,
228
- maxPriorityFeePerGas: args.maxPriorityFeePerGas,
229
- nonce: args.nonce,
230
- to: args.to,
231
- value: args.value
232
- };
233
- }
234
- function getSendTransactionParameters(args) {
235
- return {
236
- accessList: args.accessList,
237
- account: args.account,
238
- data: args.data,
239
- gas: args.gas,
240
- gasPrice: args.gasPrice,
241
- maxFeePerGas: args.maxFeePerGas,
242
- maxPriorityFeePerGas: args.maxPriorityFeePerGas,
243
- nonce: args.nonce,
244
- to: args.to,
245
- value: args.value
246
- };
247
- }
248
-
249
- // src/utils/getUnit.ts
250
- import { weiUnits } from "viem";
251
- function getUnit(unit) {
252
- if (typeof unit === "number")
253
- return unit;
254
- if (unit === "wei")
255
- return 0;
256
- return Math.abs(weiUnits[unit]);
257
- }
258
-
259
- // src/utils/serialize.ts
260
- function getReferenceKey(keys, cutoff) {
261
- return keys.slice(0, cutoff).join(".") || ".";
262
- }
263
- function getCutoff(array, value) {
264
- const { length } = array;
265
- for (let index = 0; index < length; ++index) {
266
- if (array[index] === value) {
267
- return index + 1;
268
- }
269
- }
270
- return 0;
271
- }
272
- function createReplacer(replacer, circularReplacer) {
273
- const hasReplacer = typeof replacer === "function";
274
- const hasCircularReplacer = typeof circularReplacer === "function";
275
- const cache = [];
276
- const keys = [];
277
- return function replace(key, value) {
278
- if (typeof value === "object") {
279
- if (cache.length) {
280
- const thisCutoff = getCutoff(cache, this);
281
- if (thisCutoff === 0) {
282
- cache[cache.length] = this;
283
- } else {
284
- cache.splice(thisCutoff);
285
- keys.splice(thisCutoff);
286
- }
287
- keys[keys.length] = key;
288
- const valueCutoff = getCutoff(cache, value);
289
- if (valueCutoff !== 0) {
290
- return hasCircularReplacer ? circularReplacer.call(
291
- this,
292
- key,
293
- value,
294
- getReferenceKey(keys, valueCutoff)
295
- ) : `[ref=${getReferenceKey(keys, valueCutoff)}]`;
296
- }
297
- } else {
298
- cache[0] = value;
299
- keys[0] = key;
300
- }
301
- }
302
- return hasReplacer ? replacer.call(this, key, value) : value;
303
- };
304
- }
305
- function serialize(value, replacer, indent, circularReplacer) {
306
- return JSON.stringify(
307
- value,
308
- createReplacer((key, value_) => {
309
- const value2 = typeof value_ === "bigint" ? `#bigint.${value_.toString()}` : value_;
310
- return replacer?.(key, value2) || value2;
311
- }, circularReplacer),
312
- indent ?? void 0
313
- );
314
- }
315
-
316
- // src/config.ts
317
- import { persist, subscribeWithSelector } from "zustand/middleware";
318
- import { createStore } from "zustand/vanilla";
319
-
320
- // src/storage.ts
321
- var noopStorage = {
322
- getItem: (_key) => "",
323
- setItem: (_key, _value) => null,
324
- removeItem: (_key) => null
325
- };
326
- function createStorage({
327
- deserialize: deserialize2 = deserialize,
328
- key: prefix = "wagmi",
329
- serialize: serialize2 = serialize,
330
- storage
331
- }) {
332
- return {
333
- ...storage,
334
- getItem: (key, defaultState = null) => {
335
- const value = storage.getItem(`${prefix}.${key}`);
336
- try {
337
- return value ? deserialize2(value) : defaultState;
338
- } catch (error) {
339
- console.warn(error);
340
- return defaultState;
341
- }
342
- },
343
- setItem: (key, value) => {
344
- if (value === null) {
345
- storage.removeItem(`${prefix}.${key}`);
346
- } else {
347
- try {
348
- storage.setItem(`${prefix}.${key}`, serialize2(value));
349
- } catch (err) {
350
- console.error(err);
351
- }
352
- }
353
- },
354
- removeItem: (key) => storage.removeItem(`${prefix}.${key}`)
355
- };
356
- }
357
-
358
- // src/config.ts
359
- var storeKey = "store";
360
- var _isAutoConnecting, _lastUsedConnector, _addEffects, addEffects_fn;
361
- var Config = class {
362
- constructor({
363
- autoConnect = false,
364
- connectors = [new InjectedConnector()],
365
- publicClient,
366
- storage = createStorage({
367
- storage: typeof window !== "undefined" ? window.localStorage : noopStorage
368
- }),
369
- logger = {
370
- warn: console.warn
371
- },
372
- webSocketPublicClient
373
- }) {
374
- __privateAdd(this, _addEffects);
375
- this.publicClients = /* @__PURE__ */ new Map();
376
- this.webSocketPublicClients = /* @__PURE__ */ new Map();
377
- __privateAdd(this, _isAutoConnecting, void 0);
378
- __privateAdd(this, _lastUsedConnector, void 0);
379
- this.args = {
380
- autoConnect,
381
- connectors,
382
- logger,
383
- publicClient,
384
- storage,
385
- webSocketPublicClient
386
- };
387
- let status = "disconnected";
388
- let chainId;
389
- if (autoConnect) {
390
- try {
391
- const rawState = storage.getItem(storeKey);
392
- const data = rawState?.state?.data;
393
- status = data?.account ? "reconnecting" : "connecting";
394
- chainId = data?.chain?.id;
395
- } catch (_error) {
396
- }
397
- }
398
- const connectors_ = typeof connectors === "function" ? connectors() : connectors;
399
- connectors_.forEach((connector) => connector.setStorage(storage));
400
- this.store = createStore(
401
- subscribeWithSelector(
402
- persist(
403
- () => ({
404
- connectors: connectors_,
405
- publicClient: this.getPublicClient({ chainId }),
406
- status,
407
- webSocketPublicClient: this.getWebSocketPublicClient({ chainId })
408
- }),
409
- {
410
- name: storeKey,
411
- storage,
412
- partialize: (state) => ({
413
- ...autoConnect && {
414
- data: {
415
- account: state?.data?.account,
416
- chain: state?.data?.chain
417
- }
418
- },
419
- chains: state?.chains
420
- }),
421
- version: 2
422
- }
423
- )
424
- )
425
- );
426
- this.storage = storage;
427
- __privateSet(this, _lastUsedConnector, storage?.getItem("wallet"));
428
- __privateMethod(this, _addEffects, addEffects_fn).call(this);
429
- if (autoConnect && typeof window !== "undefined")
430
- setTimeout(async () => await this.autoConnect(), 0);
431
- }
432
- get chains() {
433
- return this.store.getState().chains;
434
- }
435
- get connectors() {
436
- return this.store.getState().connectors;
437
- }
438
- get connector() {
439
- return this.store.getState().connector;
440
- }
441
- get data() {
442
- return this.store.getState().data;
443
- }
444
- get error() {
445
- return this.store.getState().error;
446
- }
447
- get lastUsedChainId() {
448
- return this.data?.chain?.id;
449
- }
450
- get publicClient() {
451
- return this.store.getState().publicClient;
452
- }
453
- get status() {
454
- return this.store.getState().status;
455
- }
456
- get subscribe() {
457
- return this.store.subscribe;
458
- }
459
- get webSocketPublicClient() {
460
- return this.store.getState().webSocketPublicClient;
461
- }
462
- setState(updater) {
463
- const newState = typeof updater === "function" ? updater(this.store.getState()) : updater;
464
- this.store.setState(newState, true);
465
- }
466
- clearState() {
467
- this.setState((x) => ({
468
- ...x,
469
- chains: void 0,
470
- connector: void 0,
471
- data: void 0,
472
- error: void 0,
473
- status: "disconnected"
474
- }));
475
- }
476
- async destroy() {
477
- if (this.connector)
478
- await this.connector.disconnect?.();
479
- __privateSet(this, _isAutoConnecting, false);
480
- this.clearState();
481
- this.store.destroy();
482
- }
483
- async autoConnect() {
484
- if (__privateGet(this, _isAutoConnecting))
485
- return;
486
- __privateSet(this, _isAutoConnecting, true);
487
- this.setState((x) => ({
488
- ...x,
489
- status: x.data?.account ? "reconnecting" : "connecting"
490
- }));
491
- const sorted = __privateGet(this, _lastUsedConnector) ? [...this.connectors].sort(
492
- (x) => x.id === __privateGet(this, _lastUsedConnector) ? -1 : 1
493
- ) : this.connectors;
494
- let connected = false;
495
- for (const connector of sorted) {
496
- if (!connector.ready || !connector.isAuthorized)
497
- continue;
498
- const isAuthorized = await connector.isAuthorized();
499
- if (!isAuthorized)
500
- continue;
501
- const data = await connector.connect();
502
- this.setState((x) => ({
503
- ...x,
504
- connector,
505
- chains: connector?.chains,
506
- data,
507
- status: "connected"
508
- }));
509
- connected = true;
510
- break;
511
- }
512
- if (!connected)
513
- this.setState((x) => ({
514
- ...x,
515
- data: void 0,
516
- status: "disconnected"
517
- }));
518
- __privateSet(this, _isAutoConnecting, false);
519
- return this.data;
520
- }
521
- setConnectors(connectors) {
522
- this.args = {
523
- ...this.args,
524
- connectors
525
- };
526
- const connectors_ = typeof connectors === "function" ? connectors() : connectors;
527
- connectors_.forEach((connector) => connector.setStorage(this.args.storage));
528
- this.setState((x) => ({
529
- ...x,
530
- connectors: connectors_
531
- }));
532
- }
533
- getPublicClient({ chainId } = {}) {
534
- let publicClient_ = this.publicClients.get(-1);
535
- if (publicClient_ && publicClient_?.chain.id === chainId)
536
- return publicClient_;
537
- publicClient_ = this.publicClients.get(chainId ?? -1);
538
- if (publicClient_)
539
- return publicClient_;
540
- const { publicClient } = this.args;
541
- publicClient_ = typeof publicClient === "function" ? publicClient({ chainId }) : publicClient;
542
- this.publicClients.set(chainId ?? -1, publicClient_);
543
- return publicClient_;
544
- }
545
- setPublicClient(publicClient) {
546
- const chainId = this.data?.chain?.id;
547
- this.args = {
548
- ...this.args,
549
- publicClient
550
- };
551
- this.publicClients.clear();
552
- this.setState((x) => ({
553
- ...x,
554
- publicClient: this.getPublicClient({ chainId })
555
- }));
556
- }
557
- getWebSocketPublicClient({ chainId } = {}) {
558
- let webSocketPublicClient_ = this.webSocketPublicClients.get(-1);
559
- if (webSocketPublicClient_ && webSocketPublicClient_?.chain.id === chainId)
560
- return webSocketPublicClient_;
561
- webSocketPublicClient_ = this.webSocketPublicClients.get(chainId ?? -1);
562
- if (webSocketPublicClient_)
563
- return webSocketPublicClient_;
564
- const { webSocketPublicClient } = this.args;
565
- webSocketPublicClient_ = typeof webSocketPublicClient === "function" ? webSocketPublicClient({ chainId }) : webSocketPublicClient;
566
- if (webSocketPublicClient_)
567
- this.webSocketPublicClients.set(chainId ?? -1, webSocketPublicClient_);
568
- return webSocketPublicClient_;
569
- }
570
- setWebSocketPublicClient(webSocketPublicClient) {
571
- const chainId = this.data?.chain?.id;
572
- this.args = {
573
- ...this.args,
574
- webSocketPublicClient
575
- };
576
- this.webSocketPublicClients.clear();
577
- this.setState((x) => ({
578
- ...x,
579
- webSocketPublicClient: this.getWebSocketPublicClient({
580
- chainId
581
- })
582
- }));
583
- }
584
- setLastUsedConnector(lastUsedConnector = null) {
585
- this.storage?.setItem("wallet", lastUsedConnector);
586
- }
587
- };
588
- _isAutoConnecting = new WeakMap();
589
- _lastUsedConnector = new WeakMap();
590
- _addEffects = new WeakSet();
591
- addEffects_fn = function() {
592
- const onChange = (data) => {
593
- this.setState((x) => ({
594
- ...x,
595
- data: { ...x.data, ...data }
596
- }));
597
- };
598
- const onDisconnect = () => {
599
- this.clearState();
600
- };
601
- const onError = (error) => {
602
- this.setState((x) => ({ ...x, error }));
603
- };
604
- this.store.subscribe(
605
- ({ connector }) => connector,
606
- (connector, prevConnector) => {
607
- prevConnector?.off?.("change", onChange);
608
- prevConnector?.off?.("disconnect", onDisconnect);
609
- prevConnector?.off?.("error", onError);
610
- if (!connector)
611
- return;
612
- connector.on?.("change", onChange);
613
- connector.on?.("disconnect", onDisconnect);
614
- connector.on?.("error", onError);
615
- }
616
- );
617
- const { publicClient, webSocketPublicClient } = this.args;
618
- const subscribePublicClient = typeof publicClient === "function";
619
- const subscribeWebSocketPublicClient = typeof webSocketPublicClient === "function";
620
- if (subscribePublicClient || subscribeWebSocketPublicClient)
621
- this.store.subscribe(
622
- ({ data }) => data?.chain?.id,
623
- (chainId) => {
624
- this.setState((x) => ({
625
- ...x,
626
- publicClient: this.getPublicClient({ chainId }),
627
- webSocketPublicClient: this.getWebSocketPublicClient({
628
- chainId
629
- })
630
- }));
631
- }
632
- );
633
- };
634
- var config;
635
- function createConfig(args) {
636
- const config_ = new Config(args);
637
- config = config_;
638
- return config_;
639
- }
640
- function getConfig() {
641
- if (!config) {
642
- throw new Error(
643
- "No wagmi config found. Ensure you have set up a config: https://wagmi.sh/react/config"
644
- );
645
- }
646
- return config;
647
- }
648
-
649
- // src/actions/accounts/connect.ts
650
- async function connect({ chainId, connector }) {
651
- const config2 = getConfig();
652
- const activeConnector = config2.connector;
653
- if (activeConnector && connector.id === activeConnector.id)
654
- throw new ConnectorAlreadyConnectedError();
655
- try {
656
- config2.setState((x) => ({ ...x, status: "connecting" }));
657
- const data = await connector.connect({ chainId });
658
- config2.setLastUsedConnector(connector.id);
659
- config2.setState((x) => ({
660
- ...x,
661
- connector,
662
- chains: connector?.chains,
663
- data,
664
- status: "connected"
665
- }));
666
- config2.storage.setItem("connected", true);
667
- return { ...data, connector };
668
- } catch (err) {
669
- config2.setState((x) => {
670
- return {
671
- ...x,
672
- status: x.connector ? "connected" : "disconnected"
673
- };
674
- });
675
- throw err;
676
- }
677
- }
678
-
679
- // src/actions/accounts/disconnect.ts
680
- async function disconnect() {
681
- const config2 = getConfig();
682
- if (config2.connector)
683
- await config2.connector.disconnect();
684
- config2.clearState();
685
- config2.storage.removeItem("connected");
686
- }
687
-
688
- // src/actions/accounts/fetchBalance.ts
689
- import {
690
- ContractFunctionExecutionError as ContractFunctionExecutionError3,
691
- formatUnits as formatUnits2,
692
- hexToString as hexToString2,
693
- trim as trim2
694
- } from "viem";
695
-
696
- // src/constants/abis.ts
697
- var erc20ABI = [
698
- {
699
- type: "event",
700
- name: "Approval",
701
- inputs: [
702
- {
703
- indexed: true,
704
- name: "owner",
705
- type: "address"
706
- },
707
- {
708
- indexed: true,
709
- name: "spender",
710
- type: "address"
711
- },
712
- {
713
- indexed: false,
714
- name: "value",
715
- type: "uint256"
716
- }
717
- ]
718
- },
719
- {
720
- type: "event",
721
- name: "Transfer",
722
- inputs: [
723
- {
724
- indexed: true,
725
- name: "from",
726
- type: "address"
727
- },
728
- {
729
- indexed: true,
730
- name: "to",
731
- type: "address"
732
- },
733
- {
734
- indexed: false,
735
- name: "value",
736
- type: "uint256"
737
- }
738
- ]
739
- },
740
- {
741
- type: "function",
742
- name: "allowance",
743
- stateMutability: "view",
744
- inputs: [
745
- {
746
- name: "owner",
747
- type: "address"
748
- },
749
- {
750
- name: "spender",
751
- type: "address"
752
- }
753
- ],
754
- outputs: [
755
- {
756
- name: "",
757
- type: "uint256"
758
- }
759
- ]
760
- },
761
- {
762
- type: "function",
763
- name: "approve",
764
- stateMutability: "nonpayable",
765
- inputs: [
766
- {
767
- name: "spender",
768
- type: "address"
769
- },
770
- {
771
- name: "amount",
772
- type: "uint256"
773
- }
774
- ],
775
- outputs: [
776
- {
777
- name: "",
778
- type: "bool"
779
- }
780
- ]
781
- },
782
- {
783
- type: "function",
784
- name: "balanceOf",
785
- stateMutability: "view",
786
- inputs: [
787
- {
788
- name: "account",
789
- type: "address"
790
- }
791
- ],
792
- outputs: [
793
- {
794
- name: "",
795
- type: "uint256"
796
- }
797
- ]
798
- },
799
- {
800
- type: "function",
801
- name: "decimals",
802
- stateMutability: "view",
803
- inputs: [],
804
- outputs: [
805
- {
806
- name: "",
807
- type: "uint8"
808
- }
809
- ]
810
- },
811
- {
812
- type: "function",
813
- name: "name",
814
- stateMutability: "view",
815
- inputs: [],
816
- outputs: [
817
- {
818
- name: "",
819
- type: "string"
820
- }
821
- ]
822
- },
823
- {
824
- type: "function",
825
- name: "symbol",
826
- stateMutability: "view",
827
- inputs: [],
828
- outputs: [
829
- {
830
- name: "",
831
- type: "string"
832
- }
833
- ]
834
- },
835
- {
836
- type: "function",
837
- name: "totalSupply",
838
- stateMutability: "view",
839
- inputs: [],
840
- outputs: [
841
- {
842
- name: "",
843
- type: "uint256"
844
- }
845
- ]
846
- },
847
- {
848
- type: "function",
849
- name: "transfer",
850
- stateMutability: "nonpayable",
851
- inputs: [
852
- {
853
- name: "recipient",
854
- type: "address"
855
- },
856
- {
857
- name: "amount",
858
- type: "uint256"
859
- }
860
- ],
861
- outputs: [
862
- {
863
- name: "",
864
- type: "bool"
865
- }
866
- ]
867
- },
868
- {
869
- type: "function",
870
- name: "transferFrom",
871
- stateMutability: "nonpayable",
872
- inputs: [
873
- {
874
- name: "sender",
875
- type: "address"
876
- },
877
- {
878
- name: "recipient",
879
- type: "address"
880
- },
881
- {
882
- name: "amount",
883
- type: "uint256"
884
- }
885
- ],
886
- outputs: [
887
- {
888
- name: "",
889
- type: "bool"
890
- }
891
- ]
892
- }
893
- ];
894
- var erc20ABI_bytes32 = [
895
- {
896
- type: "event",
897
- name: "Approval",
898
- inputs: [
899
- {
900
- indexed: true,
901
- name: "owner",
902
- type: "address"
903
- },
904
- {
905
- indexed: true,
906
- name: "spender",
907
- type: "address"
908
- },
909
- {
910
- indexed: false,
911
- name: "value",
912
- type: "uint256"
913
- }
914
- ]
915
- },
916
- {
917
- type: "event",
918
- name: "Transfer",
919
- inputs: [
920
- {
921
- indexed: true,
922
- name: "from",
923
- type: "address"
924
- },
925
- {
926
- indexed: true,
927
- name: "to",
928
- type: "address"
929
- },
930
- {
931
- indexed: false,
932
- name: "value",
933
- type: "uint256"
934
- }
935
- ]
936
- },
937
- {
938
- type: "function",
939
- name: "allowance",
940
- stateMutability: "view",
941
- inputs: [
942
- {
943
- name: "owner",
944
- type: "address"
945
- },
946
- {
947
- name: "spender",
948
- type: "address"
949
- }
950
- ],
951
- outputs: [
952
- {
953
- name: "",
954
- type: "uint256"
955
- }
956
- ]
957
- },
958
- {
959
- type: "function",
960
- name: "approve",
961
- stateMutability: "nonpayable",
962
- inputs: [
963
- {
964
- name: "spender",
965
- type: "address"
966
- },
967
- {
968
- name: "amount",
969
- type: "uint256"
970
- }
971
- ],
972
- outputs: [
973
- {
974
- name: "",
975
- type: "bool"
976
- }
977
- ]
978
- },
979
- {
980
- type: "function",
981
- name: "balanceOf",
982
- stateMutability: "view",
983
- inputs: [
984
- {
985
- name: "account",
986
- type: "address"
987
- }
988
- ],
989
- outputs: [
990
- {
991
- name: "",
992
- type: "uint256"
993
- }
994
- ]
995
- },
996
- {
997
- type: "function",
998
- name: "decimals",
999
- stateMutability: "view",
1000
- inputs: [],
1001
- outputs: [
1002
- {
1003
- name: "",
1004
- type: "uint8"
1005
- }
1006
- ]
1007
- },
1008
- {
1009
- type: "function",
1010
- name: "name",
1011
- stateMutability: "view",
1012
- inputs: [],
1013
- outputs: [
1014
- {
1015
- name: "",
1016
- type: "bytes32"
1017
- }
1018
- ]
1019
- },
1020
- {
1021
- type: "function",
1022
- name: "symbol",
1023
- stateMutability: "view",
1024
- inputs: [],
1025
- outputs: [
1026
- {
1027
- name: "",
1028
- type: "bytes32"
1029
- }
1030
- ]
1031
- },
1032
- {
1033
- type: "function",
1034
- name: "totalSupply",
1035
- stateMutability: "view",
1036
- inputs: [],
1037
- outputs: [
1038
- {
1039
- name: "",
1040
- type: "uint256"
1041
- }
1042
- ]
1043
- },
1044
- {
1045
- type: "function",
1046
- name: "transfer",
1047
- stateMutability: "nonpayable",
1048
- inputs: [
1049
- {
1050
- name: "recipient",
1051
- type: "address"
1052
- },
1053
- {
1054
- name: "amount",
1055
- type: "uint256"
1056
- }
1057
- ],
1058
- outputs: [
1059
- {
1060
- name: "",
1061
- type: "bool"
1062
- }
1063
- ]
1064
- },
1065
- {
1066
- type: "function",
1067
- name: "transferFrom",
1068
- stateMutability: "nonpayable",
1069
- inputs: [
1070
- {
1071
- name: "sender",
1072
- type: "address"
1073
- },
1074
- {
1075
- name: "recipient",
1076
- type: "address"
1077
- },
1078
- {
1079
- name: "amount",
1080
- type: "uint256"
1081
- }
1082
- ],
1083
- outputs: [
1084
- {
1085
- name: "",
1086
- type: "bool"
1087
- }
1088
- ]
1089
- }
1090
- ];
1091
- var erc721ABI = [
1092
- {
1093
- type: "event",
1094
- name: "Approval",
1095
- inputs: [
1096
- {
1097
- indexed: true,
1098
- name: "owner",
1099
- type: "address"
1100
- },
1101
- {
1102
- indexed: true,
1103
- name: "spender",
1104
- type: "address"
1105
- },
1106
- {
1107
- indexed: true,
1108
- name: "tokenId",
1109
- type: "uint256"
1110
- }
1111
- ]
1112
- },
1113
- {
1114
- type: "event",
1115
- name: "ApprovalForAll",
1116
- inputs: [
1117
- {
1118
- indexed: true,
1119
- name: "owner",
1120
- type: "address"
1121
- },
1122
- {
1123
- indexed: true,
1124
- name: "operator",
1125
- type: "address"
1126
- },
1127
- {
1128
- indexed: false,
1129
- name: "approved",
1130
- type: "bool"
1131
- }
1132
- ]
1133
- },
1134
- {
1135
- type: "event",
1136
- name: "Transfer",
1137
- inputs: [
1138
- {
1139
- indexed: true,
1140
- name: "from",
1141
- type: "address"
1142
- },
1143
- {
1144
- indexed: true,
1145
- name: "to",
1146
- type: "address"
1147
- },
1148
- {
1149
- indexed: true,
1150
- name: "tokenId",
1151
- type: "uint256"
1152
- }
1153
- ]
1154
- },
1155
- {
1156
- type: "function",
1157
- name: "approve",
1158
- stateMutability: "payable",
1159
- inputs: [
1160
- {
1161
- name: "spender",
1162
- type: "address"
1163
- },
1164
- {
1165
- name: "tokenId",
1166
- type: "uint256"
1167
- }
1168
- ],
1169
- outputs: []
1170
- },
1171
- {
1172
- type: "function",
1173
- name: "balanceOf",
1174
- stateMutability: "view",
1175
- inputs: [
1176
- {
1177
- name: "account",
1178
- type: "address"
1179
- }
1180
- ],
1181
- outputs: [
1182
- {
1183
- name: "",
1184
- type: "uint256"
1185
- }
1186
- ]
1187
- },
1188
- {
1189
- type: "function",
1190
- name: "getApproved",
1191
- stateMutability: "view",
1192
- inputs: [
1193
- {
1194
- name: "tokenId",
1195
- type: "uint256"
1196
- }
1197
- ],
1198
- outputs: [
1199
- {
1200
- name: "",
1201
- type: "address"
1202
- }
1203
- ]
1204
- },
1205
- {
1206
- type: "function",
1207
- name: "isApprovedForAll",
1208
- stateMutability: "view",
1209
- inputs: [
1210
- {
1211
- name: "owner",
1212
- type: "address"
1213
- },
1214
- {
1215
- name: "operator",
1216
- type: "address"
1217
- }
1218
- ],
1219
- outputs: [
1220
- {
1221
- name: "",
1222
- type: "bool"
1223
- }
1224
- ]
1225
- },
1226
- {
1227
- type: "function",
1228
- name: "name",
1229
- stateMutability: "view",
1230
- inputs: [],
1231
- outputs: [
1232
- {
1233
- name: "",
1234
- type: "string"
1235
- }
1236
- ]
1237
- },
1238
- {
1239
- type: "function",
1240
- name: "ownerOf",
1241
- stateMutability: "view",
1242
- inputs: [
1243
- {
1244
- name: "tokenId",
1245
- type: "uint256"
1246
- }
1247
- ],
1248
- outputs: [
1249
- {
1250
- name: "owner",
1251
- type: "address"
1252
- }
1253
- ]
1254
- },
1255
- {
1256
- type: "function",
1257
- name: "safeTransferFrom",
1258
- stateMutability: "payable",
1259
- inputs: [
1260
- {
1261
- name: "from",
1262
- type: "address"
1263
- },
1264
- {
1265
- name: "to",
1266
- type: "address"
1267
- },
1268
- {
1269
- name: "tokenId",
1270
- type: "uint256"
1271
- }
1272
- ],
1273
- outputs: []
1274
- },
1275
- {
1276
- type: "function",
1277
- name: "safeTransferFrom",
1278
- stateMutability: "nonpayable",
1279
- inputs: [
1280
- {
1281
- name: "from",
1282
- type: "address"
1283
- },
1284
- {
1285
- name: "to",
1286
- type: "address"
1287
- },
1288
- {
1289
- name: "id",
1290
- type: "uint256"
1291
- },
1292
- {
1293
- name: "data",
1294
- type: "bytes"
1295
- }
1296
- ],
1297
- outputs: []
1298
- },
1299
- {
1300
- type: "function",
1301
- name: "setApprovalForAll",
1302
- stateMutability: "nonpayable",
1303
- inputs: [
1304
- {
1305
- name: "operator",
1306
- type: "address"
1307
- },
1308
- {
1309
- name: "approved",
1310
- type: "bool"
1311
- }
1312
- ],
1313
- outputs: []
1314
- },
1315
- {
1316
- type: "function",
1317
- name: "symbol",
1318
- stateMutability: "view",
1319
- inputs: [],
1320
- outputs: [
1321
- {
1322
- name: "",
1323
- type: "string"
1324
- }
1325
- ]
1326
- },
1327
- {
1328
- type: "function",
1329
- name: "tokenByIndex",
1330
- stateMutability: "view",
1331
- inputs: [
1332
- {
1333
- name: "index",
1334
- type: "uint256"
1335
- }
1336
- ],
1337
- outputs: [
1338
- {
1339
- name: "",
1340
- type: "uint256"
1341
- }
1342
- ]
1343
- },
1344
- {
1345
- type: "function",
1346
- name: "tokenByIndex",
1347
- stateMutability: "view",
1348
- inputs: [
1349
- {
1350
- name: "owner",
1351
- type: "address"
1352
- },
1353
- {
1354
- name: "index",
1355
- type: "uint256"
1356
- }
1357
- ],
1358
- outputs: [
1359
- {
1360
- name: "tokenId",
1361
- type: "uint256"
1362
- }
1363
- ]
1364
- },
1365
- {
1366
- type: "function",
1367
- name: "tokenURI",
1368
- stateMutability: "view",
1369
- inputs: [
1370
- {
1371
- name: "tokenId",
1372
- type: "uint256"
1373
- }
1374
- ],
1375
- outputs: [
1376
- {
1377
- name: "",
1378
- type: "string"
1379
- }
1380
- ]
1381
- },
1382
- {
1383
- type: "function",
1384
- name: "totalSupply",
1385
- stateMutability: "view",
1386
- inputs: [],
1387
- outputs: [
1388
- {
1389
- name: "",
1390
- type: "uint256"
1391
- }
1392
- ]
1393
- },
1394
- {
1395
- type: "function",
1396
- name: "transferFrom",
1397
- stateMutability: "payable",
1398
- inputs: [
1399
- {
1400
- name: "sender",
1401
- type: "address"
1402
- },
1403
- {
1404
- name: "recipient",
1405
- type: "address"
1406
- },
1407
- {
1408
- name: "tokeId",
1409
- type: "uint256"
1410
- }
1411
- ],
1412
- outputs: []
1413
- }
1414
- ];
1415
- var erc4626ABI = [
1416
- {
1417
- anonymous: false,
1418
- inputs: [
1419
- {
1420
- indexed: true,
1421
- name: "owner",
1422
- type: "address"
1423
- },
1424
- {
1425
- indexed: true,
1426
- name: "spender",
1427
- type: "address"
1428
- },
1429
- {
1430
- indexed: false,
1431
- name: "value",
1432
- type: "uint256"
1433
- }
1434
- ],
1435
- name: "Approval",
1436
- type: "event"
1437
- },
1438
- {
1439
- anonymous: false,
1440
- inputs: [
1441
- {
1442
- indexed: true,
1443
- name: "sender",
1444
- type: "address"
1445
- },
1446
- {
1447
- indexed: true,
1448
- name: "receiver",
1449
- type: "address"
1450
- },
1451
- {
1452
- indexed: false,
1453
- name: "assets",
1454
- type: "uint256"
1455
- },
1456
- {
1457
- indexed: false,
1458
- name: "shares",
1459
- type: "uint256"
1460
- }
1461
- ],
1462
- name: "Deposit",
1463
- type: "event"
1464
- },
1465
- {
1466
- anonymous: false,
1467
- inputs: [
1468
- {
1469
- indexed: true,
1470
- name: "from",
1471
- type: "address"
1472
- },
1473
- {
1474
- indexed: true,
1475
- name: "to",
1476
- type: "address"
1477
- },
1478
- {
1479
- indexed: false,
1480
- name: "value",
1481
- type: "uint256"
1482
- }
1483
- ],
1484
- name: "Transfer",
1485
- type: "event"
1486
- },
1487
- {
1488
- anonymous: false,
1489
- inputs: [
1490
- {
1491
- indexed: true,
1492
- name: "sender",
1493
- type: "address"
1494
- },
1495
- {
1496
- indexed: true,
1497
- name: "receiver",
1498
- type: "address"
1499
- },
1500
- {
1501
- indexed: true,
1502
- name: "owner",
1503
- type: "address"
1504
- },
1505
- {
1506
- indexed: false,
1507
- name: "assets",
1508
- type: "uint256"
1509
- },
1510
- {
1511
- indexed: false,
1512
- name: "shares",
1513
- type: "uint256"
1514
- }
1515
- ],
1516
- name: "Withdraw",
1517
- type: "event"
1518
- },
1519
- {
1520
- inputs: [
1521
- {
1522
- name: "owner",
1523
- type: "address"
1524
- },
1525
- {
1526
- name: "spender",
1527
- type: "address"
1528
- }
1529
- ],
1530
- name: "allowance",
1531
- outputs: [
1532
- {
1533
- name: "",
1534
- type: "uint256"
1535
- }
1536
- ],
1537
- stateMutability: "view",
1538
- type: "function"
1539
- },
1540
- {
1541
- inputs: [
1542
- {
1543
- name: "spender",
1544
- type: "address"
1545
- },
1546
- {
1547
- name: "amount",
1548
- type: "uint256"
1549
- }
1550
- ],
1551
- name: "approve",
1552
- outputs: [
1553
- {
1554
- name: "",
1555
- type: "bool"
1556
- }
1557
- ],
1558
- stateMutability: "nonpayable",
1559
- type: "function"
1560
- },
1561
- {
1562
- inputs: [],
1563
- name: "asset",
1564
- outputs: [
1565
- {
1566
- name: "assetTokenAddress",
1567
- type: "address"
1568
- }
1569
- ],
1570
- stateMutability: "view",
1571
- type: "function"
1572
- },
1573
- {
1574
- inputs: [
1575
- {
1576
- name: "account",
1577
- type: "address"
1578
- }
1579
- ],
1580
- name: "balanceOf",
1581
- outputs: [
1582
- {
1583
- name: "",
1584
- type: "uint256"
1585
- }
1586
- ],
1587
- stateMutability: "view",
1588
- type: "function"
1589
- },
1590
- {
1591
- inputs: [
1592
- {
1593
- name: "shares",
1594
- type: "uint256"
1595
- }
1596
- ],
1597
- name: "convertToAssets",
1598
- outputs: [
1599
- {
1600
- name: "assets",
1601
- type: "uint256"
1602
- }
1603
- ],
1604
- stateMutability: "view",
1605
- type: "function"
1606
- },
1607
- {
1608
- inputs: [
1609
- {
1610
- name: "assets",
1611
- type: "uint256"
1612
- }
1613
- ],
1614
- name: "convertToShares",
1615
- outputs: [
1616
- {
1617
- name: "shares",
1618
- type: "uint256"
1619
- }
1620
- ],
1621
- stateMutability: "view",
1622
- type: "function"
1623
- },
1624
- {
1625
- inputs: [
1626
- {
1627
- name: "assets",
1628
- type: "uint256"
1629
- },
1630
- {
1631
- name: "receiver",
1632
- type: "address"
1633
- }
1634
- ],
1635
- name: "deposit",
1636
- outputs: [
1637
- {
1638
- name: "shares",
1639
- type: "uint256"
1640
- }
1641
- ],
1642
- stateMutability: "nonpayable",
1643
- type: "function"
1644
- },
1645
- {
1646
- inputs: [
1647
- {
1648
- name: "caller",
1649
- type: "address"
1650
- }
1651
- ],
1652
- name: "maxDeposit",
1653
- outputs: [
1654
- {
1655
- name: "maxAssets",
1656
- type: "uint256"
1657
- }
1658
- ],
1659
- stateMutability: "view",
1660
- type: "function"
1661
- },
1662
- {
1663
- inputs: [
1664
- {
1665
- name: "caller",
1666
- type: "address"
1667
- }
1668
- ],
1669
- name: "maxMint",
1670
- outputs: [
1671
- {
1672
- name: "maxShares",
1673
- type: "uint256"
1674
- }
1675
- ],
1676
- stateMutability: "view",
1677
- type: "function"
1678
- },
1679
- {
1680
- inputs: [
1681
- {
1682
- name: "owner",
1683
- type: "address"
1684
- }
1685
- ],
1686
- name: "maxRedeem",
1687
- outputs: [
1688
- {
1689
- name: "maxShares",
1690
- type: "uint256"
1691
- }
1692
- ],
1693
- stateMutability: "view",
1694
- type: "function"
1695
- },
1696
- {
1697
- inputs: [
1698
- {
1699
- name: "owner",
1700
- type: "address"
1701
- }
1702
- ],
1703
- name: "maxWithdraw",
1704
- outputs: [
1705
- {
1706
- name: "maxAssets",
1707
- type: "uint256"
1708
- }
1709
- ],
1710
- stateMutability: "view",
1711
- type: "function"
1712
- },
1713
- {
1714
- inputs: [
1715
- {
1716
- name: "shares",
1717
- type: "uint256"
1718
- },
1719
- {
1720
- name: "receiver",
1721
- type: "address"
1722
- }
1723
- ],
1724
- name: "mint",
1725
- outputs: [
1726
- {
1727
- name: "assets",
1728
- type: "uint256"
1729
- }
1730
- ],
1731
- stateMutability: "nonpayable",
1732
- type: "function"
1733
- },
1734
- {
1735
- inputs: [
1736
- {
1737
- name: "assets",
1738
- type: "uint256"
1739
- }
1740
- ],
1741
- name: "previewDeposit",
1742
- outputs: [
1743
- {
1744
- name: "shares",
1745
- type: "uint256"
1746
- }
1747
- ],
1748
- stateMutability: "view",
1749
- type: "function"
1750
- },
1751
- {
1752
- inputs: [
1753
- {
1754
- name: "shares",
1755
- type: "uint256"
1756
- }
1757
- ],
1758
- name: "previewMint",
1759
- outputs: [
1760
- {
1761
- name: "assets",
1762
- type: "uint256"
1763
- }
1764
- ],
1765
- stateMutability: "view",
1766
- type: "function"
1767
- },
1768
- {
1769
- inputs: [
1770
- {
1771
- name: "shares",
1772
- type: "uint256"
1773
- }
1774
- ],
1775
- name: "previewRedeem",
1776
- outputs: [
1777
- {
1778
- name: "assets",
1779
- type: "uint256"
1780
- }
1781
- ],
1782
- stateMutability: "view",
1783
- type: "function"
1784
- },
1785
- {
1786
- inputs: [
1787
- {
1788
- name: "assets",
1789
- type: "uint256"
1790
- }
1791
- ],
1792
- name: "previewWithdraw",
1793
- outputs: [
1794
- {
1795
- name: "shares",
1796
- type: "uint256"
1797
- }
1798
- ],
1799
- stateMutability: "view",
1800
- type: "function"
1801
- },
1802
- {
1803
- inputs: [
1804
- {
1805
- name: "shares",
1806
- type: "uint256"
1807
- },
1808
- {
1809
- name: "receiver",
1810
- type: "address"
1811
- },
1812
- {
1813
- name: "owner",
1814
- type: "address"
1815
- }
1816
- ],
1817
- name: "redeem",
1818
- outputs: [
1819
- {
1820
- name: "assets",
1821
- type: "uint256"
1822
- }
1823
- ],
1824
- stateMutability: "nonpayable",
1825
- type: "function"
1826
- },
1827
- {
1828
- inputs: [],
1829
- name: "totalAssets",
1830
- outputs: [
1831
- {
1832
- name: "totalManagedAssets",
1833
- type: "uint256"
1834
- }
1835
- ],
1836
- stateMutability: "view",
1837
- type: "function"
1838
- },
1839
- {
1840
- inputs: [],
1841
- name: "totalSupply",
1842
- outputs: [
1843
- {
1844
- name: "",
1845
- type: "uint256"
1846
- }
1847
- ],
1848
- stateMutability: "view",
1849
- type: "function"
1850
- },
1851
- {
1852
- inputs: [
1853
- {
1854
- name: "to",
1855
- type: "address"
1856
- },
1857
- {
1858
- name: "amount",
1859
- type: "uint256"
1860
- }
1861
- ],
1862
- name: "transfer",
1863
- outputs: [
1864
- {
1865
- name: "",
1866
- type: "bool"
1867
- }
1868
- ],
1869
- stateMutability: "nonpayable",
1870
- type: "function"
1871
- },
1872
- {
1873
- inputs: [
1874
- {
1875
- name: "from",
1876
- type: "address"
1877
- },
1878
- {
1879
- name: "to",
1880
- type: "address"
1881
- },
1882
- {
1883
- name: "amount",
1884
- type: "uint256"
1885
- }
1886
- ],
1887
- name: "transferFrom",
1888
- outputs: [
1889
- {
1890
- name: "",
1891
- type: "bool"
1892
- }
1893
- ],
1894
- stateMutability: "nonpayable",
1895
- type: "function"
1896
- },
1897
- {
1898
- inputs: [
1899
- {
1900
- name: "assets",
1901
- type: "uint256"
1902
- },
1903
- {
1904
- name: "receiver",
1905
- type: "address"
1906
- },
1907
- {
1908
- name: "owner",
1909
- type: "address"
1910
- }
1911
- ],
1912
- name: "withdraw",
1913
- outputs: [
1914
- {
1915
- name: "shares",
1916
- type: "uint256"
1917
- }
1918
- ],
1919
- stateMutability: "nonpayable",
1920
- type: "function"
1921
- }
1922
- ];
1923
-
1924
- // src/actions/contracts/fetchToken.ts
1925
- import {
1926
- ContractFunctionExecutionError,
1927
- formatUnits,
1928
- hexToString,
1929
- trim
1930
- } from "viem";
1931
- async function fetchToken({
1932
- address,
1933
- chainId,
1934
- formatUnits: unit = 18
1935
- }) {
1936
- async function fetchToken_({ abi }) {
1937
- const erc20Config = { address, abi, chainId };
1938
- const [decimals, name, symbol, totalSupply] = await readContracts({
1939
- allowFailure: false,
1940
- contracts: [
1941
- { ...erc20Config, functionName: "decimals" },
1942
- { ...erc20Config, functionName: "name" },
1943
- { ...erc20Config, functionName: "symbol" },
1944
- { ...erc20Config, functionName: "totalSupply" }
1945
- ]
1946
- });
1947
- return {
1948
- address,
1949
- decimals,
1950
- name,
1951
- symbol,
1952
- totalSupply: {
1953
- formatted: formatUnits(totalSupply, getUnit(unit)),
1954
- value: totalSupply
1955
- }
1956
- };
1957
- }
1958
- try {
1959
- return await fetchToken_({ abi: erc20ABI });
1960
- } catch (err) {
1961
- if (err instanceof ContractFunctionExecutionError) {
1962
- const { name, symbol, ...rest } = await fetchToken_({
1963
- abi: erc20ABI_bytes32
1964
- });
1965
- return {
1966
- name: hexToString(trim(name, { dir: "right" })),
1967
- symbol: hexToString(trim(symbol, { dir: "right" })),
1968
- ...rest
1969
- };
1970
- }
1971
- throw err;
1972
- }
1973
- }
1974
-
1975
- // src/actions/viem/getPublicClient.ts
1976
- function getPublicClient({ chainId } = {}) {
1977
- const config2 = getConfig();
1978
- if (chainId)
1979
- return config2.getPublicClient({ chainId }) || config2.publicClient;
1980
- return config2.publicClient;
1981
- }
1982
-
1983
- // src/actions/viem/getWalletClient.ts
1984
- async function getWalletClient({
1985
- chainId
1986
- } = {}) {
1987
- const config2 = getConfig();
1988
- const walletClient = await config2.connector?.getWalletClient?.({ chainId }) || null;
1989
- return walletClient;
1990
- }
1991
-
1992
- // src/actions/viem/getWebSocketPublicClient.ts
1993
- function getWebSocketPublicClient({
1994
- chainId
1995
- } = {}) {
1996
- const config2 = getConfig();
1997
- if (chainId)
1998
- return config2.getWebSocketPublicClient({ chainId }) || config2.webSocketPublicClient;
1999
- return config2.webSocketPublicClient;
2000
- }
2001
-
2002
- // src/actions/viem/watchPublicClient.ts
2003
- function watchPublicClient(args, callback) {
2004
- const config2 = getConfig();
2005
- const handleChange = async () => callback(getPublicClient(args));
2006
- const unsubscribe = config2.subscribe(
2007
- ({ publicClient }) => publicClient,
2008
- handleChange
2009
- );
2010
- return unsubscribe;
2011
- }
2012
-
2013
- // src/actions/viem/watchWalletClient.ts
2014
- import { shallow } from "zustand/shallow";
2015
- function watchWalletClient({ chainId }, callback) {
2016
- const config2 = getConfig();
2017
- const handleChange = async ({ chainId: chainId_ }) => {
2018
- if (chainId && chainId_ && chainId !== chainId_)
2019
- return;
2020
- const walletClient = await getWalletClient({ chainId });
2021
- if (!getConfig().connector)
2022
- return callback(null);
2023
- return callback(walletClient);
2024
- };
2025
- const unsubscribe = config2.subscribe(
2026
- ({ data, connector }) => ({
2027
- account: data?.account,
2028
- chainId: data?.chain?.id,
2029
- connector
2030
- }),
2031
- handleChange,
2032
- {
2033
- equalityFn: shallow
2034
- }
2035
- );
2036
- return unsubscribe;
2037
- }
2038
-
2039
- // src/actions/viem/watchWebSocketPublicClient.ts
2040
- function watchWebSocketPublicClient(args, callback) {
2041
- const config2 = getConfig();
2042
- const handleChange = async () => callback(getWebSocketPublicClient(args));
2043
- const unsubscribe = config2.subscribe(
2044
- ({ webSocketPublicClient }) => webSocketPublicClient,
2045
- handleChange
2046
- );
2047
- return unsubscribe;
2048
- }
2049
-
2050
- // src/actions/contracts/prepareWriteContract.ts
2051
- async function prepareWriteContract({
2052
- abi,
2053
- address,
2054
- args,
2055
- chainId,
2056
- functionName,
2057
- walletClient: walletClient_,
2058
- ...config2
2059
- }) {
2060
- const publicClient = getPublicClient({ chainId });
2061
- const walletClient = walletClient_ ?? await getWalletClient({ chainId });
2062
- if (!walletClient)
2063
- throw new ConnectorNotFoundError();
2064
- if (chainId)
2065
- assertActiveChain({ chainId });
2066
- const {
2067
- account,
2068
- accessList,
2069
- blockNumber,
2070
- blockTag,
2071
- gas,
2072
- gasPrice,
2073
- maxFeePerGas,
2074
- maxPriorityFeePerGas,
2075
- nonce,
2076
- value
2077
- } = getCallParameters(config2);
2078
- const { result, request } = await publicClient.simulateContract({
2079
- abi,
2080
- address,
2081
- functionName,
2082
- args,
2083
- account: account || walletClient.account,
2084
- accessList,
2085
- blockNumber,
2086
- blockTag,
2087
- gas,
2088
- gasPrice,
2089
- maxFeePerGas,
2090
- maxPriorityFeePerGas,
2091
- nonce,
2092
- value
2093
- });
2094
- const minimizedAbi = abi.filter(
2095
- (abiItem) => "name" in abiItem && abiItem.name === functionName
2096
- );
2097
- return {
2098
- mode: "prepared",
2099
- request: {
2100
- ...request,
2101
- abi: minimizedAbi,
2102
- chainId
2103
- },
2104
- result
2105
- };
2106
- }
2107
-
2108
- // src/actions/contracts/getContract.ts
2109
- import { getContract as getContract_ } from "viem";
2110
- function getContract({
2111
- address,
2112
- abi,
2113
- chainId,
2114
- walletClient
2115
- }) {
2116
- const publicClient = getPublicClient({ chainId });
2117
- return getContract_({
2118
- address,
2119
- abi,
2120
- publicClient,
2121
- walletClient
2122
- });
2123
- }
2124
-
2125
- // src/actions/contracts/multicall.ts
2126
- async function multicall({
2127
- chainId,
2128
- contracts,
2129
- blockNumber,
2130
- blockTag,
2131
- ...args
2132
- }) {
2133
- const publicClient = getPublicClient({ chainId });
2134
- if (!publicClient.chains)
2135
- throw new ConfigChainsNotFound();
2136
- if (chainId && publicClient.chain.id !== chainId)
2137
- throw new ChainNotConfiguredError({ chainId });
2138
- return publicClient.multicall({
2139
- allowFailure: args.allowFailure ?? true,
2140
- blockNumber,
2141
- blockTag,
2142
- contracts
2143
- });
2144
- }
2145
-
2146
- // src/actions/contracts/readContract.ts
2147
- async function readContract({
2148
- address,
2149
- account,
2150
- chainId,
2151
- abi,
2152
- args,
2153
- functionName,
2154
- blockNumber,
2155
- blockTag
2156
- }) {
2157
- const publicClient = getPublicClient({ chainId });
2158
- return publicClient.readContract({
2159
- abi,
2160
- address,
2161
- account,
2162
- functionName,
2163
- args,
2164
- blockNumber,
2165
- blockTag
2166
- });
2167
- }
2168
-
2169
- // src/actions/contracts/readContracts.ts
2170
- import { ContractFunctionExecutionError as ContractFunctionExecutionError2 } from "viem";
2171
- async function readContracts({
2172
- contracts,
2173
- blockNumber,
2174
- blockTag,
2175
- ...args
2176
- }) {
2177
- const { allowFailure = true } = args;
2178
- try {
2179
- const publicClient = getPublicClient();
2180
- const contractsByChainId = contracts.reduce((contracts2, contract, index) => {
2181
- const chainId = contract.chainId ?? publicClient.chain.id;
2182
- return {
2183
- ...contracts2,
2184
- [chainId]: [...contracts2[chainId] || [], { contract, index }]
2185
- };
2186
- }, {});
2187
- const promises = () => Object.entries(contractsByChainId).map(
2188
- ([chainId, contracts2]) => multicall({
2189
- allowFailure,
2190
- chainId: parseInt(chainId),
2191
- contracts: contracts2.map(
2192
- ({ contract }) => contract
2193
- ),
2194
- blockNumber,
2195
- blockTag
2196
- })
2197
- );
2198
- const multicallResults = (await Promise.all(promises())).flat();
2199
- const resultIndexes = Object.values(contractsByChainId).flatMap(
2200
- (contracts2) => contracts2.map(({ index }) => index)
2201
- );
2202
- return multicallResults.reduce((results, result, index) => {
2203
- if (results)
2204
- results[resultIndexes[index]] = result;
2205
- return results;
2206
- }, []);
2207
- } catch (err) {
2208
- if (err instanceof ContractFunctionExecutionError2)
2209
- throw err;
2210
- const promises = () => contracts.map(
2211
- (contract) => readContract({ ...contract, blockNumber, blockTag })
2212
- );
2213
- if (allowFailure)
2214
- return (await Promise.allSettled(promises())).map((result) => {
2215
- if (result.status === "fulfilled")
2216
- return { result: result.value, status: "success" };
2217
- return { error: result.reason, result: void 0, status: "failure" };
2218
- });
2219
- return await Promise.all(promises());
2220
- }
2221
- }
2222
-
2223
- // src/actions/contracts/watchContractEvent.ts
2224
- import { shallow as shallow2 } from "zustand/shallow";
2225
- function watchContractEvent({
2226
- address,
2227
- abi,
2228
- chainId,
2229
- eventName
2230
- }, callback) {
2231
- let unwatch;
2232
- const watchEvent = async () => {
2233
- if (unwatch)
2234
- unwatch();
2235
- const publicClient = getWebSocketPublicClient({ chainId }) || getPublicClient({ chainId });
2236
- unwatch = publicClient.watchContractEvent({
2237
- address,
2238
- abi,
2239
- eventName,
2240
- onLogs: callback
2241
- });
2242
- };
2243
- watchEvent();
2244
- const config2 = getConfig();
2245
- const unsubscribe = config2.subscribe(
2246
- ({ publicClient, webSocketPublicClient }) => ({
2247
- publicClient,
2248
- webSocketPublicClient
2249
- }),
2250
- watchEvent,
2251
- { equalityFn: shallow2 }
2252
- );
2253
- return () => {
2254
- unwatch?.();
2255
- unsubscribe();
2256
- };
2257
- }
2258
-
2259
- // src/actions/network-status/watchBlockNumber.ts
2260
- import { shallow as shallow3 } from "zustand/shallow";
2261
- function watchBlockNumber(args, callback) {
2262
- let unwatch;
2263
- const createListener = (publicClient) => {
2264
- if (unwatch)
2265
- unwatch();
2266
- unwatch = publicClient.watchBlockNumber({
2267
- onBlockNumber: callback,
2268
- emitOnBegin: true,
2269
- poll: true
2270
- });
2271
- };
2272
- const publicClient_ = getWebSocketPublicClient({ chainId: args.chainId }) ?? getPublicClient({ chainId: args.chainId });
2273
- if (args.listen)
2274
- createListener(publicClient_);
2275
- const config2 = getConfig();
2276
- const unsubscribe = config2.subscribe(
2277
- ({ publicClient, webSocketPublicClient }) => ({
2278
- publicClient,
2279
- webSocketPublicClient
2280
- }),
2281
- async ({ publicClient, webSocketPublicClient }) => {
2282
- const publicClient_2 = webSocketPublicClient ?? publicClient;
2283
- if (args.listen && !args.chainId && publicClient_2) {
2284
- createListener(publicClient_2);
2285
- }
2286
- },
2287
- {
2288
- equalityFn: shallow3
2289
- }
2290
- );
2291
- return () => {
2292
- unsubscribe();
2293
- unwatch?.();
2294
- };
2295
- }
2296
-
2297
- // src/actions/contracts/watchMulticall.ts
2298
- function watchMulticall(args, callback) {
2299
- const config2 = getConfig();
2300
- const handleChange = async () => callback(await multicall(args));
2301
- const unwatch = args.listenToBlock ? watchBlockNumber({ listen: true }, handleChange) : void 0;
2302
- const unsubscribe = config2.subscribe(
2303
- ({ publicClient }) => publicClient,
2304
- handleChange
2305
- );
2306
- return () => {
2307
- unsubscribe();
2308
- unwatch?.();
2309
- };
2310
- }
2311
-
2312
- // src/actions/contracts/watchReadContract.ts
2313
- function watchReadContract(args, callback) {
2314
- const config2 = getConfig();
2315
- const handleChange = async () => callback(await readContract(args));
2316
- const unwatch = args.listenToBlock ? watchBlockNumber({ listen: true }, handleChange) : void 0;
2317
- const unsubscribe = config2.subscribe(
2318
- ({ publicClient }) => publicClient,
2319
- handleChange
2320
- );
2321
- return () => {
2322
- unsubscribe();
2323
- unwatch?.();
2324
- };
2325
- }
2326
-
2327
- // src/actions/contracts/watchReadContracts.ts
2328
- function watchReadContracts(args, callback) {
2329
- const config2 = getConfig();
2330
- const handleChange = async () => callback(await readContracts(args));
2331
- const unwatch = args.listenToBlock ? watchBlockNumber({ listen: true }, handleChange) : void 0;
2332
- const unsubscribe = config2.subscribe(
2333
- ({ publicClient }) => publicClient,
2334
- handleChange
2335
- );
2336
- return () => {
2337
- unsubscribe();
2338
- unwatch?.();
2339
- };
2340
- }
2341
-
2342
- // src/actions/contracts/writeContract.ts
2343
- async function writeContract(config2) {
2344
- const walletClient = await getWalletClient({ chainId: config2.chainId });
2345
- if (!walletClient)
2346
- throw new ConnectorNotFoundError();
2347
- if (config2.chainId)
2348
- assertActiveChain({ chainId: config2.chainId });
2349
- let request;
2350
- if (config2.mode === "prepared") {
2351
- request = config2.request;
2352
- } else {
2353
- const { chainId: _, mode: __, ...args } = config2;
2354
- const res = await prepareWriteContract(args);
2355
- request = res.request;
2356
- }
2357
- const hash = await walletClient.writeContract({
2358
- ...request,
2359
- chain: null
2360
- });
2361
- return { hash };
2362
- }
2363
-
2364
- // src/actions/accounts/fetchBalance.ts
2365
- async function fetchBalance({
2366
- address,
2367
- chainId,
2368
- formatUnits: unit,
2369
- token
2370
- }) {
2371
- const config2 = getConfig();
2372
- const publicClient = getPublicClient({ chainId });
2373
- if (token) {
2374
- const fetchContractBalance = async ({ abi }) => {
2375
- const erc20Config = { abi, address: token, chainId };
2376
- const [value2, decimals, symbol] = await readContracts({
2377
- allowFailure: false,
2378
- contracts: [
2379
- {
2380
- ...erc20Config,
2381
- functionName: "balanceOf",
2382
- args: [address]
2383
- },
2384
- { ...erc20Config, functionName: "decimals" },
2385
- { ...erc20Config, functionName: "symbol" }
2386
- ]
2387
- });
2388
- return {
2389
- decimals,
2390
- formatted: formatUnits2(value2 ?? "0", getUnit(unit ?? decimals)),
2391
- symbol,
2392
- value: value2
2393
- };
2394
- };
2395
- try {
2396
- return await fetchContractBalance({ abi: erc20ABI });
2397
- } catch (err) {
2398
- if (err instanceof ContractFunctionExecutionError3) {
2399
- const { symbol, ...rest } = await fetchContractBalance({
2400
- abi: erc20ABI_bytes32
2401
- });
2402
- return {
2403
- symbol: hexToString2(trim2(symbol, { dir: "right" })),
2404
- ...rest
2405
- };
2406
- }
2407
- throw err;
2408
- }
2409
- }
2410
- const chains = [
2411
- ...config2.publicClient.chains || [],
2412
- ...config2.chains ?? []
2413
- ];
2414
- const value = await publicClient.getBalance({ address });
2415
- const chain = chains.find((x) => x.id === publicClient.chain.id);
2416
- return {
2417
- decimals: chain?.nativeCurrency.decimals ?? 18,
2418
- formatted: formatUnits2(value ?? "0", getUnit(unit ?? 18)),
2419
- symbol: chain?.nativeCurrency.symbol ?? "ETH",
2420
- value
2421
- };
2422
- }
2423
-
2424
- // src/actions/accounts/getAccount.ts
2425
- function getAccount() {
2426
- const { data, connector, status } = getConfig();
2427
- switch (status) {
2428
- case "connected":
2429
- return {
2430
- address: data?.account,
2431
- connector,
2432
- isConnected: true,
2433
- isConnecting: false,
2434
- isDisconnected: false,
2435
- isReconnecting: false,
2436
- status
2437
- };
2438
- case "reconnecting":
2439
- return {
2440
- address: data?.account,
2441
- connector,
2442
- isConnected: !!data?.account,
2443
- isConnecting: false,
2444
- isDisconnected: false,
2445
- isReconnecting: true,
2446
- status
2447
- };
2448
- case "connecting":
2449
- return {
2450
- address: data?.account,
2451
- connector,
2452
- isConnected: false,
2453
- isConnecting: true,
2454
- isDisconnected: false,
2455
- isReconnecting: false,
2456
- status
2457
- };
2458
- case "disconnected":
2459
- return {
2460
- address: void 0,
2461
- connector: void 0,
2462
- isConnected: false,
2463
- isConnecting: false,
2464
- isDisconnected: true,
2465
- isReconnecting: false,
2466
- status
2467
- };
2468
- }
2469
- }
2470
-
2471
- // src/actions/accounts/getNetwork.ts
2472
- function getNetwork() {
2473
- const config2 = getConfig();
2474
- const chainId = config2.data?.chain?.id;
2475
- const activeChains = config2.chains ?? [];
2476
- const activeChain = [
2477
- ...config2.publicClient?.chains || [],
2478
- ...activeChains
2479
- ].find((x) => x.id === chainId) ?? {
2480
- id: chainId,
2481
- name: `Chain ${chainId}`,
2482
- network: `${chainId}`,
2483
- nativeCurrency: { name: "Ether", decimals: 18, symbol: "ETH" },
2484
- rpcUrls: {
2485
- default: { http: [""] },
2486
- public: { http: [""] }
2487
- }
2488
- };
2489
- return {
2490
- chain: chainId ? {
2491
- ...activeChain,
2492
- ...config2.data?.chain,
2493
- id: chainId
2494
- } : void 0,
2495
- chains: activeChains
2496
- };
2497
- }
2498
-
2499
- // src/actions/accounts/signMessage.ts
2500
- async function signMessage(args) {
2501
- const walletClient = await getWalletClient();
2502
- if (!walletClient)
2503
- throw new ConnectorNotFoundError();
2504
- return await walletClient.signMessage({
2505
- message: args.message
2506
- });
2507
- }
2508
-
2509
- // src/actions/accounts/signTypedData.ts
2510
- async function signTypedData({
2511
- domain,
2512
- message,
2513
- primaryType,
2514
- types
2515
- }) {
2516
- const walletClient = await getWalletClient();
2517
- if (!walletClient)
2518
- throw new ConnectorNotFoundError();
2519
- const { chainId } = domain;
2520
- if (chainId)
2521
- assertActiveChain({ chainId });
2522
- return walletClient.signTypedData({
2523
- message,
2524
- primaryType,
2525
- types,
2526
- domain
2527
- });
2528
- }
2529
-
2530
- // src/actions/accounts/switchNetwork.ts
2531
- async function switchNetwork({
2532
- chainId
2533
- }) {
2534
- const { connector } = getConfig();
2535
- if (!connector)
2536
- throw new ConnectorNotFoundError();
2537
- if (!connector.switchChain)
2538
- throw new SwitchChainNotSupportedError({
2539
- connector
2540
- });
2541
- return connector.switchChain(chainId);
2542
- }
2543
-
2544
- // src/actions/accounts/watchAccount.ts
2545
- import { shallow as shallow4 } from "zustand/shallow";
2546
- function watchAccount(callback, { selector = (x) => x } = {}) {
2547
- const config2 = getConfig();
2548
- const handleChange = () => callback(getAccount());
2549
- const unsubscribe = config2.subscribe(
2550
- ({ data, connector, status }) => selector({
2551
- address: data?.account,
2552
- connector,
2553
- status
2554
- }),
2555
- handleChange,
2556
- {
2557
- equalityFn: shallow4
2558
- }
2559
- );
2560
- return unsubscribe;
2561
- }
2562
-
2563
- // src/actions/accounts/watchNetwork.ts
2564
- import { shallow as shallow5 } from "zustand/shallow";
2565
- function watchNetwork(callback, { selector = (x) => x } = {}) {
2566
- const config2 = getConfig();
2567
- const handleChange = () => callback(getNetwork());
2568
- const unsubscribe = config2.subscribe(
2569
- ({ data, chains }) => selector({ chainId: data?.chain?.id, chains }),
2570
- handleChange,
2571
- {
2572
- equalityFn: shallow5
2573
- }
2574
- );
2575
- return unsubscribe;
2576
- }
2577
-
2578
- // src/actions/ens/fetchEnsAddress.ts
2579
- import { getAddress } from "viem";
2580
- import { normalize } from "viem/ens";
2581
- async function fetchEnsAddress({
2582
- chainId,
2583
- name
2584
- }) {
2585
- const publicClient = getPublicClient({ chainId });
2586
- const address = await publicClient.getEnsAddress({
2587
- name: normalize(name)
2588
- });
2589
- try {
2590
- if (address === "0x0000000000000000000000000000000000000000")
2591
- return null;
2592
- return address ? getAddress(address) : null;
2593
- } catch (_error) {
2594
- return null;
2595
- }
2596
- }
2597
-
2598
- // src/actions/ens/fetchEnsAvatar.ts
2599
- import { normalize as normalize2 } from "viem/ens";
2600
- async function fetchEnsAvatar({
2601
- name,
2602
- chainId
2603
- }) {
2604
- const publicClient = getPublicClient({ chainId });
2605
- const avatar = await publicClient.getEnsAvatar({ name: normalize2(name) });
2606
- return avatar;
2607
- }
2608
-
2609
- // src/actions/ens/fetchEnsName.ts
2610
- import { getAddress as getAddress2 } from "viem";
2611
- async function fetchEnsName({
2612
- address,
2613
- chainId
2614
- }) {
2615
- const publicClient = getPublicClient({ chainId });
2616
- return publicClient.getEnsName({
2617
- address: getAddress2(address)
2618
- });
2619
- }
2620
-
2621
- // src/actions/ens/fetchEnsResolver.ts
2622
- import { normalize as normalize3 } from "viem/ens";
2623
- async function fetchEnsResolver({
2624
- chainId,
2625
- name
2626
- }) {
2627
- const publicClient = getPublicClient({ chainId });
2628
- const resolver = await publicClient.getEnsResolver({ name: normalize3(name) });
2629
- return resolver;
2630
- }
2631
-
2632
- // src/actions/network-status/fetchBlockNumber.ts
2633
- async function fetchBlockNumber({
2634
- chainId
2635
- } = {}) {
2636
- const publicClient = getPublicClient({ chainId });
2637
- const blockNumber = await publicClient.getBlockNumber();
2638
- return blockNumber;
2639
- }
2640
-
2641
- // src/actions/network-status/fetchFeeData.ts
2642
- import { formatUnits as formatUnits3, parseGwei } from "viem";
2643
- async function fetchFeeData({
2644
- chainId,
2645
- formatUnits: units = "gwei"
2646
- } = {}) {
2647
- const publicClient = getPublicClient({ chainId });
2648
- const block = await publicClient.getBlock();
2649
- let gasPrice = null;
2650
- try {
2651
- gasPrice = await publicClient.getGasPrice();
2652
- } catch {
2653
- }
2654
- let lastBaseFeePerGas = null;
2655
- let maxFeePerGas = null;
2656
- let maxPriorityFeePerGas = null;
2657
- if (block?.baseFeePerGas) {
2658
- lastBaseFeePerGas = block.baseFeePerGas;
2659
- maxPriorityFeePerGas = parseGwei("1");
2660
- maxFeePerGas = block.baseFeePerGas * 2n + maxPriorityFeePerGas;
2661
- }
2662
- const unit = getUnit(units);
2663
- const formatted = {
2664
- gasPrice: gasPrice ? formatUnits3(gasPrice, unit) : null,
2665
- maxFeePerGas: maxFeePerGas ? formatUnits3(maxFeePerGas, unit) : null,
2666
- maxPriorityFeePerGas: maxPriorityFeePerGas ? formatUnits3(maxPriorityFeePerGas, unit) : null
2667
- };
2668
- return {
2669
- lastBaseFeePerGas,
2670
- gasPrice,
2671
- maxFeePerGas,
2672
- maxPriorityFeePerGas,
2673
- formatted
2674
- };
2675
- }
2676
-
2677
- // src/actions/transactions/fetchTransaction.ts
2678
- async function fetchTransaction({
2679
- chainId,
2680
- hash
2681
- }) {
2682
- const publicClient = getPublicClient({ chainId });
2683
- return publicClient.getTransaction({ hash });
2684
- }
2685
-
2686
- // src/actions/transactions/prepareSendTransaction.ts
2687
- import { isAddress } from "viem";
2688
- async function prepareSendTransaction({
2689
- accessList,
2690
- account,
2691
- chainId,
2692
- data,
2693
- gas: gas_,
2694
- gasPrice,
2695
- maxFeePerGas,
2696
- maxPriorityFeePerGas,
2697
- nonce,
2698
- to: to_,
2699
- value,
2700
- walletClient: walletClient_
2701
- }) {
2702
- const publicClient = getPublicClient({ chainId });
2703
- const walletClient = walletClient_ ?? await getWalletClient({ chainId });
2704
- if (!walletClient)
2705
- throw new ConnectorNotFoundError();
2706
- if (chainId)
2707
- assertActiveChain({ chainId });
2708
- const to = (to_ && !isAddress(to_) ? await fetchEnsAddress({ name: to_ }) : to_) || void 0;
2709
- if (to && !isAddress(to))
2710
- throw new Error("Invalid address");
2711
- const gas = typeof gas_ === "undefined" ? await publicClient.estimateGas({
2712
- accessList,
2713
- account: walletClient.account,
2714
- data,
2715
- gas: gas_ ?? void 0,
2716
- gasPrice,
2717
- maxFeePerGas,
2718
- maxPriorityFeePerGas,
2719
- nonce,
2720
- to,
2721
- value
2722
- }) : gas_ || void 0;
2723
- return {
2724
- accessList,
2725
- account,
2726
- data,
2727
- gas,
2728
- gasPrice,
2729
- maxFeePerGas,
2730
- maxPriorityFeePerGas,
2731
- mode: "prepared",
2732
- nonce,
2733
- to,
2734
- value,
2735
- ...chainId ? { chainId } : {}
2736
- };
2737
- }
2738
-
2739
- // src/actions/transactions/sendTransaction.ts
2740
- async function sendTransaction({
2741
- accessList,
2742
- account,
2743
- chainId,
2744
- data,
2745
- gas,
2746
- gasPrice,
2747
- maxFeePerGas,
2748
- maxPriorityFeePerGas,
2749
- mode,
2750
- nonce,
2751
- to,
2752
- value
2753
- }) {
2754
- const walletClient = await getWalletClient({ chainId });
2755
- if (!walletClient)
2756
- throw new ConnectorNotFoundError();
2757
- if (chainId)
2758
- assertActiveChain({ chainId });
2759
- let args;
2760
- if (mode === "prepared") {
2761
- args = {
2762
- account,
2763
- accessList,
2764
- chain: null,
2765
- data,
2766
- gas,
2767
- gasPrice,
2768
- maxFeePerGas,
2769
- maxPriorityFeePerGas,
2770
- nonce,
2771
- to,
2772
- value
2773
- };
2774
- } else {
2775
- args = await prepareSendTransaction({
2776
- accessList,
2777
- account,
2778
- chainId,
2779
- data,
2780
- gas: gas || null,
2781
- gasPrice,
2782
- maxFeePerGas,
2783
- maxPriorityFeePerGas,
2784
- nonce,
2785
- to,
2786
- value
2787
- });
2788
- }
2789
- const hash = await walletClient.sendTransaction({ ...args, chain: null });
2790
- return { hash };
2791
- }
2792
-
2793
- // src/actions/transactions/waitForTransaction.ts
2794
- import { hexToString as hexToString3 } from "viem";
2795
- async function waitForTransaction({
2796
- chainId,
2797
- confirmations = 1,
2798
- hash,
2799
- onReplaced,
2800
- timeout = 0
2801
- }) {
2802
- const publicClient = getPublicClient({ chainId });
2803
- const receipt = await publicClient.waitForTransactionReceipt({
2804
- hash,
2805
- confirmations,
2806
- onReplaced,
2807
- timeout
2808
- });
2809
- if (receipt.status === "reverted") {
2810
- const txn = await publicClient.getTransaction({
2811
- hash: receipt.transactionHash
2812
- });
2813
- const code = await publicClient.call({
2814
- ...txn,
2815
- gasPrice: txn.type !== "eip1559" ? txn.gasPrice : void 0,
2816
- maxFeePerGas: txn.type === "eip1559" ? txn.maxFeePerGas : void 0,
2817
- maxPriorityFeePerGas: txn.type === "eip1559" ? txn.maxPriorityFeePerGas : void 0
2818
- });
2819
- const reason = hexToString3(`0x${code.substring(138)}`);
2820
- throw new Error(reason);
2821
- }
2822
- return receipt;
2823
- }
2824
-
2825
- // src/actions/transactions/watchPendingTransactions.ts
2826
- import { shallow as shallow6 } from "zustand/shallow";
2827
- function watchPendingTransactions(args, callback) {
2828
- let unwatch;
2829
- const createListener = (publicClient) => {
2830
- if (unwatch)
2831
- unwatch();
2832
- unwatch = publicClient.watchPendingTransactions({
2833
- onTransactions: callback,
2834
- poll: true
2835
- });
2836
- };
2837
- const publicClient_ = getWebSocketPublicClient({ chainId: args.chainId }) ?? getPublicClient({ chainId: args.chainId });
2838
- createListener(publicClient_);
2839
- const config2 = getConfig();
2840
- const unsubscribe = config2.subscribe(
2841
- ({ publicClient, webSocketPublicClient }) => ({
2842
- publicClient,
2843
- webSocketPublicClient
2844
- }),
2845
- async ({ publicClient, webSocketPublicClient }) => {
2846
- const publicClient_2 = webSocketPublicClient ?? publicClient;
2847
- if (!args.chainId && publicClient_2) {
2848
- createListener(publicClient_2);
2849
- }
2850
- },
2851
- {
2852
- equalityFn: shallow6
2853
- }
2854
- );
2855
- return () => {
2856
- unsubscribe();
2857
- unwatch?.();
2858
- };
2859
- }
2860
-
2861
- // src/utils/assertActiveChain.ts
2862
- function assertActiveChain({ chainId }) {
2863
- const { chain: activeChain, chains } = getNetwork();
2864
- const activeChainId = activeChain?.id;
2865
- if (activeChainId && chainId !== activeChainId) {
2866
- throw new ChainMismatchError({
2867
- activeChain: chains.find((x) => x.id === activeChainId)?.name ?? `Chain ${activeChainId}`,
2868
- targetChain: chains.find((x) => x.id === chainId)?.name ?? `Chain ${chainId}`
2869
- });
2870
- }
2871
- }
2872
-
2873
- export {
2874
- configureChains,
2875
- ChainMismatchError,
2876
- ChainNotConfiguredError,
2877
- ConnectorAlreadyConnectedError,
2878
- ConfigChainsNotFound,
2879
- SwitchChainNotSupportedError,
2880
- ConnectorNotFoundError,
2881
- deepEqual,
2882
- deserialize,
2883
- getCallParameters,
2884
- getSendTransactionParameters,
2885
- getUnit,
2886
- serialize,
2887
- noopStorage,
2888
- createStorage,
2889
- Config,
2890
- createConfig,
2891
- getConfig,
2892
- connect,
2893
- disconnect,
2894
- erc20ABI,
2895
- erc721ABI,
2896
- erc4626ABI,
2897
- fetchToken,
2898
- getPublicClient,
2899
- getWalletClient,
2900
- getWebSocketPublicClient,
2901
- watchPublicClient,
2902
- watchWalletClient,
2903
- watchWebSocketPublicClient,
2904
- prepareWriteContract,
2905
- getContract,
2906
- multicall,
2907
- readContract,
2908
- readContracts,
2909
- watchContractEvent,
2910
- watchBlockNumber,
2911
- watchMulticall,
2912
- watchReadContract,
2913
- watchReadContracts,
2914
- writeContract,
2915
- fetchBalance,
2916
- getAccount,
2917
- getNetwork,
2918
- signMessage,
2919
- signTypedData,
2920
- switchNetwork,
2921
- watchAccount,
2922
- watchNetwork,
2923
- fetchEnsAddress,
2924
- fetchEnsAvatar,
2925
- fetchEnsName,
2926
- fetchEnsResolver,
2927
- fetchBlockNumber,
2928
- fetchFeeData,
2929
- fetchTransaction,
2930
- prepareSendTransaction,
2931
- sendTransaction,
2932
- waitForTransaction,
2933
- watchPendingTransactions
2934
- };