0.23.15 • Published 10 days ago

@xchainjs/xchain-bitcoin v0.23.15

Weekly downloads
107
License
MIT
Repository
github
Last release
10 days ago

@xchainjs/xchain-bitcoin

Modules

Installation

yarn add @xchainjs/xchain-bitcoin

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

yarn add @xchainjs/xchain-client @xchainjs/xchain-crypto @xchainjs/xchain-util axios bitcoinjs-lib wif

Documentation

xchain bitcoin

How xchain-bitcoin works\ How to use xchain-bitcoin

Service Providers

This package uses the following service providers:

FunctionServiceNotes
BalancesSochainhttps://sochain.com/api#get-balance
Transaction historySochainhttps://sochain.com/api#get-display-data-address, https://sochain.com/api#get-tx
Transaction details by hashSochainhttps://sochain.com/api#get-tx
Transaction feesBitgohttps://app.bitgo.com/docs/#operation/v2.tx.getfeeestimate
Transaction broadcastSochainhttps://sochain.com/api#send-transaction
ExplorerBlockstreamhttps://blockstream.info

Sochain API rate limits: https://sochain.com/api#rate-limits (300 requests/minute)

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

Setting Headers for Nine Realms endpoints

If you plan on using the publically accessible endpoints provided by Nine Realms(listed below), ensure that you add a valid 'x-client-id' to all requests

Example

import cosmosclient from '@cosmos-client/core'
import axios from 'axios'
import { register9Rheader } from '@xchainjs/xchain-util'

register9Rheader(axios)
register9Rheader(cosmosclient.config.globalAxios)

For a complete example please see this test

UtxoOnlineDataProviders

default providers

Creating a no-arg BTC Client will default to the following settings:

const defaultBTCParams: UtxoClientParams = {
  network: Network.Mainnet,
  phrase: '',
  explorerProviders: blockstreamExplorerProviders,
  dataProviders: [BlockcypherDataProviders],
  rootDerivationPaths: {
    [Network.Mainnet]: `84'/0'/0'/0/`,
    [Network.Testnet]: `84'/1'/0'/0/`,
    [Network.Stagenet]: `84'/0'/0'/0/`,
  },
  feeBounds: {
    lower: LOWER_FEE_BOUND,
    upper: UPPER_FEE_BOUND,
  },
}

Note: BlockCypher is the default online data provider (to fetch realtime utxos, balances, etc)

Overriding providers

You can specify own array of providers, whoch will be executed in array-order, to provide automated failover to the subsequent providers if calls to the first providers fail

example sochain v3, blockcypher backup

import { Client, defaultBTCParams, AssetBTC, SochainDataProviders, BlockcypherDataProviders } from '@xchainjs/xchain-bitcoin'
import { SochainNetwork,  SochainProvider } from '@xchainjs/xchain-utxo-providers'
import { Network, UtxoClientParams } from '@xchainjs/xchain-client'

// override with your API key
SochainDataProviders[Network.Mainnet].apiKey = 'YOUR_SOCHAIN_API_KEY'

// or set in env variables so default config can access.
`SOCHAIN_API_KEY={YOUR_SOCHAIN_API_KEY}`
`BLOCKCYPHER_API_KEY={YOUR_BLOCKCYPHER_API_KEY}`
//Default config can access.
process.env.BLOCKCYPHER_API_KEY
process.env.SOCHAIN_API_KEY

//overridde the default init params with your onfig
const initParams: UtxoClientParams = {
  ...defaultBTCParams,
  dataProviders: [SochainDataProviders, BlockcypherDataProviders]// use sochain first and blockcypher as fallback
  phrase: process.env.PHRASE,
}
const btcClient = new Client(sochainParams)
0.23.15

10 days ago

0.23.14

18 days ago

0.23.13

2 months ago

0.23.12

2 months ago

0.23.11

2 months ago

0.23.10

4 months ago

0.23.9

5 months ago

0.23.7

5 months ago

0.23.6

6 months ago

0.23.4

6 months ago

0.23.3

6 months ago

0.23.2

6 months ago

0.23.0

7 months ago

0.22.4

7 months ago

0.22.3

8 months ago

0.22.2

10 months ago

0.22.1

12 months ago

0.21.4

1 year ago

0.21.3

1 year ago

0.21.2

1 year ago

0.21.1

1 year ago

0.21.0

1 year ago

0.22.0

1 year ago

0.20.1

2 years ago

0.20.0

2 years ago

0.19.0

2 years ago

0.18.1

2 years ago

0.18.2

2 years ago

0.18.4

2 years ago

0.18.0

2 years ago

0.20.9

1 year ago

0.20.8

1 year ago

0.20.7

1 year ago

0.20.6

1 year ago

0.20.5

1 year ago

0.20.4

2 years ago

0.20.2

2 years ago

0.16.0

2 years ago

0.17.0

2 years ago

0.17.1

2 years ago

0.18.0-alpha.1

2 years ago

0.18.0-alpha.2

2 years ago

0.15.13

2 years ago

0.15.12

3 years ago

0.15.11

3 years ago

0.15.10

3 years ago

0.15.9

3 years ago

0.15.8

3 years ago

0.15.4

3 years ago

0.15.5

3 years ago

0.15.6

3 years ago

0.15.7

3 years ago

0.15.0

3 years ago

0.15.1

3 years ago

0.15.2

3 years ago

0.15.3

3 years ago

0.13.0

3 years ago

0.12.2

3 years ago

0.11.0

3 years ago

0.12.0

3 years ago

0.11.1

3 years ago

0.10.1

3 years ago

0.10.0

3 years ago

0.9.0

3 years ago

0.8.2

3 years ago

0.8.1

3 years ago

0.8.0

3 years ago

0.7.1

3 years ago

0.7.0

3 years ago

0.6.0

3 years ago

0.5.1

3 years ago

0.5.0

3 years ago

0.4.4

3 years ago

0.4.3

3 years ago

0.4.1

3 years ago

0.4.2

3 years ago

0.4.0

3 years ago

0.3.3

4 years ago