@multiplatform.one/web3 7.26.0 → 7.28.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 (714) hide show
  1. package/README.md +157 -8
  2. package/dist/cjs/bridge/base58.cjs +48 -0
  3. package/dist/cjs/bridge/base58.native.js +51 -0
  4. package/dist/cjs/bridge/base58.native.js.map +1 -0
  5. package/dist/cjs/bridge/core.cjs +5 -1
  6. package/dist/cjs/bridge/core.native.js +5 -1
  7. package/dist/cjs/bridge/core.native.js.map +1 -1
  8. package/dist/cjs/bridge/drivers.cjs +141 -0
  9. package/dist/cjs/bridge/drivers.native.js +161 -0
  10. package/dist/cjs/bridge/drivers.native.js.map +1 -0
  11. package/dist/cjs/bridge/nativeHost.cjs +49 -9
  12. package/dist/cjs/bridge/nativeHost.native.js +56 -9
  13. package/dist/cjs/bridge/nativeHost.native.js.map +1 -1
  14. package/dist/cjs/clients/adapter.native.js.map +1 -1
  15. package/dist/cjs/clients/connector.native.js.map +1 -1
  16. package/dist/cjs/clients/evm.cjs +1 -0
  17. package/dist/cjs/clients/evm.native.js +1 -0
  18. package/dist/cjs/clients/evm.native.js.map +1 -1
  19. package/dist/cjs/clients/evmRead.cjs +104 -0
  20. package/dist/cjs/clients/evmRead.native.js +124 -0
  21. package/dist/cjs/clients/evmRead.native.js.map +1 -0
  22. package/dist/cjs/clients/hooks.cjs +37 -7
  23. package/dist/cjs/clients/hooks.native.js +43 -5
  24. package/dist/cjs/clients/hooks.native.js.map +1 -1
  25. package/dist/cjs/clients/index.cjs +5 -0
  26. package/dist/cjs/clients/index.native.js +5 -0
  27. package/dist/cjs/clients/index.native.js.map +1 -1
  28. package/dist/cjs/clients/types.cjs +7 -0
  29. package/dist/cjs/clients/types.native.js +14 -0
  30. package/dist/cjs/clients/types.native.js.map +1 -1
  31. package/dist/cjs/connectkit/adapters/BitcoinAdapter.cjs +44 -2
  32. package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js +73 -5
  33. package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
  34. package/dist/cjs/connectkit/adapters/SolanaAdapter.cjs +46 -0
  35. package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js +55 -0
  36. package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  37. package/dist/cjs/connectkit/adapters/SuiAdapter.cjs +40 -0
  38. package/dist/cjs/connectkit/adapters/SuiAdapter.native.js +50 -0
  39. package/dist/cjs/connectkit/adapters/SuiAdapter.native.js.map +1 -1
  40. package/dist/cjs/connectkit/connectors/ensureWalletConnectors.cjs +4 -1
  41. package/dist/cjs/connectkit/connectors/ensureWalletConnectors.native.js +8 -1
  42. package/dist/cjs/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
  43. package/dist/cjs/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
  44. package/dist/cjs/connectkit/connectors/syntheticChains.native.js.map +1 -1
  45. package/dist/cjs/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
  46. package/dist/cjs/connectkit/defaultConfig.cjs +5 -2
  47. package/dist/cjs/connectkit/defaultConfig.native.js +9 -2
  48. package/dist/cjs/connectkit/defaultConfig.native.js.map +1 -1
  49. package/dist/cjs/connectkit/siwe/SIWEContext.native.js.map +1 -1
  50. package/dist/cjs/connectkit/siwe/SIWEProvider.cjs +6 -4
  51. package/dist/cjs/connectkit/siwe/SIWEProvider.native.js +8 -4
  52. package/dist/cjs/connectkit/siwe/SIWEProvider.native.js.map +1 -1
  53. package/dist/cjs/connectkit/siwe/connectIntent.cjs +56 -16
  54. package/dist/cjs/connectkit/siwe/connectIntent.native.js +100 -16
  55. package/dist/cjs/connectkit/siwe/connectIntent.native.js.map +1 -1
  56. package/dist/cjs/connectkit/siwe/useSIWE.native.js.map +1 -1
  57. package/dist/cjs/connectkit/web3Bridge.cjs +58 -12
  58. package/dist/cjs/connectkit/web3Bridge.native.js +64 -14
  59. package/dist/cjs/connectkit/web3Bridge.native.js.map +1 -1
  60. package/dist/cjs/core/family.cjs +17 -0
  61. package/dist/cjs/core/family.native.js +17 -0
  62. package/dist/cjs/core/family.native.js.map +1 -1
  63. package/dist/cjs/core/index.cjs +10 -1
  64. package/dist/cjs/core/index.native.js +10 -1
  65. package/dist/cjs/core/index.native.js.map +1 -1
  66. package/dist/cjs/core/lightDriver.cjs +182 -0
  67. package/dist/cjs/core/lightDriver.native.js +260 -0
  68. package/dist/cjs/core/lightDriver.native.js.map +1 -0
  69. package/dist/cjs/core/react.cjs +12 -1
  70. package/dist/cjs/core/react.native.js +16 -1
  71. package/dist/cjs/core/react.native.js.map +1 -1
  72. package/dist/cjs/core/signIn.cjs +201 -0
  73. package/dist/cjs/core/signIn.native.js +240 -0
  74. package/dist/cjs/core/signIn.native.js.map +1 -0
  75. package/dist/cjs/core/store.cjs +47 -2
  76. package/dist/cjs/core/store.native.js +49 -2
  77. package/dist/cjs/core/store.native.js.map +1 -1
  78. package/dist/cjs/families/btc.cjs +44 -0
  79. package/dist/cjs/families/btc.native.js +49 -0
  80. package/dist/cjs/families/btc.native.js.map +1 -0
  81. package/dist/cjs/families/eth.cjs +57 -0
  82. package/dist/cjs/families/eth.native.js +61 -0
  83. package/dist/cjs/families/eth.native.js.map +1 -0
  84. package/dist/cjs/families/gpg.cjs +40 -0
  85. package/dist/cjs/families/gpg.native.js +43 -0
  86. package/dist/cjs/families/gpg.native.js.map +1 -0
  87. package/dist/cjs/families/host.cjs +38 -0
  88. package/dist/cjs/families/host.native.js +41 -0
  89. package/dist/cjs/families/host.native.js.map +1 -0
  90. package/dist/cjs/families/index.cjs +53 -0
  91. package/dist/cjs/families/index.native.js +56 -0
  92. package/dist/cjs/families/index.native.js.map +1 -0
  93. package/dist/cjs/families/messages.cjs +61 -0
  94. package/dist/cjs/families/messages.native.js +66 -0
  95. package/dist/cjs/families/messages.native.js.map +1 -0
  96. package/dist/cjs/families/sol.cjs +55 -0
  97. package/dist/cjs/families/sol.native.js +64 -0
  98. package/dist/cjs/families/sol.native.js.map +1 -0
  99. package/dist/cjs/families/sui.cjs +48 -0
  100. package/dist/cjs/families/sui.native.js +53 -0
  101. package/dist/cjs/families/sui.native.js.map +1 -0
  102. package/dist/cjs/index.cjs +22 -2
  103. package/dist/cjs/index.native.js +21 -1
  104. package/dist/cjs/index.native.js.map +1 -1
  105. package/dist/cjs/keycloak/keycloakWallet.cjs +13 -0
  106. package/dist/cjs/keycloak/keycloakWallet.native.js +15 -0
  107. package/dist/cjs/keycloak/keycloakWallet.native.js.map +1 -1
  108. package/dist/cjs/keycloak/useDirectLogin.cjs +10 -5
  109. package/dist/cjs/keycloak/useDirectLogin.native.js +12 -5
  110. package/dist/cjs/keycloak/useDirectLogin.native.js.map +1 -1
  111. package/dist/cjs/keycloak/useWalletLogin.cjs +16 -8
  112. package/dist/cjs/light/drivers.cjs +73 -0
  113. package/dist/cjs/light/drivers.native.js +97 -0
  114. package/dist/cjs/light/drivers.native.js.map +1 -0
  115. package/dist/cjs/light/index.cjs +30 -0
  116. package/dist/cjs/light/index.native.js +33 -0
  117. package/dist/cjs/light/index.native.js.map +1 -0
  118. package/dist/cjs/providers/WalletProvider.cjs +59 -17
  119. package/dist/cjs/providers/WalletProvider.native.js +99 -56
  120. package/dist/cjs/providers/WalletProvider.native.js.map +1 -1
  121. package/dist/cjs/providers/families.cjs +53 -0
  122. package/dist/cjs/providers/families.native.js +59 -0
  123. package/dist/cjs/providers/families.native.js.map +1 -0
  124. package/dist/cjs/providers/index.cjs +1 -0
  125. package/dist/cjs/providers/index.native.js +1 -0
  126. package/dist/cjs/providers/index.native.js.map +1 -1
  127. package/dist/cjs/providers/walletConfig.cjs +41 -0
  128. package/dist/cjs/providers/walletConfig.native.js +68 -0
  129. package/dist/cjs/providers/walletConfig.native.js.map +1 -1
  130. package/dist/cjs/wagmi/driver.cjs +257 -0
  131. package/dist/cjs/wagmi/driver.native.js +331 -0
  132. package/dist/cjs/wagmi/driver.native.js.map +1 -0
  133. package/dist/cjs/wagmi/host.cjs +239 -0
  134. package/dist/cjs/wagmi/host.native.js +320 -0
  135. package/dist/cjs/wagmi/host.native.js.map +1 -0
  136. package/dist/cjs/wagmi/index.cjs +28 -0
  137. package/dist/cjs/wagmi/index.native.js +31 -0
  138. package/dist/cjs/wagmi/index.native.js.map +1 -0
  139. package/dist/cjs/web.cjs +84 -0
  140. package/dist/esm/bridge/base58.mjs +23 -0
  141. package/dist/esm/bridge/base58.mjs.map +1 -0
  142. package/dist/esm/bridge/base58.native.js +23 -0
  143. package/dist/esm/bridge/base58.native.js.map +1 -0
  144. package/dist/esm/bridge/core.mjs +3 -2
  145. package/dist/esm/bridge/core.mjs.map +1 -1
  146. package/dist/esm/bridge/core.native.js +3 -2
  147. package/dist/esm/bridge/core.native.js.map +1 -1
  148. package/dist/esm/bridge/drivers.mjs +113 -0
  149. package/dist/esm/bridge/drivers.mjs.map +1 -0
  150. package/dist/esm/bridge/drivers.native.js +130 -0
  151. package/dist/esm/bridge/drivers.native.js.map +1 -0
  152. package/dist/esm/bridge/nativeHost.mjs +50 -11
  153. package/dist/esm/bridge/nativeHost.mjs.map +1 -1
  154. package/dist/esm/bridge/nativeHost.native.js +57 -11
  155. package/dist/esm/bridge/nativeHost.native.js.map +1 -1
  156. package/dist/esm/clients/adapter.mjs.map +1 -1
  157. package/dist/esm/clients/adapter.native.js.map +1 -1
  158. package/dist/esm/clients/connector.mjs.map +1 -1
  159. package/dist/esm/clients/connector.native.js.map +1 -1
  160. package/dist/esm/clients/evm.mjs +1 -0
  161. package/dist/esm/clients/evm.mjs.map +1 -1
  162. package/dist/esm/clients/evm.native.js +1 -0
  163. package/dist/esm/clients/evm.native.js.map +1 -1
  164. package/dist/esm/clients/evmRead.mjs +78 -0
  165. package/dist/esm/clients/evmRead.mjs.map +1 -0
  166. package/dist/esm/clients/evmRead.native.js +95 -0
  167. package/dist/esm/clients/evmRead.native.js.map +1 -0
  168. package/dist/esm/clients/hooks.mjs +38 -9
  169. package/dist/esm/clients/hooks.mjs.map +1 -1
  170. package/dist/esm/clients/hooks.native.js +44 -7
  171. package/dist/esm/clients/hooks.native.js.map +1 -1
  172. package/dist/esm/clients/index.mjs +4 -3
  173. package/dist/esm/clients/index.mjs.map +1 -1
  174. package/dist/esm/clients/index.native.js +4 -3
  175. package/dist/esm/clients/index.native.js.map +1 -1
  176. package/dist/esm/clients/types.mjs +7 -1
  177. package/dist/esm/clients/types.mjs.map +1 -1
  178. package/dist/esm/clients/types.native.js +14 -1
  179. package/dist/esm/clients/types.native.js.map +1 -1
  180. package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs +44 -2
  181. package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
  182. package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js +73 -5
  183. package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
  184. package/dist/esm/connectkit/adapters/SolanaAdapter.mjs +46 -0
  185. package/dist/esm/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
  186. package/dist/esm/connectkit/adapters/SolanaAdapter.native.js +55 -0
  187. package/dist/esm/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  188. package/dist/esm/connectkit/adapters/SuiAdapter.mjs +40 -0
  189. package/dist/esm/connectkit/adapters/SuiAdapter.mjs.map +1 -1
  190. package/dist/esm/connectkit/adapters/SuiAdapter.native.js +50 -0
  191. package/dist/esm/connectkit/adapters/SuiAdapter.native.js.map +1 -1
  192. package/dist/esm/connectkit/connectors/ensureWalletConnectors.mjs +4 -1
  193. package/dist/esm/connectkit/connectors/ensureWalletConnectors.mjs.map +1 -1
  194. package/dist/esm/connectkit/connectors/ensureWalletConnectors.native.js +8 -1
  195. package/dist/esm/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
  196. package/dist/esm/connectkit/connectors/getWalletConnectors.mjs.map +1 -1
  197. package/dist/esm/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
  198. package/dist/esm/connectkit/connectors/syntheticChains.mjs.map +1 -1
  199. package/dist/esm/connectkit/connectors/syntheticChains.native.js.map +1 -1
  200. package/dist/esm/connectkit/connectors/walletAdapterConnector.mjs.map +1 -1
  201. package/dist/esm/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
  202. package/dist/esm/connectkit/defaultConfig.mjs +6 -3
  203. package/dist/esm/connectkit/defaultConfig.mjs.map +1 -1
  204. package/dist/esm/connectkit/defaultConfig.native.js +10 -3
  205. package/dist/esm/connectkit/defaultConfig.native.js.map +1 -1
  206. package/dist/esm/connectkit/siwe/SIWEContext.mjs.map +1 -1
  207. package/dist/esm/connectkit/siwe/SIWEContext.native.js.map +1 -1
  208. package/dist/esm/connectkit/siwe/SIWEProvider.mjs +6 -4
  209. package/dist/esm/connectkit/siwe/SIWEProvider.mjs.map +1 -1
  210. package/dist/esm/connectkit/siwe/SIWEProvider.native.js +8 -4
  211. package/dist/esm/connectkit/siwe/SIWEProvider.native.js.map +1 -1
  212. package/dist/esm/connectkit/siwe/connectIntent.mjs +54 -16
  213. package/dist/esm/connectkit/siwe/connectIntent.mjs.map +1 -1
  214. package/dist/esm/connectkit/siwe/connectIntent.native.js +98 -16
  215. package/dist/esm/connectkit/siwe/connectIntent.native.js.map +1 -1
  216. package/dist/esm/connectkit/siwe/useSIWE.mjs.map +1 -1
  217. package/dist/esm/connectkit/siwe/useSIWE.native.js.map +1 -1
  218. package/dist/esm/connectkit/web3Bridge.mjs +61 -16
  219. package/dist/esm/connectkit/web3Bridge.mjs.map +1 -1
  220. package/dist/esm/connectkit/web3Bridge.native.js +67 -18
  221. package/dist/esm/connectkit/web3Bridge.native.js.map +1 -1
  222. package/dist/esm/core/family.mjs +17 -0
  223. package/dist/esm/core/family.mjs.map +1 -1
  224. package/dist/esm/core/family.native.js +17 -0
  225. package/dist/esm/core/family.native.js.map +1 -1
  226. package/dist/esm/core/index.mjs +5 -3
  227. package/dist/esm/core/index.mjs.map +1 -1
  228. package/dist/esm/core/index.native.js +5 -3
  229. package/dist/esm/core/index.native.js.map +1 -1
  230. package/dist/esm/core/lightDriver.mjs +157 -0
  231. package/dist/esm/core/lightDriver.mjs.map +1 -0
  232. package/dist/esm/core/lightDriver.native.js +232 -0
  233. package/dist/esm/core/lightDriver.native.js.map +1 -0
  234. package/dist/esm/core/react.mjs +10 -1
  235. package/dist/esm/core/react.mjs.map +1 -1
  236. package/dist/esm/core/react.native.js +14 -1
  237. package/dist/esm/core/react.native.js.map +1 -1
  238. package/dist/esm/core/signIn.mjs +173 -0
  239. package/dist/esm/core/signIn.mjs.map +1 -0
  240. package/dist/esm/core/signIn.native.js +209 -0
  241. package/dist/esm/core/signIn.native.js.map +1 -0
  242. package/dist/esm/core/store.mjs +47 -2
  243. package/dist/esm/core/store.mjs.map +1 -1
  244. package/dist/esm/core/store.native.js +49 -2
  245. package/dist/esm/core/store.native.js.map +1 -1
  246. package/dist/esm/families/btc.mjs +19 -0
  247. package/dist/esm/families/btc.mjs.map +1 -0
  248. package/dist/esm/families/btc.native.js +21 -0
  249. package/dist/esm/families/btc.native.js.map +1 -0
  250. package/dist/esm/families/eth.mjs +32 -0
  251. package/dist/esm/families/eth.mjs.map +1 -0
  252. package/dist/esm/families/eth.native.js +33 -0
  253. package/dist/esm/families/eth.native.js.map +1 -0
  254. package/dist/esm/families/gpg.mjs +15 -0
  255. package/dist/esm/families/gpg.mjs.map +1 -0
  256. package/dist/esm/families/gpg.native.js +15 -0
  257. package/dist/esm/families/gpg.native.js.map +1 -0
  258. package/dist/esm/families/host.mjs +12 -0
  259. package/dist/esm/families/host.mjs.map +1 -0
  260. package/dist/esm/families/host.native.js +12 -0
  261. package/dist/esm/families/host.native.js.map +1 -0
  262. package/dist/esm/families/index.mjs +23 -0
  263. package/dist/esm/families/index.mjs.map +1 -0
  264. package/dist/esm/families/index.native.js +23 -0
  265. package/dist/esm/families/index.native.js.map +1 -0
  266. package/dist/esm/families/messages.mjs +32 -0
  267. package/dist/esm/families/messages.mjs.map +1 -0
  268. package/dist/esm/families/messages.native.js +34 -0
  269. package/dist/esm/families/messages.native.js.map +1 -0
  270. package/dist/esm/families/sol.mjs +30 -0
  271. package/dist/esm/families/sol.mjs.map +1 -0
  272. package/dist/esm/families/sol.native.js +36 -0
  273. package/dist/esm/families/sol.native.js.map +1 -0
  274. package/dist/esm/families/sui.mjs +23 -0
  275. package/dist/esm/families/sui.mjs.map +1 -0
  276. package/dist/esm/families/sui.native.js +25 -0
  277. package/dist/esm/families/sui.native.js.map +1 -0
  278. package/dist/esm/index.mjs +6 -3
  279. package/dist/esm/index.mjs.map +1 -1
  280. package/dist/esm/index.native.js +6 -3
  281. package/dist/esm/index.native.js.map +1 -1
  282. package/dist/esm/keycloak/keycloakWallet.mjs +13 -0
  283. package/dist/esm/keycloak/keycloakWallet.mjs.map +1 -1
  284. package/dist/esm/keycloak/keycloakWallet.native.js +15 -0
  285. package/dist/esm/keycloak/keycloakWallet.native.js.map +1 -1
  286. package/dist/esm/keycloak/useDirectLogin.mjs +10 -5
  287. package/dist/esm/keycloak/useDirectLogin.mjs.map +1 -1
  288. package/dist/esm/keycloak/useDirectLogin.native.js +12 -5
  289. package/dist/esm/keycloak/useDirectLogin.native.js.map +1 -1
  290. package/dist/esm/keycloak/useWalletLogin.mjs +16 -8
  291. package/dist/esm/keycloak/useWalletLogin.mjs.map +1 -1
  292. package/dist/esm/light/drivers.mjs +46 -0
  293. package/dist/esm/light/drivers.mjs.map +1 -0
  294. package/dist/esm/light/drivers.native.js +67 -0
  295. package/dist/esm/light/drivers.native.js.map +1 -0
  296. package/dist/esm/light/index.mjs +3 -0
  297. package/dist/esm/light/index.mjs.map +1 -0
  298. package/dist/esm/light/index.native.js +3 -0
  299. package/dist/esm/light/index.native.js.map +1 -0
  300. package/dist/esm/providers/WalletProvider.mjs +60 -19
  301. package/dist/esm/providers/WalletProvider.mjs.map +1 -1
  302. package/dist/esm/providers/WalletProvider.native.js +101 -59
  303. package/dist/esm/providers/WalletProvider.native.js.map +1 -1
  304. package/dist/esm/providers/families.mjs +27 -0
  305. package/dist/esm/providers/families.mjs.map +1 -0
  306. package/dist/esm/providers/families.native.js +30 -0
  307. package/dist/esm/providers/families.native.js.map +1 -0
  308. package/dist/esm/providers/index.mjs +2 -2
  309. package/dist/esm/providers/index.mjs.map +1 -1
  310. package/dist/esm/providers/index.native.js +2 -2
  311. package/dist/esm/providers/index.native.js.map +1 -1
  312. package/dist/esm/providers/walletConfig.mjs +40 -1
  313. package/dist/esm/providers/walletConfig.mjs.map +1 -1
  314. package/dist/esm/providers/walletConfig.native.js +67 -1
  315. package/dist/esm/providers/walletConfig.native.js.map +1 -1
  316. package/dist/esm/wagmi/driver.mjs +232 -0
  317. package/dist/esm/wagmi/driver.mjs.map +1 -0
  318. package/dist/esm/wagmi/driver.native.js +303 -0
  319. package/dist/esm/wagmi/driver.native.js.map +1 -0
  320. package/dist/esm/wagmi/host.mjs +213 -0
  321. package/dist/esm/wagmi/host.mjs.map +1 -0
  322. package/dist/esm/wagmi/host.native.js +291 -0
  323. package/dist/esm/wagmi/host.native.js.map +1 -0
  324. package/dist/esm/wagmi/index.mjs +3 -0
  325. package/dist/esm/wagmi/index.mjs.map +1 -0
  326. package/dist/esm/wagmi/index.native.js +3 -0
  327. package/dist/esm/wagmi/index.native.js.map +1 -0
  328. package/dist/esm/web.mjs +13 -0
  329. package/dist/esm/web.mjs.map +1 -0
  330. package/dist/jsx/bridge/base58.mjs +23 -0
  331. package/dist/jsx/bridge/base58.mjs.map +1 -0
  332. package/dist/jsx/bridge/base58.native.js +51 -0
  333. package/dist/jsx/bridge/base58.native.js.map +1 -0
  334. package/dist/jsx/bridge/core.mjs +3 -2
  335. package/dist/jsx/bridge/core.mjs.map +1 -1
  336. package/dist/jsx/bridge/core.native.js +5 -1
  337. package/dist/jsx/bridge/core.native.js.map +1 -1
  338. package/dist/jsx/bridge/drivers.mjs +113 -0
  339. package/dist/jsx/bridge/drivers.mjs.map +1 -0
  340. package/dist/jsx/bridge/drivers.native.js +161 -0
  341. package/dist/jsx/bridge/drivers.native.js.map +1 -0
  342. package/dist/jsx/bridge/nativeHost.mjs +50 -11
  343. package/dist/jsx/bridge/nativeHost.mjs.map +1 -1
  344. package/dist/jsx/bridge/nativeHost.native.js +56 -9
  345. package/dist/jsx/bridge/nativeHost.native.js.map +1 -1
  346. package/dist/jsx/clients/adapter.mjs.map +1 -1
  347. package/dist/jsx/clients/adapter.native.js.map +1 -1
  348. package/dist/jsx/clients/connector.mjs.map +1 -1
  349. package/dist/jsx/clients/connector.native.js.map +1 -1
  350. package/dist/jsx/clients/evm.mjs +1 -0
  351. package/dist/jsx/clients/evm.mjs.map +1 -1
  352. package/dist/jsx/clients/evm.native.js +1 -0
  353. package/dist/jsx/clients/evm.native.js.map +1 -1
  354. package/dist/jsx/clients/evmRead.mjs +78 -0
  355. package/dist/jsx/clients/evmRead.mjs.map +1 -0
  356. package/dist/jsx/clients/evmRead.native.js +124 -0
  357. package/dist/jsx/clients/evmRead.native.js.map +1 -0
  358. package/dist/jsx/clients/hooks.mjs +38 -9
  359. package/dist/jsx/clients/hooks.mjs.map +1 -1
  360. package/dist/jsx/clients/hooks.native.js +43 -5
  361. package/dist/jsx/clients/hooks.native.js.map +1 -1
  362. package/dist/jsx/clients/index.mjs +4 -3
  363. package/dist/jsx/clients/index.mjs.map +1 -1
  364. package/dist/jsx/clients/index.native.js +5 -0
  365. package/dist/jsx/clients/index.native.js.map +1 -1
  366. package/dist/jsx/clients/types.mjs +7 -1
  367. package/dist/jsx/clients/types.mjs.map +1 -1
  368. package/dist/jsx/clients/types.native.js +14 -0
  369. package/dist/jsx/clients/types.native.js.map +1 -1
  370. package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs +44 -2
  371. package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
  372. package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js +73 -5
  373. package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
  374. package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs +46 -0
  375. package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
  376. package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js +55 -0
  377. package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
  378. package/dist/jsx/connectkit/adapters/SuiAdapter.mjs +40 -0
  379. package/dist/jsx/connectkit/adapters/SuiAdapter.mjs.map +1 -1
  380. package/dist/jsx/connectkit/adapters/SuiAdapter.native.js +50 -0
  381. package/dist/jsx/connectkit/adapters/SuiAdapter.native.js.map +1 -1
  382. package/dist/jsx/connectkit/connectors/ensureWalletConnectors.mjs +4 -1
  383. package/dist/jsx/connectkit/connectors/ensureWalletConnectors.mjs.map +1 -1
  384. package/dist/jsx/connectkit/connectors/ensureWalletConnectors.native.js +8 -1
  385. package/dist/jsx/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
  386. package/dist/jsx/connectkit/connectors/getWalletConnectors.mjs.map +1 -1
  387. package/dist/jsx/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
  388. package/dist/jsx/connectkit/connectors/syntheticChains.mjs.map +1 -1
  389. package/dist/jsx/connectkit/connectors/syntheticChains.native.js.map +1 -1
  390. package/dist/jsx/connectkit/connectors/walletAdapterConnector.mjs.map +1 -1
  391. package/dist/jsx/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
  392. package/dist/jsx/connectkit/defaultConfig.mjs +6 -3
  393. package/dist/jsx/connectkit/defaultConfig.mjs.map +1 -1
  394. package/dist/jsx/connectkit/defaultConfig.native.js +9 -2
  395. package/dist/jsx/connectkit/defaultConfig.native.js.map +1 -1
  396. package/dist/jsx/connectkit/siwe/SIWEContext.mjs.map +1 -1
  397. package/dist/jsx/connectkit/siwe/SIWEContext.native.js.map +1 -1
  398. package/dist/jsx/connectkit/siwe/SIWEProvider.mjs +6 -4
  399. package/dist/jsx/connectkit/siwe/SIWEProvider.mjs.map +1 -1
  400. package/dist/jsx/connectkit/siwe/SIWEProvider.native.js +8 -4
  401. package/dist/jsx/connectkit/siwe/SIWEProvider.native.js.map +1 -1
  402. package/dist/jsx/connectkit/siwe/connectIntent.mjs +54 -16
  403. package/dist/jsx/connectkit/siwe/connectIntent.mjs.map +1 -1
  404. package/dist/jsx/connectkit/siwe/connectIntent.native.js +100 -16
  405. package/dist/jsx/connectkit/siwe/connectIntent.native.js.map +1 -1
  406. package/dist/jsx/connectkit/siwe/useSIWE.mjs.map +1 -1
  407. package/dist/jsx/connectkit/siwe/useSIWE.native.js.map +1 -1
  408. package/dist/jsx/connectkit/web3Bridge.mjs +61 -16
  409. package/dist/jsx/connectkit/web3Bridge.mjs.map +1 -1
  410. package/dist/jsx/connectkit/web3Bridge.native.js +64 -14
  411. package/dist/jsx/connectkit/web3Bridge.native.js.map +1 -1
  412. package/dist/jsx/core/family.mjs +17 -0
  413. package/dist/jsx/core/family.mjs.map +1 -1
  414. package/dist/jsx/core/family.native.js +17 -0
  415. package/dist/jsx/core/family.native.js.map +1 -1
  416. package/dist/jsx/core/index.mjs +5 -3
  417. package/dist/jsx/core/index.mjs.map +1 -1
  418. package/dist/jsx/core/index.native.js +10 -1
  419. package/dist/jsx/core/index.native.js.map +1 -1
  420. package/dist/jsx/core/lightDriver.mjs +157 -0
  421. package/dist/jsx/core/lightDriver.mjs.map +1 -0
  422. package/dist/jsx/core/lightDriver.native.js +260 -0
  423. package/dist/jsx/core/lightDriver.native.js.map +1 -0
  424. package/dist/jsx/core/react.mjs +10 -1
  425. package/dist/jsx/core/react.mjs.map +1 -1
  426. package/dist/jsx/core/react.native.js +16 -1
  427. package/dist/jsx/core/react.native.js.map +1 -1
  428. package/dist/jsx/core/signIn.mjs +173 -0
  429. package/dist/jsx/core/signIn.mjs.map +1 -0
  430. package/dist/jsx/core/signIn.native.js +240 -0
  431. package/dist/jsx/core/signIn.native.js.map +1 -0
  432. package/dist/jsx/core/store.mjs +47 -2
  433. package/dist/jsx/core/store.mjs.map +1 -1
  434. package/dist/jsx/core/store.native.js +49 -2
  435. package/dist/jsx/core/store.native.js.map +1 -1
  436. package/dist/jsx/families/btc.mjs +19 -0
  437. package/dist/jsx/families/btc.mjs.map +1 -0
  438. package/dist/jsx/families/btc.native.js +49 -0
  439. package/dist/jsx/families/btc.native.js.map +1 -0
  440. package/dist/jsx/families/eth.mjs +32 -0
  441. package/dist/jsx/families/eth.mjs.map +1 -0
  442. package/dist/jsx/families/eth.native.js +61 -0
  443. package/dist/jsx/families/eth.native.js.map +1 -0
  444. package/dist/jsx/families/gpg.mjs +15 -0
  445. package/dist/jsx/families/gpg.mjs.map +1 -0
  446. package/dist/jsx/families/gpg.native.js +43 -0
  447. package/dist/jsx/families/gpg.native.js.map +1 -0
  448. package/dist/jsx/families/host.mjs +12 -0
  449. package/dist/jsx/families/host.mjs.map +1 -0
  450. package/dist/jsx/families/host.native.js +41 -0
  451. package/dist/jsx/families/host.native.js.map +1 -0
  452. package/dist/jsx/families/index.mjs +23 -0
  453. package/dist/jsx/families/index.mjs.map +1 -0
  454. package/dist/jsx/families/index.native.js +56 -0
  455. package/dist/jsx/families/index.native.js.map +1 -0
  456. package/dist/jsx/families/messages.mjs +32 -0
  457. package/dist/jsx/families/messages.mjs.map +1 -0
  458. package/dist/jsx/families/messages.native.js +66 -0
  459. package/dist/jsx/families/messages.native.js.map +1 -0
  460. package/dist/jsx/families/sol.mjs +30 -0
  461. package/dist/jsx/families/sol.mjs.map +1 -0
  462. package/dist/jsx/families/sol.native.js +64 -0
  463. package/dist/jsx/families/sol.native.js.map +1 -0
  464. package/dist/jsx/families/sui.mjs +23 -0
  465. package/dist/jsx/families/sui.mjs.map +1 -0
  466. package/dist/jsx/families/sui.native.js +53 -0
  467. package/dist/jsx/families/sui.native.js.map +1 -0
  468. package/dist/jsx/index.js +6 -3
  469. package/dist/jsx/index.js.map +1 -1
  470. package/dist/jsx/index.mjs +6 -3
  471. package/dist/jsx/index.mjs.map +1 -1
  472. package/dist/jsx/index.native.js +21 -1
  473. package/dist/jsx/index.native.js.map +1 -1
  474. package/dist/jsx/keycloak/keycloakWallet.mjs +13 -0
  475. package/dist/jsx/keycloak/keycloakWallet.mjs.map +1 -1
  476. package/dist/jsx/keycloak/keycloakWallet.native.js +15 -0
  477. package/dist/jsx/keycloak/keycloakWallet.native.js.map +1 -1
  478. package/dist/jsx/keycloak/useDirectLogin.mjs +10 -5
  479. package/dist/jsx/keycloak/useDirectLogin.mjs.map +1 -1
  480. package/dist/jsx/keycloak/useDirectLogin.native.js +12 -5
  481. package/dist/jsx/keycloak/useDirectLogin.native.js.map +1 -1
  482. package/dist/jsx/keycloak/useWalletLogin.mjs +16 -8
  483. package/dist/jsx/keycloak/useWalletLogin.mjs.map +1 -1
  484. package/dist/jsx/light/drivers.mjs +46 -0
  485. package/dist/jsx/light/drivers.mjs.map +1 -0
  486. package/dist/jsx/light/drivers.native.js +97 -0
  487. package/dist/jsx/light/drivers.native.js.map +1 -0
  488. package/dist/jsx/light/index.mjs +3 -0
  489. package/dist/jsx/light/index.mjs.map +1 -0
  490. package/dist/jsx/light/index.native.js +33 -0
  491. package/dist/jsx/light/index.native.js.map +1 -0
  492. package/dist/jsx/providers/WalletProvider.mjs +60 -19
  493. package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
  494. package/dist/jsx/providers/WalletProvider.native.js +99 -56
  495. package/dist/jsx/providers/WalletProvider.native.js.map +1 -1
  496. package/dist/jsx/providers/families.mjs +27 -0
  497. package/dist/jsx/providers/families.mjs.map +1 -0
  498. package/dist/jsx/providers/families.native.js +59 -0
  499. package/dist/jsx/providers/families.native.js.map +1 -0
  500. package/dist/jsx/providers/index.mjs +2 -2
  501. package/dist/jsx/providers/index.mjs.map +1 -1
  502. package/dist/jsx/providers/index.native.js +1 -0
  503. package/dist/jsx/providers/index.native.js.map +1 -1
  504. package/dist/jsx/providers/walletConfig.mjs +40 -1
  505. package/dist/jsx/providers/walletConfig.mjs.map +1 -1
  506. package/dist/jsx/providers/walletConfig.native.js +68 -0
  507. package/dist/jsx/providers/walletConfig.native.js.map +1 -1
  508. package/dist/jsx/wagmi/driver.mjs +232 -0
  509. package/dist/jsx/wagmi/driver.mjs.map +1 -0
  510. package/dist/jsx/wagmi/driver.native.js +331 -0
  511. package/dist/jsx/wagmi/driver.native.js.map +1 -0
  512. package/dist/jsx/wagmi/host.mjs +213 -0
  513. package/dist/jsx/wagmi/host.mjs.map +1 -0
  514. package/dist/jsx/wagmi/host.native.js +320 -0
  515. package/dist/jsx/wagmi/host.native.js.map +1 -0
  516. package/dist/jsx/wagmi/index.mjs +3 -0
  517. package/dist/jsx/wagmi/index.mjs.map +1 -0
  518. package/dist/jsx/wagmi/index.native.js +31 -0
  519. package/dist/jsx/wagmi/index.native.js.map +1 -0
  520. package/dist/jsx/web.mjs +13 -0
  521. package/dist/jsx/web.mjs.map +1 -0
  522. package/dist/keycloak/login.iife.js +449 -443
  523. package/docs/bridge-protocol.md +41 -14
  524. package/package.json +13 -6
  525. package/src/bridge/base58.spec.ts +18 -0
  526. package/src/bridge/base58.ts +25 -0
  527. package/src/bridge/core.ts +2 -0
  528. package/src/bridge/drivers.spec.ts +283 -0
  529. package/src/bridge/drivers.ts +155 -0
  530. package/src/bridge/index.spec.ts +3 -0
  531. package/src/bridge/nativeHost.spec.ts +139 -15
  532. package/src/bridge/nativeHost.ts +84 -14
  533. package/src/bundler/metaMaskConnectTimeouts.spec.ts +3 -0
  534. package/src/clients/adapter.ts +5 -1
  535. package/src/clients/connector.ts +2 -0
  536. package/src/clients/evm.spec.ts +8 -0
  537. package/src/clients/evm.ts +3 -0
  538. package/src/clients/evmRead.spec.ts +180 -0
  539. package/src/clients/evmRead.ts +140 -0
  540. package/src/clients/hooks.spec.tsx +58 -0
  541. package/src/clients/hooks.ts +73 -14
  542. package/src/clients/index.ts +11 -1
  543. package/src/clients/types.ts +15 -1
  544. package/src/clients/useEvmReadClient.spec.tsx +93 -0
  545. package/src/connectkit/adapters/BitcoinAdapter.ts +64 -4
  546. package/src/connectkit/adapters/SolanaAdapter.ts +49 -0
  547. package/src/connectkit/adapters/SuiAdapter.ts +47 -1
  548. package/src/connectkit/connectors/ensureWalletConnectors.ts +10 -1
  549. package/src/connectkit/connectors/getWalletConnectors.ts +2 -0
  550. package/src/connectkit/connectors/syntheticChains.ts +8 -0
  551. package/src/connectkit/connectors/walletAdapterConnector.ts +2 -0
  552. package/src/connectkit/defaultConfig.ts +21 -7
  553. package/src/connectkit/siwe/SIWEContext.tsx +3 -0
  554. package/src/connectkit/siwe/SIWEProvider.spec.tsx +109 -0
  555. package/src/connectkit/siwe/SIWEProvider.tsx +16 -7
  556. package/src/connectkit/siwe/connectIntent.spec.ts +100 -30
  557. package/src/connectkit/siwe/connectIntent.ts +99 -25
  558. package/src/connectkit/siwe/useSIWE.ts +4 -1
  559. package/src/connectkit/web3Bridge.tsx +75 -15
  560. package/src/core/family.spec.ts +19 -0
  561. package/src/core/family.ts +43 -0
  562. package/src/core/imports.spec.ts +1 -1
  563. package/src/core/index.ts +23 -0
  564. package/src/core/lightDriver.spec.ts +284 -0
  565. package/src/core/lightDriver.ts +235 -0
  566. package/src/core/react.ts +18 -0
  567. package/src/core/signIn.spec.tsx +305 -0
  568. package/src/core/signIn.ts +282 -0
  569. package/src/core/store.spec.ts +83 -0
  570. package/src/core/store.ts +60 -9
  571. package/src/core/types.ts +15 -1
  572. package/src/families/btc.ts +16 -0
  573. package/src/families/eth.ts +35 -0
  574. package/src/families/families.spec.ts +180 -0
  575. package/src/families/gpg.ts +13 -0
  576. package/src/families/host.ts +34 -0
  577. package/src/families/index.ts +32 -0
  578. package/src/families/messages.ts +39 -0
  579. package/src/families/sol.ts +25 -0
  580. package/src/families/sui.ts +17 -0
  581. package/src/index.ts +38 -1
  582. package/src/keycloak/KeycloakWalletLogin.spec.tsx +211 -4
  583. package/src/keycloak/keycloakWallet.spec.ts +81 -1
  584. package/src/keycloak/keycloakWallet.ts +24 -2
  585. package/src/keycloak/useDirectLogin.spec.tsx +77 -4
  586. package/src/keycloak/useDirectLogin.ts +23 -11
  587. package/src/keycloak/useWalletLogin.spec.tsx +52 -0
  588. package/src/keycloak/useWalletLogin.ts +24 -6
  589. package/src/light/drivers.spec.ts +330 -0
  590. package/src/light/drivers.ts +54 -0
  591. package/src/light/index.ts +1 -0
  592. package/src/light/native.spec.ts +22 -0
  593. package/src/providers/WalletProvider.native.spec.tsx +288 -0
  594. package/src/providers/WalletProvider.native.tsx +132 -59
  595. package/src/providers/WalletProvider.spec.tsx +521 -0
  596. package/src/providers/WalletProvider.tsx +90 -19
  597. package/src/providers/families.tsx +39 -0
  598. package/src/providers/index.ts +3 -0
  599. package/src/providers/walletConfig.spec.ts +19 -1
  600. package/src/providers/walletConfig.ts +80 -2
  601. package/src/wagmi/driver.spec.ts +407 -0
  602. package/src/wagmi/driver.ts +303 -0
  603. package/src/wagmi/host.spec.tsx +416 -0
  604. package/src/wagmi/host.tsx +260 -0
  605. package/src/wagmi/index.ts +1 -0
  606. package/src/web.spec.ts +58 -0
  607. package/src/web.ts +82 -0
  608. package/types/bridge/base58.d.ts +2 -0
  609. package/types/bridge/base58.d.ts.map +1 -0
  610. package/types/bridge/core.d.ts +2 -1
  611. package/types/bridge/core.d.ts.map +1 -1
  612. package/types/bridge/drivers.d.ts +24 -0
  613. package/types/bridge/drivers.d.ts.map +1 -0
  614. package/types/bridge/nativeHost.d.ts +34 -4
  615. package/types/bridge/nativeHost.d.ts.map +1 -1
  616. package/types/clients/adapter.d.ts +5 -1
  617. package/types/clients/adapter.d.ts.map +1 -1
  618. package/types/clients/connector.d.ts +2 -0
  619. package/types/clients/connector.d.ts.map +1 -1
  620. package/types/clients/evm.d.ts +2 -0
  621. package/types/clients/evm.d.ts.map +1 -1
  622. package/types/clients/evmRead.d.ts +54 -0
  623. package/types/clients/evmRead.d.ts.map +1 -0
  624. package/types/clients/hooks.d.ts +23 -3
  625. package/types/clients/hooks.d.ts.map +1 -1
  626. package/types/clients/index.d.ts +4 -2
  627. package/types/clients/index.d.ts.map +1 -1
  628. package/types/clients/types.d.ts +11 -1
  629. package/types/clients/types.d.ts.map +1 -1
  630. package/types/connectkit/adapters/BitcoinAdapter.d.ts +9 -0
  631. package/types/connectkit/adapters/BitcoinAdapter.d.ts.map +1 -1
  632. package/types/connectkit/adapters/SolanaAdapter.d.ts +12 -0
  633. package/types/connectkit/adapters/SolanaAdapter.d.ts.map +1 -1
  634. package/types/connectkit/adapters/SuiAdapter.d.ts +8 -0
  635. package/types/connectkit/adapters/SuiAdapter.d.ts.map +1 -1
  636. package/types/connectkit/connectors/ensureWalletConnectors.d.ts +3 -0
  637. package/types/connectkit/connectors/ensureWalletConnectors.d.ts.map +1 -1
  638. package/types/connectkit/connectors/getWalletConnectors.d.ts +2 -0
  639. package/types/connectkit/connectors/getWalletConnectors.d.ts.map +1 -1
  640. package/types/connectkit/connectors/syntheticChains.d.ts +8 -0
  641. package/types/connectkit/connectors/syntheticChains.d.ts.map +1 -1
  642. package/types/connectkit/connectors/walletAdapterConnector.d.ts +2 -0
  643. package/types/connectkit/connectors/walletAdapterConnector.d.ts.map +1 -1
  644. package/types/connectkit/defaultConfig.d.ts +2 -1
  645. package/types/connectkit/defaultConfig.d.ts.map +1 -1
  646. package/types/connectkit/siwe/SIWEContext.d.ts.map +1 -1
  647. package/types/connectkit/siwe/SIWEProvider.d.ts +6 -0
  648. package/types/connectkit/siwe/SIWEProvider.d.ts.map +1 -1
  649. package/types/connectkit/siwe/connectIntent.d.ts +16 -5
  650. package/types/connectkit/siwe/connectIntent.d.ts.map +1 -1
  651. package/types/connectkit/siwe/useSIWE.d.ts +4 -0
  652. package/types/connectkit/siwe/useSIWE.d.ts.map +1 -1
  653. package/types/connectkit/web3Bridge.d.ts +2 -0
  654. package/types/connectkit/web3Bridge.d.ts.map +1 -1
  655. package/types/core/family.d.ts +26 -0
  656. package/types/core/family.d.ts.map +1 -1
  657. package/types/core/index.d.ts +6 -4
  658. package/types/core/index.d.ts.map +1 -1
  659. package/types/core/lightDriver.d.ts +52 -0
  660. package/types/core/lightDriver.d.ts.map +1 -0
  661. package/types/core/react.d.ts +4 -0
  662. package/types/core/react.d.ts.map +1 -1
  663. package/types/core/signIn.d.ts +85 -0
  664. package/types/core/signIn.d.ts.map +1 -0
  665. package/types/core/store.d.ts +12 -3
  666. package/types/core/store.d.ts.map +1 -1
  667. package/types/core/types.d.ts +14 -1
  668. package/types/core/types.d.ts.map +1 -1
  669. package/types/families/btc.d.ts +4 -0
  670. package/types/families/btc.d.ts.map +1 -0
  671. package/types/families/eth.d.ts +13 -0
  672. package/types/families/eth.d.ts.map +1 -0
  673. package/types/families/gpg.d.ts +4 -0
  674. package/types/families/gpg.d.ts.map +1 -0
  675. package/types/families/host.d.ts +24 -0
  676. package/types/families/host.d.ts.map +1 -0
  677. package/types/families/index.d.ts +14 -0
  678. package/types/families/index.d.ts.map +1 -0
  679. package/types/families/messages.d.ts +7 -0
  680. package/types/families/messages.d.ts.map +1 -0
  681. package/types/families/sol.d.ts +9 -0
  682. package/types/families/sol.d.ts.map +1 -0
  683. package/types/families/sui.d.ts +4 -0
  684. package/types/families/sui.d.ts.map +1 -0
  685. package/types/index.d.ts +5 -2
  686. package/types/index.d.ts.map +1 -1
  687. package/types/keycloak/keycloakWallet.d.ts +15 -2
  688. package/types/keycloak/keycloakWallet.d.ts.map +1 -1
  689. package/types/keycloak/useDirectLogin.d.ts +11 -6
  690. package/types/keycloak/useDirectLogin.d.ts.map +1 -1
  691. package/types/keycloak/useWalletLogin.d.ts +8 -1
  692. package/types/keycloak/useWalletLogin.d.ts.map +1 -1
  693. package/types/light/drivers.d.ts +13 -0
  694. package/types/light/drivers.d.ts.map +1 -0
  695. package/types/light/index.d.ts +2 -0
  696. package/types/light/index.d.ts.map +1 -0
  697. package/types/providers/WalletProvider.d.ts +37 -6
  698. package/types/providers/WalletProvider.d.ts.map +1 -1
  699. package/types/providers/WalletProvider.native.d.ts +32 -3
  700. package/types/providers/WalletProvider.native.d.ts.map +1 -1
  701. package/types/providers/families.d.ts +12 -0
  702. package/types/providers/families.d.ts.map +1 -0
  703. package/types/providers/index.d.ts +1 -1
  704. package/types/providers/index.d.ts.map +1 -1
  705. package/types/providers/walletConfig.d.ts +32 -2
  706. package/types/providers/walletConfig.d.ts.map +1 -1
  707. package/types/wagmi/driver.d.ts +44 -0
  708. package/types/wagmi/driver.d.ts.map +1 -0
  709. package/types/wagmi/host.d.ts +31 -0
  710. package/types/wagmi/host.d.ts.map +1 -0
  711. package/types/wagmi/index.d.ts +2 -0
  712. package/types/wagmi/index.d.ts.map +1 -0
  713. package/types/web.d.ts +13 -0
  714. package/types/web.d.ts.map +1 -0
@@ -9,54 +9,128 @@
9
9
  * shut, so web3Bridge would route to the sign-in screen without anything on screen —
10
10
  * the user has to press connect a second time just to reach the signature prompt.
11
11
  *
12
- * sessionStorage survives that reload (same tab), so the intent does too.
12
+ * The intent lives in localStorage. A phone often kills the whole browser while the
13
+ * wallet app is in front, and that loses sessionStorage along with the page (measured
14
+ * on Android 16 Chrome, PROMA-87). It is only read, never used up, when the page comes
15
+ * back: a page that reads it and is then discarded before the user sees it would
16
+ * otherwise take it along. It ends with the sign-in (web3Bridge), a disconnect, the
17
+ * user closing the modal, or its expiry.
18
+ *
19
+ * localStorage outlives the tab, so only two pages act on it: the one that set it, and
20
+ * one the browser brought back (a reload, or the history restore Android Chrome does
21
+ * for a tab it killed). A page opened fresh, a new tab say, leaves it alone.
13
22
  *
14
23
  * It is deliberately an INTENT flag rather than "reopen whenever connected": a cold
15
24
  * page load with a wallet already connected must NOT pop a modal the user never asked
16
- * for. Only a connect the user just initiated carries the intent, and it's consumed
17
- * once acted on.
25
+ * for. Only a connect the user started carries the intent.
18
26
  *
19
27
  * The stored value is the moment the intent expires. An abandoned connect (the user
20
- * opened the wallet and never came back) would otherwise leave the flag set for the
21
- * rest of the tab's life, and a later visit whose wallet auto-reconnects would pop a
22
- * signature request nobody asked for.
28
+ * opened the wallet and never came back) would otherwise leave the flag set, and a
29
+ * later visit whose wallet auto-reconnects would pop a signature request nobody asked
30
+ * for.
23
31
  */
24
32
  const KEY = "wallet:connect-intent";
25
33
 
26
- /** How long a connect intent stays good. Long enough for a wallet app round trip. */
27
- export const CONNECT_INTENT_TTL_MS = 90_000;
34
+ /**
35
+ * How long a connect intent stays good: a wallet app's cold start, its unlock and the
36
+ * user reading two screens, the same budget MetaMask Connect gives its own request.
37
+ */
38
+ export const CONNECT_INTENT_TTL_MS = 600_000;
28
39
 
29
- export function setConnectIntent(ttlMs: number = CONNECT_INTENT_TTL_MS, now: number = Date.now()) {
30
- if (typeof window === "undefined") return;
40
+ type IntentStorage = Pick<Storage, "getItem" | "setItem" | "removeItem">;
41
+
42
+ function storageOf(name: "localStorage" | "sessionStorage"): IntentStorage | null {
43
+ if (typeof window === "undefined") return null;
31
44
  try {
32
- window.sessionStorage.setItem(KEY, String(now + ttlMs));
45
+ const storage = window[name];
46
+ if (typeof storage?.getItem === "function" && typeof storage.removeItem === "function") {
47
+ return storage;
48
+ }
33
49
  } catch {
34
- // Private mode / storage disabled — degrade to the old behaviour, don't throw.
50
+ // A blocked storage throws on access.
35
51
  }
52
+ return null;
36
53
  }
37
54
 
38
55
  /**
39
- * Reads and clears the flag; true only for a connect the user initiated within the
40
- * TTL. A second call returns false.
56
+ * Where the intent lives: localStorage, which a browser kill keeps, and sessionStorage,
57
+ * which a same-tab reload keeps whatever the browser reports about the navigation.
41
58
  */
42
- export function consumeConnectIntent(now: number = Date.now()): boolean {
43
- if (typeof window === "undefined") return false;
59
+ function intentStorages(): IntentStorage[] {
60
+ return [storageOf("localStorage"), storageOf("sessionStorage")].filter(
61
+ (storage): storage is IntentStorage => storage !== null,
62
+ );
63
+ }
64
+
65
+ function liveIn(storage: IntentStorage | null, now: number): boolean {
66
+ const raw = storage?.getItem(KEY) ?? null;
67
+ if (raw === null) return false;
68
+ const expiresAt = Number(raw);
69
+ if (Number.isFinite(expiresAt) && now < expiresAt) return true;
70
+ storage?.removeItem(KEY);
71
+ return false;
72
+ }
73
+
74
+ let setByThisPage = false;
75
+
76
+ /**
77
+ * Whether the browser brought this document back rather than opening it: a reload, a
78
+ * history restore (Android Chrome restores a tab it killed as `back_forward`, measured
79
+ * on Android 16) or a discarded tab.
80
+ */
81
+ export function isRestoredPage(): boolean {
44
82
  try {
45
- const raw = window.sessionStorage.getItem(KEY);
46
- if (raw === null) return false;
47
- window.sessionStorage.removeItem(KEY);
48
- const expiresAt = Number(raw);
49
- return Number.isFinite(expiresAt) && now < expiresAt;
83
+ if ((globalThis.document as { wasDiscarded?: boolean } | undefined)?.wasDiscarded) return true;
84
+ const [entry] = globalThis.performance?.getEntriesByType?.("navigation") ?? [];
85
+ const type = (entry as { type?: string } | undefined)?.type;
86
+ return type === "reload" || type === "back_forward";
50
87
  } catch {
51
88
  return false;
52
89
  }
53
90
  }
54
91
 
55
- export function clearConnectIntent() {
56
- if (typeof window === "undefined") return;
92
+ export function setConnectIntent(ttlMs: number = CONNECT_INTENT_TTL_MS, now: number = Date.now()) {
93
+ setByThisPage = true;
94
+ for (const storage of intentStorages()) {
95
+ try {
96
+ storage.setItem(KEY, String(now + ttlMs));
97
+ } catch {
98
+ // Private mode / storage disabled — degrade to the old behaviour, don't throw.
99
+ }
100
+ }
101
+ }
102
+
103
+ /**
104
+ * True while a connect the user started is still good, in the tab that started it or
105
+ * on a page the browser brought back. Reading it leaves it in place.
106
+ */
107
+ export function hasConnectIntent(
108
+ now: number = Date.now(),
109
+ restored: boolean = isRestoredPage(),
110
+ ): boolean {
57
111
  try {
58
- window.sessionStorage.removeItem(KEY);
112
+ const session = storageOf("sessionStorage");
113
+ const local = storageOf("localStorage");
114
+ const inThisTab = liveIn(session, now);
115
+ const kept = local !== null && local !== session && liveIn(local, now);
116
+ return inThisTab || (kept && (setByThisPage || restored));
59
117
  } catch {
60
- // ignore
118
+ return false;
119
+ }
120
+ }
121
+
122
+ /** Test seam: forget that this page set the intent, as the next document would. */
123
+ export function resetConnectIntentPage(): void {
124
+ setByThisPage = false;
125
+ }
126
+
127
+ export function clearConnectIntent() {
128
+ setByThisPage = false;
129
+ for (const storage of intentStorages()) {
130
+ try {
131
+ storage.removeItem(KEY);
132
+ } catch {
133
+ // ignore
134
+ }
61
135
  }
62
136
  }
@@ -22,7 +22,10 @@ type UseSIWEConfig = {
22
22
  onSignOut?: () => void;
23
23
  };
24
24
 
25
- // Consumer-facing hook
25
+ /**
26
+ * The SIWEProvider's sign-in state.
27
+ * @deprecated Goes in 8.0.0 with SIWEProvider; `useSignIn()` reads a SignInProvider.
28
+ */
26
29
  export const useSIWE = ({ onSignIn, onSignOut }: UseSIWEConfig = {}): HookProps | any => {
27
30
  const siweContextValue = useContext(SIWEContext);
28
31
  if (!siweContextValue) {
@@ -1,4 +1,4 @@
1
- import React, { useContext as useReactContext, useEffect, useMemo } from "react";
1
+ import React, { useContext as useReactContext, useEffect, useMemo, useRef } from "react";
2
2
  import { useAccount, useAccountEffect, useConfig } from "wagmi";
3
3
 
4
4
  import { ModalState, ModalStateProvider, routes, useContext } from "@multiplatform.one/connectkit";
@@ -7,11 +7,12 @@ import { Web3ScreenRegistrar } from "./screens";
7
7
  import { ensureWalletConnectors } from "./connectors/ensureWalletConnectors";
8
8
  import { useChainIsSupported } from "./hooks/useChainIsSupported";
9
9
  import { useConnectCallback, useConnectCallbackProps } from "./hooks/useConnectCallback";
10
- import { clearConnectIntent, consumeConnectIntent } from "./siwe/connectIntent";
11
- import { SIWEContext } from "./siwe/SIWEContext";
10
+ import { clearConnectIntent, hasConnectIntent } from "./siwe/connectIntent";
11
+ import { SIWEContext, StatusState } from "./siwe/SIWEContext";
12
12
  import { GpgContext } from "@multiplatform.one/gpg";
13
13
  import { useWallet } from "./wallets/useWallets";
14
14
  import { ConnectorLauncherProvider } from "./openConnector";
15
+ import { WagmiConnectionHost } from "../wagmi/host";
15
16
 
16
17
  // ─────────────────────────────────────────────────────────────────────────────
17
18
  // The web3 ⇄ connectkit bridge: the ONE place that knows both wagmi and the
@@ -25,8 +26,15 @@ import { ConnectorLauncherProvider } from "./openConnector";
25
26
  //
26
27
  // A gpg-only host renders no bridge → connectkit's default empty ModalState → no
27
28
  // viem anywhere in the tree.
29
+ //
30
+ // Under a bare WagmiProvider (no Web3Provider above) it also mounts the
31
+ // connection store over that config, so useConnection() works wherever the
32
+ // modal does.
28
33
  // ─────────────────────────────────────────────────────────────────────────────
29
34
 
35
+ /** How long a page stays disconnected on load before a live intent reopens the list. */
36
+ export const RESUME_SETTLE_MS = 1_000;
37
+
30
38
  export type Web3ModalBridgeProps = {
31
39
  children: React.ReactNode;
32
40
  } & useConnectCallbackProps;
@@ -40,10 +48,11 @@ export const Web3ModalBridge: React.FC<Web3ModalBridgeProps> = ({
40
48
 
41
49
  useConnectCallback({ onConnect, onDisconnect });
42
50
 
43
- const { isConnected, chain } = useAccount();
51
+ const { isConnected, chain, status } = useAccount();
44
52
  const chainIsSupported = useChainIsSupported(chain?.id);
45
53
 
46
- const signInWithEthereum = useReactContext(SIWEContext)?.enabled ?? false;
54
+ const siwe = useReactContext(SIWEContext);
55
+ const signInWithEthereum = siwe?.enabled ?? false;
47
56
  const signInWithGpg = useReactContext(GpgContext)?.enabled ?? false;
48
57
  const { isSignedIn } = useSIWESignedIn();
49
58
 
@@ -71,6 +80,16 @@ export const Web3ModalBridge: React.FC<Web3ModalBridgeProps> = ({
71
80
  // eslint-disable-next-line react-hooks/exhaustive-deps
72
81
  }, [isConnected, chainIsSupported, chain]);
73
82
 
83
+ // The bridge's own closes (no answer from a reconnect, a wallet connected with no
84
+ // sign-in step) are not the user closing the modal, so they leave the intent alone.
85
+ const openNow = useRef(context.open);
86
+ openNow.current = context.open;
87
+ const closingForBridge = useRef(false);
88
+ const closeForBridge = () => {
89
+ if (openNow.current) closingForBridge.current = true;
90
+ context.setOpen(false);
91
+ };
92
+
74
93
  // On connect: redirect to SIWE (when enabled) or close the modal.
75
94
  useEffect(() => {
76
95
  if (isConnected) {
@@ -90,15 +109,16 @@ export const Web3ModalBridge: React.FC<Web3ModalBridgeProps> = ({
90
109
  // setting the route alone left the sign-in screen mounted behind a shut
91
110
  // modal, and the user had to press connect a second time just to get the
92
111
  // signature prompt. Reopen only when the user actually initiated this
93
- // connect (consumeConnectIntent) — a cold load with a wallet already
112
+ // connect (hasConnectIntent) — a cold load with a wallet already
94
113
  // connected must not pop a modal nobody asked for.
95
- if (consumeConnectIntent()) context.setOpen(true);
114
+ if (hasConnectIntent()) context.setOpen(true);
96
115
  } else {
97
- context.setOpen(false);
116
+ clearConnectIntent();
117
+ closeForBridge();
98
118
  }
99
119
  }
100
120
  } else {
101
- context.setOpen(false);
121
+ closeForBridge();
102
122
  }
103
123
  // eslint-disable-next-line react-hooks/exhaustive-deps
104
124
  }, [isConnected]);
@@ -107,6 +127,44 @@ export const Web3ModalBridge: React.FC<Web3ModalBridgeProps> = ({
107
127
  // next reconnect.
108
128
  useAccountEffect({ onDisconnect: () => clearConnectIntent() });
109
129
 
130
+ // So does the sign-in, and the user shutting the modal.
131
+ const siweStatus = siwe?.status;
132
+ useEffect(() => {
133
+ if (isSignedIn || siweStatus === StatusState.SUCCESS || siweStatus === StatusState.REJECTED) {
134
+ clearConnectIntent();
135
+ }
136
+ }, [isSignedIn, siweStatus]);
137
+ const wasOpen = useRef(context.open);
138
+ useEffect(() => {
139
+ if (wasOpen.current && !context.open && !closingForBridge.current) clearConnectIntent();
140
+ closingForBridge.current = false;
141
+ wasOpen.current = context.open;
142
+ }, [context.open]);
143
+
144
+ // A page the browser threw away during the wallet trip comes back without the
145
+ // connect's answer. Once wagmi has settled on disconnected, a live intent reopens
146
+ // the wallet list, one tap from the wallet, instead of leaving the bare page.
147
+ const latestStatus = useRef(status);
148
+ latestStatus.current = status;
149
+ const resumeChecked = useRef(false);
150
+ useEffect(() => {
151
+ if (resumeChecked.current) return;
152
+ if (status === "connected") {
153
+ resumeChecked.current = true;
154
+ return;
155
+ }
156
+ if (status !== "disconnected") return;
157
+ const timer = setTimeout(() => {
158
+ if (resumeChecked.current || latestStatus.current !== "disconnected") return;
159
+ resumeChecked.current = true;
160
+ if (openNow.current || !hasConnectIntent()) return;
161
+ context.setRoute(routes.CONNECTORS);
162
+ context.setOpen(true);
163
+ }, RESUME_SETTLE_MS);
164
+ return () => clearTimeout(timer);
165
+ // eslint-disable-next-line react-hooks/exhaustive-deps
166
+ }, [status]);
167
+
110
168
  const modalState = useMemo<ModalState>(
111
169
  () => ({
112
170
  connected: isConnected,
@@ -120,12 +178,14 @@ export const Web3ModalBridge: React.FC<Web3ModalBridgeProps> = ({
120
178
  );
121
179
 
122
180
  return (
123
- <Web3ContextProvider>
124
- <Web3ScreenRegistrar />
125
- <ModalStateProvider value={modalState}>
126
- <ConnectorLauncherProvider>{children}</ConnectorLauncherProvider>
127
- </ModalStateProvider>
128
- </Web3ContextProvider>
181
+ <WagmiConnectionHost>
182
+ <Web3ContextProvider>
183
+ <Web3ScreenRegistrar />
184
+ <ModalStateProvider value={modalState}>
185
+ <ConnectorLauncherProvider>{children}</ConnectorLauncherProvider>
186
+ </ModalStateProvider>
187
+ </Web3ContextProvider>
188
+ </WagmiConnectionHost>
129
189
  );
130
190
  };
131
191
 
@@ -50,6 +50,25 @@ describe("defineWalletFamily", () => {
50
50
  );
51
51
  });
52
52
 
53
+ it("carries a frozen bridge namespace and driver, and refuses a bad one", () => {
54
+ const bridgeDriver = () => testDriver("solana", [], {});
55
+ const family = defineWalletFamily({
56
+ ...sol,
57
+ bridge: { namespace: "solana", driver: bridgeDriver },
58
+ });
59
+ expect(family.bridge).toEqual({ namespace: "solana", driver: bridgeDriver });
60
+ expect(Object.isFrozen(family.bridge)).toBe(true);
61
+ expect(defineWalletFamily({ ...gpg, bridge: { namespace: "gpg" } }).bridge?.namespace).toBe(
62
+ "gpg",
63
+ );
64
+ expect(() => defineWalletFamily({ ...sol, bridge: { namespace: "Solana" } })).toThrow(
65
+ /bridge namespace must be lowercase/,
66
+ );
67
+ expect(() =>
68
+ defineWalletFamily({ ...gpg, bridge: { namespace: "gpg", driver: bridgeDriver } }),
69
+ ).toThrow(/connectionless and cannot have a bridge driver/);
70
+ });
71
+
53
72
  it("a connectable family needs a driver", () => {
54
73
  expect(() => defineWalletFamily({ ...sol, driver: undefined })).toThrow(/needs a driver/);
55
74
  });
@@ -8,6 +8,34 @@ import {
8
8
  import { assertName, nameTable } from "./names";
9
9
  import type { ConnectionDriver } from "./types";
10
10
 
11
+ /** What a bridge driver asks of the native app's bridge client (`BridgeClient` fits). */
12
+ export interface BridgeRequester {
13
+ request(
14
+ ns: string,
15
+ method: string,
16
+ params?: unknown,
17
+ options?: { timeoutMs?: number; signal?: AbortSignal },
18
+ ): Promise<unknown>;
19
+ /** Every event the hosted page pushes. Returns the unsubscribe. */
20
+ on(handler: (ns: string, method: string, params: unknown) => void): () => void;
21
+ }
22
+
23
+ /**
24
+ * How a React Native app reaches the family's wallets: the hosted wallet page
25
+ * runs them and serves the family on one bridge namespace.
26
+ */
27
+ export interface FamilyBridge {
28
+ /** The namespace the page serves the family on: `evm`, `solana`, `sui`, `gpg`. */
29
+ readonly namespace: string;
30
+ /**
31
+ * The family's connection driver over the bridge, which the native
32
+ * Web3Provider uses in place of `driver`. Without it the family connects
33
+ * some other way on native (eth through the bridge's wagmi connector) or
34
+ * signs without connecting (gpg).
35
+ */
36
+ readonly driver?: (bridge: BridgeRequester) => ConnectionDriver;
37
+ }
38
+
11
39
  /** What a family package hands the core: `eth({chains})`, `sol({rpcUrl})`, `gpg()`. */
12
40
  export interface WalletFamilyDefinition {
13
41
  /** Short family id, the one the Keycloak message names: `eth`, `sol`, `sui`, `btc`, `gpg`. */
@@ -27,6 +55,8 @@ export interface WalletFamilyDefinition {
27
55
  readonly screens?: readonly ScreenDef[];
28
56
  /** A provider the family needs mounted around the app. */
29
57
  readonly Provider?: ComponentType<{ children?: ReactNode }>;
58
+ /** How a native app reaches the family's wallets through the hosted wallet page. */
59
+ readonly bridge?: FamilyBridge;
30
60
  }
31
61
 
32
62
  export interface WalletFamily extends WalletFamilyDefinition {
@@ -58,12 +88,25 @@ export function defineWalletFamily(definition: WalletFamilyDefinition): WalletFa
58
88
  if (!connectionless && typeof definition.driver !== "function") {
59
89
  throw new Error(`wallet family ${definition.id} needs a driver, or connectionless: true`);
60
90
  }
91
+ const { bridge } = definition;
92
+ if (bridge !== undefined) {
93
+ assertName(`wallet family ${definition.id} bridge namespace`, bridge.namespace);
94
+ if (bridge.driver !== undefined && typeof bridge.driver !== "function") {
95
+ throw new Error(`wallet family ${definition.id}'s bridge driver must be a function`);
96
+ }
97
+ if (bridge.driver && connectionless) {
98
+ throw new Error(
99
+ `wallet family ${definition.id} is connectionless and cannot have a bridge driver`,
100
+ );
101
+ }
102
+ }
61
103
  return Object.freeze({
62
104
  ...definition,
63
105
  aliases: Object.freeze(aliases),
64
106
  connectionless,
65
107
  message: Object.freeze({ ...message }),
66
108
  ...(definition.screens ? { screens: Object.freeze([...definition.screens]) } : {}),
109
+ ...(bridge ? { bridge: Object.freeze({ ...bridge }) } : {}),
67
110
  });
68
111
  }
69
112
 
@@ -67,7 +67,7 @@ function runtimeGraph(start: string) {
67
67
  describe("the core entry", () => {
68
68
  it("loads no chain SDK: only React and its own files", () => {
69
69
  const { files, packages } = runtimeGraph(entry);
70
- expect(Object.fromEntries(packages)).toEqual({ react: "core/react.ts" });
70
+ expect([...packages.keys()]).toEqual(["react"]);
71
71
  expect(files.every((file) => file.startsWith("core/") || file === "clients/types.ts")).toBe(
72
72
  true,
73
73
  );
package/src/core/index.ts CHANGED
@@ -4,6 +4,8 @@
4
4
  export {
5
5
  createFamilyRegistry,
6
6
  defineWalletFamily,
7
+ type BridgeRequester,
8
+ type FamilyBridge,
7
9
  type FamilyRegistry,
8
10
  type WalletFamily,
9
11
  type WalletFamilyDefinition,
@@ -22,13 +24,33 @@ export {
22
24
  type ConnectionStoreOptions,
23
25
  type FamilyConnector,
24
26
  } from "./store";
27
+ export {
28
+ lightDriver,
29
+ type LightDriverOptions,
30
+ type LightWallet,
31
+ type LightWalletAdapter,
32
+ } from "./lightDriver";
25
33
  export {
26
34
  ConnectionProvider,
27
35
  useConnection,
28
36
  useConnectionStore,
37
+ useOptionalConnectionStore,
29
38
  type ConnectionProviderProps,
30
39
  } from "./react";
40
+ export {
41
+ SignInProvider,
42
+ signInWithConnection,
43
+ useOptionalSignIn,
44
+ useSignIn,
45
+ type SignIn,
46
+ type SignInConfig,
47
+ type SignInCredential,
48
+ type SignInMessageArgs,
49
+ type SignInProviderProps,
50
+ type SignInStatus,
51
+ } from "./signIn";
31
52
  export type {
53
+ ConnectOptions,
32
54
  ConnectionDriver,
33
55
  ConnectionState,
34
56
  ConnectionStatus,
@@ -40,6 +62,7 @@ export type {
40
62
  WalletConnector,
41
63
  } from "./types";
42
64
  export {
65
+ ReadOnlyClientError,
43
66
  UnsupportedClientMethodError,
44
67
  type ChainClient,
45
68
  type ClientCapability,