UNPKG

@pushchain/ui-kit

Version:

Push Chain is a true universal L1 that is 100% EVM compatible. It allows developers to deploy once and make their apps instantly compatible with users from all other L1s (Ethereum, Solana, etc) with zero on-chain code change.

42 lines 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.walletRegistry = void 0; const metamask_1 = require("./ethereum/metamask"); const phantom_1 = require("./solana/phantom"); const rabby_1 = require("./ethereum/rabby"); const zerion_1 = require("./ethereum/zerion"); const walletConnect_1 = require("./ethereum/walletConnect"); class WalletProviderRegistry { providers = new Map(); chainProviders = new Map(); constructor() { this.registerProvider(new metamask_1.MetamaskProvider()); this.registerProvider(new phantom_1.PhantomProvider()); this.registerProvider(new walletConnect_1.WalletConnectProvider()); this.registerProvider(new rabby_1.RabbyProvider()); this.registerProvider(new zerion_1.ZerionProvider()); } registerProvider(provider) { this.providers.set(provider.name, provider); provider.supportedChains.forEach((chain) => { if (!this.chainProviders.has(chain)) { this.chainProviders.set(chain, []); } this.chainProviders.get(chain)?.push(provider); }); } getProvider(name) { return this.providers.get(name); } getProvidersByChain(chain) { return this.chainProviders.get(chain) || []; } getAllProviders() { return Array.from(this.providers.values()); } getAllSupportedChains() { return Array.from(this.chainProviders.keys()); } } exports.walletRegistry = new WalletProviderRegistry(); //# sourceMappingURL=WalletProviderRegistry.js.map