@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,134 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var baseControllers = require('@toruslabs/base-controllers');
5
+ var auth = require('@web3auth/auth');
6
+ var loglevel = require('loglevel');
7
+ var enums = require('./enums.js');
8
+ var utils = require('./utils.js');
9
+
10
+ // preload for iframe doesn't work https://bugs.chromium.org/p/chromium/issues/detail?id=593267
11
+ (async function preLoadIframe() {
12
+ try {
13
+ if (typeof document === "undefined") return;
14
+ const nftCheckoutIframeHtml = document.createElement("link");
15
+ const nftCheckoutUrl = enums.NFT_CHECKOUT_URLS.testing; // TODO: use production by default once we have it
16
+ nftCheckoutIframeHtml.href = `${nftCheckoutUrl}`;
17
+ nftCheckoutIframeHtml.crossOrigin = "anonymous";
18
+ nftCheckoutIframeHtml.type = "text/html";
19
+ nftCheckoutIframeHtml.rel = "prefetch";
20
+ if (nftCheckoutIframeHtml.relList && nftCheckoutIframeHtml.relList.supports) {
21
+ if (nftCheckoutIframeHtml.relList.supports("prefetch")) {
22
+ document.head.appendChild(nftCheckoutIframeHtml);
23
+ }
24
+ }
25
+ } catch (error) {
26
+ loglevel.warn(error);
27
+ }
28
+ })();
29
+ class NFTCheckoutEmbed {
30
+ constructor({
31
+ modalZIndex = 99999,
32
+ clientId
33
+ }) {
34
+ _defineProperty(this, "clientId", void 0);
35
+ _defineProperty(this, "isInitialized", void 0);
36
+ _defineProperty(this, "modalZIndex", void 0);
37
+ _defineProperty(this, "buildEnv", void 0);
38
+ _defineProperty(this, "embedNonce", baseControllers.randomId());
39
+ this.isInitialized = false;
40
+ this.modalZIndex = modalZIndex;
41
+ this.clientId = clientId;
42
+ }
43
+ async init(params) {
44
+ if (this.isInitialized) throw new Error("Already initialized");
45
+ if (this.getIframe()) throw new Error("Already initialized NFT Checkout iframe");
46
+ const {
47
+ buildEnv = enums.NFT_CHECKOUT_BUILD_ENV.TESTING,
48
+ // TODO: use production by default once we have it
49
+ whiteLabel
50
+ } = params || {};
51
+ this.buildEnv = buildEnv;
52
+
53
+ // construct nft checkout url
54
+ const nftCheckoutIframeUrl = new URL(enums.NFT_CHECKOUT_URLS[this.buildEnv]);
55
+ const hashParams = new URLSearchParams();
56
+ hashParams.append("origin", window.location.origin);
57
+ nftCheckoutIframeUrl.hash = hashParams.toString();
58
+
59
+ // create iframe
60
+ const colorScheme = utils.getTheme((whiteLabel === null || whiteLabel === void 0 ? void 0 : whiteLabel.mode) || auth.THEME_MODES.light);
61
+ const nftCheckoutIframe = utils.htmlToElement(`<iframe
62
+ id="nftCheckoutIframe-${this.embedNonce}"
63
+ class="nftCheckoutIframe-${this.embedNonce}"
64
+ sandbox="allow-popups allow-scripts allow-same-origin allow-forms allow-modals allow-downloads allow-popups-to-escape-sandbox"
65
+ src="${nftCheckoutIframeUrl.href}"
66
+ style="display: none; position: fixed; top: 0; right: 0; width: 100%;
67
+ height: 100%; border: none; border-radius: 0; z-index: ${this.modalZIndex.toString()};
68
+ color-scheme: ${colorScheme}"
69
+ allow="clipboard-write"
70
+ ></iframe>`);
71
+ return new Promise((resolve, reject) => {
72
+ try {
73
+ window.document.body.appendChild(nftCheckoutIframe);
74
+ const handleMessage = async ev => {
75
+ if (ev.origin !== nftCheckoutIframeUrl.origin) return;
76
+ if (ev.data.type === enums.NFT_CHECKOUT_EMBED_MESSAGE_TYPES.SETUP_COMPLETE) {
77
+ // send init params here
78
+ nftCheckoutIframe.contentWindow.postMessage({
79
+ type: enums.NFT_CHECKOUT_EMBED_MESSAGE_TYPES.INIT,
80
+ clientId: this.clientId,
81
+ whiteLabel
82
+ }, nftCheckoutIframeUrl.origin);
83
+ this.isInitialized = true;
84
+ resolve();
85
+ } else if (ev.data.type === enums.NFT_CHECKOUT_EMBED_MESSAGE_TYPES.HIDE_NFT_CHECKOUT) {
86
+ this.hide();
87
+ }
88
+ };
89
+ window.addEventListener("message", handleMessage);
90
+ } catch (error) {
91
+ reject(error);
92
+ }
93
+ });
94
+ }
95
+ show({
96
+ receiverAddress,
97
+ contractId
98
+ }) {
99
+ if (!this.isInitialized) throw new Error("Call init() first");
100
+ const nftCheckoutIframe = this.getIframe();
101
+ if (!nftCheckoutIframe) throw new Error("Iframe is not initialized");
102
+
103
+ // send message to iframe
104
+ const nftCheckoutOrigin = new URL(enums.NFT_CHECKOUT_URLS[this.buildEnv]).origin;
105
+ nftCheckoutIframe.contentWindow.postMessage({
106
+ type: enums.NFT_CHECKOUT_EMBED_MESSAGE_TYPES.SHOW_NFT_CHECKOUT,
107
+ contractId,
108
+ receiverAddress
109
+ }, nftCheckoutOrigin);
110
+ // show iframe
111
+ nftCheckoutIframe.style.display = "block";
112
+ }
113
+ hide() {
114
+ if (!this.isInitialized) throw new Error("Call init() first");
115
+ const nftCheckoutIframe = this.getIframe();
116
+ if (!nftCheckoutIframe) throw new Error("Iframe is not initialized");
117
+ // hide iframe
118
+ nftCheckoutIframe.style.display = "none";
119
+ }
120
+ cleanup() {
121
+ const nftCheckoutIframe = this.getIframe();
122
+ if (nftCheckoutIframe) nftCheckoutIframe.remove();
123
+ }
124
+ getIframe() {
125
+ function isElement(element) {
126
+ return element instanceof Element || element instanceof Document;
127
+ }
128
+ const nftCheckoutIframe = window.document.getElementById(`nftCheckoutIframe-${this.embedNonce}`);
129
+ if (!isElement(nftCheckoutIframe)) return null;
130
+ return nftCheckoutIframe;
131
+ }
132
+ }
133
+
134
+ exports.NFTCheckoutEmbed = NFTCheckoutEmbed;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ const NFT_CHECKOUT_BUILD_ENV = {
4
+ PRODUCTION: "production",
5
+ STAGING: "staging",
6
+ DEVELOPMENT: "development",
7
+ TESTING: "testing"
8
+ };
9
+ const NFT_CHECKOUT_URLS = {
10
+ [NFT_CHECKOUT_BUILD_ENV.DEVELOPMENT]: "http://localhost:4050",
11
+ [NFT_CHECKOUT_BUILD_ENV.TESTING]: "https://develop-nft-checkout.web3auth.io",
12
+ [NFT_CHECKOUT_BUILD_ENV.STAGING]: "https://staging-nft-checkout.web3auth.io",
13
+ [NFT_CHECKOUT_BUILD_ENV.PRODUCTION]: "https://nft-checkout.web3auth.io"
14
+ };
15
+ const NFT_CHECKOUT_EMBED_MESSAGE_TYPES = {
16
+ INIT: "init",
17
+ SETUP_COMPLETE: "setup_complete",
18
+ SHOW_NFT_CHECKOUT: "show_nft_checkout",
19
+ HIDE_NFT_CHECKOUT: "hide_nft_checkout"
20
+ };
21
+
22
+ exports.NFT_CHECKOUT_BUILD_ENV = NFT_CHECKOUT_BUILD_ENV;
23
+ exports.NFT_CHECKOUT_EMBED_MESSAGE_TYPES = NFT_CHECKOUT_EMBED_MESSAGE_TYPES;
24
+ exports.NFT_CHECKOUT_URLS = NFT_CHECKOUT_URLS;
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var auth = require('@web3auth/auth');
5
+ var embed = require('./embed.js');
6
+ var IPlugin = require('../../base/plugin/IPlugin.js');
7
+ var errors = require('../../base/plugin/errors.js');
8
+ var constants = require('../../base/connector/constants.js');
9
+
10
+ class NFTCheckoutPlugin extends auth.SafeEventEmitter {
11
+ constructor(params) {
12
+ super();
13
+ _defineProperty(this, "name", IPlugin.EVM_PLUGINS.NFT_CHECKOUT);
14
+ _defineProperty(this, "status", IPlugin.PLUGIN_STATUS.DISCONNECTED);
15
+ _defineProperty(this, "SUPPORTED_CONNECTORS", ["all"]);
16
+ _defineProperty(this, "pluginNamespace", IPlugin.PLUGIN_NAMESPACES.EIP155);
17
+ _defineProperty(this, "web3auth", null);
18
+ _defineProperty(this, "nftCheckoutEmbedInstance", null);
19
+ _defineProperty(this, "isInitialized", false);
20
+ _defineProperty(this, "receiverAddress", null);
21
+ this.nftCheckoutEmbedInstance = new embed.NFTCheckoutEmbed(params);
22
+ }
23
+ async initWithWeb3Auth(web3auth, whiteLabel) {
24
+ if (this.isInitialized) return;
25
+ if (!web3auth) throw errors.NFTCheckoutPluginError.web3authRequired();
26
+ this.web3auth = web3auth;
27
+ await this.nftCheckoutEmbedInstance.init({
28
+ whiteLabel
29
+ });
30
+ this.isInitialized = true;
31
+ this.status = IPlugin.PLUGIN_STATUS.READY;
32
+ this.emit(IPlugin.PLUGIN_EVENTS.READY);
33
+ }
34
+ async connect() {
35
+ if (!this.isInitialized) throw errors.NFTCheckoutPluginError.notInitialized();
36
+ this.emit(IPlugin.PLUGIN_EVENTS.CONNECTING);
37
+ this.status = IPlugin.PLUGIN_STATUS.CONNECTING;
38
+ if (this.web3auth.status !== constants.CONNECTOR_STATUS.CONNECTED) throw errors.NFTCheckoutPluginError.web3AuthNotConnected();
39
+ if (!this.web3auth.provider) throw errors.NFTCheckoutPluginError.providerRequired();
40
+ const accounts = await this.web3auth.provider.request({
41
+ method: "eth_accounts"
42
+ });
43
+ if (accounts.length === 0) throw errors.NFTCheckoutPluginError.web3AuthNotConnected();
44
+ this.receiverAddress = accounts[0];
45
+ this.emit(IPlugin.PLUGIN_EVENTS.CONNECTED);
46
+ this.status = IPlugin.PLUGIN_STATUS.CONNECTED;
47
+ }
48
+ async show({
49
+ contractId
50
+ }) {
51
+ if (this.status !== IPlugin.PLUGIN_STATUS.CONNECTED) errors.NFTCheckoutPluginError.pluginNotConnected();
52
+ return this.nftCheckoutEmbedInstance.show({
53
+ receiverAddress: this.receiverAddress,
54
+ contractId
55
+ });
56
+ }
57
+ disconnect() {
58
+ if (this.status !== IPlugin.PLUGIN_STATUS.CONNECTED) errors.NFTCheckoutPluginError.pluginNotConnected();
59
+ this.emit(IPlugin.PLUGIN_EVENTS.DISCONNECTED);
60
+ this.status = IPlugin.PLUGIN_STATUS.DISCONNECTED;
61
+ return Promise.resolve();
62
+ }
63
+ cleanup() {
64
+ this.nftCheckoutEmbedInstance.cleanup();
65
+ this.receiverAddress = null;
66
+ this.isInitialized = false;
67
+ return Promise.resolve();
68
+ }
69
+ }
70
+ const nftCheckoutPlugin = params => {
71
+ return () => {
72
+ return new NFTCheckoutPlugin(params);
73
+ };
74
+ };
75
+
76
+ exports.nftCheckoutPlugin = nftCheckoutPlugin;
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var auth = require('@web3auth/auth');
4
+
5
+ const htmlToElement = html => {
6
+ const template = window.document.createElement("template");
7
+ const trimmedHtml = html.trim(); // Never return a text node of whitespace as the result
8
+ template.innerHTML = trimmedHtml;
9
+ return template.content.firstChild;
10
+ };
11
+ const getTheme = theme => {
12
+ if (theme === auth.THEME_MODES.light) return "light";
13
+ if (theme === auth.THEME_MODES.dark) return "dark";
14
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
15
+ };
16
+
17
+ exports.getTheme = getTheme;
18
+ exports.htmlToElement = htmlToElement;
@@ -0,0 +1,129 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var auth = require('@web3auth/auth');
5
+ var IChainInterface = require('../../base/chain/IChainInterface.js');
6
+ var loglevel = require('../../base/loglevel.js');
7
+ var index = require('../../base/wallet/index.js');
8
+ var wsEmbed = require('@web3auth/ws-embed');
9
+ var errors = require('../../base/plugin/errors.js');
10
+ var IPlugin = require('../../base/plugin/IPlugin.js');
11
+ var constants = require('../../base/connector/constants.js');
12
+
13
+ // TODO: support project config items here. incl. key export flag, multiple chains
14
+ class WalletServicesPlugin extends auth.SafeEventEmitter {
15
+ constructor(...args) {
16
+ super(...args);
17
+ _defineProperty(this, "name", IPlugin.EVM_PLUGINS.WALLET_SERVICES);
18
+ _defineProperty(this, "status", IPlugin.PLUGIN_STATUS.DISCONNECTED);
19
+ _defineProperty(this, "SUPPORTED_CONNECTORS", [index.WALLET_CONNECTORS.AUTH, index.WALLET_CONNECTORS.SFA]);
20
+ _defineProperty(this, "pluginNamespace", IPlugin.PLUGIN_NAMESPACES.MULTICHAIN);
21
+ _defineProperty(this, "wsEmbedInstance", void 0);
22
+ _defineProperty(this, "provider", null);
23
+ _defineProperty(this, "web3auth", null);
24
+ _defineProperty(this, "isInitialized", false);
25
+ }
26
+ get proxyProvider() {
27
+ var _this$wsEmbedInstance;
28
+ return (_this$wsEmbedInstance = this.wsEmbedInstance) !== null && _this$wsEmbedInstance !== void 0 && _this$wsEmbedInstance.provider ? this.wsEmbedInstance.provider : null;
29
+ }
30
+ async initWithWeb3Auth(web3auth, _whiteLabel) {
31
+ if (this.isInitialized) return;
32
+ if (!web3auth) throw errors.WalletServicesPluginError.web3authRequired();
33
+ if (web3auth.provider && !this.SUPPORTED_CONNECTORS.includes(web3auth.connectedConnectorName)) throw errors.WalletServicesPluginError.notInitialized();
34
+ const currentChainConfig = web3auth.currentChain;
35
+ if (![IChainInterface.CHAIN_NAMESPACES.EIP155, IChainInterface.CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig.chainNamespace)) throw errors.WalletServicesPluginError.unsupportedChainNamespace();
36
+
37
+ // Not connected yet to auth
38
+ if (web3auth.provider) {
39
+ this.provider = web3auth.provider;
40
+ }
41
+ this.web3auth = web3auth;
42
+
43
+ // Auth connector uses WS embed
44
+ const authInstance = web3auth.getConnector(index.WALLET_CONNECTORS.AUTH);
45
+ if (!authInstance || !authInstance.wsEmbed) throw errors.WalletServicesPluginError.web3AuthNotConnected();
46
+ this.wsEmbedInstance = authInstance.wsEmbed;
47
+ this.isInitialized = true;
48
+ this.status = IPlugin.PLUGIN_STATUS.READY;
49
+ this.emit(IPlugin.PLUGIN_EVENTS.READY);
50
+ }
51
+ initWithProvider() {
52
+ throw new Error("Method not implemented.");
53
+ }
54
+ async connect() {
55
+ // if web3auth is being used and connected to unsupported connector throw error
56
+ if (!this.isInitialized) throw errors.WalletServicesPluginError.notInitialized();
57
+ this.emit(IPlugin.PLUGIN_EVENTS.CONNECTING);
58
+ this.status = IPlugin.PLUGIN_STATUS.CONNECTING;
59
+ if (!this.provider) {
60
+ var _this$web3auth;
61
+ if ((_this$web3auth = this.web3auth) !== null && _this$web3auth !== void 0 && _this$web3auth.provider) {
62
+ this.provider = this.web3auth.provider;
63
+ }
64
+ }
65
+ if (this.web3auth.status !== constants.CONNECTOR_STATUS.CONNECTED) {
66
+ throw errors.WalletServicesPluginError.web3AuthNotConnected();
67
+ } else if (!this.web3auth.provider) {
68
+ throw errors.WalletServicesPluginError.providerRequired();
69
+ }
70
+ try {
71
+ this.emit(IPlugin.PLUGIN_EVENTS.CONNECTED);
72
+ this.status = IPlugin.PLUGIN_STATUS.CONNECTED;
73
+ } catch (error) {
74
+ loglevel.log.error(error);
75
+ this.status = IPlugin.PLUGIN_STATUS.ERRORED;
76
+ this.emit(IPlugin.PLUGIN_EVENTS.ERRORED, {
77
+ error: error.message || "Something went wrong"
78
+ });
79
+ }
80
+ }
81
+ async showWalletConnectScanner(showWalletConnectParams) {
82
+ var _this$wsEmbedInstance2;
83
+ if (!((_this$wsEmbedInstance2 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance2 !== void 0 && _this$wsEmbedInstance2.isLoggedIn)) throw errors.WalletServicesPluginError.walletPluginNotConnected();
84
+ return this.wsEmbedInstance.showWalletConnectScanner(showWalletConnectParams);
85
+ }
86
+ async showCheckout(showCheckoutParams) {
87
+ var _this$wsEmbedInstance3;
88
+ if (!((_this$wsEmbedInstance3 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance3 !== void 0 && _this$wsEmbedInstance3.isLoggedIn)) throw errors.WalletServicesPluginError.walletPluginNotConnected();
89
+ return this.wsEmbedInstance.showCheckout(showCheckoutParams);
90
+ }
91
+ async showWalletUi(showWalletUiParams) {
92
+ var _this$wsEmbedInstance4;
93
+ if (!((_this$wsEmbedInstance4 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance4 !== void 0 && _this$wsEmbedInstance4.isLoggedIn)) throw errors.WalletServicesPluginError.walletPluginNotConnected();
94
+ return this.wsEmbedInstance.showWalletUi(showWalletUiParams);
95
+ }
96
+ async showSwap(showSwapParams) {
97
+ var _this$wsEmbedInstance5;
98
+ if (!((_this$wsEmbedInstance5 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance5 !== void 0 && _this$wsEmbedInstance5.isLoggedIn)) throw errors.WalletServicesPluginError.walletPluginNotConnected();
99
+ return this.wsEmbedInstance.showSwap(showSwapParams);
100
+ }
101
+ async cleanup() {
102
+ var _this$wsEmbedInstance6;
103
+ return (_this$wsEmbedInstance6 = this.wsEmbedInstance) === null || _this$wsEmbedInstance6 === void 0 ? void 0 : _this$wsEmbedInstance6.cleanUp();
104
+ }
105
+ async disconnect() {
106
+ var _this$wsEmbedInstance7;
107
+ if (this.status !== IPlugin.PLUGIN_STATUS.CONNECTED) throw errors.WalletServicesPluginError.invalidSession("Wallet Services plugin is not connected");
108
+ if ((_this$wsEmbedInstance7 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance7 !== void 0 && _this$wsEmbedInstance7.isLoggedIn) {
109
+ await this.wsEmbedInstance.logout();
110
+ }
111
+ this.emit(IPlugin.PLUGIN_EVENTS.DISCONNECTED);
112
+ this.status = IPlugin.PLUGIN_STATUS.DISCONNECTED;
113
+ }
114
+ }
115
+ const walletServicesPlugin = () => {
116
+ return () => {
117
+ return new WalletServicesPlugin();
118
+ };
119
+ };
120
+
121
+ Object.defineProperty(exports, "BUTTON_POSITION", {
122
+ enumerable: true,
123
+ get: function () { return wsEmbed.BUTTON_POSITION; }
124
+ });
125
+ Object.defineProperty(exports, "CONFIRMATION_STRATEGY", {
126
+ enumerable: true,
127
+ get: function () { return wsEmbed.CONFIRMATION_STRATEGY; }
128
+ });
129
+ exports.walletServicesPlugin = walletServicesPlugin;
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ var AccountAbstractionProvider = require('./providers/AccountAbstractionProvider.js');
4
+ var ethereumControllers = require('@toruslabs/ethereum-controllers');
5
+
6
+
7
+
8
+ exports.accountAbstractionProvider = AccountAbstractionProvider.accountAbstractionProvider;
9
+ Object.defineProperty(exports, "BiconomySmartAccount", {
10
+ enumerable: true,
11
+ get: function () { return ethereumControllers.BiconomySmartAccount; }
12
+ });
13
+ Object.defineProperty(exports, "KernelSmartAccount", {
14
+ enumerable: true,
15
+ get: function () { return ethereumControllers.KernelSmartAccount; }
16
+ });
17
+ Object.defineProperty(exports, "NexusSmartAccount", {
18
+ enumerable: true,
19
+ get: function () { return ethereumControllers.NexusSmartAccount; }
20
+ });
21
+ Object.defineProperty(exports, "SMART_ACCOUNT", {
22
+ enumerable: true,
23
+ get: function () { return ethereumControllers.SMART_ACCOUNT; }
24
+ });
25
+ Object.defineProperty(exports, "SafeSmartAccount", {
26
+ enumerable: true,
27
+ get: function () { return ethereumControllers.SafeSmartAccount; }
28
+ });
29
+ Object.defineProperty(exports, "TrustSmartAccount", {
30
+ enumerable: true,
31
+ get: function () { return ethereumControllers.TrustSmartAccount; }
32
+ });
@@ -0,0 +1,232 @@
1
+ 'use strict';
2
+
3
+ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
+ var ethereumControllers = require('@toruslabs/ethereum-controllers');
6
+ var auth = require('@web3auth/auth');
7
+ var viem = require('viem');
8
+ var accountAbstraction = require('viem/account-abstraction');
9
+ var IChainInterface = require('../../../base/chain/IChainInterface.js');
10
+ var index = require('../../../base/errors/index.js');
11
+ var baseProvider = require('../../base-provider/baseProvider.js');
12
+ var ethRpcMiddlewares = require('../rpc/ethRpcMiddlewares.js');
13
+ var utils = require('./utils.js');
14
+
15
+ var _AccountAbstractionProvider;
16
+ class AccountAbstractionProvider extends baseProvider.BaseProvider {
17
+ constructor({
18
+ config,
19
+ state
20
+ }) {
21
+ super({
22
+ config,
23
+ state
24
+ });
25
+ _defineProperty(this, "PROVIDER_CHAIN_NAMESPACE", IChainInterface.CHAIN_NAMESPACES.EIP155);
26
+ _defineProperty(this, "_smartAccount", void 0);
27
+ _defineProperty(this, "_publicClient", void 0);
28
+ _defineProperty(this, "_bundlerClient", void 0);
29
+ _defineProperty(this, "_paymasterClient", void 0);
30
+ this.update({
31
+ chainId: config.chain.chainId
32
+ });
33
+ }
34
+ get smartAccount() {
35
+ return this._smartAccount;
36
+ }
37
+ get bundlerClient() {
38
+ return this._bundlerClient;
39
+ }
40
+ get paymasterClient() {
41
+ return this._paymasterClient;
42
+ }
43
+ get publicClient() {
44
+ return this._publicClient;
45
+ }
46
+ async enable() {
47
+ if (!this.state.eoaProvider) throw auth.providerErrors.custom({
48
+ message: "eoaProvider is not found in state, please pass it",
49
+ code: 4902
50
+ });
51
+ await this.setupProvider(this.state.eoaProvider);
52
+ return this._providerEngineProxy.request({
53
+ method: "eth_accounts"
54
+ });
55
+ }
56
+ async setupProvider(eoaProvider) {
57
+ var _this$config$bundlerC;
58
+ const {
59
+ currentChain
60
+ } = this;
61
+ const {
62
+ chainNamespace
63
+ } = currentChain;
64
+ if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw index.WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
65
+ const chain = viem.defineChain({
66
+ id: Number.parseInt(currentChain.chainId, 16),
67
+ // id in number form
68
+ name: currentChain.displayName,
69
+ rpcUrls: {
70
+ default: {
71
+ http: [currentChain.rpcTarget],
72
+ webSocket: [currentChain.wsTarget]
73
+ }
74
+ },
75
+ blockExplorers: currentChain.blockExplorerUrl ? {
76
+ default: {
77
+ name: "explorer",
78
+ // TODO: correct name if chain config has it
79
+ url: currentChain.blockExplorerUrl
80
+ }
81
+ } : undefined,
82
+ nativeCurrency: {
83
+ name: currentChain.tickerName,
84
+ symbol: currentChain.ticker,
85
+ decimals: currentChain.decimals || 18
86
+ }
87
+ });
88
+ // setup public client for viem smart account
89
+ this._publicClient = viem.createPublicClient({
90
+ chain,
91
+ transport: viem.http(currentChain.rpcTarget)
92
+ });
93
+ this._smartAccount = await this.config.smartAccountInit.getSmartAccount({
94
+ owner: eoaProvider,
95
+ client: this._publicClient
96
+ });
97
+
98
+ // setup bundler and paymaster
99
+ if (this.config.paymasterConfig) {
100
+ var _this$config$paymaste;
101
+ this._paymasterClient = accountAbstraction.createPaymasterClient(_objectSpread(_objectSpread({}, this.config.paymasterConfig), {}, {
102
+ transport: (_this$config$paymaste = this.config.paymasterConfig.transport) !== null && _this$config$paymaste !== void 0 ? _this$config$paymaste : viem.http(this.config.paymasterConfig.url)
103
+ }));
104
+ }
105
+ this._bundlerClient = accountAbstraction.createBundlerClient(_objectSpread(_objectSpread({}, this.config.bundlerConfig), {}, {
106
+ account: this.smartAccount,
107
+ client: this._publicClient,
108
+ transport: (_this$config$bundlerC = this.config.bundlerConfig.transport) !== null && _this$config$bundlerC !== void 0 ? _this$config$bundlerC : viem.http(this.config.bundlerConfig.url),
109
+ paymaster: this._paymasterClient
110
+ }));
111
+ const providerHandlers = utils.getProviderHandlers({
112
+ bundlerClient: this._bundlerClient,
113
+ smartAccount: this._smartAccount,
114
+ chain,
115
+ eoaProvider
116
+ });
117
+
118
+ // setup rpc engine and AA middleware
119
+ const engine = new auth.JRPCEngine();
120
+ const aaMiddleware = await ethRpcMiddlewares.createAaMiddleware({
121
+ eoaProvider,
122
+ handlers: providerHandlers
123
+ });
124
+ engine.push(aaMiddleware);
125
+ const eoaMiddleware = ethRpcMiddlewares.eoaProviderAsMiddleware(eoaProvider);
126
+ engine.push(eoaMiddleware);
127
+ const provider = auth.providerFromEngine(engine);
128
+ this.updateProviderEngineProxy(provider);
129
+ eoaProvider.once("chainChanged", chainId => {
130
+ this.update({
131
+ chainId
132
+ });
133
+ this.setupChainSwitchMiddleware();
134
+ this.emit("chainChanged", chainId);
135
+ });
136
+ }
137
+ async updateAccount(_params) {
138
+ throw auth.providerErrors.unsupportedMethod("updateAccount. Please call it on eoaProvider");
139
+ }
140
+ async switchChain(_params) {
141
+ throw auth.providerErrors.unsupportedMethod("switchChain. Please call it on eoaProvider");
142
+ }
143
+ async lookupNetwork() {
144
+ throw auth.providerErrors.unsupportedMethod("lookupNetwork. Please call it on eoaProvider");
145
+ }
146
+ async setupChainSwitchMiddleware() {
147
+ return this.setupProvider(this.state.eoaProvider);
148
+ }
149
+ }
150
+ _AccountAbstractionProvider = AccountAbstractionProvider;
151
+ _defineProperty(AccountAbstractionProvider, "getProviderInstance", async params => {
152
+ const providerInstance = new _AccountAbstractionProvider({
153
+ config: params
154
+ });
155
+ await providerInstance.setupProvider(params.eoaProvider);
156
+ providerInstance.update({
157
+ eoaProvider: params.eoaProvider
158
+ });
159
+ return providerInstance;
160
+ });
161
+ const accountAbstractionProvider = async ({
162
+ accountAbstractionConfig,
163
+ chain,
164
+ chains,
165
+ provider
166
+ }) => {
167
+ let smartAccountInit;
168
+ const {
169
+ smartAccountType,
170
+ smartAccountConfig,
171
+ bundlerConfig,
172
+ paymasterConfig
173
+ } = accountAbstractionConfig;
174
+ switch (smartAccountType) {
175
+ case ethereumControllers.SMART_ACCOUNT.BICONOMY:
176
+ {
177
+ const {
178
+ BiconomySmartAccount
179
+ } = await import('@toruslabs/ethereum-controllers');
180
+ smartAccountInit = new BiconomySmartAccount(smartAccountConfig);
181
+ break;
182
+ }
183
+ case ethereumControllers.SMART_ACCOUNT.KERNEL:
184
+ {
185
+ const {
186
+ KernelSmartAccount
187
+ } = await import('@toruslabs/ethereum-controllers');
188
+ smartAccountInit = new KernelSmartAccount(smartAccountConfig);
189
+ break;
190
+ }
191
+ case ethereumControllers.SMART_ACCOUNT.NEXUS:
192
+ {
193
+ const {
194
+ NexusSmartAccount
195
+ } = await import('@toruslabs/ethereum-controllers');
196
+ smartAccountInit = new NexusSmartAccount(smartAccountConfig);
197
+ break;
198
+ }
199
+ case ethereumControllers.SMART_ACCOUNT.SAFE:
200
+ {
201
+ const {
202
+ SafeSmartAccount
203
+ } = await import('@toruslabs/ethereum-controllers');
204
+ smartAccountInit = new SafeSmartAccount(smartAccountConfig);
205
+ break;
206
+ }
207
+ case ethereumControllers.SMART_ACCOUNT.TRUST:
208
+ {
209
+ const {
210
+ TrustSmartAccount
211
+ } = await import('@toruslabs/ethereum-controllers');
212
+ smartAccountInit = new TrustSmartAccount(smartAccountConfig);
213
+ break;
214
+ }
215
+ default:
216
+ throw new Error("Smart account type not supported");
217
+ }
218
+ return AccountAbstractionProvider.getProviderInstance({
219
+ eoaProvider: provider,
220
+ smartAccountInit,
221
+ chain,
222
+ chains,
223
+ bundlerConfig,
224
+ paymasterConfig
225
+ });
226
+ };
227
+
228
+ Object.defineProperty(exports, "SMART_ACCOUNT", {
229
+ enumerable: true,
230
+ get: function () { return ethereumControllers.SMART_ACCOUNT; }
231
+ });
232
+ exports.accountAbstractionProvider = accountAbstractionProvider;