@broxus/tvm-connect
Version:
TypeScript SDK for connecting to Nekoton-compatible wallets using a unified interface.
50 lines (49 loc) • 2.59 kB
JavaScript
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;
}