@pushchain/ui-kit
Version:
## Overview
39 lines • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.walletRegistry = void 0;
const metamask_1 = require("./ethereum/metamask");
const phantom_1 = require("./solana/phantom");
const walletConnect_1 = require("./ethereum/walletConnect");
class WalletProviderRegistry {
constructor() {
this.providers = new Map();
this.chainProviders = new Map();
this.registerProvider(new metamask_1.MetamaskProvider());
this.registerProvider(new phantom_1.PhantomProvider());
this.registerProvider(new walletConnect_1.WalletConnectProvider());
}
registerProvider(provider) {
this.providers.set(provider.name, provider);
provider.supportedChains.forEach((chain) => {
var _a;
if (!this.chainProviders.has(chain)) {
this.chainProviders.set(chain, []);
}
(_a = this.chainProviders.get(chain)) === null || _a === void 0 ? void 0 : _a.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