blockchain-api-client
Version:
Blockchain Api Client which maps Results of all supported Blockchain API's into a unified interface
43 lines (40 loc) • 1.41 kB
text/typescript
import { Balance, Input, Output, Transaction } from '../../../base/types';
import { BlockCypherBalance, BlockCypherBalanceFull } from './blockcypher-bitcoin-types';
export const mapBlockCypherBalance = (balance: BlockCypherBalance): Balance => {
return {
incoming: balance.total_received,
outgoing: balance.total_sent,
unconfirmedBalance: balance.unconfirmed_balance,
confirmedBalance: balance.final_balance,
};
};
export const mapBlockCypherTransactions = (transaction: BlockCypherBalanceFull): Transaction[] => {
return transaction.txs.map<Transaction>((transaction, index) => ({
blockNumber: transaction.block_index,
fee: transaction.fees,
hash: transaction.hash,
hex: transaction.hex || '',
index,
inputs: transaction.inputs.map<Input>(input => ({
prevout: {
hash: input.prev_hash,
index: input.output_index,
},
sequence: input.sequence,
script: input.script,
scriptType: input.script_type,
})),
locktime: transaction.lock_time,
outputs: transaction.outputs.map<Output>(output => ({
value: output.value,
script: output.script,
address: output.addresses[0],
})),
size: transaction.size,
time: transaction.received.getTime(),
version: transaction.ver,
vsize: transaction.vsize,
total: transaction.total,
witnessHash: transaction.witness_hash || '',
}));
};