Skip to content
Snippets Groups Projects
Commit 2bfbe2c7 authored by Robert Martin-Legene's avatar Robert Martin-Legene
Browse files

Arreglando MasterDistiller

parent 0d8f5afa
No related branches found
No related tags found
1 merge request!1Distillery
#!/usr/bin/node #!/usr/bin/node
"use strict"
const Libbfa = require( process.env.BFAHOME + '/bin/libbfa.js'); const Libbfa = require( process.env.BFAHOME + '/bin/libbfa.js');
const rl = require('readline').createInterface( const rl = require('readline').createInterface(
{ input: process.stdin, output: process.stdout } { input: process.stdin, output: process.stdout }
...@@ -25,6 +27,8 @@ function init() ...@@ -25,6 +27,8 @@ function init()
bfa = new Libbfa(); bfa = new Libbfa();
web3 = bfa.newweb3(); web3 = bfa.newweb3();
Distillery = bfa.contract( web3, 'Distillery' ); Distillery = bfa.contract( web3, 'Distillery' );
if ( undefined == Distillery )
fatal('Can not initialise Distillery contact.');
web3.eth.getBalance( Distillery.contractaddress ).then( web3.eth.getBalance( Distillery.contractaddress ).then(
function receivedOwnBalance(val) { function receivedOwnBalance(val) {
Distillery.contractbalance = val; Distillery.contractbalance = val;
...@@ -128,7 +132,7 @@ function editAccount( entry, pallet ) ...@@ -128,7 +132,7 @@ function editAccount( entry, pallet )
if ( entry == "x" ) if ( entry == "x" )
{ {
// trigger distribution // trigger distribution
Distillery.methods.distribute().send( {"from": bfa.account, "gas": 1000000 } ) Distillery.methods.distribute().send( {"from": bfa.account, "gas": 4000000 } )
.then( .then(
function distOK(x) { function distOK(x) {
console.log( console.log(
...@@ -155,7 +159,15 @@ function editAccount( entry, pallet ) ...@@ -155,7 +159,15 @@ function editAccount( entry, pallet )
return; return;
} }
else else
if ( entry == "" )
{
// Do nothing, basically just update the display
return;
}
else
{
bfa.fatal("I don't know what to do with \""+entry+"\"." ); bfa.fatal("I don't know what to do with \""+entry+"\"." );
}
rl.question( rl.question(
"Adjust the " "Adjust the "
+ notation[2] + notation[2]
......
// 20180724 Robert Martin-Legene <robert@nic.ar> // 20180724 Robert Martin-Legene <robert@nic.ar>
"use strict"
module.exports = class Libbfa module.exports = class Libbfa
{ {
constructor() { constructor() {
this.fs = require('fs'); this.fs = require('fs');
this.Web3 = require('web3'); this.Web3 = require('web3');
// //
// BFAHOME // BFAHOME
if ( undefined == process.env.BFAHOME ) if ( undefined == process.env.BFAHOME )
fatal( "$BFAHOME not set. Did you source bfa/bin/env ?" ); fatal( "$BFAHOME not set. Did you source bfa/bin/env ?" );
// BFANETWORKID // BFANETWORKID
this.home = process.env.BFAHOME;
if ( undefined == process.env.BFANETWORKID ) if ( undefined == process.env.BFANETWORKID )
process.env.BFANETWORKID= 47525974938; process.env.BFANETWORKID = 47525974938;
this.networkid = process.env.BFANETWORKID;
// BFANETWORKDIR // BFANETWORKDIR
if ( undefined == process.env.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 // BFANODEDIR
if ( undefined == process.env.BFANODEDIR ) if ( undefined == process.env.BFANODEDIR )
process.env.BFANODEDIR = this.networkdir + "/node"; process.env.BFANODEDIR = this.networkdir + "/node";
this.nodedir = process.env.BFANODEDIR;
// ACCOUNT // ACCOUNT
if ( undefined == process.env.BFAACCOUNT ) if ( undefined == process.env.BFAACCOUNT )
{ {
var files = new Array(); var files = new Array();
this.fs.readdirSync( process.env.BFANODEDIR + '/keystore' ).forEach( function(filename) { if ( this.fs.existsSync( process.env.BFANODEDIR + '/keystore' ) )
if ( filename.includes('--') ) {
files.push( filename ); this.fs.readdirSync( process.env.BFANODEDIR + '/keystore' ).forEach( function(filename) {
}); if ( filename.includes('--') )
files.push( filename );
});
}
// found none? // found none?
if ( files.length == 0 ) if ( files.length > 0 )
fatal( "Found no accounts in your keystore." ); {
files.sort(); files.sort();
process.env.BFAACCOUNT = '0x' + files[0].replace( /^.*--/, '' ); process.env.BFAACCOUNT = '0x' + files[0].replace( /^.*--/, '' );
}
} }
// //
this.home = process.env.BFAHOME; this.netport = Number.parseInt( this.setfromfile( this.nodedir+'/netport', 30303 ));
this.networkid = process.env.BFANETWORKID; this.rpcport = Number.parseInt( this.setfromfile( this.nodedir+'/rpcport', 8545 ));
this.networkdir = process.env.BFANETWORKDIR; this.account = process.env.BFAACCOUNT;
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;
} }
contract(w3, name) contract(w3, name)
{ {
this._networkdir(); var contractdir = [ this.networkdir, 'contracts', name ].join('/');
var contractdir = [ this.networkdir, 'contracts', name ].join('/'); if ( ! this.fs.existsSync( contractdir ) )
var contractaddress = this.fs.realpathSync( contractdir ).replace(/^.*\//, ''); return;
var contractaddress = this.fs.realpathSync( contractdir ).replace(/^.*\//, '');
if ( undefined == contractaddress ) if ( undefined == contractaddress )
return; return;
var abistr = this.fs.readFileSync( contractdir + '/abi' ).toString(); var abistr = this.fs.readFileSync( contractdir + '/abi' ).toString();
if ( undefined == abistr ) if ( undefined == abistr )
return; return;
var abi = JSON.parse( abistr ); var abi = JSON.parse( abistr );
if ( undefined == abi ) if ( undefined == abi )
return; return;
var c = new w3.eth.Contract( abi, contractaddress ); var c = new w3.eth.Contract( abi, contractaddress );
c.abi = abi; c.abi = abi;
c.contractaddress = contractaddress; c.contractaddress = contractaddress;
return c; return c;
} }
...@@ -69,9 +76,8 @@ module.exports = class Libbfa ...@@ -69,9 +76,8 @@ module.exports = class Libbfa
newweb3() newweb3()
{ {
this._nodedir(); var provider = 'http://127.0.0.1:' + this.rpcport;
var provider = 'http://127.0.0.1:' + this.rpcport; var w3 = new this.Web3( provider );
var w3 = new this.Web3( provider );
w3.eth.extend({ w3.eth.extend({
//property: 'bfaclique', //property: 'bfaclique',
methods: [{ methods: [{
...@@ -80,6 +86,9 @@ module.exports = class Libbfa ...@@ -80,6 +86,9 @@ module.exports = class Libbfa
params: 0 params: 0
}] }]
}); });
if ( undefined != process.env.BFAACCOUNT ) {
w3.eth.defaultAccount = this.account;
}
return w3; return w3;
} }
isNumeric(n) { isNumeric(n) {
...@@ -92,7 +101,7 @@ module.exports = class Libbfa ...@@ -92,7 +101,7 @@ module.exports = class Libbfa
setfromfile( filename, defval ) setfromfile( filename, defval )
{ {
if ( this.fs.statSync( filename ).isFile() ) if ( this.fs.existsSync( filename ) )
return this.fs.readFileSync( filename ); return this.fs.readFileSync( filename );
return defval; return defval;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment