UNPKG

@chain-registry/client

Version:
37 lines (36 loc) 1.18 kB
import { getAssetLists } from '@chain-registry/utils'; export class ChainInfo { chainName; fetcher; _chain; _assetList; _assetLists; _ibcData = []; constructor(options) { this.chainName = options.chainName; this.fetcher = options.fetcher; this.refresh(); } refresh() { this._assetList = this.fetcher.getChainAssetList(this.chainName); this._ibcData = this.fetcher.getChainIbcData(this.chainName); this._chain = this.fetcher.getChain(this.chainName); const supportedChains = this._ibcData.reduce((m, v) => { if (!m.includes(v.chain_1.chain_name)) m.push(v.chain_1.chain_name); if (!m.includes(v.chain_2.chain_name)) m.push(v.chain_2.chain_name); return m; }, []); this._assetLists = this.fetcher.assetLists.filter((list) => supportedChains.includes(list.chain_name)); } get chain() { return this._chain; } get nativeAssetList() { return this._assetList; } get assetLists() { return getAssetLists(this.chainName, this._ibcData, this._assetLists); } }