Added blockHash to Etherscan getLogs result (#146).

This commit is contained in:
Richard Moore 2018-03-27 17:19:46 -04:00
parent ce7718c87e
commit 296473299c
No known key found for this signature in database
GPG Key ID: 525F70A6FCABC295
3 changed files with 25 additions and 2 deletions

View File

@ -1,6 +1,6 @@
{
"name": "ethers",
"version": "3.0.7",
"version": "3.0.8",
"description": "Ethereum wallet library.",
"main": "index.js",
"scripts": {

View File

@ -210,7 +210,29 @@ utils.defineProperty(EtherscanProvider.prototype, 'perform', function(method, pa
url += apiKey;
return Provider.fetchJSON(url, null, getResult);
var self = this;
return Provider.fetchJSON(url, null, getResult).then(function(logs) {
var txs = {};
var seq = Promise.resolve();
logs.forEach(function(log) {
seq = seq.then(function() {
if (log.blockHash != null) { return; }
log.blockHash = txs[log.transactionHash];
if (log.blockHash == null) {
return self.getTransaction(log.transactionHash).then(function(tx) {
txs[log.transactionHash] = tx.blockHash;
log.blockHash = tx.blockHash;
});
}
});
})
return seq.then(function() {
return logs;
});
});
case 'getEtherPrice':
if (this.name !== 'homestead') { return Promise.resolve(0.0); }

View File

@ -569,6 +569,7 @@ utils.defineProperty(Provider, 'fetchJSON', function(url, json, processFunc) {
var jsonError = new Error('invalid json response');
jsonError.orginialError = error;
jsonError.responseText = request.responseText;
jsonError.url = url;
reject(jsonError);
return;
}