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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/dist/lib.cjs/base/chain/IChainInterface.js +22 -0
  2. package/dist/lib.cjs/base/chain/config.js +322 -0
  3. package/dist/lib.cjs/base/composables/index.js +5 -0
  4. package/dist/lib.cjs/base/connector/baseConnector.js +67 -0
  5. package/dist/lib.cjs/base/connector/constants.js +26 -0
  6. package/dist/lib.cjs/base/connector/utils.js +66 -0
  7. package/dist/lib.cjs/base/errors/index.js +244 -0
  8. package/dist/lib.cjs/base/loglevel.js +7 -0
  9. package/dist/lib.cjs/base/plugin/IPlugin.js +31 -0
  10. package/dist/lib.cjs/base/plugin/errors.js +107 -0
  11. package/dist/lib.cjs/base/provider/IProvider.js +8 -0
  12. package/dist/lib.cjs/base/utils.js +56 -0
  13. package/dist/lib.cjs/base/wallet/index.js +26 -0
  14. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +392 -0
  15. package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +75 -0
  16. package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +77 -0
  17. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +151 -0
  18. package/dist/lib.cjs/connectors/injected-evm-connector/index.js +12 -0
  19. package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +176 -0
  20. package/dist/lib.cjs/connectors/injected-solana-connector/index.js +25 -0
  21. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +147 -0
  22. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +228 -0
  23. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +180 -0
  24. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +20 -0
  25. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +417 -0
  26. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +152 -0
  27. package/dist/lib.cjs/index.js +218 -0
  28. package/dist/lib.cjs/noModal.js +307 -247
  29. package/dist/lib.cjs/plugins/nft-checkout-plugin/embed.js +134 -0
  30. package/dist/lib.cjs/plugins/nft-checkout-plugin/enums.js +24 -0
  31. package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +76 -0
  32. package/dist/lib.cjs/plugins/nft-checkout-plugin/utils.js +18 -0
  33. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +129 -0
  34. package/dist/lib.cjs/providers/account-abstraction-provider/index.js +32 -0
  35. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +232 -0
  36. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +134 -0
  37. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +174 -0
  38. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +74 -0
  39. package/dist/lib.cjs/providers/base-provider/baseProvider.js +132 -0
  40. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +78 -0
  41. package/dist/lib.cjs/providers/base-provider/index.js +18 -0
  42. package/dist/lib.cjs/providers/base-provider/jrpcClient.js +41 -0
  43. package/dist/lib.cjs/providers/base-provider/utils.js +12 -0
  44. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +176 -0
  45. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +165 -0
  46. package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +22 -0
  47. package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +89 -0
  48. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +27 -0
  49. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +380 -0
  50. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +10 -0
  51. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +94 -0
  52. package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +29 -0
  53. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +46 -0
  54. package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +41 -0
  55. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +179 -0
  56. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +49 -0
  57. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +45 -0
  58. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/utils.js +16 -0
  59. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +93 -0
  60. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +150 -0
  61. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +94 -0
  62. package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +47 -0
  63. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +97 -0
  64. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +88 -0
  65. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +123 -0
  66. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +89 -0
  67. package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +48 -0
  68. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +71 -0
  69. package/dist/lib.cjs/react/index.js +16 -0
  70. package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +192 -0
  71. package/dist/lib.cjs/react/no-modal/Web3AuthProvider.js +15 -0
  72. package/dist/lib.cjs/react/no-modal/hooks/useWeb3Auth.js +15 -0
  73. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +89 -0
  74. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesProvider.js +16 -0
  75. package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +15 -0
  76. package/dist/lib.cjs/vue/index.js +15 -0
  77. package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +196 -0
  78. package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +13 -0
  79. package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +90 -0
  80. package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +13 -0
  81. package/dist/lib.cjs/vue/wallet-services-plugin/context.js +5 -0
  82. package/dist/lib.esm/base/chain/IChainInterface.js +19 -0
  83. package/dist/lib.esm/base/chain/config.js +317 -0
  84. package/dist/lib.esm/base/composables/index.js +3 -0
  85. package/dist/lib.esm/base/connector/baseConnector.js +65 -0
  86. package/dist/lib.esm/base/connector/constants.js +22 -0
  87. package/dist/lib.esm/base/connector/utils.js +60 -0
  88. package/dist/lib.esm/base/errors/index.js +237 -0
  89. package/dist/lib.esm/base/loglevel.js +5 -0
  90. package/dist/lib.esm/base/plugin/IPlugin.js +24 -0
  91. package/dist/lib.esm/base/plugin/errors.js +104 -0
  92. package/dist/lib.esm/base/provider/IProvider.js +6 -0
  93. package/dist/lib.esm/base/utils.js +46 -0
  94. package/dist/lib.esm/base/wallet/index.js +20 -0
  95. package/dist/lib.esm/connectors/auth-connector/authConnector.js +390 -0
  96. package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +73 -0
  97. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +75 -0
  98. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +149 -0
  99. package/dist/lib.esm/connectors/injected-evm-connector/index.js +2 -0
  100. package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +173 -0
  101. package/dist/lib.esm/connectors/injected-solana-connector/index.js +18 -0
  102. package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +144 -0
  103. package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +226 -0
  104. package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +169 -0
  105. package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +3 -0
  106. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +415 -0
  107. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +146 -0
  108. package/dist/lib.esm/index.js +53 -0
  109. package/dist/lib.esm/noModal.js +294 -234
  110. package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +132 -0
  111. package/dist/lib.esm/plugins/nft-checkout-plugin/enums.js +20 -0
  112. package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +74 -0
  113. package/dist/lib.esm/plugins/nft-checkout-plugin/utils.js +15 -0
  114. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +119 -0
  115. package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -0
  116. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +227 -0
  117. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +132 -0
  118. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +171 -0
  119. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +72 -0
  120. package/dist/lib.esm/providers/base-provider/baseProvider.js +130 -0
  121. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +76 -0
  122. package/dist/lib.esm/providers/base-provider/index.js +5 -0
  123. package/dist/lib.esm/providers/base-provider/jrpcClient.js +37 -0
  124. package/dist/lib.esm/providers/base-provider/utils.js +6 -0
  125. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +174 -0
  126. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +163 -0
  127. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +20 -0
  128. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +85 -0
  129. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +21 -0
  130. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +378 -0
  131. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +8 -0
  132. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +88 -0
  133. package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +24 -0
  134. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +43 -0
  135. package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +37 -0
  136. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +177 -0
  137. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +47 -0
  138. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +43 -0
  139. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/utils.js +14 -0
  140. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +91 -0
  141. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +148 -0
  142. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +92 -0
  143. package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +42 -0
  144. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +89 -0
  145. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +86 -0
  146. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +121 -0
  147. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +87 -0
  148. package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +43 -0
  149. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +65 -0
  150. package/dist/lib.esm/react/index.js +5 -0
  151. package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +189 -0
  152. package/dist/lib.esm/react/no-modal/Web3AuthProvider.js +13 -0
  153. package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +13 -0
  154. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +86 -0
  155. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesProvider.js +14 -0
  156. package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +13 -0
  157. package/dist/lib.esm/vue/index.js +5 -0
  158. package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +194 -0
  159. package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +11 -0
  160. package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +88 -0
  161. package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +11 -0
  162. package/dist/lib.esm/vue/wallet-services-plugin/context.js +3 -0
  163. package/dist/noModal.cjs.js +14559 -321
  164. package/dist/noModal.umd.min.js +1 -1
  165. package/dist/noModal.umd.min.js.LICENSE.txt +45 -0
  166. package/dist/types/base/chain/IChainInterface.d.ts +59 -0
  167. package/dist/types/base/chain/config.d.ts +5 -0
  168. package/dist/types/base/composables/index.d.ts +1 -0
  169. package/dist/types/base/connector/baseConnector.d.ts +37 -0
  170. package/dist/types/base/connector/constants.d.ts +25 -0
  171. package/dist/types/base/connector/index.d.ts +4 -0
  172. package/dist/types/base/connector/interfaces.d.ts +145 -0
  173. package/dist/types/base/connector/utils.d.ts +5 -0
  174. package/dist/types/base/core/IWeb3Auth.d.ts +142 -0
  175. package/dist/types/base/errors/index.d.ts +69 -0
  176. package/dist/types/base/hooks/index.d.ts +33 -0
  177. package/dist/types/base/index.d.ts +13 -0
  178. package/dist/types/base/interfaces.d.ts +44 -0
  179. package/dist/types/base/loglevel.d.ts +2 -0
  180. package/dist/types/base/plugin/IPlugin.d.ts +50 -0
  181. package/dist/types/base/plugin/errors.d.ts +28 -0
  182. package/dist/types/base/plugin/index.d.ts +2 -0
  183. package/dist/types/base/provider/IProvider.d.ts +16 -0
  184. package/dist/types/base/utils.d.ts +9 -0
  185. package/dist/types/base/wallet/index.d.ts +29 -0
  186. package/dist/types/connectors/auth-connector/authConnector.d.ts +45 -0
  187. package/dist/types/connectors/auth-connector/index.d.ts +2 -0
  188. package/dist/types/connectors/auth-connector/interface.d.ts +14 -0
  189. package/dist/types/connectors/base-evm-connector/baseEvmConnector.d.ts +7 -0
  190. package/dist/types/connectors/base-evm-connector/index.d.ts +1 -0
  191. package/dist/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +7 -0
  192. package/dist/types/connectors/base-solana-connector/index.d.ts +1 -0
  193. package/dist/types/connectors/coinbase-connector/coinbaseConnector.d.ts +7 -0
  194. package/dist/types/connectors/coinbase-connector/index.d.ts +1 -0
  195. package/dist/types/connectors/index.d.ts +7 -0
  196. package/dist/types/connectors/injected-evm-connector/index.d.ts +2 -0
  197. package/dist/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +34 -0
  198. package/dist/types/connectors/injected-solana-connector/index.d.ts +5 -0
  199. package/dist/types/connectors/injected-solana-connector/utils.d.ts +3 -0
  200. package/dist/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +33 -0
  201. package/dist/types/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +35 -0
  202. package/dist/types/connectors/wallet-connect-v2-connector/config.d.ts +35 -0
  203. package/dist/types/connectors/wallet-connect-v2-connector/index.d.ts +4 -0
  204. package/dist/types/connectors/wallet-connect-v2-connector/interface.d.ts +18 -0
  205. package/dist/types/connectors/wallet-connect-v2-connector/utils.d.ts +3 -0
  206. package/dist/types/connectors/wallet-connect-v2-connector/walletConnectV2Connector.d.ts +3 -0
  207. package/dist/types/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +18 -0
  208. package/dist/types/index.d.ts +4 -0
  209. package/dist/types/noModal.d.ts +29 -14
  210. package/dist/types/plugins/index.d.ts +2 -0
  211. package/dist/types/plugins/nft-checkout-plugin/embed.d.ts +24 -0
  212. package/dist/types/plugins/nft-checkout-plugin/enums.d.ts +14 -0
  213. package/dist/types/plugins/nft-checkout-plugin/index.d.ts +2 -0
  214. package/dist/types/plugins/nft-checkout-plugin/plugin.d.ts +27 -0
  215. package/dist/types/plugins/nft-checkout-plugin/utils.d.ts +3 -0
  216. package/dist/types/plugins/wallet-services-plugin/index.d.ts +1 -0
  217. package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +27 -0
  218. package/dist/types/providers/account-abstraction-provider/index.d.ts +1 -0
  219. package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +48 -0
  220. package/dist/types/providers/account-abstraction-provider/providers/index.d.ts +2 -0
  221. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -0
  222. package/dist/types/providers/account-abstraction-provider/providers/utils.d.ts +10 -0
  223. package/dist/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +8 -0
  224. package/dist/types/providers/account-abstraction-provider/rpc/index.d.ts +1 -0
  225. package/dist/types/providers/base-provider/CommonJRPCProvider.d.ts +20 -0
  226. package/dist/types/providers/base-provider/baseProvider.d.ts +42 -0
  227. package/dist/types/providers/base-provider/commonPrivateKeyProvider.d.ts +29 -0
  228. package/dist/types/providers/base-provider/index.d.ts +5 -0
  229. package/dist/types/providers/base-provider/interfaces.d.ts +3 -0
  230. package/dist/types/providers/base-provider/jrpcClient.d.ts +8 -0
  231. package/dist/types/providers/base-provider/utils.d.ts +2 -0
  232. package/dist/types/providers/ethereum-mpc-provider/index.d.ts +1 -0
  233. package/dist/types/providers/ethereum-mpc-provider/providers/index.d.ts +1 -0
  234. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +74 -0
  235. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +1 -0
  236. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +12 -0
  237. package/dist/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +3 -0
  238. package/dist/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +15 -0
  239. package/dist/types/providers/ethereum-provider/index.d.ts +2 -0
  240. package/dist/types/providers/ethereum-provider/providers/converter.d.ts +15 -0
  241. package/dist/types/providers/ethereum-provider/providers/index.d.ts +1 -0
  242. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +16 -0
  243. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +28 -0
  244. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +4 -0
  245. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +46 -0
  246. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +12 -0
  247. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +1 -0
  248. package/dist/types/providers/ethereum-provider/providers/utils.d.ts +5 -0
  249. package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -0
  250. package/dist/types/providers/ethereum-provider/rpc/index.d.ts +4 -0
  251. package/dist/types/providers/ethereum-provider/rpc/interfaces.d.ts +52 -0
  252. package/dist/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +8 -0
  253. package/dist/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +3 -0
  254. package/dist/types/providers/index.d.ts +6 -0
  255. package/dist/types/providers/solana-provider/index.d.ts +4 -0
  256. package/dist/types/providers/solana-provider/interface.d.ts +22 -0
  257. package/dist/types/providers/solana-provider/providers/index.d.ts +2 -0
  258. package/dist/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +16 -0
  259. package/dist/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +3 -0
  260. package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +2 -0
  261. package/dist/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +3 -0
  262. package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +9 -0
  263. package/dist/types/providers/solana-provider/providers/privateKeyProvider/index.d.ts +1 -0
  264. package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +31 -0
  265. package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +7 -0
  266. package/dist/types/providers/solana-provider/rpc/JrpcClient.d.ts +9 -0
  267. package/dist/types/providers/solana-provider/rpc/index.d.ts +3 -0
  268. package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +27 -0
  269. package/dist/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +20 -0
  270. package/dist/types/providers/solana-provider/solanaWallet.d.ts +28 -0
  271. package/dist/types/providers/xrpl-provider/index.d.ts +1 -0
  272. package/dist/types/providers/xrpl-provider/providers/index.d.ts +1 -0
  273. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/constants.d.ts +5 -0
  274. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/index.d.ts +3 -0
  275. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/interface.d.ts +2 -0
  276. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +26 -0
  277. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.d.ts +7 -0
  278. package/dist/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +9 -0
  279. package/dist/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +49 -0
  280. package/dist/types/react/index.d.ts +2 -0
  281. package/dist/types/react/no-modal/Web3AuthInnerContext.d.ts +4 -0
  282. package/dist/types/react/no-modal/Web3AuthProvider.d.ts +3 -0
  283. package/dist/types/react/no-modal/hooks/index.d.ts +1 -0
  284. package/dist/types/react/no-modal/hooks/useWeb3Auth.d.ts +2 -0
  285. package/dist/types/react/no-modal/index.d.ts +3 -0
  286. package/dist/types/react/no-modal/interfaces.d.ts +15 -0
  287. package/dist/types/react/wallet-services-plugin/WalletServicesContext.d.ts +7 -0
  288. package/dist/types/react/wallet-services-plugin/WalletServicesProvider.d.ts +7 -0
  289. package/dist/types/react/wallet-services-plugin/hooks/index.d.ts +1 -0
  290. package/dist/types/react/wallet-services-plugin/hooks/useWalletServicesPlugin.d.ts +2 -0
  291. package/dist/types/react/wallet-services-plugin/index.d.ts +4 -0
  292. package/dist/types/react/wallet-services-plugin/interfaces.d.ts +5 -0
  293. package/dist/types/vue/index.d.ts +2 -0
  294. package/dist/types/vue/no-modal/Web3AuthProvider.d.ts +13 -0
  295. package/dist/types/vue/no-modal/composables/index.d.ts +1 -0
  296. package/dist/types/vue/no-modal/composables/useWeb3Auth.d.ts +2 -0
  297. package/dist/types/vue/no-modal/index.d.ts +3 -0
  298. package/dist/types/vue/no-modal/interfaces.d.ts +39 -0
  299. package/dist/types/vue/wallet-services-plugin/WalletServicesProvider.d.ts +1 -0
  300. package/dist/types/vue/wallet-services-plugin/composables/index.d.ts +1 -0
  301. package/dist/types/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +2 -0
  302. package/dist/types/vue/wallet-services-plugin/context.d.ts +3 -0
  303. package/dist/types/vue/wallet-services-plugin/index.d.ts +4 -0
  304. package/dist/types/vue/wallet-services-plugin/interfaces.d.ts +13 -0
  305. package/package.json +77 -15
  306. package/README.md +0 -82
  307. package/dist/noModal.esm.js +0 -359
@@ -0,0 +1,132 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { randomId } from '@toruslabs/base-controllers';
3
+ import { THEME_MODES } from '@web3auth/auth';
4
+ import loglevel from 'loglevel';
5
+ import { NFT_CHECKOUT_BUILD_ENV, NFT_CHECKOUT_URLS, NFT_CHECKOUT_EMBED_MESSAGE_TYPES } from './enums.js';
6
+ import { getTheme, htmlToElement } from './utils.js';
7
+
8
+ // preload for iframe doesn't work https://bugs.chromium.org/p/chromium/issues/detail?id=593267
9
+ (async function preLoadIframe() {
10
+ try {
11
+ if (typeof document === "undefined") return;
12
+ const nftCheckoutIframeHtml = document.createElement("link");
13
+ const nftCheckoutUrl = NFT_CHECKOUT_URLS.testing; // TODO: use production by default once we have it
14
+ nftCheckoutIframeHtml.href = `${nftCheckoutUrl}`;
15
+ nftCheckoutIframeHtml.crossOrigin = "anonymous";
16
+ nftCheckoutIframeHtml.type = "text/html";
17
+ nftCheckoutIframeHtml.rel = "prefetch";
18
+ if (nftCheckoutIframeHtml.relList && nftCheckoutIframeHtml.relList.supports) {
19
+ if (nftCheckoutIframeHtml.relList.supports("prefetch")) {
20
+ document.head.appendChild(nftCheckoutIframeHtml);
21
+ }
22
+ }
23
+ } catch (error) {
24
+ loglevel.warn(error);
25
+ }
26
+ })();
27
+ class NFTCheckoutEmbed {
28
+ constructor({
29
+ modalZIndex = 99999,
30
+ clientId
31
+ }) {
32
+ _defineProperty(this, "clientId", void 0);
33
+ _defineProperty(this, "isInitialized", void 0);
34
+ _defineProperty(this, "modalZIndex", void 0);
35
+ _defineProperty(this, "buildEnv", void 0);
36
+ _defineProperty(this, "embedNonce", randomId());
37
+ this.isInitialized = false;
38
+ this.modalZIndex = modalZIndex;
39
+ this.clientId = clientId;
40
+ }
41
+ async init(params) {
42
+ if (this.isInitialized) throw new Error("Already initialized");
43
+ if (this.getIframe()) throw new Error("Already initialized NFT Checkout iframe");
44
+ const {
45
+ buildEnv = NFT_CHECKOUT_BUILD_ENV.TESTING,
46
+ // TODO: use production by default once we have it
47
+ whiteLabel
48
+ } = params || {};
49
+ this.buildEnv = buildEnv;
50
+
51
+ // construct nft checkout url
52
+ const nftCheckoutIframeUrl = new URL(NFT_CHECKOUT_URLS[this.buildEnv]);
53
+ const hashParams = new URLSearchParams();
54
+ hashParams.append("origin", window.location.origin);
55
+ nftCheckoutIframeUrl.hash = hashParams.toString();
56
+
57
+ // create iframe
58
+ const colorScheme = getTheme((whiteLabel === null || whiteLabel === void 0 ? void 0 : whiteLabel.mode) || THEME_MODES.light);
59
+ const nftCheckoutIframe = htmlToElement(`<iframe
60
+ id="nftCheckoutIframe-${this.embedNonce}"
61
+ class="nftCheckoutIframe-${this.embedNonce}"
62
+ sandbox="allow-popups allow-scripts allow-same-origin allow-forms allow-modals allow-downloads allow-popups-to-escape-sandbox"
63
+ src="${nftCheckoutIframeUrl.href}"
64
+ style="display: none; position: fixed; top: 0; right: 0; width: 100%;
65
+ height: 100%; border: none; border-radius: 0; z-index: ${this.modalZIndex.toString()};
66
+ color-scheme: ${colorScheme}"
67
+ allow="clipboard-write"
68
+ ></iframe>`);
69
+ return new Promise((resolve, reject) => {
70
+ try {
71
+ window.document.body.appendChild(nftCheckoutIframe);
72
+ const handleMessage = async ev => {
73
+ if (ev.origin !== nftCheckoutIframeUrl.origin) return;
74
+ if (ev.data.type === NFT_CHECKOUT_EMBED_MESSAGE_TYPES.SETUP_COMPLETE) {
75
+ // send init params here
76
+ nftCheckoutIframe.contentWindow.postMessage({
77
+ type: NFT_CHECKOUT_EMBED_MESSAGE_TYPES.INIT,
78
+ clientId: this.clientId,
79
+ whiteLabel
80
+ }, nftCheckoutIframeUrl.origin);
81
+ this.isInitialized = true;
82
+ resolve();
83
+ } else if (ev.data.type === NFT_CHECKOUT_EMBED_MESSAGE_TYPES.HIDE_NFT_CHECKOUT) {
84
+ this.hide();
85
+ }
86
+ };
87
+ window.addEventListener("message", handleMessage);
88
+ } catch (error) {
89
+ reject(error);
90
+ }
91
+ });
92
+ }
93
+ show({
94
+ receiverAddress,
95
+ contractId
96
+ }) {
97
+ if (!this.isInitialized) throw new Error("Call init() first");
98
+ const nftCheckoutIframe = this.getIframe();
99
+ if (!nftCheckoutIframe) throw new Error("Iframe is not initialized");
100
+
101
+ // send message to iframe
102
+ const nftCheckoutOrigin = new URL(NFT_CHECKOUT_URLS[this.buildEnv]).origin;
103
+ nftCheckoutIframe.contentWindow.postMessage({
104
+ type: NFT_CHECKOUT_EMBED_MESSAGE_TYPES.SHOW_NFT_CHECKOUT,
105
+ contractId,
106
+ receiverAddress
107
+ }, nftCheckoutOrigin);
108
+ // show iframe
109
+ nftCheckoutIframe.style.display = "block";
110
+ }
111
+ hide() {
112
+ if (!this.isInitialized) throw new Error("Call init() first");
113
+ const nftCheckoutIframe = this.getIframe();
114
+ if (!nftCheckoutIframe) throw new Error("Iframe is not initialized");
115
+ // hide iframe
116
+ nftCheckoutIframe.style.display = "none";
117
+ }
118
+ cleanup() {
119
+ const nftCheckoutIframe = this.getIframe();
120
+ if (nftCheckoutIframe) nftCheckoutIframe.remove();
121
+ }
122
+ getIframe() {
123
+ function isElement(element) {
124
+ return element instanceof Element || element instanceof Document;
125
+ }
126
+ const nftCheckoutIframe = window.document.getElementById(`nftCheckoutIframe-${this.embedNonce}`);
127
+ if (!isElement(nftCheckoutIframe)) return null;
128
+ return nftCheckoutIframe;
129
+ }
130
+ }
131
+
132
+ export { NFTCheckoutEmbed };
@@ -0,0 +1,20 @@
1
+ const NFT_CHECKOUT_BUILD_ENV = {
2
+ PRODUCTION: "production",
3
+ STAGING: "staging",
4
+ DEVELOPMENT: "development",
5
+ TESTING: "testing"
6
+ };
7
+ const NFT_CHECKOUT_URLS = {
8
+ [NFT_CHECKOUT_BUILD_ENV.DEVELOPMENT]: "http://localhost:4050",
9
+ [NFT_CHECKOUT_BUILD_ENV.TESTING]: "https://develop-nft-checkout.web3auth.io",
10
+ [NFT_CHECKOUT_BUILD_ENV.STAGING]: "https://staging-nft-checkout.web3auth.io",
11
+ [NFT_CHECKOUT_BUILD_ENV.PRODUCTION]: "https://nft-checkout.web3auth.io"
12
+ };
13
+ const NFT_CHECKOUT_EMBED_MESSAGE_TYPES = {
14
+ INIT: "init",
15
+ SETUP_COMPLETE: "setup_complete",
16
+ SHOW_NFT_CHECKOUT: "show_nft_checkout",
17
+ HIDE_NFT_CHECKOUT: "hide_nft_checkout"
18
+ };
19
+
20
+ export { NFT_CHECKOUT_BUILD_ENV, NFT_CHECKOUT_EMBED_MESSAGE_TYPES, NFT_CHECKOUT_URLS };
@@ -0,0 +1,74 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { SafeEventEmitter } from '@web3auth/auth';
3
+ import { NFTCheckoutEmbed } from './embed.js';
4
+ import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
5
+ import { NFTCheckoutPluginError } from '../../base/plugin/errors.js';
6
+ import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
7
+
8
+ class NFTCheckoutPlugin extends SafeEventEmitter {
9
+ constructor(params) {
10
+ super();
11
+ _defineProperty(this, "name", EVM_PLUGINS.NFT_CHECKOUT);
12
+ _defineProperty(this, "status", PLUGIN_STATUS.DISCONNECTED);
13
+ _defineProperty(this, "SUPPORTED_CONNECTORS", ["all"]);
14
+ _defineProperty(this, "pluginNamespace", PLUGIN_NAMESPACES.EIP155);
15
+ _defineProperty(this, "web3auth", null);
16
+ _defineProperty(this, "nftCheckoutEmbedInstance", null);
17
+ _defineProperty(this, "isInitialized", false);
18
+ _defineProperty(this, "receiverAddress", null);
19
+ this.nftCheckoutEmbedInstance = new NFTCheckoutEmbed(params);
20
+ }
21
+ async initWithWeb3Auth(web3auth, whiteLabel) {
22
+ if (this.isInitialized) return;
23
+ if (!web3auth) throw NFTCheckoutPluginError.web3authRequired();
24
+ this.web3auth = web3auth;
25
+ await this.nftCheckoutEmbedInstance.init({
26
+ whiteLabel
27
+ });
28
+ this.isInitialized = true;
29
+ this.status = PLUGIN_STATUS.READY;
30
+ this.emit(PLUGIN_EVENTS.READY);
31
+ }
32
+ async connect() {
33
+ if (!this.isInitialized) throw NFTCheckoutPluginError.notInitialized();
34
+ this.emit(PLUGIN_EVENTS.CONNECTING);
35
+ this.status = PLUGIN_STATUS.CONNECTING;
36
+ if (this.web3auth.status !== CONNECTOR_STATUS.CONNECTED) throw NFTCheckoutPluginError.web3AuthNotConnected();
37
+ if (!this.web3auth.provider) throw NFTCheckoutPluginError.providerRequired();
38
+ const accounts = await this.web3auth.provider.request({
39
+ method: "eth_accounts"
40
+ });
41
+ if (accounts.length === 0) throw NFTCheckoutPluginError.web3AuthNotConnected();
42
+ this.receiverAddress = accounts[0];
43
+ this.emit(PLUGIN_EVENTS.CONNECTED);
44
+ this.status = PLUGIN_STATUS.CONNECTED;
45
+ }
46
+ async show({
47
+ contractId
48
+ }) {
49
+ if (this.status !== PLUGIN_STATUS.CONNECTED) NFTCheckoutPluginError.pluginNotConnected();
50
+ return this.nftCheckoutEmbedInstance.show({
51
+ receiverAddress: this.receiverAddress,
52
+ contractId
53
+ });
54
+ }
55
+ disconnect() {
56
+ if (this.status !== PLUGIN_STATUS.CONNECTED) NFTCheckoutPluginError.pluginNotConnected();
57
+ this.emit(PLUGIN_EVENTS.DISCONNECTED);
58
+ this.status = PLUGIN_STATUS.DISCONNECTED;
59
+ return Promise.resolve();
60
+ }
61
+ cleanup() {
62
+ this.nftCheckoutEmbedInstance.cleanup();
63
+ this.receiverAddress = null;
64
+ this.isInitialized = false;
65
+ return Promise.resolve();
66
+ }
67
+ }
68
+ const nftCheckoutPlugin = params => {
69
+ return () => {
70
+ return new NFTCheckoutPlugin(params);
71
+ };
72
+ };
73
+
74
+ export { nftCheckoutPlugin };
@@ -0,0 +1,15 @@
1
+ import { THEME_MODES } from '@web3auth/auth';
2
+
3
+ const htmlToElement = html => {
4
+ const template = window.document.createElement("template");
5
+ const trimmedHtml = html.trim(); // Never return a text node of whitespace as the result
6
+ template.innerHTML = trimmedHtml;
7
+ return template.content.firstChild;
8
+ };
9
+ const getTheme = theme => {
10
+ if (theme === THEME_MODES.light) return "light";
11
+ if (theme === THEME_MODES.dark) return "dark";
12
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
13
+ };
14
+
15
+ export { getTheme, htmlToElement };
@@ -0,0 +1,119 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { SafeEventEmitter } from '@web3auth/auth';
3
+ import { CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
4
+ import { log } from '../../base/loglevel.js';
5
+ import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
6
+ export { BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@web3auth/ws-embed';
7
+ import { WalletServicesPluginError } from '../../base/plugin/errors.js';
8
+ import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
9
+ import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
10
+
11
+ // TODO: support project config items here. incl. key export flag, multiple chains
12
+ class WalletServicesPlugin extends SafeEventEmitter {
13
+ constructor(...args) {
14
+ super(...args);
15
+ _defineProperty(this, "name", EVM_PLUGINS.WALLET_SERVICES);
16
+ _defineProperty(this, "status", PLUGIN_STATUS.DISCONNECTED);
17
+ _defineProperty(this, "SUPPORTED_CONNECTORS", [WALLET_CONNECTORS.AUTH, WALLET_CONNECTORS.SFA]);
18
+ _defineProperty(this, "pluginNamespace", PLUGIN_NAMESPACES.MULTICHAIN);
19
+ _defineProperty(this, "wsEmbedInstance", void 0);
20
+ _defineProperty(this, "provider", null);
21
+ _defineProperty(this, "web3auth", null);
22
+ _defineProperty(this, "isInitialized", false);
23
+ }
24
+ get proxyProvider() {
25
+ var _this$wsEmbedInstance;
26
+ return (_this$wsEmbedInstance = this.wsEmbedInstance) !== null && _this$wsEmbedInstance !== void 0 && _this$wsEmbedInstance.provider ? this.wsEmbedInstance.provider : null;
27
+ }
28
+ async initWithWeb3Auth(web3auth, _whiteLabel) {
29
+ if (this.isInitialized) return;
30
+ if (!web3auth) throw WalletServicesPluginError.web3authRequired();
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
+
35
+ // Not connected yet to auth
36
+ if (web3auth.provider) {
37
+ this.provider = web3auth.provider;
38
+ }
39
+ this.web3auth = web3auth;
40
+
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;
45
+ this.isInitialized = true;
46
+ this.status = PLUGIN_STATUS.READY;
47
+ this.emit(PLUGIN_EVENTS.READY);
48
+ }
49
+ initWithProvider() {
50
+ throw new Error("Method not implemented.");
51
+ }
52
+ async connect() {
53
+ // if web3auth is being used and connected to unsupported connector throw error
54
+ if (!this.isInitialized) throw WalletServicesPluginError.notInitialized();
55
+ this.emit(PLUGIN_EVENTS.CONNECTING);
56
+ this.status = PLUGIN_STATUS.CONNECTING;
57
+ if (!this.provider) {
58
+ var _this$web3auth;
59
+ if ((_this$web3auth = this.web3auth) !== null && _this$web3auth !== void 0 && _this$web3auth.provider) {
60
+ this.provider = this.web3auth.provider;
61
+ }
62
+ }
63
+ if (this.web3auth.status !== CONNECTOR_STATUS.CONNECTED) {
64
+ throw WalletServicesPluginError.web3AuthNotConnected();
65
+ } else if (!this.web3auth.provider) {
66
+ throw WalletServicesPluginError.providerRequired();
67
+ }
68
+ try {
69
+ this.emit(PLUGIN_EVENTS.CONNECTED);
70
+ this.status = PLUGIN_STATUS.CONNECTED;
71
+ } catch (error) {
72
+ log.error(error);
73
+ this.status = PLUGIN_STATUS.ERRORED;
74
+ this.emit(PLUGIN_EVENTS.ERRORED, {
75
+ error: error.message || "Something went wrong"
76
+ });
77
+ }
78
+ }
79
+ async showWalletConnectScanner(showWalletConnectParams) {
80
+ var _this$wsEmbedInstance2;
81
+ if (!((_this$wsEmbedInstance2 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance2 !== void 0 && _this$wsEmbedInstance2.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
82
+ return this.wsEmbedInstance.showWalletConnectScanner(showWalletConnectParams);
83
+ }
84
+ async showCheckout(showCheckoutParams) {
85
+ var _this$wsEmbedInstance3;
86
+ if (!((_this$wsEmbedInstance3 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance3 !== void 0 && _this$wsEmbedInstance3.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
87
+ return this.wsEmbedInstance.showCheckout(showCheckoutParams);
88
+ }
89
+ async showWalletUi(showWalletUiParams) {
90
+ var _this$wsEmbedInstance4;
91
+ if (!((_this$wsEmbedInstance4 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance4 !== void 0 && _this$wsEmbedInstance4.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
92
+ return this.wsEmbedInstance.showWalletUi(showWalletUiParams);
93
+ }
94
+ async showSwap(showSwapParams) {
95
+ var _this$wsEmbedInstance5;
96
+ if (!((_this$wsEmbedInstance5 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance5 !== void 0 && _this$wsEmbedInstance5.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
97
+ return this.wsEmbedInstance.showSwap(showSwapParams);
98
+ }
99
+ async cleanup() {
100
+ var _this$wsEmbedInstance6;
101
+ return (_this$wsEmbedInstance6 = this.wsEmbedInstance) === null || _this$wsEmbedInstance6 === void 0 ? void 0 : _this$wsEmbedInstance6.cleanUp();
102
+ }
103
+ async disconnect() {
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) {
107
+ await this.wsEmbedInstance.logout();
108
+ }
109
+ this.emit(PLUGIN_EVENTS.DISCONNECTED);
110
+ this.status = PLUGIN_STATUS.DISCONNECTED;
111
+ }
112
+ }
113
+ const walletServicesPlugin = () => {
114
+ return () => {
115
+ return new WalletServicesPlugin();
116
+ };
117
+ };
118
+
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';
@@ -0,0 +1,227 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { SMART_ACCOUNT } from '@toruslabs/ethereum-controllers';
4
+ export { SMART_ACCOUNT } from '@toruslabs/ethereum-controllers';
5
+ import { providerErrors, JRPCEngine, providerFromEngine } from '@web3auth/auth';
6
+ import { defineChain, createPublicClient, http } from 'viem';
7
+ import { createPaymasterClient, createBundlerClient } from 'viem/account-abstraction';
8
+ import { CHAIN_NAMESPACES } from '../../../base/chain/IChainInterface.js';
9
+ import { WalletInitializationError } from '../../../base/errors/index.js';
10
+ import { BaseProvider } from '../../base-provider/baseProvider.js';
11
+ import { createAaMiddleware, eoaProviderAsMiddleware } from '../rpc/ethRpcMiddlewares.js';
12
+ import { getProviderHandlers } from './utils.js';
13
+
14
+ var _AccountAbstractionProvider;
15
+ class AccountAbstractionProvider extends BaseProvider {
16
+ constructor({
17
+ config,
18
+ state
19
+ }) {
20
+ super({
21
+ config,
22
+ state
23
+ });
24
+ _defineProperty(this, "PROVIDER_CHAIN_NAMESPACE", CHAIN_NAMESPACES.EIP155);
25
+ _defineProperty(this, "_smartAccount", void 0);
26
+ _defineProperty(this, "_publicClient", void 0);
27
+ _defineProperty(this, "_bundlerClient", void 0);
28
+ _defineProperty(this, "_paymasterClient", void 0);
29
+ this.update({
30
+ chainId: config.chain.chainId
31
+ });
32
+ }
33
+ get smartAccount() {
34
+ return this._smartAccount;
35
+ }
36
+ get bundlerClient() {
37
+ return this._bundlerClient;
38
+ }
39
+ get paymasterClient() {
40
+ return this._paymasterClient;
41
+ }
42
+ get publicClient() {
43
+ return this._publicClient;
44
+ }
45
+ async enable() {
46
+ if (!this.state.eoaProvider) throw providerErrors.custom({
47
+ message: "eoaProvider is not found in state, please pass it",
48
+ code: 4902
49
+ });
50
+ await this.setupProvider(this.state.eoaProvider);
51
+ return this._providerEngineProxy.request({
52
+ method: "eth_accounts"
53
+ });
54
+ }
55
+ async setupProvider(eoaProvider) {
56
+ var _this$config$bundlerC;
57
+ const {
58
+ currentChain
59
+ } = this;
60
+ const {
61
+ chainNamespace
62
+ } = currentChain;
63
+ if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
64
+ const chain = defineChain({
65
+ id: Number.parseInt(currentChain.chainId, 16),
66
+ // id in number form
67
+ name: currentChain.displayName,
68
+ rpcUrls: {
69
+ default: {
70
+ http: [currentChain.rpcTarget],
71
+ webSocket: [currentChain.wsTarget]
72
+ }
73
+ },
74
+ blockExplorers: currentChain.blockExplorerUrl ? {
75
+ default: {
76
+ name: "explorer",
77
+ // TODO: correct name if chain config has it
78
+ url: currentChain.blockExplorerUrl
79
+ }
80
+ } : undefined,
81
+ nativeCurrency: {
82
+ name: currentChain.tickerName,
83
+ symbol: currentChain.ticker,
84
+ decimals: currentChain.decimals || 18
85
+ }
86
+ });
87
+ // setup public client for viem smart account
88
+ this._publicClient = createPublicClient({
89
+ chain,
90
+ transport: http(currentChain.rpcTarget)
91
+ });
92
+ this._smartAccount = await this.config.smartAccountInit.getSmartAccount({
93
+ owner: eoaProvider,
94
+ client: this._publicClient
95
+ });
96
+
97
+ // setup bundler and paymaster
98
+ if (this.config.paymasterConfig) {
99
+ var _this$config$paymaste;
100
+ this._paymasterClient = createPaymasterClient(_objectSpread(_objectSpread({}, this.config.paymasterConfig), {}, {
101
+ transport: (_this$config$paymaste = this.config.paymasterConfig.transport) !== null && _this$config$paymaste !== void 0 ? _this$config$paymaste : http(this.config.paymasterConfig.url)
102
+ }));
103
+ }
104
+ this._bundlerClient = createBundlerClient(_objectSpread(_objectSpread({}, this.config.bundlerConfig), {}, {
105
+ account: this.smartAccount,
106
+ client: this._publicClient,
107
+ transport: (_this$config$bundlerC = this.config.bundlerConfig.transport) !== null && _this$config$bundlerC !== void 0 ? _this$config$bundlerC : http(this.config.bundlerConfig.url),
108
+ paymaster: this._paymasterClient
109
+ }));
110
+ const providerHandlers = getProviderHandlers({
111
+ bundlerClient: this._bundlerClient,
112
+ smartAccount: this._smartAccount,
113
+ chain,
114
+ eoaProvider
115
+ });
116
+
117
+ // setup rpc engine and AA middleware
118
+ const engine = new JRPCEngine();
119
+ const aaMiddleware = await createAaMiddleware({
120
+ eoaProvider,
121
+ handlers: providerHandlers
122
+ });
123
+ engine.push(aaMiddleware);
124
+ const eoaMiddleware = eoaProviderAsMiddleware(eoaProvider);
125
+ engine.push(eoaMiddleware);
126
+ const provider = providerFromEngine(engine);
127
+ this.updateProviderEngineProxy(provider);
128
+ eoaProvider.once("chainChanged", chainId => {
129
+ this.update({
130
+ chainId
131
+ });
132
+ this.setupChainSwitchMiddleware();
133
+ this.emit("chainChanged", chainId);
134
+ });
135
+ }
136
+ async updateAccount(_params) {
137
+ throw providerErrors.unsupportedMethod("updateAccount. Please call it on eoaProvider");
138
+ }
139
+ async switchChain(_params) {
140
+ throw providerErrors.unsupportedMethod("switchChain. Please call it on eoaProvider");
141
+ }
142
+ async lookupNetwork() {
143
+ throw providerErrors.unsupportedMethod("lookupNetwork. Please call it on eoaProvider");
144
+ }
145
+ async setupChainSwitchMiddleware() {
146
+ return this.setupProvider(this.state.eoaProvider);
147
+ }
148
+ }
149
+ _AccountAbstractionProvider = AccountAbstractionProvider;
150
+ _defineProperty(AccountAbstractionProvider, "getProviderInstance", async params => {
151
+ const providerInstance = new _AccountAbstractionProvider({
152
+ config: params
153
+ });
154
+ await providerInstance.setupProvider(params.eoaProvider);
155
+ providerInstance.update({
156
+ eoaProvider: params.eoaProvider
157
+ });
158
+ return providerInstance;
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
+ };
226
+
227
+ export { accountAbstractionProvider };