UNPKG

@thirdweb-dev/wallets

Version:

<p align="center"> <br /> <a href="https://thirdweb.com"><img src="https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true" width="200" alt=""/></a> <br /> </p> <h1 align="center">thirdweb Wallet SDK</h1> <p align="center"> <a h

505 lines (491 loc) • 25.3 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var core = require('@walletconnect/core'); var web3wallet = require('@walletconnect/web3wallet'); var ethers = require('ethers'); var EventEmitter = require('eventemitter3'); var wc = require('./wc-6f95118d.cjs.dev.js'); var jsonrpcUtils = require('@walletconnect/jsonrpc-utils'); var evm_wallets_base_dist_thirdwebDevWalletsEvmWalletsBase = require('./base-23fd36a9.cjs.dev.js'); var walletIds = require('./walletIds-a0be5020.cjs.dev.js'); var WagmiConnector = require('./WagmiConnector-6ff7d562.cjs.dev.js'); var errors = require('./errors-a8e8ea7b.cjs.dev.js'); var normalizeChainId = require('./normalizeChainId-5da85f42.cjs.dev.js'); var connector = require('./connector-a63dd9e7.cjs.dev.js'); var utils = require('./utils-2aaa1386.cjs.dev.js'); var evm_wallets_blocto_dist_thirdwebDevWalletsEvmWalletsBlocto = require('../evm/wallets/blocto/dist/thirdweb-dev-wallets-evm-wallets-blocto.cjs.dev.js'); var evm_wallets_embeddedWallet_dist_thirdwebDevWalletsEvmWalletsEmbeddedWallet = require('../evm/wallets/embedded-wallet/dist/thirdweb-dev-wallets-evm-wallets-embedded-wallet.cjs.dev.js'); var supportedSmsCountries = require('./supported-sms-countries-0545c8a6.cjs.dev.js'); var evm_wallets_metamask_dist_thirdwebDevWalletsEvmWalletsMetamask = require('../evm/wallets/metamask/dist/thirdweb-dev-wallets-evm-wallets-metamask.cjs.dev.js'); var getInjectedXDEFIProvider = require('./getInjectedXDEFIProvider-c2cf0aa1.cjs.dev.js'); var evm_wallets_okx_dist_thirdwebDevWalletsEvmWalletsOkx = require('../evm/wallets/okx/dist/thirdweb-dev-wallets-evm-wallets-okx.cjs.dev.js'); var getInjectedOKXProvider = require('./getInjectedOKXProvider-061eeec5.cjs.dev.js'); var evm_wallets_coreWallet_dist_thirdwebDevWalletsEvmWalletsCoreWallet = require('../evm/wallets/core-wallet/dist/thirdweb-dev-wallets-evm-wallets-core-wallet.cjs.dev.js'); var getInjectedCoreWalletProvider = require('./getInjectedCoreWalletProvider-40994347.cjs.dev.js'); var evm_wallets_onekey_dist_thirdwebDevWalletsEvmWalletsOnekey = require('../evm/wallets/onekey/dist/thirdweb-dev-wallets-evm-wallets-onekey.cjs.dev.js'); var getInjectedOneKeyProvider = require('./getInjectedOneKeyProvider-0a528a5e.cjs.dev.js'); var evm_wallets_cryptoDefiWallet_dist_thirdwebDevWalletsEvmWalletsCryptoDefiWallet = require('../evm/wallets/crypto-defi-wallet/dist/thirdweb-dev-wallets-evm-wallets-crypto-defi-wallet.cjs.dev.js'); var getInjectedCryptoDefiWalletProvider = require('./getInjectedCryptoDefiWalletProvider-0c32c7a6.cjs.dev.js'); var evm_wallets_rabby_dist_thirdwebDevWalletsEvmWalletsRabby = require('../evm/wallets/rabby/dist/thirdweb-dev-wallets-evm-wallets-rabby.cjs.dev.js'); var getInjectedRabbyProvider = require('./getInjectedRabbyProvider-6848be5c.cjs.dev.js'); var evm_wallets_coin98_dist_thirdwebDevWalletsEvmWalletsCoin98 = require('../evm/wallets/coin98/dist/thirdweb-dev-wallets-evm-wallets-coin98.cjs.dev.js'); var getInjectedCoin98Provider = require('./getInjectedCoin98Provider-8ce651ee.cjs.dev.js'); var getInjectedMagicEdenProvider = require('./getInjectedMagicEdenProvider-528a94a3.cjs.dev.js'); var getInjectedMetamaskProvider = require('./getInjectedMetamaskProvider-ac276221.cjs.dev.js'); var getInjectedPhantomProvider = require('./getInjectedPhantomProvider-231d1eba.cjs.dev.js'); var getInjectedRainbowProvider = require('./getInjectedRainbowProvider-c2c5c73f.cjs.dev.js'); var getInjectedCoinbaseProvider = require('./getInjectedCoinbaseProvider-4b26612d.cjs.dev.js'); var assertWindowEthereum = require('./assertWindowEthereum-0709ee9e.cjs.dev.js'); var evm_wallets_engine_dist_thirdwebDevWalletsEvmWalletsEngine = require('./engine-4ba3f686.cjs.dev.js'); var evm_wallets_paperWallet_dist_thirdwebDevWalletsEvmWalletsPaperWallet = require('../evm/wallets/paper-wallet/dist/thirdweb-dev-wallets-evm-wallets-paper-wallet.cjs.dev.js'); var evm_wallets_coinbaseWallet_dist_thirdwebDevWalletsEvmWalletsCoinbaseWallet = require('../evm/wallets/coinbase-wallet/dist/thirdweb-dev-wallets-evm-wallets-coinbase-wallet.cjs.dev.js'); var evm_wallets_ethers_dist_thirdwebDevWalletsEvmWalletsEthers = require('../evm/wallets/ethers/dist/thirdweb-dev-wallets-evm-wallets-ethers.cjs.dev.js'); var evm_wallets_frame_dist_thirdwebDevWalletsEvmWalletsFrame = require('../evm/wallets/frame/dist/thirdweb-dev-wallets-evm-wallets-frame.cjs.dev.js'); var evm_wallets_imtoken_dist_thirdwebDevWalletsEvmWalletsImtoken = require('../evm/wallets/imtoken/dist/thirdweb-dev-wallets-evm-wallets-imtoken.cjs.dev.js'); var evm_wallets_injected_dist_thirdwebDevWalletsEvmWalletsInjected = require('../evm/wallets/injected/dist/thirdweb-dev-wallets-evm-wallets-injected.cjs.dev.js'); var evm_wallets_localWallet_dist_thirdwebDevWalletsEvmWalletsLocalWallet = require('../evm/wallets/local-wallet/dist/thirdweb-dev-wallets-evm-wallets-local-wallet.cjs.dev.js'); var evm_wallets_signer_dist_thirdwebDevWalletsEvmWalletsSigner = require('../evm/wallets/signer/dist/thirdweb-dev-wallets-evm-wallets-signer.cjs.dev.js'); var evm_wallets_magic_dist_thirdwebDevWalletsEvmWalletsMagic = require('../evm/wallets/magic/dist/thirdweb-dev-wallets-evm-wallets-magic.cjs.dev.js'); var evm_wallets_xdefi_dist_thirdwebDevWalletsEvmWalletsXdefi = require('../evm/wallets/xdefi/dist/thirdweb-dev-wallets-evm-wallets-xdefi.cjs.dev.js'); var evm_wallets_phantom_dist_thirdwebDevWalletsEvmWalletsPhantom = require('../evm/wallets/phantom/dist/thirdweb-dev-wallets-evm-wallets-phantom.cjs.dev.js'); var evm_wallets_privateKey_dist_thirdwebDevWalletsEvmWalletsPrivateKey = require('../evm/wallets/private-key/dist/thirdweb-dev-wallets-evm-wallets-private-key.cjs.dev.js'); var evm_wallets_rainbowWallet_dist_thirdwebDevWalletsEvmWalletsRainbowWallet = require('../evm/wallets/rainbow-wallet/dist/thirdweb-dev-wallets-evm-wallets-rainbow-wallet.cjs.dev.js'); var evm_wallets_safe_dist_thirdwebDevWalletsEvmWalletsSafe = require('../evm/wallets/safe/dist/thirdweb-dev-wallets-evm-wallets-safe.cjs.dev.js'); var evm_wallets_smartWallet_dist_thirdwebDevWalletsEvmWalletsSmartWallet = require('../evm/wallets/smart-wallet/dist/thirdweb-dev-wallets-evm-wallets-smart-wallet.cjs.dev.js'); var evm_wallets_trust_dist_thirdwebDevWalletsEvmWalletsTrust = require('../evm/wallets/trust/dist/thirdweb-dev-wallets-evm-wallets-trust.cjs.dev.js'); var evm_wallets_walletConnect_dist_thirdwebDevWalletsEvmWalletsWalletConnect = require('../evm/wallets/wallet-connect/dist/thirdweb-dev-wallets-evm-wallets-wallet-connect.cjs.dev.js'); var evm_wallets_walletConnectV1_dist_thirdwebDevWalletsEvmWalletsWalletConnectV1 = require('../evm/wallets/wallet-connect-v1/dist/thirdweb-dev-wallets-evm-wallets-wallet-connect-v1.cjs.dev.js'); var evm_wallets_zerion_dist_thirdwebDevWalletsEvmWalletsZerion = require('../evm/wallets/zerion/dist/thirdweb-dev-wallets-evm-wallets-zerion.cjs.dev.js'); var evm_wallets_tokenBoundSmartWallet_dist_thirdwebDevWalletsEvmWalletsTokenBoundSmartWallet = require('../evm/wallets/token-bound-smart-wallet/dist/thirdweb-dev-wallets-evm-wallets-token-bound-smart-wallet.cjs.dev.js'); var evm_wallets_magicEden_dist_thirdwebDevWalletsEvmWalletsMagicEden = require('../evm/wallets/magic-eden/dist/thirdweb-dev-wallets-evm-wallets-magic-eden.cjs.dev.js'); var embeddedWallet = require('./embedded-wallet-5fe773c1.cjs.dev.js'); require('@thirdweb-dev/chains'); require('../evm/wallets/abstract/dist/thirdweb-dev-wallets-evm-wallets-abstract.cjs.dev.js'); require('./defineProperty-9051a5d3.cjs.dev.js'); require('@thirdweb-dev/sdk'); require('./headers-2be346e5.cjs.dev.js'); require('./url-4b641c31.cjs.dev.js'); require('@account-abstraction/contracts'); require('buffer'); require('@thirdweb-dev/crypto'); require('@paperxyz/sdk-common-utilities'); require('ethers/lib/utils'); function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; } var EventEmitter__default = /*#__PURE__*/_interopDefault(EventEmitter); const PREFIX = "__TW__"; class LocalStorage { constructor(name) { this.name = name; } getItem(key) { return localStorage.getItem(`${PREFIX}/${this.name}/${key}`); } setItem(key, value) { return localStorage.setItem(`${PREFIX}/${this.name}/${key}`, value); } removeItem(key) { return localStorage.removeItem(`${PREFIX}/${this.name}/${key}`); } } /** * @internal */ function createLocalStorage(name) { return new LocalStorage(name); } // connect dapp support through wcv2 protocol class WalletConnectHandler extends EventEmitter__default["default"] { constructor(wallet) { super(); this.wallet = wallet; } } class WalletConnectV2Handler extends WalletConnectHandler { constructor(options, wallet) { super(wallet); const defaultWCReceiverConfig = { walletConnectWalletMetadata: { name: "thirdweb Smart Account", description: "thirdweb Smart Account", url: "https://thirdweb.com", icons: ["https://thirdweb.com/favicon.ico"] }, walletConnectV2ProjectId: wc.TW_WC_PROJECT_ID, walletConnectV2RelayUrl: wc.WC_RELAY_URL, ...(options?.walletConnectReceiver === true ? {} : options?.walletConnectReceiver) }; this._wcMetadata = defaultWCReceiverConfig.walletConnectWalletMetadata; this._core = new core.Core({ projectId: defaultWCReceiverConfig.walletConnectV2ProjectId, relayUrl: defaultWCReceiverConfig.walletConnectV2RelayUrl }); } async init() { this._wcWallet = await web3wallet.Web3Wallet.init({ core: this._core, metadata: this._wcMetadata }); const sessions = this._wcWallet.getActiveSessions(); const keys = Object.keys(sessions); if (keys[0]) { this._session = sessions[keys[0]]; } this._setupWalletConnectEventsListeners(); } async connectApp(wcUri) { if (!this._wcWallet) { throw new Error("Please, init the wallet before connecting an app."); } await this._wcWallet.core.pairing.pair({ uri: wcUri }); } async approveSession() { if (!this._wcWallet) { throw new Error("Please, init the wallet before making session requests."); } if (!this._activeProposal) { throw new Error("Please, pass a valid proposal."); } const account = await this.wallet.getAddress(); const { id, params } = this._activeProposal; const { requiredNamespaces, relays } = params; const namespaces = {}; Object.keys(requiredNamespaces).forEach(key => { const accounts = []; const namespace = requiredNamespaces[key]; if (namespace) { namespace.chains?.map(chain => { accounts.push(`${chain}:${account}`); }); namespaces[key] = { accounts, methods: namespace.methods, events: namespace.events }; } }); this._session = await this._wcWallet.approveSession({ id, relayProtocol: relays[0]?.protocol, namespaces }); this.emit("session_approved"); } async rejectSession() { if (!this._wcWallet) { throw new Error("Please, init the wallet before making session requests."); } if (!this._activeProposal) { throw new Error("Please, pass a valid proposal."); } const { id } = this._activeProposal; await this._wcWallet.rejectSession({ id, reason: { message: "User rejected methods.", code: 5002 } }); } async approveEIP155Request() { if (!this._activeRequestEvent) { return; } const { topic, params, id } = this._activeRequestEvent; const { request } = params; let response; switch (request.method) { case wc.EIP155_SIGNING_METHODS.PERSONAL_SIGN: case wc.EIP155_SIGNING_METHODS.ETH_SIGN: const message = this._getSignParamsMessage(request.params); const signedMessage = await this.wallet.signMessage(message || ""); // TODO: handle empty message response = jsonrpcUtils.formatJsonRpcResult(id, signedMessage); break; // case EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA: // case EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V3: // case EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V4: // const { // domain, // types, // message: data, // } = getSignTypedDataParamsData(request.params); // // https://github.com/ethers-io/ethers.js/issues/687#issuecomment-714069471 // delete types.EIP712Domain; // const signedData = await wallet._signTypedData(domain, types, data); // return formatJsonRpcResult(id, signedData); case wc.EIP155_SIGNING_METHODS.ETH_SEND_TRANSACTION: const signer = await this.wallet.getSigner(); const sendTransaction = request.params[0]; const tx = await signer.sendTransaction(sendTransaction); const { transactionHash } = await tx.wait(); response = jsonrpcUtils.formatJsonRpcResult(id, transactionHash); break; case wc.EIP155_SIGNING_METHODS.ETH_SIGN_TRANSACTION: const signerSign = await this.wallet.getSigner(); const signTransaction = request.params[0]; const signature = await signerSign.signTransaction(signTransaction); response = jsonrpcUtils.formatJsonRpcResult(id, signature); break; default: const error = { id, jsonrpc: "2.0", error: { message: "Invalid event.", code: 1002 } }; return this._wcWallet?.respondSessionRequest({ topic, response: error }); } return this._wcWallet?.respondSessionRequest({ topic, response }); } async rejectEIP155Request() { if (!this._activeRequestEvent) { return; } const { topic, id } = this._activeRequestEvent; const response = { id, jsonrpc: "2.0", error: { message: "User rejected methods.", code: 5002 } }; return this._wcWallet?.respondSessionRequest({ topic, response }); } getActiveSessions() { if (!this._wcWallet) { throw new Error("Please, init the wallet before getting sessions."); } const sessions = this._wcWallet.getActiveSessions(); const sessionKeys = Object.keys(sessions); if (!sessions || sessionKeys.length === 0) { return []; } const thisSessions = []; for (const sessionKey of sessionKeys) { const session = sessions[sessionKey]; if (session) { const topic = session.topic; const peerMeta = session.peer.metadata; thisSessions.push({ topic, peer: { metadata: peerMeta } }); } } return thisSessions; } disconnectSession() { if (!this._wcWallet) { throw new Error("Please, init the wallet before disconnecting sessions."); } if (!this._session) { return Promise.resolve(); } const params = { topic: this._session.topic, reason: { message: "User disconnected.", code: 6000 } }; return this._wcWallet?.disconnectSession(params); } _setupWalletConnectEventsListeners() { if (!this._wcWallet) { throw new Error("Please, init the wallet before making session requests."); } this._wcWallet.on("session_proposal", proposal => { this._activeProposal = proposal; this.emit("session_proposal", { proposer: { metadata: proposal.params.proposer.metadata } }); }); this._wcWallet.on("session_delete", session => { this._session = undefined; this._activeProposal = undefined; this.emit("session_delete", { topic: session.topic }); }); this._wcWallet.on("session_request", async requestEvent => { if (!this._session) { return; } const { params: requestParams } = requestEvent; const { request } = requestParams; const { params } = request; switch (request.method) { case wc.EIP155_SIGNING_METHODS.ETH_SIGN: case wc.EIP155_SIGNING_METHODS.PERSONAL_SIGN: this._activeRequestEvent = requestEvent; const message = params[0]; const decodedMessage = new TextDecoder().decode(ethers.utils.arrayify(message)); const paramsCopy = [...params]; paramsCopy[0] = decodedMessage; this.emit("session_request", { topic: this._session.topic, params: paramsCopy, peer: { metadata: this._session.peer.metadata }, method: request.method }); return; case wc.EIP155_SIGNING_METHODS.ETH_SEND_TRANSACTION: case wc.EIP155_SIGNING_METHODS.ETH_SIGN_TRANSACTION: this._activeRequestEvent = requestEvent; this.emit("session_request", { topic: this._session.topic, params: requestEvent.params.request.params, peer: { metadata: this._session.peer.metadata }, method: request.method }); return; default: throw new Error(`WCV2.Method not supported: ${request.method}`); } }); } /** * Gets message from various signing request methods by filtering out * a value that is not an address (thus is a message). * If it is a hex string, it gets converted to utf8 string */ _getSignParamsMessage(params) { const message = params.filter(p => !ethers.utils.isAddress(p))[0] || ""; // TODO: handle empty message if (ethers.utils.isHexString(message)) { return ethers.utils.toUtf8String(message); } return message; } } exports.EIP155_SIGNING_METHODS = wc.EIP155_SIGNING_METHODS; exports.AbstractClientWallet = evm_wallets_base_dist_thirdwebDevWalletsEvmWalletsBase.AbstractClientWallet; exports.AsyncLocalStorage = evm_wallets_base_dist_thirdwebDevWalletsEvmWalletsBase.AsyncLocalStorage; exports.DEFAULT_DAPP_META = evm_wallets_base_dist_thirdwebDevWalletsEvmWalletsBase.DEFAULT_DAPP_META; exports.createAsyncLocalStorage = evm_wallets_base_dist_thirdwebDevWalletsEvmWalletsBase.createAsyncLocalStorage; exports.isWalletAnalyticsEnabled = evm_wallets_base_dist_thirdwebDevWalletsEvmWalletsBase.isWalletAnalyticsEnabled; exports.setWalletAnalyticsEnabled = evm_wallets_base_dist_thirdwebDevWalletsEvmWalletsBase.setWalletAnalyticsEnabled; exports.walletIds = walletIds.walletIds; exports.WagmiConnector = WagmiConnector.WagmiConnector; exports.AddChainError = errors.AddChainError; exports.ChainNotConfiguredError = errors.ChainNotConfiguredError; exports.ProviderRpcError = errors.ProviderRpcError; exports.SwitchChainError = errors.SwitchChainError; exports.UserRejectedRequestError = errors.UserRejectedRequestError; exports.normalizeChainId = normalizeChainId.normalizeChainId; exports.Connector = connector.Connector; exports.WagmiAdapter = connector.WagmiAdapter; exports.DEFAULT_FACTORY_ADDRESS = utils.DEFAULT_FACTORY_ADDRESS; exports.checkContractWalletSignature = utils.checkContractWalletSignature; exports.getAllSigners = utils.getAllSigners; exports.getAllSmartWallets = utils.getAllSmartWallets; exports.getSmartWalletAddress = utils.getSmartWalletAddress; exports.getUserOpReceipt = utils.getUserOpReceipt; exports.isSmartWalletDeployed = utils.isSmartWalletDeployed; exports.isZkSyncChain = utils.isZkSyncChain; exports.BloctoWallet = evm_wallets_blocto_dist_thirdwebDevWalletsEvmWalletsBlocto.BloctoWallet; exports.EmbeddedWallet = evm_wallets_embeddedWallet_dist_thirdwebDevWalletsEvmWalletsEmbeddedWallet.EmbeddedWallet; exports.InAppWallet = evm_wallets_embeddedWallet_dist_thirdwebDevWalletsEvmWalletsEmbeddedWallet.EmbeddedWallet; exports.supportedSmsCountries = supportedSmsCountries.supportedSmsCountries; exports.MetaMaskWallet = evm_wallets_metamask_dist_thirdwebDevWalletsEvmWalletsMetamask.MetaMaskWallet; exports.getInjectedXDEFIProvider = getInjectedXDEFIProvider.getInjectedXDEFIProvider; exports.OKXWallet = evm_wallets_okx_dist_thirdwebDevWalletsEvmWalletsOkx.OKXWallet; exports.getInjectedOKXProvider = getInjectedOKXProvider.getInjectedOKXProvider; exports.CoreWallet = evm_wallets_coreWallet_dist_thirdwebDevWalletsEvmWalletsCoreWallet.CoreWallet; exports.getInjectedCoreWalletProvider = getInjectedCoreWalletProvider.getInjectedCoreWalletProvider; exports.OneKeyWallet = evm_wallets_onekey_dist_thirdwebDevWalletsEvmWalletsOnekey.OneKeyWallet; exports.getInjectedOneKeyProvider = getInjectedOneKeyProvider.getInjectedOneKeyProvider; exports.CryptoDefiWallet = evm_wallets_cryptoDefiWallet_dist_thirdwebDevWalletsEvmWalletsCryptoDefiWallet.CryptoDefiWallet; exports.getInjectedCryptoDefiWalletProvider = getInjectedCryptoDefiWalletProvider.getInjectedCryptoDefiWalletProvider; exports.RabbyWallet = evm_wallets_rabby_dist_thirdwebDevWalletsEvmWalletsRabby.RabbyWallet; exports.getInjectedRabbyProvider = getInjectedRabbyProvider.getInjectedRabbyProvider; exports.Coin98Wallet = evm_wallets_coin98_dist_thirdwebDevWalletsEvmWalletsCoin98.Coin98Wallet; exports.getInjectedCoin98Provider = getInjectedCoin98Provider.getInjectedCoin98Provider; exports.getInjectedMagicEdenProvider = getInjectedMagicEdenProvider.getInjectedMagicEdenProvider; exports.getInjectedMetamaskProvider = getInjectedMetamaskProvider.getInjectedMetamaskProvider; exports.getInjectedPhantomProvider = getInjectedPhantomProvider.getInjectedPhantomProvider; exports.getInjectedRainbowProvider = getInjectedRainbowProvider.getInjectedRainbowProvider; exports.getInjectedCoinbaseProvider = getInjectedCoinbaseProvider.getInjectedCoinbaseProvider; exports.assertWindowEthereum = assertWindowEthereum.assertWindowEthereum; exports.EngineSigner = evm_wallets_engine_dist_thirdwebDevWalletsEvmWalletsEngine.EngineSigner; exports.EngineWallet = evm_wallets_engine_dist_thirdwebDevWalletsEvmWalletsEngine.EngineWallet; exports.PaperWallet = evm_wallets_paperWallet_dist_thirdwebDevWalletsEvmWalletsPaperWallet.PaperWallet; exports.CoinbaseWallet = evm_wallets_coinbaseWallet_dist_thirdwebDevWalletsEvmWalletsCoinbaseWallet.CoinbaseWallet; exports.EthersWallet = evm_wallets_ethers_dist_thirdwebDevWalletsEvmWalletsEthers.EthersWallet; exports.FrameWallet = evm_wallets_frame_dist_thirdwebDevWalletsEvmWalletsFrame.FrameWallet; exports.ImTokenWallet = evm_wallets_imtoken_dist_thirdwebDevWalletsEvmWalletsImtoken.ImTokenWallet; exports.InjectedWallet = evm_wallets_injected_dist_thirdwebDevWalletsEvmWalletsInjected.InjectedWallet; exports.LocalWallet = evm_wallets_localWallet_dist_thirdwebDevWalletsEvmWalletsLocalWallet.LocalWallet; exports.isValidPrivateKey = evm_wallets_localWallet_dist_thirdwebDevWalletsEvmWalletsLocalWallet.isValidPrivateKey; exports.SignerWallet = evm_wallets_signer_dist_thirdwebDevWalletsEvmWalletsSigner.SignerWallet; exports.MagicLink = evm_wallets_magic_dist_thirdwebDevWalletsEvmWalletsMagic.MagicLink; exports.XDEFIWallet = evm_wallets_xdefi_dist_thirdwebDevWalletsEvmWalletsXdefi.XDEFIWallet; exports.PhantomWallet = evm_wallets_phantom_dist_thirdwebDevWalletsEvmWalletsPhantom.PhantomWallet; exports.PrivateKeyWallet = evm_wallets_privateKey_dist_thirdwebDevWalletsEvmWalletsPrivateKey.PrivateKeyWallet; exports.RainbowWallet = evm_wallets_rainbowWallet_dist_thirdwebDevWalletsEvmWalletsRainbowWallet.RainbowWallet; exports.SafeWallet = evm_wallets_safe_dist_thirdwebDevWalletsEvmWalletsSafe.SafeWallet; exports.SmartWallet = evm_wallets_smartWallet_dist_thirdwebDevWalletsEvmWalletsSmartWallet.SmartWallet; exports.TrustWallet = evm_wallets_trust_dist_thirdwebDevWalletsEvmWalletsTrust.TrustWallet; exports.WalletConnect = evm_wallets_walletConnect_dist_thirdwebDevWalletsEvmWalletsWalletConnect.WalletConnect; exports.WalletConnectV1 = evm_wallets_walletConnectV1_dist_thirdwebDevWalletsEvmWalletsWalletConnectV1.WalletConnectV1; exports.ZerionWallet = evm_wallets_zerion_dist_thirdwebDevWalletsEvmWalletsZerion.ZerionWallet; exports.TokenBoundSmartWallet = evm_wallets_tokenBoundSmartWallet_dist_thirdwebDevWalletsEvmWalletsTokenBoundSmartWallet.TokenBoundSmartWallet; exports.MagicEdenWallet = evm_wallets_magicEden_dist_thirdwebDevWalletsEvmWalletsMagicEden.MagicEdenWallet; exports.AUTH_TOKEN_LOCAL_STORAGE_NAME = embeddedWallet.AUTH_TOKEN_LOCAL_STORAGE_NAME; exports.AuthProvider = embeddedWallet.AuthProvider; exports.DEVICE_SHARE_LOCAL_STORAGE_NAME = embeddedWallet.DEVICE_SHARE_LOCAL_STORAGE_NAME; exports.DEVICE_SHARE_LOCAL_STORAGE_NAME_DEPRECATED = embeddedWallet.DEVICE_SHARE_LOCAL_STORAGE_NAME_DEPRECATED; exports.EmbeddedWalletSdk = embeddedWallet.EmbeddedWalletSdk; exports.RecoveryShareManagement = embeddedWallet.RecoveryShareManagement; exports.UserWalletStatus = embeddedWallet.UserWalletStatus; exports.WALLET_USER_DETAILS_LOCAL_STORAGE_NAME = embeddedWallet.WALLET_USER_DETAILS_LOCAL_STORAGE_NAME; exports.WALLET_USER_ID_LOCAL_STORAGE_NAME = embeddedWallet.WALLET_USER_ID_LOCAL_STORAGE_NAME; exports.LocalStorage = LocalStorage; exports.WalletConnectHandler = WalletConnectHandler; exports.WalletConnectV2Handler = WalletConnectV2Handler; exports.createLocalStorage = createLocalStorage;