UNPKG

insight-previous-tcr

Version:

A blockchain explorer for Bitcore

67 lines (60 loc) 1.87 kB
import { Component, Input, OnInit } from "@angular/core"; import { Events } from "ionic-angular"; import _ from "lodash"; import { AddressProvider } from "../../providers/address/address"; import { ChainNetwork } from "../../providers/api/api"; import { Logger } from "../../providers/logger/logger"; import { TxsProvider } from "../../providers/transactions/transactions"; @Component({ selector: 'coin-list', templateUrl: 'coin-list.html' }) export class CoinListComponent implements OnInit { @Input() public addrStr?: string; @Input() public chainNetwork: ChainNetwork; public txs: any = []; public coins: any = []; public showTransactions: boolean; public loading; public limit = 10; public chunkSize = 100; constructor( private addrProvider: AddressProvider, private txsProvider: TxsProvider, private events: Events ) {} public ngOnInit(): void { if (this.txs && this.txs.length === 0) { this.loading = true; this.addrProvider.getAddressActivity(this.addrStr).subscribe( data => { const formattedData = data.map(this.txsProvider.toAppCoin); this.txs = this.processData(formattedData); this.showTransactions = true; this.loading = false; this.events.publish('CoinList', { length: data.length }); }, () => { this.loading = false; this.showTransactions = false; } ); } } processData(data) { const txs = []; data.forEach(tx => { const { mintHeight, mintTxid, value, spentHeight, spentTxid } = tx; txs.push({ height: spentHeight, spentTxid, value }); txs.push({ height: mintHeight, mintTxid, value }); }); return txs; } public loadMore(infiniteScroll) { this.limit += this.chunkSize; this.chunkSize *= 2; infiniteScroll.complete(); } }