From edd54c16f5ad443241fb44ffaf44c85dd30492e5 Mon Sep 17 00:00:00 2001 From: Neal Conner Date: Thu, 22 Mar 2018 17:12:53 +0000 Subject: [PATCH] Support CashAddr format (#109) * Don't convert BCH address * Update for CashAddr * Rename to Bitcoin Cash * fix typo --- lib/admin/config.js | 2 +- lib/coin-utils.js | 4 +-- .../wallet/bitcoincashd/bitcoincashd.js | 25 ++----------------- lib/plugins/wallet/bitcoind/bitcoind.js | 2 +- 4 files changed, 6 insertions(+), 27 deletions(-) diff --git a/lib/admin/config.js b/lib/admin/config.js index 0e6ace73..dd4347cd 100644 --- a/lib/admin/config.js +++ b/lib/admin/config.js @@ -169,7 +169,7 @@ function fetchData () { {crypto: 'LTC', display: 'Litecoin'}, {crypto: 'DASH', display: 'Dash'}, {crypto: 'ZEC', display: 'Zcash'}, - {crypto: 'BCH', display: 'BCH'} + {crypto: 'BCH', display: 'Bitcoin Cash'} ], languages: languages, countries, diff --git a/lib/coin-utils.js b/lib/coin-utils.js index d5de3f84..47b2c36c 100644 --- a/lib/coin-utils.js +++ b/lib/coin-utils.js @@ -52,7 +52,7 @@ const CRYPTO_CURRENCIES = [ }, { cryptoCode: 'BCH', - display: 'BCH', + display: 'Bitcoin Cash', code: 'bitcoincash', configFile: 'bitcoincash.conf', daemon: 'bitcoincashd', @@ -80,7 +80,7 @@ function buildUrl (cryptoCode, address) { case 'ZEC': return `zcash:${address}` case 'LTC': return `litecoin:${address}` case 'DASH': return `dash:${address}` - case 'BCH': return `bitcoincash:${address}` + case 'BCH': return `${address}` default: throw new Error(`Unsupported crypto: ${cryptoCode}`) } } diff --git a/lib/plugins/wallet/bitcoincashd/bitcoincashd.js b/lib/plugins/wallet/bitcoincashd/bitcoincashd.js index df806d48..949d4a67 100644 --- a/lib/plugins/wallet/bitcoincashd/bitcoincashd.js +++ b/lib/plugins/wallet/bitcoincashd/bitcoincashd.js @@ -1,6 +1,5 @@ const jsonRpc = require('../../common/json-rpc') -const bs58check = require('bs58check') const BN = require('../../../bn') const E = require('../../../error') const coinUtils = require('../../../coin-utils') @@ -37,29 +36,11 @@ function balance (account, cryptoCode) { return accountBalance(account, cryptoCode, 1) } -function bchToBtcVersion (version) { - if (version === 0x1c) return 0x00 - if (version === 0x28) return 0x05 - - return version -} - -// Bitcoin-ABC only accepts BTC style addresses at this point, -// so we need to convert -function bchToBtcAddress (address) { - const buf = bs58check.decode(address) - const version = buf[0] - buf[0] = bchToBtcVersion(version) - return bs58check.encode(buf) -} - function sendCoins (account, address, cryptoAtoms, cryptoCode) { const coins = cryptoAtoms.shift(-unitScale).toFixed(8) - const btcAddress = bchToBtcAddress(address) - return checkCryptoCode(cryptoCode) - .then(() => fetch('sendtoaddress', [btcAddress, coins])) + .then(() => fetch('sendtoaddress', [address, coins])) .catch(err => { if (err.code === -6) throw new E.InsufficientFundsError() throw err @@ -72,9 +53,7 @@ function newAddress (account, info) { } function addressBalance (address, confs) { - const btcAddress = bchToBtcAddress(address) - - return fetch('getreceivedbyaddress', [btcAddress, confs]) + return fetch('getreceivedbyaddress', [address, confs]) .then(r => BN(r).shift(unitScale).round()) } diff --git a/lib/plugins/wallet/bitcoind/bitcoind.js b/lib/plugins/wallet/bitcoind/bitcoind.js index e4c3d95d..ced3f636 100644 --- a/lib/plugins/wallet/bitcoind/bitcoind.js +++ b/lib/plugins/wallet/bitcoind/bitcoind.js @@ -24,7 +24,7 @@ function checkCryptoCode (cryptoCode) { return Promise.resolve() } -function accountBalance (acount, cryptoCode, confirmations) { +function accountBalance (account, cryptoCode, confirmations) { return checkCryptoCode(cryptoCode) .then(() => fetch('getbalance', ['', confirmations])) .then(r => BN(r).shift(unitScale).round())