xecaddrjs

0.0.1 • Public • Published

XecAddr.js: eCash (XEC) general purpose address translation for Node.js and web browsers.

JavaScript Style Guide

NPM

JavaScript Style Guide

Plug & Play JavaScript library for all eCash (XEC) address format translation needs. Easy-to-use, thoroughly tested, and feature complete.

Support for the eCash (XEC) address format, based on the original cashaddress format, which improves upon BIP 173, as well as the Bitpay and Legacy formats.

Installation

Using NPM or Yarn

$ npm install xecaddrjs
$ yarn add xecaddrjs

Manually

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

Usage

In Node.js

// Common-JS
const xecaddr = require('xecaddrjs');

// ES6 modules
import xecaddr from 'xecaddrjs';

Browser

Script Tag

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

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

Code Examples

Supported formats, networks and address types.

var Format = xecaddr.Format; // Legacy, Bitpay, Xecaddr (XEC), or Cashaddr (BCH).
var Network = xecaddr.Network; // Mainnet or Testnet.
var Type = xecaddr.Type; // P2PKH or P2SH.

Test if a string is a valid eCash (XEC) address of any type, in any format.

var isValidAddress = xecaddr.isValidAddress;

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

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

Test for address format.

var isLegacyAddress = xecaddr.isLegacyAddress;
var isBitpayAddress = xecaddr.isBitpayAddress;
var isXecAddress = xecaddr.isXecAddress;
var isCashAddress = xecaddr.isCashAddress;

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

Test for address network.

var isMainnetAddress = xecaddr.isMainnetAddress;
var isTestnetAddress = xecaddr.isTestnetAddress;

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

Test for address type.

var isP2PKHAddress = xecaddr.isP2PKHAddress;
var isP2SHAddress = xecaddr.isP2SHAddress;

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

Detect address format.

var detectAddressFormat = xecaddr.detectAddressFormat;

detectAddressFormat('ecash:qph5kuz78czq00e3t85ugpgd7xmer5kr7cdywekmgp') // Format.Xecaddr
detectAddressFormat('qqdcsl6c879esyxyacmz7g6vtzwjjwtznsggspc457') // Format.Cashaddr
detectAddressFormat('CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj') // Format.Bitpay

Detect address network.

var detectAddressNetwork = xecaddr.detectAddressNetwork;

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

Detect address type.

var detectAddressType = xecaddr.detectAddressType;

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

Translate address from any address format into a specific format.

var toXecAddress = xecaddr.toXecAddress;
var toLegacyAddress = xecaddr.toLegacyAddress;
var toBitpayAddress = xecaddr.toBitpayAddress;
var toCashAddress = xecaddr.toCashAddress;

toLegacyAddress('ecash:qph5kuz78czq00e3t85ugpgd7xmer5kr7cdywekmgp') // 1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR
toBitpayAddress('1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR') // CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj
toXecAddress('1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR') // ecash:qph5kuz78czq00e3t85ugpgd7xmer5kr7cdywekmgp

Documentation

Generate and Browse Locally

$ yarn run docs

Package Sidebar

Install

npm i xecaddrjs

Weekly Downloads

19

Version

0.0.1

License

MIT

Unpacked Size

1.59 MB

Total Files

42

Last publish

Collaborators

  • bytesofman