@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,169 @@
1
+ import { CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
2
+
3
+ let DEFAULT_EIP155_METHODS = /*#__PURE__*/function (DEFAULT_EIP155_METHODS) {
4
+ DEFAULT_EIP155_METHODS["ETH_SEND_TRANSACTION"] = "eth_sendTransaction";
5
+ DEFAULT_EIP155_METHODS["ETH_SIGN_TRANSACTION"] = "eth_signTransaction";
6
+ DEFAULT_EIP155_METHODS["ETH_SIGN"] = "eth_sign";
7
+ DEFAULT_EIP155_METHODS["PERSONAL_SIGN"] = "personal_sign";
8
+ DEFAULT_EIP155_METHODS["ETH_SIGN_TYPED_DATA"] = "eth_signTypedData";
9
+ DEFAULT_EIP155_METHODS["ETH_SIGN_TYPED_DATA_V3"] = "eth_signTypedData_v3";
10
+ DEFAULT_EIP155_METHODS["ETH_SIGN_TYPED_DATA_V4"] = "eth_signTypedData_v4";
11
+ DEFAULT_EIP155_METHODS["ADD_ETHEREUM_CHAIN"] = "wallet_addEthereumChain";
12
+ DEFAULT_EIP155_METHODS["SWITCH_ETHEREUM_CHAIN"] = "wallet_switchEthereumChain";
13
+ return DEFAULT_EIP155_METHODS;
14
+ }({});
15
+ let DEFAULT_SOLANA_METHODS = /*#__PURE__*/function (DEFAULT_SOLANA_METHODS) {
16
+ DEFAULT_SOLANA_METHODS["SIGN_TRANSACTION"] = "solana_signTransaction";
17
+ DEFAULT_SOLANA_METHODS["SIGN_MESSAGE"] = "solana_signMessage";
18
+ return DEFAULT_SOLANA_METHODS;
19
+ }({});
20
+ let DEFAULT_EIP_155_EVENTS = /*#__PURE__*/function (DEFAULT_EIP_155_EVENTS) {
21
+ DEFAULT_EIP_155_EVENTS["ETH_CHAIN_CHANGED"] = "chainChanged";
22
+ DEFAULT_EIP_155_EVENTS["ETH_ACCOUNTS_CHANGED"] = "accountsChanged";
23
+ return DEFAULT_EIP_155_EVENTS;
24
+ }({});
25
+ let DEFAULT_SOLANA_EVENTS = /*#__PURE__*/function (DEFAULT_SOLANA_EVENTS) {
26
+ DEFAULT_SOLANA_EVENTS["SOL_CHAIN_CHANGED"] = "chainChanged";
27
+ DEFAULT_SOLANA_EVENTS["SOL_ACCOUNTS_CHANGED"] = "accountsChanged";
28
+ return DEFAULT_SOLANA_EVENTS;
29
+ }({});
30
+ const SOLANA_CAIP_CHAIN_MAP = {
31
+ "0x65": "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
32
+ "0x66": "4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z",
33
+ "0x67": "EtWTRABZaYq6iMfeYKouRu166VU2xqa1"
34
+ };
35
+
36
+ /**
37
+ * Extracts a name for the site from the DOM
38
+ */
39
+ const getSiteName = window => {
40
+ const {
41
+ document
42
+ } = window;
43
+ const siteName = document.querySelector('head > meta[property="og:site_name"]');
44
+ if (siteName) {
45
+ return siteName.content;
46
+ }
47
+ const metaTitle = document.querySelector('head > meta[name="title"]');
48
+ if (metaTitle) {
49
+ return metaTitle.content;
50
+ }
51
+ if (document.title && document.title.length > 0) {
52
+ return document.title;
53
+ }
54
+ return window.location.hostname;
55
+ };
56
+
57
+ /**
58
+ * Returns whether the given image URL exists
59
+ * @param url - the url of the image
60
+ * @returns - whether the image exists
61
+ */
62
+ function imgExists(url) {
63
+ return new Promise((resolve, reject) => {
64
+ try {
65
+ const img = document.createElement("img");
66
+ img.onload = () => resolve(true);
67
+ img.onerror = () => resolve(false);
68
+ img.src = url;
69
+ } catch (e) {
70
+ reject(e);
71
+ }
72
+ });
73
+ }
74
+
75
+ /**
76
+ * Extracts an icon for the site from the DOM
77
+ */
78
+ async function getSiteIcon(window) {
79
+ const {
80
+ document
81
+ } = window;
82
+
83
+ // Use the site's favicon if it exists
84
+ let icon = document.querySelector('head > link[rel="shortcut icon"]');
85
+ if (icon && (await imgExists(icon.href))) {
86
+ return icon.href;
87
+ }
88
+
89
+ // Search through available icons in no particular order
90
+ icon = Array.from(document.querySelectorAll('head > link[rel="icon"]')).find(_icon => Boolean(_icon.href)) || null;
91
+ if (icon && (await imgExists(icon.href))) {
92
+ return icon.href;
93
+ }
94
+ return null;
95
+ }
96
+
97
+ /**
98
+ * Gets site metadata and returns it
99
+ *
100
+ */
101
+ const getSiteMetadata = async () => ({
102
+ name: getSiteName(window),
103
+ icon: await getSiteIcon(window)
104
+ });
105
+ const getNamespacesFromChains = chains => {
106
+ const supportedNamespaces = [];
107
+ chains.forEach(chainId => {
108
+ const [namespace] = chainId.split(":");
109
+ if (!supportedNamespaces.includes(namespace)) {
110
+ supportedNamespaces.push(namespace);
111
+ }
112
+ });
113
+ return supportedNamespaces;
114
+ };
115
+ const getSupportedMethodsByNamespace = namespace => {
116
+ switch (namespace) {
117
+ case CHAIN_NAMESPACES.EIP155:
118
+ return Object.values(DEFAULT_EIP155_METHODS);
119
+ case CHAIN_NAMESPACES.SOLANA:
120
+ return Object.values(DEFAULT_SOLANA_METHODS);
121
+ default:
122
+ throw new Error(`No default methods for namespace: ${namespace}`);
123
+ }
124
+ };
125
+ const getSupportedEventsByNamespace = namespace => {
126
+ switch (namespace) {
127
+ case CHAIN_NAMESPACES.EIP155:
128
+ return Object.values(DEFAULT_EIP_155_EVENTS);
129
+ case CHAIN_NAMESPACES.SOLANA:
130
+ return Object.values(DEFAULT_SOLANA_EVENTS);
131
+ default:
132
+ throw new Error(`No default events for namespace: ${namespace}`);
133
+ }
134
+ };
135
+ const getRequiredNamespaces = chains => {
136
+ const selectedNamespaces = getNamespacesFromChains(chains);
137
+ return Object.fromEntries(selectedNamespaces.map(namespace => [namespace, {
138
+ methods: getSupportedMethodsByNamespace(namespace),
139
+ chains: chains.filter(chain => chain.startsWith(namespace)),
140
+ events: getSupportedEventsByNamespace(namespace)
141
+ }]));
142
+ };
143
+ const getWalletConnectV2Settings = async (chains, projectID) => {
144
+ const appMetadata = await getSiteMetadata();
145
+ const connectorSettings = {
146
+ walletConnectInitOptions: {
147
+ projectId: projectID,
148
+ relayUrl: "wss://relay.walletconnect.com",
149
+ metadata: {
150
+ name: appMetadata.name,
151
+ description: appMetadata.name,
152
+ url: window.location.origin,
153
+ icons: [appMetadata.icon || ""]
154
+ }
155
+ }
156
+ };
157
+ const chainNamespaces = chains.map(chain => {
158
+ return `${chain.chainNamespace}:${chain.chainNamespace === CHAIN_NAMESPACES.SOLANA ? SOLANA_CAIP_CHAIN_MAP[chain.chainId] : parseInt(chain.chainId, 16)}`;
159
+ });
160
+ const loginSettings = {
161
+ optionalNamespaces: getRequiredNamespaces(chainNamespaces)
162
+ };
163
+ return {
164
+ connectorSettings,
165
+ loginSettings
166
+ };
167
+ };
168
+
169
+ export { DEFAULT_EIP155_METHODS, DEFAULT_EIP_155_EVENTS, DEFAULT_SOLANA_EVENTS, DEFAULT_SOLANA_METHODS, SOLANA_CAIP_CHAIN_MAP, getNamespacesFromChains, getRequiredNamespaces, getSupportedEventsByNamespace, getSupportedMethodsByNamespace, getWalletConnectV2Settings };
@@ -0,0 +1,3 @@
1
+ export { DEFAULT_EIP155_METHODS, DEFAULT_EIP_155_EVENTS, DEFAULT_SOLANA_EVENTS, DEFAULT_SOLANA_METHODS, SOLANA_CAIP_CHAIN_MAP, getNamespacesFromChains, getRequiredNamespaces, getSupportedEventsByNamespace, getSupportedMethodsByNamespace, getWalletConnectV2Settings } from './config.js';
2
+ export { walletConnectV2Connector } from './walletConnectV2Connector.js';
3
+ export { WalletConnectV2Provider } from './WalletConnectV2Provider.js';
@@ -0,0 +1,415 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { signChallenge, verifySignedChallenge } from '@toruslabs/base-controllers';
4
+ import Client from '@walletconnect/sign-client';
5
+ import { isValidArray, getSdkError } from '@walletconnect/utils';
6
+ import { EVM_METHOD_TYPES, SOLANA_METHOD_TYPES } from '@web3auth/ws-embed';
7
+ import deepmerge from 'deepmerge';
8
+ import { CONNECTOR_NAMESPACES, CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
9
+ import { WalletInitializationError, WalletLoginError, Web3AuthError } from '../../base/errors/index.js';
10
+ import { log } from '../../base/loglevel.js';
11
+ import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
12
+ import { getWalletConnectV2Settings } from './config.js';
13
+ import { WalletConnectV2Provider } from './WalletConnectV2Provider.js';
14
+ import { BaseConnector } from '../../base/connector/baseConnector.js';
15
+ import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
16
+ import { getSavedToken, checkIfTokenIsExpired, saveToken } from '../../base/connector/utils.js';
17
+
18
+ class WalletConnectV2Connector extends BaseConnector {
19
+ constructor(options) {
20
+ var _this$connectorOption, _this$connectorOption2, _this$connectorOption3, _this$connectorOption4, _this$connectorOption5;
21
+ super(options);
22
+ _defineProperty(this, "name", WALLET_CONNECTORS.WALLET_CONNECT_V2);
23
+ _defineProperty(this, "connectorNamespace", CONNECTOR_NAMESPACES.MULTICHAIN);
24
+ _defineProperty(this, "currentChainNamespace", CHAIN_NAMESPACES.OTHER);
25
+ _defineProperty(this, "type", CONNECTOR_CATEGORY.EXTERNAL);
26
+ _defineProperty(this, "connectorOptions", void 0);
27
+ _defineProperty(this, "status", CONNECTOR_STATUS.NOT_READY);
28
+ _defineProperty(this, "connectorData", {
29
+ uri: ""
30
+ });
31
+ _defineProperty(this, "connector", null);
32
+ _defineProperty(this, "activeSession", null);
33
+ _defineProperty(this, "wcProvider", null);
34
+ this.connectorOptions = _objectSpread({}, options);
35
+ const {
36
+ qrcodeModal,
37
+ walletConnectInitOptions
38
+ } = (options === null || options === void 0 ? void 0 : options.connectorSettings) || {};
39
+ this.connectorOptions = _objectSpread(_objectSpread({}, this.connectorOptions), {}, {
40
+ connectorSettings: (_this$connectorOption = (_this$connectorOption2 = this.connectorOptions) === null || _this$connectorOption2 === void 0 ? void 0 : _this$connectorOption2.connectorSettings) !== null && _this$connectorOption !== void 0 ? _this$connectorOption : {},
41
+ loginSettings: (_this$connectorOption3 = (_this$connectorOption4 = this.connectorOptions) === null || _this$connectorOption4 === void 0 ? void 0 : _this$connectorOption4.loginSettings) !== null && _this$connectorOption3 !== void 0 ? _this$connectorOption3 : {}
42
+ });
43
+ if (qrcodeModal) this.connectorOptions.connectorSettings.qrcodeModal = qrcodeModal;
44
+ if (walletConnectInitOptions) this.connectorOptions.connectorSettings.walletConnectInitOptions = _objectSpread(_objectSpread({}, (_this$connectorOption5 = this.connectorOptions.connectorSettings.walletConnectInitOptions) !== null && _this$connectorOption5 !== void 0 ? _this$connectorOption5 : {}), walletConnectInitOptions);
45
+ const {
46
+ loginSettings
47
+ } = options;
48
+ if (loginSettings) this.connectorOptions.loginSettings = _objectSpread(_objectSpread({}, this.connectorOptions.loginSettings || {}), loginSettings);
49
+ }
50
+ get connected() {
51
+ return !!this.activeSession;
52
+ }
53
+ get provider() {
54
+ if (this.status !== CONNECTOR_STATUS.NOT_READY && this.wcProvider) {
55
+ return this.wcProvider;
56
+ }
57
+ return null;
58
+ }
59
+ set provider(_) {
60
+ throw new Error("Not implemented");
61
+ }
62
+ async init(options) {
63
+ var _this$connectorOption6;
64
+ const chainConfig = this.coreOptions.chains.find(x => x.chainId === options.chainId);
65
+ super.checkInitializationRequirements({
66
+ chainConfig
67
+ });
68
+ const projectId = (_this$connectorOption6 = this.connectorOptions.connectorSettings) === null || _this$connectorOption6 === void 0 || (_this$connectorOption6 = _this$connectorOption6.walletConnectInitOptions) === null || _this$connectorOption6 === void 0 ? void 0 : _this$connectorOption6.projectId;
69
+ if (!projectId) {
70
+ throw WalletInitializationError.invalidParams("Wallet connect project id is required in wallet connect v2 connector");
71
+ }
72
+ const wc2Settings = await getWalletConnectV2Settings(this.coreOptions.chains, projectId);
73
+ if (!this.connectorOptions.loginSettings || Object.keys(this.connectorOptions.loginSettings).length === 0) {
74
+ this.connectorOptions.loginSettings = wc2Settings.loginSettings;
75
+ }
76
+ this.connectorOptions.connectorSettings = deepmerge(wc2Settings.connectorSettings || {}, this.connectorOptions.connectorSettings || {});
77
+ const {
78
+ connectorSettings
79
+ } = this.connectorOptions;
80
+ this.connector = await Client.init(connectorSettings === null || connectorSettings === void 0 ? void 0 : connectorSettings.walletConnectInitOptions);
81
+ this.wcProvider = new WalletConnectV2Provider({
82
+ config: {
83
+ chain: chainConfig,
84
+ chains: this.coreOptions.chains
85
+ },
86
+ connector: this.connector
87
+ });
88
+ this.emit(CONNECTOR_EVENTS.READY, WALLET_CONNECTORS.WALLET_CONNECT_V2);
89
+ this.status = CONNECTOR_STATUS.READY;
90
+ log.debug("initializing wallet connect v2 connector");
91
+ if (options.autoConnect) {
92
+ await this.checkForPersistedSession();
93
+ if (this.connected) {
94
+ this.rehydrated = true;
95
+ try {
96
+ await this.onConnectHandler({
97
+ chain: chainConfig
98
+ });
99
+ } catch (error) {
100
+ log.error("wallet auto connect", error);
101
+ this.emit(CONNECTOR_EVENTS.ERRORED, error);
102
+ }
103
+ } else {
104
+ this.status = CONNECTOR_STATUS.NOT_READY;
105
+ this.emit(CONNECTOR_EVENTS.CACHE_CLEAR);
106
+ }
107
+ }
108
+ }
109
+ async connect({
110
+ chainId
111
+ }) {
112
+ super.checkConnectionRequirements();
113
+ const chainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
114
+ if (!chainConfig) throw WalletLoginError.connectionError("Chain config is not available");
115
+ if (!this.connector) throw WalletInitializationError.notReady("Wallet connector is not ready yet");
116
+ try {
117
+ // if already connected
118
+ if (this.connected) {
119
+ await this.onConnectHandler({
120
+ chain: chainConfig
121
+ });
122
+ return this.provider;
123
+ }
124
+ if (this.status !== CONNECTOR_STATUS.CONNECTING) {
125
+ await this.createNewSession({
126
+ chainConfig
127
+ });
128
+ }
129
+ return this.provider;
130
+ } catch (error) {
131
+ log.error("Wallet connect v2 connector error while connecting", error);
132
+ // ready again to be connected
133
+ this.status = CONNECTOR_STATUS.READY;
134
+ this.rehydrated = true;
135
+ this.emit(CONNECTOR_EVENTS.ERRORED, error);
136
+ const finalError = error instanceof Web3AuthError ? error : WalletLoginError.connectionError(`Failed to login with wallet connect: ${(error === null || error === void 0 ? void 0 : error.message) || ""}`, error);
137
+ throw finalError;
138
+ }
139
+ }
140
+ async switchChain(params, init = false) {
141
+ super.checkSwitchChainRequirements(params, init);
142
+ if (!this.wcProvider) throw WalletInitializationError.notReady("Wallet Connect provider is not ready yet");
143
+ try {
144
+ await this.wcProvider.switchChain({
145
+ chainId: params.chainId
146
+ });
147
+ } catch (error) {
148
+ log.error("error while switching chain", error);
149
+ throw error;
150
+ }
151
+ }
152
+ async getUserInfo() {
153
+ if (!this.connected) throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
154
+ return {};
155
+ }
156
+ async disconnect(options = {
157
+ cleanup: false,
158
+ sessionRemovedByWallet: false
159
+ }) {
160
+ var _this$activeSession, _this$activeSession2;
161
+ const {
162
+ cleanup
163
+ } = options;
164
+ if (!this.connector || !this.connected || !((_this$activeSession = this.activeSession) !== null && _this$activeSession !== void 0 && _this$activeSession.topic)) throw WalletLoginError.notConnectedError("Not connected with wallet");
165
+ if (!options.sessionRemovedByWallet) await this.connector.disconnect({
166
+ topic: (_this$activeSession2 = this.activeSession) === null || _this$activeSession2 === void 0 ? void 0 : _this$activeSession2.topic,
167
+ reason: getSdkError("USER_DISCONNECTED")
168
+ });
169
+ this.rehydrated = false;
170
+ if (cleanup) {
171
+ this.connector = null;
172
+ this.status = CONNECTOR_STATUS.NOT_READY;
173
+ this.wcProvider = null;
174
+ } else {
175
+ // ready to connect again
176
+ this.status = CONNECTOR_STATUS.READY;
177
+ }
178
+ this.activeSession = null;
179
+ this.emit(CONNECTOR_EVENTS.DISCONNECTED);
180
+ }
181
+ async authenticateUser() {
182
+ if (!this.provider || this.status !== CONNECTOR_STATUS.CONNECTED) throw WalletLoginError.notConnectedError();
183
+ const {
184
+ chainId
185
+ } = this.provider;
186
+ const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
187
+ if (!currentChainConfig) throw WalletLoginError.connectionError("Chain config is not available");
188
+ const {
189
+ chainNamespace
190
+ } = currentChainConfig;
191
+ const accounts = await this.provider.request({
192
+ method: chainNamespace === CHAIN_NAMESPACES.EIP155 ? EVM_METHOD_TYPES.GET_ACCOUNTS : SOLANA_METHOD_TYPES.GET_ACCOUNTS
193
+ });
194
+ if (accounts && accounts.length > 0) {
195
+ const existingToken = getSavedToken(accounts[0], this.name);
196
+ if (existingToken) {
197
+ const isExpired = checkIfTokenIsExpired(existingToken);
198
+ if (!isExpired) {
199
+ return {
200
+ idToken: existingToken
201
+ };
202
+ }
203
+ }
204
+ const payload = {
205
+ domain: window.location.origin,
206
+ uri: window.location.href,
207
+ address: accounts[0],
208
+ chainId: parseInt(chainId, 16),
209
+ version: "1",
210
+ nonce: Math.random().toString(36).slice(2),
211
+ issuedAt: new Date().toISOString()
212
+ };
213
+ const challenge = await signChallenge(payload, chainNamespace);
214
+ const signedMessage = await this._getSignedMessage(challenge, accounts, chainNamespace);
215
+ const idToken = await verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
216
+ saveToken(accounts[0], this.name, idToken);
217
+ return {
218
+ idToken
219
+ };
220
+ }
221
+ throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
222
+ }
223
+ async enableMFA() {
224
+ throw new Error("Method Not implemented");
225
+ }
226
+ async manageMFA() {
227
+ throw new Error("Method Not implemented");
228
+ }
229
+ cleanupPendingPairings() {
230
+ if (!this.connector) throw WalletInitializationError.notReady("Wallet connector is not ready yet");
231
+ const inactivePairings = this.connector.pairing.getAll({
232
+ active: false
233
+ });
234
+ if (!isValidArray(inactivePairings)) return;
235
+ inactivePairings.forEach(pairing => {
236
+ if (this.connector) {
237
+ this.connector.pairing.delete(pairing.topic, getSdkError("USER_DISCONNECTED"));
238
+ }
239
+ });
240
+ }
241
+ async checkForPersistedSession() {
242
+ if (!this.connector) throw WalletInitializationError.notReady("Wallet connector is not ready yet");
243
+ if (this.connector.session.length) {
244
+ const lastKeyIndex = this.connector.session.keys.length - 1;
245
+ this.activeSession = this.connector.session.get(this.connector.session.keys[lastKeyIndex]);
246
+ }
247
+ return this.activeSession;
248
+ }
249
+ async createNewSession({
250
+ forceNewSession = false,
251
+ chainConfig
252
+ }) {
253
+ try {
254
+ var _this$activeSession3, _this$connectorOption7;
255
+ if (!this.connector) throw WalletInitializationError.notReady("Wallet connector is not ready yet");
256
+ if (!this.connectorOptions.loginSettings || Object.keys(this.connectorOptions.loginSettings).length === 0) throw WalletInitializationError.notReady("login settings are not set yet");
257
+ this.status = CONNECTOR_STATUS.CONNECTING;
258
+ this.emit(CONNECTOR_EVENTS.CONNECTING, {
259
+ connector: WALLET_CONNECTORS.WALLET_CONNECT_V2
260
+ });
261
+ if (forceNewSession && (_this$activeSession3 = this.activeSession) !== null && _this$activeSession3 !== void 0 && _this$activeSession3.topic) {
262
+ var _this$activeSession4;
263
+ await this.connector.disconnect({
264
+ topic: (_this$activeSession4 = this.activeSession) === null || _this$activeSession4 === void 0 ? void 0 : _this$activeSession4.topic,
265
+ reason: getSdkError("USER_DISCONNECTED")
266
+ });
267
+ }
268
+ const {
269
+ uri,
270
+ approval
271
+ } = await this.connector.connect(this.connectorOptions.loginSettings);
272
+ const qrcodeModal = (_this$connectorOption7 = this.connectorOptions) === null || _this$connectorOption7 === void 0 || (_this$connectorOption7 = _this$connectorOption7.connectorSettings) === null || _this$connectorOption7 === void 0 ? void 0 : _this$connectorOption7.qrcodeModal;
273
+ // Open QRCode modal if a URI was returned (i.e. we're not connecting with an existing pairing).
274
+ if (uri) {
275
+ if (qrcodeModal) {
276
+ try {
277
+ await qrcodeModal.openModal({
278
+ uri
279
+ });
280
+ log.debug("EVENT", "QR Code Modal closed");
281
+ this.status = CONNECTOR_STATUS.READY;
282
+ this.emit(CONNECTOR_EVENTS.READY, WALLET_CONNECTORS.WALLET_CONNECT_V2);
283
+ } catch (error) {
284
+ log.error("unable to open qr code modal");
285
+ }
286
+ } else {
287
+ this.updateConnectorData({
288
+ uri
289
+ });
290
+ }
291
+ }
292
+ log.info("awaiting session approval from wallet");
293
+
294
+ // Await session approval from the wallet.
295
+ const session = await approval();
296
+ this.activeSession = session;
297
+ // Handle the returned session (e.g. update UI to "connected" state).
298
+ await this.onConnectHandler({
299
+ chain: chainConfig
300
+ });
301
+ if (qrcodeModal) {
302
+ qrcodeModal.closeModal();
303
+ }
304
+ } catch (error) {
305
+ var _message;
306
+ if ((_message = error.message) !== null && _message !== void 0 && _message.toLowerCase().includes("proposal expired")) {
307
+ // Retry if connector status is still connecting
308
+ log.info("current connector status: ", this.status);
309
+ if (this.status === CONNECTOR_STATUS.CONNECTING) {
310
+ log.info("retrying to create new wallet connect session since proposal expired");
311
+ return this.createNewSession({
312
+ forceNewSession: true,
313
+ chainConfig
314
+ });
315
+ }
316
+ if (this.status === CONNECTOR_STATUS.READY) {
317
+ log.info("ignoring proposal expired error since some other connector is connected");
318
+ return;
319
+ }
320
+ }
321
+ log.error("error while creating new wallet connect session", error);
322
+ this.emit(CONNECTOR_EVENTS.ERRORED, error);
323
+ throw error;
324
+ }
325
+ }
326
+ async onConnectHandler({
327
+ chain
328
+ }) {
329
+ var _this$connectorOption8;
330
+ if (!this.connector || !this.wcProvider) throw WalletInitializationError.notReady("Wallet connect connector is not ready yet");
331
+ this.subscribeEvents();
332
+ if ((_this$connectorOption8 = this.connectorOptions.connectorSettings) !== null && _this$connectorOption8 !== void 0 && _this$connectorOption8.qrcodeModal) {
333
+ this.wcProvider = new WalletConnectV2Provider({
334
+ config: {
335
+ chain,
336
+ chains: this.coreOptions.chains,
337
+ skipLookupNetwork: true
338
+ },
339
+ connector: this.connector
340
+ });
341
+ }
342
+ await this.wcProvider.setupProvider(this.connector);
343
+ this.cleanupPendingPairings();
344
+ this.status = CONNECTOR_STATUS.CONNECTED;
345
+ this.emit(CONNECTOR_EVENTS.CONNECTED, {
346
+ connector: WALLET_CONNECTORS.WALLET_CONNECT_V2,
347
+ reconnected: this.rehydrated,
348
+ provider: this.provider
349
+ });
350
+ }
351
+ subscribeEvents() {
352
+ if (!this.connector) throw WalletInitializationError.notReady("Wallet connector is not ready yet");
353
+ this.connector.events.on("session_update", ({
354
+ topic,
355
+ params
356
+ }) => {
357
+ if (!this.connector) return;
358
+ const {
359
+ namespaces
360
+ } = params;
361
+ const _session = this.connector.session.get(topic);
362
+ // Overwrite the `namespaces` of the existing session with the incoming one.
363
+ const updatedSession = _objectSpread(_objectSpread({}, _session), {}, {
364
+ namespaces
365
+ });
366
+ // Integrate the updated session state into your dapp state.
367
+ this.activeSession = updatedSession;
368
+ });
369
+ this.connector.events.on("session_delete", () => {
370
+ // Session was deleted -> reset the dapp state, clean up from user session, etc.
371
+ this.disconnect({
372
+ sessionRemovedByWallet: true
373
+ });
374
+ });
375
+ }
376
+ async _getSignedMessage(challenge, accounts, chainNamespace) {
377
+ const signedMessage = await this.provider.request({
378
+ method: chainNamespace === CHAIN_NAMESPACES.EIP155 ? EVM_METHOD_TYPES.PERSONAL_SIGN : SOLANA_METHOD_TYPES.SIGN_MESSAGE,
379
+ params: chainNamespace === CHAIN_NAMESPACES.EIP155 ? [challenge, accounts[0]] : {
380
+ data: challenge
381
+ }
382
+ });
383
+ return signedMessage;
384
+ }
385
+ }
386
+ const walletConnectV2Connector = params => {
387
+ return ({
388
+ projectConfig,
389
+ coreOptions
390
+ }) => {
391
+ let {
392
+ projectId
393
+ } = (params === null || params === void 0 ? void 0 : params.walletConnectInitOptions) || {};
394
+
395
+ // use project config if projectId is not set
396
+ if (projectConfig) {
397
+ const {
398
+ wallet_connect_enabled: walletConnectEnabled,
399
+ wallet_connect_project_id: walletConnectProjectId
400
+ } = projectConfig;
401
+ if (walletConnectEnabled && walletConnectProjectId && !projectId) projectId = walletConnectProjectId;
402
+ }
403
+ const connectorSettings = _objectSpread(_objectSpread({}, params), {}, {
404
+ walletConnectInitOptions: _objectSpread(_objectSpread({}, params === null || params === void 0 ? void 0 : params.walletConnectInitOptions), {}, {
405
+ projectId
406
+ })
407
+ });
408
+ return new WalletConnectV2Connector({
409
+ connectorSettings,
410
+ coreOptions
411
+ });
412
+ };
413
+ };
414
+
415
+ export { walletConnectV2Connector };