@multiplatform.one/web3 7.18.0 → 7.20.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 (777) hide show
  1. package/README.md +109 -4
  2. package/dist/cjs/bridge/BridgeClient.native.js.map +1 -1
  3. package/dist/cjs/bridge/BridgeHost.native.js.map +1 -1
  4. package/dist/cjs/bridge/SolanaBridge.native.js.map +1 -1
  5. package/dist/cjs/bridge/base64.native.js.map +1 -1
  6. package/dist/cjs/bridge/bridgeConnector.native.js.map +1 -1
  7. package/dist/cjs/bridge/eip1193.native.js.map +1 -1
  8. package/dist/cjs/bridge/index.native.js.map +1 -1
  9. package/dist/cjs/bridge/postMessageTransport.native.js.map +1 -1
  10. package/dist/cjs/bridge/protocol.native.js.map +1 -1
  11. package/dist/cjs/bridge/transport.native.js.map +1 -1
  12. package/dist/cjs/bundler/metaMaskConnectTimeouts.cjs +92 -0
  13. package/dist/cjs/bundler/metaMaskConnectTimeouts.native.js +123 -0
  14. package/dist/cjs/bundler/metaMaskConnectTimeouts.native.js.map +1 -0
  15. package/dist/cjs/clients/adapter.cjs +33 -0
  16. package/dist/cjs/clients/adapter.native.js +36 -0
  17. package/dist/cjs/clients/adapter.native.js.map +1 -0
  18. package/dist/cjs/clients/bitcoin.cjs +46 -0
  19. package/dist/cjs/clients/bitcoin.native.js +51 -0
  20. package/dist/cjs/clients/bitcoin.native.js.map +1 -0
  21. package/dist/cjs/clients/connector.cjs +45 -0
  22. package/dist/cjs/clients/connector.native.js +49 -0
  23. package/dist/cjs/clients/connector.native.js.map +1 -0
  24. package/dist/cjs/clients/evm.cjs +171 -0
  25. package/dist/cjs/clients/evm.native.js +198 -0
  26. package/dist/cjs/clients/evm.native.js.map +1 -0
  27. package/dist/cjs/clients/gpg.cjs +31 -0
  28. package/dist/cjs/clients/gpg.native.js +34 -0
  29. package/dist/cjs/clients/gpg.native.js.map +1 -0
  30. package/dist/cjs/clients/hooks.cjs +78 -0
  31. package/dist/cjs/clients/hooks.native.js +85 -0
  32. package/dist/cjs/clients/hooks.native.js.map +1 -0
  33. package/dist/cjs/clients/index.cjs +49 -0
  34. package/dist/cjs/clients/index.native.js +52 -0
  35. package/dist/cjs/clients/index.native.js.map +1 -0
  36. package/dist/cjs/clients/solana.cjs +322 -0
  37. package/dist/cjs/clients/solana.native.js +511 -0
  38. package/dist/cjs/clients/solana.native.js.map +1 -0
  39. package/dist/cjs/clients/solanaMessage.cjs +38 -0
  40. package/dist/cjs/clients/solanaMessage.native.js +44 -0
  41. package/dist/cjs/clients/solanaMessage.native.js.map +1 -0
  42. package/dist/cjs/clients/sui.cjs +46 -0
  43. package/dist/cjs/clients/sui.native.js +51 -0
  44. package/dist/cjs/clients/sui.native.js.map +1 -0
  45. package/dist/cjs/clients/types.cjs +37 -0
  46. package/dist/cjs/clients/types.native.js +160 -0
  47. package/dist/cjs/clients/types.native.js.map +1 -0
  48. package/dist/cjs/clients/useSolanaClient.cjs +50 -0
  49. package/dist/cjs/clients/useSolanaClient.native.js +57 -0
  50. package/dist/cjs/clients/useSolanaClient.native.js.map +1 -0
  51. package/dist/cjs/clients/walletStandard.cjs +63 -0
  52. package/dist/cjs/clients/walletStandard.native.js +71 -0
  53. package/dist/cjs/clients/walletStandard.native.js.map +1 -0
  54. package/dist/cjs/components/NetworkSwitcher.native.js.map +1 -1
  55. package/dist/cjs/components/TransactionStatus.native.js.map +1 -1
  56. package/dist/cjs/components/index.native.js.map +1 -1
  57. package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
  58. package/dist/cjs/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
  59. package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  60. package/dist/cjs/connectkit/adapters/SuiAdapter.native.js.map +1 -1
  61. package/dist/cjs/connectkit/adapters/discover.native.js.map +1 -1
  62. package/dist/cjs/connectkit/adapters/index.native.js.map +1 -1
  63. package/dist/cjs/connectkit/adapters/messages.native.js.map +1 -1
  64. package/dist/cjs/connectkit/adapters/types.native.js.map +1 -1
  65. package/dist/cjs/connectkit/assets/chains.native.js.map +1 -1
  66. package/dist/cjs/connectkit/components/BalanceButton/index.native.js +1 -1
  67. package/dist/cjs/connectkit/components/BalanceButton/index.native.js.map +1 -1
  68. package/dist/cjs/connectkit/components/Common/Avatar/index.native.js.map +1 -1
  69. package/dist/cjs/connectkit/components/Common/Avatar/styles.native.js.map +1 -1
  70. package/dist/cjs/connectkit/components/Common/Chain/index.native.js.map +1 -1
  71. package/dist/cjs/connectkit/components/Common/Chain/styles.native.js.map +1 -1
  72. package/dist/cjs/connectkit/components/Common/ChainSelect/index.native.js +2 -2
  73. package/dist/cjs/connectkit/components/Common/ChainSelect/index.native.js.map +1 -1
  74. package/dist/cjs/connectkit/components/Common/ChainSelectDropdown/index.native.js +1 -1
  75. package/dist/cjs/connectkit/components/Common/ChainSelectDropdown/index.native.js.map +1 -1
  76. package/dist/cjs/connectkit/components/Common/ChainSelectDropdown/styles.native.js.map +1 -1
  77. package/dist/cjs/connectkit/components/Common/ChainSelectList/index.native.js.map +1 -1
  78. package/dist/cjs/connectkit/components/Common/ChainSelectList/styles.native.js.map +1 -1
  79. package/dist/cjs/connectkit/components/Common/ConnectorList/index.cjs +10 -29
  80. package/dist/cjs/connectkit/components/Common/ConnectorList/index.native.js +11 -32
  81. package/dist/cjs/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
  82. package/dist/cjs/connectkit/components/Common/ConnectorList/styles.native.js.map +1 -1
  83. package/dist/cjs/connectkit/components/ConnectButton/index.native.js +4 -4
  84. package/dist/cjs/connectkit/components/ConnectButton/index.native.js.map +1 -1
  85. package/dist/cjs/connectkit/components/ConnectButton/styles.native.js.map +1 -1
  86. package/dist/cjs/connectkit/components/ConnectModal/ConnectUsing.cjs +4 -38
  87. package/dist/cjs/connectkit/components/ConnectModal/ConnectUsing.native.js +5 -43
  88. package/dist/cjs/connectkit/components/ConnectModal/ConnectUsing.native.js.map +1 -1
  89. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/index.native.js.map +1 -1
  90. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/styles.native.js.map +1 -1
  91. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/index.native.js.map +1 -1
  92. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/styles.native.js.map +1 -1
  93. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/index.cjs +0 -14
  94. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js +10 -65
  95. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
  96. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/styles.native.js.map +1 -1
  97. package/dist/cjs/connectkit/components/ConnectModal/demo.cjs +0 -15
  98. package/dist/cjs/connectkit/components/ConnectModal/demo.native.js +9 -24
  99. package/dist/cjs/connectkit/components/ConnectModal/demo.native.js.map +1 -1
  100. package/dist/cjs/connectkit/components/NetworkButton/index.native.js +2 -2
  101. package/dist/cjs/connectkit/components/NetworkButton/index.native.js.map +1 -1
  102. package/dist/cjs/connectkit/components/Pages/About/graphics.native.js.map +1 -1
  103. package/dist/cjs/connectkit/components/Pages/About/index.native.js.map +1 -1
  104. package/dist/cjs/connectkit/components/Pages/About/styles.native.js.map +1 -1
  105. package/dist/cjs/connectkit/components/Pages/Connectors/index.native.js +1 -1
  106. package/dist/cjs/connectkit/components/Pages/Connectors/index.native.js.map +1 -1
  107. package/dist/cjs/connectkit/components/Pages/Connectors/styles.native.js.map +1 -1
  108. package/dist/cjs/connectkit/components/Pages/DownloadApp/index.native.js.map +1 -1
  109. package/dist/cjs/connectkit/components/Pages/Onboarding/index.native.js.map +1 -1
  110. package/dist/cjs/connectkit/components/Pages/Onboarding/styles.native.js.map +1 -1
  111. package/dist/cjs/connectkit/components/Pages/Profile/index.native.js +2 -2
  112. package/dist/cjs/connectkit/components/Pages/Profile/index.native.js.map +1 -1
  113. package/dist/cjs/connectkit/components/Pages/Profile/styles.native.js.map +1 -1
  114. package/dist/cjs/connectkit/components/Pages/SignInWithEthereum/index.native.js +3 -3
  115. package/dist/cjs/connectkit/components/Pages/SignInWithEthereum/index.native.js.map +1 -1
  116. package/dist/cjs/connectkit/components/Pages/SignInWithEthereum/styles.native.js.map +1 -1
  117. package/dist/cjs/connectkit/components/Pages/SwitchNetworks/index.native.js +1 -1
  118. package/dist/cjs/connectkit/components/Pages/SwitchNetworks/index.native.js.map +1 -1
  119. package/dist/cjs/connectkit/components/Standard/SIWE/index.native.js +1 -1
  120. package/dist/cjs/connectkit/components/Standard/SIWE/index.native.js.map +1 -1
  121. package/dist/cjs/connectkit/components/Standard/SIWE/styles.native.js.map +1 -1
  122. package/dist/cjs/connectkit/components/contexts/web3/index.cjs +0 -15
  123. package/dist/cjs/connectkit/components/contexts/web3/index.native.js +0 -17
  124. package/dist/cjs/connectkit/components/contexts/web3/index.native.js.map +1 -1
  125. package/dist/cjs/connectkit/connectors/aaveAccountConnector.cjs +57 -0
  126. package/dist/cjs/connectkit/connectors/aaveAccountConnector.native.js +67 -0
  127. package/dist/cjs/connectkit/connectors/aaveAccountConnector.native.js.map +1 -0
  128. package/dist/cjs/connectkit/connectors/createWalletMessage.native.js.map +1 -1
  129. package/dist/cjs/connectkit/connectors/embeddedDesktop.cjs +1 -1
  130. package/dist/cjs/connectkit/connectors/embeddedDesktop.native.js +1 -1
  131. package/dist/cjs/connectkit/connectors/embeddedDesktop.native.js.map +1 -1
  132. package/dist/cjs/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
  133. package/dist/cjs/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
  134. package/dist/cjs/connectkit/connectors/metaMaskConnectConnector.cjs +255 -0
  135. package/dist/cjs/connectkit/connectors/metaMaskConnectConnector.native.js +315 -0
  136. package/dist/cjs/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -0
  137. package/dist/cjs/connectkit/connectors/syntheticChains.native.js.map +1 -1
  138. package/dist/cjs/connectkit/connectors/walletAdapterConnector.cjs +2 -0
  139. package/dist/cjs/connectkit/connectors/walletAdapterConnector.native.js +2 -0
  140. package/dist/cjs/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
  141. package/dist/cjs/connectkit/constants/chainConfigs.native.js.map +1 -1
  142. package/dist/cjs/connectkit/defaultConfig.cjs +8 -2
  143. package/dist/cjs/connectkit/defaultConfig.native.js +8 -2
  144. package/dist/cjs/connectkit/defaultConfig.native.js.map +1 -1
  145. package/dist/cjs/connectkit/defaultConnectors.cjs +19 -37
  146. package/dist/cjs/connectkit/defaultConnectors.native.js +19 -37
  147. package/dist/cjs/connectkit/defaultConnectors.native.js.map +1 -1
  148. package/dist/cjs/connectkit/defaultTransports.native.js.map +1 -1
  149. package/dist/cjs/connectkit/hooks/useChainIsSupported.native.js.map +1 -1
  150. package/dist/cjs/connectkit/hooks/useChains.native.js.map +1 -1
  151. package/dist/cjs/connectkit/hooks/useConnect.native.js.map +1 -1
  152. package/dist/cjs/connectkit/hooks/useConnectCallback.native.js.map +1 -1
  153. package/dist/cjs/connectkit/hooks/useConnectors.cjs +1 -5
  154. package/dist/cjs/connectkit/hooks/useConnectors.native.js +1 -5
  155. package/dist/cjs/connectkit/hooks/useConnectors.native.js.map +1 -1
  156. package/dist/cjs/connectkit/hooks/useEnsFallbackConfig.native.js.map +1 -1
  157. package/dist/cjs/connectkit/hooks/useLastConnector.native.js.map +1 -1
  158. package/dist/cjs/connectkit/index.cjs +2 -0
  159. package/dist/cjs/connectkit/index.native.js +10 -8
  160. package/dist/cjs/connectkit/index.native.js.map +1 -1
  161. package/dist/cjs/connectkit/openConnector/context.native.js.map +1 -1
  162. package/dist/cjs/connectkit/openConnector/device.native.js.map +1 -1
  163. package/dist/cjs/connectkit/openConnector/index.native.js.map +1 -1
  164. package/dist/cjs/connectkit/openConnector/launcher.native.js.map +1 -1
  165. package/dist/cjs/connectkit/profileHeaderAction.native.js +1 -1
  166. package/dist/cjs/connectkit/profileHeaderAction.native.js.map +1 -1
  167. package/dist/cjs/connectkit/screens.cjs +1 -14
  168. package/dist/cjs/connectkit/screens.native.js +23 -40
  169. package/dist/cjs/connectkit/screens.native.js.map +1 -1
  170. package/dist/cjs/connectkit/siwe/SIWEContext.native.js.map +1 -1
  171. package/dist/cjs/connectkit/siwe/SIWEProvider.cjs +7 -7
  172. package/dist/cjs/connectkit/siwe/SIWEProvider.native.js +10 -9
  173. package/dist/cjs/connectkit/siwe/SIWEProvider.native.js.map +1 -1
  174. package/dist/cjs/connectkit/siwe/connectIntent.native.js.map +1 -1
  175. package/dist/cjs/connectkit/siwe/index.native.js.map +1 -1
  176. package/dist/cjs/connectkit/siwe/useSIWE.native.js.map +1 -1
  177. package/dist/cjs/connectkit/useWeb3Modal.native.js +2 -2
  178. package/dist/cjs/connectkit/useWeb3Modal.native.js.map +1 -1
  179. package/dist/cjs/connectkit/wallets/index.cjs +4 -3
  180. package/dist/cjs/connectkit/wallets/index.native.js +4 -3
  181. package/dist/cjs/connectkit/wallets/index.native.js.map +1 -1
  182. package/dist/cjs/connectkit/wallets/useWallets.cjs +7 -22
  183. package/dist/cjs/connectkit/wallets/useWallets.native.js +6 -22
  184. package/dist/cjs/connectkit/wallets/useWallets.native.js.map +1 -1
  185. package/dist/cjs/connectkit/wallets/walletConfigs.cjs +3 -62
  186. package/dist/cjs/connectkit/wallets/walletConfigs.native.js +2 -65
  187. package/dist/cjs/connectkit/wallets/walletConfigs.native.js.map +1 -1
  188. package/dist/cjs/connectkit/web3Bridge.cjs +2 -6
  189. package/dist/cjs/connectkit/web3Bridge.native.js +4 -9
  190. package/dist/cjs/connectkit/web3Bridge.native.js.map +1 -1
  191. package/dist/cjs/connectkit/web3Provider.native.js.map +1 -1
  192. package/dist/cjs/esbuild.cjs +54 -0
  193. package/dist/cjs/esbuild.native.js +57 -0
  194. package/dist/cjs/esbuild.native.js.map +1 -0
  195. package/dist/cjs/examples/LockContract.native.js.map +1 -1
  196. package/dist/cjs/examples/index.native.js.map +1 -1
  197. package/dist/cjs/hooks/index.native.js.map +1 -1
  198. package/dist/cjs/hooks/useContractRead.native.js.map +1 -1
  199. package/dist/cjs/hooks/useContractWrite.native.js.map +1 -1
  200. package/dist/cjs/hooks/useWallet.cjs +1 -2
  201. package/dist/cjs/hooks/useWallet.native.js +1 -4
  202. package/dist/cjs/hooks/useWallet.native.js.map +1 -1
  203. package/dist/cjs/index.cjs +2 -1
  204. package/dist/cjs/index.native.js +6 -5
  205. package/dist/cjs/index.native.js.map +1 -1
  206. package/dist/cjs/providers/WalletProvider.cjs +1 -2
  207. package/dist/cjs/providers/index.native.js.map +1 -1
  208. package/dist/cjs/providers/mockConnector.native.js.map +1 -1
  209. package/dist/cjs/providers/native/deepLink.cjs +1 -1
  210. package/dist/cjs/providers/native/deepLink.native.js +1 -1
  211. package/dist/cjs/providers/native/deepLink.native.js.map +1 -1
  212. package/dist/cjs/providers/native/inject.native.js.map +1 -1
  213. package/dist/cjs/providers/native/visibility.native.js.map +1 -1
  214. package/dist/cjs/providers/walletConfig.native.js.map +1 -1
  215. package/dist/cjs/siws/index.native.js.map +1 -1
  216. package/dist/cjs/siws/message.native.js.map +1 -1
  217. package/dist/cjs/siws/signWithBridge.native.js.map +1 -1
  218. package/dist/cjs/siws/verify.native.js.map +1 -1
  219. package/dist/cjs/solana.cjs +41 -0
  220. package/dist/cjs/solana.native.js +44 -0
  221. package/dist/cjs/solana.native.js.map +1 -0
  222. package/dist/cjs/vite.cjs +76 -0
  223. package/dist/cjs/vite.native.js +79 -0
  224. package/dist/cjs/vite.native.js.map +1 -0
  225. package/dist/esm/bundler/metaMaskConnectTimeouts.mjs +64 -0
  226. package/dist/esm/bundler/metaMaskConnectTimeouts.mjs.map +1 -0
  227. package/dist/esm/bundler/metaMaskConnectTimeouts.native.js +92 -0
  228. package/dist/esm/bundler/metaMaskConnectTimeouts.native.js.map +1 -0
  229. package/dist/esm/clients/adapter.mjs +8 -0
  230. package/dist/esm/clients/adapter.mjs.map +1 -0
  231. package/dist/esm/clients/adapter.native.js +8 -0
  232. package/dist/esm/clients/adapter.native.js.map +1 -0
  233. package/dist/esm/clients/bitcoin.mjs +21 -0
  234. package/dist/esm/clients/bitcoin.mjs.map +1 -0
  235. package/dist/esm/clients/bitcoin.native.js +23 -0
  236. package/dist/esm/clients/bitcoin.native.js.map +1 -0
  237. package/dist/esm/clients/connector.mjs +20 -0
  238. package/dist/esm/clients/connector.mjs.map +1 -0
  239. package/dist/esm/clients/connector.native.js +21 -0
  240. package/dist/esm/clients/connector.native.js.map +1 -0
  241. package/dist/esm/clients/evm.mjs +146 -0
  242. package/dist/esm/clients/evm.mjs.map +1 -0
  243. package/dist/esm/clients/evm.native.js +170 -0
  244. package/dist/esm/clients/evm.native.js.map +1 -0
  245. package/dist/esm/clients/gpg.mjs +3 -0
  246. package/dist/esm/clients/gpg.mjs.map +1 -0
  247. package/dist/esm/clients/gpg.native.js +3 -0
  248. package/dist/esm/clients/gpg.native.js.map +1 -0
  249. package/dist/esm/clients/hooks.mjs +51 -0
  250. package/dist/esm/clients/hooks.mjs.map +1 -0
  251. package/dist/esm/clients/hooks.native.js +55 -0
  252. package/dist/esm/clients/hooks.native.js.map +1 -0
  253. package/dist/esm/clients/index.mjs +11 -0
  254. package/dist/esm/clients/index.mjs.map +1 -0
  255. package/dist/esm/clients/index.native.js +11 -0
  256. package/dist/esm/clients/index.native.js.map +1 -0
  257. package/dist/esm/clients/solana.mjs +289 -0
  258. package/dist/esm/clients/solana.mjs.map +1 -0
  259. package/dist/esm/clients/solana.native.js +475 -0
  260. package/dist/esm/clients/solana.native.js.map +1 -0
  261. package/dist/esm/clients/solanaMessage.mjs +13 -0
  262. package/dist/esm/clients/solanaMessage.mjs.map +1 -0
  263. package/dist/esm/clients/solanaMessage.native.js +16 -0
  264. package/dist/esm/clients/solanaMessage.native.js.map +1 -0
  265. package/dist/esm/clients/sui.mjs +21 -0
  266. package/dist/esm/clients/sui.mjs.map +1 -0
  267. package/dist/esm/clients/sui.native.js +23 -0
  268. package/dist/esm/clients/sui.native.js.map +1 -0
  269. package/dist/esm/clients/types.mjs +12 -0
  270. package/dist/esm/clients/types.mjs.map +1 -0
  271. package/dist/esm/clients/types.native.js +132 -0
  272. package/dist/esm/clients/types.native.js.map +1 -0
  273. package/dist/esm/clients/useSolanaClient.mjs +25 -0
  274. package/dist/esm/clients/useSolanaClient.mjs.map +1 -0
  275. package/dist/esm/clients/useSolanaClient.native.js +29 -0
  276. package/dist/esm/clients/useSolanaClient.native.js.map +1 -0
  277. package/dist/esm/clients/walletStandard.mjs +33 -0
  278. package/dist/esm/clients/walletStandard.mjs.map +1 -0
  279. package/dist/esm/clients/walletStandard.native.js +38 -0
  280. package/dist/esm/clients/walletStandard.native.js.map +1 -0
  281. package/dist/esm/connectkit/components/Common/ConnectorList/index.mjs +11 -30
  282. package/dist/esm/connectkit/components/Common/ConnectorList/index.mjs.map +1 -1
  283. package/dist/esm/connectkit/components/Common/ConnectorList/index.native.js +12 -33
  284. package/dist/esm/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
  285. package/dist/esm/connectkit/components/ConnectModal/ConnectUsing.mjs +4 -38
  286. package/dist/esm/connectkit/components/ConnectModal/ConnectUsing.mjs.map +1 -1
  287. package/dist/esm/connectkit/components/ConnectModal/ConnectUsing.native.js +4 -42
  288. package/dist/esm/connectkit/components/ConnectModal/ConnectUsing.native.js.map +1 -1
  289. package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.mjs +1 -15
  290. package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.mjs.map +1 -1
  291. package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js +8 -63
  292. package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
  293. package/dist/esm/connectkit/components/ConnectModal/demo.mjs +0 -15
  294. package/dist/esm/connectkit/components/ConnectModal/demo.mjs.map +1 -1
  295. package/dist/esm/connectkit/components/ConnectModal/demo.native.js +0 -15
  296. package/dist/esm/connectkit/components/ConnectModal/demo.native.js.map +1 -1
  297. package/dist/esm/connectkit/components/contexts/web3/index.mjs +0 -15
  298. package/dist/esm/connectkit/components/contexts/web3/index.mjs.map +1 -1
  299. package/dist/esm/connectkit/components/contexts/web3/index.native.js +0 -17
  300. package/dist/esm/connectkit/components/contexts/web3/index.native.js.map +1 -1
  301. package/dist/esm/connectkit/connectors/aaveAccountConnector.mjs +31 -0
  302. package/dist/esm/connectkit/connectors/aaveAccountConnector.mjs.map +1 -0
  303. package/dist/esm/connectkit/connectors/aaveAccountConnector.native.js +38 -0
  304. package/dist/esm/connectkit/connectors/aaveAccountConnector.native.js.map +1 -0
  305. package/dist/esm/connectkit/connectors/embeddedDesktop.mjs +1 -1
  306. package/dist/esm/connectkit/connectors/embeddedDesktop.mjs.map +1 -1
  307. package/dist/esm/connectkit/connectors/embeddedDesktop.native.js +1 -1
  308. package/dist/esm/connectkit/connectors/embeddedDesktop.native.js.map +1 -1
  309. package/dist/esm/connectkit/connectors/metaMaskConnectConnector.mjs +216 -0
  310. package/dist/esm/connectkit/connectors/metaMaskConnectConnector.mjs.map +1 -0
  311. package/dist/esm/connectkit/connectors/metaMaskConnectConnector.native.js +273 -0
  312. package/dist/esm/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -0
  313. package/dist/esm/connectkit/connectors/walletAdapterConnector.mjs +2 -0
  314. package/dist/esm/connectkit/connectors/walletAdapterConnector.mjs.map +1 -1
  315. package/dist/esm/connectkit/connectors/walletAdapterConnector.native.js +2 -0
  316. package/dist/esm/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
  317. package/dist/esm/connectkit/defaultConfig.mjs +8 -2
  318. package/dist/esm/connectkit/defaultConfig.mjs.map +1 -1
  319. package/dist/esm/connectkit/defaultConfig.native.js +8 -2
  320. package/dist/esm/connectkit/defaultConfig.native.js.map +1 -1
  321. package/dist/esm/connectkit/defaultConnectors.mjs +16 -34
  322. package/dist/esm/connectkit/defaultConnectors.mjs.map +1 -1
  323. package/dist/esm/connectkit/defaultConnectors.native.js +16 -34
  324. package/dist/esm/connectkit/defaultConnectors.native.js.map +1 -1
  325. package/dist/esm/connectkit/hooks/useConnectors.mjs +1 -4
  326. package/dist/esm/connectkit/hooks/useConnectors.mjs.map +1 -1
  327. package/dist/esm/connectkit/hooks/useConnectors.native.js +1 -4
  328. package/dist/esm/connectkit/hooks/useConnectors.native.js.map +1 -1
  329. package/dist/esm/connectkit/index.mjs +2 -1
  330. package/dist/esm/connectkit/index.mjs.map +1 -1
  331. package/dist/esm/connectkit/index.native.js +2 -1
  332. package/dist/esm/connectkit/index.native.js.map +1 -1
  333. package/dist/esm/connectkit/screens.mjs +1 -14
  334. package/dist/esm/connectkit/screens.mjs.map +1 -1
  335. package/dist/esm/connectkit/screens.native.js +16 -33
  336. package/dist/esm/connectkit/screens.native.js.map +1 -1
  337. package/dist/esm/connectkit/siwe/SIWEProvider.mjs +7 -7
  338. package/dist/esm/connectkit/siwe/SIWEProvider.mjs.map +1 -1
  339. package/dist/esm/connectkit/siwe/SIWEProvider.native.js +10 -9
  340. package/dist/esm/connectkit/siwe/SIWEProvider.native.js.map +1 -1
  341. package/dist/esm/connectkit/wallets/index.mjs +3 -2
  342. package/dist/esm/connectkit/wallets/index.mjs.map +1 -1
  343. package/dist/esm/connectkit/wallets/index.native.js +3 -2
  344. package/dist/esm/connectkit/wallets/index.native.js.map +1 -1
  345. package/dist/esm/connectkit/wallets/useWallets.mjs +2 -17
  346. package/dist/esm/connectkit/wallets/useWallets.mjs.map +1 -1
  347. package/dist/esm/connectkit/wallets/useWallets.native.js +1 -17
  348. package/dist/esm/connectkit/wallets/useWallets.native.js.map +1 -1
  349. package/dist/esm/connectkit/wallets/walletConfigs.mjs +4 -63
  350. package/dist/esm/connectkit/wallets/walletConfigs.mjs.map +1 -1
  351. package/dist/esm/connectkit/wallets/walletConfigs.native.js +3 -66
  352. package/dist/esm/connectkit/wallets/walletConfigs.native.js.map +1 -1
  353. package/dist/esm/connectkit/web3Bridge.mjs +3 -7
  354. package/dist/esm/connectkit/web3Bridge.mjs.map +1 -1
  355. package/dist/esm/connectkit/web3Bridge.native.js +3 -8
  356. package/dist/esm/connectkit/web3Bridge.native.js.map +1 -1
  357. package/dist/esm/esbuild.mjs +29 -0
  358. package/dist/esm/esbuild.mjs.map +1 -0
  359. package/dist/esm/esbuild.native.js +29 -0
  360. package/dist/esm/esbuild.native.js.map +1 -0
  361. package/dist/esm/hooks/useWallet.mjs +1 -2
  362. package/dist/esm/hooks/useWallet.mjs.map +1 -1
  363. package/dist/esm/hooks/useWallet.native.js +1 -4
  364. package/dist/esm/hooks/useWallet.native.js.map +1 -1
  365. package/dist/esm/index.mjs +1 -0
  366. package/dist/esm/index.mjs.map +1 -1
  367. package/dist/esm/index.native.js +1 -0
  368. package/dist/esm/index.native.js.map +1 -1
  369. package/dist/esm/providers/WalletProvider.mjs +1 -2
  370. package/dist/esm/providers/WalletProvider.mjs.map +1 -1
  371. package/dist/esm/providers/native/deepLink.mjs +1 -1
  372. package/dist/esm/providers/native/deepLink.mjs.map +1 -1
  373. package/dist/esm/providers/native/deepLink.native.js +1 -1
  374. package/dist/esm/providers/native/deepLink.native.js.map +1 -1
  375. package/dist/esm/providers/walletConfig.mjs.map +1 -1
  376. package/dist/esm/providers/walletConfig.native.js.map +1 -1
  377. package/dist/esm/solana.mjs +5 -0
  378. package/dist/esm/solana.mjs.map +1 -0
  379. package/dist/esm/solana.native.js +5 -0
  380. package/dist/esm/solana.native.js.map +1 -0
  381. package/dist/esm/vite.mjs +51 -0
  382. package/dist/esm/vite.mjs.map +1 -0
  383. package/dist/esm/vite.native.js +51 -0
  384. package/dist/esm/vite.native.js.map +1 -0
  385. package/dist/jsx/bundler/metaMaskConnectTimeouts.mjs +64 -0
  386. package/dist/jsx/bundler/metaMaskConnectTimeouts.mjs.map +1 -0
  387. package/dist/jsx/bundler/metaMaskConnectTimeouts.native.js +123 -0
  388. package/dist/jsx/bundler/metaMaskConnectTimeouts.native.js.map +1 -0
  389. package/dist/jsx/clients/adapter.mjs +8 -0
  390. package/dist/jsx/clients/adapter.mjs.map +1 -0
  391. package/dist/jsx/clients/adapter.native.js +36 -0
  392. package/dist/jsx/clients/adapter.native.js.map +1 -0
  393. package/dist/jsx/clients/bitcoin.mjs +21 -0
  394. package/dist/jsx/clients/bitcoin.mjs.map +1 -0
  395. package/dist/jsx/clients/bitcoin.native.js +51 -0
  396. package/dist/jsx/clients/bitcoin.native.js.map +1 -0
  397. package/dist/jsx/clients/connector.mjs +20 -0
  398. package/dist/jsx/clients/connector.mjs.map +1 -0
  399. package/dist/jsx/clients/connector.native.js +49 -0
  400. package/dist/jsx/clients/connector.native.js.map +1 -0
  401. package/dist/jsx/clients/evm.mjs +146 -0
  402. package/dist/jsx/clients/evm.mjs.map +1 -0
  403. package/dist/jsx/clients/evm.native.js +198 -0
  404. package/dist/jsx/clients/evm.native.js.map +1 -0
  405. package/dist/jsx/clients/gpg.mjs +3 -0
  406. package/dist/jsx/clients/gpg.mjs.map +1 -0
  407. package/dist/jsx/clients/gpg.native.js +34 -0
  408. package/dist/jsx/clients/gpg.native.js.map +1 -0
  409. package/dist/jsx/clients/hooks.mjs +51 -0
  410. package/dist/jsx/clients/hooks.mjs.map +1 -0
  411. package/dist/jsx/clients/hooks.native.js +85 -0
  412. package/dist/jsx/clients/hooks.native.js.map +1 -0
  413. package/dist/jsx/clients/index.mjs +11 -0
  414. package/dist/jsx/clients/index.mjs.map +1 -0
  415. package/dist/jsx/clients/index.native.js +52 -0
  416. package/dist/jsx/clients/index.native.js.map +1 -0
  417. package/dist/jsx/clients/solana.mjs +289 -0
  418. package/dist/jsx/clients/solana.mjs.map +1 -0
  419. package/dist/jsx/clients/solana.native.js +511 -0
  420. package/dist/jsx/clients/solana.native.js.map +1 -0
  421. package/dist/jsx/clients/solanaMessage.mjs +13 -0
  422. package/dist/jsx/clients/solanaMessage.mjs.map +1 -0
  423. package/dist/jsx/clients/solanaMessage.native.js +44 -0
  424. package/dist/jsx/clients/solanaMessage.native.js.map +1 -0
  425. package/dist/jsx/clients/sui.mjs +21 -0
  426. package/dist/jsx/clients/sui.mjs.map +1 -0
  427. package/dist/jsx/clients/sui.native.js +51 -0
  428. package/dist/jsx/clients/sui.native.js.map +1 -0
  429. package/dist/jsx/clients/types.mjs +12 -0
  430. package/dist/jsx/clients/types.mjs.map +1 -0
  431. package/dist/jsx/clients/types.native.js +160 -0
  432. package/dist/jsx/clients/types.native.js.map +1 -0
  433. package/dist/jsx/clients/useSolanaClient.mjs +25 -0
  434. package/dist/jsx/clients/useSolanaClient.mjs.map +1 -0
  435. package/dist/jsx/clients/useSolanaClient.native.js +57 -0
  436. package/dist/jsx/clients/useSolanaClient.native.js.map +1 -0
  437. package/dist/jsx/clients/walletStandard.mjs +33 -0
  438. package/dist/jsx/clients/walletStandard.mjs.map +1 -0
  439. package/dist/jsx/clients/walletStandard.native.js +71 -0
  440. package/dist/jsx/clients/walletStandard.native.js.map +1 -0
  441. package/dist/jsx/connectkit/components/Common/ConnectorList/index.mjs +11 -30
  442. package/dist/jsx/connectkit/components/Common/ConnectorList/index.mjs.map +1 -1
  443. package/dist/jsx/connectkit/components/Common/ConnectorList/index.native.js +11 -32
  444. package/dist/jsx/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
  445. package/dist/jsx/connectkit/components/ConnectModal/ConnectUsing.mjs +4 -38
  446. package/dist/jsx/connectkit/components/ConnectModal/ConnectUsing.mjs.map +1 -1
  447. package/dist/jsx/connectkit/components/ConnectModal/ConnectUsing.native.js +4 -42
  448. package/dist/jsx/connectkit/components/ConnectModal/ConnectUsing.native.js.map +1 -1
  449. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.mjs +1 -15
  450. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.mjs.map +1 -1
  451. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js +7 -62
  452. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
  453. package/dist/jsx/connectkit/components/ConnectModal/demo.mjs +0 -15
  454. package/dist/jsx/connectkit/components/ConnectModal/demo.mjs.map +1 -1
  455. package/dist/jsx/connectkit/components/ConnectModal/demo.native.js +0 -15
  456. package/dist/jsx/connectkit/components/ConnectModal/demo.native.js.map +1 -1
  457. package/dist/jsx/connectkit/components/contexts/web3/index.mjs +0 -15
  458. package/dist/jsx/connectkit/components/contexts/web3/index.mjs.map +1 -1
  459. package/dist/jsx/connectkit/components/contexts/web3/index.native.js +0 -17
  460. package/dist/jsx/connectkit/components/contexts/web3/index.native.js.map +1 -1
  461. package/dist/jsx/connectkit/connectors/aaveAccountConnector.mjs +31 -0
  462. package/dist/jsx/connectkit/connectors/aaveAccountConnector.mjs.map +1 -0
  463. package/dist/jsx/connectkit/connectors/aaveAccountConnector.native.js +67 -0
  464. package/dist/jsx/connectkit/connectors/aaveAccountConnector.native.js.map +1 -0
  465. package/dist/jsx/connectkit/connectors/embeddedDesktop.mjs +1 -1
  466. package/dist/jsx/connectkit/connectors/embeddedDesktop.mjs.map +1 -1
  467. package/dist/jsx/connectkit/connectors/embeddedDesktop.native.js +1 -1
  468. package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.mjs +216 -0
  469. package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.mjs.map +1 -0
  470. package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.native.js +315 -0
  471. package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -0
  472. package/dist/jsx/connectkit/connectors/walletAdapterConnector.mjs +2 -0
  473. package/dist/jsx/connectkit/connectors/walletAdapterConnector.mjs.map +1 -1
  474. package/dist/jsx/connectkit/connectors/walletAdapterConnector.native.js +2 -0
  475. package/dist/jsx/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
  476. package/dist/jsx/connectkit/defaultConfig.mjs +8 -2
  477. package/dist/jsx/connectkit/defaultConfig.mjs.map +1 -1
  478. package/dist/jsx/connectkit/defaultConfig.native.js +8 -2
  479. package/dist/jsx/connectkit/defaultConfig.native.js.map +1 -1
  480. package/dist/jsx/connectkit/defaultConnectors.mjs +16 -34
  481. package/dist/jsx/connectkit/defaultConnectors.mjs.map +1 -1
  482. package/dist/jsx/connectkit/defaultConnectors.native.js +19 -37
  483. package/dist/jsx/connectkit/defaultConnectors.native.js.map +1 -1
  484. package/dist/jsx/connectkit/hooks/useConnectors.mjs +1 -4
  485. package/dist/jsx/connectkit/hooks/useConnectors.mjs.map +1 -1
  486. package/dist/jsx/connectkit/hooks/useConnectors.native.js +1 -5
  487. package/dist/jsx/connectkit/hooks/useConnectors.native.js.map +1 -1
  488. package/dist/jsx/connectkit/index.mjs +2 -1
  489. package/dist/jsx/connectkit/index.mjs.map +1 -1
  490. package/dist/jsx/connectkit/index.native.js +2 -0
  491. package/dist/jsx/connectkit/index.native.js.map +1 -1
  492. package/dist/jsx/connectkit/screens.mjs +1 -14
  493. package/dist/jsx/connectkit/screens.mjs.map +1 -1
  494. package/dist/jsx/connectkit/screens.native.js +16 -33
  495. package/dist/jsx/connectkit/screens.native.js.map +1 -1
  496. package/dist/jsx/connectkit/siwe/SIWEProvider.mjs +7 -7
  497. package/dist/jsx/connectkit/siwe/SIWEProvider.mjs.map +1 -1
  498. package/dist/jsx/connectkit/siwe/SIWEProvider.native.js +10 -9
  499. package/dist/jsx/connectkit/siwe/SIWEProvider.native.js.map +1 -1
  500. package/dist/jsx/connectkit/wallets/index.mjs +3 -2
  501. package/dist/jsx/connectkit/wallets/index.mjs.map +1 -1
  502. package/dist/jsx/connectkit/wallets/index.native.js +4 -3
  503. package/dist/jsx/connectkit/wallets/index.native.js.map +1 -1
  504. package/dist/jsx/connectkit/wallets/useWallets.mjs +2 -17
  505. package/dist/jsx/connectkit/wallets/useWallets.mjs.map +1 -1
  506. package/dist/jsx/connectkit/wallets/useWallets.native.js +6 -22
  507. package/dist/jsx/connectkit/wallets/useWallets.native.js.map +1 -1
  508. package/dist/jsx/connectkit/wallets/walletConfigs.mjs +4 -63
  509. package/dist/jsx/connectkit/wallets/walletConfigs.mjs.map +1 -1
  510. package/dist/jsx/connectkit/wallets/walletConfigs.native.js +2 -65
  511. package/dist/jsx/connectkit/wallets/walletConfigs.native.js.map +1 -1
  512. package/dist/jsx/connectkit/web3Bridge.mjs +3 -7
  513. package/dist/jsx/connectkit/web3Bridge.mjs.map +1 -1
  514. package/dist/jsx/connectkit/web3Bridge.native.js +2 -7
  515. package/dist/jsx/connectkit/web3Bridge.native.js.map +1 -1
  516. package/dist/jsx/esbuild.mjs +29 -0
  517. package/dist/jsx/esbuild.mjs.map +1 -0
  518. package/dist/jsx/esbuild.native.js +57 -0
  519. package/dist/jsx/esbuild.native.js.map +1 -0
  520. package/dist/jsx/hooks/useWallet.mjs +1 -2
  521. package/dist/jsx/hooks/useWallet.mjs.map +1 -1
  522. package/dist/jsx/hooks/useWallet.native.js +1 -4
  523. package/dist/jsx/hooks/useWallet.native.js.map +1 -1
  524. package/dist/jsx/index.js +1 -0
  525. package/dist/jsx/index.js.map +1 -1
  526. package/dist/jsx/index.mjs +1 -0
  527. package/dist/jsx/index.mjs.map +1 -1
  528. package/dist/jsx/index.native.js +1 -0
  529. package/dist/jsx/index.native.js.map +1 -1
  530. package/dist/jsx/providers/WalletProvider.mjs +1 -2
  531. package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
  532. package/dist/jsx/providers/native/deepLink.mjs +1 -1
  533. package/dist/jsx/providers/native/deepLink.mjs.map +1 -1
  534. package/dist/jsx/providers/native/deepLink.native.js +1 -1
  535. package/dist/jsx/providers/native/deepLink.native.js.map +1 -1
  536. package/dist/jsx/providers/walletConfig.mjs.map +1 -1
  537. package/dist/jsx/providers/walletConfig.native.js.map +1 -1
  538. package/dist/jsx/solana.mjs +5 -0
  539. package/dist/jsx/solana.mjs.map +1 -0
  540. package/dist/jsx/solana.native.js +44 -0
  541. package/dist/jsx/solana.native.js.map +1 -0
  542. package/dist/jsx/vite.mjs +51 -0
  543. package/dist/jsx/vite.mjs.map +1 -0
  544. package/dist/jsx/vite.native.js +79 -0
  545. package/dist/jsx/vite.native.js.map +1 -0
  546. package/package.json +29 -10
  547. package/src/bundler/metaMaskConnectTimeouts.spec.ts +390 -0
  548. package/src/bundler/metaMaskConnectTimeouts.ts +126 -0
  549. package/src/clients/adapter.ts +13 -0
  550. package/src/clients/bitcoin.ts +42 -0
  551. package/src/clients/connector.spec.ts +78 -0
  552. package/src/clients/connector.ts +36 -0
  553. package/src/clients/evm.spec.ts +265 -0
  554. package/src/clients/evm.ts +223 -0
  555. package/src/clients/gpg.spec.ts +169 -0
  556. package/src/clients/gpg.ts +8 -0
  557. package/src/clients/hooks.spec.tsx +113 -0
  558. package/src/clients/hooks.ts +51 -0
  559. package/src/clients/index.ts +40 -0
  560. package/src/clients/solana.spec.ts +444 -0
  561. package/src/clients/solana.ts +465 -0
  562. package/src/clients/solanaMessage.ts +34 -0
  563. package/src/clients/sui.ts +42 -0
  564. package/src/clients/types.ts +40 -0
  565. package/src/clients/useSolanaClient.ts +31 -0
  566. package/src/clients/walletStandard.ts +87 -0
  567. package/src/connectkit/adapters/SolanaAdapter.ts +1 -1
  568. package/src/connectkit/adapters/discover.ts +1 -1
  569. package/src/connectkit/components/Common/ConnectorList/index.tsx +20 -50
  570. package/src/connectkit/components/ConnectModal/ConnectUsing.tsx +11 -62
  571. package/src/connectkit/components/ConnectModal/ConnectWithInjector/index.tsx +10 -70
  572. package/src/connectkit/components/ConnectModal/demo.tsx +1 -19
  573. package/src/connectkit/components/contexts/web3/index.tsx +1 -23
  574. package/src/connectkit/connectors/aaveAccountConnector.spec.ts +87 -0
  575. package/src/connectkit/connectors/aaveAccountConnector.ts +43 -0
  576. package/src/connectkit/connectors/embeddedDesktop.spec.ts +5 -5
  577. package/src/connectkit/connectors/embeddedDesktop.ts +5 -5
  578. package/src/connectkit/connectors/metaMaskConnectConnector.spec.ts +230 -0
  579. package/src/connectkit/connectors/metaMaskConnectConnector.ts +272 -0
  580. package/src/connectkit/connectors/walletAdapterConnector.ts +2 -0
  581. package/src/connectkit/defaultConfig.ts +16 -7
  582. package/src/connectkit/defaultConnectors.ts +19 -40
  583. package/src/connectkit/hooks/useConnectors.ts +0 -10
  584. package/src/connectkit/index.ts +4 -0
  585. package/src/connectkit/screens.tsx +1 -21
  586. package/src/connectkit/siwe/SIWEProvider.spec.tsx +180 -0
  587. package/src/connectkit/siwe/SIWEProvider.tsx +11 -13
  588. package/src/connectkit/wallets/index.ts +5 -2
  589. package/src/connectkit/wallets/useWallets.tsx +1 -20
  590. package/src/connectkit/wallets/walletConfigs.tsx +2 -64
  591. package/src/connectkit/web3Bridge.tsx +4 -21
  592. package/src/esbuild.ts +42 -0
  593. package/src/hooks/useWallet.spec.ts +6 -15
  594. package/src/hooks/useWallet.ts +1 -2
  595. package/src/index.ts +4 -0
  596. package/src/providers/WalletProvider.native.tsx +1 -1
  597. package/src/providers/WalletProvider.tsx +5 -7
  598. package/src/providers/mockConnector.ts +2 -2
  599. package/src/providers/native/deepLink.spec.ts +3 -4
  600. package/src/providers/native/deepLink.ts +1 -2
  601. package/src/providers/native/inject.spec.ts +1 -1
  602. package/src/providers/walletConfig.spec.ts +1 -1
  603. package/src/providers/walletConfig.ts +2 -1
  604. package/src/solana.ts +30 -0
  605. package/src/vite.ts +60 -0
  606. package/types/bundler/metaMaskConnectTimeouts.d.ts +36 -0
  607. package/types/bundler/metaMaskConnectTimeouts.d.ts.map +1 -0
  608. package/types/clients/adapter.d.ts +5 -0
  609. package/types/clients/adapter.d.ts.map +1 -0
  610. package/types/clients/bitcoin.d.ts +21 -0
  611. package/types/clients/bitcoin.d.ts.map +1 -0
  612. package/types/clients/connector.d.ts +14 -0
  613. package/types/clients/connector.d.ts.map +1 -0
  614. package/types/clients/evm.d.ts +68 -0
  615. package/types/clients/evm.d.ts.map +1 -0
  616. package/types/clients/gpg.d.ts +2 -0
  617. package/types/clients/gpg.d.ts.map +1 -0
  618. package/types/clients/hooks.d.ts +16 -0
  619. package/types/clients/hooks.d.ts.map +1 -0
  620. package/types/clients/index.d.ts +10 -0
  621. package/types/clients/index.d.ts.map +1 -0
  622. package/types/clients/solana.d.ts +111 -0
  623. package/types/clients/solana.d.ts.map +1 -0
  624. package/types/clients/solanaMessage.d.ts +18 -0
  625. package/types/clients/solanaMessage.d.ts.map +1 -0
  626. package/types/clients/sui.d.ts +21 -0
  627. package/types/clients/sui.d.ts.map +1 -0
  628. package/types/clients/types.d.ts +27 -0
  629. package/types/clients/types.d.ts.map +1 -0
  630. package/types/clients/useSolanaClient.d.ts +11 -0
  631. package/types/clients/useSolanaClient.d.ts.map +1 -0
  632. package/types/clients/walletStandard.d.ts +63 -0
  633. package/types/clients/walletStandard.d.ts.map +1 -0
  634. package/types/connectkit/adapters/discover.d.ts +1 -1
  635. package/types/connectkit/components/Common/ConnectorList/index.d.ts.map +1 -1
  636. package/types/connectkit/components/ConnectModal/ConnectUsing.d.ts.map +1 -1
  637. package/types/connectkit/components/ConnectModal/ConnectWithInjector/index.d.ts +0 -1
  638. package/types/connectkit/components/ConnectModal/ConnectWithInjector/index.d.ts.map +1 -1
  639. package/types/connectkit/components/ConnectModal/demo.d.ts.map +1 -1
  640. package/types/connectkit/components/contexts/web3/index.d.ts +1 -5
  641. package/types/connectkit/components/contexts/web3/index.d.ts.map +1 -1
  642. package/types/connectkit/connectors/aaveAccountConnector.d.ts +5 -0
  643. package/types/connectkit/connectors/aaveAccountConnector.d.ts.map +1 -0
  644. package/types/connectkit/connectors/embeddedDesktop.d.ts +4 -4
  645. package/types/connectkit/connectors/embeddedDesktop.d.ts.map +1 -1
  646. package/types/connectkit/connectors/metaMaskConnectConnector.d.ts +35 -0
  647. package/types/connectkit/connectors/metaMaskConnectConnector.d.ts.map +1 -0
  648. package/types/connectkit/connectors/walletAdapterConnector.d.ts.map +1 -1
  649. package/types/connectkit/defaultConfig.d.ts +3 -2
  650. package/types/connectkit/defaultConfig.d.ts.map +1 -1
  651. package/types/connectkit/defaultConnectors.d.ts +3 -4
  652. package/types/connectkit/defaultConnectors.d.ts.map +1 -1
  653. package/types/connectkit/hooks/useConnectors.d.ts +0 -1
  654. package/types/connectkit/hooks/useConnectors.d.ts.map +1 -1
  655. package/types/connectkit/index.d.ts +1 -0
  656. package/types/connectkit/index.d.ts.map +1 -1
  657. package/types/connectkit/screens.d.ts +0 -4
  658. package/types/connectkit/screens.d.ts.map +1 -1
  659. package/types/connectkit/siwe/SIWEProvider.d.ts.map +1 -1
  660. package/types/connectkit/wallets/index.d.ts.map +1 -1
  661. package/types/connectkit/wallets/useWallets.d.ts.map +1 -1
  662. package/types/connectkit/wallets/walletConfigs.d.ts +0 -2
  663. package/types/connectkit/wallets/walletConfigs.d.ts.map +1 -1
  664. package/types/connectkit/web3Bridge.d.ts.map +1 -1
  665. package/types/esbuild.d.ts +31 -0
  666. package/types/esbuild.d.ts.map +1 -0
  667. package/types/hooks/useWallet.d.ts.map +1 -1
  668. package/types/index.d.ts +1 -0
  669. package/types/index.d.ts.map +1 -1
  670. package/types/providers/WalletProvider.d.ts.map +1 -1
  671. package/types/providers/mockConnector.d.ts +2 -2
  672. package/types/providers/native/deepLink.d.ts +1 -1
  673. package/types/providers/native/deepLink.d.ts.map +1 -1
  674. package/types/providers/walletConfig.d.ts +2 -1
  675. package/types/providers/walletConfig.d.ts.map +1 -1
  676. package/types/solana.d.ts +4 -0
  677. package/types/solana.d.ts.map +1 -0
  678. package/types/vite.d.ts +12 -0
  679. package/types/vite.d.ts.map +1 -0
  680. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithQRCode.cjs +0 -133
  681. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithQRCode.native.js +0 -179
  682. package/dist/cjs/connectkit/components/ConnectModal/ConnectWithQRCode.native.js.map +0 -1
  683. package/dist/cjs/connectkit/components/Pages/MobileConnectors/index.cjs +0 -158
  684. package/dist/cjs/connectkit/components/Pages/MobileConnectors/index.native.js +0 -183
  685. package/dist/cjs/connectkit/components/Pages/MobileConnectors/index.native.js.map +0 -1
  686. package/dist/cjs/connectkit/components/Pages/MobileConnectors/styles.cjs +0 -90
  687. package/dist/cjs/connectkit/components/Pages/MobileConnectors/styles.native.js +0 -99
  688. package/dist/cjs/connectkit/components/Pages/MobileConnectors/styles.native.js.map +0 -1
  689. package/dist/cjs/connectkit/connectors/metaMaskSdkConnector.cjs +0 -398
  690. package/dist/cjs/connectkit/connectors/metaMaskSdkConnector.native.js +0 -453
  691. package/dist/cjs/connectkit/connectors/metaMaskSdkConnector.native.js.map +0 -1
  692. package/dist/cjs/connectkit/hooks/connectors/useCoinbaseWalletUri.cjs +0 -0
  693. package/dist/cjs/connectkit/hooks/connectors/useCoinbaseWalletUri.native.js +0 -2
  694. package/dist/cjs/connectkit/hooks/connectors/useCoinbaseWalletUri.native.js.map +0 -1
  695. package/dist/cjs/connectkit/hooks/connectors/useWalletConnectUri.cjs +0 -113
  696. package/dist/cjs/connectkit/hooks/connectors/useWalletConnectUri.native.js +0 -117
  697. package/dist/cjs/connectkit/hooks/connectors/useWalletConnectUri.native.js.map +0 -1
  698. package/dist/cjs/connectkit/hooks/useWalletConnectModal.cjs +0 -74
  699. package/dist/cjs/connectkit/hooks/useWalletConnectModal.native.js +0 -79
  700. package/dist/cjs/connectkit/hooks/useWalletConnectModal.native.js.map +0 -1
  701. package/dist/esm/connectkit/components/ConnectModal/ConnectWithQRCode.mjs +0 -108
  702. package/dist/esm/connectkit/components/ConnectModal/ConnectWithQRCode.mjs.map +0 -1
  703. package/dist/esm/connectkit/components/ConnectModal/ConnectWithQRCode.native.js +0 -140
  704. package/dist/esm/connectkit/components/ConnectModal/ConnectWithQRCode.native.js.map +0 -1
  705. package/dist/esm/connectkit/components/Pages/MobileConnectors/index.mjs +0 -133
  706. package/dist/esm/connectkit/components/Pages/MobileConnectors/index.mjs.map +0 -1
  707. package/dist/esm/connectkit/components/Pages/MobileConnectors/index.native.js +0 -144
  708. package/dist/esm/connectkit/components/Pages/MobileConnectors/index.native.js.map +0 -1
  709. package/dist/esm/connectkit/components/Pages/MobileConnectors/styles.mjs +0 -61
  710. package/dist/esm/connectkit/components/Pages/MobileConnectors/styles.mjs.map +0 -1
  711. package/dist/esm/connectkit/components/Pages/MobileConnectors/styles.native.js +0 -67
  712. package/dist/esm/connectkit/components/Pages/MobileConnectors/styles.native.js.map +0 -1
  713. package/dist/esm/connectkit/connectors/metaMaskSdkConnector.mjs +0 -362
  714. package/dist/esm/connectkit/connectors/metaMaskSdkConnector.mjs.map +0 -1
  715. package/dist/esm/connectkit/connectors/metaMaskSdkConnector.native.js +0 -414
  716. package/dist/esm/connectkit/connectors/metaMaskSdkConnector.native.js.map +0 -1
  717. package/dist/esm/connectkit/hooks/connectors/useCoinbaseWalletUri.mjs +0 -2
  718. package/dist/esm/connectkit/hooks/connectors/useCoinbaseWalletUri.mjs.map +0 -1
  719. package/dist/esm/connectkit/hooks/connectors/useCoinbaseWalletUri.native.js +0 -2
  720. package/dist/esm/connectkit/hooks/connectors/useCoinbaseWalletUri.native.js.map +0 -1
  721. package/dist/esm/connectkit/hooks/connectors/useWalletConnectUri.mjs +0 -88
  722. package/dist/esm/connectkit/hooks/connectors/useWalletConnectUri.mjs.map +0 -1
  723. package/dist/esm/connectkit/hooks/connectors/useWalletConnectUri.native.js +0 -89
  724. package/dist/esm/connectkit/hooks/connectors/useWalletConnectUri.native.js.map +0 -1
  725. package/dist/esm/connectkit/hooks/useWalletConnectModal.mjs +0 -49
  726. package/dist/esm/connectkit/hooks/useWalletConnectModal.mjs.map +0 -1
  727. package/dist/esm/connectkit/hooks/useWalletConnectModal.native.js +0 -51
  728. package/dist/esm/connectkit/hooks/useWalletConnectModal.native.js.map +0 -1
  729. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithQRCode.mjs +0 -108
  730. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithQRCode.mjs.map +0 -1
  731. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithQRCode.native.js +0 -179
  732. package/dist/jsx/connectkit/components/ConnectModal/ConnectWithQRCode.native.js.map +0 -1
  733. package/dist/jsx/connectkit/components/Pages/MobileConnectors/index.mjs +0 -133
  734. package/dist/jsx/connectkit/components/Pages/MobileConnectors/index.mjs.map +0 -1
  735. package/dist/jsx/connectkit/components/Pages/MobileConnectors/index.native.js +0 -183
  736. package/dist/jsx/connectkit/components/Pages/MobileConnectors/index.native.js.map +0 -1
  737. package/dist/jsx/connectkit/components/Pages/MobileConnectors/styles.mjs +0 -61
  738. package/dist/jsx/connectkit/components/Pages/MobileConnectors/styles.mjs.map +0 -1
  739. package/dist/jsx/connectkit/components/Pages/MobileConnectors/styles.native.js +0 -99
  740. package/dist/jsx/connectkit/components/Pages/MobileConnectors/styles.native.js.map +0 -1
  741. package/dist/jsx/connectkit/connectors/metaMaskSdkConnector.mjs +0 -362
  742. package/dist/jsx/connectkit/connectors/metaMaskSdkConnector.mjs.map +0 -1
  743. package/dist/jsx/connectkit/connectors/metaMaskSdkConnector.native.js +0 -453
  744. package/dist/jsx/connectkit/connectors/metaMaskSdkConnector.native.js.map +0 -1
  745. package/dist/jsx/connectkit/hooks/connectors/useCoinbaseWalletUri.mjs +0 -2
  746. package/dist/jsx/connectkit/hooks/connectors/useCoinbaseWalletUri.mjs.map +0 -1
  747. package/dist/jsx/connectkit/hooks/connectors/useCoinbaseWalletUri.native.js +0 -2
  748. package/dist/jsx/connectkit/hooks/connectors/useCoinbaseWalletUri.native.js.map +0 -1
  749. package/dist/jsx/connectkit/hooks/connectors/useWalletConnectUri.mjs +0 -88
  750. package/dist/jsx/connectkit/hooks/connectors/useWalletConnectUri.mjs.map +0 -1
  751. package/dist/jsx/connectkit/hooks/connectors/useWalletConnectUri.native.js +0 -117
  752. package/dist/jsx/connectkit/hooks/connectors/useWalletConnectUri.native.js.map +0 -1
  753. package/dist/jsx/connectkit/hooks/useWalletConnectModal.mjs +0 -49
  754. package/dist/jsx/connectkit/hooks/useWalletConnectModal.mjs.map +0 -1
  755. package/dist/jsx/connectkit/hooks/useWalletConnectModal.native.js +0 -79
  756. package/dist/jsx/connectkit/hooks/useWalletConnectModal.native.js.map +0 -1
  757. package/src/connectkit/components/ConnectModal/ConnectWithQRCode.tsx +0 -188
  758. package/src/connectkit/components/Pages/MobileConnectors/index.tsx +0 -142
  759. package/src/connectkit/components/Pages/MobileConnectors/styles.ts +0 -66
  760. package/src/connectkit/connectors/metaMaskSdkConnector.ts +0 -505
  761. package/src/connectkit/hooks/connectors/useCoinbaseWalletUri.tsx +0 -101
  762. package/src/connectkit/hooks/connectors/useWalletConnectUri.ts +0 -99
  763. package/src/connectkit/hooks/useWalletConnectModal.tsx +0 -52
  764. package/types/connectkit/components/ConnectModal/ConnectWithQRCode.d.ts +0 -6
  765. package/types/connectkit/components/ConnectModal/ConnectWithQRCode.d.ts.map +0 -1
  766. package/types/connectkit/components/Pages/MobileConnectors/index.d.ts +0 -4
  767. package/types/connectkit/components/Pages/MobileConnectors/index.d.ts.map +0 -1
  768. package/types/connectkit/components/Pages/MobileConnectors/styles.d.ts +0 -6
  769. package/types/connectkit/components/Pages/MobileConnectors/styles.d.ts.map +0 -1
  770. package/types/connectkit/connectors/metaMaskSdkConnector.d.ts +0 -30
  771. package/types/connectkit/connectors/metaMaskSdkConnector.d.ts.map +0 -1
  772. package/types/connectkit/hooks/connectors/useCoinbaseWalletUri.d.ts +0 -1
  773. package/types/connectkit/hooks/connectors/useCoinbaseWalletUri.d.ts.map +0 -1
  774. package/types/connectkit/hooks/connectors/useWalletConnectUri.d.ts +0 -8
  775. package/types/connectkit/hooks/connectors/useWalletConnectUri.d.ts.map +0 -1
  776. package/types/connectkit/hooks/useWalletConnectModal.d.ts +0 -5
  777. package/types/connectkit/hooks/useWalletConnectModal.d.ts.map +0 -1
@@ -0,0 +1,43 @@
1
+ // @aave/account's own aaveAccountConnector() builds its EthereumProvider while the
2
+ // wagmi config is built. That constructor mounts Aave's hidden iframe and calls
3
+ // AaveAccountSdk.connect() on every page load, and when the connect does not
4
+ // finish the SDK rejects unhandled: "Aave Account is not connected" on every
5
+ // Keycloak login page (MPO-378). This builds the provider only when the user picks
6
+ // Aave Account, or when wagmi reconnects the Aave Account it connected last.
7
+ import { EthereumProvider, type EthereumProviderOptions } from "@aave/account";
8
+ import { injected } from "@wagmi/connectors/injected";
9
+ import type { CreateConnectorFn } from "wagmi";
10
+
11
+ export const aaveAccountConnectorId = "aaveAccountProvider";
12
+
13
+ export function aaveAccountConnector(options?: EthereumProviderOptions): CreateConnectorFn {
14
+ let provider: EthereumProvider | undefined;
15
+ const ensureProvider = () => (provider ??= new EthereumProvider(options));
16
+ const base = injected({
17
+ shimDisconnect: false,
18
+ target: () => ({
19
+ id: aaveAccountConnectorId,
20
+ name: "Aave Account",
21
+ provider: () => provider as never,
22
+ }),
23
+ });
24
+
25
+ return (config) => {
26
+ const connector = base(config);
27
+ return {
28
+ ...connector,
29
+ async connect(parameters) {
30
+ ensureProvider();
31
+ return connector.connect.call(this, parameters);
32
+ },
33
+ async getProvider(parameters) {
34
+ if (
35
+ !provider &&
36
+ (await config.storage?.getItem("recentConnectorId")) === aaveAccountConnectorId
37
+ )
38
+ ensureProvider();
39
+ return connector.getProvider.call(this, parameters);
40
+ },
41
+ } as ReturnType<typeof base>;
42
+ };
43
+ }
@@ -23,21 +23,21 @@ describe("metaMaskOptionsForEmbeddedDesktop", () => {
23
23
  window.open = originalOpen;
24
24
  });
25
25
 
26
- it("disables deeplink navigation and SDK modal", () => {
26
+ it("disables deeplink navigation and the MetaMask Connect modal", () => {
27
27
  const opts = metaMaskOptionsForEmbeddedDesktop();
28
28
  expect(opts.useDeeplink).toBe(false);
29
29
  expect(opts.headless).toBe(true);
30
30
  });
31
31
 
32
- it("openDeeplink opens https in a new window and ignores custom schemes", () => {
32
+ it("preferredOpenLink opens https in a new window and ignores custom schemes", () => {
33
33
  const open = vi.fn();
34
34
  window.open = open;
35
- const { openDeeplink } = metaMaskOptionsForEmbeddedDesktop();
35
+ const { preferredOpenLink } = metaMaskOptionsForEmbeddedDesktop();
36
36
 
37
- openDeeplink("metamask://connect?channelId=abc");
37
+ preferredOpenLink("metamask://connect?channelId=abc");
38
38
  expect(open).not.toHaveBeenCalled();
39
39
 
40
- openDeeplink("https://metamask.app.link/connect?channelId=abc");
40
+ preferredOpenLink("https://metamask.app.link/connect?channelId=abc");
41
41
  expect(open).toHaveBeenCalledWith(
42
42
  "https://metamask.app.link/connect?channelId=abc",
43
43
  "_blank",
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Tauri (and similar) desktop shells load the *web* bundle inside a native
3
- * WebView. Browser extensions never inject there, so MetaMask must use the SDK
3
+ * WebView. Browser extensions never inject there, so MetaMask must use the
4
4
  * remote/QR path — never `window.location.href = metamask://…`, which would
5
5
  * navigate the whole WebView away from the app.
6
6
  *
@@ -22,21 +22,21 @@ export function isEmbeddedDesktopWebview(
22
22
  export type MetaMaskEmbeddedDesktopOptions = {
23
23
  /** Prefer https://metamask.app.link over metamask:// in the QR payload. */
24
24
  useDeeplink: false;
25
- /** Suppress SDK InstallModal custom-elements (WKWebView-hostile); ConnectKit renders QR. */
25
+ /** Suppress MetaMask Connect's install modal (WKWebView-hostile); ConnectKit renders QR. */
26
26
  headless: true;
27
27
  /**
28
28
  * Never assign location.href for custom schemes. https universal links may
29
29
  * open in the system browser via window.open; custom schemes are ignored.
30
30
  */
31
- openDeeplink: (url: string) => void;
31
+ preferredOpenLink: (url: string) => void;
32
32
  };
33
33
 
34
- /** MetaMask SDK options that are safe inside Tauri/WebView2/WKWebView. */
34
+ /** MetaMask Connect options that are safe inside Tauri/WebView2/WKWebView. */
35
35
  export function metaMaskOptionsForEmbeddedDesktop(): MetaMaskEmbeddedDesktopOptions {
36
36
  return {
37
37
  useDeeplink: false,
38
38
  headless: true,
39
- openDeeplink: (url: string) => {
39
+ preferredOpenLink: (url: string) => {
40
40
  if (typeof window === "undefined") return;
41
41
  // Custom schemes (metamask://) must not navigate the WebView.
42
42
  if (!/^https?:\/\//i.test(url)) return;
@@ -0,0 +1,230 @@
1
+ import type { EventHandlers } from "@metamask/connect-evm";
2
+ import { connect, createConfig, http, reconnect } from "@wagmi/core";
3
+ import { createEmitter } from "@wagmi/core/internal";
4
+ import type { Chain } from "viem";
5
+ import { getAddress, SwitchChainError } from "viem";
6
+ import { base, mainnet, polygon } from "viem/chains";
7
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
8
+
9
+ import {
10
+ metaMaskConnect,
11
+ metaMaskConnectChainIds,
12
+ metaMaskNetworks,
13
+ resetMetaMaskConnectClient,
14
+ } from "./metaMaskConnectConnector";
15
+ import {
16
+ BITCOIN_CHAIN_ID,
17
+ SOLANA_CHAIN_ID,
18
+ SUI_CHAIN_ID,
19
+ syntheticChains,
20
+ } from "./syntheticChains";
21
+
22
+ const { createEVMClient, client } = vi.hoisted(() => {
23
+ const client = {
24
+ accounts: [] as string[],
25
+ getChainId: vi.fn(() => "0x2105"),
26
+ connect: vi.fn(async (_options: { chainIds: string[] }) => ({
27
+ accounts: ["0x0000000000000000000000000000000000000001"],
28
+ chainId: "0x2105",
29
+ })),
30
+ switchChain: vi.fn(async () => undefined),
31
+ disconnect: vi.fn(async () => undefined),
32
+ getProvider: vi.fn(() => ({ request: vi.fn() })),
33
+ };
34
+ return { client, createEVMClient: vi.fn(async (_options: unknown) => client) };
35
+ });
36
+
37
+ vi.mock("@metamask/connect-evm", () => ({ createEVMClient }));
38
+
39
+ const synthetic = [SOLANA_CHAIN_ID, SUI_CHAIN_ID, BITCOIN_CHAIN_ID];
40
+ const hex = (id: number) => `0x${id.toString(16)}`;
41
+
42
+ function build(chains: readonly Chain[]) {
43
+ const transports = Object.fromEntries(chains.map((chain) => [chain.id, http()]));
44
+ return metaMaskConnect({ dapp: { name: "test", url: "https://example.test" } })({
45
+ chains: chains as [Chain, ...Chain[]],
46
+ emitter: createEmitter("metaMaskSDK"),
47
+ transports,
48
+ } as never);
49
+ }
50
+
51
+ describe("metaMaskNetworks", () => {
52
+ it("drops the synthetic non-EVM chains", () => {
53
+ const networks = metaMaskNetworks([mainnet, polygon, ...syntheticChains]);
54
+ expect(Object.keys(networks)).toEqual([hex(mainnet.id), hex(polygon.id)]);
55
+ for (const id of synthetic) expect(networks).not.toHaveProperty(hex(id));
56
+ });
57
+
58
+ it("drops a chain with no usable RPC URL", () => {
59
+ const broken = { ...base, rpcUrls: { default: { http: [""] } } } as Chain;
60
+ expect(Object.keys(metaMaskNetworks([mainnet, broken]))).toEqual([hex(mainnet.id)]);
61
+ });
62
+
63
+ it("prefers the transport's URL over the chain's default", () => {
64
+ const networks = metaMaskNetworks([mainnet], {
65
+ [mainnet.id]: http("https://rpc.example.test"),
66
+ });
67
+ expect(networks[hex(mainnet.id) as `0x${string}`]).toBe("https://rpc.example.test");
68
+ });
69
+ });
70
+
71
+ describe("metaMaskConnectChainIds", () => {
72
+ const networks = metaMaskNetworks([mainnet, polygon, base]);
73
+
74
+ it("puts the requested chain first", () => {
75
+ expect(metaMaskConnectChainIds(networks, base.id)).toEqual([
76
+ hex(base.id),
77
+ hex(mainnet.id),
78
+ hex(polygon.id),
79
+ ]);
80
+ });
81
+
82
+ it("ignores a requested synthetic chain", () => {
83
+ expect(metaMaskConnectChainIds(networks, SOLANA_CHAIN_ID)).toEqual(Object.keys(networks));
84
+ });
85
+ });
86
+
87
+ describe("metaMaskConnect", () => {
88
+ beforeEach(() => {
89
+ resetMetaMaskConnectClient();
90
+ vi.clearAllMocks();
91
+ client.accounts = [];
92
+ });
93
+
94
+ afterEach(() => resetMetaMaskConnectClient());
95
+
96
+ it("keeps the metaMaskSDK id existing consumers key off", () => {
97
+ expect(build([mainnet]).id).toBe("metaMaskSDK");
98
+ });
99
+
100
+ it("never tells MetaMask about a synthetic chain id", async () => {
101
+ const connector = build([mainnet, polygon, ...syntheticChains]);
102
+ await connector.setup?.();
103
+ await connector.connect({ chainId: SOLANA_CHAIN_ID });
104
+
105
+ const options = createEVMClient.mock.calls[0]![0] as {
106
+ api: { supportedNetworks: Record<string, string> };
107
+ };
108
+ const supported = Object.keys(options.api.supportedNetworks);
109
+ const requested = client.connect.mock.calls[0]![0].chainIds;
110
+ for (const id of synthetic) {
111
+ expect(supported).not.toContain(hex(id));
112
+ expect(requested).not.toContain(hex(id));
113
+ }
114
+ expect(supported).toEqual([hex(mainnet.id), hex(polygon.id)]);
115
+ expect(requested).toEqual([hex(mainnet.id), hex(polygon.id)]);
116
+ });
117
+
118
+ it("asks for the requested EVM chain first and reports the wallet's chain", async () => {
119
+ const connector = build([mainnet, polygon, ...syntheticChains]);
120
+ const result = await connector.connect({ chainId: polygon.id });
121
+ expect(client.connect.mock.calls[0]![0].chainIds[0]).toBe(hex(polygon.id));
122
+ expect(result.chainId).toBe(base.id);
123
+ });
124
+
125
+ it("refuses to switch MetaMask to a synthetic chain", async () => {
126
+ const connector = build([mainnet, ...syntheticChains]);
127
+ await expect(connector.switchChain!({ chainId: SUI_CHAIN_ID })).rejects.toBeInstanceOf(
128
+ SwitchChainError,
129
+ );
130
+ expect(client.switchChain).not.toHaveBeenCalled();
131
+ });
132
+
133
+ it("builds one client per page across rebuilt configs", async () => {
134
+ await build([mainnet]).setup?.();
135
+ await build([mainnet]).setup?.();
136
+ expect(createEVMClient).toHaveBeenCalledTimes(1);
137
+ });
138
+ });
139
+
140
+ describe("metaMaskConnect under wagmi", () => {
141
+ const first = "0x00000000000000000000000000000000000000aa";
142
+ const second = "0x00000000000000000000000000000000000000bb";
143
+
144
+ beforeEach(() => {
145
+ resetMetaMaskConnectClient();
146
+ vi.clearAllMocks();
147
+ client.accounts = [];
148
+ });
149
+
150
+ afterEach(() => resetMetaMaskConnectClient());
151
+
152
+ function wagmiConfig() {
153
+ return createConfig({
154
+ chains: [base, mainnet],
155
+ connectors: [metaMaskConnect({ dapp: { name: "test", url: "https://example.test" } })],
156
+ transports: { [base.id]: http(), [mainnet.id]: http() },
157
+ multiInjectedProviderDiscovery: false,
158
+ storage: null,
159
+ });
160
+ }
161
+
162
+ async function clientEvents() {
163
+ await vi.waitFor(() => expect(createEVMClient).toHaveBeenCalledTimes(1));
164
+ return (createEVMClient.mock.calls[0]![0] as { eventHandlers: EventHandlers }).eventHandlers;
165
+ }
166
+
167
+ it("sends display_uri to the connector being connected, not the newest one built", async () => {
168
+ const before = wagmiConfig();
169
+ const used = wagmiConfig();
170
+ const newest = wagmiConfig();
171
+ const events = await clientEvents();
172
+ const seen = new Map([before, used, newest].map((config) => [config, [] as unknown[]]));
173
+ for (const [config, uris] of seen)
174
+ config.connectors[0]!.emitter.on("message", ({ type, data }) => {
175
+ if (type === "display_uri") uris.push(data);
176
+ });
177
+
178
+ client.connect.mockImplementationOnce(async () => {
179
+ events.displayUri("metamask://connect?id=1");
180
+ return { accounts: [first], chainId: "0x2105" };
181
+ });
182
+ await connect(used, { connector: used.connectors[0]! });
183
+
184
+ expect(seen.get(used)).toEqual(["metamask://connect?id=1"]);
185
+ expect(seen.get(before)).toEqual([]);
186
+ expect(seen.get(newest)).toEqual([]);
187
+ });
188
+
189
+ it("keeps account changes flowing to the config wagmi reconnects", async () => {
190
+ const cached = wagmiConfig();
191
+ const events = await clientEvents();
192
+ await connect(cached, { connector: cached.connectors[0]! });
193
+ const other = wagmiConfig();
194
+ await connect(other, { connector: other.connectors[0]! });
195
+
196
+ // The provider switches back to the cached config and reconnects it.
197
+ client.accounts = [first];
198
+ await reconnect(cached);
199
+ events.accountsChanged([second]);
200
+
201
+ const connector = cached.connectors[0]!;
202
+ expect(cached.state.connections.get(connector.uid)?.accounts).toEqual([getAddress(second)]);
203
+ });
204
+
205
+ it("connects wagmi to a session approved outside connect()", async () => {
206
+ const config = wagmiConfig();
207
+ const events = await clientEvents();
208
+ expect(config.state.status).toBe("disconnected");
209
+
210
+ events.connect({ chainId: "0x2105", accounts: [first] });
211
+
212
+ const connector = config.connectors[0]!;
213
+ expect(config.state.status).toBe("connected");
214
+ expect(config.state.current).toBe(connector.uid);
215
+ expect(config.state.connections.get(connector.uid)).toMatchObject({
216
+ accounts: [getAddress(first)],
217
+ chainId: base.id,
218
+ });
219
+
220
+ events.accountsChanged([second]);
221
+ expect(config.state.connections.get(connector.uid)?.accounts).toEqual([getAddress(second)]);
222
+ });
223
+
224
+ it("ignores a connect that carries no account", async () => {
225
+ const config = wagmiConfig();
226
+ const events = await clientEvents();
227
+ events.connect({ chainId: "0x2105", accounts: [] });
228
+ expect(config.state.status).toBe("disconnected");
229
+ });
230
+ });
@@ -0,0 +1,272 @@
1
+ // wagmi connector for MetaMask over MetaMask Connect (@metamask/connect-evm, the
2
+ // Mobile Wallet Protocol relay). It replaces the classic @metamask/sdk connector,
3
+ // whose socket.io relay never re-delivered a reply that arrived while Android 16
4
+ // had cut the browser's network (5-6 s after MetaMask takes focus). The MWP relay
5
+ // keeps each channel's history and the page recovers it when it resubscribes, so
6
+ // the reply lands as soon as the user switches back. Proven on Android 16 in
7
+ // PROMA-36 with the relay timers raised by `metaMaskConnectTimeouts` (see
8
+ // ../../vite.ts); without them a user who lingers in MetaMask past 60 s loses
9
+ // the request.
10
+ //
11
+ // The id stays `metaMaskSDK`: isMetaMaskConnector(), useWallets' EIP-6963 dedupe
12
+ // and ConnectWithInjector's display_uri listener all key off it, and so does
13
+ // every consumer's persisted "recent connector".
14
+ import type { EIP1193Provider, MetamaskConnectEVM } from "@metamask/connect-evm";
15
+ import {
16
+ ChainNotConfiguredError,
17
+ type CreateConnectorFn,
18
+ createConnector,
19
+ extractRpcUrls,
20
+ } from "@wagmi/core";
21
+ import {
22
+ type Address,
23
+ type Chain,
24
+ getAddress,
25
+ type Hex,
26
+ numberToHex,
27
+ ResourceUnavailableRpcError,
28
+ SwitchChainError,
29
+ UserRejectedRequestError,
30
+ } from "viem";
31
+
32
+ import { isSyntheticChainId } from "./syntheticChains";
33
+
34
+ export type MetaMaskConnectParameters = {
35
+ dapp: { name: string; url?: string; iconUrl?: string };
36
+ /** Run without MetaMask Connect's own install/QR modal (the modal renders `display_uri`). */
37
+ headless?: boolean;
38
+ /** Opens MetaMask's deeplink. Embedded desktop webviews must not navigate away. */
39
+ preferredOpenLink?: (deeplink: string, target?: string) => void;
40
+ /** `metamask://` instead of the https://metamask.app.link universal link. */
41
+ useDeeplink?: boolean;
42
+ debug?: boolean;
43
+ };
44
+
45
+ type ConnectorConfig = Parameters<CreateConnectorFn>[0];
46
+ type Emitter = ConnectorConfig["emitter"];
47
+
48
+ /**
49
+ * The chains MetaMask may be told about. Non-EVM wallets ride synthetic chain ids
50
+ * (syntheticChains.ts) that no EVM network carries, and a chain with no usable
51
+ * RPC URL fails MetaMask Connect's `new URL()` check in createEVMClient, which
52
+ * kills connect() before it ever emits `display_uri`.
53
+ */
54
+ export function metaMaskNetworks(
55
+ chains: readonly Chain[],
56
+ transports?: ConnectorConfig["transports"],
57
+ ): Record<Hex, string> {
58
+ const networks: Record<Hex, string> = {};
59
+ for (const chain of chains) {
60
+ if (isSyntheticChainId(chain.id)) continue;
61
+ const url = extractRpcUrls({ chain, transports })?.[0] ?? chain.rpcUrls.default?.http[0];
62
+ if (url && isUrl(url)) networks[numberToHex(chain.id)] = url;
63
+ }
64
+ return networks;
65
+ }
66
+
67
+ function isUrl(value: string): boolean {
68
+ try {
69
+ new URL(value);
70
+ return true;
71
+ } catch {
72
+ return false;
73
+ }
74
+ }
75
+
76
+ /** The chain ids a connect asks MetaMask for, the requested one first (it becomes the active chain). */
77
+ export function metaMaskConnectChainIds(networks: Record<Hex, string>, chainId?: number): Hex[] {
78
+ const ids = Object.keys(networks) as Hex[];
79
+ if (!chainId || isSyntheticChainId(chainId)) return ids;
80
+ const first = numberToHex(chainId);
81
+ return ids.includes(first) ? [first, ...ids.filter((id) => id !== first)] : ids;
82
+ }
83
+
84
+ // One client per page. Its session lives in localStorage, and consumers rebuild
85
+ // the wagmi config (and so this connector) on re-render, so a client per
86
+ // connector instance would race itself over the same session. The events it
87
+ // raises go to the connector wagmi last drove: StrictMode and config caches
88
+ // build connectors that wagmi never uses, and one of those may be the newest.
89
+ let client: Promise<MetamaskConnectEVM> | undefined;
90
+ let owner: Emitter | undefined;
91
+
92
+ function getClient(
93
+ parameters: MetaMaskConnectParameters,
94
+ networks: Record<Hex, string>,
95
+ ): Promise<MetamaskConnectEVM> {
96
+ if (client) return client;
97
+ client = import("@metamask/connect-evm").then(({ createEVMClient }) =>
98
+ createEVMClient({
99
+ dapp: {
100
+ name: parameters.dapp.name,
101
+ url:
102
+ parameters.dapp.url ??
103
+ (typeof window !== "undefined" ? window.location.origin : "https://multiplatform.one"),
104
+ ...(parameters.dapp.iconUrl ? { iconUrl: parameters.dapp.iconUrl } : {}),
105
+ },
106
+ api: { supportedNetworks: networks },
107
+ analytics: { enabled: false },
108
+ skipAutoAnnounce: true,
109
+ debug: parameters.debug,
110
+ ...(parameters.headless ? { ui: { headless: true } } : {}),
111
+ ...(parameters.preferredOpenLink || parameters.useDeeplink !== undefined
112
+ ? {
113
+ mobile: {
114
+ ...(parameters.preferredOpenLink
115
+ ? { preferredOpenLink: parameters.preferredOpenLink }
116
+ : {}),
117
+ ...(parameters.useDeeplink !== undefined
118
+ ? { useDeeplink: parameters.useDeeplink }
119
+ : {}),
120
+ },
121
+ }
122
+ : {}),
123
+ eventHandlers: {
124
+ // A session approved outside connect(), in another tab say. wagmi drops
125
+ // `change` for a connector it has no connection for, so only `connect`
126
+ // brings it in.
127
+ connect: ({ accounts, chainId }) => {
128
+ if (accounts.length)
129
+ owner?.emit("connect", {
130
+ accounts: accounts.map((a) => getAddress(a)),
131
+ chainId: Number(chainId),
132
+ });
133
+ },
134
+ accountsChanged: (accounts) => {
135
+ if (accounts.length === 0) owner?.emit("disconnect");
136
+ else owner?.emit("change", { accounts: accounts.map((a) => getAddress(a)) });
137
+ },
138
+ chainChanged: (chainId) => owner?.emit("change", { chainId: Number(chainId) }),
139
+ disconnect: () => owner?.emit("disconnect"),
140
+ displayUri: (uri) => owner?.emit("message", { type: "display_uri", data: uri }),
141
+ },
142
+ }),
143
+ );
144
+ client.catch(() => {
145
+ client = undefined;
146
+ });
147
+ return client;
148
+ }
149
+
150
+ /** Test seam: forget the page's client so the next connector builds a fresh one. */
151
+ export function resetMetaMaskConnectClient(): void {
152
+ client = undefined;
153
+ owner = undefined;
154
+ }
155
+
156
+ function rethrow(err: unknown): never {
157
+ const code = (err as { code?: number })?.code;
158
+ if (code === UserRejectedRequestError.code) throw new UserRejectedRequestError(err as Error);
159
+ if (code === ResourceUnavailableRpcError.code)
160
+ throw new ResourceUnavailableRpcError(err as Error);
161
+ throw err;
162
+ }
163
+
164
+ metaMaskConnect.type = "metaMask" as const;
165
+ export function metaMaskConnect(parameters: MetaMaskConnectParameters) {
166
+ return createConnector<EIP1193Provider>((config) => {
167
+ owner ??= config.emitter;
168
+ const networks = metaMaskNetworks(config.chains, config.transports);
169
+ const fallbackChainId = Number(Object.keys(networks)[0] ?? 1);
170
+ const instance = () => getClient(parameters, networks);
171
+ // Every call wagmi makes on the connector it uses claims the client's events;
172
+ // setup() runs for every built config, so it does not.
173
+ const claim = () => {
174
+ owner = config.emitter;
175
+ return instance();
176
+ };
177
+ const accountsOf = (mm: MetamaskConnectEVM): Address[] => mm.accounts.map((a) => getAddress(a));
178
+ const chainIdOf = (mm: MetamaskConnectEVM) => {
179
+ const hex = mm.getChainId();
180
+ return hex ? Number(hex) : fallbackChainId;
181
+ };
182
+
183
+ return {
184
+ id: "metaMaskSDK",
185
+ name: "MetaMask",
186
+ rdns: ["io.metamask", "io.metamask.mobile"],
187
+ type: metaMaskConnect.type,
188
+ async setup() {
189
+ // Build the client before the tap: mobile Chrome opens the MetaMask deeplink
190
+ // only inside the tap's short user activation, which a cold import outlasts.
191
+ await instance().catch(() => undefined);
192
+ },
193
+ async connect({ chainId, isReconnecting } = {}) {
194
+ // No separate chain switch: the requested chain leads the permission request
195
+ // and becomes the active chain, so connecting stays one wallet round trip.
196
+ const mm = await claim();
197
+ try {
198
+ let accounts = isReconnecting ? accountsOf(mm) : [];
199
+ if (!accounts.length) {
200
+ const result = await mm.connect({
201
+ chainIds: metaMaskConnectChainIds(networks, chainId),
202
+ });
203
+ accounts = result.accounts.map((a) => getAddress(a));
204
+ }
205
+ return { accounts: accounts as never, chainId: chainIdOf(mm) };
206
+ } catch (err) {
207
+ rethrow(err);
208
+ }
209
+ },
210
+ async disconnect() {
211
+ await (await claim()).disconnect();
212
+ },
213
+ async getAccounts() {
214
+ return accountsOf(await claim());
215
+ },
216
+ async getChainId() {
217
+ return chainIdOf(await claim());
218
+ },
219
+ async getProvider() {
220
+ return (await claim()).getProvider();
221
+ },
222
+ async isAuthorized() {
223
+ // createEVMClient has already resumed a stored session, so its cached
224
+ // accounts answer without a relay round trip that could sit on the long
225
+ // request timeout.
226
+ try {
227
+ return accountsOf(await claim()).length > 0;
228
+ } catch {
229
+ return false;
230
+ }
231
+ },
232
+ async switchChain({ addEthereumChainParameter, chainId }) {
233
+ const chain = config.chains.find((c) => c.id === chainId);
234
+ if (!chain || !networks[numberToHex(chainId)])
235
+ throw new SwitchChainError(new ChainNotConfiguredError());
236
+ try {
237
+ await (
238
+ await claim()
239
+ ).switchChain({
240
+ chainId: numberToHex(chainId),
241
+ chainConfiguration: {
242
+ chainId: numberToHex(chainId),
243
+ chainName: addEthereumChainParameter?.chainName ?? chain.name,
244
+ nativeCurrency: addEthereumChainParameter?.nativeCurrency ?? chain.nativeCurrency,
245
+ rpcUrls: addEthereumChainParameter?.rpcUrls
246
+ ? [...addEthereumChainParameter.rpcUrls]
247
+ : [networks[numberToHex(chainId)]],
248
+ ...(chain.blockExplorers?.default.url
249
+ ? { blockExplorerUrls: [chain.blockExplorers.default.url] }
250
+ : {}),
251
+ },
252
+ });
253
+ return chain;
254
+ } catch (err) {
255
+ if ((err as { code?: number })?.code === UserRejectedRequestError.code)
256
+ throw new UserRejectedRequestError(err as Error);
257
+ throw new SwitchChainError(err as Error);
258
+ }
259
+ },
260
+ onAccountsChanged(accounts) {
261
+ if (accounts.length === 0) config.emitter.emit("disconnect");
262
+ else config.emitter.emit("change", { accounts: accounts.map((a) => getAddress(a)) });
263
+ },
264
+ onChainChanged(chain) {
265
+ config.emitter.emit("change", { chainId: Number(chain) });
266
+ },
267
+ onDisconnect() {
268
+ config.emitter.emit("disconnect");
269
+ },
270
+ };
271
+ });
272
+ }
@@ -71,6 +71,8 @@ export function walletAdapterConnector(entry: WalletConnectorEntry) {
71
71
  icon: entry.icon,
72
72
  // custom tag read by getConnectorEcosystem()/WalletProps.ecosystem
73
73
  ecosystem: entry.ecosystem,
74
+ // read by clientForConnector() to build the per-chain client
75
+ adapter: entry.adapter,
74
76
 
75
77
  async getProvider() {
76
78
  return provider;
@@ -1,7 +1,7 @@
1
1
  import { http } from "wagmi";
2
2
  import { type CreateConfigParameters } from "@wagmi/core";
3
3
  import { mainnet, polygon, optimism, arbitrum } from "wagmi/chains";
4
- import { CoinbaseWalletParameters } from "wagmi/connectors";
4
+ import type { CoinbaseWalletParameters } from "@wagmi/connectors/coinbaseWallet";
5
5
  import { EthereumProviderOptions as AaveAccountOptions } from "@aave/account";
6
6
 
7
7
  import { setAppMeta } from "@multiplatform.one/connectkit";
@@ -9,8 +9,8 @@ import defaultConnectors from "./defaultConnectors";
9
9
  import { getWalletConnectors } from "./connectors/getWalletConnectors";
10
10
  import { syntheticChains } from "./connectors/syntheticChains";
11
11
 
12
- // App name/icon now live in connectkit's agnostic appMeta module (the modal reads
13
- // them for the WalletConnect og:title hint); re-exported here for back-compat.
12
+ // App name/icon now live in connectkit's agnostic appMeta module; re-exported here
13
+ // for back-compat.
14
14
  export { getAppName, getAppIcon } from "@multiplatform.one/connectkit";
15
15
 
16
16
  type DefaultConfigProps = {
@@ -19,8 +19,8 @@ type DefaultConfigProps = {
19
19
  appDescription?: string;
20
20
  appUrl?: string;
21
21
 
22
- // WC 2.0 requires a project ID (get one here: https://cloud.walletconnect.com/sign-in)
23
- walletConnectProjectId: string;
22
+ /** @deprecated Ignored: no connector needs a project id. Removed in the next major. */
23
+ walletConnectProjectId?: string;
24
24
  // Coinbase Wallet preference
25
25
  coinbaseWalletPreference?: CoinbaseWalletParameters<"4">["preference"];
26
26
  // Aave Account options
@@ -31,6 +31,15 @@ type DefaultConfigProps = {
31
31
  enableWallet?: boolean;
32
32
  } & Partial<CreateConfigParameters>;
33
33
 
34
+ let warnedProjectId = false;
35
+ function warnIgnoredProjectId() {
36
+ if (warnedProjectId) return;
37
+ warnedProjectId = true;
38
+ console.warn(
39
+ "@multiplatform.one/web3: walletConnectProjectId is ignored and will be removed in the next major.",
40
+ );
41
+ }
42
+
34
43
  const defaultConfig = ({
35
44
  appName = "ConnectKit",
36
45
  appIcon,
@@ -40,12 +49,13 @@ const defaultConfig = ({
40
49
  coinbaseWalletPreference,
41
50
  chains = [mainnet, polygon, optimism, arbitrum],
42
51
  client,
43
- enableAaveAccount = true,
52
+ enableAaveAccount = false,
44
53
  aaveAccountOptions,
45
54
  enableWallet = true,
46
55
  ...props
47
56
  }: DefaultConfigProps): CreateConfigParameters => {
48
57
  setAppMeta(appName, appIcon);
58
+ if (walletConnectProjectId) warnIgnoredProjectId();
49
59
 
50
60
  // Register the wallet synthetic chains so wagmi can resolve a `chain` object for a
51
61
  // connected non-EVM account — ConnectKit's SIWE signIn reads `chain.id`, which is
@@ -66,7 +76,6 @@ const defaultConfig = ({
66
76
  description: appDescription,
67
77
  url: appUrl,
68
78
  },
69
- walletConnectProjectId,
70
79
  coinbaseWalletPreference,
71
80
  enableAaveAccount,
72
81
  aaveAccountOptions,