0.5.2 • Published 3 years ago

bchaddrjs v0.5.2

Weekly downloads
17,037
License
MIT
Repository
github
Last release
3 years ago

BchAddr.js: Bitcoin Cash general purpose address translation for Node.js and web browsers.

Build Status Coverage Status JavaScript Style Guide

NPM

JavaScript Style Guide

Plug & Play JavaScript library for all Bitcoin Cash address format translation needs. Easy-to-use, thoroughly tested, and feature complete.

Support for the new Bitcoin Cash address format which improves upon BIP 173, as well as the Bitpay and Legacy formats.

Test out a demo address translator powered by BchAddr.js here.

Installation

Using NPM or Yarn

$ npm install bchaddrjs
$ yarn add bchaddrjs

Manually

You may also download the distribution file manually and place it within your third-party scripts directory: dist/bchaddrjs-0.5.2.min.js.

Usage

In Node.js

// Common-JS
var bchaddr = require('bchaddrjs');

// ES6 modules
import bchaddr from 'bchaddrjs';

Browser

Script Tag

You may include a script tag in your HTML and the bchaddr module will be defined globally on subsequent scripts.

<html>
  <head>
    ...
    <script src="https://unpkg.com/bchaddrjs@0.5.2/dist/bchaddrjs-0.5.2.min.js"></script>
  </head>
  ...
</html>

Code Examples

Supported formats, networks and address types.

var Format = bchaddr.Format; // Legacy, Bitpay or Cashaddr.
var Network = bchaddr.Network; // Mainnet or Testnet.
var Type = bchaddr.Type; // P2PKH or P2SH.

Test if a string is a valid Bitcoin Cash address of any type, in any format.

var isValidAddress = bchaddr.isValidAddress;

isValidAddress(null) // false
isValidAddress('') // false
isValidAddress('some invalid address') // false
isValidAddress('bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq') // false
isValidAddress('1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR') // true
isValidAddress('CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj') // true
isValidAddress('qph5kuz78czq00e3t85ugpgd7xmer5kr7c5f6jdpwk') // true
isValidAddress('bitcoincash:qph5kuz78czq00e3t85ugpgd7xmer5kr7c5f6jdpwk') // true

Note: You can use this function to check if any input is a valid Bitcoin Cash address.Other functions in this library will throw an InvalidAddressError on invalid inputs.

Test for address format.

var isLegacyAddress = bchaddr.isLegacyAddress;
var isBitpayAddress = bchaddr.isBitpayAddress;
var isCashAddress = bchaddr.isCashAddress;

isLegacyAddress('1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR') // true
isLegacyAddress('qph5kuz78czq00e3t85ugpgd7xmer5kr7c5f6jdpwk') // false
isBitpayAddress('CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj') // true
isBitpayAddress('1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR') // false
isCashAddress('qph5kuz78czq00e3t85ugpgd7xmer5kr7c5f6jdpwk') // true
isCashAddress('CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj') // false

Test for address network.

var isMainnetAddress = bchaddr.isMainnetAddress;
var isTestnetAddress = bchaddr.isTestnetAddress;

isMainnetAddress('1P238gziZdeS5Wj9nqLhQHSBK2Lz6zPSke') // true
isMainnetAddress('mnbGP2FeRsbgdQCzDT35zPWDcYSKm4wrcg') // false
isTestnetAddress('qqdcsl6c879esyxyacmz7g6vtzwjjwtznsggspc457') // true
isTestnetAddress('CeUvhjLnSgcxyedaUafcyo4Cw9ZPwGq9JJ') // false

Test for address type.

var isP2PKHAddress = bchaddr.isP2PKHAddress;
var isP2SHAddress = bchaddr.isP2SHAddress;

isP2PKHAddress('1Mdob5JY1yuwoj6y76Vf3AQpoqUH5Aft8z') // true
isP2PKHAddress('2NFGG7yRBizUANU48b4dASrnNftqsNwzSM1') // false
isP2SHAddress('H92i9XpREZiBscxGu6Vx3M8jNGBKqscBBB') // true
isP2SHAddress('CeUvhjLnSgcxyedaUafcyo4Cw9ZPwGq9JJ') // false

Detect address format.

var detectAddressFormat = bchaddr.detectAddressFormat;

detectAddressFormat('qqdcsl6c879esyxyacmz7g6vtzwjjwtznsggspc457') // Format.Cashaddr
detectAddressFormat('CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj') // Format.Bitpay

Detect address network.

var detectAddressNetwork = bchaddr.detectAddressNetwork;

detectAddressNetwork('1P238gziZdeS5Wj9nqLhQHSBK2Lz6zPSke') // Network.Mainnet
detectAddressNetwork('qqdcsl6c879esyxyacmz7g6vtzwjjwtznsggspc457') // Network.Testnet

Detect address type.

var detectAddressType = bchaddr.detectAddressType;

detectAddressType('1P238gziZdeS5Wj9nqLhQHSBK2Lz6zPSke') // Type.P2PKH
detectAddressType('3NKpWcnyZtEKttoQECAFTnmkxMkzgbT4WX') // Type.P2SH

Translate address from any address format into a specific format.

var toLegacyAddress = bchaddr.toLegacyAddress;
var toBitpayAddress = bchaddr.toBitpayAddress;
var toCashAddress = bchaddr.toCashAddress;

toLegacyAddress('qph5kuz78czq00e3t85ugpgd7xmer5kr7c5f6jdpwk') // 1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR
toBitpayAddress('1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR') // CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj
toCashAddress('1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR') // bitcoincash:qph5kuz78czq00e3t85ugpgd7xmer5kr7c5f6jdpwk

Documentation

Generate and Browse Locally

$ npm run docs

Online

Browse automatically generated jsdocs online.

@thorswap-lib/hdwallet-ledger@thorswap-lib/multichain-core@thorswap-lib/multichain-ledger@thorswap-lib/xpub-scan@ledgerhq/live-commonmoonpay-apibitguild-blockchain-sdk@coinspace/cs-walletblinkhash-stratum-pool@bitexchange-ltd/bitexchange-server-7.5.0-beta.3nextminer-stratumbchidentityf-send-crypto@everything-registry/sub-chunk-1221mycryptolib@pulsechain/generate-addressillumrecusandaelumi-web-coremycrypto-trezor.js@thorswap-lib/toolbox-utxo@thorwallet/xchain-bitcoincash@thorswap-lib/hdwallet-native@trezor/utxo-lib@signupcash/utils@sequelfinance/toolbox-utxo@shapeshiftoss/hdwallet-ledger@shapeshiftoss/hdwallet-native@renproject/chains-bitcoin@sudophunk/hdwallet-ledger@sudophunk/hdwallet-native@tatumio/bch@tatumio/sdk@zeeflex/walletabc-utils@amontech/amon-libbch-wallet-bridgebch-wallet-bridge.jsbchjsbbqpool-stratumbb2insight@2dan/blockchainbitxchange-serverbitcoincash-bip84bitcoin-cash-payments@cobo/btcblinkhash-stratum@bitcoinunlimited/bchidentity@bitexchange-ltd/bitxchange-server@bitexchange-ltd/lamassu-server-beta@bitaccess/coinlib-bitcoin-cash@bithighlander/hdwallet-ledger@bithighlander/hdwallet-nativebtc4you@buttonwallet/blockchain-ts-wallet-core@buzhou/hdaddressgenerator@cafeca/tidewalletjsemblem-vault-sdkemirex_wallet_crypto_validatorhd-wallethdaddressgeneratorfoundation-v2-vertcoinfoundation-v2-zcashfoundation-v2-firocoinfoundation-v2-garlicoinfoundation-v2-litecoinfoundation-v2-peercoinfoundation-v2-raptoreumfoundation-v2-ravencoinfoundation-v2-templatefoundation-stratumfoundation-v2-dashfoundation-v2-dogecoinfoundation-v2-evrmorefoundation-v2-bitcoinpaper-walletsend-cryptoxpub-scanxpub-scanner@infinitebrahmanuniverse/nolb-bcvote-contractverifierstxbuilderjswallet-coinwallet-btc@mcchadwick/hdwallet-native@keepkey/hdwallet-ledger@keepkey/hdwallet-nativeweb-hd-sdktrezor.jswormhole-libsuper-crypto-validatortest-krboktvscpx-walletrerumcupiditate@ledgerhq/coin-bitcoin@neon-exchange/nash-protocol@onechain/bch@pgchain/blockchain-libs@onekeyhq/connect@pioneer-platform/toolbox-utxo
0.5.2

3 years ago

0.5.1

3 years ago

0.4.9

4 years ago

0.4.8

4 years ago

0.4.7

4 years ago

0.4.6

4 years ago

0.4.5

4 years ago

0.4.4

5 years ago

0.4.3

5 years ago

0.4.2

5 years ago

0.4.1

5 years ago

0.4.0

5 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.3

5 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago