You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

991 lines
34 KiB

function EDEXlistunspent(coin, addr) {
NProgress.done(true);
NProgress.configure({
template: '<div class="bar nprogress-bar-header nprogress-bar-info" role="bar"></div>' +
'<div class="spinner" role="spinner">' +
'<div class="spinner-icon"></div>' +
'</div>'
});
NProgress.start();
return new Promise((resolve) => {
var tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth');
if (addr == undefined) {
addr = '';
var ajax_data = {
'userpass': tmpIguanaRPCAuth,
'coin': coin,
'method': 'listunspent',
'params': [
1,
9999999,
[]
]
};
} else {
var ajax_data = {
'userpass': tmpIguanaRPCAuth,
'coin': coin,
'method': 'listunspent',
'params': [
1,
9999999,
[addr]
]
};
}
var active_edexcoinmodecode = sessionStorage.getItem('edexTmpMode'),
ajaxCall = $.ajax({
data: JSON.stringify(ajax_data),
url: 'http://127.0.0.1:' + config.iguanaPort,
type: 'POST',
dataType: 'json'
});
ajaxCall.done(function(data) {
var result = [];
// This code using undscore.js takes only the address into an array which are unique in that list
var unique_addresses = _.keys(_.countBy(data, function(data) { return data.address; }));
// This function calls each unique address and calculates the total amount of coins in it.
$.each(unique_addresses, function(index) {
var unique_addr_tmp_array = _.where(data, { address: unique_addresses[index] }),
tmpcalcnum = 0,
tmpcalcinterest = 0,
interest_enable = false,
tmptotalbalance = 0;
$.each(data, function(index) {
if ( data[index].interest !== undefined ) {
// console.log('interest is available for this currency. Adding to total balance.');
tmpcalcnum = tmpcalcnum + data[index].amount;
tmpcalcinterest = tmpcalcinterest + data[index].interest;
interest_enable = true;
}
if ( data[index].interest === undefined ) {
tmpcalcnum = tmpcalcnum + data[index].amount;
}
});
if ( coin == 'KMD' ) {
tmptotalbalance = parseFloat(tmpcalcnum) + parseFloat(tmpcalcinterest);
var tmp_addr_total_balance_output = {
'addr': unique_addr_tmp_array[0].address,
'total': tmpcalcnum.toFixed(8),
'interest': tmpcalcinterest.toFixed(8),
'totalbalance': tmptotalbalance.toFixed(8)
};
}
if ( coin !== 'KMD' ) {
var tmp_addr_total_balance_output = {
'addr': unique_addr_tmp_array[0].address,
'total': tmpcalcnum.toFixed(8)
};
}
/*var tmpcalcnum = 0;
$.each(unique_addr_tmp_array, function(index, value) {
//console.log(value.amount);
if ( value.interest !== undefined ) {
tmpcalcnum = tmpcalcnum + value.amount + value.interest;
}
if ( value.interest === undefined ) {
tmpcalcnum = tmpcalcnum + value.amount;
}
});
//console.log(tmpcalcnum);
var tmp_addr_total_balance_output = {"addr": unique_addr_tmp_array[0].address, "total": tmpcalcnum};*/
//console.log(tmp_addr_total_balance_output);
result.push(tmp_addr_total_balance_output);
});
resolve(result);
}).fail(function(xhr, textStatus, error) {
// handle request failures
console.log(xhr.statusText);
if ( xhr.readyState == 0 ) {
Iguana_ServiceUnavailable();
}
console.log(textStatus);
console.log(error);
});
});
NProgress.done();
}
function clearEdexSendFieldData() {
$('.showedexcoinaddrs').selectpicker('refresh');
$('#edexcoin_sendto').val('');
$('#edexcoin_total_value').text('');
$('#edexcoin_amount').val('');
}
function EDEXMainAddr(coin) {
NProgress.done(true);
NProgress.configure({
template: '<div class="bar nprogress-bar-header nprogress-bar-info" role="bar"></div>' +
'<div class="spinner" role="spinner">' +
'<div class="spinner-icon"></div>' +
'</div>'
});
NProgress.start();
return new Promise((resolve) => {
var tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
ajax_data = {
'userpass': tmpIguanaRPCAuth,
'agent': 'SuperNET',
'method': 'activehandle'
};
var ajaxCall = $.ajax({
data: JSON.stringify(ajax_data),
url: 'http://127.0.0.1:' + config.iguanaPort,
type: 'POST',
dataType: 'json'
});
ajaxCall.done(function(data) {
tmp_coin_addr = data[coin];
resolve(tmp_coin_addr);
NProgress.done();
}).fail(function(xhr, textStatus, error) {
// handle request failures
console.log(xhr.statusText);
if ( xhr.readyState == 0 ) {
Iguana_ServiceUnavailable();
}
console.log(textStatus);
console.log(error);
NProgress.done();
});
});
}
function EDEXgetBalance(coin) {
// comment
var result = [],
tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
ajax_data = {
'userpass': tmpIguanaRPCAuth,
'agent': 'bitcoinrpc',
'method': 'getbalance',
'coin': coin
};
$.ajax({
type: 'POST',
data: JSON.stringify(ajax_data),
url: 'http://127.0.0.1:' + config.iguanaPort,
success: function(data, textStatus, jqXHR) {
var AjaxOutputData = JSON.parse(data);
result.push(AjaxOutputData['result']);
},
error: function(xhr, textStatus, error) {
console.log(xhr.statusText);
if ( xhr.readyState == 0 ) {
Iguana_ServiceUnavailable();
}
console.log(textStatus);
console.log(error);
}
});
return result;
}
function EDEXSendutxoRawTx(data) {
Shepherd_GetBasiliskCache().then(function(result) {
var _data = JSON.parse(result),
query = _data.result.basilisk,
utxos_set = query[data.coin][data.sendfrom].refresh.data,
send_data = {
'coin': data.coin,
'sendfrom': data.sendfrom,
'sendtoaddr': data.sendtoaddr,
'amount': data.amount,
'txfee': data.txfee,
'sendsig': (data.sendsig == true ? 0 : 1 ),
'utxos': utxos_set
};
// console.log(send_data)
Iguana_utxorawtx(send_data).then(function(result) {
console.log(result);
var edexcoin_sendto_result_tbl = '';
if (result.result == 'success') {
console.log(send_data)
toastr.success(_lang[defaultLang].TOASTR.SIGNED_TX_GENERATED + '.', _lang[defaultLang].TOASTR.WALLET_NOTIFICATION);
}
if (send_data.sendsig == 1) {
console.log(send_data)
toastr.info(_lang[defaultLang].TOASTR.SENDING_TX + '.', _lang[defaultLang].TOASTR.WALLET_NOTIFICATION);
ajax_data_dexrawtx = {
'signedtx': result.signedtx,
'coin': send_data.coin
};
Iguana_DEXsendrawtx(ajax_data_dexrawtx).then(function(dexrwatx_result) {
console.log(dexrwatx_result);
if (dexrwatx_result.error == undefined) {
var active_edexcoin = $('[data-edexcoin]').attr('data-edexcoin');
toastr.success(_lang[defaultLang].TOASTR.SIGNED_TX_SENT, _lang[defaultLang].TOASTR.WALLET_NOTIFICATION);
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>result</td>' +
'<td>' +
'<span class="label label-success">' + result.result + '</span>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>completed</td>' +
'<td>' +
'<span class="label label-primary">' + result.completed + '</span>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>rawtx</td>' +
'<td>' +
'<span style="display: block; width: 400px;word-wrap: break-word;">' + result.rawtx + '</span>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr>' +
'<td>txid</td>' +
'<td>' +
'<a href="javascript:void(0)" data-edexcoin="' + active_edexcoin + '" data-sendtotxresult="' + dexrwatx_result + '" class="edexcoin_sendto_output_result">' + dexrwatx_result + '</a>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>signedtx</td>' +
'<td>' +
'<span style="display: block; width: 400px;word-wrap: break-word;">' + result.signedtx + '</span>' +
'</td>' +
'</tr>';
$('#edexcoin_sendto_result tbody').html(edexcoin_sendto_result_tbl);
$('#edexcoin_send_coins_anothertx_btn').show();
$('#edexcoin-send-txdetails-screen').data('panel-api').done();
var gettxiddata = function() {
return new Promise(function(resolve, reject) {
toastr.info(_lang[defaultLang].TOASTR.GETTING_TXID_INFO + '.', _lang[defaultLang].TOASTR.WALLET_NOTIFICATION);
EDEXgettransaction(ajax_data_dexrawtx.coin,dexrwatx_result).then(function(result) {
//console.log(result);
resolve(result);
});
});
}
var process_refresh_utxos = function(gettxdata) {
return new Promise(function(resolve, reject) {
//console.log(gettxdata)
//console.log(utxos_set)
EDEX_GetTxIDList(gettxdata).then(function(get_txid_list) {
console.log(get_txid_list)
resolve(get_txid_list);
});
/*EDEX_ProcessRefreshData(gettxdata,utxos_set).then(function(new_utxos_set) {
console.log(new_utxos_set);
resolve(new_utxos_set);
});*/
});
}
var get_data_cache_contents = function(get_txid_list) {
return new Promise(function(resolve, reject) {
console.log(get_txid_list);
//console.log(send_data)
//console.log(send_data.sendfrom)
Shepherd_GroomData_Get().then(function(result) {
console.log(result);
/*console.log(result.basilisk.KMD[send_data.sendfrom].refresh);
delete result.basilisk.KMD[send_data.sendfrom].refresh.data;
console.log(result.basilisk.KMD[send_data.sendfrom].refresh);
result.basilisk.KMD[send_data.sendfrom].refresh.data = new_utxos_set;
console.log(result.basilisk.KMD[send_data.sendfrom].refresh);
var save_this_data = result;*/
var save_this_data = EDEX_RemoveTXID(result, get_txid_list);
console.log(save_this_data);
//resolve(result);
resolve(save_this_data);
});
});
}
var save_new_cache_data = function(save_this_data) {
return new Promise(function(resolve, reject) {
console.log(save_this_data);
Shepherd_GroomData_Post(save_this_data).then(function(result) {
console.log(result);
resolve(result);
});
});
}
gettxiddata()
.then(function(gettxdata) {
return process_refresh_utxos(gettxdata);
})
.then(function(new_utxos_set) {
return get_data_cache_contents(new_utxos_set);
})
.then(function(save_this_data) {
return save_new_cache_data(save_this_data);
});
//var call_data = {"allcoins": false,"coin":ajax_data_dexrawtx.coin,"calls":"refresh"}
//console.log(call_data)
/*Shepherd_FetchBasiliskData(call_data).then(function(result){
console.log(result)
toastr.info('Refreshing Wallet Funds.', 'Wallet Notification');
})*/
} else {
var active_edexcoin = $('[data-edexcoin]').attr('data-edexcoin');
toastr.success(_lang[defaultLang].TOASTR.SIGNED_TX_SENT, _lang[defaultLang].TOASTR.WALLET_NOTIFICATION);
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>result</td>' +
'<td>' +
'<span class="label label-dark">' + dexrwatx_result.result + '</span>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>error</td>' +
'<td>' +
'<span class="label label-danger">' + dexrwatx_result.error + '</span>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>signedtx</td>' +
'<td>' +
'<span style="display: block; width: 400px;word-wrap: break-word;">' + ajax_data_dexrawtx.signedtx + '</span>' +
'</td>' +
'</tr>';
$('#edexcoin_sendto_result tbody').html(edexcoin_sendto_result_tbl);
$('#edexcoin_send_coins_anothertx_btn').show();
$('#edexcoin-send-txdetails-screen').data('panel-api').done();
var call_data = {
'allcoins': false,
'coin': 'KMD',
'calls': 'refresh'
};
console.log(call_data);
Shepherd_FetchBasiliskData(call_data).then(function(result) {
console.log(result);
toastr.info(_lang[defaultLang].TOASTR.REFRESHING_FUNDS + '.', _lang[defaultLang].TOASTR.WALLET_NOTIFICATION);
});
}
});
}
if (send_data.sendsig == 0) {
console.log(send_data);
var active_edexcoin = $('[data-edexcoin]').attr('data-edexcoin');
//toastr.success('Signed Transaction Generated.', 'Wallet Notification');
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>result</td>' +
'<td>' +
'<span class="label label-success">' + result.result + '</span>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>completed</td>' +
'<td>' +
'<span class="label label-primary">' + result.completed + '</span>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>rawtx</td>' +
'<td>' +
'<span style="display: block; width: 400px;word-wrap: break-word;">' + result.rawtx + '</span>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr>' +
'<td>txid</td>' +
'<td>' +
'<a href="javascript:void(0)" data-edexcoin="' + active_edexcoin + '" data-sendtotxresult="' + result.txid + '" class="edexcoin_sendto_output_result">' + result.txid + '</a>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>signedtx</td>' +
'<td>' +
'<span style="display: block; width: 400px;word-wrap: break-word;">' + result.signedtx + '</span>' +
'</td>' +
'</tr>';
$('#edexcoin_sendto_result tbody').html(edexcoin_sendto_result_tbl);
$('#edexcoin_send_coins_anothertx_btn').show();
$('#edexcoin-send-txdetails-screen').data('panel-api').done();
var call_data = {
'allcoins': false,
'coin': 'KMD',
'calls': 'refresh'
};
console.log(call_data)
Shepherd_FetchBasiliskData(call_data).then(function(result) {
console.log(result);
toastr.info(_lang[defaultLang].TOASTR.REFRESHING_FUNDS, _lang[defaultLang].TOASTR.WALLET_NOTIFICATION);
});
}
});
});
}
function EDEXSendToAddr(data) {
var result = [],
confirm_coinname_to_send = data.coin,
confirm_send_amount = data.amount,
confirm_sendto_address = data.sendtoaddr;
// Get parameters values from confirm dialog and send currency
var tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
sendtoaddrvalues = {
'userpass': tmpIguanaRPCAuth,
'coin': confirm_coinname_to_send,
'method': 'sendtoaddress',
'params': [
confirm_sendto_address,
confirm_send_amount,
'EasyDEX',
'EasyDEXTransaction'
]
};
console.log(sendtoaddrvalues);
console.log(sendtoaddrvalues.params);
$.ajax({
type: 'POST',
data: JSON.stringify(sendtoaddrvalues),
url: 'http://127.0.0.1:' + config.iguanaPort,
success: function(data, textStatus, jqXHR) {
var SendToAddrData = JSON.parse(data),
edexcoin_sendto_result_tbl = '';
result.push(SendToAddrData);
if ( SendToAddrData.error !== undefined ) {
toastr.error(_lang[defaultLang].TOASTR.TX_FAILED, _lang[defaultLang].TOASTR.WALLET_NOTIFICATION);
edexcoin_sendto_result_tbl += '<tr class="active">' +
'<td>error</td>' +
'<td>' +
'<span class="label label-danger">' + SendToAddrData.error + '</span>' +
'</td>' +
'</tr>';
$('#edexcoin_sendto_result tbody').html(edexcoin_sendto_result_tbl);
$('#edexcoin_send_coins_anothertx_btn').show();
}
if ( SendToAddrData.complete !== undefined ) {
var active_edexcoin = $('[data-edexcoin]').attr('data-edexcoin');
toastr.success(_lang[defaultLang].TOASTR.TX_SENT_ALT, _lang[defaultLang].TOASTR.WALLET_NOTIFICATION);
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>complete</td>' +
'<td>' +
'<span class="label label-info">' + SendToAddrData.complete + '</span>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr>' +
'<td>result</td>' +
'<td>' +
'<a href="javascript:void(0)" data-edexcoin="' + active_edexcoin + '" data-sendtotxresult="' + SendToAddrData.result + '" class="edexcoin_sendto_output_result">' + SendToAddrData.result + '</a>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>sendrawtransaction</td>' +
'<td>' +
'<span class="label label-primary">' + SendToAddrData.sendrawtransaction + '</span>' +
'</td>' +
'</tr>';
edexcoin_sendto_result_tbl += '<tr class="">' +
'<td>signedtx</td>' +
'<td>' +
'<span style="display: block; width: 400px;word-wrap: break-word;">' + SendToAddrData.signedtx + '</span>' +
'</td>' +
'</tr>';
$('#edexcoin_sendto_result tbody').html(edexcoin_sendto_result_tbl);
$('#edexcoin_send_coins_anothertx_btn').show();
$('#edexcoin-send-txdetails-screen').data('panel-api').done();
}
var selected_coinmode = sessionStorage.getItem('edexTmpMode');
if ( selected_coinmode == 'Basilisk' ) {
var active_edexcoin = $('[data-edexcoin]').attr('data-edexcoin');
getDEXGetBalance(active_edexcoin).then(function(result) {
$('#edex_total_balance').text(result.total);
});
} else {
var active_edexcoin = $('[data-edexcoin]').attr('data-edexcoin'),
tmp_get_coin_balance = EDEXlistunspent(active_edexcoin);
if (tmp_get_coin_balance[0] != undefined) {
$('#edex_total_balance').text(tmp_get_coin_balance[0].total.toFixed(8));
} else {
$('#edex_total_balance').text('0');
}
}
$('#edexcoin_send_coins_btn').prop('disabled', false);
},
error: function(xhr, textStatus, error) {
console.log(xhr.statusText);
if ( xhr.readyState == 0 ) {
Iguana_ServiceUnavailable();
}
console.log(textStatus);
console.log(error);
$('#edexcoin-send-txdetails-screen').data('panel-api').done();
}
});
return result;
}
function EDEXgetinfo(coin) {
return new Promise((resolve) => {
var tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
ajax_data = {
'userpass': tmpIguanaRPCAuth,
'coin': coin,
'agent': 'bitcoinrpc',
'method': 'getinfo',
'immediate': 100,
'timeout': 4000
},
AjaxOutputData = IguanaAJAX('http://127.0.0.1:' + config.iguanaPort, ajax_data).done(function(data) {
AjaxOutputData = JSON.parse(AjaxOutputData.responseText);
resolve(AjaxOutputData);
}).fail(function(xhr, textStatus, error) {
// handle request failures
console.log(xhr.statusText);
if ( xhr.readyState == 0 ) {
}
console.log(textStatus);
console.log(error);
});
})
}
function EDEXgettransaction(coin,txid) {
return new Promise((resolve) => {
var tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
ajax_data = {
'userpass': tmpIguanaRPCAuth,
'symbol': coin,
'agent': 'dex',
'method': 'gettransaction',
'vout':1,
'txid': txid
};
//console.log(ajax_data)
$.ajax({
type: 'POST',
data: JSON.stringify(ajax_data),
url: 'http://127.0.0.1:' + config.iguanaPort
}).then(function(data) {
//console.log(data);
res_data = JSON.parse(data);
//console.log(res_data);
resolve(res_data);
}).fail(function(xhr, textStatus, error) {
// handle request failures
console.log(xhr.statusText);
if ( xhr.readyState == 0 ) {
}
console.log(textStatus);
console.log(error);
});
/*var AjaxOutputData = IguanaAJAX('http://127.0.0.1:' + config.iguanaPort, ajax_data).done(function(data) {
AjaxOutputData = JSON.parse(AjaxOutputData.responseText)
resolve(AjaxOutputData);
}).fail(function(xhr, textStatus, error) {
// handle request failures
console.log(xhr.statusText);
if ( xhr.readyState == 0 ) {
}
console.log(textStatus);
console.log(error);
});*/
});
}
function EDEXgetaddrbyaccount_cache(coin) {
return new Promise((resolve) => {
Shepherd_GetBasiliskCache().then(function(result) {
var _data = JSON.parse(result),
query = _data.result.basilisk,
tmp_addr_label = '<span class="label label-default">' +
'<i class="icon fa-eye"></i> ' + _lang[defaultLang].IAPI.PUBLIC_SM +
'</span>',
active_edexcoinmodecode = sessionStorage.getItem('edexTmpMode');
//console.log(query[coin].addresses)
Promise.all(query[coin].addresses.map((coinaddr_value, coinaddr_index) => {
return new Promise((resolve, reject) => {
//console.log(coinaddr_index);
//console.log(coinaddr_value);
coinaddr_balances = query[coin][coinaddr_value].getbalance.data;
if (coinaddr_balances.interest !== undefined) {
var pass_data = {
'label': tmp_addr_label,
'addr': coinaddr_value,
'total': coinaddr_balances.balance.toFixed(8),
'interest': coinaddr_balances.interest.toFixed(8)
};
}
if (coinaddr_balances.interest == undefined) {
var pass_data = {
'label': tmp_addr_label,
'addr': coinaddr_value,
'total': coinaddr_balances.balance.toFixed(8)
};
}
//console.log(pass_data);
resolve(pass_data);
});
}))
.then(result => {
//console.log(result);
resolve(result);
});
});
});
}
function EDEXgetaddrbyaccount(coin) {
return new Promise((resolve) => {
var tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
ajax_data = {
'userpass': tmpIguanaRPCAuth,
'coin': coin,
'agent': 'bitcoinrpc',
'method': 'getaddressesbyaccount',
'account': '*'
},
tmp_addr_label = '<span class="label label-default">' +
'<i class="icon fa-eye"></i> ' + _lang[defaultLang].IAPP.PUBLIC_SM +
'</span>';
active_edexcoinmodecode = sessionStorage.getItem('edexTmpMode');
var AjaxOutputData = IguanaAJAX('http://127.0.0.1:' + config.iguanaPort, ajax_data).done(function(data) {
data = JSON.parse(AjaxOutputData.responseText);
console.log(data);
if (active_edexcoinmodecode == 'Basilisk' &&
coin !== 'BTC' &&
coin !== 'BTCD' &&
coin !== 'LTC' &&
coin !== 'DOGE' &&
coin !== 'DGB' &&
coin !== 'SYS' &&
coin !== 'MZC' &&
coin !== 'UNO' &&
coin !== 'ZET' &&
coin !== 'BTM' &&
coin !== 'CARB' &&
coin !== 'ANC' &&
coin !== 'FRK' ) {
Promise.all(data.result.map((coinaddr_value, coinaddr_index) => {
let params = {
'userpass': tmpIguanaRPCAuth,
'agent': 'dex',
'method': 'getbalance',
'address': coinaddr_value,
'symbol': coin
};
console.log(params);
return new Promise((resolve, reject) => {
$.ajax({
data: JSON.stringify(params),
url: 'http://127.0.0.1:' + config.iguanaPort,
type: 'POST',
dataType: 'json'
}).then(data => {
if (data.interest !== undefined) {
var pass_data = {
'label': tmp_addr_label,
'addr': coinaddr_value,
'total': data.balance.toFixed(8),
'interest': data.interest.toFixed(8)
};
}
if (data.interest == undefined) {
var pass_data = {
'label': tmp_addr_label,
'addr': coinaddr_value,
'total': data.balance.toFixed(8)
};
}
resolve(pass_data);
});
});
})).then(result => {
resolve(result);
NProgress.done();
});
} else if (active_edexcoinmodecode == 'Basilisk' ) {
Promise.all(data.result.map((coinaddr_value, coinaddr_index) => {
let params = {
'userpass': tmpIguanaRPCAuth,
'agent': 'dex',
'method': 'listunspent',
'address': coinaddr_value,
'symbol': coin
};
console.log(params)
return new Promise((resolve, reject) => {
$.ajax({
data: JSON.stringify(params),
url: 'http://127.0.0.1:' + config.iguanaPort,
type: 'POST',
dataType: 'json'
})
.then(data => {
console.log(coinaddr_value);
console.log(data);
if (data.error === 'less than required responses') {
toastr.error(_lang[defaultLang].TOASTR.LESS_RESPONSES_REQ, _lang[defaultLang].TOASTR.BASILISK_NOTIFICATION);
}
var tmpcalcnum = 0;
$.each(data, function(index) {
tmpcalcnum = tmpcalcnum + data[index].amount;
});
var tmp_addr_total_balance_output = {
'label': tmp_addr_label,
'addr': coinaddr_value,
'total': tmpcalcnum.toFixed(8)
};
console.log(tmp_addr_total_balance_output);
if (data == '' ) {
tmp_addr_total_balance_output = {
'label': tmp_addr_label,
'addr': coinaddr_value,
'total': 0
};
}
resolve(tmp_addr_total_balance_output);
});
});
})).then(result => {
resolve(result);
NProgress.done();
});
}
if (active_edexcoinmodecode == 'Full' &&
coin !== 'BTC' &&
coin !== 'BTCD' &&
coin !== 'LTC' &&
coin !== 'DOGE' &&
coin !== 'DGB' &&
coin !== 'SYS' &&
coin !== 'MZC' &&
coin !== 'UNO' &&
coin !== 'ZET' &&
coin !== 'BTM' &&
coin !== 'CARB' &&
coin !== 'ANC' &&
coin !== 'FRK' ) {
Promise.all(data.result.map((coinaddr_value, coinaddr_index) => {
return new Promise((resolve, reject) => {
EDEXlistunspent(coin, coinaddr_value).then(function(data) {
var pass_data;
console.log(data);
if (data.length !== 0) {
if (data[0].interest !== undefined) {
pass_data = {
'label': tmp_addr_label,
'addr': coinaddr_value,
'total': data[0].total,
'interest': data[0].interest
};
}
if (data[0].interest == undefined) {
pass_data = {
'label': tmp_addr_label,
'addr': coinaddr_value,
'total': data[0].total
};
}
} else {
pass_data = {
'label': tmp_addr_label,
'addr': coinaddr_value,
'total': 0.00000000
};
}
console.log(pass_data);
resolve(pass_data);
});
});
})).then(result => {
console.log(result);
resolve(result);
NProgress.done();
});
}
}).fail(function(xhr, textStatus, error) {
// handle request failures
console.log(xhr.statusText);
if ( xhr.readyState == 0 ) {
}
console.log(textStatus);
console.log(error);
})
});
}
function EDEXgetnewaddress(coin) {
return new Promise((resolve) => {
var tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
ajax_data = {
'userpass': tmpIguanaRPCAuth,
'coin': coin,
'agent': 'bitcoinrpc',
'method': 'getnewaddress',
'account': ''
},
AjaxOutputData = IguanaAJAX('http://127.0.0.1:' + config.iguanaPort, ajax_data).done(function(data) {
AjaxOutputData = JSON.parse(AjaxOutputData.responseText);
resolve(AjaxOutputData.result);
}).fail(function(xhr, textStatus, error) {
// handle request failures
console.log(xhr.statusText);
if ( xhr.readyState == 0 ) {
}
console.log(textStatus);
console.log(error);
});
});
}
function EDEXimportprivkey(params_data) {
return new Promise((resolve) => {
var tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
ajax_data = {
'userpass': tmpIguanaRPCAuth,
'method': 'importprivkey',
'params': [
params_data,
'imported'
]
},
AjaxOutputData = IguanaAJAX('http://127.0.0.1:' + config.iguanaPort, ajax_data).done(function(data) {
AjaxOutputData = JSON.parse(AjaxOutputData.responseText);
resolve(AjaxOutputData);
}).fail(function(xhr, textStatus, error) {
// handle request failures
console.log(xhr.statusText);
if ( xhr.readyState == 0 ) {
}
console.log(textStatus);
console.log(error);
});
})
}
function EDEX_ProcessRefreshData(gettxdata,refreshdata){
//console.log(gettxdata);
//console.log(refreshdata);
return new Promise((resolve, reject) => {
Promise.all(gettxdata.vin.map((vin_value,vin_index) => {
//console.log(vin_index);
//console.log(vin_value);
return new Promise((resolve, reject) => {
Promise.all(refreshdata.map((refresh_value,refresh_index) => {
//console.log(refresh_index);
//console.log(refresh_value);
if (refreshdata[refresh_index] !== undefined && refresh_value.txid == vin_value.txid) {
delete refreshdata[refresh_index];
refreshdata = refreshdata;
resolve(refreshdata);
}
}));
});
}))
.then(result=>{
var res_data = result[result.length - 1],
refresh_final = [];
//console.log(res_data);
$.each(res_data,function(index){
if(res_data[index] !== undefined) {
refresh_final.push(res_data[index]);
}
})
//console.log(refresh_final)
resolve(refresh_final);
});
})
}
function EDEX_GetTxIDList(gettxdata) {
return new Promise((resolve, reject) => {
get_txid_list = []
$.each(gettxdata.vin, function(vin_index, vin_value) {
//console.log(vin_index)
//console.log(vin_value)
get_txid_list.push(vin_value.txid)
})
//console.log(get_txid_list)
resolve(get_txid_list);
})
}
function EDEX_RemoveTXID(_obj, txidArray) {
var txidToStr = txidArray.join(':');
console.log(txidToStr);
if (_obj, _obj.basilisk) {
if (Object.keys(_obj.basilisk).length === 0) {
console.log('no coin nodes to parse');
} else {
for (var key in _obj.basilisk) {
for (var coinAddr in _obj.basilisk[key]) {
if (_obj.basilisk[key][coinAddr] !== 'addresses') {
if (_obj.basilisk[key][coinAddr].refresh &&
_obj.basilisk[key][coinAddr].refresh.data &&
_obj.basilisk[key][coinAddr].refresh.data.length > 0) {
for (var i = 0; i < _obj.basilisk[key][coinAddr].refresh.data.length; i++) {
if (txidToStr.indexOf(_obj.basilisk[key][coinAddr].refresh.data[i].txid) > -1) {
_obj.basilisk[key][coinAddr].refresh.data.splice(i, 1);
}
}
}
}
}
}
}
} else {
console.log('basilisk node is missing');
}
return _obj;
}