Custom Bitcoin client extended to support keystore functionality

Hierarchy

  • Client
    • Client

Constructors

  • Constructor Initializes the client with network type and other parameters.

    Parameters

    • params: UtxoClientParams = defaultBTCParams

    Returns Client

Properties

chain: string
dataProviders: UtxoOnlineDataProviders[]
explorerProviders: ExplorerProviders
feeBounds: FeeBounds
network: Network
phrase: string
rootDerivationPaths: undefined | RootDerivationPaths

Methods

  • Broadcast a transaction.

    Parameters

    • txHex: string

      The transaction hex string.

    Returns Promise<string>

    The transaction hash.

  • Build a Bitcoin transaction.*

    Parameters

    • param0: TxParams & {
          feeRate: number;
          sender: string;
          spendPendingUTXO?: boolean;
          withTxHex?: boolean;
      }

    Returns Promise<{
        inputs: UTXO[];
        psbt: Psbt;
        utxos: UTXO[];
    }>

    Deprecated

  • Compile memo into a buffer.

    Parameters

    • memo: string

      Memo to compile.

    Returns Buffer

    Compiled memo.

  • Parameters

    • index: number = 0

      The index of the address.

    Returns string

    The Bitcoin address.

    Deprecated

    This function eventually will be removed. Use getAddressAsync instead. Get the address associated with the given index.

    Throws

    Thrown if the index is less than zero.

    Throws

    Thrown if the phrase has not been set before.

    Throws

    Thrown if failed to create the address from the phrase.

  • Get the current address asynchronously.

    Parameters

    • index: number = 0

      The index of the address.

    Returns Promise<string>

    A promise that resolves to the Bitcoin address.

    Throws

    Thrown if the phrase has not been set before.

  • Get BTC asset info.

    Returns AssetInfo

    BTC asset information.

  • Gets balance of a given address.

    Parameters

    • address: string

      The address to get balances from

    • Optional _assets: Asset[]
    • Optional confirmedOnly: boolean

    Returns Promise<Balance[]>

    BTC balances

  • Private

    Get the Bitcoin keys derived from the given phrase.

    Parameters

    • phrase: string

      The phrase to be used for generating the keys.

    • index: number = 0

      The index of the address.

    Returns ECPairInterface

    The Bitcoin key pair.

    Throws

    Thrown if failed to create BTC keys from the given phrase.

  • Get the explorer URL for a given address based on the network.

    Parameters

    • address: string

      The address to query.

    Returns string

    The explorer URL for the address.

  • Get the explorer URL for a given transaction ID based on the network.

    Parameters

    • txID: string

      The transaction ID.

    Returns string

    The explorer URL for the transaction.

  • Get the explorer URL based on the network.

    Returns string

    The explorer URL.

  • Get transaction fee from UTXOs.

    Parameters

    • inputs: UTXO[]

      UTXOs to calculate fee from.

    • feeRate: number

      Fee rate.

    • data: null | Buffer = null

      Compiled memo (Optional).

    Returns number

    Transaction fee.

  • Get the fee rate from the Thorchain API.

    Returns Promise<number>

    The fee rate

  • Get fee rates

    Parameters

    • Optional protocol: THORCHAIN

      Protocol to interact with. If there's no protocol provided, fee rates are retrieved from chain data providers

    Returns Promise<FeeRates>

    The fee rates (average, fast, fastest) in Satoshis/byte

  • Get estimated fees.

    Parameters

    • Optional options: FeeEstimateOptions

      Options for fee estimation.

    Returns Promise<Fees>

    Estimated fees.

  • Get estimated fees with fee rates.

    Parameters

    • Optional options: FeeEstimateOptions

      Options for fee estimation.

    Returns Promise<FeesWithRates>

    Estimated fees along with fee rates.

  • Get the full derivation path based on the wallet index.

    Parameters

    • walletIndex: number

      The HD wallet index

    Returns string

    The full derivation path

  • Get the current network.

    Returns Network

    The current network

  • Get the transaction details of a given transaction ID.

    Parameters

    • txId: string

      The transaction ID.

    Returns Promise<Tx>

    The transaction details.

  • Get the transaction history of a given address with pagination options.

    Parameters

    • Optional params: TxHistoryParams

      The options to get transaction history.

    Returns Promise<TxsPage>

    The transaction history.

  • Prepare transfer.

    Parameters

    • params: TxParams & {
          feeRate: number;
          sender: string;
          spendPendingUTXO?: boolean;
      }

      The transfer options.

    Returns Promise<PreparedTx>

    The raw unsigned transaction.

  • Purge the client by clearing the mnemonic phrase.

    Returns void

  • Broadcasts a transaction hex using a round-robin approach across multiple data providers.

    Parameters

    • txHex: string

      The transaction hex to broadcast.

    Returns Promise<string>

    The hash of the broadcasted transaction.

    Throws

    Throws an error if no provider is able to broadcast the transaction.

  • Round-robin method to get balance from data providers. Throws error if no provider can get balance.

    Parameters

    • address: string

      The address to get balance for.

    Returns Promise<Balance[]>

    The balances.

    Throws

    Error If no provider is able to get balance.

  • Retrieves fee rates using a round-robin approach across multiple data providers.

    Returns Promise<FeeRates>

    The fee rates (average, fast, fastest) in Satoshis/byte.

    Throws

    Throws an error if no provider is able to retrieve fee rates.

  • Round-robin method to get transaction data from data providers. Throws error if no provider can get transaction data.

    Parameters

    • txid: string

      The transaction ID to get data for.

    Returns Promise<Tx>

    The transaction data.

    Throws

    Error If no provider is able to get transaction data.

  • Round-robin method to get transactions from data providers. Throws error if no provider can get transactions.

    Parameters

    • params: TxHistoryParams

      The parameters for fetching transactions.

    Returns Promise<TxsPage>

    The transaction history.

    Throws

    Error If no provider is able to get transactions.

  • Round-robin method to get unspent transactions from data providers. Throws error if no provider can get unspent transactions.

    Parameters

    • address: string

      The address to get unspent transactions for.

    • confirmed: boolean

      Flag to indicate whether to get confirmed transactions only.

    Returns Promise<UTXO[]>

    The unspent transactions.

    Throws

    Error If no provider is able to get unspent transactions.

  • Scan UTXOs for a given address.

    Parameters

    • address: string

      The address to scan.

    • Optional confirmedOnly: boolean

      Flag to scan only confirmed UTXOs.

    Returns Promise<UTXO[]>

    The UTXOs found.

  • Set or update the current network.

    Parameters

    • network: Network

      The network to set

    Returns void

    Throws

    Thrown if no network is provided

  • Set or update the mnemonic phrase.

    Parameters

    • phrase: string

      The new mnemonic phrase

    • Optional walletIndex: number

      (Optional) The HD wallet index

    Returns string

    The address derived from the provided phrase

    Throws

    Thrown if an invalid mnemonic phrase is provided

  • Make a GET request to the Thorchain API.

    Parameters

    • endpoint: string

      The API endpoint

    Returns Promise<unknown>

    The response data

  • Transfer BTC.

    Parameters

    • params: TxParams & {
          feeRate?: number;
      }

      The transfer options including the fee rate.

    Returns Promise<string>

    A promise that resolves to the transaction hash or an error message.

    Throws

    Thrown if the memo is longer than 80 characters.

  • Validate the given Bitcoin address.

    Parameters

    • address: string

      Bitcoin address to validate.

    Returns boolean

    true if the address is valid, false otherwise.

Generated using TypeDoc