@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
@@ -0,0 +1,288 @@
1
+ // @vitest-environment happy-dom
2
+ import { act, cleanup, render } from "@testing-library/react";
3
+ import type { ReactNode } from "react";
4
+ import { forwardRef, useEffect, useImperativeHandle } from "react";
5
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
6
+ import { NativeBridgeErrorCode } from "../bridge/nativeHost";
7
+ import type { WalletBridgeContextValue } from "./walletBridge";
8
+
9
+ // react-native and react-native-webview stand-ins: the sheet is a div that
10
+ // reports whether it takes touches, and the WebView records its props so the
11
+ // spec can play the page's side.
12
+ const rn = vi.hoisted(() => ({
13
+ appState: new Set<(state: string) => void>(),
14
+ webview: {
15
+ props: null as null | Record<string, (event: unknown) => void>,
16
+ mounts: 0,
17
+ mounted: false,
18
+ injected: [] as string[],
19
+ reloads: 0,
20
+ },
21
+ }));
22
+
23
+ vi.mock("react-native", () => ({
24
+ AppState: {
25
+ addEventListener(_type: string, listener: (state: string) => void) {
26
+ rn.appState.add(listener);
27
+ return { remove: () => rn.appState.delete(listener) };
28
+ },
29
+ },
30
+ Linking: {
31
+ openURL: async () => undefined,
32
+ addEventListener: () => ({ remove: () => undefined }),
33
+ getInitialURL: async () => null,
34
+ },
35
+ StyleSheet: { create: <T,>(styles: T) => styles, absoluteFillObject: {} },
36
+ View: ({ children, pointerEvents }: { children?: ReactNode; pointerEvents?: string }) => (
37
+ <div data-testid="sheet" data-pointer-events={pointerEvents}>
38
+ {children}
39
+ </div>
40
+ ),
41
+ }));
42
+
43
+ vi.mock("react-native-webview", () => ({
44
+ WebView: forwardRef(function WebView(props: Record<string, (event: unknown) => void>, ref) {
45
+ rn.webview.props = props;
46
+ useImperativeHandle(ref, () => ({
47
+ injectJavaScript: (script: string) => rn.webview.injected.push(script),
48
+ reload: () => {
49
+ rn.webview.reloads += 1;
50
+ },
51
+ }));
52
+ useEffect(() => {
53
+ rn.webview.mounts += 1;
54
+ rn.webview.mounted = true;
55
+ return () => {
56
+ rn.webview.mounted = false;
57
+ };
58
+ }, []);
59
+ return null;
60
+ }),
61
+ }));
62
+
63
+ const { WalletProvider, Web3Provider, useWalletBridge } = await import("./WalletProvider.native");
64
+ const { useConnection, useConnectionStore } = await import("../core/react");
65
+ const { eth, gpg } = await import("../families");
66
+ const { useOptionalSignIn } = await import("../core/signIn");
67
+
68
+ const pageUrl = "https://wallet.example.com/webview.html";
69
+ const foreign = "https://evil.example/";
70
+
71
+ function setup() {
72
+ let bridge: WalletBridgeContextValue | null = null;
73
+ function Probe() {
74
+ bridge = useWalletBridge();
75
+ return <div>app</div>;
76
+ }
77
+ const view = render(
78
+ <WalletProvider config={{ appName: "spec", webViewUrl: pageUrl }}>
79
+ <Probe />
80
+ </WalletProvider>,
81
+ );
82
+ const webview = () => {
83
+ if (!rn.webview.props) throw new Error("no WebView mounted");
84
+ return rn.webview.props;
85
+ };
86
+ const post = (method: string, params?: unknown, from = pageUrl) =>
87
+ act(() =>
88
+ webview().onMessage({
89
+ nativeEvent: {
90
+ data: JSON.stringify({ ns: "sys", kind: "event", method, params }),
91
+ url: from,
92
+ },
93
+ }),
94
+ );
95
+ return {
96
+ client: () => bridge!.client,
97
+ sheet: () => view.getByTestId("sheet").getAttribute("data-pointer-events"),
98
+ ready: () => post("ready", { protocol: 1, namespaces: ["sys", "evm"] }),
99
+ modalOpen: () => post("modalOpen"),
100
+ loadStart: (url: string) => act(() => webview().onLoadStart({ nativeEvent: { url } })),
101
+ foreground: () => act(() => rn.appState.forEach((listener) => listener("active"))),
102
+ };
103
+ }
104
+
105
+ beforeEach(() => {
106
+ rn.appState.clear();
107
+ rn.webview = { props: null, mounts: 0, mounted: false, injected: [], reloads: 0 };
108
+ });
109
+ afterEach(cleanup);
110
+
111
+ describe("WalletProvider (native)", () => {
112
+ it("past the remount cap, releases the sheet and fails requests at once", async () => {
113
+ const page = setup();
114
+ page.ready();
115
+ page.modalOpen();
116
+ expect(page.sheet()).toBe("auto");
117
+ page.loadStart(foreign);
118
+ expect(page.sheet()).toBe("none");
119
+ expect(rn.webview.mounts).toBe(2);
120
+ page.loadStart(pageUrl);
121
+ page.loadStart(foreign);
122
+ expect(rn.webview.mounts).toBe(3);
123
+ page.loadStart(pageUrl);
124
+ // The page opens its sheet again, then a foreign document replaces it past the cap.
125
+ page.modalOpen();
126
+ expect(page.sheet()).toBe("auto");
127
+ page.loadStart(foreign);
128
+ expect(page.sheet()).toBe("none");
129
+ expect(rn.webview.mounts).toBe(3);
130
+ await expect(
131
+ page.client().request("evm", "eth_requestAccounts", undefined, { timeoutMs: 600_000 }),
132
+ ).rejects.toMatchObject({ code: NativeBridgeErrorCode.pageStranded });
133
+ });
134
+
135
+ it("an Android pushState on a foreign document before the remount lands remounts once", () => {
136
+ const page = setup();
137
+ page.ready();
138
+ page.loadStart(foreign);
139
+ page.loadStart(`${foreign}next`);
140
+ expect(rn.webview.mounts).toBe(2);
141
+ });
142
+
143
+ it("recovers a stranded page when the app returns to the foreground", async () => {
144
+ const page = setup();
145
+ page.ready();
146
+ for (const url of [foreign, pageUrl, foreign, pageUrl, foreign]) page.loadStart(url);
147
+ // The foreign document is not kept alive behind the app.
148
+ expect(rn.webview.mounted).toBe(false);
149
+ expect(rn.webview.mounts).toBe(3);
150
+ page.foreground();
151
+ expect(rn.webview.mounted).toBe(true);
152
+ expect(rn.webview.mounts).toBe(4);
153
+ const next = page.client().request("evm", "eth_chainId");
154
+ page.loadStart(pageUrl);
155
+ const before = rn.webview.injected.length;
156
+ page.ready();
157
+ expect(rn.webview.injected.length).toBe(before + 1);
158
+ expect(rn.webview.injected.at(-1)).toContain("eth_chainId");
159
+ page.client().rejectPending(new Error("done"));
160
+ await expect(next).rejects.toThrow("done");
161
+ });
162
+
163
+ it("releases the sheet when the WebView content process dies", () => {
164
+ const page = setup();
165
+ page.ready();
166
+ page.modalOpen();
167
+ expect(page.sheet()).toBe("auto");
168
+ act(() => rn.webview.props!.onContentProcessDidTerminate({ nativeEvent: {} }));
169
+ expect(page.sheet()).toBe("none");
170
+ expect(rn.webview.reloads).toBe(1);
171
+ });
172
+ });
173
+
174
+ describe("Web3Provider (native)", () => {
175
+ it("is WalletProvider, and puts the bridge's EVM wallet in the connection store", () => {
176
+ expect(WalletProvider).toBe(Web3Provider);
177
+ let seen: { status?: string; connectors?: string[]; families?: string[] } = {};
178
+ function Probe() {
179
+ const store = useConnectionStore();
180
+ seen = {
181
+ status: useConnection().status,
182
+ connectors: store.connectors().map((entry) => `${entry.family}:${entry.connector.id}`),
183
+ families: store.registry.families.map((family) => family.id),
184
+ };
185
+ return null;
186
+ }
187
+ render(
188
+ <Web3Provider config={{ appName: "native store", webViewUrl: pageUrl }}>
189
+ <Probe />
190
+ </Web3Provider>,
191
+ );
192
+ expect(seen).toEqual({
193
+ status: "disconnected",
194
+ connectors: ["eth:webViewBridge", "sol:webViewSolana", "sui:webViewSui"],
195
+ families: ["eth", "sol", "sui", "btc", "gpg"],
196
+ });
197
+ });
198
+
199
+ it("connects a Solana wallet across the bridge's solana namespace", async () => {
200
+ let store: ReturnType<typeof useConnectionStore> | undefined;
201
+ let state: ReturnType<typeof useConnection> | undefined;
202
+ function Probe() {
203
+ store = useConnectionStore();
204
+ state = useConnection();
205
+ return null;
206
+ }
207
+ render(
208
+ <Web3Provider config={{ appName: "native sol", webViewUrl: pageUrl }}>
209
+ <Probe />
210
+ </Web3Provider>,
211
+ );
212
+ const fromPage = (message: Record<string, unknown>) =>
213
+ act(() =>
214
+ rn.webview.props!.onMessage({
215
+ nativeEvent: { data: JSON.stringify(message), url: pageUrl },
216
+ }),
217
+ );
218
+ fromPage({
219
+ ns: "sys",
220
+ kind: "event",
221
+ method: "ready",
222
+ params: { protocol: 1, namespaces: ["sys", "evm", "solana"] },
223
+ });
224
+
225
+ let connecting!: Promise<unknown>;
226
+ act(() => {
227
+ connecting = store!.connect("sol", "webViewSolana");
228
+ });
229
+ await act(() => new Promise((resolve) => setTimeout(resolve, 0)));
230
+ const sent = rn.webview.injected
231
+ .map((script) => /__bridgeReceive\((".*")\);true;$/.exec(script)?.[1])
232
+ .filter((raw): raw is string => raw !== undefined)
233
+ .map((raw) => JSON.parse(JSON.parse(raw)) as { id: string; ns: string; method: string });
234
+ const request = sent.find((message) => message.ns === "solana" && message.method === "connect");
235
+ expect(request).toBeDefined();
236
+ const publicKey = "7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV";
237
+ fromPage({ id: request!.id, ns: "solana", kind: "res", result: { publicKey } });
238
+ await act(async () => {
239
+ await connecting;
240
+ });
241
+ expect(state).toMatchObject({
242
+ status: "connected",
243
+ family: "sol",
244
+ address: publicKey,
245
+ chainId: "solana:mainnet",
246
+ });
247
+
248
+ fromPage({
249
+ ns: "solana",
250
+ kind: "event",
251
+ method: "accountChanged",
252
+ params: { publicKey: null },
253
+ });
254
+ expect(state?.status).toBe("disconnected");
255
+ });
256
+
257
+ it("registers the families it is given", () => {
258
+ let families: string[] = [];
259
+ function Probe() {
260
+ families = useConnectionStore().registry.families.map((family) => family.id);
261
+ return null;
262
+ }
263
+ render(
264
+ <Web3Provider config={{ appName: "native families" }} families={[eth(), gpg()]}>
265
+ <Probe />
266
+ </Web3Provider>,
267
+ );
268
+ expect(families).toEqual(["eth", "gpg"]);
269
+ });
270
+
271
+ it("mounts a SignInProvider on its store when given signIn", () => {
272
+ const onSign = async () => true;
273
+ let seen: unknown = "unset";
274
+ function Probe() {
275
+ seen = useOptionalSignIn()?.onSign;
276
+ return null;
277
+ }
278
+ render(
279
+ <Web3Provider
280
+ config={{ appName: "native sign-in" }}
281
+ signIn={{ getNonce: async () => "n", onSign, domain: "wallet.example.com" }}
282
+ >
283
+ <Probe />
284
+ </Web3Provider>,
285
+ );
286
+ expect(seen).toBe(onSign);
287
+ });
288
+ });
@@ -3,7 +3,7 @@ import type { PropsWithChildren } from "react";
3
3
  import { createContext, useContext, useEffect, useMemo, useReducer, useRef, useState } from "react";
4
4
  import { AppState, Linking, StyleSheet, View } from "react-native";
5
5
  import { WebView, type WebViewMessageEvent, type WebViewProps } from "react-native-webview";
6
- import { http, WagmiProvider, createConfig } from "wagmi";
6
+ import { WagmiProvider, createConfig } from "wagmi";
7
7
  import { AuthBridge } from "../bridge/AuthBridge";
8
8
  import { BridgeClient } from "../bridge/BridgeClient";
9
9
  import { GpgBridge } from "../bridge/GpgBridge";
@@ -11,7 +11,7 @@ import { SolanaBridge } from "../bridge/SolanaBridge";
11
11
  import { SuiBridge } from "../bridge/SuiBridge";
12
12
  import { createBridgeConnector } from "../bridge/bridgeConnector";
13
13
  import { queryParams } from "../bridge/hosting";
14
- import { createNativeBridge } from "../bridge/nativeHost";
14
+ import { createNativeBridge, type NativeBridge } from "../bridge/nativeHost";
15
15
  import { createMemoryTransportPair } from "../bridge/transport";
16
16
  import {
17
17
  decideNavigation,
@@ -21,8 +21,13 @@ import {
21
21
  } from "./native/deepLink";
22
22
  import { buildConfigInjection } from "./native/inject";
23
23
  import { initialVisibility, nextVisibility } from "./native/visibility";
24
+ import { defineWalletFamily, type WalletFamily } from "../core/family";
25
+ import { SignInProvider, type SignInConfig } from "../core/signIn";
26
+ import { walletFamilies } from "../families";
27
+ import { WagmiConnectionHost } from "../wagmi/host";
28
+ import { familiesKey, withFamilyProviders } from "./families";
24
29
  import { WalletBridgeContext, type WalletBridgeContextValue } from "./walletBridge";
25
- import { type Web3Config, Web3ConfigContext, resolveChains } from "./walletConfig";
30
+ import { type Web3Config, Web3ConfigContext, chainTransports, resolveChains } from "./walletConfig";
26
31
 
27
32
  type WebViewSource = NonNullable<WebViewProps["source"]>;
28
33
 
@@ -30,13 +35,29 @@ type WebViewSource = NonNullable<WebViewProps["source"]>;
30
35
  // sign-in message's domain and the Keycloak nonce cookie belong to the page's
31
36
  // host, so a file:// or inline page can never sign in, and WKWebView will not
32
37
  // render the multi-MB bundle inline anyway.
33
- export interface WalletProviderProps extends PropsWithChildren {
38
+ export interface Web3ProviderProps extends PropsWithChildren {
34
39
  config: Web3Config;
40
+ /**
41
+ * The wallet families, as on web: `[eth(), sol(), gpg()]`. Defaults to
42
+ * every built-in family. Their wallets connect through the hosted page's
43
+ * bridge, each on the family's bridge namespace; `config.families` is web
44
+ * only and ignored here.
45
+ */
46
+ families?: readonly WalletFamily[];
35
47
  queryClient?: QueryClient;
48
+ /**
49
+ * Mounts a SignInProvider on the connection store, e.g.
50
+ * `kc.signInConfig(grant.onSign)` for `useDirectLogin`. Pass the hosted
51
+ * page's `domain` to `keycloakWallet`: a native app has no page host.
52
+ */
53
+ signIn?: SignInConfig;
36
54
  /** Override the WebView content (defaults to `config.webViewUrl`); must be a hosted `{ uri }`. */
37
55
  webViewSource?: WebViewSource;
38
56
  }
39
57
 
58
+ /** Web3Provider's props under the provider's first name. */
59
+ export type WalletProviderProps = Web3ProviderProps;
60
+
40
61
  /** Native Solana surface, mirroring the operations web's wallet-adapter exposes. */
41
62
  export interface SolanaWalletContextValue {
42
63
  bridge: SolanaBridge;
@@ -65,14 +86,33 @@ function pageUrlOf(config: Web3Config, source: WebViewSource | undefined): strin
65
86
  return uri;
66
87
  }
67
88
 
68
- export function WalletProvider({
89
+ /**
90
+ * The native wallet provider: the connection store over the hosted wallet
91
+ * page, whose WebView runs the wallets and signs across the bridge. Each
92
+ * family connects on its own bridge namespace: eth through the bridge's
93
+ * wagmi connector, sol and sui through their bridge drivers, so
94
+ * `useConnection()` reports whichever the store connected. sol and sui connect
95
+ * only where the page has that wallet, the mock wallet page today. Bitcoin
96
+ * has no bridge namespace and lists no wallet here. A wallet connected straight
97
+ * through `useSolanaWallet()` or `useWalletBridge()` stays outside the store.
98
+ */
99
+ export function Web3Provider({
69
100
  children,
70
101
  config: web3Config,
102
+ families,
71
103
  queryClient = defaultQueryClient,
104
+ signIn,
72
105
  webViewSource,
73
- }: WalletProviderProps) {
106
+ }: Web3ProviderProps) {
107
+ const listedKey = families ? familiesKey(families) : "";
108
+ const listed = useMemo(
109
+ () => families ?? walletFamilies(),
110
+ // eslint-disable-next-line react-hooks/exhaustive-deps
111
+ [listedKey],
112
+ );
74
113
  const webRef = useRef<WebView>(null);
75
114
  const [pageLoad, setPageLoad] = useState(0);
115
+ const [strandedHost, setStrandedHost] = useState<NativeBridge | null>(null);
76
116
  const [visibility, dispatchVisibility] = useReducer(nextVisibility, initialVisibility);
77
117
  const [publicKey, setPublicKey] = useState<string | null>(null);
78
118
 
@@ -90,10 +130,14 @@ export function WalletProvider({
90
130
  pageUrl,
91
131
  allowDevHosts: typeof __DEV__ !== "undefined" && __DEV__,
92
132
  inject: (script) => webRef.current?.injectJavaScript(script),
133
+ // The page that comes back starts with its sheet closed; one left
134
+ // open would cover the app with a page that never closes it.
135
+ onPageLost: () => dispatchVisibility("modalClose"),
93
136
  })
94
137
  : null,
95
138
  [pageUrl],
96
139
  );
140
+ const stranded = host !== null && strandedHost === host;
97
141
 
98
142
  const authDefaults = JSON.stringify(web3Config.auth ?? null);
99
143
  const bridge = useMemo<WalletBridgeContextValue>(() => {
@@ -124,12 +168,14 @@ export function WalletProvider({
124
168
  }, [client]);
125
169
 
126
170
  // On app foreground (e.g. return from a wallet deep link) ask the WebView to
127
- // re-report account/chain state.
171
+ // re-report account/chain state, or load a stranded page back.
128
172
  useEffect(() => {
129
173
  const sub = AppState.addEventListener("change", (state) => {
130
- if (state === "active" && host?.peer) {
131
- void client.request("sys", "resync").catch(() => undefined);
132
- }
174
+ if (state !== "active" || !host) return;
175
+ if (host.recover()) {
176
+ setStrandedHost(null);
177
+ setPageLoad((n) => n + 1);
178
+ } else if (host.peer) void client.request("sys", "resync").catch(() => undefined);
133
179
  });
134
180
  return () => sub.remove();
135
181
  }, [client, host]);
@@ -163,7 +209,7 @@ export function WalletProvider({
163
209
  // chain) -- on native, pass localnetRpcUrl with the host address the
164
210
  // device/emulator can reach (e.g. http://10.0.2.2:8545 on Android).
165
211
  const chains = resolveChains(web3Config);
166
- const transports = Object.fromEntries(chains.map((chain) => [chain.id, http()]));
212
+ const transports = chainTransports(chains);
167
213
  return createConfig({
168
214
  chains,
169
215
  transports,
@@ -179,6 +225,17 @@ export function WalletProvider({
179
225
  web3Config.localnetRpcUrl,
180
226
  ]);
181
227
 
228
+ // The families as the store drives them here: one with a bridge driver
229
+ // connects across its bridge namespace, the rest as they are.
230
+ const storeFamilies = useMemo(
231
+ () =>
232
+ listed.map((family) => {
233
+ const driver = family.bridge?.driver;
234
+ return driver ? defineWalletFamily({ ...family, driver: () => driver(client) }) : family;
235
+ }),
236
+ [listed, client],
237
+ );
238
+
182
239
  const solanaValue = useMemo<SolanaWalletContextValue>(
183
240
  () => ({ bridge: bridge.solana, publicKey, connected: publicKey !== null }),
184
241
  [bridge.solana, publicKey],
@@ -193,59 +250,75 @@ export function WalletProvider({
193
250
  <Web3ConfigContext.Provider value={web3Config}>
194
251
  <WagmiProvider config={wagmiConfig}>
195
252
  <QueryClientProvider client={queryClient}>
196
- <WalletBridgeContext.Provider value={bridge}>
197
- <SolanaWalletContext.Provider value={solanaValue}>
198
- {children}
199
- {host && pageUrl && (
200
- <View
201
- style={visibility.sheetOpen ? styles.visible : styles.hidden}
202
- pointerEvents={visibility.sheetOpen ? "auto" : "none"}
203
- >
204
- <WebView
205
- key={pageLoad}
206
- ref={webRef}
207
- source={webViewSource ?? { uri: pageUrl }}
208
- originWhitelist={["*"]}
209
- javaScriptEnabled
210
- domStorageEnabled
211
- javaScriptCanOpenWindowsAutomatically
212
- onMessage={onMessage}
213
- onLoadStart={(event) => {
214
- if (host.navigated(event.nativeEvent.url)) setPageLoad((n) => n + 1);
215
- }}
216
- onShouldStartLoadWithRequest={(req) => {
217
- const decision = decideNavigation(req.url, host.pageOrigin, req.isTopFrame);
218
- if (decision === "external") openExternally(req.url);
219
- return decision === "load";
220
- }}
221
- onOpenWindow={(event) => {
222
- const url = event.nativeEvent.targetUrl;
223
- if (decideNewWindow(url) === "external") openExternally(url);
224
- }}
225
- onContentProcessDidTerminate={() => {
226
- host.pageGone();
227
- webRef.current?.reload();
228
- }}
229
- onRenderProcessGone={() => {
230
- host.pageGone();
231
- webRef.current?.reload();
232
- }}
233
- injectedJavaScriptBeforeContentLoaded={buildConfigInjection({
234
- ...web3Config,
235
- appUrl: web3Config.appUrl ?? "",
236
- })}
237
- style={styles.webview}
238
- />
239
- </View>
240
- )}
241
- </SolanaWalletContext.Provider>
242
- </WalletBridgeContext.Provider>
253
+ <WagmiConnectionHost families={storeFamilies}>
254
+ <WalletBridgeContext.Provider value={bridge}>
255
+ <SolanaWalletContext.Provider value={solanaValue}>
256
+ {withFamilyProviders(
257
+ listed,
258
+ signIn ? <SignInProvider {...signIn}>{children}</SignInProvider> : children,
259
+ )}
260
+ {host && pageUrl && (
261
+ <View
262
+ style={visibility.sheetOpen ? styles.visible : styles.hidden}
263
+ pointerEvents={visibility.sheetOpen ? "auto" : "none"}
264
+ >
265
+ {/* A stranded page's foreign document is dropped, not kept running behind the app. */}
266
+ {!stranded && (
267
+ <WebView
268
+ key={pageLoad}
269
+ ref={webRef}
270
+ source={webViewSource ?? { uri: pageUrl }}
271
+ originWhitelist={["*"]}
272
+ javaScriptEnabled
273
+ domStorageEnabled
274
+ javaScriptCanOpenWindowsAutomatically
275
+ onMessage={onMessage}
276
+ onLoadStart={(event) => {
277
+ if (host.navigated(event.nativeEvent.url)) setPageLoad((n) => n + 1);
278
+ else if (host.stranded) setStrandedHost(host);
279
+ }}
280
+ onShouldStartLoadWithRequest={(req) => {
281
+ const decision = decideNavigation(
282
+ req.url,
283
+ host.pageOrigin,
284
+ req.isTopFrame,
285
+ );
286
+ if (decision === "external") openExternally(req.url);
287
+ return decision === "load";
288
+ }}
289
+ onOpenWindow={(event) => {
290
+ const url = event.nativeEvent.targetUrl;
291
+ if (decideNewWindow(url) === "external") openExternally(url);
292
+ }}
293
+ onContentProcessDidTerminate={() => {
294
+ host.pageGone();
295
+ webRef.current?.reload();
296
+ }}
297
+ onRenderProcessGone={() => {
298
+ host.pageGone();
299
+ webRef.current?.reload();
300
+ }}
301
+ injectedJavaScriptBeforeContentLoaded={buildConfigInjection({
302
+ ...web3Config,
303
+ appUrl: web3Config.appUrl ?? "",
304
+ })}
305
+ style={styles.webview}
306
+ />
307
+ )}
308
+ </View>
309
+ )}
310
+ </SolanaWalletContext.Provider>
311
+ </WalletBridgeContext.Provider>
312
+ </WagmiConnectionHost>
243
313
  </QueryClientProvider>
244
314
  </WagmiProvider>
245
315
  </Web3ConfigContext.Provider>
246
316
  );
247
317
  }
248
318
 
319
+ /** Web3Provider under its first name. */
320
+ export const WalletProvider = Web3Provider;
321
+
249
322
  const styles = StyleSheet.create({
250
323
  // Kept mounted but offscreen so the bridge/ConnectKit/wagmi state persists.
251
324
  hidden: { position: "absolute", width: 1, height: 1, top: -1000, left: -1000, opacity: 0 },
@@ -256,4 +329,4 @@ const styles = StyleSheet.create({
256
329
 
257
330
  export { useWalletBridge, type WalletBridgeContextValue } from "./walletBridge";
258
331
  export { defaultChains } from "./walletConfig";
259
- export { useWeb3Config, type Web3Config } from "./walletConfig";
332
+ export { useWeb3Config, type ConnectorFamily, type Web3Config } from "./walletConfig";