From a499e066d596a0230321eade26cf04645353ca7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Martin-Leg=C3=A8ne?= <robert@nic.ar> Date: Mon, 3 Dec 2018 01:04:43 -0300 Subject: [PATCH] monitor.js will keep trying to unlock locked keys, using an empty passphrase. --- bin/monitor.js | 51 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/bin/monitor.js b/bin/monitor.js index ca4a629..55a4492 100755 --- a/bin/monitor.js +++ b/bin/monitor.js @@ -7,13 +7,7 @@ const Libbfa = require( process.env.BFAHOME + '/bin/libbfa.js'); var bfa = new Libbfa(); var web3 = bfa.newweb3(); - -function pluralEnglish( num, single, plural ) -{ - if ( num == 1 ) - return single; - return plural; -} +var lastUnlock = 0; function peerlist() { @@ -89,7 +83,7 @@ function peerlist() console.log( "We have " + nowpeers.length - + " peer" + pluralEnglish(nowpeers.length,'','s') + ", so will try to connect to " + + " peer" + ( nowpeers.length==1 ? '' : 's' ) + ", so will try to connect to " + enode ); web3.eth.bfaAdminaddPeer( enode ); @@ -167,10 +161,51 @@ function mayseal() ); } +function unlock() +{ + var now = new Date(); + if ( lastUnlock + 600 > now ) + return; + lastUnlock = now; + web3.eth.personal.bfalistWallets() + .then( + function pushone(x) + { + var i = x.length; + var wallets = new Array(); + while ( i-- > 0 ) + if ( x[i].status == "Locked" ) + wallets.push( x[i] ); + i = wallets.length; + if ( i == 0 ) + return; + var promises = new Array(); + while ( i-- > 0 ) + { + var j = wallets[i].accounts.length; + while ( j-- > 0 ) + { + var addr = wallets[i].accounts[j].address; + var promise = + web3.eth.personal.unlockAccount( addr, "", 0 ) + .catch( error => { } ); + promises.push( promise ); + } + } + } + , + function err(x) + { + // we don't care? + } + ) +} + function timer() { peerlist(); mayseal(); + unlock(); } peerlist(); -- GitLab