ecashaddrjs v2.0.0
eCashAddr.js: The eCash address format for Node.js and web browsers.
TypeScript implementation for CashAddr address format for eCash (XEC). Also supports Bitcoin Cash (BCH).
Compliant with the original CashAddr specification which improves upon BIP 173.
Installation
Using NPM
$ npm install --save ecashaddrjsUsage
See tests for detailed usage. Note that conversion to and from BTC address format is not supported in this library, but is available in ecash-lib.
Examples below.
In Node.js
const {
encodeCashAddress,
decodeCashAddress,
isValidCashAddress,
getOutputScriptFromAddress,
} = require('ecashaddrjs');
const bitcoincashAddress =
'bitcoincash:qpadrekpz6gjd8w0zfedmtqyld0r2j4qmuj6vnmhp6';
const { prefix, type, hash } = decodeCashAddress(bitcoincashAddress);
console.log(prefix); // 'bitcoincash'
console.log(type); // 'p2pkh'
console.log(hash); // '7ad1e6c11691269dcf1272ddac04fb5e354aa0df'
console.log(encodeCashAddress('ecash', type, hash));
// 'ecash:qpadrekpz6gjd8w0zfedmtqyld0r2j4qmuthccqd8d'
console.log(isValidCashAddress(bitcoincashAddress)); // true
console.log(isValidCashAddress(bitcoincashAddress), 'bitcoincash'); // true
console.log(isValidCashAddress(bitcoincashAddress), 'ecash'); // false
// getOutputScriptFromAddress
console.log(
getOutputScriptFromAddress(
'ecash:qplkmuz3rx480u6vc4xgc0qxnza42p0e7vll6p90wr',
),
); // 76a9144e532257c01b310b3b5c1fd947c79a72addf852388acReact
import { encodeCashAddress, decodeCashAddress } from 'ecashaddrjs';
// Note that this specific prefix conversion use case is simplified by the Address
// class availabe in ecash-lib
function convertBitcoincashToEcash(bitcoincashAddress) {
const { prefix, type, hash } = decodeCashAddress(bitcoincashAddress);
const ecashAddress = encodeCashAddress('ecash', type, hash);
return ecashAddress;
}Change Log
- 1.1.0 - Support decoding prefixless addresses\
- 1.1.1 - Updated README to point to Bitcoin ABC monorepo\
- 1.1.2 - Updated
repositoryfield inpackage.jsonto Bitcoin ABC monorepo\ - 1.1.3 - Support string input and output for
hash\ - 1.2.0 - Support lowercase input and output of address types, support encoding outputScript to address, support getting type and hash from an outputScript with new exported function
getTypeAndHashFromOutputScript\ - 1.3.0 - Add
toLegacyfunction to convert cashaddress format to legacy address\ - 1.4.0 - Add
isValidCashAddressfunction to validate cash addresses by prefix\ - 1.4.1-6 - Fix repo README link for npmjs page\
- 1.5.0 - Add
getOutputScriptFromAddressfunction to get outputScript from address - 1.5.1 - Patch
getTypeAndHashFromOutputScriptto return type in lowercase (how chronik accepts it) - 1.5.2 - Make input of address type case insensitive for
encode, e.g.p2pkhandP2PKHboth work - 1.5.3 - Upgraded dependencies
- 1.5.4 - Added unit tests
- 1.5.5 - Skipped due to error in D15400
- 1.5.6 - Add types declaration for easy import by typescript apps
- 1.5.7 - Fix
isValidCashAddressto allow bothundefinedor explicitfalsefor no prefixes, or a user passed string as prefix - 1.5.8 - Upgrading dependencies D16376
- 1.6.0 - Implement typescript D16744
- 1.6.1 - Replace
BufferwithUint8Arrayand stop usingwebpackto build D17170 - 1.6.2 - Lint to monorepo standards D17183
2.0.0 D17269
- Remove all dependencies
- Remove
toLegacy. This is now available inecash-lib - Remove
chronikReadyparam and always returnhashas a hex string - Remove support for uppercase address type inputs 'P2PKH' and 'P2SH'
- New function
getOutputScriptFromTypeAndHash - Remove validation against accepted prefix types
11 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
