Browse Source

Working on #188

Switching to BlueWallet-based ElectrumX connector which is a maintained fork of old ElectrumX connection code. Seems that some extra effort has been put into reconnecting and this also drops some manual error handling that my old code incorporated.
master
Dan Janosik 4 years ago
parent
commit
abd03a7448
No known key found for this signature in database GPG Key ID: C6F8CE9FFDB2CED2
  1. 13
      app/api/electrumAddressApi.js
  2. 11
      npm-shrinkwrap.json
  3. 2
      package.json
  4. 9
      views/address.pug

13
app/api/electrumAddressApi.js

@ -9,7 +9,10 @@ var hexEnc = require("crypto-js/enc-hex");
var coinConfig = coins[config.coin];
const ElectrumClient = require('electrum-client');
global.net = require('net');
global.tls = require('tls');
const ElectrumClient = require('rn-electrum-client');
var electrumClients = [];
@ -41,7 +44,7 @@ function connectToServer(host, port, protocol) {
var defaultProtocol = port === 50001 ? 'tcp' : 'tls';
var electrumClient = new ElectrumClient(port, host, protocol || defaultProtocol);
electrumClient.initElectrum({client:"btc-rpc-explorer-v1.1", version:"1.4"}).then(function(res) {
electrumClient.initElectrum({client:"btc-rpc-explorer-v2", version:"1.4"}).then(function(res) {
debugLog("Connected to ElectrumX Server: " + host + ":" + port + ", versions: " + JSON.stringify(res));
electrumClients.push(electrumClient);
@ -60,12 +63,8 @@ function connectToServer(host, port, protocol) {
function runOnServer(electrumClient, f) {
return new Promise(function(resolve, reject) {
f(electrumClient).then(function(result) {
if (result.success) {
resolve({result:result.response, server:electrumClient.host});
resolve({result:result, server:electrumClient.host});
} else {
reject({error:result.error, server:electrumClient.host});
}
}).catch(function(err) {
utils.logError("dif0e21qdh", err, {host:electrumClient.host, port:electrumClient.port});

11
npm-shrinkwrap.json

@ -878,10 +878,6 @@
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"electrum-client": {
"version": "github:chaintools/node-electrum-client#43a999036f9c5457030d4d2dc5ec56fa8d94aa99",
"from": "github:chaintools/node-electrum-client#43a999036f9c5"
},
"elliptic": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
@ -2520,6 +2516,13 @@
"inherits": "^2.0.1"
}
},
"rn-electrum-client": {
"version": "github:janoside/rn-electrum-client#cc018effafd2256272f348953500c4d27cef0d2f",
"from": "github:janoside/rn-electrum-client",
"requires": {
"debug": "~4.1.1"
}
},
"rndm": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz",

2
package.json

@ -32,7 +32,6 @@
"debug": "~4.1.1",
"decimal.js": "^10.2.0",
"dotenv": "^8.2.0",
"electrum-client": "github:chaintools/node-electrum-client#43a999036f9c5",
"express": "^4.17.1",
"express-session": "^1.17.1",
"jstransformer-markdown-it": "^2.1.0",
@ -47,6 +46,7 @@
"qrcode": "^1.4.4",
"redis": "^2.8.0",
"request": "^2.88.2",
"rn-electrum-client": "github:janoside/rn-electrum-client",
"semver": "^7.3.2",
"serve-favicon": "^2.5.0",
"simple-git": "^1.132.0"

9
views/address.pug

@ -294,8 +294,8 @@ block content
else if (addressDetailsErrors && addressDetailsErrors.length > 0)
each err in addressDetailsErrors
if (err.e && err.e.error && err.e.error.message == "history too large")
span Failed to retrieve transaction history from ElectrumX. See
if (err.e && err.e && err.e.message == "history too large")
span Failed to retrieve transaction history from ElectrumX because this address is involved in too many transactions (more than ElectrumX currently supports retrieving). See
a(href="https://github.com/janoside/btc-rpc-explorer/issues/67") Issue #67
span for more information.
@ -304,6 +304,11 @@ block content
a(href="https://github.com/janoside/btc-rpc-explorer/blob/master/.env-sample") the example configuration file
span for help setting up an address API if desired.
else
span.text-danger Error retrieving transaction history
pre
code.json #{JSON.stringify(err, null, 4)}
else if (transactions.length == 0)
span No transactions found

Loading…
Cancel
Save