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.
276 lines
7.3 KiB
276 lines
7.3 KiB
function getDEXCoinBalance(coin) {
|
|
getDEXGetBalance_cache(coin).then(function(result) {
|
|
console.log(result)
|
|
});
|
|
}
|
|
|
|
function getDEXGetBalance(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_2 = {
|
|
'userpass': tmpIguanaRPCAuth,
|
|
'coin': coin,
|
|
'agent': 'bitcoinrpc',
|
|
'method': 'getaddressesbyaccount',
|
|
'account': '*'
|
|
};
|
|
|
|
$.ajax({
|
|
data: JSON.stringify(ajax_data_2),
|
|
url: 'http://127.0.0.1:' + config.iguanaPort,
|
|
type: 'POST',
|
|
dataType: 'json'
|
|
})
|
|
.then(data => {
|
|
var total_balance = 0,
|
|
total_interest = 0;
|
|
|
|
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 => {
|
|
console.log(data);
|
|
total_balance = total_balance + data.balance;
|
|
|
|
if (data.interest !== undefined) {
|
|
total_interest = total_interest + data.interest;
|
|
pass_data = {
|
|
'total': total_balance.toFixed(8),
|
|
'interest': total_interest.toFixed(8)
|
|
}
|
|
}
|
|
|
|
if (data.interest == undefined) {
|
|
pass_data = { 'total': total_balance };
|
|
}
|
|
|
|
console.log(pass_data);
|
|
resolve(pass_data);
|
|
});
|
|
});
|
|
}))
|
|
.then(result => {
|
|
resolve(result[result.length - 1]);
|
|
NProgress.done();
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
function getDEXGetBalance_cache(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) => {
|
|
Shepherd_CheckBasiliskCacheData(coin)
|
|
.then(function(result) {
|
|
//console.log(result);
|
|
//console.log(result.coin);
|
|
|
|
if (result.coin == false || result.addresses == false) {
|
|
var call_data = {
|
|
'allcoins': false,
|
|
'coin': coin,
|
|
'calls': 'listtransactions:getbalance:refresh'
|
|
};
|
|
//console.log(call_data)
|
|
Shepherd_FetchBasiliskData(call_data)
|
|
.then(function(result) {
|
|
console.log(result);
|
|
});
|
|
} else if (result.getbalance == false) {
|
|
var call_data = {
|
|
'allcoins': false,
|
|
'coin': coin,
|
|
'calls': 'getbalance:listtransactions'
|
|
};
|
|
//console.log(call_data);
|
|
Shepherd_FetchBasiliskData(call_data).then(function(result) {
|
|
console.log(result);
|
|
});
|
|
}
|
|
})
|
|
|
|
Shepherd_GetBasiliskCache()
|
|
.then(function(result) {
|
|
var _data = JSON.parse(result),
|
|
query = _data.result.basilisk,
|
|
total_balance = 0,
|
|
total_interest = 0;
|
|
|
|
Promise.all(query[coin].addresses.map((coinaddr_value, coinaddr_index) => {
|
|
return new Promise((resolve, reject) => {
|
|
if ( query[coin][coinaddr_value].getbalance.data !== undefined ) {
|
|
var data = query[coin][coinaddr_value].getbalance.data;
|
|
|
|
total_balance = parseFloat(total_balance) + parseFloat(data.balance);
|
|
if (data.interest !== undefined) {
|
|
total_interest = parseFloat(total_interest) + parseFloat(data.interest);
|
|
total_final = parseFloat(total_balance) + parseFloat(total_interest);
|
|
pass_data = {
|
|
'total': total_balance.toFixed(8),
|
|
'interest': total_interest.toFixed(8),
|
|
'totalbalance': total_final.toFixed(8)
|
|
};
|
|
}
|
|
if (data.interest == undefined) {
|
|
if (isNaN(total_balance)) {
|
|
total_balance = parseFloat(0);
|
|
}
|
|
pass_data = { 'total': total_balance.toFixed(8) };
|
|
}
|
|
} else {
|
|
pass_data = { 'total': 0.00000000 };
|
|
}
|
|
|
|
resolve(pass_data);
|
|
});
|
|
}))
|
|
.then(result => {
|
|
if ( result[result.length - 1].total == 0 ) {
|
|
resolve(result[result.length - 2]);
|
|
} else {
|
|
resolve(result[result.length - 1]);
|
|
}
|
|
|
|
NProgress.done();
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
function getDEXGetBalance2(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_1 = {
|
|
'userpass': tmpIguanaRPCAuth,
|
|
'agent': 'SuperNET',
|
|
'method': 'activehandle'
|
|
},
|
|
tmp_coin_addr = null
|
|
ajax_call_1 = $.ajax({
|
|
data: JSON.stringify(ajax_data_1),
|
|
url: 'http://127.0.0.1:' + config.iguanaPort,
|
|
type: 'POST',
|
|
dataType: 'json'
|
|
}),
|
|
ajax_call_2 = ajax_call_1.then(function(data) {
|
|
// .then() returns a new promise
|
|
tmp_coin_addr = data[coin];
|
|
|
|
var ajax_data_2 = {
|
|
'userpass': tmpIguanaRPCAuth,
|
|
'agent': 'dex',
|
|
'method': 'listunspent',
|
|
'address': data[coin],
|
|
'symbol': coin
|
|
};
|
|
|
|
return $.ajax({
|
|
data: JSON.stringify(ajax_data_2),
|
|
url: 'http://127.0.0.1:' + config.iguanaPort,
|
|
type: 'POST',
|
|
dataType: 'json'
|
|
});
|
|
});
|
|
|
|
ajax_call_2.done(function(data) {
|
|
console.log(data);
|
|
if (data.error === 'less than required responses') {
|
|
toastr.error(_lang[defaultLang].TOASTR.LESS_RESPONSES_REQ, _lang[defaultLang].BASILISK_NOTIFICATION);
|
|
}
|
|
|
|
var tmpcalcnum = 0,
|
|
tmpcalcinterest = 0,
|
|
interest_enable = false,
|
|
tmptotalbalance = 0;
|
|
|
|
$.each(data, function(index) {
|
|
if ( data[index].interest !== undefined ) {
|
|
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': tmp_coin_addr,
|
|
'total': tmpcalcnum.toFixed(8),
|
|
'interest': tmpcalcinterest.toFixed(8),
|
|
'totalbalance': tmptotalbalance.toFixed(8)
|
|
};
|
|
}
|
|
if ( coin !== 'KMD' ) {
|
|
var tmp_addr_total_balance_output = {
|
|
'addr': tmp_coin_addr,
|
|
'total': tmpcalcnum.toFixed(8)
|
|
};
|
|
}
|
|
console.log(tmp_addr_total_balance_output);
|
|
|
|
if (data == '' ) {
|
|
tmp_addr_total_balance_output = {
|
|
'addr': tmp_coin_addr,
|
|
'total': 0
|
|
};
|
|
}
|
|
|
|
resolve(tmp_addr_total_balance_output)
|
|
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);
|
|
});
|
|
});
|
|
}
|