UNPKG

0xweb

Version:

Contract package manager and other web3 tools

43 lines (35 loc) 1.63 kB
import { TPlatform } from '@dequanto/models/TPlatform'; import { $config } from '@dequanto/utils/$config'; import { IBlockchainExplorer } from './IBlockchainExplorer'; import { Constructor } from '@dequanto/utils/types'; import { BlockchainExplorer, IBlockchainExplorerFactoryParams } from './BlockchainExplorer'; /** @obsolete Use BlockchainExplorerFactory instead */ export namespace BlockchainExplorerProvider { const registry = {} as Record<TPlatform, IBlockchainExplorer | Constructor<IBlockchainExplorer>>; export function get (platform: TPlatform): IBlockchainExplorer { switch (platform) { case 'hardhat': return new BlockchainExplorer({ platform }); default: let cfg = $config.get(`blockchainExplorer.${platform}`); let Mix = registry[platform]; if (Mix != null) { if (typeof Mix === 'function') { return new Mix(cfg); } return Mix; } if (cfg != null) { return new BlockchainExplorer({ platform }); } throw new Error(`Unsupported platform ${platform} for block chain explorer`); } } export function register (platform: TPlatform, explorer: IBlockchainExplorer | Constructor<IBlockchainExplorer>) { registry[platform] = explorer; } /** @obsolete Use BlockchainExplorer class instead */ export function create(options: IBlockchainExplorerFactoryParams) { return new BlockchainExplorer(options); } }