UNPKG

@web3auth/no-modal

Version:
73 lines (70 loc) 1.87 kB
import _defineProperty from '@babel/runtime/helpers/defineProperty'; import { providerErrors, JRPCEngine, providerFromEngine } from '@web3auth/auth'; import { BaseProvider } from './baseProvider.js'; import { createJsonRpcClient } from './jrpcClient.js'; var _CommonJRPCProvider; class CommonJRPCProvider extends BaseProvider { constructor({ config, state }) { super({ config, state }); } async setupProvider(chainId) { const chain = this.getChain(chainId); if (!chain) throw providerErrors.custom({ message: "Chain not found", code: 4902 }); const { networkMiddleware } = createJsonRpcClient(chain); const engine = new JRPCEngine(); engine.push(networkMiddleware); const provider = providerFromEngine(engine); this.updateProviderEngineProxy(provider); this.emit("chainChanged", chainId); this.emit("connect", { chainId }); this.update({ chainId }); } async switchChain(params) { if (!this._providerEngineProxy) throw providerErrors.custom({ message: "Provider is not initialized", code: 4902 }); const newChainId = params.chainId; if (this.chainId === newChainId) return; this.update({ chainId: "loading" }); await this.setupProvider(newChainId); } getProviderEngineProxy() { return this._providerEngineProxy; } lookupNetwork() { throw new Error("Method not implemented."); } } _CommonJRPCProvider = CommonJRPCProvider; _defineProperty(CommonJRPCProvider, "getProviderInstance", async params => { const providerFactory = new _CommonJRPCProvider({ config: { chain: params.chain, chains: params.chains } }); const { chainId } = params.chain; await providerFactory.setupProvider(chainId); return providerFactory; }); export { CommonJRPCProvider };