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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/dist/lib.cjs/base/chain/IChainInterface.js +2 -2
  2. package/dist/lib.cjs/base/chain/config.js +63 -22
  3. package/dist/lib.cjs/base/connector/baseConnector.js +67 -0
  4. package/dist/lib.cjs/base/connector/constants.js +26 -0
  5. package/dist/lib.cjs/base/errors/index.js +2 -2
  6. package/dist/lib.cjs/base/plugin/errors.js +2 -2
  7. package/dist/lib.cjs/base/wallet/index.js +15 -20
  8. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +392 -0
  9. package/dist/lib.cjs/{adapters/base-evm-adapter/baseEvmAdapter.js → connectors/base-evm-connector/baseEvmConnector.js} +22 -19
  10. package/dist/lib.cjs/{adapters/base-solana-adapter/baseSolanaAdapter.js → connectors/base-solana-connector/baseSolanaConnector.js} +24 -23
  11. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +151 -0
  12. package/dist/lib.cjs/connectors/injected-evm-connector/index.js +12 -0
  13. package/dist/lib.cjs/{adapters/default-evm-adapter/injectedEvmAdapter.js → connectors/injected-evm-connector/injectedEvmConnector.js} +54 -38
  14. package/dist/lib.cjs/connectors/injected-solana-connector/index.js +25 -0
  15. package/dist/lib.cjs/{adapters/default-solana-adapter/walletStandardAdapter.js → connectors/injected-solana-connector/walletStandardConnector.js} +57 -48
  16. package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.js +40 -90
  17. package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.js +23 -26
  18. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +20 -0
  19. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +417 -0
  20. package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.js +12 -25
  21. package/dist/lib.cjs/index.js +100 -82
  22. package/dist/lib.cjs/noModal.js +291 -239
  23. package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +9 -4
  24. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +43 -199
  25. package/dist/lib.cjs/providers/account-abstraction-provider/index.js +32 -0
  26. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +99 -31
  27. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +21 -26
  28. package/dist/lib.cjs/providers/base-provider/baseProvider.js +29 -24
  29. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +2 -13
  30. package/dist/lib.cjs/providers/base-provider/index.js +18 -0
  31. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +34 -57
  32. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +1 -30
  33. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +9 -11
  34. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +3 -5
  35. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +83 -2
  36. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +24 -54
  37. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +18 -27
  38. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +5 -5
  39. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +44 -18
  40. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +23 -58
  41. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -3
  42. package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +18 -42
  43. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +3 -0
  44. package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +16 -42
  45. package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +4 -0
  46. package/dist/lib.esm/base/chain/IChainInterface.js +2 -2
  47. package/dist/lib.esm/base/chain/config.js +63 -22
  48. package/dist/lib.esm/base/connector/baseConnector.js +65 -0
  49. package/dist/lib.esm/base/connector/constants.js +22 -0
  50. package/dist/lib.esm/base/errors/index.js +2 -2
  51. package/dist/lib.esm/base/plugin/errors.js +2 -2
  52. package/dist/lib.esm/base/wallet/index.js +11 -16
  53. package/dist/lib.esm/connectors/auth-connector/authConnector.js +390 -0
  54. package/dist/lib.esm/{adapters/base-evm-adapter/baseEvmAdapter.js → connectors/base-evm-connector/baseEvmConnector.js} +23 -20
  55. package/dist/lib.esm/{adapters/base-solana-adapter/baseSolanaAdapter.js → connectors/base-solana-connector/baseSolanaConnector.js} +25 -24
  56. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +149 -0
  57. package/dist/lib.esm/connectors/injected-evm-connector/index.js +2 -0
  58. package/dist/lib.esm/{adapters/default-evm-adapter/injectedEvmAdapter.js → connectors/injected-evm-connector/injectedEvmConnector.js} +54 -39
  59. package/dist/lib.esm/connectors/injected-solana-connector/index.js +18 -0
  60. package/dist/lib.esm/{adapters/default-solana-adapter/walletStandardAdapter.js → connectors/injected-solana-connector/walletStandardConnector.js} +57 -49
  61. package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.js +41 -91
  62. package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.js +23 -26
  63. package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +3 -0
  64. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +415 -0
  65. package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.js +13 -25
  66. package/dist/lib.esm/index.js +23 -28
  67. package/dist/lib.esm/noModal.js +290 -238
  68. package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +9 -4
  69. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +42 -199
  70. package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -0
  71. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +96 -31
  72. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +22 -27
  73. package/dist/lib.esm/providers/base-provider/baseProvider.js +29 -24
  74. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +2 -13
  75. package/dist/lib.esm/providers/base-provider/index.js +5 -0
  76. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +34 -57
  77. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +2 -30
  78. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +9 -11
  79. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +3 -5
  80. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +83 -2
  81. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +24 -54
  82. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +18 -27
  83. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +5 -5
  84. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +44 -18
  85. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +23 -58
  86. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -3
  87. package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +18 -42
  88. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +3 -0
  89. package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +16 -42
  90. package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +4 -0
  91. package/dist/noModal.cjs.js +12650 -24362
  92. package/dist/noModal.umd.min.js +1 -1
  93. package/dist/noModal.umd.min.js.LICENSE.txt +0 -9
  94. package/dist/types/base/chain/IChainInterface.d.ts +2 -2
  95. package/dist/types/base/chain/config.d.ts +2 -2
  96. package/dist/types/base/connector/baseConnector.d.ts +37 -0
  97. package/dist/types/base/{adapter → connector}/constants.d.ts +7 -4
  98. package/dist/types/base/{adapter → connector}/index.d.ts +1 -1
  99. package/dist/types/base/{adapter → connector}/interfaces.d.ts +47 -45
  100. package/dist/types/base/core/IWeb3Auth.d.ts +75 -34
  101. package/dist/types/base/errors/index.d.ts +1 -1
  102. package/dist/types/base/hooks/index.d.ts +2 -6
  103. package/dist/types/base/index.d.ts +1 -1
  104. package/dist/types/base/plugin/IPlugin.d.ts +4 -7
  105. package/dist/types/base/plugin/errors.d.ts +1 -1
  106. package/dist/types/base/utils.d.ts +1 -1
  107. package/dist/types/base/wallet/index.d.ts +9 -13
  108. package/dist/types/connectors/auth-connector/authConnector.d.ts +45 -0
  109. package/dist/types/connectors/auth-connector/index.d.ts +2 -0
  110. package/dist/types/connectors/auth-connector/interface.d.ts +14 -0
  111. package/dist/types/connectors/base-evm-connector/baseEvmConnector.d.ts +7 -0
  112. package/dist/types/connectors/base-evm-connector/index.d.ts +1 -0
  113. package/dist/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +7 -0
  114. package/dist/types/connectors/base-solana-connector/index.d.ts +1 -0
  115. package/dist/types/connectors/coinbase-connector/coinbaseConnector.d.ts +7 -0
  116. package/dist/types/connectors/coinbase-connector/index.d.ts +1 -0
  117. package/dist/types/connectors/index.d.ts +7 -0
  118. package/dist/types/connectors/injected-evm-connector/index.d.ts +2 -0
  119. package/dist/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +34 -0
  120. package/dist/types/connectors/injected-solana-connector/index.d.ts +5 -0
  121. package/dist/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +33 -0
  122. package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.d.ts +3 -4
  123. package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.d.ts +4 -4
  124. package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/index.d.ts +1 -1
  125. package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/interface.d.ts +4 -4
  126. package/dist/types/connectors/wallet-connect-v2-connector/walletConnectV2Connector.d.ts +3 -0
  127. package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.d.ts +1 -6
  128. package/dist/types/index.d.ts +1 -1
  129. package/dist/types/noModal.d.ts +29 -14
  130. package/dist/types/plugins/nft-checkout-plugin/plugin.d.ts +11 -7
  131. package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +8 -32
  132. package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +16 -14
  133. package/dist/types/providers/account-abstraction-provider/providers/index.d.ts +0 -1
  134. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -6
  135. package/dist/types/providers/base-provider/CommonJRPCProvider.d.ts +3 -3
  136. package/dist/types/providers/base-provider/baseProvider.d.ts +14 -11
  137. package/dist/types/providers/base-provider/commonPrivateKeyProvider.d.ts +2 -4
  138. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +14 -5
  139. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -1
  140. package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +2 -3
  141. package/dist/types/providers/ethereum-provider/rpc/interfaces.d.ts +0 -13
  142. package/dist/types/providers/solana-provider/interface.d.ts +8 -25
  143. package/dist/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +2 -2
  144. package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +1 -2
  145. package/dist/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +3 -0
  146. package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +7 -4
  147. package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +4 -4
  148. package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +12 -27
  149. package/dist/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +1 -1
  150. package/dist/types/providers/solana-provider/solanaWallet.d.ts +21 -7
  151. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +4 -4
  152. package/dist/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +1 -4
  153. package/dist/types/react/no-modal/interfaces.d.ts +4 -4
  154. package/dist/types/react/wallet-services-plugin/interfaces.d.ts +2 -2
  155. package/dist/types/vue/no-modal/interfaces.d.ts +5 -8
  156. package/dist/types/vue/wallet-services-plugin/interfaces.d.ts +2 -2
  157. package/package.json +8 -7
  158. package/dist/757.noModal.cjs.js +0 -226
  159. package/dist/lib.cjs/adapters/auth-adapter/authAdapter.js +0 -262
  160. package/dist/lib.cjs/adapters/auth-adapter/config.js +0 -17
  161. package/dist/lib.cjs/adapters/coinbase-adapter/coinbaseAdapter.js +0 -156
  162. package/dist/lib.cjs/adapters/default-evm-adapter/index.js +0 -40
  163. package/dist/lib.cjs/adapters/default-evm-adapter/injectedAdapters.js +0 -42
  164. package/dist/lib.cjs/adapters/default-solana-adapter/index.js +0 -40
  165. package/dist/lib.cjs/adapters/default-solana-adapter/injectedAdapters.js +0 -53
  166. package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardHandler.js +0 -77
  167. package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +0 -376
  168. package/dist/lib.cjs/base/adapter/baseAdapter.js +0 -117
  169. package/dist/lib.cjs/base/adapter/constants.js +0 -24
  170. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +0 -29
  171. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +0 -22
  172. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +0 -30
  173. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +0 -30
  174. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +0 -29
  175. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/constants.js +0 -11
  176. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +0 -185
  177. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +0 -106
  178. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +0 -12
  179. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +0 -75
  180. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +0 -109
  181. package/dist/lib.esm/adapters/auth-adapter/authAdapter.js +0 -260
  182. package/dist/lib.esm/adapters/auth-adapter/config.js +0 -15
  183. package/dist/lib.esm/adapters/coinbase-adapter/coinbaseAdapter.js +0 -154
  184. package/dist/lib.esm/adapters/default-evm-adapter/index.js +0 -37
  185. package/dist/lib.esm/adapters/default-evm-adapter/injectedAdapters.js +0 -40
  186. package/dist/lib.esm/adapters/default-solana-adapter/index.js +0 -37
  187. package/dist/lib.esm/adapters/default-solana-adapter/injectedAdapters.js +0 -51
  188. package/dist/lib.esm/adapters/default-solana-adapter/walletStandardHandler.js +0 -75
  189. package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +0 -374
  190. package/dist/lib.esm/base/adapter/baseAdapter.js +0 -115
  191. package/dist/lib.esm/base/adapter/constants.js +0 -20
  192. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +0 -27
  193. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +0 -20
  194. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +0 -28
  195. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +0 -28
  196. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +0 -27
  197. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/constants.js +0 -9
  198. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +0 -183
  199. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +0 -104
  200. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +0 -10
  201. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +0 -73
  202. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +0 -107
  203. package/dist/types/adapters/auth-adapter/authAdapter.d.ts +0 -42
  204. package/dist/types/adapters/auth-adapter/config.d.ts +0 -2
  205. package/dist/types/adapters/auth-adapter/index.d.ts +0 -3
  206. package/dist/types/adapters/auth-adapter/interface.d.ts +0 -11
  207. package/dist/types/adapters/base-evm-adapter/baseEvmAdapter.d.ts +0 -7
  208. package/dist/types/adapters/base-evm-adapter/index.d.ts +0 -1
  209. package/dist/types/adapters/base-solana-adapter/baseSolanaAdapter.d.ts +0 -7
  210. package/dist/types/adapters/base-solana-adapter/index.d.ts +0 -1
  211. package/dist/types/adapters/coinbase-adapter/coinbaseAdapter.d.ts +0 -33
  212. package/dist/types/adapters/coinbase-adapter/index.d.ts +0 -1
  213. package/dist/types/adapters/default-evm-adapter/index.d.ts +0 -6
  214. package/dist/types/adapters/default-evm-adapter/injectedAdapters.d.ts +0 -4
  215. package/dist/types/adapters/default-evm-adapter/injectedEvmAdapter.d.ts +0 -30
  216. package/dist/types/adapters/default-solana-adapter/index.d.ts +0 -6
  217. package/dist/types/adapters/default-solana-adapter/injectedAdapters.d.ts +0 -4
  218. package/dist/types/adapters/default-solana-adapter/walletStandardAdapter.d.ts +0 -31
  219. package/dist/types/adapters/default-solana-adapter/walletStandardHandler.d.ts +0 -27
  220. package/dist/types/adapters/index.d.ts +0 -7
  221. package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.d.ts +0 -42
  222. package/dist/types/base/adapter/baseAdapter.d.ts +0 -44
  223. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.d.ts +0 -14
  224. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.d.ts +0 -13
  225. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/LightSmartAccount.d.ts +0 -14
  226. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.d.ts +0 -14
  227. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.d.ts +0 -13
  228. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SimpleSmartAccount.d.ts +0 -13
  229. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.d.ts +0 -13
  230. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/constants.d.ts +0 -9
  231. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/types.d.ts +0 -22
  232. package/dist/types/providers/account-abstraction-provider/providers/types.d.ts +0 -17
  233. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.d.ts +0 -30
  234. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.d.ts +0 -9
  235. package/dist/types/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.d.ts +0 -3
  236. package/dist/types/providers/solana-provider/providers/injectedProviders/interface.d.ts +0 -5
  237. package/dist/types/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.d.ts +0 -3
  238. package/dist/types/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.d.ts +0 -18
  239. /package/dist/lib.cjs/base/{adapter → connector}/utils.js +0 -0
  240. /package/dist/lib.cjs/{adapters/default-solana-adapter → providers/solana-provider/providers/injectedProviders}/utils.js +0 -0
  241. /package/dist/lib.esm/base/{adapter → connector}/utils.js +0 -0
  242. /package/dist/lib.esm/{adapters/default-solana-adapter → providers/solana-provider/providers/injectedProviders}/utils.js +0 -0
  243. /package/dist/types/base/{adapter → connector}/utils.d.ts +0 -0
  244. /package/dist/types/{adapters/default-solana-adapter → connectors/injected-solana-connector}/utils.d.ts +0 -0
  245. /package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/utils.d.ts +0 -0
@@ -18,24 +18,25 @@ class BaseProvider extends BaseController {
18
18
  // set to true when the keyExportEnabled flag is set by code.
19
19
  // This is to prevent the flag from being overridden by the dashboard config.
20
20
  _defineProperty(this, "keyExportFlagSetByCode", false);
21
- if (!config.chainConfig) throw WalletInitializationError.invalidProviderConfigError("Please provide chainConfig");
22
- if (!config.chainConfig.chainId) throw WalletInitializationError.invalidProviderConfigError("Please provide chainId inside chainConfig");
23
- if (!config.chainConfig.rpcTarget) throw WalletInitializationError.invalidProviderConfigError("Please provide rpcTarget inside chainConfig");
21
+ const {
22
+ chain
23
+ } = config;
24
+ if (!chain) throw WalletInitializationError.invalidProviderConfigError("Please provide chain");
25
+ if (!chain.chainId) throw WalletInitializationError.invalidProviderConfigError("Please provide chainId inside chain");
26
+ if (!chain.rpcTarget) throw WalletInitializationError.invalidProviderConfigError("Please provide rpcTarget inside chain");
24
27
  if (typeof config.keyExportEnabled === "boolean") this.keyExportFlagSetByCode = true;
25
28
  this.defaultState = {
26
29
  chainId: "loading"
27
30
  };
28
31
  this.defaultConfig = {
29
- chainConfig: config.chainConfig,
30
- networks: {
31
- [config.chainConfig.chainId]: config.chainConfig
32
- },
32
+ chain: config.chain,
33
+ chains: config.chains,
33
34
  keyExportEnabled: typeof config.keyExportEnabled === "boolean" ? config.keyExportEnabled : true
34
35
  };
35
36
  super.initialize();
36
37
  }
37
- get currentChainConfig() {
38
- return this.config.chainConfig;
38
+ get currentChain() {
39
+ return this.config.chains.find(chain => chain.chainId === this.state.chainId);
39
40
  }
40
41
  get provider() {
41
42
  return this._providerEngineProxy;
@@ -87,25 +88,18 @@ class BaseProvider extends BaseController {
87
88
  result: res
88
89
  })).catch(err => callback(err, null));
89
90
  }
90
- addChain(chainConfig) {
91
- if (!chainConfig.chainId) throw rpcErrors.invalidParams("chainId is required");
92
- if (!chainConfig.rpcTarget) throw rpcErrors.invalidParams("chainId is required");
93
- this.configure({
94
- networks: _objectSpread(_objectSpread({}, this.config.networks), {}, {
95
- [chainConfig.chainId]: chainConfig
96
- })
97
- });
98
- }
99
- getChainConfig(chainId) {
100
- var _this$config$networks;
101
- const chainConfig = (_this$config$networks = this.config.networks) === null || _this$config$networks === void 0 ? void 0 : _this$config$networks[chainId];
102
- if (!chainConfig) throw rpcErrors.invalidRequest(`Chain ${chainId} is not supported, please add chainConfig for it`);
103
- return chainConfig;
104
- }
105
91
  updateProviderEngineProxy(provider) {
106
92
  if (this._providerEngineProxy) {
107
93
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
108
94
  this._providerEngineProxy.setTarget(provider);
95
+ // re-emit events from provider
96
+ this._providerEngineProxy.eventNames().forEach(event => {
97
+ provider.on(event, (...args) => {
98
+ // eslint-disable-next-line
99
+ this.emit(event, ...args);
100
+ });
101
+ });
102
+ this.handleChainChangedProvider();
109
103
  } else {
110
104
  this._providerEngineProxy = createEventEmitterProxy(provider);
111
105
  }
@@ -120,6 +114,17 @@ class BaseProvider extends BaseController {
120
114
  getProviderEngineProxy() {
121
115
  return this._providerEngineProxy;
122
116
  }
117
+ getChain(chainId) {
118
+ return this.config.chains.find(chain => chain.chainId === chainId);
119
+ }
120
+ handleChainChangedProvider() {
121
+ // This is only added because we don't have ethereum and solana private key providers anymore
122
+ this.provider.on("chainChanged", chainId => {
123
+ this.update({
124
+ chainId
125
+ });
126
+ });
127
+ }
123
128
  }
124
129
 
125
130
  export { BaseProvider };
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import { createEventEmitterProxy } from '@toruslabs/base-controllers';
3
2
  import { JRPCEngine, providerFromEngine, createScaffoldMiddleware, createAsyncMiddleware } from '@web3auth/auth';
4
3
  import { BaseProvider } from './baseProvider.js';
5
4
 
@@ -22,9 +21,6 @@ class CommonPrivateKeyProvider extends BaseProvider {
22
21
  set provider(_) {
23
22
  throw new Error("Method not implemented.");
24
23
  }
25
- addChain(_) {
26
- throw new Error("Method not implemented.");
27
- }
28
24
  async setupProvider(privKey) {
29
25
  const privKeyMiddleware = this.getPrivKeyMiddleware(privKey);
30
26
  const engine = new JRPCEngine();
@@ -32,14 +28,6 @@ class CommonPrivateKeyProvider extends BaseProvider {
32
28
  const provider = providerFromEngine(engine);
33
29
  this.updateProviderEngineProxy(provider);
34
30
  }
35
- updateProviderEngineProxy(provider) {
36
- if (this._providerEngineProxy) {
37
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
- this._providerEngineProxy.setTarget(provider);
39
- } else {
40
- this._providerEngineProxy = createEventEmitterProxy(provider);
41
- }
42
- }
43
31
  async switchChain(_) {
44
32
  return Promise.resolve();
45
33
  }
@@ -77,7 +65,8 @@ _CommonPrivateKeyProvider = CommonPrivateKeyProvider;
77
65
  _defineProperty(CommonPrivateKeyProvider, "getProviderInstance", async params => {
78
66
  const providerFactory = new _CommonPrivateKeyProvider({
79
67
  config: {
80
- chainConfig: params.chainConfig
68
+ chain: params.chain,
69
+ chains: params.chains
81
70
  }
82
71
  });
83
72
  await providerFactory.setupProvider(params.privKey);
@@ -0,0 +1,5 @@
1
+ export { BaseProvider } from './baseProvider.js';
2
+ export { CommonJRPCProvider } from './CommonJRPCProvider.js';
3
+ export { CommonPrivateKeyProvider } from './commonPrivateKeyProvider.js';
4
+ export { createRandomId } from './utils.js';
5
+ export { getED25519Key } from '@web3auth/auth';
@@ -4,10 +4,10 @@ import { isHexString } from '@ethereumjs/util';
4
4
  import { providerErrors, JRPCEngine, providerFromEngine, rpcErrors } from '@web3auth/auth';
5
5
  import { CHAIN_NAMESPACES } from '../../../../base/chain/IChainInterface.js';
6
6
  import { WalletInitializationError } from '../../../../base/errors/index.js';
7
+ import { BaseProvider } from '../../../base-provider/baseProvider.js';
7
8
  import { createEthAccountMiddleware } from '../../rpc/ethRpcMiddlewares.js';
8
9
  import { getProviderHandlers } from './signingUtils.js';
9
10
  import { TransactionFormatter } from '../../../ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js';
10
- import { BaseProvider } from '../../../base-provider/baseProvider.js';
11
11
  import { createEthMiddleware, createEthChainSwitchMiddleware } from '../../../ethereum-provider/rpc/ethRpcMiddlewares.js';
12
12
  import { createEthJsonRpcClient } from '../../../ethereum-provider/rpc/jrpcClient.js';
13
13
 
@@ -19,9 +19,10 @@ class EthereumSigningProvider extends BaseProvider {
19
19
  }) {
20
20
  super({
21
21
  config: {
22
- chainConfig: _objectSpread(_objectSpread({}, config.chainConfig), {}, {
23
- chainNamespace: CHAIN_NAMESPACES.EIP155
24
- })
22
+ chain: _objectSpread(_objectSpread({}, config.chain), {}, {
23
+ chainNamespace: CHAIN_NAMESPACES.EIP155 // TODO: is this needed ?
24
+ }),
25
+ chains: config.chains
25
26
  },
26
27
  state
27
28
  });
@@ -32,18 +33,20 @@ class EthereumSigningProvider extends BaseProvider {
32
33
  message: "signMethods are not found in state, plz pass it in constructor state param",
33
34
  code: 4902
34
35
  });
35
- await this.setupProvider(this.state.signMethods);
36
+ await this.setupProvider(this.state.signMethods, this.chainId);
36
37
  return this._providerEngineProxy.request({
37
38
  method: "eth_accounts"
38
39
  });
39
40
  }
40
- async setupProvider({
41
- sign,
42
- getPublic
43
- }) {
41
+ async setupProvider(params, chainId) {
42
+ const {
43
+ sign,
44
+ getPublic
45
+ } = params;
46
+ const chain = this.getChain(chainId);
44
47
  const {
45
48
  chainNamespace
46
- } = this.config.chainConfig;
49
+ } = chain;
47
50
  if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
48
51
  const txFormatter = new TransactionFormatter({
49
52
  getProviderEngineProxy: this.getProviderEngineProxy.bind(this)
@@ -60,7 +63,7 @@ class EthereumSigningProvider extends BaseProvider {
60
63
  // Not a partial anymore because of checks in ctor
61
64
  const {
62
65
  networkMiddleware
63
- } = createEthJsonRpcClient(this.config.chainConfig);
66
+ } = createEthJsonRpcClient(chain);
64
67
  engine.push(ethMiddleware);
65
68
  engine.push(chainSwitchMiddleware);
66
69
  engine.push(this.getAccountMiddleware());
@@ -68,11 +71,18 @@ class EthereumSigningProvider extends BaseProvider {
68
71
  const provider = providerFromEngine(engine);
69
72
  this.updateProviderEngineProxy(provider);
70
73
  await txFormatter.init();
71
- await this.lookupNetwork();
74
+ await this.lookupNetwork(params, chainId);
72
75
  this.state.signMethods = {
73
76
  sign,
74
77
  getPublic
75
78
  };
79
+ this.emit("chainChanged", chainId);
80
+ this.emit("connect", {
81
+ chainId
82
+ });
83
+ this.update({
84
+ chainId
85
+ });
76
86
  }
77
87
  async updateAccount(params) {
78
88
  if (!this._providerEngineProxy) throw providerErrors.custom({
@@ -89,7 +99,7 @@ class EthereumSigningProvider extends BaseProvider {
89
99
  const currentPubKey = (await currentSignMethods.getPublic()).toString("hex");
90
100
  const updatePubKey = (await params.signMethods.getPublic()).toString("hex");
91
101
  if (currentPubKey !== updatePubKey) {
92
- await this.setupProvider(params.signMethods);
102
+ await this.setupProvider(params.signMethods, this.chainId);
93
103
  const accounts = await this._providerEngineProxy.request({
94
104
  method: "eth_accounts"
95
105
  });
@@ -101,29 +111,25 @@ class EthereumSigningProvider extends BaseProvider {
101
111
  message: "Provider is not initialized",
102
112
  code: 4902
103
113
  });
104
- const chainConfig = this.getChainConfig(params.chainId);
105
- this.update({
106
- chainId: "loading"
107
- });
108
- this.configure({
109
- chainConfig
110
- });
111
114
  if (!this.state.signMethods) {
112
115
  throw providerErrors.custom({
113
116
  message: "sign methods are undefined",
114
117
  code: 4902
115
118
  });
116
119
  }
117
- await this.setupProvider(this.state.signMethods);
120
+ if (params.chainId === this.chainId) {
121
+ return;
122
+ }
123
+ this.update({
124
+ chainId: "loading"
125
+ });
126
+ await this.setupProvider(this.state.signMethods, params.chainId);
118
127
  }
119
- async lookupNetwork() {
128
+ async lookupNetwork(_, chainId) {
120
129
  if (!this._providerEngineProxy) throw providerErrors.custom({
121
130
  message: "Provider is not initialized",
122
131
  code: 4902
123
132
  });
124
- const {
125
- chainId
126
- } = this.config.chainConfig;
127
133
  if (!chainId) throw rpcErrors.invalidParams("chainId is required while lookupNetwork");
128
134
  const network = await this._providerEngineProxy.request({
129
135
  method: "net_version",
@@ -131,40 +137,10 @@ class EthereumSigningProvider extends BaseProvider {
131
137
  });
132
138
  const finalNetwork = isHexString(network) ? parseInt(network, 16) : parseInt(network, 10);
133
139
  if (parseInt(chainId, 16) !== finalNetwork) throw providerErrors.chainDisconnected(`Invalid network, net_version is: ${network}`);
134
- if (this.state.chainId !== chainId) {
135
- this.emit("chainChanged", chainId);
136
- this.emit("connect", {
137
- chainId
138
- });
139
- }
140
- this.update({
141
- chainId
142
- });
143
140
  return network;
144
141
  }
145
142
  getChainSwitchMiddleware() {
146
143
  const chainSwitchHandlers = {
147
- addChain: async params => {
148
- const {
149
- chainId,
150
- chainName,
151
- rpcUrls,
152
- blockExplorerUrls,
153
- nativeCurrency,
154
- iconUrls
155
- } = params;
156
- this.addChain({
157
- chainNamespace: CHAIN_NAMESPACES.EIP155,
158
- chainId,
159
- ticker: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.symbol) || "ETH",
160
- tickerName: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.name) || "Ether",
161
- displayName: chainName,
162
- rpcTarget: rpcUrls[0],
163
- blockExplorerUrl: (blockExplorerUrls === null || blockExplorerUrls === void 0 ? void 0 : blockExplorerUrls[0]) || "",
164
- decimals: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.decimals) || 18,
165
- logo: (iconUrls === null || iconUrls === void 0 ? void 0 : iconUrls[0]) || "https://images.toruswallet.io/eth.svg"
166
- });
167
- },
168
144
  switchChain: async params => {
169
145
  const {
170
146
  chainId
@@ -187,10 +163,11 @@ _EthereumSigningProvider = EthereumSigningProvider;
187
163
  _defineProperty(EthereumSigningProvider, "getProviderInstance", async params => {
188
164
  const providerFactory = new _EthereumSigningProvider({
189
165
  config: {
190
- chainConfig: params.chainConfig
166
+ chain: params.chain,
167
+ chains: params.chains
191
168
  }
192
169
  });
193
- await providerFactory.setupProvider(params.signMethods);
170
+ await providerFactory.setupProvider(params.signMethods, params.chain.chainId);
194
171
  return providerFactory;
195
172
  });
196
173
 
@@ -27,45 +27,17 @@ function createEthMiddleware(providerHandlers) {
27
27
  return ethMiddleware;
28
28
  }
29
29
  function createEthChainSwitchMiddleware({
30
- addChain,
31
30
  switchChain
32
31
  }) {
33
- async function addNewChain(req, res) {
32
+ async function updateChain(req, res) {
34
33
  var _req$params;
35
34
  const chainParams = (_req$params = req.params) !== null && _req$params !== void 0 && _req$params.length ? req.params[0] : undefined;
36
- if (!chainParams) throw rpcErrors.invalidParams("Missing chain params");
37
- if (!chainParams.chainId) throw rpcErrors.invalidParams("Missing chainId in chainParams");
38
- if (!chainParams.rpcUrls || chainParams.rpcUrls.length === 0) throw rpcErrors.invalidParams("Missing rpcUrls in chainParams");
39
- if (!chainParams.nativeCurrency) throw rpcErrors.invalidParams("Missing nativeCurrency in chainParams");
40
- res.result = await addChain(chainParams);
41
- }
42
- async function updateChain(req, res) {
43
- var _req$params2;
44
- const chainParams = (_req$params2 = req.params) !== null && _req$params2 !== void 0 && _req$params2.length ? req.params[0] : undefined;
45
35
  if (!chainParams) throw rpcErrors.invalidParams("Missing chainId");
46
36
  res.result = await switchChain(chainParams);
47
37
  }
48
38
  return createScaffoldMiddleware({
49
- wallet_addEthereumChain: createAsyncMiddleware(addNewChain),
50
39
  wallet_switchEthereumChain: createAsyncMiddleware(updateChain)
51
40
  });
52
41
  }
53
42
 
54
- // #region account middlewares
55
- function createEthAccountMiddleware({
56
- updatePrivatekey
57
- }) {
58
- async function updateAccount(req, res) {
59
- var _req$params3;
60
- const accountParams = (_req$params3 = req.params) !== null && _req$params3 !== void 0 && _req$params3.length ? req.params[0] : undefined;
61
- if (!(accountParams !== null && accountParams !== void 0 && accountParams.privateKey)) throw rpcErrors.invalidParams("Missing privateKey");
62
- res.result = await updatePrivatekey(accountParams);
63
- }
64
- return createScaffoldMiddleware({
65
- wallet_updateAccount: createAsyncMiddleware(updateAccount)
66
- });
67
- }
68
-
69
- // #endregion account middlewares
70
-
71
- export { createEthAccountMiddleware, createEthChainSwitchMiddleware, createEthMiddleware };
43
+ export { createEthChainSwitchMiddleware, createEthMiddleware };
@@ -1,8 +1,8 @@
1
1
  import { JRPCEngine, providerFromEngine } from '@web3auth/auth';
2
2
  import { WalletLoginError } from '../../../../../base/errors/index.js';
3
+ import { BaseProvider } from '../../../../base-provider/baseProvider.js';
3
4
  import { createConfigMiddleware } from '../../../rpc/JrpcClient.js';
4
5
  import { createSolanaMiddleware } from '../../../rpc/solanaRpcMiddlewares.js';
5
- import { BaseProvider } from '../../../../base-provider/baseProvider.js';
6
6
 
7
7
  class BaseInjectedProvider extends BaseProvider {
8
8
  constructor({
@@ -15,14 +15,15 @@ class BaseInjectedProvider extends BaseProvider {
15
15
  });
16
16
  }
17
17
  async switchChain(_) {
18
- throw WalletLoginError.unsupportedOperation("Chain switching is not supported by this adapter");
18
+ throw WalletLoginError.unsupportedOperation("Chain switching is not supported by this connector");
19
19
  }
20
- async setupProvider(injectedProvider) {
20
+ async setupProvider(injectedProvider, chainId) {
21
21
  const engine = new JRPCEngine();
22
+ const chain = this.getChain(chainId);
22
23
  const providerHandlers = this.getProviderHandlers(injectedProvider);
23
24
  const solanaMiddleware = createSolanaMiddleware(providerHandlers);
24
25
  engine.push(solanaMiddleware);
25
- const configMiddleware = createConfigMiddleware(this.config.chainConfig);
26
+ const configMiddleware = createConfigMiddleware(chain);
26
27
  engine.push(configMiddleware);
27
28
  const injectedProviderProxy = this.getInjectedProviderProxy(injectedProvider);
28
29
  if (injectedProviderProxy) {
@@ -30,16 +31,13 @@ class BaseInjectedProvider extends BaseProvider {
30
31
  }
31
32
  const provider = providerFromEngine(engine);
32
33
  this.updateProviderEngineProxy(provider);
33
- await this.lookupNetwork();
34
+ await this.lookupNetwork(injectedProvider, chainId);
34
35
  }
35
- async lookupNetwork() {
36
- const {
37
- chainConfig
38
- } = this.config;
36
+ async lookupNetwork(_injectedProvider, chainId) {
39
37
  this.update({
40
- chainId: chainConfig.chainId
38
+ chainId
41
39
  });
42
- return chainConfig.chainId || "";
40
+ return chainId || "";
43
41
  }
44
42
  getInjectedProviderProxy(_) {
45
43
  return undefined;
@@ -21,8 +21,8 @@ const getBaseProviderHandlers = injectedProvider => {
21
21
  return transaction;
22
22
  },
23
23
  signMessage: async req => {
24
- const sigData = await injectedProvider.signMessage(req.params.message, req.params.display);
25
- return sigData.signature;
24
+ const sigData = await injectedProvider.signMessage(req.params.data, req.params.from, req.params.display);
25
+ return sigData;
26
26
  },
27
27
  signAllTransactions: async req => {
28
28
  var _req$params, _req$params2;
@@ -34,9 +34,7 @@ const getBaseProviderHandlers = injectedProvider => {
34
34
  },
35
35
  signAndSendTransaction: async req => {
36
36
  const txRes = await injectedProvider.signAndSendTransaction(req.params.message);
37
- return {
38
- signature: txRes.signature
39
- };
37
+ return txRes;
40
38
  }
41
39
  };
42
40
  return providerHandlers;
@@ -1,9 +1,90 @@
1
+ import { SolanaSignAndSendTransaction, SolanaSignTransaction, SolanaSignMessage } from '@solana/wallet-standard-features';
2
+ import { PublicKey, VersionedTransaction } from '@solana/web3.js';
3
+ import bs58 from 'bs58';
4
+ import { WalletLoginError } from '../../../../base/errors/index.js';
1
5
  import { BaseInjectedProvider } from './base/baseInjectedProvider.js';
2
6
  import { getBaseProviderHandlers } from './base/providerHandlers.js';
7
+ import { getSolanaChainByChainConfig } from './utils.js';
3
8
 
4
9
  class WalletStandardProvider extends BaseInjectedProvider {
5
- getProviderHandlers(injectedProvider) {
6
- return getBaseProviderHandlers(injectedProvider);
10
+ getProviderHandlers(wallet) {
11
+ const chainIdentifier = getSolanaChainByChainConfig(this.config.chain);
12
+ const currentAccount = () => {
13
+ const account = wallet === null || wallet === void 0 ? void 0 : wallet.accounts[0];
14
+ if (!account) throw WalletLoginError.notConnectedError();
15
+ return account;
16
+ };
17
+
18
+ /**
19
+ * Signs a message and returns the signature
20
+ * @param message - The message to sign
21
+ * @returns The signature of the message encoded in base58
22
+ */
23
+ const signMessage = async message => {
24
+ const account = currentAccount();
25
+ const uint8ArrayMessage = new Uint8Array(Buffer.from(message, "utf-8"));
26
+ const signature = await wallet.features[SolanaSignMessage].signMessage({
27
+ account,
28
+ message: uint8ArrayMessage
29
+ });
30
+ return bs58.encode(signature[0].signature);
31
+ };
32
+
33
+ /**
34
+ * Signs a transaction and returns the signature
35
+ * @param transaction - The transaction to sign
36
+ * @returns The signature of the transaction encoded in base58
37
+ */
38
+ const signTransaction = async transaction => {
39
+ const account = currentAccount();
40
+ const output = await wallet.features[SolanaSignTransaction].signTransaction({
41
+ account,
42
+ transaction: new Uint8Array(Buffer.from(transaction, "base64")),
43
+ chain: chainIdentifier
44
+ });
45
+ return bs58.encode(VersionedTransaction.deserialize(output[0].signedTransaction).signatures[0]);
46
+ };
47
+
48
+ /**
49
+ * Signs multiple transactions and returns the serialized transactions
50
+ * @param transactions - The transactions to sign
51
+ * @returns The serialized transactions encoded in base64
52
+ */
53
+ const signAllTransactions = async transactions => {
54
+ const account = currentAccount();
55
+ return Promise.all(transactions.map(async transaction => {
56
+ const output = await wallet.features[SolanaSignTransaction].signTransaction({
57
+ account,
58
+ transaction: new Uint8Array(Buffer.from(transaction, "base64")),
59
+ chain: chainIdentifier
60
+ });
61
+ return Buffer.from(output[0].signedTransaction).toString("base64");
62
+ }));
63
+ };
64
+
65
+ /**
66
+ * Signs a transaction and sends it to the network
67
+ * @param transaction - The transaction to sign and send
68
+ * @returns The signature of the transaction encoded in base58
69
+ */
70
+ const signAndSendTransaction = async transaction => {
71
+ const account = currentAccount();
72
+ const output = await wallet.features[SolanaSignAndSendTransaction].signAndSendTransaction({
73
+ account,
74
+ transaction: new Uint8Array(Buffer.from(transaction, "base64")),
75
+ chain: chainIdentifier
76
+ });
77
+ return bs58.encode(output[0].signature);
78
+ };
79
+ return getBaseProviderHandlers({
80
+ get publicKey() {
81
+ return new PublicKey(currentAccount().publicKey);
82
+ },
83
+ signMessage,
84
+ signTransaction,
85
+ signAllTransactions,
86
+ signAndSendTransaction
87
+ });
7
88
  }
8
89
  }
9
90