var cs = require('coinstring');
var ecurve = require('ecurve');
var BigInteger = require('bigi');
var crypto = require('crypto');
var axios = require('axios');
var fs = require('fs');
let han = true;
let priv = '';
//function rand(){
var z = ["0","0","0","0","0","0","0","0","0","0","0","0","0","0","1","a","8","3","8","b","1","3","5","0","6","0","a","0","d","7"];
var h = ["0","0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g"];
var i = h.indexOf(z[29]), i2 = h.indexOf(z[28]), i3 = h.indexOf(z[27]), i4 = h.indexOf(z[26]), i5 = h.indexOf(z[25]), i6 = h.indexOf(z[24]), i7 = h.indexOf(z[23]), i8 = h.indexOf(z[22]), i9 = h.indexOf(z[21]), i10 = h.indexOf(z[20]), i11 = h.indexOf(z[19]), i12 = h.indexOf(z[18]), i13 = h.indexOf(z[17]), i14 = h.indexOf(z[16]), i15 = h.indexOf(z[15]), i16 = h.indexOf(z[14]), i17 = h.indexOf(z[13]), i18 = h.indexOf(z[12]), i19 = h.indexOf(z[11]), i20 = h.indexOf(z[10]), i21 = h.indexOf(z[9]), i22 = h.indexOf(z[8]), i23 = h.indexOf(z[7]), i24 = h.indexOf(z[6]), i25 = h.indexOf(z[5]), i26 = h.indexOf(z[4]), i27 = h.indexOf(z[3]), i28 = h.indexOf(z[2]), i29 = h.indexOf(z[1]), i30 = h.indexOf(z[0]);
while(han){
if(i>16){
i=0;
i2=i2+1;
}else{
if(i2>16){
i2=0;
i3=i3+1;
}else{
if(i3>16){
i3=0;
i4=i4+1;
}else{
if(i4>16){
i4=0;
i5=i5+1;
}else{
if(i5>16){
i5=0;
i6=i6+1;
}else{
if(i6>16){
i6=0;
i7=i7+1;
}else{
if(i7>16){
i7=0;
i8=i8+1;
}else{
if(i8>16){
i8=0;
i9=i9+1;
}else{
if(i9>16){
i9=0;
i10=i10+1;
}else{
if(i10>16){
i10=0;
i11=i11+1;
}else{
if(i11>16){
i11=0;
i12=i12+1;
}else{
if(i12>16){
i12=0;
i13=i13+1;
}else{
if(i13>16){
i13=0;
i14=i14+1;
}else{
if(i14>16){
i14=0;
i15=i15+1;
}else{
if(i15>16){
i15=0;
i16=i16+1;
}else{
if(i16>16){
i16=0;
i17=i17+1;
}else{
if(i17>16){
i17=0;
i18=i18+1;
}else{
if(i18>16){
i18=0;
i19=i19+1;
}else{
if(i19>16){
i19=0;
i20=i20+1;
}else{
if(i20>16){
i20=0;
i21=i21+1;
}else{
if(i21>16){
i21=0;
i22=i22+1;
}else{
if(i22>16){
i22=0;
i23=i23+1;
}else{
if(i23>16){
i23=0;
i24=i24+1;
}else{
if(i24>16){
i24=0;
i25=i25+1;
}else{
if(i25>16){
i25=0;
i26=i26+1;
}else{
if(i26>16){
i26=0;
i27=i27+1;
}else{
if(i27>16){
i27=0;
i28=i28+1;
}else{
if(i28>16){
i28=0;
i29=i29+1;
}else{
if(i29>16){
i29=0;
i30=i30+1;
}else{
if(i30>16){
//i30=0;
han=false;
}else{
priv = '0000000000000000000000000000000000';
var prive = h[i30]+''+h[i29]+''+h[i28]+''+h[i27]+''+h[i26]+''+h[i25]+''+h[i24]+''+h[i23]+''+h[i22]+''+h[i21]+''+h[i20]+''+h[i19]+''+h[i18]+''+h[i17]+''+h[i16]+''+h[i15]+''+h[i14]+''+h[i13]+''+h[i12]+''+h[i11]+''+h[i10]+''+h[i9]+''+h[i8]+''+h[i7]+''+h[i6]+''+h[i5]+''+h[i4]+''+h[i3]+''+h[i2]+''+h[i];
//readWriteAsync();
//readWriteSync(prive);
xrand(priv+''+prive);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
i++;
}
//return '000000000000000000000000000000000000'+secureRandom.randomBuffer(14).toString('hex');
//return '000000000000000000000000000000000000000000000001a838b13505b26867';
// }
function xrand(privatehex){
var privateKey = new Buffer.from(privatehex, 'hex');
var ecparams = ecurve.getCurveByName('secp256k1');
var curvePt = ecparams.G.multiply(BigInteger.fromBuffer(privateKey));
var x = curvePt.affineX.toBuffer(32);
var y = curvePt.affineY.toBuffer(32);
var publicKey = Buffer.concat([new Buffer.from([0x04]), x, y]);
publicKey = curvePt.getEncoded(true);
var sha = crypto.createHash('sha256').update(publicKey).digest();
var pubkeyHash = crypto.createHash('rmd160').update(sha).digest();
//save(pubkeyHash.toString('hex'), privateKey.toString('hex'));
if(pubkeyHash.toString('hex')=='20D45A6A762535700CE9E0B216E31994335DB8A5'){
han=false;
//save(pubkeyHash.toString('hex'), privateKey.toString('hex'));
console.log("hex : "+privateKey.toString('hex')+" ripemd : "+pubkeyHash.toString('hex'));
}else if(pubkeyHash.toString('hex')=='739437BB3DD6D1983E66629C5F08C70E52769371'){
han=false;
//save(pubkeyHash.toString('hex'), privateKey.toString('hex'));
console.log("hex : "+privateKey.toString('hex')+" ripemd : "+pubkeyHash.toString('hex'));
}else{
//xrand(priv);
//han=false;
console.log("hex : "+privateKey.toString('hex')+" ripemd : "+pubkeyHash.toString('hex'));
}
}
function save(publicKeyHash, privateKey){
axios.get('http://localhost:8070/hunter.php?ripemd='+publicKeyHash+'&hex='+privateKey);
}
function xray(publicKeyHash, privateKey){
save(publicKeyHash, privateKey);
/*save(cs.encode(new Buffer.concat([privateKey, new Buffer.from([01])]), 0x80), cs.encode(Buffer.from(publicKeyHash, 'hex'), 0x00), response.data.data.confirmed_balance);
*/
}
function readWriteSync(val) {
//var data = fs.readFileSync('/sdcard/hex.txt', 'utf-8');
var newValue = val; //data.replace(/^\./gim, val);
fs.writeFileSync('/sdcard/hex.txt', newValue, 'utf-8');
//console.log('readFileSync complete');
}
//xrand(priv);