UNPKG

blockbook-client

Version:

Client for interacting with Trezor's blockbook API

110 lines 4.52 kB
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