@web3auth/no-modal 9.7.0 → 10.0.0-alpha.1

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 (307) hide show
  1. package/dist/lib.cjs/base/chain/IChainInterface.js +22 -0
  2. package/dist/lib.cjs/base/chain/config.js +322 -0
  3. package/dist/lib.cjs/base/composables/index.js +5 -0
  4. package/dist/lib.cjs/base/connector/baseConnector.js +67 -0
  5. package/dist/lib.cjs/base/connector/constants.js +26 -0
  6. package/dist/lib.cjs/base/connector/utils.js +66 -0
  7. package/dist/lib.cjs/base/errors/index.js +244 -0
  8. package/dist/lib.cjs/base/loglevel.js +7 -0
  9. package/dist/lib.cjs/base/plugin/IPlugin.js +31 -0
  10. package/dist/lib.cjs/base/plugin/errors.js +107 -0
  11. package/dist/lib.cjs/base/provider/IProvider.js +8 -0
  12. package/dist/lib.cjs/base/utils.js +56 -0
  13. package/dist/lib.cjs/base/wallet/index.js +26 -0
  14. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +392 -0
  15. package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +75 -0
  16. package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +77 -0
  17. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +151 -0
  18. package/dist/lib.cjs/connectors/injected-evm-connector/index.js +12 -0
  19. package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +176 -0
  20. package/dist/lib.cjs/connectors/injected-solana-connector/index.js +25 -0
  21. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +147 -0
  22. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +228 -0
  23. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +180 -0
  24. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +20 -0
  25. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +417 -0
  26. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +152 -0
  27. package/dist/lib.cjs/index.js +218 -0
  28. package/dist/lib.cjs/noModal.js +307 -247
  29. package/dist/lib.cjs/plugins/nft-checkout-plugin/embed.js +134 -0
  30. package/dist/lib.cjs/plugins/nft-checkout-plugin/enums.js +24 -0
  31. package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +76 -0
  32. package/dist/lib.cjs/plugins/nft-checkout-plugin/utils.js +18 -0
  33. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +129 -0
  34. package/dist/lib.cjs/providers/account-abstraction-provider/index.js +32 -0
  35. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +232 -0
  36. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +134 -0
  37. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +174 -0
  38. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +74 -0
  39. package/dist/lib.cjs/providers/base-provider/baseProvider.js +132 -0
  40. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +78 -0
  41. package/dist/lib.cjs/providers/base-provider/index.js +18 -0
  42. package/dist/lib.cjs/providers/base-provider/jrpcClient.js +41 -0
  43. package/dist/lib.cjs/providers/base-provider/utils.js +12 -0
  44. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +176 -0
  45. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +165 -0
  46. package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +22 -0
  47. package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +89 -0
  48. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +27 -0
  49. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +380 -0
  50. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +10 -0
  51. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +94 -0
  52. package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +29 -0
  53. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +46 -0
  54. package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +41 -0
  55. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +179 -0
  56. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +49 -0
  57. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +45 -0
  58. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/utils.js +16 -0
  59. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +93 -0
  60. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +150 -0
  61. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +94 -0
  62. package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +47 -0
  63. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +97 -0
  64. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +88 -0
  65. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +123 -0
  66. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +89 -0
  67. package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +48 -0
  68. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +71 -0
  69. package/dist/lib.cjs/react/index.js +16 -0
  70. package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +192 -0
  71. package/dist/lib.cjs/react/no-modal/Web3AuthProvider.js +15 -0
  72. package/dist/lib.cjs/react/no-modal/hooks/useWeb3Auth.js +15 -0
  73. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +89 -0
  74. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesProvider.js +16 -0
  75. package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +15 -0
  76. package/dist/lib.cjs/vue/index.js +15 -0
  77. package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +196 -0
  78. package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +13 -0
  79. package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +90 -0
  80. package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +13 -0
  81. package/dist/lib.cjs/vue/wallet-services-plugin/context.js +5 -0
  82. package/dist/lib.esm/base/chain/IChainInterface.js +19 -0
  83. package/dist/lib.esm/base/chain/config.js +317 -0
  84. package/dist/lib.esm/base/composables/index.js +3 -0
  85. package/dist/lib.esm/base/connector/baseConnector.js +65 -0
  86. package/dist/lib.esm/base/connector/constants.js +22 -0
  87. package/dist/lib.esm/base/connector/utils.js +60 -0
  88. package/dist/lib.esm/base/errors/index.js +237 -0
  89. package/dist/lib.esm/base/loglevel.js +5 -0
  90. package/dist/lib.esm/base/plugin/IPlugin.js +24 -0
  91. package/dist/lib.esm/base/plugin/errors.js +104 -0
  92. package/dist/lib.esm/base/provider/IProvider.js +6 -0
  93. package/dist/lib.esm/base/utils.js +46 -0
  94. package/dist/lib.esm/base/wallet/index.js +20 -0
  95. package/dist/lib.esm/connectors/auth-connector/authConnector.js +390 -0
  96. package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +73 -0
  97. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +75 -0
  98. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +149 -0
  99. package/dist/lib.esm/connectors/injected-evm-connector/index.js +2 -0
  100. package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +173 -0
  101. package/dist/lib.esm/connectors/injected-solana-connector/index.js +18 -0
  102. package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +144 -0
  103. package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +226 -0
  104. package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +169 -0
  105. package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +3 -0
  106. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +415 -0
  107. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +146 -0
  108. package/dist/lib.esm/index.js +53 -0
  109. package/dist/lib.esm/noModal.js +294 -234
  110. package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +132 -0
  111. package/dist/lib.esm/plugins/nft-checkout-plugin/enums.js +20 -0
  112. package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +74 -0
  113. package/dist/lib.esm/plugins/nft-checkout-plugin/utils.js +15 -0
  114. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +119 -0
  115. package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -0
  116. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +227 -0
  117. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +132 -0
  118. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +171 -0
  119. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +72 -0
  120. package/dist/lib.esm/providers/base-provider/baseProvider.js +130 -0
  121. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +76 -0
  122. package/dist/lib.esm/providers/base-provider/index.js +5 -0
  123. package/dist/lib.esm/providers/base-provider/jrpcClient.js +37 -0
  124. package/dist/lib.esm/providers/base-provider/utils.js +6 -0
  125. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +174 -0
  126. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +163 -0
  127. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +20 -0
  128. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +85 -0
  129. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +21 -0
  130. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +378 -0
  131. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +8 -0
  132. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +88 -0
  133. package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +24 -0
  134. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +43 -0
  135. package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +37 -0
  136. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +177 -0
  137. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +47 -0
  138. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +43 -0
  139. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/utils.js +14 -0
  140. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +91 -0
  141. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +148 -0
  142. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +92 -0
  143. package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +42 -0
  144. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +89 -0
  145. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +86 -0
  146. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +121 -0
  147. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +87 -0
  148. package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +43 -0
  149. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +65 -0
  150. package/dist/lib.esm/react/index.js +5 -0
  151. package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +189 -0
  152. package/dist/lib.esm/react/no-modal/Web3AuthProvider.js +13 -0
  153. package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +13 -0
  154. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +86 -0
  155. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesProvider.js +14 -0
  156. package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +13 -0
  157. package/dist/lib.esm/vue/index.js +5 -0
  158. package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +194 -0
  159. package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +11 -0
  160. package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +88 -0
  161. package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +11 -0
  162. package/dist/lib.esm/vue/wallet-services-plugin/context.js +3 -0
  163. package/dist/noModal.cjs.js +14559 -321
  164. package/dist/noModal.umd.min.js +1 -1
  165. package/dist/noModal.umd.min.js.LICENSE.txt +45 -0
  166. package/dist/types/base/chain/IChainInterface.d.ts +59 -0
  167. package/dist/types/base/chain/config.d.ts +5 -0
  168. package/dist/types/base/composables/index.d.ts +1 -0
  169. package/dist/types/base/connector/baseConnector.d.ts +37 -0
  170. package/dist/types/base/connector/constants.d.ts +25 -0
  171. package/dist/types/base/connector/index.d.ts +4 -0
  172. package/dist/types/base/connector/interfaces.d.ts +145 -0
  173. package/dist/types/base/connector/utils.d.ts +5 -0
  174. package/dist/types/base/core/IWeb3Auth.d.ts +142 -0
  175. package/dist/types/base/errors/index.d.ts +69 -0
  176. package/dist/types/base/hooks/index.d.ts +33 -0
  177. package/dist/types/base/index.d.ts +13 -0
  178. package/dist/types/base/interfaces.d.ts +44 -0
  179. package/dist/types/base/loglevel.d.ts +2 -0
  180. package/dist/types/base/plugin/IPlugin.d.ts +50 -0
  181. package/dist/types/base/plugin/errors.d.ts +28 -0
  182. package/dist/types/base/plugin/index.d.ts +2 -0
  183. package/dist/types/base/provider/IProvider.d.ts +16 -0
  184. package/dist/types/base/utils.d.ts +9 -0
  185. package/dist/types/base/wallet/index.d.ts +29 -0
  186. package/dist/types/connectors/auth-connector/authConnector.d.ts +45 -0
  187. package/dist/types/connectors/auth-connector/index.d.ts +2 -0
  188. package/dist/types/connectors/auth-connector/interface.d.ts +14 -0
  189. package/dist/types/connectors/base-evm-connector/baseEvmConnector.d.ts +7 -0
  190. package/dist/types/connectors/base-evm-connector/index.d.ts +1 -0
  191. package/dist/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +7 -0
  192. package/dist/types/connectors/base-solana-connector/index.d.ts +1 -0
  193. package/dist/types/connectors/coinbase-connector/coinbaseConnector.d.ts +7 -0
  194. package/dist/types/connectors/coinbase-connector/index.d.ts +1 -0
  195. package/dist/types/connectors/index.d.ts +7 -0
  196. package/dist/types/connectors/injected-evm-connector/index.d.ts +2 -0
  197. package/dist/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +34 -0
  198. package/dist/types/connectors/injected-solana-connector/index.d.ts +5 -0
  199. package/dist/types/connectors/injected-solana-connector/utils.d.ts +3 -0
  200. package/dist/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +33 -0
  201. package/dist/types/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +35 -0
  202. package/dist/types/connectors/wallet-connect-v2-connector/config.d.ts +35 -0
  203. package/dist/types/connectors/wallet-connect-v2-connector/index.d.ts +4 -0
  204. package/dist/types/connectors/wallet-connect-v2-connector/interface.d.ts +18 -0
  205. package/dist/types/connectors/wallet-connect-v2-connector/utils.d.ts +3 -0
  206. package/dist/types/connectors/wallet-connect-v2-connector/walletConnectV2Connector.d.ts +3 -0
  207. package/dist/types/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +18 -0
  208. package/dist/types/index.d.ts +4 -0
  209. package/dist/types/noModal.d.ts +29 -14
  210. package/dist/types/plugins/index.d.ts +2 -0
  211. package/dist/types/plugins/nft-checkout-plugin/embed.d.ts +24 -0
  212. package/dist/types/plugins/nft-checkout-plugin/enums.d.ts +14 -0
  213. package/dist/types/plugins/nft-checkout-plugin/index.d.ts +2 -0
  214. package/dist/types/plugins/nft-checkout-plugin/plugin.d.ts +27 -0
  215. package/dist/types/plugins/nft-checkout-plugin/utils.d.ts +3 -0
  216. package/dist/types/plugins/wallet-services-plugin/index.d.ts +1 -0
  217. package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +27 -0
  218. package/dist/types/providers/account-abstraction-provider/index.d.ts +1 -0
  219. package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +48 -0
  220. package/dist/types/providers/account-abstraction-provider/providers/index.d.ts +2 -0
  221. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -0
  222. package/dist/types/providers/account-abstraction-provider/providers/utils.d.ts +10 -0
  223. package/dist/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +8 -0
  224. package/dist/types/providers/account-abstraction-provider/rpc/index.d.ts +1 -0
  225. package/dist/types/providers/base-provider/CommonJRPCProvider.d.ts +20 -0
  226. package/dist/types/providers/base-provider/baseProvider.d.ts +42 -0
  227. package/dist/types/providers/base-provider/commonPrivateKeyProvider.d.ts +29 -0
  228. package/dist/types/providers/base-provider/index.d.ts +5 -0
  229. package/dist/types/providers/base-provider/interfaces.d.ts +3 -0
  230. package/dist/types/providers/base-provider/jrpcClient.d.ts +8 -0
  231. package/dist/types/providers/base-provider/utils.d.ts +2 -0
  232. package/dist/types/providers/ethereum-mpc-provider/index.d.ts +1 -0
  233. package/dist/types/providers/ethereum-mpc-provider/providers/index.d.ts +1 -0
  234. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +74 -0
  235. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +1 -0
  236. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +12 -0
  237. package/dist/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +3 -0
  238. package/dist/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +15 -0
  239. package/dist/types/providers/ethereum-provider/index.d.ts +2 -0
  240. package/dist/types/providers/ethereum-provider/providers/converter.d.ts +15 -0
  241. package/dist/types/providers/ethereum-provider/providers/index.d.ts +1 -0
  242. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +16 -0
  243. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +28 -0
  244. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +4 -0
  245. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +46 -0
  246. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +12 -0
  247. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +1 -0
  248. package/dist/types/providers/ethereum-provider/providers/utils.d.ts +5 -0
  249. package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -0
  250. package/dist/types/providers/ethereum-provider/rpc/index.d.ts +4 -0
  251. package/dist/types/providers/ethereum-provider/rpc/interfaces.d.ts +52 -0
  252. package/dist/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +8 -0
  253. package/dist/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +3 -0
  254. package/dist/types/providers/index.d.ts +6 -0
  255. package/dist/types/providers/solana-provider/index.d.ts +4 -0
  256. package/dist/types/providers/solana-provider/interface.d.ts +22 -0
  257. package/dist/types/providers/solana-provider/providers/index.d.ts +2 -0
  258. package/dist/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +16 -0
  259. package/dist/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +3 -0
  260. package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +2 -0
  261. package/dist/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +3 -0
  262. package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +9 -0
  263. package/dist/types/providers/solana-provider/providers/privateKeyProvider/index.d.ts +1 -0
  264. package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +31 -0
  265. package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +7 -0
  266. package/dist/types/providers/solana-provider/rpc/JrpcClient.d.ts +9 -0
  267. package/dist/types/providers/solana-provider/rpc/index.d.ts +3 -0
  268. package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +27 -0
  269. package/dist/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +20 -0
  270. package/dist/types/providers/solana-provider/solanaWallet.d.ts +28 -0
  271. package/dist/types/providers/xrpl-provider/index.d.ts +1 -0
  272. package/dist/types/providers/xrpl-provider/providers/index.d.ts +1 -0
  273. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/constants.d.ts +5 -0
  274. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/index.d.ts +3 -0
  275. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/interface.d.ts +2 -0
  276. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +26 -0
  277. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.d.ts +7 -0
  278. package/dist/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +9 -0
  279. package/dist/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +49 -0
  280. package/dist/types/react/index.d.ts +2 -0
  281. package/dist/types/react/no-modal/Web3AuthInnerContext.d.ts +4 -0
  282. package/dist/types/react/no-modal/Web3AuthProvider.d.ts +3 -0
  283. package/dist/types/react/no-modal/hooks/index.d.ts +1 -0
  284. package/dist/types/react/no-modal/hooks/useWeb3Auth.d.ts +2 -0
  285. package/dist/types/react/no-modal/index.d.ts +3 -0
  286. package/dist/types/react/no-modal/interfaces.d.ts +15 -0
  287. package/dist/types/react/wallet-services-plugin/WalletServicesContext.d.ts +7 -0
  288. package/dist/types/react/wallet-services-plugin/WalletServicesProvider.d.ts +7 -0
  289. package/dist/types/react/wallet-services-plugin/hooks/index.d.ts +1 -0
  290. package/dist/types/react/wallet-services-plugin/hooks/useWalletServicesPlugin.d.ts +2 -0
  291. package/dist/types/react/wallet-services-plugin/index.d.ts +4 -0
  292. package/dist/types/react/wallet-services-plugin/interfaces.d.ts +5 -0
  293. package/dist/types/vue/index.d.ts +2 -0
  294. package/dist/types/vue/no-modal/Web3AuthProvider.d.ts +13 -0
  295. package/dist/types/vue/no-modal/composables/index.d.ts +1 -0
  296. package/dist/types/vue/no-modal/composables/useWeb3Auth.d.ts +2 -0
  297. package/dist/types/vue/no-modal/index.d.ts +3 -0
  298. package/dist/types/vue/no-modal/interfaces.d.ts +39 -0
  299. package/dist/types/vue/wallet-services-plugin/WalletServicesProvider.d.ts +1 -0
  300. package/dist/types/vue/wallet-services-plugin/composables/index.d.ts +1 -0
  301. package/dist/types/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +2 -0
  302. package/dist/types/vue/wallet-services-plugin/context.d.ts +3 -0
  303. package/dist/types/vue/wallet-services-plugin/index.d.ts +4 -0
  304. package/dist/types/vue/wallet-services-plugin/interfaces.d.ts +13 -0
  305. package/package.json +77 -15
  306. package/README.md +0 -82
  307. package/dist/noModal.esm.js +0 -359
@@ -3,356 +3,416 @@
3
3
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
4
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
5
  var auth = require('@web3auth/auth');
6
- var authAdapter = require('@web3auth/auth-adapter');
7
- var base = require('@web3auth/base');
8
- var baseProvider = require('@web3auth/base-provider');
9
- var deepmerge = require('deepmerge');
6
+ var authConnector = require('./connectors/auth-connector/authConnector.js');
7
+ var config = require('./base/chain/config.js');
8
+ var IChainInterface = require('./base/chain/IChainInterface.js');
9
+ var index = require('./base/errors/index.js');
10
+ var loglevel = require('./base/loglevel.js');
11
+ var utils = require('./base/utils.js');
12
+ var index$1 = require('./base/wallet/index.js');
13
+ var CommonJRPCProvider = require('./providers/base-provider/CommonJRPCProvider.js');
14
+ var utils$1 = require('./base/connector/utils.js');
15
+ var IPlugin = require('./base/plugin/IPlugin.js');
16
+ var constants = require('./base/connector/constants.js');
10
17
 
11
- const ADAPTER_CACHE_KEY = "Web3Auth-cachedAdapter";
18
+ const CONNECTOR_CACHE_KEY = "Web3Auth-cachedConnector";
19
+ const CURRENT_CHAIN_CACHE_KEY = "Web3Auth-currentChain";
12
20
  class Web3AuthNoModal extends auth.SafeEventEmitter {
13
21
  constructor(options) {
14
- var _options$chainConfig, _options$chainConfig2, _options$chainConfig3, _options$chainConfig4;
15
22
  super();
16
23
  _defineProperty(this, "coreOptions", void 0);
17
- _defineProperty(this, "connectedAdapterName", null);
18
- _defineProperty(this, "status", base.ADAPTER_STATUS.NOT_READY);
19
- _defineProperty(this, "cachedAdapter", null);
20
- _defineProperty(this, "walletAdapters", {});
24
+ _defineProperty(this, "connectedConnectorName", null);
25
+ _defineProperty(this, "status", constants.CONNECTOR_STATUS.NOT_READY);
26
+ _defineProperty(this, "cachedConnector", null);
27
+ _defineProperty(this, "currentChainId", void 0);
28
+ _defineProperty(this, "connectors", []);
21
29
  _defineProperty(this, "commonJRPCProvider", null);
22
30
  _defineProperty(this, "plugins", {});
23
31
  _defineProperty(this, "storage", "localStorage");
24
- if (!options.clientId) throw base.WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
25
- if (options.enableLogging) base.log.enableAll();else base.log.setLevel("error");
26
- if (!options.privateKeyProvider && !options.chainConfig) {
27
- throw base.WalletInitializationError.invalidParams("Please provide chainConfig or privateKeyProvider");
32
+ if (!options.clientId) throw index.WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
33
+ if (options.enableLogging) loglevel.log.enableAll();else loglevel.log.setLevel("error");
34
+ // TODO: This is fine. we get chains from project config. we can throw in init instead
35
+ if (!options.chains || options.chains.length === 0) {
36
+ throw index.WalletInitializationError.invalidParams("Please provide chains");
28
37
  }
29
- options.chainConfig = options.chainConfig || options.privateKeyProvider.currentChainConfig;
30
- if (!((_options$chainConfig = options.chainConfig) !== null && _options$chainConfig !== void 0 && _options$chainConfig.chainNamespace) || !Object.values(base.CHAIN_NAMESPACES).includes((_options$chainConfig2 = options.chainConfig) === null || _options$chainConfig2 === void 0 ? void 0 : _options$chainConfig2.chainNamespace)) throw base.WalletInitializationError.invalidParams("Please provide a valid chainNamespace in chainConfig");
31
- if (options.storageKey === "session") this.storage = "sessionStorage";
32
- this.cachedAdapter = base.storageAvailable(this.storage) ? window[this.storage].getItem(ADAPTER_CACHE_KEY) : null;
38
+ const {
39
+ chains
40
+ } = options;
41
+ // validate chain namespace of each chain config
42
+ for (const chain of chains) {
43
+ if (!chain.chainNamespace || !Object.values(IChainInterface.CHAIN_NAMESPACES).includes(chain.chainNamespace)) throw index.WalletInitializationError.invalidParams("Please provide a valid chainNamespace in chains");
44
+ }
45
+ if (options.storageType === "session") this.storage = "sessionStorage";
33
46
  this.coreOptions = _objectSpread(_objectSpread({}, options), {}, {
34
- chainConfig: _objectSpread(_objectSpread({}, base.getChainConfig((_options$chainConfig3 = options.chainConfig) === null || _options$chainConfig3 === void 0 ? void 0 : _options$chainConfig3.chainNamespace, (_options$chainConfig4 = options.chainConfig) === null || _options$chainConfig4 === void 0 ? void 0 : _options$chainConfig4.chainId, options.clientId) || {}), options.chainConfig)
47
+ chains: chains.map(chain => _objectSpread(_objectSpread({}, config.getChainConfig(chain === null || chain === void 0 ? void 0 : chain.chainNamespace, chain === null || chain === void 0 ? void 0 : chain.chainId, options.clientId) || {}), chain))
35
48
  });
36
- this.subscribeToAdapterEvents = this.subscribeToAdapterEvents.bind(this);
49
+ this.currentChainId = options.defaultChainId || chains[0].chainId;
50
+ }
51
+ get currentChain() {
52
+ return this.coreOptions.chains.find(chain => chain.chainId === this.currentChainId);
37
53
  }
38
54
  get connected() {
39
- return Boolean(this.connectedAdapterName);
55
+ return Boolean(this.connectedConnector);
40
56
  }
41
57
  get provider() {
42
- if (this.status !== base.ADAPTER_STATUS.NOT_READY && this.commonJRPCProvider) {
58
+ if (this.status !== constants.CONNECTOR_STATUS.NOT_READY && this.commonJRPCProvider) {
43
59
  return this.commonJRPCProvider;
44
60
  }
45
61
  return null;
46
62
  }
63
+ get connectedConnector() {
64
+ return this.connectors.find(connector => connector.name === this.connectedConnectorName) || null;
65
+ }
47
66
  set provider(_) {
48
67
  throw new Error("Not implemented");
49
68
  }
50
69
  async init() {
51
- this.commonJRPCProvider = await baseProvider.CommonJRPCProvider.getProviderInstance({
52
- chainConfig: this.coreOptions.chainConfig
53
- });
70
+ this.initCachedConnectorAndChainId();
71
+
72
+ // get project config
54
73
  let projectConfig;
55
74
  try {
56
75
  var _this$coreOptions$acc;
57
- projectConfig = await base.fetchProjectConfig(this.coreOptions.clientId, this.coreOptions.web3AuthNetwork, (_this$coreOptions$acc = this.coreOptions.accountAbstractionProvider) === null || _this$coreOptions$acc === void 0 ? void 0 : _this$coreOptions$acc.config.smartAccountInit.name);
76
+ projectConfig = await utils.fetchProjectConfig(this.coreOptions.clientId, this.coreOptions.web3AuthNetwork, (_this$coreOptions$acc = this.coreOptions.accountAbstractionConfig) === null || _this$coreOptions$acc === void 0 ? void 0 : _this$coreOptions$acc.smartAccountType);
58
77
  } catch (e) {
59
- base.log.error("Failed to fetch project configurations", e);
60
- throw base.WalletInitializationError.notReady("failed to fetch project configurations", e);
78
+ loglevel.log.error("Failed to fetch project configurations", e);
79
+ throw index.WalletInitializationError.notReady("failed to fetch project configurations", e);
61
80
  }
62
- const initPromises = Object.keys(this.walletAdapters).map(async adapterName => {
63
- this.subscribeToAdapterEvents(this.walletAdapters[adapterName]);
64
- // if adapter doesn't have any chain config yet then set it based on provided namespace and chainId.
65
- // if no chainNamespace or chainId is being provided, it will connect with mainnet.
66
- if (!this.walletAdapters[adapterName].chainConfigProxy) {
67
- const providedChainConfig = this.coreOptions.chainConfig;
68
- if (!providedChainConfig.chainNamespace) throw base.WalletInitializationError.invalidParams("Please provide chainNamespace in chainConfig");
69
- this.walletAdapters[adapterName].setAdapterSettings({
70
- chainConfig: providedChainConfig,
71
- sessionTime: this.coreOptions.sessionTime,
72
- clientId: this.coreOptions.clientId,
73
- web3AuthNetwork: this.coreOptions.web3AuthNetwork,
74
- useCoreKitKey: this.coreOptions.useCoreKitKey
75
- });
76
- } else {
77
- this.walletAdapters[adapterName].setAdapterSettings({
78
- sessionTime: this.coreOptions.sessionTime,
79
- clientId: this.coreOptions.clientId,
80
- web3AuthNetwork: this.coreOptions.web3AuthNetwork,
81
- useCoreKitKey: this.coreOptions.useCoreKitKey
82
- });
83
- }
84
- if (adapterName === base.WALLET_ADAPTERS.AUTH) {
85
- const authAdapter$1 = this.walletAdapters[adapterName];
86
- const {
87
- whitelabel
88
- } = projectConfig;
89
- this.coreOptions.uiConfig = deepmerge(base.cloneDeep(whitelabel || {}), this.coreOptions.uiConfig || {});
90
- if (!this.coreOptions.uiConfig.mode) this.coreOptions.uiConfig.mode = "light";
91
- const {
92
- sms_otp_enabled: smsOtpEnabled,
93
- whitelist,
94
- key_export_enabled: keyExportEnabled
95
- } = projectConfig;
96
- if (smsOtpEnabled !== undefined) {
97
- authAdapter$1.setAdapterSettings({
98
- loginConfig: {
99
- [authAdapter.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
100
- showOnModal: smsOtpEnabled,
101
- showOnDesktop: smsOtpEnabled,
102
- showOnMobile: smsOtpEnabled,
103
- showOnSocialBackupFactor: smsOtpEnabled
104
- }
105
- }
106
- });
107
- }
108
- if (whitelist) {
109
- authAdapter$1.setAdapterSettings({
110
- originData: whitelist.signed_urls
111
- });
112
- }
113
- if (typeof keyExportEnabled === "boolean") {
114
- this.coreOptions.privateKeyProvider.setKeyExportFlag(keyExportEnabled);
115
- // dont know if this is required or not.
116
- this.commonJRPCProvider.setKeyExportFlag(keyExportEnabled);
117
- }
118
- if (this.coreOptions.privateKeyProvider) {
119
- if (authAdapter$1.currentChainNamespace !== this.coreOptions.privateKeyProvider.currentChainConfig.chainNamespace) {
120
- throw base.WalletInitializationError.incompatibleChainNameSpace("private key provider is not compatible with provided chainNamespace for auth adapter");
121
- }
122
- authAdapter$1.setAdapterSettings({
123
- privateKeyProvider: this.coreOptions.privateKeyProvider
124
- });
125
- }
126
- authAdapter$1.setAdapterSettings({
127
- whiteLabel: this.coreOptions.uiConfig
128
- });
129
- if (!authAdapter$1.privateKeyProvider) {
130
- throw base.WalletInitializationError.invalidParams("privateKeyProvider is required for auth adapter");
131
- }
132
- } else if (adapterName === base.WALLET_ADAPTERS.WALLET_CONNECT_V2) {
133
- const walletConnectAdapter = this.walletAdapters[adapterName];
134
- const {
135
- wallet_connect_enabled: walletConnectEnabled,
136
- wallet_connect_project_id: walletConnectProjectId
137
- } = projectConfig;
138
- if (walletConnectEnabled === false) {
139
- throw base.WalletInitializationError.invalidParams("Please enable wallet connect v2 addon on dashboard");
140
- }
141
- if (!walletConnectProjectId) throw base.WalletInitializationError.invalidParams("Invalid wallet connect project id. Please configure it on the dashboard");
142
- walletConnectAdapter.setAdapterSettings({
143
- adapterSettings: {
144
- walletConnectInitOptions: {
145
- projectId: walletConnectProjectId
146
- }
147
- }
148
- });
81
+
82
+ // setup common JRPC provider
83
+ await this.setupCommonJRPCProvider();
84
+
85
+ // initialize connectors
86
+ this.on(constants.CONNECTOR_EVENTS.CONNECTORS_UPDATED, async ({
87
+ connectors: newConnectors
88
+ }) => {
89
+ await Promise.all(newConnectors.map(this.setupConnector));
90
+
91
+ // emit connector ready event
92
+ if (this.status === constants.CONNECTOR_STATUS.NOT_READY) {
93
+ this.status = constants.CONNECTOR_STATUS.READY;
94
+ this.emit(constants.CONNECTOR_EVENTS.READY);
149
95
  }
150
- return this.walletAdapters[adapterName].init({
151
- autoConnect: this.cachedAdapter === adapterName
152
- }).catch(e => base.log.error(e, adapterName));
153
96
  });
154
- await Promise.all(initPromises);
155
- if (this.status === base.ADAPTER_STATUS.NOT_READY) {
156
- this.status = base.ADAPTER_STATUS.READY;
157
- this.emit(base.ADAPTER_EVENTS.READY);
158
- }
97
+ await this.loadConnectors({
98
+ projectConfig
99
+ });
100
+ await this.initPlugins();
159
101
  }
160
- getAdapter(adapterName) {
161
- return this.walletAdapters[adapterName] || null;
162
- }
163
- configureAdapter(adapter) {
164
- this.checkInitRequirements();
165
- const providedChainConfig = this.coreOptions.chainConfig;
166
- if (!providedChainConfig.chainNamespace) throw base.WalletInitializationError.invalidParams("Please provide chainNamespace in chainConfig");
167
- const adapterAlreadyExists = this.walletAdapters[adapter.name];
168
- if (adapterAlreadyExists) throw base.WalletInitializationError.duplicateAdapterError(`Wallet adapter for ${adapter.name} already exists`);
169
- if (adapter.adapterNamespace !== base.ADAPTER_NAMESPACES.MULTICHAIN && adapter.adapterNamespace !== providedChainConfig.chainNamespace) throw base.WalletInitializationError.incompatibleChainNameSpace(`This wallet adapter belongs to ${adapter.adapterNamespace} which is incompatible with currently used namespace: ${providedChainConfig.chainNamespace}`);
170
- if (adapter.adapterNamespace === base.ADAPTER_NAMESPACES.MULTICHAIN && adapter.currentChainNamespace && providedChainConfig.chainNamespace !== adapter.currentChainNamespace) {
171
- // chainConfig checks are already validated in constructor so using typecast is safe here.
172
- adapter.setAdapterSettings({
173
- chainConfig: providedChainConfig
174
- });
175
- }
176
- this.walletAdapters[adapter.name] = adapter;
177
- return this;
102
+ getConnector(connectorName) {
103
+ return this.connectors.find(connector => connector.name === connectorName) || null;
178
104
  }
179
105
  clearCache() {
180
- if (!base.storageAvailable(this.storage)) return;
181
- window[this.storage].removeItem(ADAPTER_CACHE_KEY);
182
- this.cachedAdapter = null;
183
- }
184
- async addChain(chainConfig) {
185
- if (this.status === base.ADAPTER_STATUS.CONNECTED && this.connectedAdapterName) return this.walletAdapters[this.connectedAdapterName].addChain(chainConfig);
186
- if (this.commonJRPCProvider) {
187
- return this.commonJRPCProvider.addChain(chainConfig);
188
- }
189
- throw base.WalletInitializationError.notReady(`No wallet is ready`);
106
+ if (!utils$1.storageAvailable(this.storage)) return;
107
+ window[this.storage].removeItem(CONNECTOR_CACHE_KEY);
108
+ window[this.storage].removeItem(CURRENT_CHAIN_CACHE_KEY);
109
+ this.cachedConnector = null;
190
110
  }
191
111
  async switchChain(params) {
192
- if (this.status === base.ADAPTER_STATUS.CONNECTED && this.connectedAdapterName) return this.walletAdapters[this.connectedAdapterName].switchChain(params);
112
+ if (params.chainId === this.currentChain.chainId) return;
113
+ const newChainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
114
+ if (!newChainConfig) throw index.WalletInitializationError.invalidParams("Invalid chainId");
115
+ if (this.status === constants.CONNECTOR_STATUS.CONNECTED && this.connectedConnector) {
116
+ await this.connectedConnector.switchChain(params);
117
+ this.setCurrentChain(params.chainId);
118
+ return;
119
+ }
193
120
  if (this.commonJRPCProvider) {
194
- return this.commonJRPCProvider.switchChain(params);
121
+ await this.commonJRPCProvider.switchChain(params);
122
+ this.setCurrentChain(params.chainId);
123
+ return;
195
124
  }
196
- throw base.WalletInitializationError.notReady(`No wallet is ready`);
125
+ throw index.WalletInitializationError.notReady(`No wallet is ready`);
197
126
  }
198
127
 
199
128
  /**
200
- * Connect to a specific wallet adapter
201
- * @param walletName - Key of the walletAdapter to use.
129
+ * Connect to a specific wallet connector
130
+ * @param connectorName - Key of the wallet connector to use.
202
131
  */
203
- async connectTo(walletName, loginParams) {
204
- if (!this.walletAdapters[walletName] || !this.commonJRPCProvider) throw base.WalletInitializationError.notFound(`Please add wallet adapter for ${walletName} wallet, before connecting`);
132
+ async connectTo(connectorName, loginParams) {
133
+ if (!this.getConnector(connectorName) || !this.commonJRPCProvider) throw index.WalletInitializationError.notFound(`Please add wallet connector for ${connectorName} wallet, before connecting`);
205
134
  return new Promise((resolve, reject) => {
206
- this.once(base.ADAPTER_EVENTS.CONNECTED, _ => {
135
+ this.once(constants.CONNECTOR_EVENTS.CONNECTED, _ => {
207
136
  resolve(this.provider);
208
137
  });
209
- this.once(base.ADAPTER_EVENTS.ERRORED, err => {
138
+ this.once(constants.CONNECTOR_EVENTS.ERRORED, err => {
210
139
  reject(err);
211
140
  });
212
- this.walletAdapters[walletName].connect(loginParams);
141
+ const connector = this.getConnector(connectorName);
142
+ const initialChain = this.getInitialChainIdForConnector(connector);
143
+ const finalLoginParams = _objectSpread(_objectSpread({}, loginParams), {}, {
144
+ chainId: initialChain.chainId
145
+ });
146
+ connector.connect(finalLoginParams);
147
+ this.setCurrentChain(initialChain.chainId);
213
148
  });
214
149
  }
215
150
  async logout(options = {
216
151
  cleanup: false
217
152
  }) {
218
- if (this.status !== base.ADAPTER_STATUS.CONNECTED || !this.connectedAdapterName) throw base.WalletLoginError.notConnectedError(`No wallet is connected`);
219
- await this.walletAdapters[this.connectedAdapterName].disconnect(options);
153
+ if (this.status !== constants.CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
154
+ await this.connectedConnector.disconnect(options);
220
155
  }
221
156
  async getUserInfo() {
222
- base.log.debug("Getting user info", this.status, this.connectedAdapterName);
223
- if (this.status !== base.ADAPTER_STATUS.CONNECTED || !this.connectedAdapterName) throw base.WalletLoginError.notConnectedError(`No wallet is connected`);
224
- return this.walletAdapters[this.connectedAdapterName].getUserInfo();
157
+ var _this$connectedConnec;
158
+ loglevel.log.debug("Getting user info", this.status, (_this$connectedConnec = this.connectedConnector) === null || _this$connectedConnec === void 0 ? void 0 : _this$connectedConnec.name);
159
+ if (this.status !== constants.CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
160
+ return this.connectedConnector.getUserInfo();
225
161
  }
226
162
  async enableMFA(loginParams) {
227
- if (this.status !== base.ADAPTER_STATUS.CONNECTED || !this.connectedAdapterName) throw base.WalletLoginError.notConnectedError(`No wallet is connected`);
228
- if (this.connectedAdapterName !== base.WALLET_ADAPTERS.AUTH) throw base.WalletLoginError.unsupportedOperation(`EnableMFA is not supported for this adapter.`);
229
- return this.walletAdapters[this.connectedAdapterName].enableMFA(loginParams);
163
+ if (this.status !== constants.CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
164
+ if (this.connectedConnector.name !== index$1.WALLET_CONNECTORS.AUTH) throw index.WalletLoginError.unsupportedOperation(`EnableMFA is not supported for this connector.`);
165
+ return this.connectedConnector.enableMFA(loginParams);
230
166
  }
231
167
  async manageMFA(loginParams) {
232
- if (this.status !== base.ADAPTER_STATUS.CONNECTED || !this.connectedAdapterName) throw base.WalletLoginError.notConnectedError(`No wallet is connected`);
233
- if (this.connectedAdapterName !== base.WALLET_ADAPTERS.AUTH) throw base.WalletLoginError.unsupportedOperation(`ManageMFA is not supported for this adapter.`);
234
- return this.walletAdapters[this.connectedAdapterName].manageMFA(loginParams);
168
+ if (this.status !== constants.CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
169
+ if (this.connectedConnector.name !== index$1.WALLET_CONNECTORS.AUTH) throw index.WalletLoginError.unsupportedOperation(`ManageMFA is not supported for this connector.`);
170
+ return this.connectedConnector.manageMFA(loginParams);
235
171
  }
236
172
  async authenticateUser() {
237
- if (this.status !== base.ADAPTER_STATUS.CONNECTED || !this.connectedAdapterName) throw base.WalletLoginError.notConnectedError(`No wallet is connected`);
238
- return this.walletAdapters[this.connectedAdapterName].authenticateUser();
173
+ if (this.status !== constants.CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
174
+ return this.connectedConnector.authenticateUser();
239
175
  }
240
- addPlugin(plugin) {
241
- if (this.plugins[plugin.name]) throw base.WalletInitializationError.duplicateAdapterError(`Plugin ${plugin.name} already exist`);
242
- if (plugin.pluginNamespace !== base.PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== this.coreOptions.chainConfig.chainNamespace) throw base.WalletInitializationError.incompatibleChainNameSpace(`This plugin belongs to ${plugin.pluginNamespace} namespace which is incompatible with currently used namespace: ${this.coreOptions.chainConfig.chainNamespace}`);
243
- this.plugins[plugin.name] = plugin;
244
- if (this.status === base.ADAPTER_STATUS.CONNECTED && this.connectedAdapterName) {
245
- // web3auth is already connected. can initialize plugins
246
- this.connectToPlugins({
247
- adapter: this.connectedAdapterName
176
+ getPlugin(name) {
177
+ return this.plugins[name] || null;
178
+ }
179
+ initCachedConnectorAndChainId() {
180
+ this.cachedConnector = utils$1.storageAvailable(this.storage) ? window[this.storage].getItem(CONNECTOR_CACHE_KEY) : null;
181
+ // init chainId using cached chainId if it exists and is valid, otherwise use the defaultChainId or the first chain
182
+ const cachedChainId = utils$1.storageAvailable(this.storage) ? window[this.storage].getItem(CURRENT_CHAIN_CACHE_KEY) : null;
183
+ const isCachedChainIdValid = cachedChainId && this.coreOptions.chains.some(chain => chain.chainId === cachedChainId);
184
+ this.currentChainId = isCachedChainIdValid ? cachedChainId : this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
185
+ }
186
+ async setupCommonJRPCProvider() {
187
+ this.commonJRPCProvider = await CommonJRPCProvider.CommonJRPCProvider.getProviderInstance({
188
+ chain: this.currentChain,
189
+ chains: this.coreOptions.chains
190
+ });
191
+
192
+ // sync chainId
193
+ this.commonJRPCProvider.on("chainChanged", chainId => this.setCurrentChain(chainId));
194
+ }
195
+ async setupConnector(connector) {
196
+ this.subscribeToConnectorEvents(connector);
197
+ try {
198
+ const initialChain = this.getInitialChainIdForConnector(connector);
199
+ await connector.init({
200
+ autoConnect: this.cachedConnector === connector.name,
201
+ chainId: initialChain.chainId
248
202
  });
203
+ } catch (e) {
204
+ loglevel.log.error(e, connector.name);
249
205
  }
250
- return this;
251
206
  }
252
- getPlugin(name) {
253
- return this.plugins[name] || null;
207
+ async loadConnectors({
208
+ projectConfig
209
+ }) {
210
+ var _this$coreOptions$mul;
211
+ // always add auth connector
212
+ const connectorFns = [...(this.coreOptions.connectors || []), authConnector.authConnector()];
213
+ const config = {
214
+ projectConfig,
215
+ coreOptions: this.coreOptions
216
+ };
217
+
218
+ // add injected connectors
219
+ const isMipdEnabled = (_this$coreOptions$mul = this.coreOptions.multiInjectedProviderDiscovery) !== null && _this$coreOptions$mul !== void 0 ? _this$coreOptions$mul : true;
220
+ const chainNamespaces = new Set(this.coreOptions.chains.map(chain => chain.chainNamespace));
221
+ if (isMipdEnabled) {
222
+ // Solana chains
223
+ if (chainNamespaces.has(IChainInterface.CHAIN_NAMESPACES.SOLANA)) {
224
+ const {
225
+ createSolanaMipd,
226
+ hasSolanaWalletStandardFeatures,
227
+ walletStandardConnector
228
+ } = await Promise.resolve().then(function () { return require('./connectors/injected-solana-connector/index.js'); });
229
+ const solanaMipd = createSolanaMipd();
230
+ // subscribe to new injected connectors
231
+ solanaMipd.on("register", async (...wallets) => {
232
+ const newConnectors = wallets.filter(hasSolanaWalletStandardFeatures).map(wallet => walletStandardConnector(wallet)(config));
233
+ this.setConnectors(newConnectors);
234
+ });
235
+ connectorFns.push(...solanaMipd.get().filter(wallet => hasSolanaWalletStandardFeatures(wallet)).map(walletStandardConnector));
236
+ }
237
+ // EVM chains
238
+ if (chainNamespaces.has(IChainInterface.CHAIN_NAMESPACES.EIP155)) {
239
+ const {
240
+ createMipd,
241
+ injectedEvmConnector
242
+ } = await Promise.resolve().then(function () { return require('./connectors/injected-evm-connector/index.js'); });
243
+ const evmMipd = createMipd();
244
+ // subscribe to new injected connectors
245
+ evmMipd.subscribe(providerDetails => {
246
+ const newConnectors = providerDetails.map(providerDetail => injectedEvmConnector(providerDetail)(config));
247
+ this.setConnectors(newConnectors);
248
+ });
249
+ connectorFns.push(...evmMipd.getProviders().map(injectedEvmConnector));
250
+ }
251
+ }
252
+
253
+ // add WalletConnectV2 connector if enabled
254
+ if (projectConfig.wallet_connect_enabled && projectConfig.wallet_connect_project_id && (chainNamespaces.has(IChainInterface.CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(IChainInterface.CHAIN_NAMESPACES.EIP155))) {
255
+ const {
256
+ walletConnectV2Connector
257
+ } = await Promise.resolve().then(function () { return require('./connectors/wallet-connect-v2-connector/index.js'); });
258
+ connectorFns.push(walletConnectV2Connector());
259
+ }
260
+ const connectors = connectorFns.map(connectorFn => connectorFn(config));
261
+ this.setConnectors(connectors);
262
+ }
263
+ async initPlugins() {
264
+ const pluginFns = this.coreOptions.plugins || [];
265
+ for (const pluginFn of pluginFns) {
266
+ const plugin = pluginFn();
267
+ if (!this.plugins[plugin.name]) this.plugins[plugin.name] = plugin;
268
+ }
254
269
  }
255
- subscribeToAdapterEvents(walletAdapter) {
256
- walletAdapter.on(base.ADAPTER_EVENTS.CONNECTED, async data => {
257
- if (!this.commonJRPCProvider) throw base.WalletInitializationError.notFound(`CommonJrpcProvider not found`);
270
+ setConnectors(connectors) {
271
+ const connectorSet = new Set(this.connectors.map(connector => connector.name));
272
+ const newConnectors = connectors.map(connector => {
273
+ if (connectorSet.has(connector.name)) return null;
274
+ connectorSet.add(connector.name);
275
+ return connector;
276
+ }).filter(connector => connector !== null);
277
+ if (newConnectors.length > 0) {
278
+ this.connectors = [...this.connectors, ...newConnectors];
279
+ // only emit new connectors
280
+ this.emit(constants.CONNECTOR_EVENTS.CONNECTORS_UPDATED, {
281
+ connectors: newConnectors
282
+ });
283
+ }
284
+ }
285
+ subscribeToConnectorEvents(connector) {
286
+ connector.on(constants.CONNECTOR_EVENTS.CONNECTED, async data => {
287
+ if (!this.commonJRPCProvider) throw index.WalletInitializationError.notFound(`CommonJrpcProvider not found`);
258
288
  const {
259
289
  provider
260
290
  } = data;
261
291
  let finalProvider = provider.provider || provider;
262
- // setup aa provider after adapter is connected and private key provider is setup
263
- if (this.coreOptions.accountAbstractionProvider && (data.adapter === base.WALLET_ADAPTERS.AUTH || data.adapter !== base.WALLET_ADAPTERS.AUTH && this.coreOptions.useAAWithExternalWallet)) {
264
- await this.coreOptions.accountAbstractionProvider.setupProvider(provider); // Don't change this to finalProvider
265
- finalProvider = this.coreOptions.accountAbstractionProvider;
292
+ // setup aa provider for external wallets on EVM chains, for in app wallet, it uses WS provider which already supports AA
293
+ const {
294
+ accountAbstractionConfig
295
+ } = this.coreOptions;
296
+ if (this.currentChain.chainNamespace === IChainInterface.CHAIN_NAMESPACES.EIP155 && accountAbstractionConfig && data.connector !== index$1.WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
297
+ const {
298
+ accountAbstractionProvider
299
+ } = await Promise.resolve().then(function () { return require('./providers/account-abstraction-provider/index.js'); });
300
+ const aaProvider = await accountAbstractionProvider({
301
+ accountAbstractionConfig,
302
+ provider,
303
+ chain: this.currentChain,
304
+ chains: this.coreOptions.chains
305
+ });
306
+ finalProvider = aaProvider;
307
+ // TODO: when switching chains to Solana or other chains, we need to switch to the non-AA provider
266
308
  }
267
309
  this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
268
- this.connectedAdapterName = data.adapter;
269
- this.status = base.ADAPTER_STATUS.CONNECTED;
270
- this.cacheWallet(data.adapter);
271
- base.log.debug("connected", this.status, this.connectedAdapterName);
310
+ this.connectedConnectorName = data.connector;
311
+ this.status = constants.CONNECTOR_STATUS.CONNECTED;
312
+ this.cacheWallet(data.connector);
313
+ loglevel.log.debug("connected", this.status, this.connectedConnectorName);
272
314
  this.connectToPlugins(data);
273
- this.emit(base.ADAPTER_EVENTS.CONNECTED, _objectSpread({}, data));
315
+ this.emit(constants.CONNECTOR_EVENTS.CONNECTED, _objectSpread({}, data));
274
316
  });
275
- walletAdapter.on(base.ADAPTER_EVENTS.DISCONNECTED, async () => {
317
+ connector.on(constants.CONNECTOR_EVENTS.DISCONNECTED, async () => {
276
318
  // get back to ready state for rehydrating.
277
- this.status = base.ADAPTER_STATUS.READY;
278
- if (base.storageAvailable(this.storage)) {
279
- const cachedAdapter = window[this.storage].getItem(ADAPTER_CACHE_KEY);
280
- if (this.connectedAdapterName === cachedAdapter) {
319
+ this.status = constants.CONNECTOR_STATUS.READY;
320
+ if (utils$1.storageAvailable(this.storage)) {
321
+ const cachedConnector = window[this.storage].getItem(CONNECTOR_CACHE_KEY);
322
+ if (this.connectedConnectorName === cachedConnector) {
281
323
  this.clearCache();
282
324
  }
283
325
  }
284
- base.log.debug("disconnected", this.status, this.connectedAdapterName);
285
- await Promise.all(Object.values(this.plugins).map(plugin => {
326
+ loglevel.log.debug("disconnected", this.status, this.connectedConnectorName);
327
+ await Promise.all(Object.values(this.plugins).map(async plugin => {
328
+ if (!plugin.SUPPORTED_CONNECTORS.includes("all") && !plugin.SUPPORTED_CONNECTORS.includes(connector.name)) return;
329
+ if (plugin.status !== IPlugin.PLUGIN_STATUS.CONNECTED) return;
286
330
  return plugin.disconnect().catch(error => {
287
- // swallow error if adapter doesn't supports this plugin.
331
+ // swallow error if connector doesn't supports this plugin.
288
332
  if (error.code === 5211) {
289
333
  return;
290
334
  }
291
335
  // throw error;
292
- base.log.error(error);
336
+ loglevel.log.error(error);
293
337
  });
294
338
  }));
295
- this.connectedAdapterName = null;
296
- this.emit(base.ADAPTER_EVENTS.DISCONNECTED);
339
+ this.connectedConnectorName = null;
340
+ this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED);
297
341
  });
298
- walletAdapter.on(base.ADAPTER_EVENTS.CONNECTING, data => {
299
- this.status = base.ADAPTER_STATUS.CONNECTING;
300
- this.emit(base.ADAPTER_EVENTS.CONNECTING, data);
301
- base.log.debug("connecting", this.status, this.connectedAdapterName);
342
+ connector.on(constants.CONNECTOR_EVENTS.CONNECTING, data => {
343
+ this.status = constants.CONNECTOR_STATUS.CONNECTING;
344
+ this.emit(constants.CONNECTOR_EVENTS.CONNECTING, data);
345
+ loglevel.log.debug("connecting", this.status, this.connectedConnectorName);
302
346
  });
303
- walletAdapter.on(base.ADAPTER_EVENTS.ERRORED, data => {
304
- this.status = base.ADAPTER_STATUS.ERRORED;
347
+ connector.on(constants.CONNECTOR_EVENTS.ERRORED, data => {
348
+ this.status = constants.CONNECTOR_STATUS.ERRORED;
305
349
  this.clearCache();
306
- this.emit(base.ADAPTER_EVENTS.ERRORED, data);
307
- base.log.debug("errored", this.status, this.connectedAdapterName);
350
+ this.emit(constants.CONNECTOR_EVENTS.ERRORED, data);
351
+ loglevel.log.debug("errored", this.status, this.connectedConnectorName);
308
352
  });
309
- walletAdapter.on(base.ADAPTER_EVENTS.ADAPTER_DATA_UPDATED, data => {
310
- base.log.debug("adapter data updated", data);
311
- this.emit(base.ADAPTER_EVENTS.ADAPTER_DATA_UPDATED, data);
353
+ connector.on(constants.CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data => {
354
+ loglevel.log.debug("connector data updated", data);
355
+ this.emit(constants.CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data);
312
356
  });
313
- walletAdapter.on(base.ADAPTER_EVENTS.CACHE_CLEAR, data => {
314
- base.log.debug("adapter cache clear", data);
315
- if (base.storageAvailable(this.storage)) {
357
+ connector.on(constants.CONNECTOR_EVENTS.CACHE_CLEAR, data => {
358
+ loglevel.log.debug("connector cache clear", data);
359
+ if (utils$1.storageAvailable(this.storage)) {
316
360
  this.clearCache();
317
361
  }
318
362
  });
319
363
  }
320
364
  checkInitRequirements() {
321
- if (this.status === base.ADAPTER_STATUS.CONNECTING) throw base.WalletInitializationError.notReady("Already pending connection");
322
- if (this.status === base.ADAPTER_STATUS.CONNECTED) throw base.WalletInitializationError.notReady("Already connected");
323
- if (this.status === base.ADAPTER_STATUS.READY) throw base.WalletInitializationError.notReady("Adapter is already initialized");
365
+ if (this.status === constants.CONNECTOR_STATUS.CONNECTING) throw index.WalletInitializationError.notReady("Already pending connection");
366
+ if (this.status === constants.CONNECTOR_STATUS.CONNECTED) throw index.WalletInitializationError.notReady("Already connected");
367
+ if (this.status === constants.CONNECTOR_STATUS.READY) throw index.WalletInitializationError.notReady("Connector is already initialized");
368
+ }
369
+
370
+ /**
371
+ * Gets the initial chain configuration for a connector
372
+ * @throws WalletInitializationError If no chain is found for the connector's namespace
373
+ */
374
+ getInitialChainIdForConnector(connector) {
375
+ let initialChain = this.currentChain;
376
+ if (initialChain.chainNamespace !== connector.connectorNamespace && connector.connectorNamespace !== IChainInterface.CONNECTOR_NAMESPACES.MULTICHAIN) {
377
+ initialChain = this.coreOptions.chains.find(x => x.chainNamespace === connector.connectorNamespace);
378
+ if (!initialChain) throw index.WalletInitializationError.invalidParams(`No chain found for ${connector.connectorNamespace}`);
379
+ }
380
+ return initialChain;
324
381
  }
325
382
  cacheWallet(walletName) {
326
- if (!base.storageAvailable(this.storage)) return;
327
- window[this.storage].setItem(ADAPTER_CACHE_KEY, walletName);
328
- this.cachedAdapter = walletName;
383
+ if (!utils$1.storageAvailable(this.storage)) return;
384
+ // TODO: use the key from user + this
385
+ window[this.storage].setItem(CONNECTOR_CACHE_KEY, walletName);
386
+ this.cachedConnector = walletName;
387
+ }
388
+ setCurrentChain(chainId) {
389
+ if (chainId === this.currentChainId) return;
390
+ const newChain = this.coreOptions.chains.find(chain => chain.chainId === chainId);
391
+ if (!newChain) throw index.WalletInitializationError.invalidParams(`Invalid chainId: ${chainId}`);
392
+ this.currentChainId = chainId;
393
+ this.cacheCurrentChain(chainId);
394
+ }
395
+ cacheCurrentChain(chainId) {
396
+ if (!utils$1.storageAvailable(this.storage)) return;
397
+ window[this.storage].setItem(CURRENT_CHAIN_CACHE_KEY, chainId);
329
398
  }
330
399
  connectToPlugins(data) {
331
400
  Object.values(this.plugins).map(async plugin => {
332
401
  try {
333
- if (!plugin.SUPPORTED_ADAPTERS.includes("all") && !plugin.SUPPORTED_ADAPTERS.includes(data.adapter)) {
334
- return;
335
- }
336
- if (plugin.status === base.PLUGIN_STATUS.CONNECTED) return;
337
- const {
338
- authInstance
339
- } = this.walletAdapters[this.connectedAdapterName];
340
- const {
341
- options,
342
- sessionId,
343
- sessionNamespace
344
- } = authInstance || {};
345
- await plugin.initWithWeb3Auth(this, options === null || options === void 0 ? void 0 : options.whiteLabel);
346
- await plugin.connect({
347
- sessionId,
348
- sessionNamespace
349
- });
402
+ // skip if it's not compatible with the connector
403
+ if (!plugin.SUPPORTED_CONNECTORS.includes("all") && !plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
404
+ // skip if it's not compatible with the current chain
405
+ if (plugin.pluginNamespace !== IPlugin.PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== this.currentChain.chainNamespace) return;
406
+ // skip if it's already connected
407
+ if (plugin.status === IPlugin.PLUGIN_STATUS.CONNECTED) return;
408
+ await plugin.initWithWeb3Auth(this, this.coreOptions.uiConfig);
409
+ await plugin.connect();
350
410
  } catch (error) {
351
- // swallow error if connector adapter doesn't supports this plugin.
411
+ // swallow error if connector connector doesn't supports this plugin.
352
412
  if (error.code === 5211) {
353
413
  return;
354
414
  }
355
- base.log.error(error);
415
+ loglevel.log.error(error);
356
416
  }
357
417
  });
358
418
  }