@web3auth/no-modal 10.0.0-alpha.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 (245) hide show
  1. package/dist/lib.cjs/base/chain/IChainInterface.js +2 -2
  2. package/dist/lib.cjs/base/chain/config.js +63 -22
  3. package/dist/lib.cjs/base/connector/baseConnector.js +67 -0
  4. package/dist/lib.cjs/base/connector/constants.js +26 -0
  5. package/dist/lib.cjs/base/errors/index.js +2 -2
  6. package/dist/lib.cjs/base/plugin/errors.js +2 -2
  7. package/dist/lib.cjs/base/wallet/index.js +15 -20
  8. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +392 -0
  9. package/dist/lib.cjs/{adapters/base-evm-adapter/baseEvmAdapter.js → connectors/base-evm-connector/baseEvmConnector.js} +22 -19
  10. package/dist/lib.cjs/{adapters/base-solana-adapter/baseSolanaAdapter.js → connectors/base-solana-connector/baseSolanaConnector.js} +24 -23
  11. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +151 -0
  12. package/dist/lib.cjs/connectors/injected-evm-connector/index.js +12 -0
  13. package/dist/lib.cjs/{adapters/default-evm-adapter/injectedEvmAdapter.js → connectors/injected-evm-connector/injectedEvmConnector.js} +54 -38
  14. package/dist/lib.cjs/connectors/injected-solana-connector/index.js +25 -0
  15. package/dist/lib.cjs/{adapters/default-solana-adapter/walletStandardAdapter.js → connectors/injected-solana-connector/walletStandardConnector.js} +57 -48
  16. package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.js +40 -90
  17. package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.js +23 -26
  18. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +20 -0
  19. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +417 -0
  20. package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.js +12 -25
  21. package/dist/lib.cjs/index.js +100 -82
  22. package/dist/lib.cjs/noModal.js +291 -239
  23. package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +9 -4
  24. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +43 -199
  25. package/dist/lib.cjs/providers/account-abstraction-provider/index.js +32 -0
  26. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +99 -31
  27. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +21 -26
  28. package/dist/lib.cjs/providers/base-provider/baseProvider.js +29 -24
  29. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +2 -13
  30. package/dist/lib.cjs/providers/base-provider/index.js +18 -0
  31. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +34 -57
  32. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +1 -30
  33. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +9 -11
  34. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +3 -5
  35. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +83 -2
  36. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +24 -54
  37. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +18 -27
  38. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +5 -5
  39. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +44 -18
  40. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +23 -58
  41. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -3
  42. package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +18 -42
  43. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +3 -0
  44. package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +16 -42
  45. package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +4 -0
  46. package/dist/lib.esm/base/chain/IChainInterface.js +2 -2
  47. package/dist/lib.esm/base/chain/config.js +63 -22
  48. package/dist/lib.esm/base/connector/baseConnector.js +65 -0
  49. package/dist/lib.esm/base/connector/constants.js +22 -0
  50. package/dist/lib.esm/base/errors/index.js +2 -2
  51. package/dist/lib.esm/base/plugin/errors.js +2 -2
  52. package/dist/lib.esm/base/wallet/index.js +11 -16
  53. package/dist/lib.esm/connectors/auth-connector/authConnector.js +390 -0
  54. package/dist/lib.esm/{adapters/base-evm-adapter/baseEvmAdapter.js → connectors/base-evm-connector/baseEvmConnector.js} +23 -20
  55. package/dist/lib.esm/{adapters/base-solana-adapter/baseSolanaAdapter.js → connectors/base-solana-connector/baseSolanaConnector.js} +25 -24
  56. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +149 -0
  57. package/dist/lib.esm/connectors/injected-evm-connector/index.js +2 -0
  58. package/dist/lib.esm/{adapters/default-evm-adapter/injectedEvmAdapter.js → connectors/injected-evm-connector/injectedEvmConnector.js} +54 -39
  59. package/dist/lib.esm/connectors/injected-solana-connector/index.js +18 -0
  60. package/dist/lib.esm/{adapters/default-solana-adapter/walletStandardAdapter.js → connectors/injected-solana-connector/walletStandardConnector.js} +57 -49
  61. package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.js +41 -91
  62. package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.js +23 -26
  63. package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +3 -0
  64. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +415 -0
  65. package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.js +13 -25
  66. package/dist/lib.esm/index.js +23 -28
  67. package/dist/lib.esm/noModal.js +290 -238
  68. package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +9 -4
  69. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +42 -199
  70. package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -0
  71. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +96 -31
  72. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +22 -27
  73. package/dist/lib.esm/providers/base-provider/baseProvider.js +29 -24
  74. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +2 -13
  75. package/dist/lib.esm/providers/base-provider/index.js +5 -0
  76. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +34 -57
  77. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +2 -30
  78. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +9 -11
  79. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +3 -5
  80. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +83 -2
  81. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +24 -54
  82. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +18 -27
  83. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +5 -5
  84. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +44 -18
  85. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +23 -58
  86. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -3
  87. package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +18 -42
  88. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +3 -0
  89. package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +16 -42
  90. package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +4 -0
  91. package/dist/noModal.cjs.js +12650 -24362
  92. package/dist/noModal.umd.min.js +1 -1
  93. package/dist/noModal.umd.min.js.LICENSE.txt +0 -9
  94. package/dist/types/base/chain/IChainInterface.d.ts +2 -2
  95. package/dist/types/base/chain/config.d.ts +2 -2
  96. package/dist/types/base/connector/baseConnector.d.ts +37 -0
  97. package/dist/types/base/{adapter → connector}/constants.d.ts +7 -4
  98. package/dist/types/base/{adapter → connector}/index.d.ts +1 -1
  99. package/dist/types/base/{adapter → connector}/interfaces.d.ts +47 -45
  100. package/dist/types/base/core/IWeb3Auth.d.ts +75 -34
  101. package/dist/types/base/errors/index.d.ts +1 -1
  102. package/dist/types/base/hooks/index.d.ts +2 -6
  103. package/dist/types/base/index.d.ts +1 -1
  104. package/dist/types/base/plugin/IPlugin.d.ts +4 -7
  105. package/dist/types/base/plugin/errors.d.ts +1 -1
  106. package/dist/types/base/utils.d.ts +1 -1
  107. package/dist/types/base/wallet/index.d.ts +9 -13
  108. package/dist/types/connectors/auth-connector/authConnector.d.ts +45 -0
  109. package/dist/types/connectors/auth-connector/index.d.ts +2 -0
  110. package/dist/types/connectors/auth-connector/interface.d.ts +14 -0
  111. package/dist/types/connectors/base-evm-connector/baseEvmConnector.d.ts +7 -0
  112. package/dist/types/connectors/base-evm-connector/index.d.ts +1 -0
  113. package/dist/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +7 -0
  114. package/dist/types/connectors/base-solana-connector/index.d.ts +1 -0
  115. package/dist/types/connectors/coinbase-connector/coinbaseConnector.d.ts +7 -0
  116. package/dist/types/connectors/coinbase-connector/index.d.ts +1 -0
  117. package/dist/types/connectors/index.d.ts +7 -0
  118. package/dist/types/connectors/injected-evm-connector/index.d.ts +2 -0
  119. package/dist/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +34 -0
  120. package/dist/types/connectors/injected-solana-connector/index.d.ts +5 -0
  121. package/dist/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +33 -0
  122. package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.d.ts +3 -4
  123. package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.d.ts +4 -4
  124. package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/index.d.ts +1 -1
  125. package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/interface.d.ts +4 -4
  126. package/dist/types/connectors/wallet-connect-v2-connector/walletConnectV2Connector.d.ts +3 -0
  127. package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.d.ts +1 -6
  128. package/dist/types/index.d.ts +1 -1
  129. package/dist/types/noModal.d.ts +29 -14
  130. package/dist/types/plugins/nft-checkout-plugin/plugin.d.ts +11 -7
  131. package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +8 -32
  132. package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +16 -14
  133. package/dist/types/providers/account-abstraction-provider/providers/index.d.ts +0 -1
  134. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -6
  135. package/dist/types/providers/base-provider/CommonJRPCProvider.d.ts +3 -3
  136. package/dist/types/providers/base-provider/baseProvider.d.ts +14 -11
  137. package/dist/types/providers/base-provider/commonPrivateKeyProvider.d.ts +2 -4
  138. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +14 -5
  139. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -1
  140. package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +2 -3
  141. package/dist/types/providers/ethereum-provider/rpc/interfaces.d.ts +0 -13
  142. package/dist/types/providers/solana-provider/interface.d.ts +8 -25
  143. package/dist/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +2 -2
  144. package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +1 -2
  145. package/dist/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +3 -0
  146. package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +7 -4
  147. package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +4 -4
  148. package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +12 -27
  149. package/dist/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +1 -1
  150. package/dist/types/providers/solana-provider/solanaWallet.d.ts +21 -7
  151. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +4 -4
  152. package/dist/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +1 -4
  153. package/dist/types/react/no-modal/interfaces.d.ts +4 -4
  154. package/dist/types/react/wallet-services-plugin/interfaces.d.ts +2 -2
  155. package/dist/types/vue/no-modal/interfaces.d.ts +5 -8
  156. package/dist/types/vue/wallet-services-plugin/interfaces.d.ts +2 -2
  157. package/package.json +8 -7
  158. package/dist/757.noModal.cjs.js +0 -226
  159. package/dist/lib.cjs/adapters/auth-adapter/authAdapter.js +0 -262
  160. package/dist/lib.cjs/adapters/auth-adapter/config.js +0 -17
  161. package/dist/lib.cjs/adapters/coinbase-adapter/coinbaseAdapter.js +0 -156
  162. package/dist/lib.cjs/adapters/default-evm-adapter/index.js +0 -40
  163. package/dist/lib.cjs/adapters/default-evm-adapter/injectedAdapters.js +0 -42
  164. package/dist/lib.cjs/adapters/default-solana-adapter/index.js +0 -40
  165. package/dist/lib.cjs/adapters/default-solana-adapter/injectedAdapters.js +0 -53
  166. package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardHandler.js +0 -77
  167. package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +0 -376
  168. package/dist/lib.cjs/base/adapter/baseAdapter.js +0 -117
  169. package/dist/lib.cjs/base/adapter/constants.js +0 -24
  170. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +0 -29
  171. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +0 -22
  172. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +0 -30
  173. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +0 -30
  174. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +0 -29
  175. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/constants.js +0 -11
  176. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +0 -185
  177. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +0 -106
  178. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +0 -12
  179. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +0 -75
  180. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +0 -109
  181. package/dist/lib.esm/adapters/auth-adapter/authAdapter.js +0 -260
  182. package/dist/lib.esm/adapters/auth-adapter/config.js +0 -15
  183. package/dist/lib.esm/adapters/coinbase-adapter/coinbaseAdapter.js +0 -154
  184. package/dist/lib.esm/adapters/default-evm-adapter/index.js +0 -37
  185. package/dist/lib.esm/adapters/default-evm-adapter/injectedAdapters.js +0 -40
  186. package/dist/lib.esm/adapters/default-solana-adapter/index.js +0 -37
  187. package/dist/lib.esm/adapters/default-solana-adapter/injectedAdapters.js +0 -51
  188. package/dist/lib.esm/adapters/default-solana-adapter/walletStandardHandler.js +0 -75
  189. package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +0 -374
  190. package/dist/lib.esm/base/adapter/baseAdapter.js +0 -115
  191. package/dist/lib.esm/base/adapter/constants.js +0 -20
  192. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +0 -27
  193. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +0 -20
  194. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +0 -28
  195. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +0 -28
  196. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +0 -27
  197. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/constants.js +0 -9
  198. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +0 -183
  199. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +0 -104
  200. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +0 -10
  201. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +0 -73
  202. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +0 -107
  203. package/dist/types/adapters/auth-adapter/authAdapter.d.ts +0 -42
  204. package/dist/types/adapters/auth-adapter/config.d.ts +0 -2
  205. package/dist/types/adapters/auth-adapter/index.d.ts +0 -3
  206. package/dist/types/adapters/auth-adapter/interface.d.ts +0 -11
  207. package/dist/types/adapters/base-evm-adapter/baseEvmAdapter.d.ts +0 -7
  208. package/dist/types/adapters/base-evm-adapter/index.d.ts +0 -1
  209. package/dist/types/adapters/base-solana-adapter/baseSolanaAdapter.d.ts +0 -7
  210. package/dist/types/adapters/base-solana-adapter/index.d.ts +0 -1
  211. package/dist/types/adapters/coinbase-adapter/coinbaseAdapter.d.ts +0 -33
  212. package/dist/types/adapters/coinbase-adapter/index.d.ts +0 -1
  213. package/dist/types/adapters/default-evm-adapter/index.d.ts +0 -6
  214. package/dist/types/adapters/default-evm-adapter/injectedAdapters.d.ts +0 -4
  215. package/dist/types/adapters/default-evm-adapter/injectedEvmAdapter.d.ts +0 -30
  216. package/dist/types/adapters/default-solana-adapter/index.d.ts +0 -6
  217. package/dist/types/adapters/default-solana-adapter/injectedAdapters.d.ts +0 -4
  218. package/dist/types/adapters/default-solana-adapter/walletStandardAdapter.d.ts +0 -31
  219. package/dist/types/adapters/default-solana-adapter/walletStandardHandler.d.ts +0 -27
  220. package/dist/types/adapters/index.d.ts +0 -7
  221. package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.d.ts +0 -42
  222. package/dist/types/base/adapter/baseAdapter.d.ts +0 -44
  223. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.d.ts +0 -14
  224. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.d.ts +0 -13
  225. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/LightSmartAccount.d.ts +0 -14
  226. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.d.ts +0 -14
  227. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.d.ts +0 -13
  228. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SimpleSmartAccount.d.ts +0 -13
  229. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.d.ts +0 -13
  230. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/constants.d.ts +0 -9
  231. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/types.d.ts +0 -22
  232. package/dist/types/providers/account-abstraction-provider/providers/types.d.ts +0 -17
  233. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.d.ts +0 -30
  234. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.d.ts +0 -9
  235. package/dist/types/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.d.ts +0 -3
  236. package/dist/types/providers/solana-provider/providers/injectedProviders/interface.d.ts +0 -5
  237. package/dist/types/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.d.ts +0 -3
  238. package/dist/types/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.d.ts +0 -18
  239. /package/dist/lib.cjs/base/{adapter → connector}/utils.js +0 -0
  240. /package/dist/lib.cjs/{adapters/default-solana-adapter → providers/solana-provider/providers/injectedProviders}/utils.js +0 -0
  241. /package/dist/lib.esm/base/{adapter → connector}/utils.js +0 -0
  242. /package/dist/lib.esm/{adapters/default-solana-adapter → providers/solana-provider/providers/injectedProviders}/utils.js +0 -0
  243. /package/dist/types/base/{adapter → connector}/utils.d.ts +0 -0
  244. /package/dist/types/{adapters/default-solana-adapter → connectors/injected-solana-connector}/utils.d.ts +0 -0
  245. /package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/utils.d.ts +0 -0
@@ -0,0 +1,390 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { LOGIN_PROVIDER, UX_MODE, WEB3AUTH_NETWORK, Auth, SUPPORTED_KEY_CURVES } from '@web3auth/auth';
4
+ import deepmerge from 'deepmerge';
5
+ import { CONNECTOR_NAMESPACES, CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
6
+ import { WalletInitializationError, WalletLoginError, Web3AuthError } from '../../base/errors/index.js';
7
+ import { log } from '../../base/loglevel.js';
8
+ import { cloneDeep } from '@toruslabs/base-controllers';
9
+ import '@toruslabs/constants';
10
+ import '@toruslabs/http-helpers';
11
+ import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
12
+ import { BaseConnector } from '../../base/connector/baseConnector.js';
13
+ import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
14
+
15
+ class AuthConnector extends BaseConnector {
16
+ constructor(params) {
17
+ super(params);
18
+ _defineProperty(this, "name", WALLET_CONNECTORS.AUTH);
19
+ _defineProperty(this, "connectorNamespace", CONNECTOR_NAMESPACES.MULTICHAIN);
20
+ _defineProperty(this, "type", CONNECTOR_CATEGORY.IN_APP);
21
+ _defineProperty(this, "authInstance", null);
22
+ _defineProperty(this, "status", CONNECTOR_STATUS.NOT_READY);
23
+ _defineProperty(this, "privateKeyProvider", null);
24
+ _defineProperty(this, "authOptions", void 0);
25
+ _defineProperty(this, "loginSettings", {
26
+ loginProvider: ""
27
+ });
28
+ _defineProperty(this, "wsSettings", {});
29
+ _defineProperty(this, "wsEmbedInstance", null);
30
+ this.authOptions = params.connectorSettings;
31
+ this.loginSettings = params.loginSettings || {
32
+ loginProvider: ""
33
+ };
34
+ this.wsSettings = params.walletServicesSettings || {};
35
+ }
36
+ get provider() {
37
+ if (this.status !== CONNECTOR_STATUS.NOT_READY) {
38
+ var _this$wsEmbedInstance;
39
+ if ((_this$wsEmbedInstance = this.wsEmbedInstance) !== null && _this$wsEmbedInstance !== void 0 && _this$wsEmbedInstance.provider) {
40
+ return this.wsEmbedInstance.provider;
41
+ } else if (this.privateKeyProvider) return this.privateKeyProvider;
42
+ }
43
+ return null;
44
+ }
45
+ get wsEmbed() {
46
+ return this.wsEmbedInstance;
47
+ }
48
+ set provider(_) {
49
+ throw new Error("Not implemented");
50
+ }
51
+ async init(options) {
52
+ const chainConfig = this.coreOptions.chains.find(x => x.chainId === options.chainId);
53
+ super.checkInitializationRequirements({
54
+ chainConfig
55
+ });
56
+ if (!this.coreOptions.clientId) throw WalletInitializationError.invalidParams("clientId is required before auth's initialization");
57
+ if (!this.authOptions) throw WalletInitializationError.invalidParams("authOptions is required before auth's initialization");
58
+ const isRedirectResult = this.authOptions.uxMode === UX_MODE.REDIRECT;
59
+ this.authOptions = _objectSpread(_objectSpread({}, this.authOptions), {}, {
60
+ replaceUrlOnRedirect: isRedirectResult,
61
+ useCoreKitKey: this.coreOptions.useCoreKitKey
62
+ });
63
+ const web3AuthNetwork = this.coreOptions.web3AuthNetwork || WEB3AUTH_NETWORK.SAPPHIRE_MAINNET;
64
+ this.authInstance = new Auth(_objectSpread(_objectSpread({}, this.authOptions), {}, {
65
+ clientId: this.coreOptions.clientId,
66
+ network: web3AuthNetwork
67
+ }));
68
+ log.debug("initializing auth connector init");
69
+ await this.authInstance.init();
70
+
71
+ // Use this for xrpl, mpc cases
72
+ if (this.coreOptions.privateKeyProvider) {
73
+ this.privateKeyProvider = this.coreOptions.privateKeyProvider;
74
+ } else {
75
+ // initialize ws embed or private key provider based on chain namespace
76
+ switch (chainConfig.chainNamespace) {
77
+ case CHAIN_NAMESPACES.EIP155:
78
+ case CHAIN_NAMESPACES.SOLANA:
79
+ {
80
+ const {
81
+ default: WsEmbed
82
+ } = await import('@web3auth/ws-embed');
83
+ this.wsEmbedInstance = new WsEmbed({
84
+ web3AuthClientId: this.coreOptions.clientId,
85
+ web3AuthNetwork,
86
+ modalZIndex: this.wsSettings.modalZIndex
87
+ });
88
+ // TODO: once support multiple chains, only pass chains of solana and EVM
89
+ await this.wsEmbedInstance.init(_objectSpread(_objectSpread({}, this.wsSettings), {}, {
90
+ chainConfig: chainConfig,
91
+ // TODO: upgrade ws-embed to support custom chain config
92
+ whiteLabel: _objectSpread(_objectSpread({}, this.authOptions.whiteLabel), this.wsSettings.whiteLabel)
93
+ }));
94
+ break;
95
+ }
96
+ case CHAIN_NAMESPACES.XRPL:
97
+ throw WalletLoginError.connectionError("Private key provider is required for XRPL");
98
+ default:
99
+ {
100
+ const {
101
+ CommonPrivateKeyProvider
102
+ } = await import('../../providers/base-provider/index.js');
103
+ this.privateKeyProvider = new CommonPrivateKeyProvider({
104
+ config: {
105
+ chain: chainConfig,
106
+ chains: this.coreOptions.chains
107
+ }
108
+ });
109
+ }
110
+ }
111
+ }
112
+ this.status = CONNECTOR_STATUS.READY;
113
+ this.emit(CONNECTOR_EVENTS.READY, WALLET_CONNECTORS.AUTH);
114
+ try {
115
+ log.debug("initializing auth connector");
116
+ const {
117
+ sessionId
118
+ } = this.authInstance || {};
119
+ // connect only if it is redirect result or if connect (connector is cached/already connected in same session) is true
120
+ if (sessionId && (options.autoConnect || isRedirectResult)) {
121
+ this.rehydrated = true;
122
+ await this.connect({
123
+ chainId: options.chainId
124
+ });
125
+ }
126
+ } catch (error) {
127
+ log.error("Failed to connect with cached auth provider", error);
128
+ this.emit(CONNECTOR_EVENTS.ERRORED, error);
129
+ }
130
+ }
131
+ async connect(params) {
132
+ super.checkConnectionRequirements();
133
+ this.status = CONNECTOR_STATUS.CONNECTING;
134
+ this.emit(CONNECTOR_EVENTS.CONNECTING, _objectSpread(_objectSpread({}, params), {}, {
135
+ connector: WALLET_CONNECTORS.AUTH
136
+ }));
137
+ try {
138
+ await this.connectWithProvider(params);
139
+ return this.provider;
140
+ } catch (error) {
141
+ log.error("Failed to connect with auth provider", error);
142
+ // ready again to be connected
143
+ this.status = CONNECTOR_STATUS.READY;
144
+ this.emit(CONNECTOR_EVENTS.ERRORED, error);
145
+ if (error !== null && error !== void 0 && error.message.includes("user closed popup")) {
146
+ throw WalletLoginError.popupClosed();
147
+ } else if (error instanceof Web3AuthError) {
148
+ throw error;
149
+ }
150
+ throw WalletLoginError.connectionError("Failed to login with auth", error);
151
+ }
152
+ }
153
+ async enableMFA(params = {
154
+ loginProvider: ""
155
+ }) {
156
+ if (this.status !== CONNECTOR_STATUS.CONNECTED) throw WalletLoginError.notConnectedError("Not connected with wallet");
157
+ if (!this.authInstance) throw WalletInitializationError.notReady("authInstance is not ready");
158
+ try {
159
+ await this.authInstance.enableMFA(params);
160
+ } catch (error) {
161
+ log.error("Failed to enable MFA with auth provider", error);
162
+ if (error instanceof Web3AuthError) {
163
+ throw error;
164
+ }
165
+ throw WalletLoginError.connectionError("Failed to enable MFA with auth", error);
166
+ }
167
+ }
168
+ async manageMFA(params = {
169
+ loginProvider: ""
170
+ }) {
171
+ if (this.status !== CONNECTOR_STATUS.CONNECTED) throw WalletLoginError.notConnectedError("Not connected with wallet");
172
+ if (!this.authInstance) throw WalletInitializationError.notReady("authInstance is not ready");
173
+ try {
174
+ await this.authInstance.manageMFA(params);
175
+ } catch (error) {
176
+ log.error("Failed to manage MFA with auth provider", error);
177
+ if (error instanceof Web3AuthError) {
178
+ throw error;
179
+ }
180
+ throw WalletLoginError.connectionError("Failed to manage MFA with auth", error);
181
+ }
182
+ }
183
+ async disconnect(options = {
184
+ cleanup: false
185
+ }) {
186
+ if (this.status !== CONNECTOR_STATUS.CONNECTED) throw WalletLoginError.notConnectedError("Not connected with wallet");
187
+ if (!this.authInstance) throw WalletInitializationError.notReady("authInstance is not ready");
188
+ this.status = CONNECTOR_STATUS.DISCONNECTING;
189
+ await this.authInstance.logout();
190
+ if (this.wsEmbedInstance) await this.wsEmbedInstance.logout();
191
+ if (options.cleanup) {
192
+ this.status = CONNECTOR_STATUS.NOT_READY;
193
+ this.authInstance = null;
194
+ if (this.wsEmbedInstance) this.wsEmbedInstance = null;
195
+ if (this.privateKeyProvider) this.privateKeyProvider = null;
196
+ } else {
197
+ // ready to be connected again
198
+ this.status = CONNECTOR_STATUS.READY;
199
+ }
200
+ this.rehydrated = false;
201
+ this.emit(CONNECTOR_EVENTS.DISCONNECTED);
202
+ }
203
+ async authenticateUser() {
204
+ if (this.status !== CONNECTOR_STATUS.CONNECTED) throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
205
+ const userInfo = await this.getUserInfo();
206
+ return {
207
+ idToken: userInfo.idToken
208
+ };
209
+ }
210
+ async getUserInfo() {
211
+ if (this.status !== CONNECTOR_STATUS.CONNECTED) throw WalletLoginError.notConnectedError("Not connected with wallet");
212
+ if (!this.authInstance) throw WalletInitializationError.notReady("authInstance is not ready");
213
+ const userInfo = this.authInstance.getUserInfo();
214
+ return userInfo;
215
+ }
216
+
217
+ // we don't support switching between different namespaces, except for solana and evm
218
+ async switchChain(params, init = false) {
219
+ super.checkSwitchChainRequirements(params, init);
220
+ // get chains and namespaces
221
+ const {
222
+ chainId: newChainId
223
+ } = params;
224
+ const {
225
+ chainId: currentChainId
226
+ } = this.provider;
227
+ const {
228
+ chainNamespace: currentNamespace
229
+ } = this.getChain(currentChainId);
230
+ const {
231
+ chainNamespace: newNamespace
232
+ } = this.getChain(newChainId);
233
+
234
+ // skip if chainId is the same
235
+ if (currentChainId === newChainId) return;
236
+ if (currentNamespace === CHAIN_NAMESPACES.SOLANA || currentNamespace === CHAIN_NAMESPACES.EIP155) {
237
+ var _this$wsEmbedInstance2;
238
+ // can only switch to solana or evm
239
+ if (newNamespace !== CHAIN_NAMESPACES.SOLANA && newNamespace !== CHAIN_NAMESPACES.EIP155) throw WalletLoginError.connectionError("Cannot switch to other chain namespace");
240
+ const fullChainId = `${newNamespace}:${Number(params.chainId)}`;
241
+ await ((_this$wsEmbedInstance2 = this.wsEmbedInstance.provider) === null || _this$wsEmbedInstance2 === void 0 ? void 0 : _this$wsEmbedInstance2.request({
242
+ method: "wallet_switchChain",
243
+ params: {
244
+ chainId: fullChainId
245
+ }
246
+ }));
247
+ } else {
248
+ var _this$privateKeyProvi;
249
+ // cannot switch to other namespaces
250
+ if (currentNamespace !== newNamespace) throw WalletLoginError.connectionError("Cannot switch to other chain namespace");
251
+ await ((_this$privateKeyProvi = this.privateKeyProvider) === null || _this$privateKeyProvi === void 0 ? void 0 : _this$privateKeyProvi.switchChain(params));
252
+ }
253
+ }
254
+ getChain(chainId) {
255
+ return this.coreOptions.chains.find(x => x.chainId === chainId);
256
+ }
257
+ _getFinalPrivKey() {
258
+ if (!this.authInstance) return "";
259
+ let finalPrivKey = this.authInstance.privKey;
260
+ // coreKitKey is available only for custom verifiers by default
261
+ if (this.coreOptions.useCoreKitKey) {
262
+ // this is to check if the user has already logged in but coreKitKey is not available.
263
+ // when useCoreKitKey is set to true.
264
+ // This is to ensure that when there is no user session active, we don't throw an exception.
265
+ if (this.authInstance.privKey && !this.authInstance.coreKitKey) {
266
+ throw WalletLoginError.coreKitKeyNotFound();
267
+ }
268
+ finalPrivKey = this.authInstance.coreKitKey;
269
+ }
270
+ return finalPrivKey;
271
+ }
272
+ async connectWithProvider(params) {
273
+ var _this$authInstance, _params$extraLoginOpt;
274
+ if (!this.authInstance) throw WalletInitializationError.notReady("authInstance is not ready");
275
+ const chainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
276
+ if (!chainConfig) throw WalletLoginError.connectionError("Chain config is not available");
277
+ const {
278
+ chainNamespace
279
+ } = chainConfig;
280
+
281
+ // if not logged in then login
282
+ const keyAvailable = chainNamespace === CHAIN_NAMESPACES.EIP155 || chainNamespace === CHAIN_NAMESPACES.SOLANA ? (_this$authInstance = this.authInstance) === null || _this$authInstance === void 0 ? void 0 : _this$authInstance.sessionId : this._getFinalPrivKey();
283
+ if (!keyAvailable || (_params$extraLoginOpt = params.extraLoginOptions) !== null && _params$extraLoginOpt !== void 0 && _params$extraLoginOpt.id_token) {
284
+ var _params$extraLoginOpt2;
285
+ // always use "other" curve to return token with all keys encoded so wallet service can switch between evm and solana namespace
286
+ this.loginSettings.curve = SUPPORTED_KEY_CURVES.OTHER;
287
+ if (!params.loginProvider && !this.loginSettings.loginProvider) throw WalletInitializationError.invalidParams("loginProvider is required for login");
288
+ await this.authInstance.login(deepmerge.all([this.loginSettings, params, {
289
+ extraLoginOptions: _objectSpread(_objectSpread({}, params.extraLoginOptions || {}), {}, {
290
+ login_hint: params.login_hint || ((_params$extraLoginOpt2 = params.extraLoginOptions) === null || _params$extraLoginOpt2 === void 0 ? void 0 : _params$extraLoginOpt2.login_hint)
291
+ })
292
+ }]));
293
+ }
294
+
295
+ // setup WS embed if chainNamespace is EIP155 or SOLANA
296
+ if (chainNamespace === CHAIN_NAMESPACES.EIP155 || chainNamespace === CHAIN_NAMESPACES.SOLANA) {
297
+ const {
298
+ sessionId,
299
+ sessionNamespace
300
+ } = this.authInstance || {};
301
+ if (sessionId) {
302
+ const isLoggedIn = await this.wsEmbedInstance.loginWithSessionId({
303
+ sessionId,
304
+ sessionNamespace
305
+ });
306
+ if (isLoggedIn) {
307
+ var _this$wsEmbedInstance3;
308
+ this.status = CONNECTOR_STATUS.CONNECTED;
309
+ this.emit(CONNECTOR_EVENTS.CONNECTED, {
310
+ connector: WALLET_CONNECTORS.AUTH,
311
+ reconnected: this.rehydrated,
312
+ provider: this.provider
313
+ });
314
+ // handle disconnect from ws embed
315
+ (_this$wsEmbedInstance3 = this.wsEmbedInstance) === null || _this$wsEmbedInstance3 === void 0 || _this$wsEmbedInstance3.provider.on("accountsChanged", (accounts = []) => {
316
+ if (accounts.length === 0 && this.status === CONNECTOR_STATUS.CONNECTED) this.disconnect({
317
+ cleanup: false
318
+ });
319
+ });
320
+ }
321
+ }
322
+ } else {
323
+ // setup private key provider if chainNamespace is other
324
+ const finalPrivKey = this._getFinalPrivKey();
325
+ if (finalPrivKey) {
326
+ await this.privateKeyProvider.setupProvider(finalPrivKey, params.chainId);
327
+ this.status = CONNECTOR_STATUS.CONNECTED;
328
+ this.emit(CONNECTOR_EVENTS.CONNECTED, {
329
+ connector: WALLET_CONNECTORS.AUTH,
330
+ reconnected: this.rehydrated,
331
+ provider: this.provider
332
+ });
333
+ }
334
+ }
335
+ }
336
+ }
337
+ const authConnector = params => {
338
+ return ({
339
+ projectConfig,
340
+ coreOptions
341
+ }) => {
342
+ var _coreOptions$uiConfig, _coreOptions$walletSe;
343
+ // Connector settings
344
+ const connectorSettings = {};
345
+ const {
346
+ sms_otp_enabled: smsOtpEnabled,
347
+ whitelist
348
+ } = projectConfig;
349
+ if (smsOtpEnabled !== undefined) {
350
+ connectorSettings.loginConfig = {
351
+ [LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
352
+ showOnModal: smsOtpEnabled,
353
+ showOnDesktop: smsOtpEnabled,
354
+ showOnMobile: smsOtpEnabled,
355
+ showOnSocialBackupFactor: smsOtpEnabled
356
+ }
357
+ };
358
+ }
359
+ if (whitelist) connectorSettings.originData = whitelist.signed_urls;
360
+ if ((_coreOptions$uiConfig = coreOptions.uiConfig) !== null && _coreOptions$uiConfig !== void 0 && _coreOptions$uiConfig.uxMode) connectorSettings.uxMode = coreOptions.uiConfig.uxMode;
361
+ const uiConfig = deepmerge(cloneDeep((projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.whitelabel) || {}), coreOptions.uiConfig || {});
362
+ if (!uiConfig.mode) uiConfig.mode = "light";
363
+ connectorSettings.whiteLabel = uiConfig;
364
+ const finalConnectorSettings = deepmerge.all([{
365
+ uxMode: UX_MODE.POPUP
366
+ },
367
+ // default settings
368
+ (params === null || params === void 0 ? void 0 : params.connectorSettings) || {}, connectorSettings]);
369
+
370
+ // WS settings
371
+ const isKeyExportEnabled = typeof projectConfig.key_export_enabled === "boolean" ? projectConfig.key_export_enabled : true;
372
+ const finalWsSettings = _objectSpread(_objectSpread({}, coreOptions.walletServicesConfig), {}, {
373
+ whiteLabel: _objectSpread(_objectSpread({}, uiConfig), (_coreOptions$walletSe = coreOptions.walletServicesConfig) === null || _coreOptions$walletSe === void 0 ? void 0 : _coreOptions$walletSe.whiteLabel),
374
+ accountAbstractionConfig: coreOptions.accountAbstractionConfig,
375
+ enableLogging: coreOptions.enableLogging
376
+ // enableKeyExport: keyExportEnabled, TODO: add this to ws embed and implement in WS
377
+ });
378
+
379
+ // Core options
380
+ if (coreOptions.privateKeyProvider) coreOptions.privateKeyProvider.setKeyExportFlag(isKeyExportEnabled);
381
+ return new AuthConnector({
382
+ connectorSettings: finalConnectorSettings,
383
+ walletServicesSettings: finalWsSettings,
384
+ loginSettings: params === null || params === void 0 ? void 0 : params.loginSettings,
385
+ coreOptions
386
+ });
387
+ };
388
+ };
389
+
390
+ export { authConnector };
@@ -1,23 +1,18 @@
1
1
  import { signChallenge, verifySignedChallenge } from '@toruslabs/base-controllers';
2
- import { getChainConfig } from '../../base/chain/config.js';
3
- import { CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
4
- import { WalletLoginError } from '../../base/errors/index.js';
5
- import { getSavedToken, checkIfTokenIsExpired, saveToken, clearToken } from '../../base/adapter/utils.js';
6
- import { BaseAdapter } from '../../base/adapter/baseAdapter.js';
7
- import { ADAPTER_STATUS, ADAPTER_EVENTS } from '../../base/adapter/constants.js';
2
+ import { EVM_METHOD_TYPES } from '@web3auth/ws-embed';
3
+ import { WalletLoginError, WalletInitializationError } from '../../base/errors/index.js';
4
+ import { getSavedToken, checkIfTokenIsExpired, saveToken, clearToken } from '../../base/connector/utils.js';
5
+ import { BaseConnector } from '../../base/connector/baseConnector.js';
6
+ import { CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
8
7
 
9
- class BaseEvmAdapter extends BaseAdapter {
10
- async init(_) {
11
- if (!this.chainConfig) this.chainConfig = getChainConfig(CHAIN_NAMESPACES.EIP155, 1);
12
- }
8
+ class BaseEvmConnector extends BaseConnector {
9
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
10
+ async init(_) {}
13
11
  async authenticateUser() {
14
- if (!this.provider || this.status !== ADAPTER_STATUS.CONNECTED) throw WalletLoginError.notConnectedError();
15
- const {
16
- chainNamespace,
17
- chainId
18
- } = this.chainConfig;
12
+ if (!this.provider || this.status !== CONNECTOR_STATUS.CONNECTED) throw WalletLoginError.notConnectedError();
13
+ if (!this.coreOptions) throw WalletInitializationError.invalidParams("Please initialize Web3Auth with valid options");
19
14
  const accounts = await this.provider.request({
20
- method: "eth_accounts"
15
+ method: EVM_METHOD_TYPES.GET_ACCOUNTS
21
16
  });
22
17
  if (accounts && accounts.length > 0) {
23
18
  const existingToken = getSavedToken(accounts[0], this.name);
@@ -29,6 +24,14 @@ class BaseEvmAdapter extends BaseAdapter {
29
24
  };
30
25
  }
31
26
  }
27
+ const chainId = await this.provider.request({
28
+ method: "eth_chainId"
29
+ });
30
+ const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
31
+ if (!currentChainConfig) throw WalletInitializationError.invalidParams("chainConfig is required before authentication");
32
+ const {
33
+ chainNamespace
34
+ } = currentChainConfig;
32
35
  const payload = {
33
36
  domain: window.location.origin,
34
37
  uri: window.location.href,
@@ -41,10 +44,10 @@ class BaseEvmAdapter extends BaseAdapter {
41
44
  const challenge = await signChallenge(payload, chainNamespace);
42
45
  const hexChallenge = `0x${Buffer.from(challenge, "utf8").toString("hex")}`;
43
46
  const signedMessage = await this.provider.request({
44
- method: "personal_sign",
47
+ method: EVM_METHOD_TYPES.PERSONAL_SIGN,
45
48
  params: [hexChallenge, accounts[0]]
46
49
  });
47
- const idToken = await verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.sessionTime, this.clientId, this.web3AuthNetwork);
50
+ const idToken = await verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
48
51
  saveToken(accounts[0], this.name, idToken);
49
52
  return {
50
53
  idToken
@@ -63,8 +66,8 @@ class BaseEvmAdapter extends BaseAdapter {
63
66
  }
64
67
  async disconnect() {
65
68
  this.rehydrated = false;
66
- this.emit(ADAPTER_EVENTS.DISCONNECTED);
69
+ this.emit(CONNECTOR_EVENTS.DISCONNECTED);
67
70
  }
68
71
  }
69
72
 
70
- export { BaseEvmAdapter };
73
+ export { BaseEvmConnector };
@@ -1,24 +1,18 @@
1
1
  import { signChallenge, verifySignedChallenge } from '@toruslabs/base-controllers';
2
- import bs58 from 'bs58';
3
- import { getChainConfig } from '../../base/chain/config.js';
4
- import { CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
5
- import { WalletLoginError } from '../../base/errors/index.js';
6
- import { BaseAdapter } from '../../base/adapter/baseAdapter.js';
7
- import { ADAPTER_STATUS, ADAPTER_EVENTS } from '../../base/adapter/constants.js';
8
- import { getSavedToken, checkIfTokenIsExpired, saveToken, clearToken } from '../../base/adapter/utils.js';
2
+ import { SOLANA_METHOD_TYPES } from '@web3auth/ws-embed';
3
+ import { WalletLoginError, WalletInitializationError } from '../../base/errors/index.js';
4
+ import { BaseConnector } from '../../base/connector/baseConnector.js';
5
+ import { CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
6
+ import { getSavedToken, checkIfTokenIsExpired, saveToken, clearToken } from '../../base/connector/utils.js';
9
7
 
10
- class BaseSolanaAdapter extends BaseAdapter {
11
- async init(_) {
12
- if (!this.chainConfig) this.chainConfig = getChainConfig(CHAIN_NAMESPACES.SOLANA, 1);
13
- }
8
+ class BaseSolanaConnector extends BaseConnector {
9
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
10
+ async init(_) {}
14
11
  async authenticateUser() {
15
- if (!this.provider || this.status !== ADAPTER_STATUS.CONNECTED) throw WalletLoginError.notConnectedError();
16
- const {
17
- chainNamespace,
18
- chainId
19
- } = this.chainConfig;
12
+ if (!this.provider || this.status !== CONNECTOR_STATUS.CONNECTED) throw WalletLoginError.notConnectedError();
13
+ if (!this.coreOptions) throw WalletInitializationError.invalidParams("Please initialize Web3Auth with a valid options");
20
14
  const accounts = await this.provider.request({
21
- method: "getAccounts"
15
+ method: SOLANA_METHOD_TYPES.GET_ACCOUNTS
22
16
  });
23
17
  if (accounts && accounts.length > 0) {
24
18
  const existingToken = getSavedToken(accounts[0], this.name);
@@ -30,6 +24,14 @@ class BaseSolanaAdapter extends BaseAdapter {
30
24
  };
31
25
  }
32
26
  }
27
+ const chainId = await this.provider.request({
28
+ method: "solana_chainId"
29
+ });
30
+ const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
31
+ if (!currentChainConfig) throw WalletInitializationError.invalidParams("chainConfig is required before authentication");
32
+ const {
33
+ chainNamespace
34
+ } = currentChainConfig;
33
35
  const payload = {
34
36
  domain: window.location.origin,
35
37
  uri: window.location.href,
@@ -40,15 +42,14 @@ class BaseSolanaAdapter extends BaseAdapter {
40
42
  issuedAt: new Date().toISOString()
41
43
  };
42
44
  const challenge = await signChallenge(payload, chainNamespace);
43
- const encodedMessage = new TextEncoder().encode(challenge);
44
45
  const signedMessage = await this.provider.request({
45
- method: "signMessage",
46
+ method: SOLANA_METHOD_TYPES.SIGN_MESSAGE,
46
47
  params: {
47
- message: encodedMessage,
48
+ data: challenge,
48
49
  display: "utf8"
49
50
  }
50
51
  });
51
- const idToken = await verifySignedChallenge(chainNamespace, bs58.encode(signedMessage), challenge, this.name, this.sessionTime, this.clientId, this.web3AuthNetwork);
52
+ const idToken = await verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
52
53
  saveToken(accounts[0], this.name, idToken);
53
54
  return {
54
55
  idToken
@@ -59,7 +60,7 @@ class BaseSolanaAdapter extends BaseAdapter {
59
60
  async disconnectSession() {
60
61
  super.checkDisconnectionRequirements();
61
62
  const accounts = await this.provider.request({
62
- method: "getAccounts"
63
+ method: SOLANA_METHOD_TYPES.GET_ACCOUNTS
63
64
  });
64
65
  if (accounts && accounts.length > 0) {
65
66
  clearToken(accounts[0], this.name);
@@ -67,8 +68,8 @@ class BaseSolanaAdapter extends BaseAdapter {
67
68
  }
68
69
  async disconnect() {
69
70
  this.rehydrated = false;
70
- this.emit(ADAPTER_EVENTS.DISCONNECTED);
71
+ this.emit(CONNECTOR_EVENTS.DISCONNECTED);
71
72
  }
72
73
  }
73
74
 
74
- export { BaseSolanaAdapter };
75
+ export { BaseSolanaConnector };