From 2bfbe2c75b3a87e41deeb66e3723305b0f3aef1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Martin-Leg=C3=A8ne?= <robert@nic.ar> Date: Fri, 12 Oct 2018 13:03:01 -0300 Subject: [PATCH] Arreglando MasterDistiller --- bin/MasterDistiller.js | 14 +++++++- bin/libbfa.js | 73 ++++++++++++++++++++++++------------------ 2 files changed, 54 insertions(+), 33 deletions(-) diff --git a/bin/MasterDistiller.js b/bin/MasterDistiller.js index 80b9181..c7deec6 100755 --- a/bin/MasterDistiller.js +++ b/bin/MasterDistiller.js @@ -1,5 +1,7 @@ #!/usr/bin/node +"use strict" + const Libbfa = require( process.env.BFAHOME + '/bin/libbfa.js'); const rl = require('readline').createInterface( { input: process.stdin, output: process.stdout } @@ -25,6 +27,8 @@ function init() bfa = new Libbfa(); web3 = bfa.newweb3(); Distillery = bfa.contract( web3, 'Distillery' ); + if ( undefined == Distillery ) + fatal('Can not initialise Distillery contact.'); web3.eth.getBalance( Distillery.contractaddress ).then( function receivedOwnBalance(val) { Distillery.contractbalance = val; @@ -128,7 +132,7 @@ function editAccount( entry, pallet ) if ( entry == "x" ) { // trigger distribution - Distillery.methods.distribute().send( {"from": bfa.account, "gas": 1000000 } ) + Distillery.methods.distribute().send( {"from": bfa.account, "gas": 4000000 } ) .then( function distOK(x) { console.log( @@ -155,7 +159,15 @@ function editAccount( entry, pallet ) return; } else + if ( entry == "" ) + { + // Do nothing, basically just update the display + return; + } + else + { bfa.fatal("I don't know what to do with \""+entry+"\"." ); + } rl.question( "Adjust the " + notation[2] diff --git a/bin/libbfa.js b/bin/libbfa.js index 25d17a9..6bab557 100644 --- a/bin/libbfa.js +++ b/bin/libbfa.js @@ -1,63 +1,70 @@ // 20180724 Robert Martin-Legene <robert@nic.ar> +"use strict" + module.exports = class Libbfa { constructor() { - this.fs = require('fs'); - this.Web3 = require('web3'); + this.fs = require('fs'); + this.Web3 = require('web3'); // // BFAHOME if ( undefined == process.env.BFAHOME ) fatal( "$BFAHOME not set. Did you source bfa/bin/env ?" ); // BFANETWORKID + this.home = process.env.BFAHOME; if ( undefined == process.env.BFANETWORKID ) - process.env.BFANETWORKID= 47525974938; + process.env.BFANETWORKID = 47525974938; + this.networkid = process.env.BFANETWORKID; // BFANETWORKDIR if ( undefined == process.env.BFANETWORKDIR ) - process.env.BFANETWORKDIR = process.env.BFAHOME + '/network'; + process.env.BFANETWORKDIR = process.env.BFAHOME + '/network'; + this.networkdir = process.env.BFANETWORKDIR; // BFANODEDIR if ( undefined == process.env.BFANODEDIR ) - process.env.BFANODEDIR = this.networkdir + "/node"; + process.env.BFANODEDIR = this.networkdir + "/node"; + this.nodedir = process.env.BFANODEDIR; // ACCOUNT if ( undefined == process.env.BFAACCOUNT ) { var files = new Array(); - this.fs.readdirSync( process.env.BFANODEDIR + '/keystore' ).forEach( function(filename) { - if ( filename.includes('--') ) - files.push( filename ); - }); + if ( this.fs.existsSync( process.env.BFANODEDIR + '/keystore' ) ) + { + this.fs.readdirSync( process.env.BFANODEDIR + '/keystore' ).forEach( function(filename) { + if ( filename.includes('--') ) + files.push( filename ); + }); + } // found none? - if ( files.length == 0 ) - fatal( "Found no accounts in your keystore." ); - files.sort(); - process.env.BFAACCOUNT = '0x' + files[0].replace( /^.*--/, '' ); + if ( files.length > 0 ) + { + files.sort(); + process.env.BFAACCOUNT = '0x' + files[0].replace( /^.*--/, '' ); + } } // - this.home = process.env.BFAHOME; - this.networkid = process.env.BFANETWORKID; - this.networkdir = process.env.BFANETWORKDIR; - this.nodedir = process.env.BFANODEDIR; - this.netport = Number.parseInt( this.setfromfile( this.nodedir+'/netport', 30303 ); - this.rpcport = Number.parseInt( this.setfromfile( this.nodedir+'/rpcport', 8545 ); - this.account = process.env.BFAACCOUNT; + this.netport = Number.parseInt( this.setfromfile( this.nodedir+'/netport', 30303 )); + this.rpcport = Number.parseInt( this.setfromfile( this.nodedir+'/rpcport', 8545 )); + this.account = process.env.BFAACCOUNT; } contract(w3, name) { - this._networkdir(); - var contractdir = [ this.networkdir, 'contracts', name ].join('/'); - var contractaddress = this.fs.realpathSync( contractdir ).replace(/^.*\//, ''); + var contractdir = [ this.networkdir, 'contracts', name ].join('/'); + if ( ! this.fs.existsSync( contractdir ) ) + return; + var contractaddress = this.fs.realpathSync( contractdir ).replace(/^.*\//, ''); if ( undefined == contractaddress ) return; - var abistr = this.fs.readFileSync( contractdir + '/abi' ).toString(); + var abistr = this.fs.readFileSync( contractdir + '/abi' ).toString(); if ( undefined == abistr ) return; - var abi = JSON.parse( abistr ); + var abi = JSON.parse( abistr ); if ( undefined == abi ) return; - var c = new w3.eth.Contract( abi, contractaddress ); - c.abi = abi; - c.contractaddress = contractaddress; + var c = new w3.eth.Contract( abi, contractaddress ); + c.abi = abi; + c.contractaddress = contractaddress; return c; } @@ -69,9 +76,8 @@ module.exports = class Libbfa newweb3() { - this._nodedir(); - var provider = 'http://127.0.0.1:' + this.rpcport; - var w3 = new this.Web3( provider ); + var provider = 'http://127.0.0.1:' + this.rpcport; + var w3 = new this.Web3( provider ); w3.eth.extend({ //property: 'bfaclique', methods: [{ @@ -80,6 +86,9 @@ module.exports = class Libbfa params: 0 }] }); + if ( undefined != process.env.BFAACCOUNT ) { + w3.eth.defaultAccount = this.account; + } return w3; } isNumeric(n) { @@ -92,7 +101,7 @@ module.exports = class Libbfa setfromfile( filename, defval ) { - if ( this.fs.statSync( filename ).isFile() ) + if ( this.fs.existsSync( filename ) ) return this.fs.readFileSync( filename ); return defval; } -- GitLab