@web3auth/no-modal 9.6.0 → 10.0.0-alpha.0

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 (351) hide show
  1. package/dist/757.noModal.cjs.js +226 -0
  2. package/dist/lib.cjs/adapters/auth-adapter/authAdapter.js +262 -0
  3. package/dist/lib.cjs/adapters/auth-adapter/config.js +17 -0
  4. package/dist/lib.cjs/adapters/base-evm-adapter/baseEvmAdapter.js +72 -0
  5. package/dist/lib.cjs/adapters/base-solana-adapter/baseSolanaAdapter.js +76 -0
  6. package/dist/lib.cjs/adapters/coinbase-adapter/coinbaseAdapter.js +156 -0
  7. package/dist/lib.cjs/adapters/default-evm-adapter/index.js +40 -0
  8. package/dist/lib.cjs/adapters/default-evm-adapter/injectedAdapters.js +42 -0
  9. package/dist/lib.cjs/adapters/default-evm-adapter/injectedEvmAdapter.js +160 -0
  10. package/dist/lib.cjs/adapters/default-solana-adapter/index.js +40 -0
  11. package/dist/lib.cjs/adapters/default-solana-adapter/injectedAdapters.js +53 -0
  12. package/dist/lib.cjs/adapters/default-solana-adapter/utils.js +16 -0
  13. package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardAdapter.js +138 -0
  14. package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardHandler.js +77 -0
  15. package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/WalletConnectV2Provider.js +278 -0
  16. package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/config.js +183 -0
  17. package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2Utils.js +165 -0
  18. package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +376 -0
  19. package/dist/lib.cjs/base/adapter/baseAdapter.js +117 -0
  20. package/dist/lib.cjs/base/adapter/constants.js +24 -0
  21. package/dist/lib.cjs/base/adapter/utils.js +66 -0
  22. package/dist/lib.cjs/base/chain/IChainInterface.js +22 -0
  23. package/dist/lib.cjs/base/chain/config.js +281 -0
  24. package/dist/lib.cjs/base/composables/index.js +5 -0
  25. package/dist/lib.cjs/base/errors/index.js +244 -0
  26. package/dist/lib.cjs/base/loglevel.js +7 -0
  27. package/dist/lib.cjs/base/plugin/IPlugin.js +31 -0
  28. package/dist/lib.cjs/base/plugin/errors.js +107 -0
  29. package/dist/lib.cjs/base/provider/IProvider.js +8 -0
  30. package/dist/lib.cjs/base/utils.js +56 -0
  31. package/dist/lib.cjs/base/wallet/index.js +31 -0
  32. package/dist/lib.cjs/index.js +200 -0
  33. package/dist/lib.cjs/noModal.js +98 -90
  34. package/dist/lib.cjs/plugins/nft-checkout-plugin/embed.js +134 -0
  35. package/dist/lib.cjs/plugins/nft-checkout-plugin/enums.js +24 -0
  36. package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +71 -0
  37. package/dist/lib.cjs/plugins/nft-checkout-plugin/utils.js +18 -0
  38. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +285 -0
  39. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +164 -0
  40. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +29 -0
  41. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +22 -0
  42. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +30 -0
  43. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +30 -0
  44. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +29 -0
  45. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/constants.js +11 -0
  46. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +134 -0
  47. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +174 -0
  48. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +79 -0
  49. package/dist/lib.cjs/providers/base-provider/baseProvider.js +127 -0
  50. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +89 -0
  51. package/dist/lib.cjs/providers/base-provider/jrpcClient.js +41 -0
  52. package/dist/lib.cjs/providers/base-provider/utils.js +12 -0
  53. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +199 -0
  54. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +165 -0
  55. package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +22 -0
  56. package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +89 -0
  57. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +185 -0
  58. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +27 -0
  59. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +380 -0
  60. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +10 -0
  61. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +94 -0
  62. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +106 -0
  63. package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +29 -0
  64. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +75 -0
  65. package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +41 -0
  66. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +179 -0
  67. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +51 -0
  68. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +47 -0
  69. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +12 -0
  70. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +75 -0
  71. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +109 -0
  72. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +12 -0
  73. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +180 -0
  74. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +103 -0
  75. package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +47 -0
  76. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +97 -0
  77. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +62 -0
  78. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +158 -0
  79. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +89 -0
  80. package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +48 -0
  81. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +73 -0
  82. package/dist/lib.cjs/react/index.js +16 -0
  83. package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +216 -0
  84. package/dist/lib.cjs/react/no-modal/Web3AuthProvider.js +15 -0
  85. package/dist/lib.cjs/react/no-modal/hooks/useWeb3Auth.js +15 -0
  86. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +86 -0
  87. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesProvider.js +16 -0
  88. package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +15 -0
  89. package/dist/lib.cjs/vue/index.js +15 -0
  90. package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +222 -0
  91. package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +13 -0
  92. package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +86 -0
  93. package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +13 -0
  94. package/dist/lib.cjs/vue/wallet-services-plugin/context.js +5 -0
  95. package/dist/lib.esm/adapters/auth-adapter/authAdapter.js +260 -0
  96. package/dist/lib.esm/adapters/auth-adapter/config.js +15 -0
  97. package/dist/lib.esm/adapters/base-evm-adapter/baseEvmAdapter.js +70 -0
  98. package/dist/lib.esm/adapters/base-solana-adapter/baseSolanaAdapter.js +74 -0
  99. package/dist/lib.esm/adapters/coinbase-adapter/coinbaseAdapter.js +154 -0
  100. package/dist/lib.esm/adapters/default-evm-adapter/index.js +37 -0
  101. package/dist/lib.esm/adapters/default-evm-adapter/injectedAdapters.js +40 -0
  102. package/dist/lib.esm/adapters/default-evm-adapter/injectedEvmAdapter.js +158 -0
  103. package/dist/lib.esm/adapters/default-solana-adapter/index.js +37 -0
  104. package/dist/lib.esm/adapters/default-solana-adapter/injectedAdapters.js +51 -0
  105. package/dist/lib.esm/adapters/default-solana-adapter/utils.js +14 -0
  106. package/dist/lib.esm/adapters/default-solana-adapter/walletStandardAdapter.js +136 -0
  107. package/dist/lib.esm/adapters/default-solana-adapter/walletStandardHandler.js +75 -0
  108. package/dist/lib.esm/adapters/wallet-connect-v2-adapter/WalletConnectV2Provider.js +276 -0
  109. package/dist/lib.esm/adapters/wallet-connect-v2-adapter/config.js +172 -0
  110. package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2Utils.js +158 -0
  111. package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +374 -0
  112. package/dist/lib.esm/base/adapter/baseAdapter.js +115 -0
  113. package/dist/lib.esm/base/adapter/constants.js +20 -0
  114. package/dist/lib.esm/base/adapter/utils.js +60 -0
  115. package/dist/lib.esm/base/chain/IChainInterface.js +19 -0
  116. package/dist/lib.esm/base/chain/config.js +276 -0
  117. package/dist/lib.esm/base/composables/index.js +3 -0
  118. package/dist/lib.esm/base/errors/index.js +237 -0
  119. package/dist/lib.esm/base/loglevel.js +5 -0
  120. package/dist/lib.esm/base/plugin/IPlugin.js +24 -0
  121. package/dist/lib.esm/base/plugin/errors.js +104 -0
  122. package/dist/lib.esm/base/provider/IProvider.js +6 -0
  123. package/dist/lib.esm/base/utils.js +46 -0
  124. package/dist/lib.esm/base/wallet/index.js +25 -0
  125. package/dist/lib.esm/index.js +58 -0
  126. package/dist/lib.esm/noModal.js +12 -4
  127. package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +132 -0
  128. package/dist/lib.esm/plugins/nft-checkout-plugin/enums.js +20 -0
  129. package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +69 -0
  130. package/dist/lib.esm/plugins/nft-checkout-plugin/utils.js +15 -0
  131. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +276 -0
  132. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +162 -0
  133. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +27 -0
  134. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +20 -0
  135. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +28 -0
  136. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +28 -0
  137. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +27 -0
  138. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/constants.js +9 -0
  139. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +132 -0
  140. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +171 -0
  141. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +77 -0
  142. package/dist/lib.esm/providers/base-provider/baseProvider.js +125 -0
  143. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +87 -0
  144. package/dist/lib.esm/providers/base-provider/jrpcClient.js +37 -0
  145. package/dist/lib.esm/providers/base-provider/utils.js +6 -0
  146. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +197 -0
  147. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +163 -0
  148. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +20 -0
  149. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +85 -0
  150. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +183 -0
  151. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +21 -0
  152. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +378 -0
  153. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +8 -0
  154. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +88 -0
  155. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +104 -0
  156. package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +24 -0
  157. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +71 -0
  158. package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +37 -0
  159. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +177 -0
  160. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +49 -0
  161. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +45 -0
  162. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +10 -0
  163. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +73 -0
  164. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +107 -0
  165. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +10 -0
  166. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +178 -0
  167. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +101 -0
  168. package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +42 -0
  169. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +89 -0
  170. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +60 -0
  171. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +156 -0
  172. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +87 -0
  173. package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +43 -0
  174. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +67 -0
  175. package/dist/lib.esm/react/index.js +5 -0
  176. package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +213 -0
  177. package/dist/lib.esm/react/no-modal/Web3AuthProvider.js +13 -0
  178. package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +13 -0
  179. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +83 -0
  180. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesProvider.js +14 -0
  181. package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +13 -0
  182. package/dist/lib.esm/vue/index.js +5 -0
  183. package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +220 -0
  184. package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +11 -0
  185. package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +84 -0
  186. package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +11 -0
  187. package/dist/lib.esm/vue/wallet-services-plugin/context.js +3 -0
  188. package/dist/noModal.cjs.js +26314 -364
  189. package/dist/noModal.umd.min.js +1 -1
  190. package/dist/noModal.umd.min.js.LICENSE.txt +54 -0
  191. package/dist/types/adapters/auth-adapter/authAdapter.d.ts +42 -0
  192. package/dist/types/adapters/auth-adapter/config.d.ts +2 -0
  193. package/dist/types/adapters/auth-adapter/index.d.ts +3 -0
  194. package/dist/types/adapters/auth-adapter/interface.d.ts +11 -0
  195. package/dist/types/adapters/base-evm-adapter/baseEvmAdapter.d.ts +7 -0
  196. package/dist/types/adapters/base-evm-adapter/index.d.ts +1 -0
  197. package/dist/types/adapters/base-solana-adapter/baseSolanaAdapter.d.ts +7 -0
  198. package/dist/types/adapters/base-solana-adapter/index.d.ts +1 -0
  199. package/dist/types/adapters/coinbase-adapter/coinbaseAdapter.d.ts +33 -0
  200. package/dist/types/adapters/coinbase-adapter/index.d.ts +1 -0
  201. package/dist/types/adapters/default-evm-adapter/index.d.ts +6 -0
  202. package/dist/types/adapters/default-evm-adapter/injectedAdapters.d.ts +4 -0
  203. package/dist/types/adapters/default-evm-adapter/injectedEvmAdapter.d.ts +30 -0
  204. package/dist/types/adapters/default-solana-adapter/index.d.ts +6 -0
  205. package/dist/types/adapters/default-solana-adapter/injectedAdapters.d.ts +4 -0
  206. package/dist/types/adapters/default-solana-adapter/utils.d.ts +3 -0
  207. package/dist/types/adapters/default-solana-adapter/walletStandardAdapter.d.ts +31 -0
  208. package/dist/types/adapters/default-solana-adapter/walletStandardHandler.d.ts +27 -0
  209. package/dist/types/adapters/index.d.ts +7 -0
  210. package/dist/types/adapters/wallet-connect-v2-adapter/WalletConnectV2Provider.d.ts +36 -0
  211. package/dist/types/adapters/wallet-connect-v2-adapter/config.d.ts +35 -0
  212. package/dist/types/adapters/wallet-connect-v2-adapter/index.d.ts +4 -0
  213. package/dist/types/adapters/wallet-connect-v2-adapter/interface.d.ts +18 -0
  214. package/dist/types/adapters/wallet-connect-v2-adapter/utils.d.ts +3 -0
  215. package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2Utils.d.ts +23 -0
  216. package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.d.ts +42 -0
  217. package/dist/types/base/adapter/baseAdapter.d.ts +44 -0
  218. package/dist/types/base/adapter/constants.d.ts +22 -0
  219. package/dist/types/base/adapter/index.d.ts +4 -0
  220. package/dist/types/base/adapter/interfaces.d.ts +143 -0
  221. package/dist/types/base/adapter/utils.d.ts +5 -0
  222. package/dist/types/base/chain/IChainInterface.d.ts +59 -0
  223. package/dist/types/base/chain/config.d.ts +5 -0
  224. package/dist/types/base/composables/index.d.ts +1 -0
  225. package/dist/types/base/core/IWeb3Auth.d.ts +101 -0
  226. package/dist/types/base/errors/index.d.ts +69 -0
  227. package/dist/types/base/hooks/index.d.ts +37 -0
  228. package/dist/types/base/index.d.ts +13 -0
  229. package/dist/types/base/interfaces.d.ts +44 -0
  230. package/dist/types/base/loglevel.d.ts +2 -0
  231. package/dist/types/base/plugin/IPlugin.d.ts +53 -0
  232. package/dist/types/base/plugin/errors.d.ts +28 -0
  233. package/dist/types/base/plugin/index.d.ts +2 -0
  234. package/dist/types/base/provider/IProvider.d.ts +16 -0
  235. package/dist/types/base/utils.d.ts +9 -0
  236. package/dist/types/base/wallet/index.d.ts +33 -0
  237. package/dist/types/index.d.ts +4 -0
  238. package/dist/types/noModal.d.ts +2 -2
  239. package/dist/types/plugins/index.d.ts +2 -0
  240. package/dist/types/plugins/nft-checkout-plugin/embed.d.ts +24 -0
  241. package/dist/types/plugins/nft-checkout-plugin/enums.d.ts +14 -0
  242. package/dist/types/plugins/nft-checkout-plugin/index.d.ts +2 -0
  243. package/dist/types/plugins/nft-checkout-plugin/plugin.d.ts +23 -0
  244. package/dist/types/plugins/nft-checkout-plugin/utils.d.ts +3 -0
  245. package/dist/types/plugins/wallet-services-plugin/index.d.ts +1 -0
  246. package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +51 -0
  247. package/dist/types/providers/account-abstraction-provider/index.d.ts +1 -0
  248. package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +46 -0
  249. package/dist/types/providers/account-abstraction-provider/providers/index.d.ts +3 -0
  250. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.d.ts +14 -0
  251. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.d.ts +13 -0
  252. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/LightSmartAccount.d.ts +14 -0
  253. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.d.ts +14 -0
  254. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.d.ts +13 -0
  255. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SimpleSmartAccount.d.ts +13 -0
  256. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.d.ts +13 -0
  257. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/constants.d.ts +9 -0
  258. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +6 -0
  259. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/types.d.ts +22 -0
  260. package/dist/types/providers/account-abstraction-provider/providers/types.d.ts +17 -0
  261. package/dist/types/providers/account-abstraction-provider/providers/utils.d.ts +10 -0
  262. package/dist/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +8 -0
  263. package/dist/types/providers/account-abstraction-provider/rpc/index.d.ts +1 -0
  264. package/dist/types/providers/base-provider/CommonJRPCProvider.d.ts +20 -0
  265. package/dist/types/providers/base-provider/baseProvider.d.ts +39 -0
  266. package/dist/types/providers/base-provider/commonPrivateKeyProvider.d.ts +31 -0
  267. package/dist/types/providers/base-provider/index.d.ts +5 -0
  268. package/dist/types/providers/base-provider/interfaces.d.ts +3 -0
  269. package/dist/types/providers/base-provider/jrpcClient.d.ts +8 -0
  270. package/dist/types/providers/base-provider/utils.d.ts +2 -0
  271. package/dist/types/providers/ethereum-mpc-provider/index.d.ts +1 -0
  272. package/dist/types/providers/ethereum-mpc-provider/providers/index.d.ts +1 -0
  273. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +65 -0
  274. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +1 -0
  275. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +12 -0
  276. package/dist/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +3 -0
  277. package/dist/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +15 -0
  278. package/dist/types/providers/ethereum-provider/index.d.ts +2 -0
  279. package/dist/types/providers/ethereum-provider/providers/converter.d.ts +15 -0
  280. package/dist/types/providers/ethereum-provider/providers/index.d.ts +1 -0
  281. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.d.ts +30 -0
  282. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +16 -0
  283. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +28 -0
  284. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +4 -0
  285. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +46 -0
  286. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +12 -0
  287. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.d.ts +9 -0
  288. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +2 -0
  289. package/dist/types/providers/ethereum-provider/providers/utils.d.ts +5 -0
  290. package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +5 -0
  291. package/dist/types/providers/ethereum-provider/rpc/index.d.ts +4 -0
  292. package/dist/types/providers/ethereum-provider/rpc/interfaces.d.ts +65 -0
  293. package/dist/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +8 -0
  294. package/dist/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +3 -0
  295. package/dist/types/providers/index.d.ts +6 -0
  296. package/dist/types/providers/solana-provider/index.d.ts +4 -0
  297. package/dist/types/providers/solana-provider/interface.d.ts +39 -0
  298. package/dist/types/providers/solana-provider/providers/index.d.ts +2 -0
  299. package/dist/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +16 -0
  300. package/dist/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +3 -0
  301. package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +3 -0
  302. package/dist/types/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.d.ts +3 -0
  303. package/dist/types/providers/solana-provider/providers/injectedProviders/interface.d.ts +5 -0
  304. package/dist/types/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.d.ts +3 -0
  305. package/dist/types/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.d.ts +18 -0
  306. package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +6 -0
  307. package/dist/types/providers/solana-provider/providers/privateKeyProvider/index.d.ts +1 -0
  308. package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +31 -0
  309. package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +7 -0
  310. package/dist/types/providers/solana-provider/rpc/JrpcClient.d.ts +9 -0
  311. package/dist/types/providers/solana-provider/rpc/index.d.ts +3 -0
  312. package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +42 -0
  313. package/dist/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +20 -0
  314. package/dist/types/providers/solana-provider/solanaWallet.d.ts +14 -0
  315. package/dist/types/providers/xrpl-provider/index.d.ts +1 -0
  316. package/dist/types/providers/xrpl-provider/providers/index.d.ts +1 -0
  317. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/constants.d.ts +5 -0
  318. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/index.d.ts +3 -0
  319. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/interface.d.ts +2 -0
  320. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +26 -0
  321. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.d.ts +7 -0
  322. package/dist/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +9 -0
  323. package/dist/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +52 -0
  324. package/dist/types/react/index.d.ts +2 -0
  325. package/dist/types/react/no-modal/Web3AuthInnerContext.d.ts +4 -0
  326. package/dist/types/react/no-modal/Web3AuthProvider.d.ts +3 -0
  327. package/dist/types/react/no-modal/hooks/index.d.ts +1 -0
  328. package/dist/types/react/no-modal/hooks/useWeb3Auth.d.ts +2 -0
  329. package/dist/types/react/no-modal/index.d.ts +3 -0
  330. package/dist/types/react/no-modal/interfaces.d.ts +15 -0
  331. package/dist/types/react/wallet-services-plugin/WalletServicesContext.d.ts +7 -0
  332. package/dist/types/react/wallet-services-plugin/WalletServicesProvider.d.ts +7 -0
  333. package/dist/types/react/wallet-services-plugin/hooks/index.d.ts +1 -0
  334. package/dist/types/react/wallet-services-plugin/hooks/useWalletServicesPlugin.d.ts +2 -0
  335. package/dist/types/react/wallet-services-plugin/index.d.ts +4 -0
  336. package/dist/types/react/wallet-services-plugin/interfaces.d.ts +5 -0
  337. package/dist/types/vue/index.d.ts +2 -0
  338. package/dist/types/vue/no-modal/Web3AuthProvider.d.ts +13 -0
  339. package/dist/types/vue/no-modal/composables/index.d.ts +1 -0
  340. package/dist/types/vue/no-modal/composables/useWeb3Auth.d.ts +2 -0
  341. package/dist/types/vue/no-modal/index.d.ts +3 -0
  342. package/dist/types/vue/no-modal/interfaces.d.ts +42 -0
  343. package/dist/types/vue/wallet-services-plugin/WalletServicesProvider.d.ts +1 -0
  344. package/dist/types/vue/wallet-services-plugin/composables/index.d.ts +1 -0
  345. package/dist/types/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +2 -0
  346. package/dist/types/vue/wallet-services-plugin/context.d.ts +3 -0
  347. package/dist/types/vue/wallet-services-plugin/index.d.ts +4 -0
  348. package/dist/types/vue/wallet-services-plugin/interfaces.d.ts +13 -0
  349. package/package.json +76 -15
  350. package/README.md +0 -82
  351. package/dist/noModal.esm.js +0 -359
@@ -0,0 +1,136 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { StandardConnect, StandardDisconnect } from '@wallet-standard/features';
3
+ import { ADAPTER_NAMESPACES, CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
4
+ import { WalletLoginError } from '../../base/errors/index.js';
5
+ import { log } from '../../base/loglevel.js';
6
+ import { getSolanaChainByChainConfig } from './utils.js';
7
+ import { WalletStandardProviderHandler } from './walletStandardHandler.js';
8
+ import { BaseSolanaAdapter } from '../base-solana-adapter/baseSolanaAdapter.js';
9
+ import { WalletStandardProvider } from '../../providers/solana-provider/providers/injectedProviders/walletStandardProvider.js';
10
+ import { ADAPTER_CATEGORY, ADAPTER_STATUS, ADAPTER_EVENTS } from '../../base/adapter/constants.js';
11
+
12
+ class WalletStandardAdapter extends BaseSolanaAdapter {
13
+ constructor(options) {
14
+ super(options);
15
+ _defineProperty(this, "name", void 0);
16
+ _defineProperty(this, "adapterNamespace", ADAPTER_NAMESPACES.SOLANA);
17
+ _defineProperty(this, "currentChainNamespace", CHAIN_NAMESPACES.SOLANA);
18
+ _defineProperty(this, "type", ADAPTER_CATEGORY.EXTERNAL);
19
+ _defineProperty(this, "isInjected", true);
20
+ _defineProperty(this, "status", ADAPTER_STATUS.NOT_READY);
21
+ _defineProperty(this, "wallet", null);
22
+ _defineProperty(this, "injectedProvider", null);
23
+ this.name = options.name;
24
+ // in VueJS, for some wallets e.g. Gate, Solflare, when connecting it throws error "attempted to get private field on non-instance"
25
+ // it seems that Vue create a Proxy object for the wallet object which causes the issue
26
+ // ref: https://stackoverflow.com/questions/64917686/vue-array-converted-to-proxy-object
27
+ this.wallet = ["gate", "solflare"].includes(this.name) ? Object.freeze(options.wallet) : options.wallet;
28
+ }
29
+ get provider() {
30
+ if (this.status !== ADAPTER_STATUS.NOT_READY && this.injectedProvider) {
31
+ return this.injectedProvider;
32
+ }
33
+ return null;
34
+ }
35
+ get isWalletConnected() {
36
+ return !!(this.status === ADAPTER_STATUS.CONNECTED && this.wallet.accounts.length > 0);
37
+ }
38
+ async init(options = {}) {
39
+ await super.init(options);
40
+ super.checkInitializationRequirements();
41
+ this.injectedProvider = new WalletStandardProvider({
42
+ config: {
43
+ chainConfig: this.chainConfig
44
+ }
45
+ });
46
+ const providerHandler = new WalletStandardProviderHandler({
47
+ wallet: this.wallet,
48
+ getCurrentChain: () => getSolanaChainByChainConfig(this.chainConfig)
49
+ });
50
+ this.injectedProvider.setupProvider(providerHandler);
51
+ this.status = ADAPTER_STATUS.READY;
52
+ this.emit(ADAPTER_EVENTS.READY, this.name);
53
+ try {
54
+ log.debug("initializing solana injected adapter");
55
+ if (options.autoConnect) {
56
+ this.rehydrated = true;
57
+ await this.connect();
58
+ }
59
+ } catch (error) {
60
+ log.error("Failed to connect with cached solana injected provider", error);
61
+ this.emit(ADAPTER_EVENTS.ERRORED, error);
62
+ }
63
+ }
64
+ async connect() {
65
+ try {
66
+ super.checkConnectionRequirements();
67
+ this.status = ADAPTER_STATUS.CONNECTING;
68
+ this.emit(ADAPTER_EVENTS.CONNECTING, {
69
+ adapter: this.name
70
+ });
71
+ const chainName = getSolanaChainByChainConfig(this.chainConfig);
72
+ if (!this.wallet.chains.find(chain => chain === chainName)) throw WalletLoginError.connectionError(`Chain ${chainName} not supported. Supported chains are ${this.wallet.chains.join(", ")}`);
73
+ if (!this.isWalletConnected) {
74
+ await this.wallet.features[StandardConnect].connect();
75
+ }
76
+ if (this.wallet.accounts.length === 0) throw WalletLoginError.connectionError();
77
+ this.status = ADAPTER_STATUS.CONNECTED;
78
+ this.emit(ADAPTER_EVENTS.CONNECTED, {
79
+ adapter: this.name,
80
+ reconnected: this.rehydrated,
81
+ provider: this.provider
82
+ });
83
+ return this.provider;
84
+ } catch (error) {
85
+ // ready again to be connected
86
+ this.status = ADAPTER_STATUS.READY;
87
+ this.rehydrated = false;
88
+ this.emit(ADAPTER_EVENTS.ERRORED, error);
89
+ throw error;
90
+ }
91
+ }
92
+ async disconnect(options = {
93
+ cleanup: false
94
+ }) {
95
+ await super.disconnectSession();
96
+ try {
97
+ var _this$wallet$features;
98
+ await ((_this$wallet$features = this.wallet.features[StandardDisconnect]) === null || _this$wallet$features === void 0 ? void 0 : _this$wallet$features.disconnect());
99
+ if (options.cleanup) {
100
+ this.status = ADAPTER_STATUS.NOT_READY;
101
+ this.injectedProvider = null;
102
+ } else {
103
+ this.status = ADAPTER_STATUS.READY;
104
+ }
105
+ await super.disconnect();
106
+ } catch (error) {
107
+ this.emit(ADAPTER_EVENTS.ERRORED, WalletLoginError.disconnectionError(error === null || error === void 0 ? void 0 : error.message));
108
+ }
109
+ }
110
+ async getUserInfo() {
111
+ if (!this.isWalletConnected) throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
112
+ return {};
113
+ }
114
+ async addChain(chainConfig, init = false) {
115
+ var _this$injectedProvide;
116
+ super.checkAddChainRequirements(chainConfig, init);
117
+ (_this$injectedProvide = this.injectedProvider) === null || _this$injectedProvide === void 0 || _this$injectedProvide.addChain(chainConfig);
118
+ this.addChainConfig(chainConfig);
119
+ }
120
+ async switchChain(params, init = false) {
121
+ var _this$injectedProvide2;
122
+ super.checkSwitchChainRequirements(params, init);
123
+ await ((_this$injectedProvide2 = this.injectedProvider) === null || _this$injectedProvide2 === void 0 ? void 0 : _this$injectedProvide2.switchChain(params));
124
+ this.setAdapterSettings({
125
+ chainConfig: this.getChainConfig(params.chainId)
126
+ });
127
+ }
128
+ async enableMFA() {
129
+ throw new Error("Method not implemented.");
130
+ }
131
+ async manageMFA() {
132
+ throw new Error("Method Not implemented");
133
+ }
134
+ }
135
+
136
+ export { WalletStandardAdapter };
@@ -0,0 +1,75 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { SolanaSignMessage, SolanaSignTransaction, SolanaSignAndSendTransaction } from '@solana/wallet-standard-features';
3
+ import { PublicKey, VersionedTransaction, Transaction } from '@solana/web3.js';
4
+ import { SafeEventEmitter } from '@web3auth/auth';
5
+ import BN from 'bn.js';
6
+ import { WalletLoginError } from '../../base/errors/index.js';
7
+
8
+ class WalletStandardProviderHandler extends SafeEventEmitter {
9
+ constructor({
10
+ wallet,
11
+ getCurrentChain
12
+ }) {
13
+ super();
14
+ _defineProperty(this, "wallet", null);
15
+ _defineProperty(this, "getCurrentChain", void 0);
16
+ this.wallet = wallet;
17
+ this.getCurrentChain = getCurrentChain;
18
+ }
19
+ get currentAccount() {
20
+ var _this$wallet;
21
+ const account = (_this$wallet = this.wallet) === null || _this$wallet === void 0 ? void 0 : _this$wallet.accounts[0];
22
+ if (!account) throw WalletLoginError.notConnectedError();
23
+ return account;
24
+ }
25
+ get publicKey() {
26
+ return new PublicKey(this.currentAccount.publicKey);
27
+ }
28
+ async signMessage(message) {
29
+ const account = this.currentAccount;
30
+ const signature = await this.wallet.features[SolanaSignMessage].signMessage({
31
+ account,
32
+ message
33
+ });
34
+ return {
35
+ signature: signature[0].signature,
36
+ publicKey: new BN(Buffer.from(account.publicKey))
37
+ };
38
+ }
39
+ async signTransaction(transaction) {
40
+ const account = this.currentAccount;
41
+ const output = await this.wallet.features[SolanaSignTransaction].signTransaction({
42
+ account,
43
+ transaction: transaction.serialize({
44
+ requireAllSignatures: false
45
+ }),
46
+ chain: this.getCurrentChain()
47
+ });
48
+ const isVersionedTransaction = transaction.version !== undefined || transaction instanceof VersionedTransaction;
49
+ if (isVersionedTransaction) {
50
+ return VersionedTransaction.deserialize(output[0].signedTransaction);
51
+ }
52
+ return Transaction.from(output[0].signedTransaction);
53
+ }
54
+ async signAllTransactions(transactions) {
55
+ return Promise.all(transactions.map(transaction => this.signTransaction(transaction)));
56
+ }
57
+ async signAndSendTransaction(transaction) {
58
+ const account = this.currentAccount;
59
+ const output = await this.wallet.features[SolanaSignAndSendTransaction].signAndSendTransaction({
60
+ account,
61
+ transaction: transaction.serialize({
62
+ requireAllSignatures: false
63
+ }),
64
+ chain: this.getCurrentChain()
65
+ });
66
+ const [{
67
+ signature
68
+ }] = output;
69
+ return {
70
+ signature: new TextDecoder().decode(signature)
71
+ };
72
+ }
73
+ }
74
+
75
+ export { WalletStandardProviderHandler };
@@ -0,0 +1,276 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { getAccountsFromNamespaces, parseAccountId } from '@walletconnect/utils';
4
+ import { providerErrors, JRPCEngine, providerFromEngine } from '@web3auth/auth';
5
+ import { getChainConfig } from '../../base/chain/config.js';
6
+ import { CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
7
+ import { WalletLoginError } from '../../base/errors/index.js';
8
+ import { log } from '../../base/loglevel.js';
9
+ import { switchChain, addChain, getAccounts, getEthProviderHandlers, getSolProviderHandlers } from './walletConnectV2Utils.js';
10
+ import { createEthMiddleware, createEthChainSwitchMiddleware } from '../../providers/ethereum-provider/rpc/ethRpcMiddlewares.js';
11
+ import { createEthJsonRpcClient } from '../../providers/ethereum-provider/rpc/jrpcClient.js';
12
+ import { createSolanaMiddleware } from '../../providers/solana-provider/rpc/solanaRpcMiddlewares.js';
13
+ import { createSolanaJsonRpcClient } from '../../providers/solana-provider/rpc/JrpcClient.js';
14
+ import { BaseProvider } from '../../providers/base-provider/baseProvider.js';
15
+
16
+ var _WalletConnectV2Provider;
17
+ class WalletConnectV2Provider extends BaseProvider {
18
+ constructor({
19
+ config,
20
+ state,
21
+ connector
22
+ }) {
23
+ super({
24
+ config: {
25
+ chainConfig: config.chainConfig,
26
+ skipLookupNetwork: !!config.skipLookupNetwork
27
+ },
28
+ state: _objectSpread(_objectSpread({}, state || {}), {}, {
29
+ chainId: "loading",
30
+ accounts: []
31
+ })
32
+ });
33
+ _defineProperty(this, "connector", null);
34
+ this.connector = connector || null;
35
+ }
36
+ async enable() {
37
+ if (!this.connector) throw providerErrors.custom({
38
+ message: "Connector is not initialized, pass wallet connect connector in constructor",
39
+ code: 4902
40
+ });
41
+ await this.setupProvider(this.connector);
42
+ return this._providerEngineProxy.request({
43
+ method: "eth_accounts"
44
+ });
45
+ }
46
+ async setupProvider(connector) {
47
+ this.onConnectorStateUpdate(connector);
48
+ await this.setupEngine(connector);
49
+ }
50
+ async switchChain({
51
+ chainId
52
+ }) {
53
+ if (!this.connector) throw providerErrors.custom({
54
+ message: "Connector is not initialized, pass wallet connect connector in constructor",
55
+ code: 4902
56
+ });
57
+ const currentChainConfig = this.getChainConfig(chainId);
58
+ const {
59
+ chainId: currentChainId
60
+ } = this.config.chainConfig;
61
+ const currentNumChainId = parseInt(currentChainId, 16);
62
+ await switchChain({
63
+ connector: this.connector,
64
+ chainId: currentNumChainId,
65
+ newChainId: chainId
66
+ });
67
+ this.configure({
68
+ chainConfig: currentChainConfig
69
+ });
70
+ await this.setupEngine(this.connector);
71
+ this.lookupNetwork(this.connector);
72
+ }
73
+ async addChain(chainConfig) {
74
+ const {
75
+ chainId: currentChainId
76
+ } = this.config.chainConfig;
77
+ const numChainId = parseInt(currentChainId, 16);
78
+ await addChain({
79
+ connector: this.connector,
80
+ chainId: numChainId,
81
+ chainConfig: {
82
+ chainId: chainConfig.chainId,
83
+ chainName: chainConfig.displayName,
84
+ nativeCurrency: {
85
+ name: chainConfig.tickerName,
86
+ symbol: chainConfig.ticker.toLocaleUpperCase(),
87
+ decimals: chainConfig.decimals || 18
88
+ },
89
+ rpcUrls: [chainConfig.rpcTarget],
90
+ blockExplorerUrls: [chainConfig.blockExplorerUrl],
91
+ iconUrls: [chainConfig.logo]
92
+ }
93
+ });
94
+ super.addChain(chainConfig);
95
+ }
96
+
97
+ // no need to implement this method in wallet connect v2.
98
+ async lookupNetwork(_) {
99
+ const newChainId = this.config.chainConfig.chainId;
100
+ this.update({
101
+ chainId: newChainId
102
+ });
103
+ this.emit("chainChanged", newChainId);
104
+ this.emit("connect", {
105
+ chainId: newChainId
106
+ });
107
+ return this.config.chainConfig.chainId;
108
+ }
109
+ async setupEngine(connector) {
110
+ if (this.config.chainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {
111
+ return this.setupEthEngine(connector);
112
+ } else if (this.config.chainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {
113
+ return this.setupSolEngine(connector);
114
+ }
115
+ throw new Error(`Unsupported chainNamespace: ${this.config.chainConfig.chainNamespace}`);
116
+ }
117
+ async setupEthEngine(connector) {
118
+ const {
119
+ chainId
120
+ } = this.config.chainConfig;
121
+ const numChainId = parseInt(chainId, 16);
122
+ const providerHandlers = getEthProviderHandlers({
123
+ connector,
124
+ chainId: numChainId
125
+ });
126
+ const jrpcRes = await getAccounts(connector);
127
+ this.update({
128
+ accounts: jrpcRes || []
129
+ });
130
+ const ethMiddleware = createEthMiddleware(providerHandlers);
131
+ const chainSwitchMiddleware = this.getEthChainSwitchMiddleware();
132
+ const engine = new JRPCEngine();
133
+ const {
134
+ networkMiddleware
135
+ } = createEthJsonRpcClient(this.config.chainConfig);
136
+ engine.push(ethMiddleware);
137
+ engine.push(chainSwitchMiddleware);
138
+ engine.push(networkMiddleware);
139
+ const provider = providerFromEngine(engine);
140
+ this.updateProviderEngineProxy(provider);
141
+ }
142
+ async setupSolEngine(connector) {
143
+ const {
144
+ chainId
145
+ } = this.config.chainConfig;
146
+ const providerHandlers = getSolProviderHandlers({
147
+ connector,
148
+ chainId
149
+ });
150
+ const jrpcRes = await getAccounts(connector);
151
+ this.update({
152
+ accounts: jrpcRes || []
153
+ });
154
+ const solMiddleware = createSolanaMiddleware(providerHandlers);
155
+ const engine = new JRPCEngine();
156
+ const {
157
+ networkMiddleware
158
+ } = createSolanaJsonRpcClient(this.config.chainConfig);
159
+ engine.push(solMiddleware);
160
+ engine.push(networkMiddleware);
161
+ const provider = providerFromEngine(engine);
162
+ this.updateProviderEngineProxy(provider);
163
+ }
164
+ getEthChainSwitchMiddleware() {
165
+ const chainSwitchHandlers = {
166
+ addChain: async params => {
167
+ const {
168
+ chainId,
169
+ chainName,
170
+ rpcUrls,
171
+ blockExplorerUrls,
172
+ nativeCurrency,
173
+ iconUrls
174
+ } = params;
175
+ this.addChain({
176
+ chainNamespace: CHAIN_NAMESPACES.EIP155,
177
+ chainId,
178
+ ticker: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.symbol) || "ETH",
179
+ tickerName: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.name) || "Ether",
180
+ displayName: chainName,
181
+ rpcTarget: rpcUrls[0],
182
+ blockExplorerUrl: (blockExplorerUrls === null || blockExplorerUrls === void 0 ? void 0 : blockExplorerUrls[0]) || "",
183
+ decimals: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.decimals) || 18,
184
+ logo: (iconUrls === null || iconUrls === void 0 ? void 0 : iconUrls[0]) || "https://images.toruswallet.io/eth.svg"
185
+ });
186
+ },
187
+ switchChain: async params => {
188
+ const {
189
+ chainId
190
+ } = params;
191
+ await this.switchChain({
192
+ chainId
193
+ });
194
+ }
195
+ };
196
+ const chainSwitchMiddleware = createEthChainSwitchMiddleware(chainSwitchHandlers);
197
+ return chainSwitchMiddleware;
198
+ }
199
+ connectedTopic() {
200
+ var _this$connector;
201
+ if (!this.connector) throw WalletLoginError.notConnectedError("Wallet connect connector is not connected");
202
+ if ((_this$connector = this.connector) !== null && _this$connector !== void 0 && (_this$connector = _this$connector.session) !== null && _this$connector !== void 0 && _this$connector.length) {
203
+ var _this$connector$sessi;
204
+ // currently we are supporting only 1 active session
205
+ const lastKeyIndex = this.connector.session.keys.length - 1;
206
+ return (_this$connector$sessi = this.connector.session.get(this.connector.session.keys[lastKeyIndex])) === null || _this$connector$sessi === void 0 ? void 0 : _this$connector$sessi.topic;
207
+ }
208
+ return undefined;
209
+ }
210
+ checkIfAccountAllowed(address) {
211
+ if (!this.connector || !this.connectedTopic()) return false;
212
+ const sessionData = this.connector.session.get(this.connectedTopic());
213
+ const allAccounts = getAccountsFromNamespaces(sessionData.namespaces);
214
+ let accountAllowed = false;
215
+ for (const account of allAccounts) {
216
+ var _parsedAccount$addres;
217
+ const parsedAccount = parseAccountId(account);
218
+ if (((_parsedAccount$addres = parsedAccount.address) === null || _parsedAccount$addres === void 0 ? void 0 : _parsedAccount$addres.toLowerCase()) === (address === null || address === void 0 ? void 0 : address.toLowerCase())) {
219
+ accountAllowed = true;
220
+ break;
221
+ }
222
+ }
223
+ return accountAllowed;
224
+ }
225
+ async onConnectorStateUpdate(connector) {
226
+ connector.events.on("session_event", async payload => {
227
+ log.debug("session_event data", payload);
228
+ if (!this.provider) throw WalletLoginError.notConnectedError("Wallet connect connector is not connected");
229
+ const {
230
+ event
231
+ } = payload.params;
232
+ const {
233
+ name,
234
+ data
235
+ } = event || {};
236
+ // Check if accounts changed and trigger event
237
+ if (name === "accountsChanged" && data !== null && data !== void 0 && data.length && this.state.accounts[0] !== data[0] && this.checkIfAccountAllowed(data[0])) {
238
+ this.update({
239
+ accounts: data
240
+ });
241
+ this.emit("accountsChanged", data);
242
+ }
243
+ if (event.name === "chainChanged") {
244
+ if (!data) return;
245
+ const connectedChainId = data;
246
+ const connectedHexChainId = `0x${connectedChainId.toString(16)}`;
247
+
248
+ // Check if chainId changed and trigger event
249
+ if (connectedHexChainId && this.state.chainId !== connectedHexChainId) {
250
+ const maybeConfig = getChainConfig(CHAIN_NAMESPACES.EIP155, connectedHexChainId);
251
+ // Handle rpcUrl update
252
+ this.configure({
253
+ chainConfig: _objectSpread(_objectSpread({}, maybeConfig), {}, {
254
+ chainId: connectedHexChainId,
255
+ chainNamespace: CHAIN_NAMESPACES.EIP155
256
+ })
257
+ });
258
+ await this.setupEngine(connector);
259
+ }
260
+ }
261
+ });
262
+ }
263
+ }
264
+ _WalletConnectV2Provider = WalletConnectV2Provider;
265
+ _defineProperty(WalletConnectV2Provider, "getProviderInstance", async params => {
266
+ const providerFactory = new _WalletConnectV2Provider({
267
+ config: {
268
+ chainConfig: params.chainConfig,
269
+ skipLookupNetwork: params.skipLookupNetwork
270
+ }
271
+ });
272
+ await providerFactory.setupProvider(params.connector);
273
+ return providerFactory;
274
+ });
275
+
276
+ export { WalletConnectV2Provider };
@@ -0,0 +1,172 @@
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 (namespace, chainIds, projectID) => {
144
+ if (namespace === CHAIN_NAMESPACES.EIP155 || namespace === CHAIN_NAMESPACES.SOLANA) {
145
+ const appMetadata = await getSiteMetadata();
146
+ const adapterSettings = {
147
+ walletConnectInitOptions: {
148
+ projectId: projectID,
149
+ relayUrl: "wss://relay.walletconnect.com",
150
+ metadata: {
151
+ name: appMetadata.name,
152
+ description: appMetadata.name,
153
+ url: window.location.origin,
154
+ icons: [appMetadata.icon || ""]
155
+ }
156
+ }
157
+ };
158
+ const chainNamespaces = chainIds.map(chainId => {
159
+ return `${namespace}:${namespace === CHAIN_NAMESPACES.SOLANA ? SOLANA_CAIP_CHAIN_MAP[chainId] : parseInt(chainId, 16)}`;
160
+ });
161
+ const loginSettings = {
162
+ optionalNamespaces: getRequiredNamespaces(chainNamespaces)
163
+ };
164
+ return {
165
+ adapterSettings,
166
+ loginSettings
167
+ };
168
+ }
169
+ throw new Error(`Unsupported chain namespace: ${namespace}`);
170
+ };
171
+
172
+ export { DEFAULT_EIP155_METHODS, DEFAULT_EIP_155_EVENTS, DEFAULT_SOLANA_EVENTS, DEFAULT_SOLANA_METHODS, SOLANA_CAIP_CHAIN_MAP, getNamespacesFromChains, getRequiredNamespaces, getSupportedEventsByNamespace, getSupportedMethodsByNamespace, getWalletConnectV2Settings };