wallet: refactor client.
This commit is contained in:
parent
6939ba2cd3
commit
8e49d87e53
@ -73,16 +73,16 @@ WalletClient.prototype._open = co(function* _open() {
|
||||
});
|
||||
|
||||
this.socket.on('block connect', function(entry, txs) {
|
||||
var data;
|
||||
var block;
|
||||
|
||||
try {
|
||||
data = parseBlock(entry, txs);
|
||||
block = parseBlock(entry, txs);
|
||||
} catch (e) {
|
||||
self.emit('error', e);
|
||||
return;
|
||||
}
|
||||
|
||||
self.emit('block connect', data.entry, data.txs);
|
||||
self.emit('block connect', block.entry, block.txs);
|
||||
});
|
||||
|
||||
this.socket.on('block disconnect', function(entry) {
|
||||
@ -99,16 +99,16 @@ WalletClient.prototype._open = co(function* _open() {
|
||||
});
|
||||
|
||||
this.socket.on('block rescan', function(entry, txs, cb) {
|
||||
var data;
|
||||
var block;
|
||||
|
||||
try {
|
||||
data = parseBlock(entry, txs);
|
||||
block = parseBlock(entry, txs);
|
||||
} catch (e) {
|
||||
self.emit('error', e);
|
||||
return cb();
|
||||
}
|
||||
|
||||
self.emit('block rescan', data.entry, data.txs, cb);
|
||||
self.emit('block rescan', block.entry, block.txs, cb);
|
||||
});
|
||||
|
||||
this.socket.on('chain reset', function(tip) {
|
||||
@ -125,7 +125,12 @@ WalletClient.prototype._open = co(function* _open() {
|
||||
});
|
||||
|
||||
this.socket.on('tx', function(tx) {
|
||||
tx = parseTX(tx);
|
||||
try {
|
||||
tx = parseTX(tx);
|
||||
} catch (e) {
|
||||
self.emit('error', e);
|
||||
return;
|
||||
}
|
||||
self.emit('tx', tx);
|
||||
});
|
||||
|
||||
@ -173,11 +178,7 @@ WalletClient.prototype.onConnect = function onConnect() {
|
||||
WalletClient.prototype.sendAuth = function sendAuth() {
|
||||
var self = this;
|
||||
return new Promise(function(resolve, reject) {
|
||||
self.socket.emit('auth', self.apiKey, function(err) {
|
||||
if (err)
|
||||
return reject(new Error(err.error));
|
||||
resolve();
|
||||
});
|
||||
self.socket.emit('auth', self.apiKey, wrap(resolve, reject));
|
||||
});
|
||||
};
|
||||
|
||||
@ -190,11 +191,7 @@ WalletClient.prototype.sendAuth = function sendAuth() {
|
||||
WalletClient.prototype.sendOptions = function sendOptions(options) {
|
||||
var self = this;
|
||||
return new Promise(function(resolve, reject) {
|
||||
self.socket.emit('options', options, function(err) {
|
||||
if (err)
|
||||
return reject(new Error(err.error));
|
||||
resolve();
|
||||
});
|
||||
self.socket.emit('options', options, wrap(resolve, reject));
|
||||
});
|
||||
};
|
||||
|
||||
@ -207,11 +204,7 @@ WalletClient.prototype.sendOptions = function sendOptions(options) {
|
||||
WalletClient.prototype.watchChain = function watchChain() {
|
||||
var self = this;
|
||||
return new Promise(function(resolve, reject) {
|
||||
self.socket.emit('watch chain', function(err) {
|
||||
if (err)
|
||||
return reject(new Error(err.error));
|
||||
resolve();
|
||||
});
|
||||
self.socket.emit('watch chain', wrap(resolve, reject));
|
||||
});
|
||||
};
|
||||
|
||||
@ -223,11 +216,7 @@ WalletClient.prototype.watchChain = function watchChain() {
|
||||
WalletClient.prototype.getTip = function getTip() {
|
||||
var self = this;
|
||||
return new Promise(function(resolve, reject) {
|
||||
self.socket.emit('get tip', function(err, tip) {
|
||||
if (err)
|
||||
return reject(new Error(err.error));
|
||||
resolve(parseEntry(tip));
|
||||
});
|
||||
self.socket.emit('get tip', wrap(resolve, reject, parseEntry));
|
||||
});
|
||||
};
|
||||
|
||||
@ -243,15 +232,7 @@ WalletClient.prototype.getEntry = function getEntry(block) {
|
||||
if (typeof block === 'string')
|
||||
block = util.revHex(block);
|
||||
|
||||
self.socket.emit('get entry', block, function(err, entry) {
|
||||
if (err)
|
||||
return reject(new Error(err.error));
|
||||
|
||||
if (!entry)
|
||||
return resolve(null);
|
||||
|
||||
resolve(parseEntry(entry));
|
||||
});
|
||||
self.socket.emit('get entry', block, wrap(resolve, reject, parseEntry));
|
||||
});
|
||||
};
|
||||
|
||||
@ -265,11 +246,7 @@ WalletClient.prototype.send = function send(tx) {
|
||||
var self = this;
|
||||
return new Promise(function(resolve, reject) {
|
||||
var raw = tx.toRaw();
|
||||
self.socket.emit('send', raw, function(err) {
|
||||
if (err)
|
||||
return reject(new Error(err.error));
|
||||
resolve();
|
||||
});
|
||||
self.socket.emit('send', raw, wrap(resolve, reject));
|
||||
});
|
||||
};
|
||||
|
||||
@ -283,11 +260,7 @@ WalletClient.prototype.setFilter = function setFilter(filter) {
|
||||
var self = this;
|
||||
return new Promise(function(resolve, reject) {
|
||||
var raw = filter.toRaw();
|
||||
self.socket.emit('set filter', raw, function(err) {
|
||||
if (err)
|
||||
return reject(new Error(err.error));
|
||||
resolve();
|
||||
});
|
||||
self.socket.emit('set filter', raw, wrap(resolve, reject));
|
||||
});
|
||||
};
|
||||
|
||||
@ -309,11 +282,7 @@ WalletClient.prototype.addFilter = function addFilter(chunks) {
|
||||
out.push(chunks[i]);
|
||||
|
||||
return new Promise(function(resolve, reject) {
|
||||
self.socket.emit('add filter', out, function(err) {
|
||||
if (err)
|
||||
return reject(new Error(err.error));
|
||||
resolve();
|
||||
});
|
||||
self.socket.emit('add filter', out, wrap(resolve, reject));
|
||||
});
|
||||
};
|
||||
|
||||
@ -325,11 +294,7 @@ WalletClient.prototype.addFilter = function addFilter(chunks) {
|
||||
WalletClient.prototype.resetFilter = function resetFilter() {
|
||||
var self = this;
|
||||
return new Promise(function(resolve, reject) {
|
||||
self.socket.emit('reset filter', function(err) {
|
||||
if (err)
|
||||
return reject(new Error(err.error));
|
||||
resolve();
|
||||
});
|
||||
self.socket.emit('reset filter', wrap(resolve, reject));
|
||||
});
|
||||
};
|
||||
|
||||
@ -342,11 +307,8 @@ WalletClient.prototype.resetFilter = function resetFilter() {
|
||||
WalletClient.prototype.estimateFee = function estimateFee(blocks) {
|
||||
var self = this;
|
||||
return new Promise(function(resolve, reject) {
|
||||
self.socket.emit('estimate fee', blocks, function(err, rate) {
|
||||
if (err)
|
||||
return reject(new Error(err.error));
|
||||
resolve(Amount.value(rate));
|
||||
});
|
||||
self.socket.emit('estimate fee', blocks,
|
||||
wrap(resolve, reject, Amount.value));
|
||||
});
|
||||
};
|
||||
|
||||
@ -364,11 +326,7 @@ WalletClient.prototype.rescan = function rescan(start) {
|
||||
if (typeof start === 'string')
|
||||
start = util.revHex(start);
|
||||
|
||||
self.socket.emit('rescan', start, function(err) {
|
||||
if (err)
|
||||
return reject(new Error(err.error));
|
||||
resolve();
|
||||
});
|
||||
self.socket.emit('rescan', start, wrap(resolve, reject));
|
||||
});
|
||||
};
|
||||
|
||||
@ -419,6 +377,34 @@ function BlockResult(entry, txs) {
|
||||
this.txs = txs;
|
||||
}
|
||||
|
||||
function wrap(resolve, reject, parse) {
|
||||
return function(err, result) {
|
||||
if (err) {
|
||||
reject(new Error(err.error));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!result) {
|
||||
resolve(null);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!parse) {
|
||||
resolve(result);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
result = parse(result);
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
return;
|
||||
}
|
||||
|
||||
resolve(result);
|
||||
};
|
||||
}
|
||||
|
||||
/*
|
||||
* Expose
|
||||
*/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user