UNPKG

@broxus/tvm-connect

Version:

TypeScript SDK for connecting to Nekoton-compatible wallets using a unified interface.

50 lines (49 loc) 2.59 kB
import { getUserAgent } from '@broxus/js-utils'; import { EverWallet, OxyChatWallet, SparXWallet, VenomWallet } from '../connectors'; import { createProviderConfig } from '../misc/create-provider-config'; import { EverWalletProviderInfo, OxyChatWalletProviderInfo, SparXWalletProviderInfo, VenomWalletProviderInfo, } from '../misc/providers-meta'; import { isEverWalletBrowser, isOxyChatWalletBrowser, isSparXWalletBrowser, isVenomWalletBrowser } from '../utils'; export function getPredefinedProviders(options) { const providers = []; const isEverWallet = isEverWalletBrowser(getUserAgent()); const isVenomWallet = isVenomWalletBrowser(getUserAgent()); const isSparXWallet = isSparXWalletBrowser(getUserAgent()); const isOxyChatWallet = isOxyChatWalletBrowser(getUserAgent()); if (isSparXWallet) { providers.push(createProviderConfig(SparXWallet, { info: options?.getProviderInfo?.(SparXWallet.name, SparXWalletProviderInfo) ?? SparXWalletProviderInfo, onPreconnect: options?.onPreconnect, })); } else if (isEverWallet) { providers.push(createProviderConfig(EverWallet, { info: options?.getProviderInfo?.(EverWallet.name, EverWalletProviderInfo) ?? EverWalletProviderInfo, onPreconnect: options?.onPreconnect, })); } else if (isVenomWallet) { providers.push(createProviderConfig(VenomWallet, { info: options?.getProviderInfo?.(VenomWallet.name, VenomWalletProviderInfo) ?? VenomWalletProviderInfo, onPreconnect: options?.onPreconnect, })); } else if (isOxyChatWallet) { providers.push(createProviderConfig(OxyChatWallet, { info: options?.getProviderInfo?.(OxyChatWallet.name, OxyChatWalletProviderInfo) ?? OxyChatWalletProviderInfo, onPreconnect: options?.onPreconnect, })); } else { providers.push(createProviderConfig(SparXWallet, { info: options?.getProviderInfo?.(SparXWallet.name, SparXWalletProviderInfo) ?? SparXWalletProviderInfo, onPreconnect: options?.onPreconnect, }), createProviderConfig(EverWallet, { info: options?.getProviderInfo?.(EverWallet.name, EverWalletProviderInfo) ?? EverWalletProviderInfo, onPreconnect: options?.onPreconnect, }), createProviderConfig(VenomWallet, { info: options?.getProviderInfo?.(VenomWallet.name, VenomWalletProviderInfo) ?? VenomWalletProviderInfo, onPreconnect: options?.onPreconnect, })); } return providers; }