@thorswap-lib/xchain-bitcoincash

Custom bitcoincash client and utilities used by XChainJS clients

Usage no npm install needed!

<script type="module">
  import thorswapLibXchainBitcoincash from 'https://cdn.skypack.dev/@thorswap-lib/xchain-bitcoincash';
</script>

README

@thorswap-lib/xchain-bitcoincash

Modules

Installation

yarn add @thorswap-lib/xchain-bitcoincash

Following peer dependencies have to be installed into your project. These are not included in @thorswap-lib/xchain-bitcoincash.

yarn add @thorswap-lib/xchain-client @thorswap-lib/xchain-crypto @thorswap-lib/xchain-util axios @psf/bitcoincashjs-lib bchaddrjs

Service Providers

This package uses the following service providers:

Function Service Notes
Balances Haskoin https://api.haskoin.com/#/Address/getBalance
Transaction history Haskoin https://api.haskoin.com/#/Address/getAddressTxsFull
Transaction details by hash Haskoin https://api.haskoin.com/#/Transaction/getTransaction
Transaction fees Bitgo https://app.bitgo.com/docs/#operation/v2.tx.getfeeestimate
Transaction broadcast Bitcoin Cash Node https://developer.bitcoin.org/reference/rpc/sendrawtransaction.html
Explorer Blockchain.com https://www.blockchain.com

Haskoin API rate limits: No

Bitgo API rate limits: https://app.bitgo.com/docs/#section/Rate-Limiting (10 requests/second)

Usage

Initialize client and use class methods:

import { Client, Network } from '../src/client'

// Create a new client interface
const bchClient = new Client({ network: Network.Mainnet })

// Set phrase
bchClient.setPhrase('phrase here')

// Get address
const address = bchClient.getAddress()

// Get balance
const balance = await bchClient.getBalance()

// Transfer with feeRate
const txid = await bchClient.transfer({ asset: AssetBCH, recipient: 'recipient address here', amount: baseAmount(100, BCH_DECIMAL), feeRate: 1 })

// Transfer with default feeRate (default is `fast`)
const txid = await bchClient.transfer({ asset: AssetBCH, recipient: 'recipient address here', amount: baseAmount(100, BCH_DECIMAL) })

// Get fee estimations
const { fast, fastest, average } = await bchClient.getFees()

// Get feeRate estimations
const { fast, fastest, average } = await bchClient.getFeeRates()

// Search transactions
const transactions = await bchClient.getTransactions({ address: 'address here', limit: 4 })

// Get a transaction with a given txId/hash
const txData = await bchClient.getTransactionData('b660ee07167cfa32681e2623f3a29dc64a089cabd9a3a07dd17f9028ac956eb8')