@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
@@ -3,14 +3,14 @@ import { SafeEventEmitter } from '@web3auth/auth';
3
3
  import { NFTCheckoutEmbed } from './embed.js';
4
4
  import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
5
5
  import { NFTCheckoutPluginError } from '../../base/plugin/errors.js';
6
- import { ADAPTER_STATUS } from '../../base/adapter/constants.js';
6
+ import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
7
7
 
8
8
  class NFTCheckoutPlugin extends SafeEventEmitter {
9
9
  constructor(params) {
10
10
  super();
11
11
  _defineProperty(this, "name", EVM_PLUGINS.NFT_CHECKOUT);
12
12
  _defineProperty(this, "status", PLUGIN_STATUS.DISCONNECTED);
13
- _defineProperty(this, "SUPPORTED_ADAPTERS", ["all"]);
13
+ _defineProperty(this, "SUPPORTED_CONNECTORS", ["all"]);
14
14
  _defineProperty(this, "pluginNamespace", PLUGIN_NAMESPACES.EIP155);
15
15
  _defineProperty(this, "web3auth", null);
16
16
  _defineProperty(this, "nftCheckoutEmbedInstance", null);
@@ -33,7 +33,7 @@ class NFTCheckoutPlugin extends SafeEventEmitter {
33
33
  if (!this.isInitialized) throw NFTCheckoutPluginError.notInitialized();
34
34
  this.emit(PLUGIN_EVENTS.CONNECTING);
35
35
  this.status = PLUGIN_STATUS.CONNECTING;
36
- if (this.web3auth.status !== ADAPTER_STATUS.CONNECTED) throw NFTCheckoutPluginError.web3AuthNotConnected();
36
+ if (this.web3auth.status !== CONNECTOR_STATUS.CONNECTED) throw NFTCheckoutPluginError.web3AuthNotConnected();
37
37
  if (!this.web3auth.provider) throw NFTCheckoutPluginError.providerRequired();
38
38
  const accounts = await this.web3auth.provider.request({
39
39
  method: "eth_accounts"
@@ -65,5 +65,10 @@ class NFTCheckoutPlugin extends SafeEventEmitter {
65
65
  return Promise.resolve();
66
66
  }
67
67
  }
68
+ const nftCheckoutPlugin = params => {
69
+ return () => {
70
+ return new NFTCheckoutPlugin(params);
71
+ };
72
+ };
68
73
 
69
- export { NFTCheckoutPlugin };
74
+ export { nftCheckoutPlugin };
@@ -1,93 +1,47 @@
1
- import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
2
  import { SafeEventEmitter } from '@web3auth/auth';
4
- import WsEmbed from '@web3auth/ws-embed';
5
- export { BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@web3auth/ws-embed';
6
3
  import { CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
7
4
  import { log } from '../../base/loglevel.js';
8
- import { WALLET_ADAPTERS } from '../../base/wallet/index.js';
5
+ import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
6
+ export { BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@web3auth/ws-embed';
9
7
  import { WalletServicesPluginError } from '../../base/plugin/errors.js';
10
8
  import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
11
- import { ADAPTER_STATUS, ADAPTER_EVENTS } from '../../base/adapter/constants.js';
9
+ import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
12
10
 
11
+ // TODO: support project config items here. incl. key export flag, multiple chains
13
12
  class WalletServicesPlugin extends SafeEventEmitter {
14
- constructor(options = {}) {
15
- super();
13
+ constructor(...args) {
14
+ super(...args);
16
15
  _defineProperty(this, "name", EVM_PLUGINS.WALLET_SERVICES);
17
16
  _defineProperty(this, "status", PLUGIN_STATUS.DISCONNECTED);
18
- _defineProperty(this, "SUPPORTED_ADAPTERS", [WALLET_ADAPTERS.AUTH, WALLET_ADAPTERS.SFA]);
17
+ _defineProperty(this, "SUPPORTED_CONNECTORS", [WALLET_CONNECTORS.AUTH, WALLET_CONNECTORS.SFA]);
19
18
  _defineProperty(this, "pluginNamespace", PLUGIN_NAMESPACES.MULTICHAIN);
20
19
  _defineProperty(this, "wsEmbedInstance", void 0);
21
20
  _defineProperty(this, "provider", null);
22
21
  _defineProperty(this, "web3auth", null);
23
22
  _defineProperty(this, "isInitialized", false);
24
- _defineProperty(this, "walletInitOptions", null);
25
- const {
26
- wsEmbedOpts,
27
- walletInitOptions
28
- } = options;
29
- // we fake these checks here and get them from web3auth instance
30
- this.wsEmbedInstance = new WsEmbed(wsEmbedOpts || {});
31
- this.walletInitOptions = walletInitOptions || {};
32
23
  }
33
24
  get proxyProvider() {
34
- return this.wsEmbedInstance.provider ? this.wsEmbedInstance.provider : null;
25
+ var _this$wsEmbedInstance;
26
+ return (_this$wsEmbedInstance = this.wsEmbedInstance) !== null && _this$wsEmbedInstance !== void 0 && _this$wsEmbedInstance.provider ? this.wsEmbedInstance.provider : null;
35
27
  }
36
- async initWithWeb3Auth(web3auth, whiteLabel) {
37
- var _this$walletInitOptio, _this$web3auth$coreOp;
28
+ async initWithWeb3Auth(web3auth, _whiteLabel) {
38
29
  if (this.isInitialized) return;
39
30
  if (!web3auth) throw WalletServicesPluginError.web3authRequired();
40
- if (web3auth.provider && !this.SUPPORTED_ADAPTERS.includes(web3auth.connectedAdapterName)) throw WalletServicesPluginError.notInitialized();
41
- if (![CHAIN_NAMESPACES.EIP155, CHAIN_NAMESPACES.SOLANA].includes(web3auth.coreOptions.chainConfig.chainNamespace)) throw WalletServicesPluginError.unsupportedChainNamespace();
31
+ if (web3auth.provider && !this.SUPPORTED_CONNECTORS.includes(web3auth.connectedConnectorName)) throw WalletServicesPluginError.notInitialized();
32
+ const currentChainConfig = web3auth.currentChain;
33
+ if (![CHAIN_NAMESPACES.EIP155, CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig.chainNamespace)) throw WalletServicesPluginError.unsupportedChainNamespace();
34
+
42
35
  // Not connected yet to auth
43
36
  if (web3auth.provider) {
44
37
  this.provider = web3auth.provider;
45
38
  }
46
39
  this.web3auth = web3auth;
47
- const mergedWhitelabelSettings = _objectSpread(_objectSpread({}, whiteLabel), this.walletInitOptions.whiteLabel || {});
48
- const {
49
- logoDark,
50
- logoLight
51
- } = mergedWhitelabelSettings || {};
52
- if (!logoDark || !logoLight) throw WalletServicesPluginError.invalidParams("logoDark and logoLight are required in whiteLabel config");
53
- this.wsEmbedInstance.web3AuthClientId = this.web3auth.coreOptions.clientId;
54
- this.wsEmbedInstance.web3AuthNetwork = this.web3auth.coreOptions.web3AuthNetwork;
55
- this.subscribeToWeb3AuthEvents(web3auth);
56
- const connectedChainConfig = web3auth.coreOptions.chainConfig;
57
- if (!connectedChainConfig.blockExplorerUrl) throw WalletServicesPluginError.invalidParams("blockExplorerUrl is required in chainConfig");
58
- if (!connectedChainConfig.displayName) throw WalletServicesPluginError.invalidParams("displayName is required in chainConfig");
59
- if (!connectedChainConfig.logo) throw WalletServicesPluginError.invalidParams("logo is required in chainConfig");
60
- if (!connectedChainConfig.ticker) throw WalletServicesPluginError.invalidParams("ticker is required in chainConfig");
61
- if (!connectedChainConfig.tickerName) throw WalletServicesPluginError.invalidParams("tickerName is required in chainConfig");
62
- const hasAaProvider = web3auth.coreOptions.accountAbstractionProvider && (web3auth.connectedAdapterName === WALLET_ADAPTERS.AUTH || web3auth.connectedAdapterName !== WALLET_ADAPTERS.AUTH && web3auth.coreOptions.useAAWithExternalWallet);
63
- let accountAbstractionConfig;
64
- if (hasAaProvider) {
65
- var _web3auth$coreOptions, _web3auth$coreOptions2, _web3auth$coreOptions3, _web3auth$coreOptions4, _web3auth$coreOptions5;
66
- const smartAccountAddress = (_web3auth$coreOptions = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions === void 0 ? void 0 : _web3auth$coreOptions.smartAccount.address;
67
- const smartAccountType = (_web3auth$coreOptions2 = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions2 === void 0 ? void 0 : _web3auth$coreOptions2.config.smartAccountInit.name;
68
- const paymasterConfig = (_web3auth$coreOptions3 = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions3 === void 0 || (_web3auth$coreOptions3 = _web3auth$coreOptions3.config) === null || _web3auth$coreOptions3 === void 0 ? void 0 : _web3auth$coreOptions3.paymasterConfig;
69
- const bundlerConfig = (_web3auth$coreOptions4 = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions4 === void 0 || (_web3auth$coreOptions4 = _web3auth$coreOptions4.config) === null || _web3auth$coreOptions4 === void 0 ? void 0 : _web3auth$coreOptions4.bundlerConfig;
70
- const smartAccountConfig = (_web3auth$coreOptions5 = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions5 === void 0 ? void 0 : _web3auth$coreOptions5.config.smartAccountInit.options;
71
40
 
72
- // TODO: fix this type casting when we start using accountAbstractionController
73
- accountAbstractionConfig = {
74
- smartAccountAddress: smartAccountAddress || undefined,
75
- smartAccountType: smartAccountType || undefined,
76
- paymasterConfig: paymasterConfig || undefined,
77
- bundlerConfig: bundlerConfig || undefined,
78
- smartAccountConfig: smartAccountConfig || undefined
79
- };
80
- } else if ((_this$walletInitOptio = this.walletInitOptions) !== null && _this$walletInitOptio !== void 0 && _this$walletInitOptio.accountAbstractionConfig && Object.keys(this.walletInitOptions.accountAbstractionConfig).length > 0) {
81
- // if wallet services plugin is initialized with accountAbstractionConfig we enable wallet service AA without AA provider
82
- accountAbstractionConfig = this.walletInitOptions.accountAbstractionConfig;
83
- }
84
- const finalInitOptions = _objectSpread(_objectSpread({}, this.walletInitOptions), {}, {
85
- chainConfig: connectedChainConfig,
86
- enableLogging: (_this$web3auth$coreOp = this.web3auth.coreOptions) === null || _this$web3auth$coreOp === void 0 ? void 0 : _this$web3auth$coreOp.enableLogging,
87
- whiteLabel: mergedWhitelabelSettings,
88
- accountAbstractionConfig
89
- });
90
- await this.wsEmbedInstance.init(finalInitOptions);
41
+ // Auth connector uses WS embed
42
+ const authInstance = web3auth.getConnector(WALLET_CONNECTORS.AUTH);
43
+ if (!authInstance || !authInstance.wsEmbed) throw WalletServicesPluginError.web3AuthNotConnected();
44
+ this.wsEmbedInstance = authInstance.wsEmbed;
91
45
  this.isInitialized = true;
92
46
  this.status = PLUGIN_STATUS.READY;
93
47
  this.emit(PLUGIN_EVENTS.READY);
@@ -95,11 +49,8 @@ class WalletServicesPlugin extends SafeEventEmitter {
95
49
  initWithProvider() {
96
50
  throw new Error("Method not implemented.");
97
51
  }
98
- async connect({
99
- sessionId,
100
- sessionNamespace
101
- }) {
102
- // if web3auth is being used and connected to unsupported adapter throw error
52
+ async connect() {
53
+ // if web3auth is being used and connected to unsupported connector throw error
103
54
  if (!this.isInitialized) throw WalletServicesPluginError.notInitialized();
104
55
  this.emit(PLUGIN_EVENTS.CONNECTING);
105
56
  this.status = PLUGIN_STATUS.CONNECTING;
@@ -109,21 +60,12 @@ class WalletServicesPlugin extends SafeEventEmitter {
109
60
  this.provider = this.web3auth.provider;
110
61
  }
111
62
  }
112
- if (this.web3auth.status !== ADAPTER_STATUS.CONNECTED) {
63
+ if (this.web3auth.status !== CONNECTOR_STATUS.CONNECTED) {
113
64
  throw WalletServicesPluginError.web3AuthNotConnected();
114
65
  } else if (!this.web3auth.provider) {
115
66
  throw WalletServicesPluginError.providerRequired();
116
67
  }
117
- if (!sessionId) {
118
- throw WalletServicesPluginError.web3AuthNotConnected();
119
- }
120
68
  try {
121
- await this.wsEmbedInstance.loginWithSessionId({
122
- sessionId,
123
- sessionNamespace
124
- });
125
- this.subscribeToProviderEvents(this.provider);
126
- this.subscribeToWalletEvents();
127
69
  this.emit(PLUGIN_EVENTS.CONNECTED);
128
70
  this.status = PLUGIN_STATUS.CONNECTED;
129
71
  } catch (error) {
@@ -135,142 +77,43 @@ class WalletServicesPlugin extends SafeEventEmitter {
135
77
  }
136
78
  }
137
79
  async showWalletConnectScanner(showWalletConnectParams) {
138
- if (!this.wsEmbedInstance.isLoggedIn) throw WalletServicesPluginError.walletPluginNotConnected();
80
+ var _this$wsEmbedInstance2;
81
+ if (!((_this$wsEmbedInstance2 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance2 !== void 0 && _this$wsEmbedInstance2.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
139
82
  return this.wsEmbedInstance.showWalletConnectScanner(showWalletConnectParams);
140
83
  }
141
84
  async showCheckout(showCheckoutParams) {
142
- if (!this.wsEmbedInstance.isLoggedIn) throw WalletServicesPluginError.walletPluginNotConnected();
85
+ var _this$wsEmbedInstance3;
86
+ if (!((_this$wsEmbedInstance3 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance3 !== void 0 && _this$wsEmbedInstance3.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
143
87
  return this.wsEmbedInstance.showCheckout(showCheckoutParams);
144
88
  }
145
89
  async showWalletUi(showWalletUiParams) {
146
- if (!this.wsEmbedInstance.isLoggedIn) throw WalletServicesPluginError.walletPluginNotConnected();
90
+ var _this$wsEmbedInstance4;
91
+ if (!((_this$wsEmbedInstance4 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance4 !== void 0 && _this$wsEmbedInstance4.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
147
92
  return this.wsEmbedInstance.showWalletUi(showWalletUiParams);
148
93
  }
149
94
  async showSwap(showSwapParams) {
150
- if (!this.wsEmbedInstance.isLoggedIn) throw WalletServicesPluginError.walletPluginNotConnected();
95
+ var _this$wsEmbedInstance5;
96
+ if (!((_this$wsEmbedInstance5 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance5 !== void 0 && _this$wsEmbedInstance5.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
151
97
  return this.wsEmbedInstance.showSwap(showSwapParams);
152
98
  }
153
99
  async cleanup() {
154
- return this.wsEmbedInstance.cleanUp();
100
+ var _this$wsEmbedInstance6;
101
+ return (_this$wsEmbedInstance6 = this.wsEmbedInstance) === null || _this$wsEmbedInstance6 === void 0 ? void 0 : _this$wsEmbedInstance6.cleanUp();
155
102
  }
156
103
  async disconnect() {
157
- // if web3auth is being used and connected to unsupported adapter throw error
158
- if (this.wsEmbedInstance.isLoggedIn) {
104
+ var _this$wsEmbedInstance7;
105
+ if (this.status !== PLUGIN_STATUS.CONNECTED) throw WalletServicesPluginError.invalidSession("Wallet Services plugin is not connected");
106
+ if ((_this$wsEmbedInstance7 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance7 !== void 0 && _this$wsEmbedInstance7.isLoggedIn) {
159
107
  await this.wsEmbedInstance.logout();
160
- this.emit(PLUGIN_EVENTS.DISCONNECTED);
161
- this.status = PLUGIN_STATUS.DISCONNECTED;
162
- } else {
163
- throw WalletServicesPluginError.invalidSession("Wallet Services plugin is not connected");
164
- }
165
- }
166
- subscribeToWalletEvents() {
167
- var _this$wsEmbedInstance;
168
- (_this$wsEmbedInstance = this.wsEmbedInstance) === null || _this$wsEmbedInstance === void 0 || _this$wsEmbedInstance.provider.on("accountsChanged", (accounts = []) => {
169
- if (accounts.length === 0) {
170
- var _this$web3auth2, _this$web3auth3;
171
- if (((_this$web3auth2 = this.web3auth) === null || _this$web3auth2 === void 0 ? void 0 : _this$web3auth2.status) === ADAPTER_STATUS.CONNECTED) (_this$web3auth3 = this.web3auth) === null || _this$web3auth3 === void 0 || _this$web3auth3.logout();
172
- }
173
- });
174
- }
175
- subscribeToProviderEvents(provider) {
176
- provider.on("accountsChanged", (accounts = []) => {
177
- this.setSelectedAddress(accounts[0]);
178
- });
179
- provider.on("chainChanged", chainId => {
180
- this.setChainID(parseInt(chainId, 16));
181
- });
182
- }
183
- subscribeToWeb3AuthEvents(web3Auth) {
184
- web3Auth.on(ADAPTER_EVENTS.CONNECTED, data => {
185
- this.provider = data.provider || web3Auth.provider;
186
- if (!this.provider) throw WalletServicesPluginError.web3AuthNotConnected();
187
- this.subscribeToProviderEvents(this.provider);
188
- });
189
- web3Auth.on(ADAPTER_EVENTS.DISCONNECTED, async () => {
190
- this.provider = null;
191
- if (this.wsEmbedInstance.isLoggedIn) {
192
- await this.wsEmbedInstance.logout();
193
- }
194
- });
195
- }
196
- async sessionConfig() {
197
- if (!this.provider) throw WalletServicesPluginError.web3AuthNotConnected();
198
- const [accounts, chainId, chainConfig] = await Promise.all([this.provider.request({
199
- method: "eth_accounts"
200
- }), this.provider.request({
201
- method: "eth_chainId"
202
- }), this.provider.request({
203
- method: "eth_provider_config"
204
- })]);
205
- return {
206
- chainId: parseInt(chainId, 16),
207
- accounts: accounts,
208
- chainConfig: chainConfig
209
- };
210
- }
211
- async walletServicesSessionConfig() {
212
- if (!this.wsEmbedInstance.provider) throw WalletServicesPluginError.web3AuthNotConnected();
213
- const [accounts, chainId] = await Promise.all([this.wsEmbedInstance.provider.request({
214
- method: "eth_accounts"
215
- }), this.wsEmbedInstance.provider.request({
216
- method: "eth_chainId"
217
- })]);
218
- return {
219
- chainId: parseInt(chainId, 16),
220
- accounts: accounts
221
- };
222
- }
223
- async setSelectedAddress(address) {
224
- var _walletServicesSessio;
225
- if (this.web3auth.status !== ADAPTER_STATUS.CONNECTED) throw WalletServicesPluginError.web3AuthNotConnected();
226
- const walletServicesSessionConfig = await this.walletServicesSessionConfig();
227
- if (address !== ((_walletServicesSessio = walletServicesSessionConfig.accounts) === null || _walletServicesSessio === void 0 ? void 0 : _walletServicesSessio[0])) {
228
- throw WalletServicesPluginError.invalidSession();
229
- }
230
- }
231
- async setChainID(chainId) {
232
- const [sessionConfig, walletServicesSessionConfig] = await Promise.all([this.sessionConfig(), this.walletServicesSessionConfig()]);
233
- const {
234
- chainConfig
235
- } = sessionConfig || {};
236
- if (!chainConfig.blockExplorerUrl) throw WalletServicesPluginError.invalidParams("blockExplorerUrl is required in chainConfig");
237
- if (!chainConfig.displayName) throw WalletServicesPluginError.invalidParams("displayName is required in chainConfig");
238
- if (!chainConfig.logo) throw WalletServicesPluginError.invalidParams("logo is required in chainConfig");
239
- if (!chainConfig.ticker) throw WalletServicesPluginError.invalidParams("ticker is required in chainConfig");
240
- if (!chainConfig.tickerName) throw WalletServicesPluginError.invalidParams("tickerName is required in chainConfig");
241
- if (chainId !== walletServicesSessionConfig.chainId && chainConfig) {
242
- try {
243
- var _this$wsEmbedInstance2, _this$wsEmbedInstance3;
244
- await ((_this$wsEmbedInstance2 = this.wsEmbedInstance.provider) === null || _this$wsEmbedInstance2 === void 0 ? void 0 : _this$wsEmbedInstance2.request({
245
- method: "wallet_addEthereumChain",
246
- params: [{
247
- chainId: chainConfig.chainId,
248
- chainName: chainConfig.displayName,
249
- rpcUrls: [chainConfig.rpcTarget],
250
- blockExplorerUrls: [chainConfig.blockExplorerUrl],
251
- nativeCurrency: {
252
- name: chainConfig.tickerName,
253
- symbol: chainConfig.ticker,
254
- decimals: chainConfig.decimals || 18
255
- },
256
- iconUrls: [chainConfig.logo]
257
- }]
258
- }).catch(() => {
259
- // TODO: throw more specific error from the controller
260
- log.error("WalletServicesPlugin: Error adding chain");
261
- }));
262
- await ((_this$wsEmbedInstance3 = this.wsEmbedInstance.provider) === null || _this$wsEmbedInstance3 === void 0 ? void 0 : _this$wsEmbedInstance3.request({
263
- method: "wallet_switchEthereumChain",
264
- params: [{
265
- chainId: chainConfig.chainId
266
- }]
267
- }));
268
- } catch (error) {
269
- // TODO: throw more specific error from the controller
270
- log.error("WalletServicesPlugin: Error switching chain");
271
- }
272
108
  }
109
+ this.emit(PLUGIN_EVENTS.DISCONNECTED);
110
+ this.status = PLUGIN_STATUS.DISCONNECTED;
273
111
  }
274
112
  }
113
+ const walletServicesPlugin = () => {
114
+ return () => {
115
+ return new WalletServicesPlugin();
116
+ };
117
+ };
275
118
 
276
- export { WalletServicesPlugin };
119
+ export { walletServicesPlugin };
@@ -0,0 +1,2 @@
1
+ export { accountAbstractionProvider } from './providers/AccountAbstractionProvider.js';
2
+ export { BiconomySmartAccount, KernelSmartAccount, NexusSmartAccount, SMART_ACCOUNT, SafeSmartAccount, TrustSmartAccount } from '@toruslabs/ethereum-controllers';
@@ -1,13 +1,15 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { SMART_ACCOUNT } from '@toruslabs/ethereum-controllers';
4
+ export { SMART_ACCOUNT } from '@toruslabs/ethereum-controllers';
3
5
  import { providerErrors, JRPCEngine, providerFromEngine } from '@web3auth/auth';
4
6
  import { defineChain, createPublicClient, http } from 'viem';
5
7
  import { createPaymasterClient, createBundlerClient } from 'viem/account-abstraction';
6
8
  import { CHAIN_NAMESPACES } from '../../../base/chain/IChainInterface.js';
7
9
  import { WalletInitializationError } from '../../../base/errors/index.js';
10
+ import { BaseProvider } from '../../base-provider/baseProvider.js';
8
11
  import { createAaMiddleware, eoaProviderAsMiddleware } from '../rpc/ethRpcMiddlewares.js';
9
12
  import { getProviderHandlers } from './utils.js';
10
- import { BaseProvider } from '../../base-provider/baseProvider.js';
11
13
 
12
14
  var _AccountAbstractionProvider;
13
15
  class AccountAbstractionProvider extends BaseProvider {
@@ -24,6 +26,9 @@ class AccountAbstractionProvider extends BaseProvider {
24
26
  _defineProperty(this, "_publicClient", void 0);
25
27
  _defineProperty(this, "_bundlerClient", void 0);
26
28
  _defineProperty(this, "_paymasterClient", void 0);
29
+ this.update({
30
+ chainId: config.chain.chainId
31
+ });
27
32
  }
28
33
  get smartAccount() {
29
34
  return this._smartAccount;
@@ -49,37 +54,40 @@ class AccountAbstractionProvider extends BaseProvider {
49
54
  }
50
55
  async setupProvider(eoaProvider) {
51
56
  var _this$config$bundlerC;
57
+ const {
58
+ currentChain
59
+ } = this;
52
60
  const {
53
61
  chainNamespace
54
- } = this.config.chainConfig;
62
+ } = currentChain;
55
63
  if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
56
64
  const chain = defineChain({
57
- id: Number.parseInt(this.config.chainConfig.chainId, 16),
65
+ id: Number.parseInt(currentChain.chainId, 16),
58
66
  // id in number form
59
- name: this.config.chainConfig.displayName,
67
+ name: currentChain.displayName,
60
68
  rpcUrls: {
61
69
  default: {
62
- http: [this.config.chainConfig.rpcTarget],
63
- webSocket: [this.config.chainConfig.wsTarget]
70
+ http: [currentChain.rpcTarget],
71
+ webSocket: [currentChain.wsTarget]
64
72
  }
65
73
  },
66
- blockExplorers: this.config.chainConfig.blockExplorerUrl ? {
74
+ blockExplorers: currentChain.blockExplorerUrl ? {
67
75
  default: {
68
76
  name: "explorer",
69
77
  // TODO: correct name if chain config has it
70
- url: this.config.chainConfig.blockExplorerUrl
78
+ url: currentChain.blockExplorerUrl
71
79
  }
72
80
  } : undefined,
73
81
  nativeCurrency: {
74
- name: this.config.chainConfig.tickerName,
75
- symbol: this.config.chainConfig.ticker,
76
- decimals: this.config.chainConfig.decimals || 18
82
+ name: currentChain.tickerName,
83
+ symbol: currentChain.ticker,
84
+ decimals: currentChain.decimals || 18
77
85
  }
78
86
  });
79
87
  // setup public client for viem smart account
80
88
  this._publicClient = createPublicClient({
81
89
  chain,
82
- transport: http(this.config.chainConfig.rpcTarget)
90
+ transport: http(currentChain.rpcTarget)
83
91
  });
84
92
  this._smartAccount = await this.config.smartAccountInit.getSmartAccount({
85
93
  owner: eoaProvider,
@@ -117,8 +125,12 @@ class AccountAbstractionProvider extends BaseProvider {
117
125
  engine.push(eoaMiddleware);
118
126
  const provider = providerFromEngine(engine);
119
127
  this.updateProviderEngineProxy(provider);
120
- eoaProvider.once("chainChanged", () => {
128
+ eoaProvider.once("chainChanged", chainId => {
129
+ this.update({
130
+ chainId
131
+ });
121
132
  this.setupChainSwitchMiddleware();
133
+ this.emit("chainChanged", chainId);
122
134
  });
123
135
  }
124
136
  async updateAccount(_params) {
@@ -131,32 +143,85 @@ class AccountAbstractionProvider extends BaseProvider {
131
143
  throw providerErrors.unsupportedMethod("lookupNetwork. Please call it on eoaProvider");
132
144
  }
133
145
  async setupChainSwitchMiddleware() {
134
- const chainConfig = await this.state.eoaProvider.request({
135
- method: "eth_provider_config"
136
- });
137
- this.update({
138
- chainId: chainConfig.chainId
139
- });
140
- this.configure({
141
- chainConfig: _objectSpread(_objectSpread({}, chainConfig), {}, {
142
- chainNamespace: CHAIN_NAMESPACES.EIP155,
143
- chainId: chainConfig.chainId,
144
- rpcTarget: chainConfig.rpcTarget
145
- })
146
- });
147
146
  return this.setupProvider(this.state.eoaProvider);
148
147
  }
149
148
  }
150
149
  _AccountAbstractionProvider = AccountAbstractionProvider;
151
150
  _defineProperty(AccountAbstractionProvider, "getProviderInstance", async params => {
152
- const providerFactory = new _AccountAbstractionProvider({
151
+ const providerInstance = new _AccountAbstractionProvider({
153
152
  config: params
154
153
  });
155
- await providerFactory.setupProvider(params.eoaProvider);
156
- providerFactory.update({
154
+ await providerInstance.setupProvider(params.eoaProvider);
155
+ providerInstance.update({
157
156
  eoaProvider: params.eoaProvider
158
157
  });
159
- return providerFactory;
158
+ return providerInstance;
160
159
  });
160
+ const accountAbstractionProvider = async ({
161
+ accountAbstractionConfig,
162
+ chain,
163
+ chains,
164
+ provider
165
+ }) => {
166
+ let smartAccountInit;
167
+ const {
168
+ smartAccountType,
169
+ smartAccountConfig,
170
+ bundlerConfig,
171
+ paymasterConfig
172
+ } = accountAbstractionConfig;
173
+ switch (smartAccountType) {
174
+ case SMART_ACCOUNT.BICONOMY:
175
+ {
176
+ const {
177
+ BiconomySmartAccount
178
+ } = await import('@toruslabs/ethereum-controllers');
179
+ smartAccountInit = new BiconomySmartAccount(smartAccountConfig);
180
+ break;
181
+ }
182
+ case SMART_ACCOUNT.KERNEL:
183
+ {
184
+ const {
185
+ KernelSmartAccount
186
+ } = await import('@toruslabs/ethereum-controllers');
187
+ smartAccountInit = new KernelSmartAccount(smartAccountConfig);
188
+ break;
189
+ }
190
+ case SMART_ACCOUNT.NEXUS:
191
+ {
192
+ const {
193
+ NexusSmartAccount
194
+ } = await import('@toruslabs/ethereum-controllers');
195
+ smartAccountInit = new NexusSmartAccount(smartAccountConfig);
196
+ break;
197
+ }
198
+ case SMART_ACCOUNT.SAFE:
199
+ {
200
+ const {
201
+ SafeSmartAccount
202
+ } = await import('@toruslabs/ethereum-controllers');
203
+ smartAccountInit = new SafeSmartAccount(smartAccountConfig);
204
+ break;
205
+ }
206
+ case SMART_ACCOUNT.TRUST:
207
+ {
208
+ const {
209
+ TrustSmartAccount
210
+ } = await import('@toruslabs/ethereum-controllers');
211
+ smartAccountInit = new TrustSmartAccount(smartAccountConfig);
212
+ break;
213
+ }
214
+ default:
215
+ throw new Error("Smart account type not supported");
216
+ }
217
+ return AccountAbstractionProvider.getProviderInstance({
218
+ eoaProvider: provider,
219
+ smartAccountInit,
220
+ chain,
221
+ chains,
222
+ bundlerConfig,
223
+ paymasterConfig
224
+ });
225
+ };
161
226
 
162
- export { AccountAbstractionProvider };
227
+ export { accountAbstractionProvider };
@@ -1,6 +1,5 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import { createEventEmitterProxy } from '@toruslabs/base-controllers';
3
- import { JRPCEngine, providerFromEngine, providerErrors } from '@web3auth/auth';
2
+ import { providerErrors, JRPCEngine, providerFromEngine } from '@web3auth/auth';
4
3
  import { BaseProvider } from './baseProvider.js';
5
4
  import { createJsonRpcClient } from './jrpcClient.js';
6
5
 
@@ -15,23 +14,25 @@ class CommonJRPCProvider extends BaseProvider {
15
14
  state
16
15
  });
17
16
  }
18
- async setupProvider() {
17
+ async setupProvider(chainId) {
18
+ const chain = this.getChain(chainId);
19
+ if (!chain) throw providerErrors.custom({
20
+ message: "Chain not found",
21
+ code: 4902
22
+ });
19
23
  const {
20
24
  networkMiddleware
21
- } = createJsonRpcClient(this.config.chainConfig);
25
+ } = createJsonRpcClient(chain);
22
26
  const engine = new JRPCEngine();
23
27
  engine.push(networkMiddleware);
24
28
  const provider = providerFromEngine(engine);
25
29
  this.updateProviderEngineProxy(provider);
26
- const newChainId = this.config.chainConfig.chainId;
27
- if (this.state.chainId !== newChainId) {
28
- this.emit("chainChanged", newChainId);
29
- this.emit("connect", {
30
- chainId: newChainId
31
- });
32
- }
30
+ this.emit("chainChanged", chainId);
31
+ this.emit("connect", {
32
+ chainId
33
+ });
33
34
  this.update({
34
- chainId: this.config.chainConfig.chainId
35
+ chainId
35
36
  });
36
37
  }
37
38
  async switchChain(params) {
@@ -39,22 +40,12 @@ class CommonJRPCProvider extends BaseProvider {
39
40
  message: "Provider is not initialized",
40
41
  code: 4902
41
42
  });
42
- const chainConfig = this.getChainConfig(params.chainId);
43
+ const newChainId = params.chainId;
44
+ if (this.chainId === newChainId) return;
43
45
  this.update({
44
46
  chainId: "loading"
45
47
  });
46
- this.configure({
47
- chainConfig
48
- });
49
- await this.setupProvider();
50
- }
51
- updateProviderEngineProxy(provider) {
52
- if (this._providerEngineProxy) {
53
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
- this._providerEngineProxy.setTarget(provider);
55
- } else {
56
- this._providerEngineProxy = createEventEmitterProxy(provider);
57
- }
48
+ await this.setupProvider(newChainId);
58
49
  }
59
50
  getProviderEngineProxy() {
60
51
  return this._providerEngineProxy;
@@ -67,10 +58,14 @@ _CommonJRPCProvider = CommonJRPCProvider;
67
58
  _defineProperty(CommonJRPCProvider, "getProviderInstance", async params => {
68
59
  const providerFactory = new _CommonJRPCProvider({
69
60
  config: {
70
- chainConfig: params.chainConfig
61
+ chain: params.chain,
62
+ chains: params.chains
71
63
  }
72
64
  });
73
- await providerFactory.setupProvider();
65
+ const {
66
+ chainId
67
+ } = params.chain;
68
+ await providerFactory.setupProvider(chainId);
74
69
  return providerFactory;
75
70
  });
76
71