bivcore-insight
Version:
A blockchain explorer for Bitcore
96 lines (88 loc) • 2.89 kB
text/typescript
import { Component, Injectable } from '@angular/core';
import { IonicPage, NavParams } from 'ionic-angular';
import { ApiProvider, ChainNetwork } from '../../providers/api/api';
import { BlocksProvider } from '../../providers/blocks/blocks';
import { CurrencyProvider } from '../../providers/currency/currency';
import { PriceProvider } from '../../providers/price/price';
import { RedirProvider } from '../../providers/redir/redir';
import { TxsProvider } from '../../providers/transactions/transactions';
export class BlockDetailPage {
public loading = true;
public errorMessage: string;
public confirmations: number;
public block: any = {
tx: []
};
public chainNetwork: ChainNetwork;
private blockHash: string;
constructor(
public navParams: NavParams,
public currencyProvider: CurrencyProvider,
public redirProvider: RedirProvider,
public txProvider: TxsProvider,
private blocksProvider: BlocksProvider,
private apiProvider: ApiProvider,
private priceProvider: PriceProvider
) {
this.blockHash = navParams.get('blockHash');
const chain: string = navParams.get('chain');
const network: string = navParams.get('network');
this.chainNetwork = {
chain,
network
};
this.apiProvider.changeNetwork(this.chainNetwork);
this.currencyProvider.setCurrency(this.chainNetwork);
this.priceProvider.setCurrency();
}
ionViewDidEnter() {
this.blocksProvider.getBlock(this.blockHash, this.chainNetwork).subscribe(
response => {
let block;
if (
this.chainNetwork.chain === 'BTC' ||
this.chainNetwork.chain === 'BCH' ||
this.chainNetwork.chain === 'BIV'
) {
block = this.blocksProvider.toUtxoCoinAppBlock(response);
}
if (this.chainNetwork.chain === 'ETH') {
block = this.blocksProvider.toEthAppBlock(response);
}
this.block = block;
this.txProvider
.getConfirmations(this.block.height, this.chainNetwork)
.subscribe(confirmations => (this.confirmations = confirmations));
this.loading = false;
},
err => {
this.errorMessage = err;
this.loading = false;
}
);
}
public goToPreviousBlock(): void {
this.redirProvider.redir('block-detail', {
blockHash: this.block.previousblockhash,
chain: this.chainNetwork.chain,
network: this.chainNetwork.network
});
}
public goToNextBlock(): void {
this.redirProvider.redir('block-detail', {
blockHash: this.block.nextblockhash,
chain: this.chainNetwork.chain,
network: this.chainNetwork.network
});
}
}