UNPKG

airgap-coin-lib

Version:

The airgap-coin-lib is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.

135 lines (134 loc) 6.57 kB
/// <reference types="node" /> import { BitcoinBlockbookTransactionCursor, BitcoinBlockbookTransactionResult } from './BitcoinTypes'; import { IAirGapSignedTransaction } from '../../interfaces/IAirGapSignedTransaction'; import { AirGapTransactionStatus, IAirGapTransaction } from '../../interfaces/IAirGapTransaction'; import { SignedBitcoinTransaction } from '../../serializer/schemas/definitions/signed-transaction-bitcoin'; import { UnsignedTransaction } from '../../serializer/schemas/definitions/unsigned-transaction'; import { RawBitcoinTransaction } from '../../serializer/types'; import { CurrencyUnit, FeeDefaults, ICoinProtocol } from '../ICoinProtocol'; import { ProtocolSymbols } from '../../utils/ProtocolSymbols'; import { BitcoinProtocolOptions } from './BitcoinProtocolOptions'; import { ICoinSubProtocol } from '../ICoinSubProtocol'; export interface Vin { txid: string; sequence: any; n: number; addresses: string[]; value: string; hex: string; } export interface Vout { value: string; n: number; hex: string; addresses: string[]; spent?: boolean; } export interface Transaction { txid: string; version: number; vin: Vin[]; vout: Vout[]; blockhash: string; blockHeight: number; confirmations: number; blockTime: number; value: string; valueIn: string; fees: string; hex: string; } export interface Token { type: string; name: string; path: string; transfers: number; decimals: number; balance: string; totalReceived: string; totalSent: string; } export interface XPubResponse { page: number; totalPages: number; itemsOnPage: number; address: string; balance: string; totalReceived: string; totalSent: string; unconfirmedBalance: string; unconfirmedTxs: number; txs: number; transactions?: Transaction[]; totalTokens?: number; tokens?: Token[]; } export interface AddressResponse { page: number; totalPages: number; itemsOnPage: number; address: string; balance: string; totalReceived: string; totalSent: string; unconfirmedBalance: string; unconfirmedTxs: number; txs: number; transactions?: Transaction[]; } export declare class BitcoinProtocol implements ICoinProtocol { readonly options: BitcoinProtocolOptions; symbol: string; name: string; marketSymbol: string; feeSymbol: string; subProtocols: never[]; feeDefaults: FeeDefaults; decimals: number; feeDecimals: number; identifier: ProtocolSymbols; units: CurrencyUnit[]; supportsHD: boolean; standardDerivationPath: string; addressIsCaseSensitive: boolean; addressValidationPattern: string; addressPlaceholder: string; constructor(options?: BitcoinProtocolOptions); getBlockExplorerLinkForAddress(address: string): Promise<string>; getBlockExplorerLinkForTxId(txId: string): Promise<string>; getPublicKeyFromMnemonic(mnemonic: string, derivationPath: string, password?: string): Promise<string>; getPrivateKeyFromMnemonic(mnemonic: string, derivationPath: string, password?: string): Promise<Buffer>; getExtendedPrivateKeyFromMnemonic(mnemonic: string, derivationPath: string, password?: string): Promise<string>; getPublicKeyFromHexSecret(secret: string, derivationPath: string): Promise<string>; getPrivateKeyFromHexSecret(secret: string, derivationPath: string): Promise<Buffer>; getExtendedPrivateKeyFromHexSecret(secret: string, derivationPath: string): Promise<string>; getAddressFromPublicKey(publicKey: string): Promise<string>; getAddressesFromPublicKey(publicKey: string): Promise<string[]>; getAddressFromExtendedPublicKey(extendedPublicKey: string, visibilityDerivationIndex: number, addressDerivationIndex: number): Promise<string>; getAddressesFromExtendedPublicKey(extendedPublicKey: string, visibilityDerivationIndex: number, addressCount: number, offset: number): Promise<string[]>; signWithPrivateKey(privateKey: Buffer, transaction: RawBitcoinTransaction): Promise<IAirGapSignedTransaction>; signWithExtendedPrivateKey(extendedPrivateKey: string, transaction: RawBitcoinTransaction): Promise<string>; getTransactionDetails(unsignedTx: UnsignedTransaction): Promise<IAirGapTransaction[]>; getTransactionDetailsFromSigned(signedTx: SignedBitcoinTransaction): Promise<IAirGapTransaction[]>; getBalanceOfAddresses(addresses: string[]): Promise<string>; getBalanceOfPublicKey(publicKey: string): Promise<string>; getBalanceOfExtendedPublicKey(extendedPublicKey: string, offset?: number): Promise<string>; getBalanceOfPublicKeyForSubProtocols(publicKey: string, subProtocols: ICoinSubProtocol[]): Promise<string[]>; getAvailableBalanceOfAddresses(addresses: string[]): Promise<string>; estimateMaxTransactionValueFromExtendedPublicKey(extendedPublicKey: string, recipients: string[], fee?: string): Promise<string>; estimateMaxTransactionValueFromPublicKey(publicKey: string, recipients: string[], fee?: string): Promise<string>; estimateFeeDefaultsFromExtendedPublicKey(publicKey: string, recipients: string[], values: string[], data?: any): Promise<FeeDefaults>; estimateFeeDefaultsFromPublicKey(publicKey: string, recipients: string[], values: string[], data?: any): Promise<FeeDefaults>; prepareTransactionFromExtendedPublicKey(extendedPublicKey: string, offset: number, recipients: string[], values: string[], fee: string): Promise<RawBitcoinTransaction>; prepareTransactionFromPublicKey(publicKey: string, recipients: string[], values: string[], fee: string): Promise<RawBitcoinTransaction>; broadcastTransaction(rawTransaction: string): Promise<string>; getTransactionsFromExtendedPublicKey(extendedPublicKey: string, limit: number, cursor?: BitcoinBlockbookTransactionCursor, addressOffset?: number): Promise<BitcoinBlockbookTransactionResult>; getTransactionsFromPublicKey(publicKey: string, limit: number, cursor?: BitcoinBlockbookTransactionCursor): Promise<BitcoinBlockbookTransactionResult>; getTransactionsFromAddresses(addresses: string[], limit: number, cursor?: BitcoinBlockbookTransactionCursor): Promise<BitcoinBlockbookTransactionResult>; private containsSome; signMessage(message: string, keypair: { privateKey: Buffer; }): Promise<string>; verifyMessage(message: string, signature: string, publicKey: string): Promise<boolean>; getTransactionStatuses(transactionHashes: string[]): Promise<AirGapTransactionStatus[]>; }