Displaying status, gas and block number

This commit is contained in:
Richard Ramos 2018-06-08 15:30:20 -04:00
parent 66353bb8d5
commit 744ec4428e
3 changed files with 28 additions and 4 deletions

View File

@ -3,6 +3,8 @@ const http = require('http');
exports.serve = function(ipc, host, port, ws){ exports.serve = function(ipc, host, port, ws){
let commList = {}; let commList = {};
let transactions = {};
let receipts = {};
let proxy = httpProxy.createProxyServer({ let proxy = httpProxy.createProxyServer({
target: { target: {
@ -21,14 +23,23 @@ exports.serve = function(ipc, host, port, ws){
let jsonO = JSON.parse(resBody); let jsonO = JSON.parse(resBody);
if(commList[jsonO.id]){ if(commList[jsonO.id]){
commList[jsonO.id].transactionHash = jsonO.result; commList[jsonO.id].transactionHash = jsonO.result;
transactions[jsonO.result] = {commListId: jsonO.id};
} else if(receipts[jsonO.id]){
commList[receipts[jsonO.id]].blockNumber = jsonO.result.blockNumber;
commList[receipts[jsonO.id]].gasUsed = jsonO.result.gasUsed;
commList[receipts[jsonO.id]].status = jsonO.result.status;
if(ipc.connected && !ipc.connecting){ if(ipc.connected && !ipc.connecting){
ipc.request('log', commList[jsonO.id]); ipc.request('log', commList[receipts[jsonO.id]]);
} else { } else {
ipc.connecting = true; ipc.connecting = true;
ipc.connect((err) => { ipc.connect((err) => {
ipc.connecting = false; ipc.connecting = false;
}); });
} }
delete transactions[commList[receipts[jsonO.id]].transactionHash];
delete receipts[jsonO.id];
delete commList[jsonO.id]; delete commList[jsonO.id];
} }
} catch(e){ } catch(e){
@ -50,6 +61,11 @@ exports.serve = function(ipc, host, port, ws){
address: jsonO.params[0].to, address: jsonO.params[0].to,
data: jsonO.params[0].data data: jsonO.params[0].data
}; };
} else if(jsonO.method == "eth_getTransactionReceipt"){
if(transactions[jsonO.params[0]]){
transactions[jsonO.params[0]].receiptId = jsonO.id;
receipts[jsonO.id] = transactions[jsonO.params[0]].commListId;
}
} }
} }
}); });

View File

@ -38,15 +38,18 @@ class ConsoleListener {
this.ipc.on('log', (request) => { this.ipc.on('log', (request) => {
if(request.type == 'contract-log'){ if(request.type == 'contract-log'){
let {address, data, transactionHash} = request; let {address, data, transactionHash, blockNumber, gasUsed, status} = request;
if(!this.addressToContract[address]){ if(!this.addressToContract[address]){
this._updateContractList(); this._updateContractList();
} }
let name = this.addressToContract[address].name; let name = this.addressToContract[address].name;
let funcHash = this.addressToContract[address].functions[data.substring(0, 10)]; let funcHash = this.addressToContract[address].functions[data.substring(0, 10)];
this.logger.debug(`${name}.${funcHash} : ${transactionHash}`); gasUsed = utils.hexToNumber(gasUsed);
blockNumber = utils.hexToNumber(blockNumber);
this.logger.debug(`${name}.${funcHash} : ${transactionHash} | gas:${gasUsed} | blk:${blockNumber} | status:${status}`);
} else { } else {
this.logger.debug(request); this.logger.debug(request);
} }

View File

@ -185,6 +185,10 @@ function getExternalContractUrl(file) {
}; };
} }
function hexToNumber(hex){
return Web3.utils.hexToNumber(hex);
}
function toChecksumAddress(address) { function toChecksumAddress(address) {
return Web3.utils.toChecksumAddress(address); return Web3.utils.toChecksumAddress(address);
} }
@ -253,6 +257,7 @@ module.exports = {
httpsGet: httpsGet, httpsGet: httpsGet,
httpGetJson: httpGetJson, httpGetJson: httpGetJson,
httpsGetJson: httpsGetJson, httpsGetJson: httpsGetJson,
hexToNumber: hexToNumber,
runCmd: runCmd, runCmd: runCmd,
cd: cd, cd: cd,
sed: sed, sed: sed,