insight-previous-tcr
Version:
A blockchain explorer for Bitcore
85 lines (77 loc) • 2.6 kB
text/typescript
import { Component, Injectable } from "@angular/core";
import { IonicPage, NavParams } from "ionic-angular";
import { ApiProvider, ChainNetwork } from "../../providers/api/api";
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 TransactionPage {
public loading = true;
public tx: any = {};
public vout: number;
public fromVout: boolean;
public confirmations: number;
public errorMessage: string;
private txId: string;
private chainNetwork: ChainNetwork;
constructor(
public navParams: NavParams,
public currencyProvider: CurrencyProvider,
public redirProvider: RedirProvider,
private apiProvider: ApiProvider,
private txProvider: TxsProvider,
private priceProvider: PriceProvider
) {
this.txId = navParams.get('txId');
this.vout = navParams.get('vout');
this.fromVout = navParams.get('fromVout') || undefined;
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();
}
public ionViewDidEnter(): void {
this.txProvider.getTx(this.txId, this.chainNetwork).subscribe(
data => {
this.tx = this.txProvider.toAppTx(data);
this.loading = false;
this.txProvider
.getConfirmations(this.tx.blockheight, this.chainNetwork)
.subscribe(confirmations => {
if (confirmations === -3) {
this.errorMessage =
'This transaction is invalid and will never confirm, because some of its inputs are already spent.';
}
this.confirmations = confirmations;
});
// Be aware that the tx component is loading data into the tx object
},
err => {
this.errorMessage = err;
this.loading = false;
}
);
}
public goToBlock(blockHash: string): void {
this.redirProvider.redir('block-detail', {
blockHash,
chain: this.chainNetwork.chain,
network: this.chainNetwork.network
});
}
}