UNPKG

@web3auth/no-modal

Version:
72 lines (68 loc) 2.64 kB
'use strict'; var web3_js = require('@solana/web3.js'); var react = require('react'); var baseControllers = require('@toruslabs/base-controllers'); require('@solana/wallet-standard-features'); require('@toruslabs/bs58'); require('@babel/runtime/helpers/objectSpread2'); require('@babel/runtime/helpers/defineProperty'); require('@segment/analytics-next'); require('../../../base/loglevel.js'); require('@web3auth/auth'); require('../../../base/errors/index.js'); require('../../../base/wallet/index.js'); require('../../../base/connector/connectorStatus.js'); require('../../../base/connector/constants.js'); require('jwt-decode'); require('../../../base/plugin/errors.js'); require('../../../base/plugin/IPlugin.js'); require('@toruslabs/constants'); require('@toruslabs/http-helpers'); require('../../../providers/base-provider/utils.js'); require('../../../providers/base-provider/CommonJRPCProvider.js'); require('../../../providers/base-provider/commonPrivateKeyProvider.js'); require('@web3auth/ws-embed'); var solanaWallet = require('../../../providers/solana-provider/solanaWallet.js'); var useChain = require('../../hooks/useChain.js'); require('../../context/WalletServicesInnerContext.js'); require('../../context/Web3AuthInnerContext.js'); var useWeb3Auth = require('../../hooks/useWeb3Auth.js'); const useSolanaWallet = () => { const { provider, web3Auth } = useWeb3Auth.useWeb3Auth(); const { chainNamespace } = useChain.useChain(); const [accounts, setAccounts] = react.useState(null); const solanaWallet$1 = react.useMemo(() => { if (!provider) return null; if (chainNamespace !== baseControllers.CHAIN_NAMESPACES.SOLANA) return null; return new solanaWallet.SolanaWallet(provider); }, [provider, chainNamespace]); const connection = react.useMemo(() => { if (!web3Auth || !provider || chainNamespace !== baseControllers.CHAIN_NAMESPACES.SOLANA) return null; return new web3_js.Connection(web3Auth.currentChain.rpcTarget); }, [web3Auth, provider, chainNamespace]); react.useEffect(() => { const init = async () => { if (chainNamespace !== baseControllers.CHAIN_NAMESPACES.SOLANA) { setAccounts(null); return; } if (!solanaWallet$1) return; const accounts = await solanaWallet$1.getAccounts(); if ((accounts === null || accounts === void 0 ? void 0 : accounts.length) > 0) { setAccounts(accounts); } }; if (solanaWallet$1) init(); }, [solanaWallet$1, chainNamespace]); return { solanaWallet: solanaWallet$1, accounts, connection }; }; exports.useSolanaWallet = useSolanaWallet;