blockbook-client
Version:
Client for interacting with Trezor's blockbook API
110 lines • 4.52 kB
JavaScript
import * as t from 'io-ts';
import { requiredOptionalCodec, extendCodec } from '@bitaccess/ts-common';
import { NormalizedTxCommonVin, NormalizedTxCommonVout, NormalizedTxCommon, AddressDetailsCommonBasic, GetAddressDetailsOptions, TokenDetailsTypeXpubAddress, BlockInfoCommon, paginated, } from './common';
export const NormalizedTxBitcoinVinWithoutCoinbase = extendCodec(NormalizedTxCommonVin, {
value: t.string,
}, 'NormalizedTxBitcoinVinWithoutCoinbase');
export const NormalizedTxBitcoinVinWithCoinbase = extendCodec(NormalizedTxCommonVin, {
coinbase: t.string,
}, 'NormalizedTxBitcoinVinWithCoinbase');
export const NormalizedTxBitcoinVin = t.union([NormalizedTxBitcoinVinWithoutCoinbase, NormalizedTxBitcoinVinWithCoinbase], 'NormalizedTxBitcoinVin');
export const NormalizedTxBitcoinVout = extendCodec(NormalizedTxCommonVout, {
value: t.string,
}, 'NormalizedTxBitcoinVout');
export const NormalizedTxBitcoin = extendCodec(NormalizedTxCommon, {
vin: t.array(NormalizedTxBitcoinVin),
vout: t.array(NormalizedTxBitcoinVout),
valueIn: t.string,
fees: t.string,
}, 'NormalizedTxBitcoin');
export const SpecificTxBitcoinVinScriptSig = t.type({
asm: t.string,
hex: t.string,
}, 'SpecificTxBitcoinVinScriptSig');
export const SpecificTxBitcoinVin = t.type({
txid: t.string,
vout: t.number,
scriptSig: SpecificTxBitcoinVinScriptSig,
sequence: t.number,
}, 'SpecificTxBitcoinVin');
export const SpecificTxBitcoinVoutScriptPubKey = requiredOptionalCodec({
asm: t.string,
hex: t.string,
type: t.string,
}, {
reqSigs: t.number,
addresses: t.array(t.string),
address: t.string,
}, 'SpecificTxBitcoinVoutScriptPubKey');
export const SpecificTxBitcoinVout = t.type({
value: t.number,
n: t.number,
scriptPubKey: SpecificTxBitcoinVoutScriptPubKey,
}, 'SpecificTxBitcoinVout');
export const SpecificTxBitcoin = requiredOptionalCodec({
txid: t.string,
hash: t.string,
version: t.number,
size: t.number,
locktime: t.number,
vin: t.array(SpecificTxBitcoinVin),
vout: t.array(SpecificTxBitcoinVout),
hex: t.string,
}, {
vsize: t.number,
weight: t.number,
blockhash: t.string,
confirmations: t.number,
time: t.number,
blocktime: t.number,
}, 'SpecificTxBitcoin');
export const AddressDetailsBitcoinBasic = extendCodec(AddressDetailsCommonBasic, {
totalReceived: t.string,
totalSent: t.string,
}, 'AddressDetailsBitcoinBasic');
export const AddressDetailsBitcoinTokens = AddressDetailsBitcoinBasic;
export const AddressDetailsBitcoinTokenBalances = AddressDetailsBitcoinBasic;
export const AddressDetailsBitcoinTxids = paginated(extendCodec(AddressDetailsBitcoinTokenBalances, {}, {
txids: t.array(t.string),
}, 'AddressDetailsBitcoinTxids'));
export const AddressDetailsBitcoinTxs = paginated(extendCodec(AddressDetailsBitcoinTokenBalances, {}, {
transactions: t.array(NormalizedTxBitcoin),
}, 'AddressDetailsBitcoinTxs'));
export const GetXpubDetailsTokensOption = t.keyof({
nonzero: null,
used: null,
derived: null,
}, 'GetXpubDetailsTokensOption');
export const GetXpubDetailsOptions = extendCodec(GetAddressDetailsOptions, {}, {
usedTokens: t.number,
tokens: GetXpubDetailsTokensOption,
}, 'GetXpubDetailsOptions');
export const TokenDetailsXpubAddress = t.type({
type: TokenDetailsTypeXpubAddress,
name: t.string,
path: t.string,
transfers: t.number,
decimals: t.number,
}, 'TokenDetailsXpubAddress');
export const TokenDetailsXpubAddressBalance = extendCodec(TokenDetailsXpubAddress, {}, {
balance: t.string,
totalReceived: t.string,
totalSent: t.string,
}, 'TokenDetailsXpubAddressBalance');
export const XpubDetailsBasic = AddressDetailsBitcoinBasic;
export const XpubDetailsTokens = extendCodec(XpubDetailsBasic, {}, {
tokens: t.array(TokenDetailsXpubAddress),
}, 'XpubDetailsTokens');
export const XpubDetailsTokenBalances = extendCodec(XpubDetailsBasic, {}, {
tokens: t.array(TokenDetailsXpubAddressBalance),
}, 'XpubDetailsTokenBalances');
export const XpubDetailsTxids = paginated(extendCodec(XpubDetailsTokenBalances, {}, {
txids: t.array(t.string),
}, 'XpubDetailsTxids'));
export const XpubDetailsTxs = paginated(extendCodec(XpubDetailsTokenBalances, {}, {
transactions: t.array(NormalizedTxBitcoin),
}, 'XpubDetailsTxs'));
export const BlockInfoBitcoin = extendCodec(BlockInfoCommon, {}, {
txs: t.array(NormalizedTxBitcoin),
}, 'BlockInfoBitcoin');
//# sourceMappingURL=bitcoin.js.map