BarterDEX/gui/js/simpledexactions.js

2793 lines
88 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*** Simple GUI JS ***/
var CheckOrderbook_Interval = null;
var CheckPortfolio_Interval = null;
var check_coin_balance_Interval = null;
var check_swap_status_Internal = null;
var check_my_prices_Internal = null;
var check_bot_list_Internal = null;
var bot_screen_coin_balance_Internal = null;
/*$.each($('.pair-one[data-coin]'), function(index, value) {
$('.pair-one[data-coin]').attr('data-coin', coin_pair[0]);
});
$.each($('.pair-two[data-coin]'), function(index, value) {
$('.pair-two[data-coin]').attr('data-coin', coin_pair[1]);
});*/
$(document).ready(function() {
var mmstatus = ShepherdIPC({"command":"mmstatus"});
if (mmstatus !== 'closed') {
$('.mainbody').show();
$('.loginbody').hide();
//check_coin_balance_Interval = setInterval(check_coin_balance,3000);
//check_coin_balance();
CheckPortfolio_Interval = setInterval(CheckPortfolioFn,60000);
CheckPortfolioFn();
} else {
$('.mainbody').hide();
$('.loginbody').show();
}
//$('.set_goal_label_portfolio').html($('.sell_coin_p').selectpicker('val'));
});
$('.porfolio_coins_list tbody').on('click', '.btn-portfoliogo', function() {
console.log('portfolio coin button clicked')
console.log($(this).data());
console.log($(this).data('coin'));
$('.screen-portfolio').hide();
$('.screen-coindashboard').show()
coin = $(this).data('coin');
$.each($('.coindashboard[data-coin]'), function(index, value) {
$('.coindashboard[data-coin]').attr('data-coin', coin);
});
$.each($('.coinexchange[data-coin]'), function(index, value) {
//$('.coinexchange[data-coin]').attr('data-coin', coin);
$('.coinexchange[data-coin]').data('coin', coin);
});
selected_coin = {}
selected_coin.coin = $(this).data('coin');
selected_coin.coin_name = $(this).data('coinname');
selected_coin.addr = $(this).data('addr');
selected_coin.balance = $(this).data('balance');
console.log(selected_coin);
sessionStorage.setItem('mm_selectedcoin', JSON.stringify(selected_coin));
CheckPortfolioFn(false);
check_coin_balance_Interval = setInterval(check_coin_balance($(this).data()),3000);
});
$('.btn-activatecoins').click(function(e){
e.preventDefault();
console.log('btn-activatecoins clicked');
console.log($(this).data());
addcoins_dialog();
//$('.screen-portfolio').hide();
//$('.screen-addcoins').show();
//CheckPortfolioFn(false);
//get_coins_list();
})
/*$('.btn-addcoinsclose').click(function(e){
e.preventDefault();
console.log('btn-addcoinsclose clicked');
console.log($(this).data());
$('.screen-portfolio').show();
$('.screen-addcoins').hide();
CheckPortfolioFn();
CheckPortfolio_Interval = setInterval(CheckPortfolioFn,60000);
});
$('.btn-addcoinsrefresh').click(function(e){
e.preventDefault();
console.log('btn-addcoinsrefresh clicked');
console.log($(this).data());
get_coins_list()
});*/
$('.addcoins_tbl tbody').on('click', '.addcoins_tbl_disable_btn', function() {
console.log('Disable this coin:' + $(this).data('coin'));
var refresh_data = {"coin":$(this).data('coin'), "status": "disable"};
//enable_disable_coin(refresh_data)
//$('.selectpicker option').filter(function () { return $(this).html() == $(this).data('coin'); }).attr("disabled","disabled");
//$('.selectpicker').selectpicker('refresh');
});
$('.addcoins_tbl tbody').on('click', '.addcoins_tbl_enable_btn', function() {
console.log('Enable this coin:' + $(this).data('coin'));
var refresh_data = {"coin":$(this).data('coin'), "status": "enable"};
//enable_disable_coin(refresh_data)
//$('.selectpicker option').filter(function () { return $(this).html() == $(this).data('coin'); }).removeAttr('disabled');
//$('.selectpicker').selectpicker('refresh');
});
$('.btn_coindashboard_back').click(function(){
console.log('btn_coindashboard_back clicked');
console.log($(this).data());
$('.screen-portfolio').show();
$('.screen-coindashboard').hide()
check_coin_balance(false);
CheckPortfolioFn();
CheckPortfolio_Interval = setInterval(CheckPortfolioFn,60000);
});
$('.btn_coindashboard_receive').click(function() {
console.log('btn-receive clicked');
console.log($(this).data());
coin = $(this).data('coin');
var coin_name = return_coin_name(coin);
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"getcoin","coin": coin};
var url = "http://127.0.0.1:7783";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
}
bootbox.dialog({
//title: 'A custom dialog with init',
message: '<div style="text-align: center; margin-top: -40px;"><img src="img/cryptologo/'+coin+'.png" style="border: 10px solid #fff;border-radius: 50px; background: #fff;"/></div><div style="text-align: center;"><div id="receive_addr_qrcode"></div><pre style="font-size: 18px;">'+data.coin.smartaddress+'</pre class="receive_addr_qrcode_addr"></div>'
});
var qrcode = new QRCode("receive_addr_qrcode");
qrcode.makeCode(data.coin.smartaddress); // make another code.
$('#receive_addr_qrcode > img').removeAttr('style');
$('#receive_addr_qrcode > img').css('display', 'initial');
$('#receive_addr_qrcode > img').css('border', '9px solid #f1f1f1','border-radius','5px','margin', '5px');
$('#receive_addr_qrcode > img').css('border-radius','5px');
$('#receive_addr_qrcode > img').css('margin', '5px');
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
})
$('.btn_coindashboard_enable').click(function() {
console.log('btn-enable clicked');
//console.log($(this).data());
var electrum_option = $('#coindashboard-toggle').prop('checked');
//console.log(electrum_option);
var enable_data = $(this).data();
enable_data['electrum'] = electrum_option;
//console.log(enable_data);
enable_disable_coin(enable_data);
});
$('.btn_coindashboard_disable').click(function() {
console.log('btn-disable clicked');
//console.log($(this).data());
var electrum_option = $('#coindashboard-toggle').prop('checked');
//console.log(electrum_option);
var enable_data = $(this).data();
enable_data['electrum'] = electrum_option;
//console.log(enable_data);
enable_disable_coin(enable_data);
});
$('.btn_coindashboard_send').click(function(e) {
e.preventDefault();
console.log('btn-send clicked');
console.log($(this).data());
$('.screen-coindashboard').hide()
$('.screen-sendcoin').show();
check_coin_balance(false);
$('.sendcoin-title').html('Send ('+$('.coindashboard-balance').html()+' '+$(this).data('coin')+')');
$('.sendcoin-title').data('coin', $(this).data('coin'));
});
$('.btn-sendcoin').click(function(e){
e.preventDefault();
console.log('btn-sendcoin clicked');
//console.log($(this).data());
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin = selected_coin.coin;
console.log(coin);
var to_addr = $('#send-toaddr').val();
var send_amount = $('#send-amount').val();
//console.log(to_addr);
//console.log(send_amount);
var output_data = {};
output_data[to_addr] = send_amount;
//console.log(output_data);
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"withdraw","coin": coin, "outputs": [output_data]};
var url = "http://127.0.0.1:7783";
console.log(ajax_data);
var a1= $.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}),
a2 = a1.then(function(data) {
// .then() returns a new promise
console.log(data);
if (data.complete == false) {
toastr.error('Uncessful Transaction. Please try again.','Tansaction info');
}
if (data.complete == true) {
bootbox.confirm({
message: `<b>Send</b>: `+send_amount+` `+ajax_data.coin+`<br>
<b>To</b>: `+to_addr+`<br>`,
buttons: {
confirm: {
label: 'Confirm',
className: 'btn-primary'
},
cancel: {
label: 'Cancel',
className: 'btn-default'
}
},
callback: function (result) {
console.log('This was logged in the callback: ' + result);
if (result == true) {
var ajax_data2 = {"userpass":userpass,"method":"sendrawtransaction","coin": coin, "signedtx": data.hex};
console.log(ajax_data2);
toastr.info('Transaction Executed', 'Transaction Status');
$.ajax({
async: true,
data: JSON.stringify(ajax_data2),
dataType: 'json',
type: 'POST',
url: url
})
} else {
console.log('Sending Transaction operation canceled.');
return {'output': 'canceled'};
}
}
});
}
});
a2.done(function(data) {
console.log(data);
});
});
$('.btn-sendcoinclose').click(function(e) {
e.preventDefault();
console.log('btn-sendcoinclose clicked');
console.log($(this).data());
$('.screen-coindashboard').show()
$('.screen-sendcoin').hide();
$('#send-toaddr').val('');
$('#send-amount').val('');
check_coin_balance_Interval = setInterval(check_coin_balance,3000);
});
$('.btn_coindashboard_inventory').click(function(e) {
e.preventDefault();
console.log('btn-inventory clicked');
console.log($(this).data());
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin = selected_coin.coin;
console.log(coin);
$('.screen-coindashboard').hide()
$('.screen-inventory').show();
check_coin_balance(false);
$('.inventory-title').html('Manage Inventory ('+$('.coindashboard-balance').html()+' '+coin+')');
$('.inventory-title').data('coin', coin);
$('.coininventory[data-coin]').attr('data-coin', coin);
//$('.coininventory[data-coin]').attr('data-pair', $(this).data('pair'));
$('.coininventory[data-coin]').attr('data-addr', selected_coin.addr);
$('.inventory-sliderTotalCoin').html(' '+coin);
$('.dex_showinv_alice_tbl tbody').html('<th><div style="text-align: center;">Loading...</div></th>');
$('.dex_showlist_unspents_tbl tbody').html('<th><div style="text-align: center;">Loading...</div></th>');
check_coin_inventory(coin);
check_coin_listunspent($(this).data());
calc_data = {"coin": coin, "balance": $('.coindashboard-balance').html()};
clac_coin_inventory(calc_data);
});
$('.btn-inventoryclose').click(function(e) {
e.preventDefault();
console.log('btn-inventoryclose clicked');
//console.log($(this).data());
$('.screen-coindashboard').show()
$('.screen-inventory').hide();
$('.dex_showinv_alice_tbl tbody').empty();
$('.dex_showlist_unspents_tbl tbody').empty();
$('.RawJSONInventory-output').empty();
check_coin_balance_Interval = setInterval(check_coin_balance,3000);
});
$('.btn-inventoryrefresh').click(function(e) {
e.preventDefault();
console.log('btn-inventoryrefresh clicked');
console.log($(this).data());
$('.dex_showinv_alice_tbl tbody').html('<th><div style="text-align: center;">Loading...</div></th>');
$('.dex_showlist_unspents_tbl tbody').html('<th><div style="text-align: center;">Loading...</div></th>');
check_coin_inventory($(this).data('coin'));
check_coin_listunspent($(this).data());
});
$('.dex_showinv_alice_tbl tbody').on('click', '.btn_coiniventory_detail', function() {
//console.log($(this).data());
var index = $(this).data('index');
var coininventory = sessionStorage.getItem('mm_coininventory');
coininventory = JSON.parse(coininventory);
console.log(coininventory.alice[index]);
bootbox.dialog({
message: `
<table class="table table-striped">
<tbody>
<tr>
<th rowspan="13" style="width: 30px;">` + index + `</th>
<th>method</th>
<th>` + coininventory.alice[index].method + `</th>
</tr>
<tr>
<td>gui</td>
<td>` + coininventory.alice[index].gui + `</td>
</tr>
<tr>
<td>coin</td>
<td>` + coininventory.alice[index].coin + `</td>
</tr>
<tr>
<td>iambob</td>
<td>` + coininventory.alice[index].iambob + `</td>
</tr>
<tr>
<td>address</td>
<td>` + coininventory.alice[index].address + `</td>
</tr>
<tr>
<td>txid</td>
<td>` + coininventory.alice[index].txid + `</td>
</tr>
<tr>
<td>vout</td>
<td>` + coininventory.alice[index].vout + `</td>
</tr>
<tr>
<td>value</td>
<td>` + (parseFloat(coininventory.alice[index].value)/100000000).toFixed(8) + ` ` + coininventory.alice[index].coin + `</td>
</tr>
<tr>
<td>satoshis</td>
<td>` + coininventory.alice[index].satoshis + `</td>
</tr>
<tr>
<td>txid2</td>
<td>` + coininventory.alice[index].txid2 + `</td>
</tr>
<tr>
<td>vout2</td>
<td>` + coininventory.alice[index].vout2 + `</td>
</tr>
<tr>
<td>value2</td>
<td>` + (parseFloat(coininventory.alice[index].value2)/100000000).toFixed(8) + ` ` + coininventory.alice[index].coin + `</td>
</tr>
<tr>
<td>desthash</td>
<td>` + coininventory.alice[index].desthash + `</td>
</tr>
</tbody>
</table>`,
closeButton: true,
size: 'large'
});
});
$('.btn-makeinventory').click(function(e) {
e.preventDefault();
console.log('btn-makeinventory clicked');
//console.log($(this).data());
utxo_input1 = $("#inventory_slider_input1").val();
utxo_input2 = $("#inventory_slider_input2").val();
utxo_input3 = $("#inventory_slider_input3").val();
//console.log(utxo_input1);
//console.log(utxo_input2);
//console.log(utxo_input3);
var slider_input1 = $('#inventory-slider1').val();
var slider_input2 = $('#inventory-slider2').val();
var slider_input3 = $('#inventory-slider3').val();
//console.log(slider_input1);
//console.log(slider_input2);
//console.log(slider_input3);
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin_addr = selected_coin.addr;
console.log(coin_addr);
var withdraw_outputs = []
for(var i=0; i < slider_input1; i++){
var tmp_json = {}
tmp_json[coin_addr] = utxo_input1
//console.log(tmp_json)
withdraw_outputs.push(tmp_json)
}
for(var i=0; i < slider_input2; i++){
var tmp_json = {}
tmp_json[coin_addr] = utxo_input2
withdraw_outputs.push(tmp_json)
}
for(var i=0; i < slider_input3; i++){
var tmp_json = {}
tmp_json[coin_addr] = utxo_input3
withdraw_outputs.push(tmp_json)
}
//console.log(withdraw_outputs);
inventory_data = {};
inventory_data['coin'] = $(this).data('coin');
inventory_data['outputs'] = withdraw_outputs;
console.log(inventory_data);
make_inventory_withdraw(inventory_data);
});
$('.btn_coindashboard_exchange').click(function(e) {
e.preventDefault();
console.log('btn_coindashboard_exchange clicked');
console.log($(this).data());
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
console.log(selected_coin);
var coin = selected_coin.coin;
$('.screen-coindashboard').hide()
$('.screen-exchange').show();
$('.coin_ticker').html(coin);
$.each($('.coinexchange[data-coin]'), function(index, value) {
//$('.coinexchange[data-coin]').attr('data-coin', coin);
$('.coinexchange[data-coin]').data('coin', coin);
});
/*$('.btn-exchangeclose').attr('data-coin', coin);
$('.btn-exchangerefresh').attr('data-coin', coin);
$('.btn-myordersrefresh').attr('data-coin', coin);
$('.btn-botlistrefresh').attr('data-coin', coin);
$('.btn-refreshtrading_pair').attr('data-coin', coin);*/
check_coin_balance(false);
CheckOrderbook_Interval = setInterval(CheckOrderBookFn,3000);
check_swap_status_Internal = setInterval(check_swap_status,10000);
check_swap_status();
check_bot_list_Internal = setInterval(check_bot_list, 60000);
check_bot_list();
check_my_prices_Internal = setInterval(check_my_prices, 60000);
check_my_prices();
bot_screen_coin_balance_Internal = setInterval(bot_screen_coin_balance, 30000);
bot_screen_coin_balance();
});
$('.btn-exchangeclose').click(function(e){
e.preventDefault();
console.log('btn-exchangeclose clicked');
console.log($(this).data());
$('.screen-coindashboard').show()
$('.screen-exchange').hide();
CheckOrderBookFn(false);
check_swap_status(false);
check_bot_list(false);
check_my_prices(false);
bot_screen_coin_balance(false);
check_coin_balance_Interval = setInterval(check_coin_balance(),3000);
check_coin_balance();
});
$('.btn-exchangerefresh').click(function(e){
e.preventDefault();
console.log('btn-exchangerefresh clicked');
console.log($(this).data());
CheckOrderBookFn();
});
$('.btn-myordersrefresh').click(function(e){
e.preventDefault();
console.log('btn-myordersrefresh clicked');
console.log($(this).data());
check_my_prices();
});
$('.btn-botlistrefresh').click(function(e){
e.preventDefault();
console.log('btn-botlistrefresh clicked');
console.log($(this).data());
check_bot_list();
});
$('.btn-bot_action').click(function(e){
e.preventDefault();
console.log('btn-botlistrefresh clicked');
console.log($(this).data());
console.log($(this).data('action'));
pair_price = $('.trading_pair_coin_price').val();
pair_volume = $('.trading_pair_coin_volume').val();
bot_data = {}
bot_data.price = pair_price;
bot_data.volume = pair_volume;
bot_data.action = $(this).data('action');
console.log(bot_data);
bot_buy_sell(bot_data);
});
$('.exchange_bot_list_tbl tbody').on('click', '.btn_bot_status', function() {
console.log('bot status button clicked')
console.log($(this).data());
bot_status($(this).data());
});
$('.exchange_bot_list_tbl tbody').on('click', '.btn_bot_resume', function() {
console.log('bot resume button clicked')
console.log($(this).data());
bot_stop_pause_resume($(this).data());
});
$('.exchange_bot_list_tbl tbody').on('click', '.btn_bot_pause', function() {
console.log('bot pause button clicked')
console.log($(this).data());
bot_stop_pause_resume($(this).data());
});
$('.exchange_bot_list_tbl tbody').on('click', '.btn_bot_stop', function() {
console.log('bot stop button clicked')
console.log($(this).data());
bot_stop_pause_resume($(this).data());
});
$('.btn-trading_coin_balance_refresh').click(function(e){
e.preventDefault();
console.log('btn-trading_coin_balance_refresh clicked');
console.log($(this).data());
bot_screen_coin_balance();
})
function check_coin_balance(coin_data) {
console.log(coin_data);
if (coin_data == false) {
clearInterval(check_coin_balance_Interval);
console.log('checking coin balance stopped.')
return
} else {
console.log('checking coin balance');
}
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
console.log(selected_coin);
var coin = selected_coin.coin;
console.log(coin);
//if (((coin_data == null) ? coin : coin_data.coin) == 'BTC') {
if (coin == 'BTC') {
$('#coindashboard-toggle').bootstrapToggle('enable');
} else {
$('#coindashboard-toggle').bootstrapToggle('disable');
}
$('.coindashboard-title').empty();
$('.coindashboard-coin').empty();
$('.coindashboard-balance').empty();
$('.coindashboard-address[data-coin="' + coin + '"]').empty();
$(".coindashboard-coinicon").attr("src","img/cryptologo/" + coin.toLowerCase() + ".png");
var coin_name = return_coin_name(coin);
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"getcoin","coin": coin};
var url = "http://127.0.0.1:7783";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
//console.log(data);
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
}
if (!data.error === false && data.error == 'coin is disabled') {
console.log(data.coin);
console.log('coin '+ data.coin.coin + ' is disabled');
$('.btn_coindashboard_send[data-coin="' + data.coin.coin + '"]').hide();
$('.btn_coindashboard_receive[data-coin="' + data.coin.coin + '"]').hide();
$('.btn_coindashboard_exchange[data-coin="' + data.coin.coin + '"]').hide();
$('.btn_coindashboard_inventory[data-coin="' + data.coin.coin + '"]').hide();
$('.btn_coindashboard_enable[data-coin="' + data.coin.coin + '"]').show();
$('.btn_coindashboard_disable[data-coin="' + data.coin.coin + '"]').hide();
$('.coindashboard-balance').html('Coin is disabled.<br>Please enable before trading ')
$('.coindashboard-balance').css( "font-size", "35px" );
} else {
//console.log(data);
console.log(data.coin);
//console.log(data.coin.smartaddress);
//console.log(val);
$('.btn_coindashboard_send[data-coin="' + data.coin.coin + '"]').show();
$('.btn_coindashboard_receive[data-coin="' + data.coin.coin + '"]').show();
$('.btn_coindashboard_exchange[data-coin="' + data.coin.coin + '"]').show();
$('.btn_coindashboard_inventory[data-coin="' + data.coin.coin + '"]').show();
$('.btn_coindashboard_enable[data-coin="' + data.coin.coin + '"]').hide();
$('.btn_coindashboard_disable[data-coin="' + data.coin.coin + '"]').show();
$('.coindashboard-address[data-coin="' + data.coin.coin + '"]').html(data.coin.smartaddress);
$('.coindashboard-title').html(coin_name + ' (' + data.coin.coin + ')');
$('.coindashboard-coin').html(data.coin.coin);
$('.coindashboard-balance').css( "font-size", "55px" );
$('.coindashboard-balance').html(data.coin.balance);
$('.coindashboard-height').html(data.coin.height);
$('.coindashboard-kmdvalue').html(data.coin.KMDvalue);
$('.btn_coindashboard_inventory[data-addr]').attr('data-addr', data.coin.smartaddress);
}
//if (data.error == 'coin is disabled') {
//console.log('coin '+ val + ' is disabled');
//}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
function get_balance() {
var coin_pair_one = sessionStorage.getItem('coin_pair_one');
var coin_pair_one = JSON.parse(coin_pair_one);
var coin_pair_two = sessionStorage.getItem('coin_pair_two');
var coin_pair_two = JSON.parse(coin_pair_two);
//console.log(coin_pair_one);
//console.log(coin_pair_two);
$.each([coin_pair_one,coin_pair_two], function(index, value) {
//console.log(index);
//console.log(value.coin);
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"balance","coin":value.coin,"address":value.smartaddress};
var url = "http://127.0.0.1:7783";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
//console.log(value.coin);
//console.log(data);
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
}
if (!data.error == true) {
if (index == 0) {
$('.balance.pair-one').css( "font-size", "55px" );
$('.balance.pair-one').html(data.balance);
} else {
$('.balance.pair-two').css( "font-size", "55px" );
$('.balance.pair-two').html(data.balance);
}
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
})
}
function get_coins() {
//console.log(data);
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"getcoins"};
var url = "http://127.0.0.1:7783";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
$.each(data, function(index, val) {
//console.log(index);
//console.log(val);
if (val.status == 'active') {
console.log(index);
console.log(val);
}
});
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
}
//toastr.success('Auto goal setup executed!', 'Portfolio Info')
//$('.initcoinswap-output').html(JSON.stringify(data, null, 2));
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
function enable_disable_coin(data) {
console.log(data);
var electrum_option = data.electrum //If 'false', electrum option selected
var userpass = sessionStorage.getItem('mm_userpass');
var url = "http://127.0.0.1:7783";
if (electrum_option == false) {
console.log(electrum_option);
console.log("electrum selected for " + data.coin);
var ajax_data = {"userpass":userpass,"method":"electrum","coin":data.coin,"ipaddr":"46.4.125.2","port":50001};
} else {
console.log(electrum_option);
console.log("native selected for " + data.coin);
var ajax_data = {"userpass":userpass,"method":data.method,"coin":data.coin};
}
/*if (data.coin !== ' ' ) {
console.log('coin value is not empty');
} else {
console.log('coin value is empty');
}
if (data.coin !== ' ' && data.status == 'enable') {
} else if (data.coin !== ' ' && data.status == 'disable') {
var ajax_data = {"userpass":userpass,"method":data.status,"coin":data.coin};
} else if (data.coin == ' ') {
var ajax_data = {"userpass":userpass,"method":"getcoins"};
}*/
console.log(ajax_data);
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
if (ajax_data.status === 'enable') {
toastr.success(ajax_data.coin+' Enabled','Coin Status');
}
if (ajax_data.status === 'disable') {
toastr.success(ajax_data.coin+' Disabled','Coin Status');
}
//get_coins_list(data.coins);
} else {
//get_coins_list(data);
if (electrum_option == false) {
//get_coins_list('');
//$('.refresh_dex_balances').trigger('click');
} else {
//get_coins_list(data);
}
}
if (!data.error === false) {
//console.log(data.error);
if (data.error == 'couldnt find coin locally installed') { //{error: "couldnt find coin locally installed", coin: "BTC"}
bootbox.alert({
title: "Couldn't find "+data.coin+" locally installed",
message: `<p>It seems you don't have `+data.coin+` wallet installed on your OS. Please check these following points to make sure you have your wallet setup properly:</p>
<ol>
<li>Make sure your wallet is installed properly.</li>
<li>Make sure your wallet is running and synced to network.</li>
<li>Make sure your wallet has proper RPC settings configured in it's configuration file.</li>
<li>If you have all the above covered properly, please logout and then login back and try activating the coin again.</li>
</ol>
<p>If you still having issues activating the your wallet, please get in touch with our support desk.</p>
<ul>
<li><a href="https://support.supernet.org/" target="_blank">https://support.supernet.org</a></li>
</ul>`,
size: 'large'
});
}
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
function check_coin_inventory(coin) {
console.log(coin);
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"inventory","coin":coin};
var url = "http://127.0.0.1:7783";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
//get_coins_list(data.coins);
//$( ".inv_btn[data-coin='"+ coin +"']" ).trigger( "click" );
} else {
sessionStorage.setItem('mm_coininventory', JSON.stringify(data));
$('.RawJSONInventory-output').html(JSON.stringify(data, null, 2));
$('.dex_showinv_alice_tbl tbody').empty();
$.each(data.alice, function(index, val) {
//console.log(index);
//console.log(val);
var inv_alice_table_tr = '';
inv_alice_table_tr += '<tr>';
inv_alice_table_tr += '<th rowspan="2" style="width: 30px;">' + index + '</th>';
inv_alice_table_tr += '<th>coin</th>';
inv_alice_table_tr += '<th>vout1</th>';
inv_alice_table_tr += '<th>value1</th>';
inv_alice_table_tr += '<th>vout2</th>';
inv_alice_table_tr += '<th>value2</th>';
inv_alice_table_tr += '<th></th>';
inv_alice_table_tr += '</tr>';
inv_alice_table_tr += '<tr>';
inv_alice_table_tr += '<td>' + val.coin + '</td>';
inv_alice_table_tr += '<td>' + val.vout + '</td>';
inv_alice_table_tr += '<td>' + (parseFloat(val.value)/100000000).toFixed(8) + ' ' + val.coin + '</td>';
inv_alice_table_tr += '<td>' + val.vout2 + '</td>';
inv_alice_table_tr += '<td>' + (parseFloat(val.value2)/100000000).toFixed(8) + ' ' + val.coin + '</td>';
inv_alice_table_tr += '<td><button class="btn btn-default btn_coiniventory_detail" data-invof="alice" data-index="' + index + '">Detail</button></td>';
inv_alice_table_tr += '</tr>';
$('.dex_showinv_alice_tbl tbody').append(inv_alice_table_tr);
})
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
function check_coin_listunspent(coin_data) {
console.log(coin_data);
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"listunspent","coin":coin_data.coin,"address":coin_data.addr};
var url = "http://127.0.0.1:7783";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
//console.log(data);
$('.dex_showlist_unspents_tbl tbody').empty();
$.each(data, function(index, val) {
//console.log(index);
//console.log(val);
var show_list_unspents_tbl_tr = '';
show_list_unspents_tbl_tr += '<tr>';
show_list_unspents_tbl_tr += '<th style="width: 30px;">Index</th>';
show_list_unspents_tbl_tr += '<th>coin</th>';
show_list_unspents_tbl_tr += '<th>height</th>';
show_list_unspents_tbl_tr += '<th>TX Possition</th>';
show_list_unspents_tbl_tr += '<th>Value</th>';
show_list_unspents_tbl_tr += '<th>TX Hash</th>';
show_list_unspents_tbl_tr += '</tr>';
show_list_unspents_tbl_tr += '<tr>';
show_list_unspents_tbl_tr += '<td>' + index + '</td>';
show_list_unspents_tbl_tr += '<td>' + coin_data.coin + '</td>';
show_list_unspents_tbl_tr += '<td>' + val.height + '</td>';
show_list_unspents_tbl_tr += '<td>' + val.tx_pos + '</td>';
show_list_unspents_tbl_tr += '<td>' + (parseFloat(val.value)/100000000).toFixed(8) + ' ' + coin_data.coin + '</td>';
show_list_unspents_tbl_tr += '<td>' + val.tx_hash + '</td>';
show_list_unspents_tbl_tr += '</tr>';
$('.dex_showlist_unspents_tbl tbody').append(show_list_unspents_tbl_tr);
})
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
$("#inventory_slider_input1").keyup(function(){
var utxo_input = $("#inventory_slider_input1").val();
var slider1_value = $("#inventory-slider1").val();
$("#inventory-slider1Total").text((slider1_value*utxo_input).toFixed(8));
var slider1_total = parseFloat($('#inventory-slider1Total').text());
var slider2_total = parseFloat($('#inventory-slider2Total').text());
var slider3_total = parseFloat($('#inventory-slider3Total').text());
var slider_total = slider1_total + slider2_total + slider3_total;
$('.inventory-sliderTotal').text(slider_total.toFixed(8));
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin_balance = selected_coin.balance;
console.log(coin_balance);
if(slider_total >= coin_balance) {
$('.inventory-sliderTotal').css('color', 'red');
$('.inventory-sliderTotalCoin').css('color', 'red');
$('.btn-makeinventory').attr("disabled", "disabled");
} else if (slider_total < coin_balance) {
$('.inventory-sliderTotal').css('color', '');
$('.inventory-sliderTotalCoin').css('color', '');
$('.btn-makeinventory').removeAttr("disabled");
}
});
$("#inventory_slider_input2").keyup(function(){
utxo_input = $("#inventory_slider_input2").val();
var slider2_value = $("#inventory-slider2").val();
$("#inventory-slider2Total").text((slider2_value*utxo_input).toFixed(8));
var slider1_total = parseFloat($('#inventory-slider1Total').text());
var slider2_total = parseFloat($('#inventory-slider2Total').text());
var slider3_total = parseFloat($('#inventory-slider3Total').text());
var slider_total = slider1_total + slider2_total + slider3_total;
$('.inventory-sliderTotal').text(slider_total.toFixed(8));
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin_balance = selected_coin.balance;
console.log(coin_balance);
if(slider_total >= coin_balance) {
$('.inventory-sliderTotal').css('color', 'red');
$('.inventory-sliderTotalCoin').css('color', 'red');
$('.btn-makeinventory').attr("disabled", "disabled");
} else if (slider_total < coin_balance) {
$('.inventory-sliderTotal').css('color', '');
$('.inventory-sliderTotalCoin').css('color', '');
$('.btn-makeinventory').removeAttr("disabled");
}
});
$("#inventory_slider_input3").keyup(function(){
utxo_input = $("#inventory_slider_input3").val();
var slider3_value = $("#inventory-slider3").val();
$("#inventory-slider3Total").text((slider3_value*utxo_input).toFixed(8));
var slider1_total = parseFloat($('#inventory-slider1Total').text());
var slider2_total = parseFloat($('#inventory-slider2Total').text());
var slider3_total = parseFloat($('#inventory-slider3Total').text());
var slider_total = slider1_total + slider2_total + slider3_total;
$('.inventory-sliderTotal').text(slider_total.toFixed(8));
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin_balance = selected_coin.balance;
console.log(coin_balance);
if(slider_total >= coin_balance) {
$('.inventory-sliderTotal').css('color', 'red');
$('.inventory-sliderTotalCoin').css('color', 'red');
$('.btn-makeinventory').attr("disabled", "disabled");
} else if (slider_total < coin_balance) {
$('.inventory-sliderTotal').css('color', '');
$('.inventory-sliderTotalCoin').css('color', '');
$('.btn-makeinventory').removeAttr("disabled");
}
});
$("#inventory-slider1").slider();
$("#inventory-slider1").on("slide", function(slideEvt) {
$("#inventory-slider1Val").text(slideEvt.value);
utxo_input = $("#inventory_slider_input1").val();
$("#inventory-slider1Total").text((slideEvt.value*utxo_input).toFixed(8));
var slider1_total = parseFloat($('#inventory-slider1Total').text());
var slider2_total = parseFloat($('#inventory-slider2Total').text());
var slider3_total = parseFloat($('#inventory-slider3Total').text());
var slider_total = slider1_total + slider2_total + slider3_total;
$('.inventory-sliderTotal').text(slider_total.toFixed(8));
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin_balance = selected_coin.balance;
console.log(coin_balance);
if(slider_total >= coin_balance) {
$('.inventory-sliderTotal').css('color', 'red');
$('.inventory-sliderTotalCoin').css('color', 'red');
$('.btn-makeinventory').attr("disabled", "disabled");
} else if (slider_total < coin_balance) {
$('.inventory-sliderTotal').css('color', '');
$('.inventory-sliderTotalCoin').css('color', '');
$('.btn-makeinventory').removeAttr("disabled");
}
});
$("#inventory-slider2").slider();
$("#inventory-slider2").on("slide", function(slideEvt) {
$("#inventory-slider2Val").text(slideEvt.value);
utxo_input = $("#inventory_slider_input2").val();
$("#inventory-slider2Total").text((slideEvt.value*utxo_input).toFixed(8));
var slider1_total = parseFloat($('#inventory-slider1Total').text());
var slider2_total = parseFloat($('#inventory-slider2Total').text());
var slider3_total = parseFloat($('#inventory-slider3Total').text());
var slider_total = slider1_total + slider2_total + slider3_total;
$('.inventory-sliderTotal').text(slider_total.toFixed(8));
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin_balance = selected_coin.balance;
console.log(coin_balance);
if(slider_total >= coin_balance) {
$('.inventory-sliderTotal').css('color', 'red');
$('.inventory-sliderTotalCoin').css('color', 'red');
$('.btn-makeinventory').attr("disabled", "disabled");
} else if (slider_total < coin_balance) {
$('.inventory-sliderTotal').css('color', '');
$('.inventory-sliderTotalCoin').css('color', '');
$('.btn-makeinventory').removeAttr("disabled");
}
});
$("#inventory-slider3").slider();
$("#inventory-slider3").on("slide", function(slideEvt) {
$("#inventory-slider3Val").text(slideEvt.value);
utxo_input = $("#inventory_slider_input3").val();
$("#inventory-slider3Total").text((slideEvt.value*utxo_input).toFixed(8));
var slider1_total = parseFloat($('#inventory-slider1Total').text());
var slider2_total = parseFloat($('#inventory-slider2Total').text());
var slider3_total = parseFloat($('#inventory-slider3Total').text());
var slider_total = slider1_total + slider2_total + slider3_total;
$('.inventory-sliderTotal').text(slider_total.toFixed(8));
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin_balance = selected_coin.balance;
console.log(coin_balance);
if(slider_total >= coin_balance) {
$('.inventory-sliderTotal').css('color', 'red');
$('.inventory-sliderTotalCoin').css('color', 'red');
$('.btn-makeinventory').attr("disabled", "disabled");
} else if (slider_total < coin_balance) {
$('.inventory-sliderTotal').css('color', '');
$('.inventory-sliderTotalCoin').css('color', '');
$('.btn-makeinventory').removeAttr("disabled");
}
});
function clac_coin_inventory(data) {
console.log(data);
utxo_input1 = (parseFloat(data.balance)*0.12).toFixed(8);
utxo_input2 = (parseFloat(data.balance)*0.01).toFixed(8);
utxo_input3 = (parseFloat(data.balance)*0.1).toFixed(8);
///console.log(utxo_input1);
//console.log(utxo_input2);
//console.log(utxo_input3);
$("#inventory_slider_input1").val(utxo_input1);
$("#inventory_slider_input2").val(utxo_input2);
$("#inventory_slider_input3").val(utxo_input3);
var slider_input1 = $('#inventory-slider1').val();
var slider_input2 = $('#inventory-slider2').val();
var slider_input3 = $('#inventory-slider3').val();
$("#inventory-slider1Total").text(parseFloat(slider_input1*utxo_input1).toFixed(8));
$("#inventory-slider2Total").text(parseFloat(slider_input2*utxo_input2).toFixed(8));
$("#inventory-slider3Total").text(parseFloat(slider_input3*utxo_input3).toFixed(8));
var slider_total = parseFloat(slider_input1*utxo_input1) + parseFloat(slider_input2*utxo_input2) + parseFloat(slider_input3*utxo_input3);
console.log(slider_total);
$('.inventory-sliderTotal').text(slider_total.toFixed(8));
}
function make_inventory_withdraw(data) {
//console.log(data);
coin = data.coin;
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"withdraw","coin": data.coin, "outputs": data.outputs};
var url = "http://127.0.0.1:7783";
console.log(ajax_data);
var a1= $.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}),
a2 = a1.then(function(data) {
// .then() returns a new promise
console.log(data);
if (data.complete == false) {
toastr.error('Uncessful Transaction. Please try again.','Tansaction info');
}
if (data.complete == true) {
bootbox.confirm({
message: 'Please confirm if you are ready to make inventory.',
buttons: {
confirm: {
label: 'Confirm',
className: 'btn-primary'
},
cancel: {
label: 'Cancel',
className: 'btn-default'
}
},
callback: function (result) {
console.log('This was logged in the callback: ' + result);
if (result == true) {
var ajax_data2 = {"userpass":userpass,"method":"sendrawtransaction","coin": coin, "signedtx": data.hex};
console.log(ajax_data2);
toastr.info('Transaction Executed', 'Transaction Status');
return $.ajax({
async: true,
data: JSON.stringify(ajax_data2),
dataType: 'json',
type: 'POST',
url: url
})
} else {
console.log('Sending Transaction operation canceled.');
return {'output': 'canceled'};
}
}
});
}
});
a2.done(function(data) {
console.log(data);
});
}
function addcoin_enable_disable_coin(data) {
//console.log(data.coin);
//console.log(data.status);
var electrum_option = $('.toggle_checkbox[data-coin="' + data.coin + '"]').prop('checked'); //If 'false', electrum option selected
var userpass = sessionStorage.getItem('mm_userpass');
if (data.coin !== ' ' ) {
console.log('coin value is not empty');
} else {
console.log('coin value is empty');
}
if (data.coin !== ' ' && data.status == 'enable') {
if (electrum_option == false) {
console.log(electrum_option);
console.log("electrum selected for " + data.coin);
var ajax_data = {"userpass":userpass,"method":"electrum","coin":data.coin,"ipaddr":"46.4.125.2","port":50001};
} else {
console.log(electrum_option);
console.log("native selected for " + data.coin);
var ajax_data = {"userpass":userpass,"method":data.status,"coin":data.coin};
}
} else if (data.coin !== ' ' && data.status == 'disable') {
var ajax_data = {"userpass":userpass,"method":data.status,"coin":data.coin};
} else if (data.coin == ' ') {
var ajax_data = {"userpass":userpass,"method":"getcoins"};
}
var url = "http://127.0.0.1:7783";
console.log(ajax_data);
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
//console.log(data);
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
if (ajax_data.status === 'enable') {
toastr.success(ajax_data.coin+' Enabled','Coin Status');
}
if (ajax_data.status === 'disable') {
toastr.success(ajax_data.coin+' Disabled','Coin Status');
}
get_coins_list(data.coins);
} else {
$('.initcoinswap-output').html(JSON.stringify(data, null, 2));
//get_coins_list(data);
if (electrum_option == false) {
//get_coins_list('');
$('.refresh_dex_balances').trigger('click');
} else {
get_coins_list(data);
}
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
function get_coins_list() {
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"getcoins"};
console.log(ajax_data)
var url = "http://127.0.0.1:7783";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
get_coins_list();
return
} else {
$('.addcoins_tbl tbody').empty();
$.each(data, function(index, val) {
console.log(index);
console.log(val);
var coin_name = return_coin_name(val.coin)
var addcoins_tbl_tr = '';
addcoins_tbl_tr += '<tr>';
addcoins_tbl_tr += '<td><img src="img/cryptologo/' + val.coin.toLowerCase() + '.png" width="30px;"/> '+ coin_name + ' (' + val.coin + ')</td>';
addcoins_tbl_tr += '<td>' + val.balance + '</td>';
addcoins_tbl_tr += '<td>' + val.smartaddress + '</td>';
addcoins_tbl_tr += '<td><span class="label label-uppercase label-' + (( val.status == 'active' ) ? 'grey' : 'default') + '">' + val.status + '</span></td>';
addcoins_tbl_tr += '<td>' + (parseFloat(val.txfee)/100000000).toFixed(8) + '</td>';
addcoins_tbl_tr += '<td><input class="toggle_checkbox" type="checkbox" checked data-toggle="toggle" data-on="Native" data-off="Electrum" data-onstyle="grey" data-offstyle="info" data-width="100px" data-coin="' + val.coin + '" disabled></td>';
addcoins_tbl_tr += '<td style="width: 165px;"> <div class="btn-group" role="group">' + (( val.status == 'active' ) ? '<button class="btn btn-xs btn-warning addcoins_tbl_disable_btn" data-coin="' + val.coin + '">Disable</button>' : '<button class="btn btn-xs btn-success addcoins_tbl_enable_btn" data-coin="' + val.coin + '">Enable</button>') + '</div></td>';
addcoins_tbl_tr += '</tr>';
$('.addcoins_tbl tbody').append(addcoins_tbl_tr);
/*if (val.status == 'active') {
$('.selectpicker option').filter(function () { return $(this).html() == val.coin; }).removeAttr('disabled');
}else {
$('.selectpicker option').filter(function () { return $(this).html() == val.coin; }).attr("disabled","disabled");
}
$('.selectpicker').selectpicker('refresh');*/
$('.toggle_checkbox[data-coin="BTC"]').removeAttr('disabled');
$('.toggle_checkbox').bootstrapToggle();
if (!val.electrum === false) {
console.log(val);
$('.toggle_checkbox[data-coin="' + val.coin + '"]').prop('checked', false).change()
}
})
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
};
function addcoins_dialog(){
var bot_update_bootbox = bootbox.dialog({
message: `
<div class="row">
<div class="col-sm-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><strong>Add Coin</strong></h3>
</div>
<div class="panel-body"> <!-- panel-body -->
<div class="col-sm-6">
<select class="selectpicker addcoin_enable_disable_selection" data-live-search="true" data-hide-disabled="true" data-width="100%"></select>
</div>
<div class="col-sm-6">
<input class="toggle_checkbox toggle_font_lg" id="addcoin_toggle_native_electrum" type="checkbox" checked data-toggle="toggle" data-on="Native Mode" data-off="Electrum Mode" data-size="large" data-onstyle="primary" data-offstyle="info" data-width="100%" data-height="64px" disabled>
</div>
</div>
</div>
</div>
</div>`,
closeButton: false,
size: 'medium',
buttons: {
cancel: {
label: "Cancel",
className: 'btn-default',
callback: function(){
}
},
ok: {
label: "Enable",
className: 'btn-success btn-addcoins_enable',
callback: function(){
var addcoin_data = {}
addcoin_data.coin = $('.addcoin_enable_disable_selection').selectpicker('val');
addcoin_data.electrum = $('#addcoin_toggle_native_electrum').prop('checked');
addcoin_data.method = 'enable';
console.log(addcoin_data);
enable_disable_coin(addcoin_data);
CheckPortfolioFn();
}
}
}
});
bot_update_bootbox.init(function(){
$('.addcoin_enable_disable_selection').html(coin_select_options);
$('.addcoin_enable_disable_selection').selectpicker('render');
$('.toggle_checkbox').bootstrapToggle();
//console.log('bot_update_settings dialog opened.')
//$('.btn-bot_settings_update').attr("disabled", "disabled");
//$('.trading_pair_coin_newprice').inputNumber();
//$('.trading_pair_coin_newvolume').inputNumber();
});
}
/* Portfolio section functions START */
function CheckPortfolioFn(sig) {
if (sig == false) {
clearInterval(CheckPortfolio_Interval);
return 'Check portfolio calls stopped.';
} else {
console.log('checking portfolio');
}
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"portfolio"};
console.log(ajax_data)
var url = "http://127.0.0.1:7783";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
CheckPortfolioFn();
return
}
PortfolioTblDataFn(data);
PortfolioChartUpdate(data.portfolio);
//$('.initcoinswap-output').html(JSON.stringify(data, null, 2));
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
function PortfolioTblDataFn(data) {
//console.log(data);
$('.portfolio_kmd_equiv').html(data.kmd_equiv);
$('.portfolio_buycoin').html(data.buycoin);
$('.portfolio_buyforce').html(data.buyforce);
$('.portfolio_sellcoin').html(data.sellcoin);
$('.portfolio_sellforce').html(data.sellforce);
$('.portfolio_base').html(data.base);
$('.portfolio_rel').html(data.rel);
$('.portfolio_relvolume').html(data.relvolume);
$('.dex_portfolio_coins_tbl tbody').empty();
$('.porfolio_coins_list tbody').empty();
$.each(data.portfolio, function(index, val) {
//console.log(index);
console.log(val);
var coin_name = return_coin_name(val.coin)
var dex_portfolio_coins_tbl_tr = '';
dex_portfolio_coins_tbl_tr += '<tr>';
dex_portfolio_coins_tbl_tr += '<td><img src="img/cryptologo/' + val.coin.toLowerCase() + '.png" width="30px;"/> '+ coin_name +' ('+val.coin + ')</td>';
//dex_portfolio_coins_tbl_tr += '<td>' + val.address + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.amount + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.price + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.kmd_equiv + '</td>';
dex_portfolio_coins_tbl_tr += '<td><button class="btn btn-sm btn-default btn-portfoliogo" data-coin="' + val.coin + '" data-coinname="' + coin_name + '" data-addr="' + val.address + '" data-balance="' + val.amount + '"><span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span></button></td>'
/*dex_portfolio_coins_tbl_tr += '<td>' + val.perc + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.goal + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.goalperc + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.relvolume + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.force + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.balanceA + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.valuesumA + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.aliceutil + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.balanceB + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.valuesumB + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.balance + '</td>';
dex_portfolio_coins_tbl_tr += '<td>' + val.bobutil + '</td>';*/
dex_portfolio_coins_tbl_tr += '</tr>';
$('.porfolio_coins_list tbody').append(dex_portfolio_coins_tbl_tr);
})
};
function PortfolioChartUpdate(chart_data) {
console.log(chart_data)
var chart = AmCharts.makeChart( "portfolio_chart_current", {
"type": "pie",
"theme": "light",
"dataProvider": chart_data,
"valueField": "perc",
"titleField": "coin",
"startDuration": 0,
"innerRadius": 50,
"pullOutRadius": 20,
"marginTop": 30,
"marginBottom": 15,
"marginLeft": 0,
"marginRight": 0,
"pullOutRadius": 0,
/*"titles": [
{
"text": "Current Portfolio Goal"
}
],*/
"allLabels": [
{
"y": "46%",
"align": "center",
"size": 25,
"bold": true,
"text": "Now",
"color": "#555"
},
{
"y": "40%",
"align": "center",
"size": 15,
"text": "Goal",
"color": "#555"
}
],
"export": {
"enabled": false
}
});
var chart2 = AmCharts.makeChart( "portfolio_chart_target", {
"type": "pie",
"theme": "light",
"dataProvider": chart_data,
"valueField": "goalperc",
"titleField": "coin",
"startDuration": 0,
"innerRadius": 50,
"pullOutRadius": 20,
"marginTop": 30,
"marginBottom": 15,
"marginLeft": 0,
"marginRight": 0,
"pullOutRadius": 0,
/*"titles": [
{
"text": "Target Portfolio Goal"
}
],*/
"allLabels": [
{
"y": "46%",
"align": "center",
"size": 25,
"bold": true,
"text": "Target",
"color": "#555"
},
{
"y": "40%",
"align": "center",
"size": 15,
"text": "Goal",
"color": "#555"
}
],
"export": {
"enabled": false
}
});
}
$('.btn-refreshportfolio').click(function() {
console.log('clicked refresh button at dex portfolio charts');
CheckPortfolioFn();
});
$('.refresh_dex_potfolio').click(function() {
console.log('clicked refresh button at dex portfolio charts');
CheckPortfolioFn();
});
$('.refresh_dex_potfolio_coins').click(function() {
console.log('clicked refresh button at dex portfolio charts');
CheckPortfolioFn();
});
$('.portfolio_set_price_btn').click(function() {
var price = $('#portfolio_set_price').val();
var base_coin = $('.buy_coin_p').selectpicker('val');
var rel_coin = $('.sell_coin_p').selectpicker('val');
console.log('price ' + price);
console.log('base '+ base_coin);
console.log('rel ' + rel_coin);
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"setprice","base":base_coin,"rel":rel_coin,"price":price};
var url = "http://127.0.0.1:7783";
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
toastr.success('Price for Base: ' + base_coin + ' Rel: ' + rel_coin + ' set to: ' + price + ' ' + rel_coin, 'Portfolio Info')
$('.initcoinswap-output').html(JSON.stringify(data, null, 2));
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
})
$('.portfolio_set_autoprice_btn').click(function() {
var margin = $('#portfolio_set_autoprice').val();
var base_coin = $('.buy_coin_p').selectpicker('val');
var rel_coin = $('.sell_coin_p').selectpicker('val');
console.log('margin ' + margin);
console.log('base '+ base_coin);
console.log('rel ' + rel_coin);
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"autoprice","base":base_coin,"rel":rel_coin,"margin":margin};
var url = "http://127.0.0.1:7783";
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
toastr.success('Margin Price for Base: ' + base_coin + ' Rel: ' + rel_coin + ' set to: ' + margin + '% ' + rel_coin, 'Portfolio Info')
$('.initcoinswap-output').html(JSON.stringify(data, null, 2));
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
})
$('.portfolio_set_goal_btn').click(function() {
var percent = $('#portfolio_set_goal').val();
var coin = $('.sell_coin_p').selectpicker('val');
console.log('percent ' + percent);
console.log('coin '+ coin);
//console.log('rel ' + rel_coin);
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"goal","coin":coin,"val":percent};
var url = "http://127.0.0.1:7783";
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
toastr.success('Goal for ' + coin + ' set to: ' + percent, 'Portfolio Info')
$('.initcoinswap-output').html(JSON.stringify(data, null, 2));
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
CheckPortfolioFn();
})
$( ".sell_coin_p" ).change(function() {
$('.set_goal_label_portfolio').html($('.sell_coin_p').selectpicker('val'));
})
$('.portfolio_set_autogoals_btn').click(function() {
//var percent = $('#portfolio_set_goal').val();
//var coin = $('.sell_coin_p').selectpicker('val');
//console.log('percent ' + percent);
//console.log('coin '+ coin);
//console.log('rel ' + rel_coin);
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"goal"};
var url = "http://127.0.0.1:7783";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
toastr.success('Auto goal setup executed!', 'Portfolio Info')
$('.initcoinswap-output').html(JSON.stringify(data, null, 2));
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
CheckPortfolioFn();
})
/* Portfolio section functions END */
/* Auto Trading Bot */
function CheckOrderBookFn(sig) {
if (sig == false) {
clearInterval(CheckOrderbook_Interval);
return
} else {
console.log('checking orderbook');
}
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin = selected_coin.coin;
console.log(coin);
buying_or_selling = $('input[name=trading_pair_options]:checked').val();
if(buying_or_selling == 'buying') {
var base_coin = coin;
var rel_coin = $('.trading_pair_coin').selectpicker('val');
}
if(buying_or_selling == 'selling') {
var base_coin = $('.trading_pair_coin').selectpicker('val');
var rel_coin = coin;
}
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
$('.orderbook_rel_coin').html(rel_coin);
$('.orderbook_base_coin').html(base_coin);
var ajax_data = {"userpass":userpass,"method":"orderbook","base":base_coin,"rel":rel_coin};
//console.log(ajax_data)
var url = "http://127.0.0.1:7783";
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
//get_coins_list(data.coins);
} else {
//console.log(data.asks);
$('.orderbook_numasks').html(data.numasks);
$('.orderbook_numbids').html(data.numbids);
$('.orderbook_bids tbody').empty();
$.each(data.bids, function(index, val) {
//console.log(index);
//console.log(val);
var mytrade_true = '';
if (val.pubkey === mypubkey) {
var mytrade_true = 'class="warning"';
}
var orderbook_bids_tr = '';
orderbook_bids_tr += '<tr ' + mytrade_true + '>';
orderbook_bids_tr += '<td>' + val.price + '</td>';
orderbook_bids_tr += '<td>' + val.minvolume + '</td>';
orderbook_bids_tr += '<td>' + val.maxvolume + '</td>';
orderbook_bids_tr += '<td>' + val.age + '</td>';
orderbook_bids_tr += '<td>' + val.numutxos + '</td>';
orderbook_bids_tr += '</tr>';
$('.orderbook_bids tbody').append(orderbook_bids_tr);
})
$('.orderbook_asks tbody').empty();
$.each(data.asks, function(index, val) {
//console.log(index);
//console.log(val);
var mytrade_true = '';
if (val.pubkey === mypubkey) {
var mytrade_true = 'class="warning"';
}
var orderbook_asks_tr = '';
orderbook_asks_tr += '<tr ' + mytrade_true + '>';
orderbook_asks_tr += '<td>' + val.price + '</td>';
orderbook_asks_tr += '<td>' + val.minvolume + '</td>';
orderbook_asks_tr += '<td>' + val.maxvolume + '</td>';
orderbook_asks_tr += '<td>' + val.age + '</td>';
orderbook_asks_tr += '<td>' + val.numutxos + '</td>';
orderbook_asks_tr += '</tr>';
$('.orderbook_asks tbody').append(orderbook_asks_tr);
})
}
//$('.initcoinswap-output').html(JSON.stringify(data, null, 2));
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
return 'Check orderbook calls stopped.';
}
function check_my_prices(sig){
if (sig == false) {
clearInterval(check_my_prices_Internal);
return
} else {
console.log('checking my prices');
}
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin = selected_coin.coin;
console.log(coin);
buying_or_selling = $('input[name=trading_pair_options]:checked').val();
if(buying_or_selling == 'buying') {
var base_coin = coin;
var rel_coin = $('.trading_pair_coin').selectpicker('val');
}
if(buying_or_selling == 'selling') {
var base_coin = $('.trading_pair_coin').selectpicker('val');
var rel_coin = coin;
}
var userpass = sessionStorage.getItem('mm_userpass');
//var ajax_data = {"userpass":userpass,"method":"myprice","base":base_coin,"rel":rel_coin};
var ajax_data = {"userpass":userpass,"method":"myprices"};
console.log(ajax_data)
var url = "http://127.0.0.1:7783";
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
} else {
//console.log(data);
$('.exchange_my_orders_tbl tbody').empty();
if (!data.error === false) {
var exchange_my_orders_tr = '';
exchange_my_orders_tr += '<tr>';
exchange_my_orders_tr += '<td><div style="text-align: center;">' + data.error + ' for pair ' + base_coin + '/' + rel_coin + '</div></td>';
exchange_my_orders_tr += '</tr>';
$('.exchange_my_orders_tbl tbody').append(exchange_my_orders_tr);
} else {
$.each(data, function(index, val) {
console.log(index);
console.log(val);
var base_coin_name = return_coin_name(val.base)
var rel_coin_name = return_coin_name(val.rel)
var exchange_my_orders_tr = '';
exchange_my_orders_tr += '<tr>';
exchange_my_orders_tr += '<td>'+ val.base + ' (' + base_coin_name + ')</td>';
exchange_my_orders_tr += '<td>'+ val.rel + ' (' + rel_coin_name + ')</td>';
exchange_my_orders_tr += '<td>' + val.bid + '</td>';
exchange_my_orders_tr += '<td>' + val.ask + '</td>';
exchange_my_orders_tr += '</tr>';
$('.exchange_my_orders_tbl tbody').append(exchange_my_orders_tr);
});
/*var base_coin_name = return_coin_name(data.base)
var rel_coin_name = return_coin_name(data.rel)
var exchange_my_orders_tr = '';
exchange_my_orders_tr += '<tr>';
exchange_my_orders_tr += '<td>'+ data.base + ' (' + base_coin_name + ')</td>';
exchange_my_orders_tr += '<td>'+ data.rel + ' (' + rel_coin_name + ')</td>';
exchange_my_orders_tr += '<td>' + data.bid + '</td>';
exchange_my_orders_tr += '<td>' + data.ask + '</td>';
exchange_my_orders_tr += '</tr>';
$('.exchange_my_orders_tbl tbody').append(exchange_my_orders_tr);*/
}
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
$('.trading_pair_coin').on('change', function (e) {
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
console.log(valueSelected);
//update_min_max_price_input();
});
$('.btn-refreshtrading_pair').click(function(e){
e.preventDefault();
console.log('btn-refreshtrading_pair clicked');
console.log($(this).data());
//update_min_max_price_input();
})
$('input[name=trading_pair_options]').change(function() {
console.log('trading_pair_options changed');
buying_or_selling = $('input[name=trading_pair_options]:checked').val();
//console.log(buying_or_selling);
if(buying_or_selling == 'buying') {
$('#trading_pair_coin_price_max_min').html('Max');
$('.trading_pair_lable_text_one').html('Max');
$('.trading_pair_lable_text_two').html('Buy');
$('.btn-bot_action').html('BUY');
$('.btn-bot_action').attr('data-action', 'buy');
}
if(buying_or_selling == 'selling') {
$('#trading_pair_coin_price_max_min').html('Min');
$('.trading_pair_lable_text_one').html('Min');
$('.trading_pair_lable_text_two').html('Sell');
$('.btn-bot_action').html('SELL');
$('.btn-bot_action').attr('data-action', 'sell');
}
});
function update_min_max_price_input(){
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin = selected_coin.coin;
console.log(coin);
buying_or_selling = $('input[name=trading_pair_options]:checked').val();
if(buying_or_selling == 'buying') {
var base_coin = coin;
var rel_coin = $('.trading_pair_coin').selectpicker('val');
}
if(buying_or_selling == 'selling') {
var base_coin = $('.trading_pair_coin').selectpicker('val');
var rel_coin = coin;
}
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
$('.orderbook_rel_coin').html(rel_coin);
$('.orderbook_base_coin').html(base_coin);
var ajax_data = {"userpass":userpass,"method":"orderbook","base":base_coin,"rel":rel_coin};
//console.log(ajax_data)
var url = "http://127.0.0.1:7783";
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
//get_coins_list(data.coins);
} else {
//console.log(data.asks);
if(buying_or_selling == 'buying') {
$('.trading_pair_coin_price').val(data.asks[0].price);
}
if(buying_or_selling == 'selling') {
$('.trading_pair_coin_price').val(data.bids[0].price);
}
}
//$('.initcoinswap-output').html(JSON.stringify(data, null, 2));
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
function check_bot_list(sig) {
if (sig == false) {
clearInterval(check_bot_list_Internal);
return
} else {
console.log('checking bot list');
}
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin = selected_coin.coin;
//console.log(coin);
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"bot_statuslist"};
var url = "http://127.0.0.1:7783";
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
$('.exchange_bot_list_tbl tbody').empty();
$.each(data, function(index, val) {
console.log(index);
console.log(val);
if(!val.error === false) {
var exchange_bot_list_tr = '';
exchange_bot_list_tr += '<tr>';
exchange_bot_list_tr += '<td><div>error</div></td>';
exchange_bot_list_tr += '<td>-</td>';
exchange_bot_list_tr += '</tr>';
$('.exchange_bot_list_tbl tbody').append(exchange_bot_list_tr);
} else {
if (!val.paused === false) {
var disable_resume_btn = ' ';
var disable_pause_btn = 'disabled="disabled"';
} else {
var disable_resume_btn = 'disabled="disabled"';
var disable_pause_btn = ' ';
}
if (!val.stopped === false) {
var disable_stop_btn = 'disabled="disabled"';
} else {
var disable_stop_btn = ' ';
}
if (!val.minprice === false){
var max_min_val = val.minprice;
}
if (!val.maxprice === false){
var max_min_val = val.maxprice;
}
var exchange_bot_list_tr = '';
exchange_bot_list_tr += '<tr>';
//exchange_bot_list_tr += '<td>'+val.botid+'</td>';
exchange_bot_list_tr += '<td>'+val.name+'</td>';
exchange_bot_list_tr += '<td>'+val.action+'</td>';
exchange_bot_list_tr += '<td>'+max_min_val+'</td>';
exchange_bot_list_tr += '<td>'+val.totalrelvolume+'</td>';
exchange_bot_list_tr += '<td>'+val.trades.length+'</td>';
exchange_bot_list_tr += '<td style="text-align: center;"><div class="btn-group"><button class="btn btn-info btn_bot_status" data-botid="' + val.botid + '" data-action="status"><span class="glyphicon glyphicon-cog" aria-hidden="true"></span></button><button class="btn btn-success btn_bot_resume" data-botid="' + val.botid + '" data-action="resume" ' + disable_resume_btn + '><span class="glyphicon glyphicon-play" aria-hidden="true"></span></button><button class="btn btn-warning btn_bot_pause" data-botid="' + val.botid + '" data-action="pause" ' + disable_pause_btn + '><span class="glyphicon glyphicon-pause" aria-hidden="true"></span></button><button class="btn btn-danger btn_bot_stop" data-botid="' + val.botid + '" data-action="stop" ' + disable_stop_btn + '><span class="glyphicon glyphicon-stop" aria-hidden="true"></span></button></div></td>';
exchange_bot_list_tr += '</tr>';
$('.exchange_bot_list_tbl tbody').append(exchange_bot_list_tr);
}
})
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
function bot_buy_sell(bot_data) {
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin = selected_coin.coin;
//console.log(coin);
buying_or_selling = $('input[name=trading_pair_options]:checked').val();
/*if(buying_or_selling == 'buying') {
var base_coin = coin;
var rel_coin = $('.trading_pair_coin').selectpicker('val');
}
if(buying_or_selling == 'selling') {
var base_coin = $('.trading_pair_coin').selectpicker('val');
var rel_coin = coin;
}*/
var base_coin = coin;
var rel_coin = $('.trading_pair_coin').selectpicker('val');
console.log('BUYING or SELLING??: ' + buying_or_selling);
console.log('BASE: ' + base_coin);
console.log('REL: '+ rel_coin);
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
if (bot_data.action == 'buy') {
var ajax_data = {"userpass":userpass,"method":"bot_buy","base":base_coin,"rel":rel_coin,"maxprice":bot_data.price,"relvolume":bot_data.volume};
}
if (bot_data.action == 'sell') {
var ajax_data = {"userpass":userpass,"method":"bot_sell","base":base_coin,"rel":rel_coin,"minprice":bot_data.price,"basevolume":bot_data.volume};
}
console.log(ajax_data);
var url = "http://127.0.0.1:7783";
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.error === false) {
toastr.error(data.error + '<br>Balance: ' + data.balance + ' ' + data.coin, 'Bot Info');
} else if (data.result == 'success') {
toastr.success(data.name + ' started <br> Bot ID: ' + data.botid, 'Bot Info');
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
check_bot_list();
}
function bot_stop_pause_resume(bot_data) {
console.log(bot_data);
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
if (bot_data.action == 'pause') {
var ajax_data = {"userpass":userpass,"method":"bot_pause","botid":bot_data.botid};
}
if (bot_data.action == 'resume') {
var ajax_data = {"userpass":userpass,"method":"bot_resume","botid":bot_data.botid};
}
if (bot_data.action == 'stop') {
var ajax_data = {"userpass":userpass,"method":"bot_stop","botid":bot_data.botid};
}
var url = "http://127.0.0.1:7783";
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.error === false) {
toastr.error(data.error, 'Bot Info');
} else if (data.result == 'success') {
toastr.success('Bot ID: ' + bot_data.botid + ' ' + bot_data.action + 'ed', 'Bot Info');
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
check_bot_list();
}
function bot_settings(bot_data) {
console.log(bot_data);
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"bot_settings","botid":bot_data.botid,"newprice":bot_data.newprice,"newvolume":bot_data.newvolume};
console.log(ajax_data);
var url = "http://127.0.0.1:7783";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.error === false) {
toastr.error(data.error, 'Bot Info');
} else if (data.result == 'success') {
toastr.success('Bot ID: ' + bot_data.botid + ' Updateded', 'Bot Info');
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
check_bot_list();
}
function bot_status(bot_data) {
console.log(bot_data);
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"bot_status","botid":bot_data.botid};
var url = "http://127.0.0.1:7783";
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.error === false) {
toastr.error(data.error, 'Bot Info');
} else if (data.result == 'success') {
var max_min = null;
var max_min_val = null;
if (!data.minprice === false){
max_min = 'Minimum';
max_min_val = data.minprice;
}
if (!data.maxprice === false){
max_min = 'Maximum';
max_min_val = data.maxprice;
}
result_answer = (data.result == 'success') ? '<h4><span class="label label-success"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span> Success</span></h4>' : '<h4><span class="label label-danger"><span class="glyphicon glyphicon-warning-sign" aria-hidden="true"></span> ' + data.result + '</span></h4>';
rel_answer = '<img src="img/cryptologo/'+data.rel.toLowerCase()+'.png" style="width: 30px;"> '+ return_coin_name(data.rel) + ' ('+data.rel+')';
base_answer = '<img src="img/cryptologo/'+data.base.toLowerCase()+'.png" style="width: 30px;"> '+ return_coin_name(data.base) + ' ('+data.base+')';
rel_form = '<img src="img/cryptologo/'+data.rel.toLowerCase()+'.png" style="width: 50px;"> '+ data.rel;
base_form = '<img src="img/cryptologo/'+data.base.toLowerCase()+'.png" style="width: 50px;"> '+ data.base;
buy_sell_text = (data.action == 'buy') ? 'Buy' : 'Sell';
max_min_text = (data.action == 'buy') ? 'Max' : 'Min';
var bot_update_bootbox = bootbox.dialog({
message: `
<table width="100%" class="table table-striped">
<tr>
<td style="width: 150px;">Auto Trader ID</td>
<td>` + data.botid + `</td>
</tr>
<tr>
<td>Auto Trade Name</td>
<td>` + data.name + `</td>
</tr>
<tr>
<td>Trade Action</td>
<td>` + data.action + `</td>
</tr>
<tr>
<td>Selling Currency</td>
<td>` + rel_answer + `</td>
</tr>
<tr>
<td>Buying Currency</td>
<td>` + base_answer + `</td>
</tr>
<tr>
<td>` + max_min + ` Price</td>
<td>` + max_min_val + ` ` + data.rel + `</td>
</tr>
<tr>
<td>Total Selling Volume</td>
<td>` + data.totalrelvolume + ` ` + data.rel + `</td>
</tr>
<tr>
<td>Total Buying Volume</td>
<td>` + data.totalbasevolume + ` ` + data.base + `</td>
</tr>
<tr>
<td>Result</td>
<td>` + result_answer + `</td>
</tr>
<tr>
<td>Trades</td>
<td>` + JSON.stringify(data.trades, null, 2) + `</td>
</tr>
</table>
<div class="row">
<div class="col-sm-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><strong>Change This Auto Trade's Settings</strong></h3>
</div>
<div class="panel-body"> <!-- panel-body -->
<div class="form-group">
<span style="float: right; font-size: 18px;"><span>New ` + max_min_text + `</span> Price to <span>` + buy_sell_text + `</span></span>
</div>
<div class="input-group col-sm-12">
<span class="input-group-addon">` + rel_form + `</span>
<input type="number" class="form-control trading_pair_coin_newprice" placeholder="Price e.g. 0.01" style="height: 64px; font-size: 20px;">
<span class="input-group-addon" id="trading_pair_coin_price_max_min_update" style="font-size: 20px;">` + max_min_text + `</span>
</div>
<div class="form-group" style="margin-top: 15px; margin-bottom: 0px;">
<span style="font-size: 18px;"><span>New Max</span> Amount to <span>` + buy_sell_text + `</span></span>
</div>
<div class="input-group col-sm-12">
<span class="input-group-addon coin_ticker" id="trading_pair_coin_ticker" style="font-size: 20px;">` + base_form + `</span>
<input type="number" class="form-control trading_pair_coin_newvolume" placeholder="Amount e.g. 12.5" style="height: 64px; font-size: 20px;">
</div>
</div>
</div>
</div>
</div>`,
closeButton: true,
size: 'large',
buttons: {
cancel: {
label: "Cancel",
className: 'btn-danger',
callback: function(){
}
},
ok: {
label: "Update",
className: 'btn-primary btn-bot_settings_update',
callback: function(){
//console.log($('.trading_pair_coin_newprice').val())
//console.log($('.trading_pair_coin_newvolume').val())
//console.log(data.rel);
//console.log(data.base);
bot_update_data = {}
bot_update_data.rel = data.rel;
bot_update_data.base = data.base;
bot_update_data.botid = data.botid;
bot_update_data.newprice = $('.trading_pair_coin_newprice').val();
bot_update_data.newvolume = $('.trading_pair_coin_newvolume').val();
//console.log(bot_update_data);
bot_settings(bot_update_data);
}
}
}
});
bot_update_bootbox.init(function(){
console.log('bot_update_settings dialog opened.')
$('.btn-bot_settings_update').attr("disabled", "disabled");
$('.trading_pair_coin_newprice').inputNumber();
$('.trading_pair_coin_newvolume').inputNumber();
$('.trading_pair_coin_newprice').keyup(function() {
var max_min_newprice = $('.trading_pair_coin_newprice')
var max_newvolume = $('.trading_pair_coin_newvolume')
var empty = false;
if (max_min_newprice.val().length == 0 ) {
console.log('new price is empty');
empty = true;
} else if (max_min_newprice.val().length !== 0 ) {
console.log('NEW PRICE IS :' + max_min_newprice.val());
empty = false;
}
console.log(empty);
if (empty){
$('.btn-bot_settings_update').attr("disabled", "disabled");
} else {
$('.btn-bot_settings_update').removeAttr("disabled");
}
});
$('.trading_pair_coin_newvolume').keyup(function() {
var max_min_newprice = $('.trading_pair_coin_newprice')
var max_newvolume = $('.trading_pair_coin_newvolume')
var empty = false;
if (max_newvolume.val().length == 0 ) {
console.log('new price is empty');
empty = true;
} else if (max_newvolume.val().length !== 0 ) {
console.log('NEW PRICE IS :' + max_newvolume.val());
empty = false;
}
console.log(empty);
if (empty){
$('.btn-bot_settings_update').attr("disabled", "disabled");
} else {
$('.btn-bot_settings_update').removeAttr("disabled");
}
});
});
//toastr.success('Bot ID: ' + bot_data.botid + ' ' + bot_data.action + ' presented.', 'Bot Info');
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
check_bot_list();
}
function bot_screen_coin_balance(sig) {
if (sig == false) {
clearInterval(bot_screen_coin_balance_Internal);
return
} else {
console.log('checking bot screen coin balance');
}
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin = selected_coin.coin;
console.log(coin);
var coin_name = return_coin_name(coin);
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"getcoin","coin": coin};
var url = "http://127.0.0.1:7783";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
sessionStorage.setItem('mm_userpass', data.userpass);
sessionStorage.setItem('mm_mypubkey', data.mypubkey);
bot_screen_coin_balance();
} else {
$('.trading_coin_ticker_name').html('<img src="img/cryptologo/'+coin.toLowerCase()+'.png" style="width: 50px;"> '+ return_coin_name(coin) + ' ('+coin+')');
$('.trading_coin_balance').html(data.coin.balance + ' <span style="font-size: 35px; font-weight: 100;">' + coin + '</span>');
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
/* Auto Trading Bot END */
/* Swap Status */
$('.btn-swapstatusrefresh').click(function() {
check_swap_status();
})
$('.exchange_swap_status_tbl tbody').on('click', '.swapstatus_details', function() {
console.log('swapstatus details button clicked')
console.log($(this).data());
check_swap_status_details($(this).data());
});
function check_swap_status_details(swap_data) {
console.log(swap_data);
var requestid = swap_data.requestid;
var quoteid = swap_data.quoteid;
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"swapstatus","requestid":requestid,"quoteid":quoteid};
var url = "http://127.0.0.1:7783/";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
console.log(data);
result_answer = (data.result == 'success') ? '<h4><span class="label label-success"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span> Success</span></h4>' : '<h4><span class="label label-danger"><span class="glyphicon glyphicon-warning-sign" aria-hidden="true"></span> ' + data.result + '</span></h4>';
alice_answer = '<img src="img/cryptologo/'+data.alice.toLowerCase()+'.png" style="width: 30px;"> '+ return_coin_name(data.alice) + ' ('+data.alice+')';
bob_answer = '<img src="img/cryptologo/'+data.bob.toLowerCase()+'.png" style="width: 30px;"> '+ return_coin_name(data.bob) + ' ('+data.bob+')';
iambob_answer = (data.iambob == 0) ? 'Buyer' : 'Seller';
bootbox.dialog({
message: `
<table width="100%" class="table table-striped">
<tr>
<td rowspan=5>Trade info</td>
<td>Quote ID</td>
<td>` + data.quoteid + `</td>
</tr>
<tr>
<td>Request ID</td>
<td>` + data.requestid + `</td>
</tr>
<tr>
<td>Trade id</td>
<td>` + data.tradeid + `</td>
</tr>
<tr>
<td>Source Amount</td>
<td>` + data.srcamount + `</td>
</tr>
<tr>
<td>Result</td>
<td>` + result_answer + `</td>
</tr>
<tr>
<td rowspan=4>Buyer Info</td>
<td>Buyer Coin</td>
<td>` + alice_answer + `</td>
</tr>
<tr>
<td>Buyer ID</td>
<td>` + data.aliceid + `</td>
</tr>
<tr>
<td>Buyer Payment</td>
<td>` + data.alicepayment + `</td>
</tr>
<tr>
<td>Buyer Tx Fee</td>
<td>` + data.alicetxfee + `</td>
</tr>
<tr>
<td rowspan=4>Seller Info</td>
<td>Seller Coin</td>
<td>` + bob_answer + `</td>
</tr>
<tr>
<td>Seller Deposit</td>
<td>` + data.bobdeposit + `</td>
</tr>
<tr>
<td>Seller Payment</td>
<td>` + data.bobpayment + `</td>
</tr>
<tr>
<td>Seller Tx Fee</td>
<td>` + data.bobtxfee + `</td>
</tr>
<tr>
<td rowspan=5>Other Info</td>
<td>You are</td>
<td>` + iambob_answer + `</td>
</tr>
<tr>
<td>Sent Flags</td>
<td>` + JSON.stringify(data.sentflags, null, 2) + `</td>
</tr>
<tr>
<td>Values</td>
<td>` + JSON.stringify(data.values, null, 2) + `</td>
</tr>
<tr>
<td>depositspent</td>
<td>` + data.depositspent + `</td>
</tr>
<tr>
<td>Apayment Spent</td>
<td>` + data.Apaymentspent + `</td>
</tr>
</table>`,
closeButton: true,
size: 'large'
});
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
function check_swap_status(sig) {
if (sig == false) {
clearInterval(check_swap_status_Internal);
return
} else {
console.log('checking swap status');
}
var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin = selected_coin.coin;
//console.log(coin);
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"swapstatus"};
var url = "http://127.0.0.1:7783";
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
// If successful
//console.log(data);
var reversed_swap_list = data.swaps.reverse();
$('.exchange_swap_status_tbl tbody').empty();
$.each(reversed_swap_list, function(index, val) {
//console.log(index);
//console.log(val);
if(!val.error === false) {
var exchange_swap_status_tr = '';
exchange_swap_status_tr += '<tr>';
exchange_swap_status_tr += '<td><div>error</div></td>';
exchange_swap_status_tr += '<td>-</td>';
exchange_swap_status_tr += '<td>-</td>';
exchange_swap_status_tr += '<td>-</td>';
exchange_swap_status_tr += '</tr>';
$('.exchange_swap_status_tbl tbody').append(exchange_swap_status_tr);
} else {
var exchange_swap_status_tr = '';
exchange_swap_status_tr += '<tr>';
exchange_swap_status_tr += '<td>' + val.status + '</td>';
exchange_swap_status_tr += '<td>' + val.quoteid + '</td>';
exchange_swap_status_tr += '<td>' + val.requestid + '</td>';
exchange_swap_status_tr += '<td><button class="btn btn-default swapstatus_details" data-quoteid="' + val.quoteid + '" data-requestid="' + val.requestid + '">Details</button></td>';
exchange_swap_status_tr += '</tr>';
$('.exchange_swap_status_tbl tbody').append(exchange_swap_status_tr);
}
})
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
/* Swap Status END */