From 3743a37042180393659b1bcb5dcef096349eed4a Mon Sep 17 00:00:00 2001 From: Till Kolter Date: Mon, 16 Aug 2021 16:21:11 +0200 Subject: [PATCH] fix: Bitcoin cash testnet validation for CashAddr --- src/bch_validator.js | 7 ++----- test/wallet_address_validator.js | 1 + 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/bch_validator.js b/src/bch_validator.js index f408efc6..7a050d5b 100644 --- a/src/bch_validator.js +++ b/src/bch_validator.js @@ -4,7 +4,7 @@ var BTCValidator = require('./bitcoin_validator'); function validateAddress(address, currency, opts) { var networkType = opts ? opts.networkType : '' - var prefix = 'bitcoincash'; + var prefix = networkType === 'testnet' ? 'bchtest' : 'bitcoincash'; var regexp = new RegExp(currency.regexp); var raw_address; @@ -12,7 +12,7 @@ function validateAddress(address, currency, opts) { if (res.length === 1) { raw_address = address } else { - if (res[0] !== 'bitcoincash') { + if (res[0] !== prefix) { return false; } raw_address = res[1]; @@ -27,9 +27,6 @@ function validateAddress(address, currency, opts) { } var decoded = cryptoUtils.base32.b32decode(raw_address); - if (networkType === 'testnet') { - prefix = 'bchtest'; - } try { if (bech32.verifyChecksum(prefix, decoded, bech32.encodings.BECH32)) { diff --git a/test/wallet_address_validator.js b/test/wallet_address_validator.js index ced55a43..e3aa4a55 100644 --- a/test/wallet_address_validator.js +++ b/test/wallet_address_validator.js @@ -84,6 +84,7 @@ describe('WAValidator.validate()', function () { valid('2MxKEf2su6FGAUfCEAHreGFQvEYrfYNHvL7', 'bitcoincash', 'testnet'); valid('bitcoincash:qq4v32mtagxac29my6gwj6fd4tmqg8rysu23dax807', 'bch'); + valid('bchtest:qrkj74zm8fx03z9lcn2h3z8s9y9fm4zujca7xakccw', 'bch', 'testnet'); });