2017-10-19 06:43:14 -07:00
/*** Simple GUI JS ***/
2017-11-04 07:57:53 -07:00
var CheckOrderbook _Interval = null ;
var CheckPortfolio _Interval = null ;
2017-10-19 06:43:14 -07:00
var check _coin _balance _Interval = null ;
2017-11-16 13:24:39 -08:00
var check _swap _status _Interval = null ;
var check _my _prices _Interval = null ;
var check _bot _list _Interval = null ;
var bot _screen _coin _balance _Interval = null ;
var bot _screen _sellcoin _balance _Interval = null ;
var shell = require ( 'electron' ) . shell ;
2017-10-19 06:43:14 -07:00
$ ( document ) . ready ( function ( ) {
var mmstatus = ShepherdIPC ( { "command" : "mmstatus" } ) ;
if ( mmstatus !== 'closed' ) {
$ ( '.mainbody' ) . show ( ) ;
$ ( '.loginbody' ) . hide ( ) ;
2017-11-16 15:53:00 -08:00
CheckPortfolio _Interval = setInterval ( CheckPortfolioFn , 60000 ) ;
CheckPortfolioFn ( ) ;
2017-10-19 06:43:14 -07:00
2017-11-04 07:57:53 -07:00
//check_coin_balance_Interval = setInterval(check_coin_balance,3000);
//check_coin_balance();
2017-11-16 13:24:39 -08:00
//---- dICO App Settings START ----//
//CheckPortfolio_Interval = setInterval(CheckPortfolioFn,60000);
//CheckPortfolioFn();
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-16 13:24:39 -08:00
2017-11-17 16:30:42 -08:00
if ( dexmode == 'BarterDEX' ) {
$ ( '.navbar-brandname' ) . html ( 'BarterDEX' ) ;
$ ( '#trading_mode_options_trademanual' ) . trigger ( 'click' ) ;
$ ( '#trading_mode_options_tradebot' ) . removeAttr ( "checked" ) ;
$ ( '#trading_mode_options_trademanual' ) . attr ( 'checked' , 'checked' ) ;
2017-11-20 04:33:36 -08:00
$ ( '.trading_pair_coin_autoprice_mode_span' ) . hide ( ) ;
$ ( '#trading_pair_coin_autoprice_mode' ) . bootstrapToggle ( 'on' )
$ ( '#trading_pair_coin_price_max_min' ) . html ( 'Max' ) ;
2017-11-17 16:30:42 -08:00
}
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
$ ( '.navbar-brandname' ) . html ( return _coin _name ( selected _dICO _coin ) + ' dICO' ) ;
2017-11-17 16:30:42 -08:00
selected _coin = { }
2017-11-17 16:58:37 -08:00
selected _coin . coin = selected _dICO _coin ;
selected _coin . coin _name = return _coin _name ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
console . log ( selected _coin ) ;
sessionStorage . setItem ( 'mm_selectedcoin' , JSON . stringify ( selected _coin ) ) ;
2017-11-19 03:18:46 -08:00
$ ( '.dexdashboard-btn' ) . hide ( ) ;
2017-11-17 16:30:42 -08:00
$ ( '.screen-portfolio' ) . hide ( ) ;
$ ( '.screen-coindashboard' ) . hide ( )
$ ( '.screen-exchange' ) . show ( ) ;
2017-11-17 16:58:37 -08:00
$ ( '.coin_ticker' ) . html ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
$ . each ( $ ( '.coinexchange[data-coin]' ) , function ( index , value ) {
2017-11-17 16:58:37 -08:00
$ ( '.coinexchange[data-coin]' ) . data ( 'coin' , selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
} ) ;
check _coin _balance ( false ) ;
CheckOrderBookFn ( ) ;
CheckOrderbook _Interval = setInterval ( CheckOrderBookFn , 30000 ) ;
check _swap _status _Interval = setInterval ( check _swap _status , 20000 ) ;
check _swap _status ( ) ;
check _bot _list _Interval = setInterval ( check _bot _list , 10000 ) ;
check _bot _list ( ) ;
check _my _prices _Interval = setInterval ( check _my _prices , 60000 ) ;
check _my _prices ( ) ;
bot _screen _coin _balance _Interval = setInterval ( bot _screen _coin _balance , 30000 ) ;
bot _screen _coin _balance ( ) ;
bot _screen _sellcoin _balance _Interval = setInterval ( bot _screen _sellcoin _balance , 30000 ) ;
bot _screen _sellcoin _balance ( ) ;
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
//Enableing Manual Trade by auto clicking Manual trade option via JS code.
$ ( '#trading_mode_options_trademanual' ) . trigger ( 'click' ) ;
$ ( '#trading_mode_options_tradebot' ) . removeAttr ( "checked" ) ;
$ ( '#trading_mode_options_trademanual' ) . attr ( 'checked' , 'checked' ) ;
$ ( '.trading_method_options' ) . hide ( ) ;
$ ( '.trading_buysell_options' ) . hide ( ) ;
2017-11-20 04:33:36 -08:00
$ ( '.trading_pair_coin_autoprice_mode_span' ) . hide ( ) ;
$ ( '#trading_pair_coin_autoprice_mode' ) . bootstrapToggle ( 'on' )
$ ( '#trading_pair_coin_price_max_min' ) . html ( 'Max' ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-16 13:24:39 -08:00
//---- dICO App Settings END ----//
//$('.trading_selected_trader_label').hide();
//$('.trading_selected_trader').hide();
$ ( '.relvol_basevol_coin' ) . html ( $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ) ;
2017-10-19 06:43:14 -07:00
} else {
$ ( '.mainbody' ) . hide ( ) ;
$ ( '.loginbody' ) . show ( ) ;
}
//$('.set_goal_label_portfolio').html($('.sell_coin_p').selectpicker('val'));
} ) ;
2017-11-20 05:58:11 -08:00
$ ( '.porfolio_coins_list tbody' ) . on ( 'click' , '.btn_portfolio_coingoal' , function ( ) {
console . log ( 'portfolio set goal button clicked' )
console . log ( $ ( this ) . data ( ) ) ;
console . log ( $ ( this ) . data ( 'coin' ) ) ;
2017-11-20 06:34:18 -08:00
var coin = $ ( this ) . data ( 'coin' ) ;
var set _coingoal _bootbox = bootbox . dialog ( {
backdrop : true ,
onEscape : true ,
message : ` <div class="form-group coingoal_label_div" style="margin-top: 15px; margin-bottom: 0px;">
< span style = "font-size: 18px;" > Set ` + $ (this).data('coin')+ ` Goal percentage for your portfolio < / s p a n >
< / d i v >
< div class = "input-group col-sm-12 coingoal_div" >
< span class = "input-group-addon coin_ticker" style = "font-size: 20px;" > ` + $ (this).data('coin')+ ` < / s p a n >
< input type = "number" class = "form-control coingoal_percentage_bootbox" placeholder = "e.g. 12.5" style = "height: 64px; font-size: 20px;" >
< / d i v > ` ,
closeButton : true ,
size : 'medium' ,
buttons : {
cancel : {
label : "Close" ,
className : 'btn-default' ,
callback : function ( ) {
}
} ,
ok : {
label : "Set Goal" ,
className : 'btn-primary btn_set_coin_goal_bootbox' ,
callback : function ( ) {
var goal _data = { }
goal _data . coin = coin ;
goal _data . auto = false ;
goal _data . percent = $ ( '.coingoal_percentage_bootbox' ) . val ( ) ;
console . log ( goal _data ) ;
set _coin _goal ( goal _data ) ;
}
}
}
} ) ;
set _coingoal _bootbox . init ( function ( ) {
console . log ( 'set_coingoal_bootbox dialog opened.' )
} ) ;
2017-11-20 05:58:11 -08:00
} ) ;
2017-11-04 07:57:53 -07:00
$ ( '.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 ( ) ;
2017-11-18 00:29:42 -08:00
$ ( '#trading_mode_options_trademanual' ) . trigger ( 'click' ) ;
$ ( '#trading_mode_options_tradebot' ) . removeAttr ( "checked" ) ;
$ ( '#trading_mode_options_trademanual' ) . attr ( 'checked' , 'checked' ) ;
$ ( '#trading_pair_options_buying' ) . trigger ( 'click' ) ;
$ ( '#trading_pair_options_selling' ) . removeAttr ( "checked" ) ;
$ ( '#trading_pair_options_buying' ) . attr ( 'checked' , 'checked' ) ;
2017-11-18 00:33:04 -08:00
$ ( '.trading_pair_coin' ) . selectpicker ( 'val' , 'KMD' ) ;
2017-11-22 15:45:33 -08:00
$ ( '.relvol_basevol_coin' ) . html ( 'KMD' ) ;
2017-11-18 00:46:55 -08:00
$ ( '.trading_pair_coin_price' ) . val ( '' ) ;
$ ( '.trading_pair_destpubkey' ) . val ( '' ) ;
$ ( '.trading_pair_coin_volume' ) . val ( '' ) ;
$ ( '.relvol_basevol' ) . html ( '' ) ;
2017-11-19 03:15:06 -08:00
$ ( '.navbar-right' ) . children ( ) . removeClass ( 'active' ) ;
2017-11-20 04:33:36 -08:00
$ ( '.trading_pair_coin_autoprice_mode_span' ) . hide ( ) ;
$ ( '#trading_pair_coin_autoprice_mode' ) . bootstrapToggle ( 'on' )
$ ( '#trading_pair_coin_price_max_min' ) . html ( 'Max' ) ;
2017-11-04 07:57:53 -07:00
2017-11-22 08:42:09 -08:00
$ ( '.trading_sellcoin_ticker_name' ) . empty ( ) ;
$ ( '.trading_sellcoin_balance' ) . empty ( ) ;
$ ( '.trading_coin_ticker_name' ) . empty ( ) ;
$ ( '.trading_coin_balance' ) . empty ( ) ;
$ ( '#balance-spinner' ) . show ( ) ;
2017-11-04 07:57:53 -07:00
coin = $ ( this ) . data ( 'coin' ) ;
2017-11-04 13:45:26 -07:00
2017-11-20 08:30:21 -08:00
if ( coin == 'KMD' ) {
$ ( '.trading_pair_coin' ) . selectpicker ( 'val' , 'BTC' ) ;
2017-11-22 15:45:33 -08:00
$ ( '.relvol_basevol_coin' ) . html ( 'BTC' ) ;
2017-11-20 08:30:21 -08:00
}
2017-11-04 07:57:53 -07:00
selected _coin = { }
selected _coin . coin = $ ( this ) . data ( 'coin' ) ;
selected _coin . coin _name = $ ( this ) . data ( 'coinname' ) ;
selected _coin . addr = $ ( this ) . data ( 'addr' ) ;
2017-11-06 05:58:36 -08:00
selected _coin . balance = $ ( this ) . data ( 'balance' ) ;
2017-11-04 07:57:53 -07:00
console . log ( selected _coin ) ;
sessionStorage . setItem ( 'mm_selectedcoin' , JSON . stringify ( selected _coin ) ) ;
2017-11-16 16:27:00 -08:00
//check_coin_balance_Interval = setInterval(check_coin_balance($(this).data()),3000);
$ ( '.screen-portfolio' ) . hide ( ) ;
$ ( '.screen-coindashboard' ) . hide ( )
$ ( '.screen-exchange' ) . show ( ) ;
$ ( '.coin_ticker' ) . html ( coin ) ;
$ . each ( $ ( '.coinexchange[data-coin]' ) , function ( index , value ) {
$ ( '.coinexchange[data-coin]' ) . data ( 'coin' , coin ) ;
} ) ;
2017-11-20 05:32:02 -08:00
$ ( '.coingoal_label_coin_name' ) . html ( return _coin _name ( coin ) + ' (' + coin + ')' ) ;
2017-11-16 16:27:00 -08:00
2017-11-04 07:57:53 -07:00
CheckPortfolioFn ( false ) ;
2017-11-16 16:27:00 -08:00
CheckOrderBookFn ( ) ;
CheckOrderbook _Interval = setInterval ( CheckOrderBookFn , 30000 ) ;
check _swap _status _Interval = setInterval ( check _swap _status , 20000 ) ;
check _swap _status ( ) ;
check _bot _list _Interval = setInterval ( check _bot _list , 10000 ) ;
check _bot _list ( ) ;
check _my _prices _Interval = setInterval ( check _my _prices , 60000 ) ;
check _my _prices ( ) ;
bot _screen _coin _balance _Interval = setInterval ( bot _screen _coin _balance , 30000 ) ;
bot _screen _coin _balance ( ) ;
bot _screen _sellcoin _balance _Interval = setInterval ( bot _screen _sellcoin _balance , 30000 ) ;
bot _screen _sellcoin _balance ( ) ;
2017-11-24 15:23:08 -08:00
getZeroConfDepositHistory ( ) ;
2017-11-04 07:57:53 -07:00
} ) ;
2017-11-06 10:22:12 -08:00
$ ( '.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();
} )
/ * $ ( ' . b t n - a d d c o i n s c l o s e ' ) . c l i c k ( f u n c t i o n ( 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');
} ) ;
2017-11-16 13:24:39 -08:00
$ ( '#debug-exec' ) . click ( function ( e ) {
var ajax _data = $ ( '#debug-payload' ) . val ( ) ;
var url = "http://127.0.0.1:7783" ;
console . warn ( ajax _data . indexOf ( '\\"' ) ) ;
$ . ajax ( {
async : true ,
data : ajax _data . indexOf ( '\\"' ) > - 1 ? JSON . parse ( ajax _data ) : JSON . parse ( JSON . stringify ( ajax _data ) ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
} ) . done ( function ( data ) {
console . warn ( 'debug exec' , data ) ;
$ ( '#debug-payload-response' ) . html ( JSON . stringify ( data , null , '\t' ) ) ;
} ) ;
} ) ;
2017-10-26 02:56:05 -07:00
2017-11-16 13:24:39 -08:00
$ ( '.btn-inventoryclose' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn-inventoryclose clicked' ) ;
2017-11-22 15:45:33 -08:00
console . log ( $ ( this ) . data ( ) ) ;
2017-11-16 13:24:39 -08:00
$ ( '.screen-exchange' ) . show ( )
$ ( '.screen-inventory' ) . hide ( ) ;
$ ( '.dex_showinv_alice_tbl tbody' ) . empty ( ) ;
$ ( '.dex_showlist_unspents_tbl tbody' ) . empty ( ) ;
$ ( '.RawJSONInventory-output' ) . empty ( ) ;
2017-11-24 16:26:09 -08:00
//$('.coin_ticker').html($(this).attr('data-coin'));
//$.each($('.coinexchange[data-coin]'), function(index, value) {
//$('.coinexchange[data-coin]').data('coin', $(this).attr('data-coin'));
//});
2017-11-16 13:24:39 -08:00
check _coin _balance ( false ) ;
CheckOrderBookFn ( ) ;
CheckOrderbook _Interval = setInterval ( CheckOrderBookFn , 30000 ) ;
check _swap _status _Interval = setInterval ( check _swap _status , 20000 ) ;
check _swap _status ( ) ;
check _bot _list _Interval = setInterval ( check _bot _list , 10000 ) ;
check _bot _list ( ) ;
check _my _prices _Interval = setInterval ( check _my _prices , 60000 ) ;
check _my _prices ( ) ;
bot _screen _coin _balance _Interval = setInterval ( bot _screen _coin _balance , 30000 ) ;
bot _screen _coin _balance ( ) ;
bot _screen _sellcoin _balance _Interval = setInterval ( bot _screen _sellcoin _balance , 30000 ) ;
bot _screen _sellcoin _balance ( ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-10-26 03:28:48 -07:00
} ) ;
2017-10-27 00:18:01 -07:00
$ ( '.btn-inventoryrefresh' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn-inventoryrefresh clicked' ) ;
2017-11-01 02:00:04 -07:00
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>' ) ;
2017-10-27 00:18:01 -07:00
check _coin _inventory ( $ ( this ) . data ( 'coin' ) ) ;
2017-11-01 02:00:04 -07:00
check _coin _listunspent ( $ ( this ) . data ( ) ) ;
2017-10-27 00:18:01 -07:00
} ) ;
$ ( '.dex_showinv_alice_tbl tbody' ) . on ( 'click' , '.btn_coiniventory_detail' , function ( ) {
2017-10-27 03:44:54 -07:00
//console.log($(this).data());
2017-10-27 00:18:01 -07:00
var index = $ ( this ) . data ( 'index' ) ;
var coininventory = sessionStorage . getItem ( 'mm_coininventory' ) ;
coininventory = JSON . parse ( coininventory ) ;
console . log ( coininventory . alice [ index ] ) ;
bootbox . dialog ( {
2017-11-16 13:24:39 -08:00
onEscape : true ,
backdrop : true ,
2017-10-27 00:18:01 -07:00
message : `
< table class = "table table-striped" >
< tbody >
< tr >
< th rowspan = "13" style = "width: 30px;" > ` + index + ` < / t h >
< th > method < / t h >
< th > ` + coininventory.alice[index].method + ` < / t h >
< / t r >
< tr >
< td > gui < / t d >
< td > ` + coininventory.alice[index].gui + ` < / t d >
< / t r >
< tr >
< td > coin < / t d >
< td > ` + coininventory.alice[index].coin + ` < / t d >
< / t r >
< tr >
< td > iambob < / t d >
< td > ` + coininventory.alice[index].iambob + ` < / t d >
< / t r >
< tr >
< td > address < / t d >
< td > ` + coininventory.alice[index].address + ` < / t d >
< / t r >
< tr >
< td > txid < / t d >
< td > ` + coininventory.alice[index].txid + ` < / t d >
< / t r >
< tr >
< td > vout < / t d >
< td > ` + coininventory.alice[index].vout + ` < / t d >
< / t r >
< tr >
< td > value < / t d >
< td > ` + (parseFloat(coininventory.alice[index].value)/100000000).toFixed(8) + ` ` + coininventory.alice[index].coin + ` < / t d >
< / t r >
< tr >
< td > satoshis < / t d >
< td > ` + coininventory.alice[index].satoshis + ` < / t d >
< / t r >
< tr >
< td > txid2 < / t d >
< td > ` + coininventory.alice[index].txid2 + ` < / t d >
< / t r >
< tr >
< td > vout2 < / t d >
< td > ` + coininventory.alice[index].vout2 + ` < / t d >
< / t r >
< tr >
< td > value2 < / t d >
< td > ` + (parseFloat(coininventory.alice[index].value2)/100000000).toFixed(8) + ` ` + coininventory.alice[index].coin + ` < / t d >
< / t r >
< tr >
< td > desthash < / t d >
< td > ` + coininventory.alice[index].desthash + ` < / t d >
< / t r >
< / t b o d y >
< / t a b l e > ` ,
closeButton : true ,
size : 'large'
} ) ;
} ) ;
2017-10-26 03:28:48 -07:00
2017-10-19 06:43:14 -07:00
2017-10-27 02:08:57 -07:00
$ ( '.btn-makeinventory' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn-makeinventory clicked' ) ;
2017-10-27 03:44:54 -07:00
//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);
2017-11-04 07:57:53 -07:00
var selected _coin = JSON . parse ( sessionStorage . getItem ( 'mm_selectedcoin' ) ) ;
var coin _addr = selected _coin . addr ;
console . log ( coin _addr ) ;
2017-10-27 03:44:54 -07:00
var withdraw _outputs = [ ]
for ( var i = 0 ; i < slider _input1 ; i ++ ) {
var tmp _json = { }
2017-11-04 07:57:53 -07:00
tmp _json [ coin _addr ] = utxo _input1
2017-10-27 03:44:54 -07:00
//console.log(tmp_json)
withdraw _outputs . push ( tmp _json )
}
for ( var i = 0 ; i < slider _input2 ; i ++ ) {
var tmp _json = { }
2017-11-04 07:57:53 -07:00
tmp _json [ coin _addr ] = utxo _input2
2017-10-27 03:44:54 -07:00
withdraw _outputs . push ( tmp _json )
}
for ( var i = 0 ; i < slider _input3 ; i ++ ) {
var tmp _json = { }
2017-11-04 07:57:53 -07:00
tmp _json [ coin _addr ] = utxo _input3
2017-10-27 03:44:54 -07:00
withdraw _outputs . push ( tmp _json )
}
//console.log(withdraw_outputs);
inventory _data = { } ;
inventory _data [ 'coin' ] = $ ( this ) . data ( 'coin' ) ;
inventory _data [ 'outputs' ] = withdraw _outputs ;
2017-11-04 07:57:53 -07:00
console . log ( inventory _data ) ;
2017-10-27 03:44:54 -07:00
make _inventory _withdraw ( inventory _data ) ;
2017-10-27 02:08:57 -07:00
} ) ;
2017-11-01 02:00:04 -07:00
2017-11-04 07:57:53 -07:00
$ ( '.btn_coindashboard_exchange' ) . click ( function ( e ) {
2017-11-01 02:00:04 -07:00
e . preventDefault ( ) ;
2017-11-05 22:44:32 -08:00
console . log ( 'btn_coindashboard_exchange clicked' ) ;
2017-11-01 02:00:04 -07:00
console . log ( $ ( this ) . data ( ) ) ;
2017-11-04 07:57:53 -07:00
var selected _coin = JSON . parse ( sessionStorage . getItem ( 'mm_selectedcoin' ) ) ;
console . log ( selected _coin ) ;
var coin = selected _coin . coin ;
$ ( '.screen-coindashboard' ) . hide ( )
2017-11-01 02:00:04 -07:00
$ ( '.screen-exchange' ) . show ( ) ;
2017-11-04 07:57:53 -07:00
$ ( '.coin_ticker' ) . html ( coin ) ;
2017-11-16 13:24:39 -08:00
2017-11-04 13:45:26 -07:00
$ . each ( $ ( '.coinexchange[data-coin]' ) , function ( index , value ) {
2017-11-05 22:44:32 -08:00
//$('.coinexchange[data-coin]').attr('data-coin', coin);
$ ( '.coinexchange[data-coin]' ) . data ( 'coin' , coin ) ;
2017-11-04 13:45:26 -07:00
} ) ;
/ * $ ( ' . b t n - e x c h a n g e c l o s e ' ) . a t t r ( ' d a t a - c o i n ' , c o i n ) ;
2017-11-04 07:57:53 -07:00
$ ( '.btn-exchangerefresh' ) . attr ( 'data-coin' , coin ) ;
2017-11-04 10:53:15 -07:00
$ ( '.btn-myordersrefresh' ) . attr ( 'data-coin' , coin ) ;
2017-11-04 13:45:26 -07:00
$ ( '.btn-botlistrefresh' ) . attr ( 'data-coin' , coin ) ;
$ ( '.btn-refreshtrading_pair' ) . attr ( 'data-coin' , coin ) ; * /
2017-11-04 07:57:53 -07:00
check _coin _balance ( false ) ;
2017-11-16 13:24:39 -08:00
CheckOrderBookFn ( ) ;
CheckOrderbook _Interval = setInterval ( CheckOrderBookFn , 30000 ) ;
check _swap _status _Interval = setInterval ( check _swap _status , 20000 ) ;
2017-11-04 17:29:03 -07:00
check _swap _status ( ) ;
2017-11-16 13:24:39 -08:00
check _bot _list _Interval = setInterval ( check _bot _list , 10000 ) ;
2017-11-04 17:29:03 -07:00
check _bot _list ( ) ;
2017-11-16 13:24:39 -08:00
check _my _prices _Interval = setInterval ( check _my _prices , 60000 ) ;
2017-11-04 17:29:03 -07:00
check _my _prices ( ) ;
2017-11-16 13:24:39 -08:00
bot _screen _coin _balance _Interval = setInterval ( bot _screen _coin _balance , 30000 ) ;
2017-11-06 05:58:36 -08:00
bot _screen _coin _balance ( ) ;
2017-11-16 13:24:39 -08:00
bot _screen _sellcoin _balance _Interval = setInterval ( bot _screen _sellcoin _balance , 30000 ) ;
bot _screen _sellcoin _balance ( ) ;
2017-11-01 02:00:04 -07:00
} ) ;
2017-11-04 07:57:53 -07:00
$ ( '.btn-exchangeclose' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn-exchangeclose clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
2017-11-16 16:27:00 -08:00
//$('.screen-coindashboard').show()
2017-11-04 07:57:53 -07:00
$ ( '.screen-exchange' ) . hide ( ) ;
2017-11-16 16:27:00 -08:00
$ ( '.screen-portfolio' ) . show ( ) ;
2017-11-04 07:57:53 -07:00
CheckOrderBookFn ( false ) ;
2017-11-04 10:53:15 -07:00
check _swap _status ( false ) ;
2017-11-04 13:45:26 -07:00
check _bot _list ( false ) ;
2017-11-04 17:29:03 -07:00
check _my _prices ( false ) ;
2017-11-06 05:58:36 -08:00
bot _screen _coin _balance ( false ) ;
2017-11-16 13:24:39 -08:00
bot _screen _sellcoin _balance ( false ) ;
2017-11-16 16:27:00 -08:00
//check_coin_balance_Interval = setInterval(check_coin_balance(),3000);
//check_coin_balance();
2017-11-22 08:42:09 -08:00
$ ( '.porfolio_coins_list tbody' ) . empty ( ) ;
var actiavte _portfolio _coins _list _spinner = ''
actiavte _portfolio _coins _list _spinner += '<th colspan="7">' ;
actiavte _portfolio _coins _list _spinner += '<div style="text-align: center; height: 100px;">' ;
actiavte _portfolio _coins _list _spinner += '<svg id="portfolio-coins-spinner">' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '</svg>' ;
actiavte _portfolio _coins _list _spinner += '</div>' ;
actiavte _portfolio _coins _list _spinner += '</th>' ;
$ ( '.porfolio_coins_list tbody' ) . append ( actiavte _portfolio _coins _list _spinner ) ;
2017-11-16 16:27:00 -08:00
CheckPortfolioFn ( ) ;
CheckPortfolio _Interval = setInterval ( CheckPortfolioFn , 60000 ) ;
2017-11-04 07:57:53 -07:00
} ) ;
$ ( '.btn-exchangerefresh' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn-exchangerefresh clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
CheckOrderBookFn ( ) ;
} ) ;
2017-11-04 10:53:15 -07:00
$ ( '.btn-myordersrefresh' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn-myordersrefresh clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
check _my _prices ( ) ;
} ) ;
2017-11-04 13:45:26 -07:00
$ ( '.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' ) ) ;
2017-11-22 09:28:14 -08:00
console . log ( $ ( '.btn-bot_action' ) . attr ( 'data-action' ) )
2017-11-04 13:45:26 -07:00
2017-11-16 13:24:39 -08:00
var bot _or _manual = $ ( 'input[name=trading_mode_options]:checked' ) . val ( ) ;
if ( bot _or _manual == 'tradebot' ) {
pair _price = $ ( '.trading_pair_coin_price' ) . val ( ) ;
base _volume = $ ( '.trading_pair_coin_volume' ) . val ( ) ;
pair _volume = pair _price * base _volume ;
$ ( '.relvol_basevol' ) . html ( pair _volume . toFixed ( 8 ) ) ;
bot _data = { }
bot _data . price = pair _price ;
bot _data . volume = pair _volume ;
2017-11-24 17:04:01 -08:00
bot _data . action = $ ( this ) . data ( 'action' ) ;
//bot_data.action = $('.btn-bot_action').attr('data-action');
2017-11-16 13:24:39 -08:00
console . log ( bot _data ) ;
if ( pair _volume <= 0.01 || pair _price <= 0.01 ) {
console . log ( 'Order is too small. Please try again.' ) ;
toastr . warning ( 'Order is too small. Please try again with bigger order.' , 'Order Notification' )
} else {
//toastr.success('Placing Order', 'Order Notification');
}
//bot_buy_sell(bot_data);
buy _sell _precheck ( bot _data ) ;
} else if ( bot _or _manual == 'trademanual' ) {
pair _price = $ ( '.trading_pair_coin_price' ) . val ( ) ;
base _volume = $ ( '.trading_pair_coin_volume' ) . val ( ) ;
pair _volume = pair _price * base _volume ;
$ ( '.relvol_basevol' ) . html ( pair _volume . toFixed ( 8 ) ) ;
trader _only = $ ( '.trading_pair_destpubkey_yesno' ) . is ( ":checked" ) ;
trader _pubkey = $ ( '.trading_pair_destpubkey' ) . val ( ) ;
trade _data = { }
trade _data . price = pair _price ;
trade _data . volume = pair _volume ;
trade _data . trader _only = trader _only ;
trade _data . destpubkey = trader _pubkey ;
2017-11-24 17:04:01 -08:00
trade _data . action = $ ( this ) . data ( 'action' ) ;
//trade_data.action = $('.btn-bot_action').attr('data-action');
2017-11-16 13:24:39 -08:00
//console.log(trade_data);
if ( pair _volume <= 0.01 || pair _price <= 0.01 ) {
console . log ( 'Order is too small. Please try again.' ) ;
toastr . warning ( 'Order is too small. Please try again with bigger order.' , 'Order Notification' )
} else {
//toastr.success('Placing Order', 'Order Notification');
}
//manual_buy_sell(trade_data)
buy _sell _precheck ( trade _data ) ;
2017-11-20 04:33:36 -08:00
} else if ( bot _or _manual == 'tradeportfolio' ) {
var margin _or _fixed = $ ( '#trading_pair_coin_autoprice_mode' ) . prop ( 'checked' ) ;
var trade _data = { }
if ( margin _or _fixed == true ) {
trade _data . mode = 'margin' ;
trade _data . modeval = $ ( '.trading_pair_coin_price' ) . val ( ) / 100 ;
2017-11-24 17:04:01 -08:00
trade _data . action = $ ( this ) . data ( 'action' ) ;
//trade_data.action = $('.btn-bot_action').attr('data-action');
2017-11-20 04:33:36 -08:00
} else {
trade _data . mode = 'fixed' ;
trade _data . modeval = $ ( '.trading_pair_coin_price' ) . val ( ) ;
2017-11-24 17:04:01 -08:00
trade _data . action = $ ( this ) . data ( 'action' ) ;
//trade_data.action = $('.btn-bot_action').attr('data-action');
2017-11-20 04:33:36 -08:00
}
//console.log(trade_data);
autoprice _buy _sell ( trade _data ) ;
2017-11-16 13:24:39 -08:00
}
} ) ;
$ ( '.trading_pair_coin_price' ) . keyup ( function ( ) {
2017-11-04 13:45:26 -07:00
pair _price = $ ( '.trading_pair_coin_price' ) . val ( ) ;
2017-11-16 13:24:39 -08:00
base _volume = $ ( '.trading_pair_coin_volume' ) . val ( ) ;
2017-11-04 13:45:26 -07:00
2017-11-16 13:24:39 -08:00
pair _volume = pair _price * base _volume ;
2017-11-04 13:45:26 -07:00
2017-11-16 13:24:39 -08:00
$ ( '.relvol_basevol' ) . html ( pair _volume . toFixed ( 8 ) ) ;
} ) ;
$ ( '.trading_pair_coin_volume' ) . keyup ( function ( ) {
pair _price = $ ( '.trading_pair_coin_price' ) . val ( ) ;
base _volume = $ ( '.trading_pair_coin_volume' ) . val ( ) ;
pair _volume = pair _price * base _volume ;
$ ( '.relvol_basevol' ) . html ( pair _volume . toFixed ( 8 ) ) ;
2017-11-04 13:45:26 -07:00
} ) ;
$ ( '.exchange_bot_list_tbl tbody' ) . on ( 'click' , '.btn_bot_status' , function ( ) {
console . log ( 'bot status button clicked' )
console . log ( $ ( this ) . data ( ) ) ;
2017-11-04 17:29:03 -07:00
bot _status ( $ ( this ) . data ( ) ) ;
2017-11-04 13:45:26 -07:00
} ) ;
$ ( '.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 ( ) ) ;
} ) ;
2017-11-06 05:58:36 -08:00
$ ( '.btn-trading_coin_balance_refresh' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn-trading_coin_balance_refresh clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
2017-11-16 13:24:39 -08:00
bot _screen _sellcoin _balance ( ) ;
2017-11-06 05:58:36 -08:00
bot _screen _coin _balance ( ) ;
} )
2017-11-04 10:53:15 -07:00
2017-11-24 02:22:49 -08:00
function check _coin _balance ( chk _coin _data ) {
console . log ( chk _coin _data ) ;
if ( chk _coin _data == false ) {
2017-10-19 06:43:14 -07:00
clearInterval ( check _coin _balance _Interval ) ;
2017-10-26 02:56:05 -07:00
console . log ( 'checking coin balance stopped.' )
2017-11-04 07:57:53 -07:00
return
2017-10-19 06:43:14 -07:00
} else {
console . log ( 'checking coin balance' ) ;
}
2017-11-04 07:57:53 -07:00
var selected _coin = JSON . parse ( sessionStorage . getItem ( 'mm_selectedcoin' ) ) ;
console . log ( selected _coin ) ;
var coin = selected _coin . coin ;
console . log ( coin ) ;
2017-10-19 06:43:14 -07:00
2017-11-24 02:22:49 -08:00
//if (((chk_coin_data == null) ? coin : chk_coin_data.coin) == 'BTC') {
2017-11-05 22:44:32 -08:00
if ( coin == 'BTC' ) {
2017-11-04 07:57:53 -07:00
$ ( '#coindashboard-toggle' ) . bootstrapToggle ( 'enable' ) ;
} else {
$ ( '#coindashboard-toggle' ) . bootstrapToggle ( 'disable' ) ;
}
2017-10-19 06:43:14 -07:00
2017-11-04 07:57:53 -07:00
$ ( '.coindashboard-title' ) . empty ( ) ;
$ ( '.coindashboard-coin' ) . empty ( ) ;
$ ( '.coindashboard-balance' ) . empty ( ) ;
2017-11-05 22:44:32 -08:00
$ ( '.coindashboard-address[data-coin="' + coin + '"]' ) . empty ( ) ;
$ ( ".coindashboard-coinicon" ) . attr ( "src" , "img/cryptologo/" + coin . toLowerCase ( ) + ".png" ) ;
2017-10-19 06:43:14 -07:00
2017-11-05 22:44:32 -08:00
var coin _name = return _coin _name ( coin ) ;
2017-10-19 06:43:14 -07:00
2017-11-04 07:57:53 -07:00
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
2017-11-05 22:44:32 -08:00
var ajax _data = { "userpass" : userpass , "method" : "getcoin" , "coin" : coin } ;
2017-11-04 07:57:53 -07:00
var url = "http://127.0.0.1:7783" ;
2017-10-19 06:43:14 -07:00
2017-11-04 07:57:53 -07:00
$ . ajax ( {
async : true ,
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
2017-11-24 02:22:49 -08:00
} ) . done ( function ( chk _coin _output _data ) {
2017-11-04 07:57:53 -07:00
// If successful
//console.log(data);
2017-11-24 02:22:49 -08:00
if ( ! chk _coin _output _data . userpass === false ) {
2017-11-04 07:57:53 -07:00
console . log ( 'first marketmaker api call execution after marketmaker started.' )
2017-11-24 02:22:49 -08:00
sessionStorage . setItem ( 'mm_usercoins' , JSON . stringify ( chk _coin _output _data . coins ) ) ;
sessionStorage . setItem ( 'mm_userpass' , chk _coin _output _data . userpass ) ;
sessionStorage . setItem ( 'mm_mypubkey' , chk _coin _output _data . mypubkey ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-04 07:57:53 -07:00
}
2017-10-19 06:43:14 -07:00
2017-11-24 02:22:49 -08:00
if ( ! chk _coin _output _data . error === false && chk _coin _output _data . error == 'coin is disabled' ) {
console . log ( chk _coin _output _data . coin ) ;
console . log ( 'coin ' + chk _coin _output _data . coin . coin + ' is disabled' ) ;
$ ( '.btn_coindashboard_send[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . hide ( ) ;
$ ( '.btn_coindashboard_receive[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . hide ( ) ;
$ ( '.btn_coindashboard_exchange[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . hide ( ) ;
$ ( '.btn_coindashboard_inventory[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . hide ( ) ;
$ ( '.btn_coindashboard_enable[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . show ( ) ;
$ ( '.btn_coindashboard_disable[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . hide ( ) ;
2017-11-01 02:00:04 -07:00
2017-11-04 07:57:53 -07:00
$ ( '.coindashboard-balance' ) . html ( 'Coin is disabled.<br>Please enable before trading ' )
$ ( '.coindashboard-balance' ) . css ( "font-size" , "35px" ) ;
2017-11-01 02:00:04 -07:00
2017-11-04 07:57:53 -07:00
} else {
//console.log(data);
2017-11-24 02:22:49 -08:00
console . log ( chk _coin _output _data . coin ) ;
//console.log(chk_coin_output_data.coin.smartaddress);
2017-11-04 07:57:53 -07:00
//console.log(val);
2017-10-19 06:43:14 -07:00
2017-11-24 02:22:49 -08:00
$ ( '.btn_coindashboard_send[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . show ( ) ;
$ ( '.btn_coindashboard_receive[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . show ( ) ;
$ ( '.btn_coindashboard_exchange[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . show ( ) ;
$ ( '.btn_coindashboard_inventory[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . show ( ) ;
$ ( '.btn_coindashboard_enable[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . hide ( ) ;
$ ( '.btn_coindashboard_disable[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . show ( ) ;
$ ( '.coindashboard-address[data-coin="' + chk _coin _output _data . coin . coin + '"]' ) . html ( chk _coin _output _data . coin . smartaddress ) ;
$ ( '.coindashboard-title' ) . html ( coin _name + ' (' + chk _coin _output _data . coin . coin + ')' ) ;
$ ( '.coindashboard-coin' ) . html ( chk _coin _output _data . coin . coin ) ;
2017-11-04 07:57:53 -07:00
$ ( '.coindashboard-balance' ) . css ( "font-size" , "55px" ) ;
2017-11-24 02:22:49 -08:00
$ ( '.coindashboard-balance' ) . html ( chk _coin _output _data . coin . balance ) ;
$ ( '.coindashboard-height' ) . html ( chk _coin _output _data . coin . height ) ;
$ ( '.coindashboard-kmdvalue' ) . html ( chk _coin _output _data . coin . KMDvalue ) ;
$ ( '.btn_coindashboard_inventory[data-addr]' ) . attr ( 'data-addr' , chk _coin _output _data . coin . smartaddress ) ;
2017-11-04 07:57:53 -07:00
}
2017-10-19 06:43:14 -07:00
2017-11-24 02:22:49 -08:00
//if (chk_coin_output_data.error == 'coin is disabled') {
2017-11-04 07:57:53 -07:00
//console.log('coin '+ val + ' is disabled');
//}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
2017-10-19 06:43:14 -07:00
}
2017-11-16 13:24:39 -08:00
function get _coin _info ( coin ) {
2017-10-19 06:43:14 -07:00
2017-11-16 13:24:39 -08:00
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var ajax _data = { "userpass" : userpass , "method" : "getcoin" , "coin" : coin } ;
var url = "http://127.0.0.1:7783" ;
2017-10-19 06:43:14 -07:00
2017-11-16 13:24:39 -08:00
$ . ajax ( {
async : true ,
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
2017-11-24 02:22:49 -08:00
} ) . done ( function ( get _coin _info _output _data ) {
2017-11-16 13:24:39 -08:00
// If successful
2017-11-24 02:22:49 -08:00
console . log ( get _coin _info _output _data ) ;
if ( ! get _coin _info _output _data . userpass === false ) {
2017-11-16 13:24:39 -08:00
console . log ( 'first marketmaker api call execution after marketmaker started.' )
2017-11-24 02:22:49 -08:00
sessionStorage . setItem ( 'mm_usercoins' , JSON . stringify ( get _coin _info _output _data . coins ) ) ;
sessionStorage . setItem ( 'mm_userpass' , get _coin _info _output _data . userpass ) ;
sessionStorage . setItem ( 'mm_mypubkey' , get _coin _info _output _data . mypubkey ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-16 13:24:39 -08:00
}
2017-10-19 06:43:14 -07:00
2017-11-24 02:22:49 -08:00
if ( ! get _coin _info _output _data . error == true ) {
2017-11-16 13:24:39 -08:00
selected _coin = { }
selected _coin . coin = coin ;
selected _coin . coin _name = return _coin _name ( coin ) ;
2017-11-24 02:22:49 -08:00
selected _coin . addr = get _coin _info _output _data . coin . smartaddress ;
selected _coin . balance = get _coin _info _output _data . coin . balance ;
2017-11-16 13:24:39 -08:00
console . log ( selected _coin ) ;
sessionStorage . setItem ( 'mm_selectedcoin' , JSON . stringify ( selected _coin ) ) ;
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
2017-10-19 06:43:14 -07:00
}
2017-11-04 07:57:53 -07:00
function get _coins ( ) {
//console.log(data);
2017-10-19 06:43:14 -07:00
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
2017-11-01 02:00:04 -07:00
var ajax _data = { "userpass" : userpass , "method" : "getcoins" } ;
2017-10-19 06:43:14 -07:00
var url = "http://127.0.0.1:7783" ;
$ . ajax ( {
2017-11-04 07:57:53 -07:00
async : true ,
2017-10-19 06:43:14 -07:00
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
} ) . done ( function ( data ) {
// If successful
2017-11-01 02:00:04 -07:00
console . log ( data ) ;
2017-11-04 07:57:53 -07:00
$ . each ( data , function ( index , val ) {
//console.log(index);
//console.log(val);
if ( val . status == 'active' ) {
console . log ( index ) ;
console . log ( val ) ;
}
} ) ;
2017-10-19 06:43:14 -07:00
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 ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-10-19 06:43:14 -07:00
}
//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 ) ;
} ) ;
}
2017-11-16 13:24:39 -08:00
let electrumCoinsKeepAlive = { } ;
2017-10-19 06:43:14 -07:00
2017-11-24 02:22:49 -08:00
function enable _disable _coin ( enable _disable _coin _data ) {
if ( ! enable _disable _coin _data . electrum ) {
if ( electrumCoinsKeepAlive [ enable _disable _coin _data . coin ] &&
enable _disable _coin _data . method === 'disable' ) {
clearInterval ( electrumCoinsKeepAlive [ enable _disable _coin _data . coin ] ) ;
delete electrumCoinsKeepAlive [ enable _disable _coin _data . coin ] ;
2017-11-16 13:24:39 -08:00
} else {
const _int = setInterval ( ( ) => {
enable _disable _coin ( {
method : 'enable' ,
2017-11-24 02:22:49 -08:00
coin : enable _disable _coin _data . coin ,
2017-11-16 13:24:39 -08:00
electrum : false ,
} ) ;
2017-11-22 15:45:33 -08:00
} , 3600 * 1000 ) ;
2017-11-16 13:24:39 -08:00
2017-11-24 02:22:49 -08:00
electrumCoinsKeepAlive [ enable _disable _coin _data . coin ] = _int ;
2017-11-16 13:24:39 -08:00
}
}
2017-11-24 02:22:49 -08:00
console . warn ( 'enable disable' , enable _disable _coin _data ) ;
2017-10-19 06:43:14 -07:00
2017-11-24 02:22:49 -08:00
var electrum _option = enable _disable _coin _data . electrum //If 'false', electrum option selected
2017-10-19 06:43:14 -07:00
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var url = "http://127.0.0.1:7783" ;
2017-11-16 13:24:39 -08:00
2017-11-24 02:22:49 -08:00
if ( enable _disable _coin _data . method === 'disable' ) {
2017-11-16 13:24:39 -08:00
console . warn ( 'disable coin called' ) ;
2017-11-24 02:22:49 -08:00
var ajax _data = { "userpass" : userpass , "method" : "electrum" , "coin" : enable _disable _coin _data . coin } ;
2017-11-16 13:24:39 -08:00
$ . ajax ( {
async : true ,
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
2017-11-24 02:22:49 -08:00
} ) . done ( function ( disable _coin _output _data ) {
2017-11-16 13:24:39 -08:00
console . log ( 'enable_disable_coin' , 'electrum removed' ) ;
} ) ;
}
2017-10-19 06:43:14 -07:00
if ( electrum _option == false ) {
console . log ( electrum _option ) ;
2017-11-24 02:22:49 -08:00
console . log ( "electrum selected for " + enable _disable _coin _data . coin ) ;
2017-11-16 13:24:39 -08:00
//var rand_electrum_srv = get_random_electrum_server(data.coin);
2017-11-24 02:22:49 -08:00
$ . each ( electrum _servers _list [ enable _disable _coin _data . coin ] , function ( index , val ) {
2017-11-16 13:24:39 -08:00
var ipaddr = _ . keys ( val ) ;
var return _data _ipaddr = ipaddr [ 0 ] ;
var return _data _port = val [ ipaddr [ 0 ] ] ;
console . log ( return _data _ipaddr ) ;
console . log ( return _data _port ) ;
2017-11-24 02:22:49 -08:00
var ajax _data = { "userpass" : userpass , "method" : "electrum" , "coin" : enable _disable _coin _data . coin , "ipaddr" : return _data _ipaddr , "port" : return _data _port } ;
2017-11-16 13:24:39 -08:00
$ . ajax ( {
async : true ,
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
2017-11-24 02:22:49 -08:00
} ) . done ( function ( enable _electrum _coin _output _data ) {
2017-11-16 13:24:39 -08:00
// If successful
2017-11-24 02:22:49 -08:00
console . log ( enable _electrum _coin _output _data ) ;
if ( ! enable _electrum _coin _output _data . userpass === false ) {
2017-11-16 13:24:39 -08:00
console . log ( 'first marketmaker api call execution after marketmaker started.' )
2017-11-24 02:22:49 -08:00
sessionStorage . setItem ( 'mm_usercoins' , JSON . stringify ( enable _electrum _coin _output _data . coins ) ) ;
sessionStorage . setItem ( 'mm_userpass' , enable _electrum _coin _output _data . userpass ) ;
sessionStorage . setItem ( 'mm_mypubkey' , enable _electrum _coin _output _data . mypubkey ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-16 13:24:39 -08:00
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);
}
}
2017-11-24 02:22:49 -08:00
if ( ! enable _electrum _coin _output _data . error === false ) {
2017-11-16 13:24:39 -08:00
//console.log(data.error);
2017-11-24 02:22:49 -08:00
toastr . info ( enable _electrum _coin _output _data . error , 'Coin Status' ) ;
if ( enable _electrum _coin _output _data . error == 'couldnt find coin locally installed' ) { //{error: "couldnt find coin locally installed", coin: "BTC"}
2017-11-16 13:24:39 -08:00
bootbox . alert ( {
onEscape : true ,
backdrop : true ,
2017-11-24 02:22:49 -08:00
title : "Couldn't find " + enable _disable _coin _data . coin + " locally installed" ,
message : ` <p>It seems you don't have ` + enable _disable _coin _data . coin + ` wallet installed on your OS. Please check these following points to make sure you have your wallet setup properly:</p>
2017-11-16 13:24:39 -08:00
< ol >
< li > Make sure your wallet is installed properly . < / l i >
< li > Make sure your wallet is running and synced to network . < / l i >
< li > Make sure your wallet has proper RPC settings configured in it ' s configuration file . < / l i >
< li > If you have all the above covered properly , please logout and then login back and try activating the coin again . < / l i >
< / o l >
< 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>
< / u l > ` ,
size : 'large'
} ) ;
}
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
} ) ;
2017-10-19 06:43:14 -07:00
} else {
console . log ( electrum _option ) ;
2017-11-24 02:22:49 -08:00
console . log ( "native selected for " + enable _disable _coin _data . coin ) ;
var ajax _data = { "userpass" : userpass , "method" : enable _disable _coin _data . method , "coin" : enable _disable _coin _data . coin } ;
2017-10-19 06:43:14 -07:00
2017-11-16 13:24:39 -08:00
console . log ( ajax _data ) ;
2017-10-19 06:43:14 -07:00
2017-11-16 13:24:39 -08:00
$ . ajax ( {
async : true ,
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
2017-11-24 02:22:49 -08:00
} ) . done ( function ( enable _native _coin _output _data ) {
2017-11-16 13:24:39 -08:00
// If successful
2017-11-24 02:22:49 -08:00
console . log ( enable _native _coin _output _data ) ;
if ( ! enable _native _coin _output _data . userpass === false ) {
2017-11-16 13:24:39 -08:00
console . log ( 'first marketmaker api call execution after marketmaker started.' )
2017-11-24 02:22:49 -08:00
sessionStorage . setItem ( 'mm_usercoins' , JSON . stringify ( enable _native _coin _output _data . coins ) ) ;
sessionStorage . setItem ( 'mm_userpass' , enable _native _coin _output _data . userpass ) ;
sessionStorage . setItem ( 'mm_mypubkey' , enable _native _coin _output _data . mypubkey ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-16 13:24:39 -08:00
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' ) ;
}
2017-11-24 02:22:49 -08:00
//get_coins_list(enable_native_coin_output_data.coins);
2017-10-19 06:43:14 -07:00
} else {
2017-11-24 02:22:49 -08:00
//get_coins_list(enable_native_coin_output_data);
2017-11-16 13:24:39 -08:00
if ( electrum _option == false ) {
//get_coins_list('');
//$('.refresh_dex_balances').trigger('click');
} else {
2017-11-24 02:22:49 -08:00
//get_coins_list(enable_native_coin_output_data);
2017-11-16 13:24:39 -08:00
}
2017-10-19 06:43:14 -07:00
}
2017-10-20 12:05:10 -07:00
2017-11-24 02:22:49 -08:00
if ( ! enable _native _coin _output _data . error === false ) {
//console.log(enable_native_coin_output_data.error);
2017-11-24 06:11:02 -08:00
toastr . info ( enable _native _coin _output _data . error , 'Coin Status' ) ;
2017-11-24 02:22:49 -08:00
if ( enable _native _coin _output _data . error == 'couldnt find coin locally installed' ) { //{error: "couldnt find coin locally installed", coin: "BTC"}
2017-11-16 13:24:39 -08:00
bootbox . alert ( {
onEscape : true ,
backdrop : true ,
2017-11-24 02:22:49 -08:00
title : "Couldn't find " + enable _disable _coin _data . coin + " locally installed" ,
message : ` <p>It seems you don't have ` + enable _disable _coin _data . coin + ` wallet installed on your OS. Please check these following points to make sure you have your wallet setup properly:</p>
2017-11-16 13:24:39 -08:00
< ol >
< li > Make sure your wallet is installed properly . < / l i >
< li > Make sure your wallet is running and synced to network . < / l i >
< li > Make sure your wallet has proper RPC settings configured in it ' s configuration file . < / l i >
< li > If you have all the above covered properly , please logout and then login back and try activating the coin again . < / l i >
< / o l >
< 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>
< / u l > ` ,
size : 'large'
} ) ;
}
2017-10-20 12:05:10 -07:00
}
2017-11-16 13:24:39 -08:00
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
return
2017-10-20 12:05:10 -07:00
}
2017-10-26 02:56:05 -07:00
2017-10-27 00:18:01 -07:00
function check _coin _inventory ( coin ) {
console . log ( coin ) ;
2017-10-26 02:56:05 -07:00
2017-10-27 00:18:01 -07:00
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" ;
2017-10-26 02:56:05 -07:00
2017-10-27 00:18:01 -07:00
$ . 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 ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-10-27 00:18:01 -07:00
//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 ( ) ;
2017-11-16 13:24:39 -08:00
2017-11-22 08:42:09 -08:00
// Disabled since v0.6.8-beta
/ * v a r i n v _ a l i c e _ t a b l e _ t r = ' ' ;
2017-11-16 13:24:39 -08:00
inv _alice _table _tr += '<tr>' ;
inv _alice _table _tr += '<th>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>' ;
$ ( '.dex_showinv_alice_tbl tbody' ) . append ( inv _alice _table _tr ) ;
2017-10-27 00:18:01 -07:00
$ . each ( data . alice , function ( index , val ) {
//console.log(index);
//console.log(val);
2017-11-16 13:24:39 -08:00
inv _alice _table _tr = '' ;
inv _alice _table _tr += '<tr>' ;
inv _alice _table _tr += '<td>' + index + '</td>' ;
2017-10-27 00:18:01 -07:00
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 ) ;
2017-11-22 08:42:09 -08:00
} ) * /
2017-10-27 00:18:01 -07:00
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-11-22 08:42:09 -08:00
function check _coin _listunspent ( coin _listunspent _data ) {
console . log ( coin _listunspent _data ) ;
2017-11-01 02:00:04 -07:00
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
2017-11-22 08:42:09 -08:00
var ajax _data = { "userpass" : userpass , "method" : "listunspent" , "coin" : coin _listunspent _data . coin , "address" : coin _listunspent _data . addr } ;
2017-11-01 02:00:04 -07:00
var url = "http://127.0.0.1:7783" ;
$ . ajax ( {
async : true ,
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
2017-11-22 08:42:09 -08:00
} ) . done ( function ( coin _listunspent _output _data ) {
2017-11-01 02:00:04 -07:00
// If successful
2017-11-22 08:42:09 -08:00
console . log ( coin _listunspent _output _data ) ;
2017-11-01 02:00:04 -07:00
$ ( '.dex_showlist_unspents_tbl tbody' ) . empty ( ) ;
2017-11-16 13:24:39 -08:00
var show _list _unspents _tbl _tr = '' ;
show _list _unspents _tbl _tr += '<tr>' ;
show _list _unspents _tbl _tr += '<th style="width: 30px;">Index</th>' ;
2017-11-22 08:42:09 -08:00
show _list _unspents _tbl _tr += '<th>Coin Info</th>' ;
show _list _unspents _tbl _tr += '<th>Value info</th>' ;
show _list _unspents _tbl _tr += '<th>Transaction Info</th>' ;
2017-11-16 13:24:39 -08:00
show _list _unspents _tbl _tr += '</tr>' ;
$ ( '.dex_showlist_unspents_tbl tbody' ) . append ( show _list _unspents _tbl _tr ) ;
2017-11-22 08:42:09 -08:00
$ . each ( coin _listunspent _output _data , function ( index , val ) {
2017-11-01 02:00:04 -07:00
//console.log(index);
//console.log(val);
2017-11-16 13:24:39 -08:00
show _list _unspents _tbl _tr = '' ;
2017-11-01 02:00:04 -07:00
show _list _unspents _tbl _tr += '<tr>' ;
show _list _unspents _tbl _tr += '<td>' + index + '</td>' ;
2017-11-22 08:42:09 -08:00
show _list _unspents _tbl _tr += ` <td>
< b > Coin : < / b > ` + c o i n _ l i s t u n s p e n t _ d a t a . c o i n + ` < b r >
< b > Account : < / b > ` + v a l . a c c o u n t + ` < b r >
< b > Address : < / b > ` + v a l . a d d r e s s + ` < b r >
< / t d > ` ;
show _list _unspents _tbl _tr += ` <td>
2017-11-24 16:21:46 -08:00
< b > Amount : < / b > ` + ( p a r s e F l o a t ( v a l . a m o u n t ) ) . t o F i x e d ( 8 ) + ' ' + c o i n _ l i s t u n s p e n t _ d a t a . c o i n + ` < b r >
2017-11-22 08:42:09 -08:00
< b > Confirmations : < / b > ` + v a l . c o n f i r m a t i o n s + ` < b r >
< b > Interest : < / b > ` + v a l . i n t e r e s t + ` < b r >
< / t d > ` ;
show _list _unspents _tbl _tr += ` <td>
< b > scriptPubKey : < / b > ` + v a l . s c r i p t P u b K e y + ` < b r >
< b > TxID : < / b > ` + v a l . t x i d + ` < b r >
< / t d > ` ;
2017-11-01 02:00:04 -07:00
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 ) ;
} ) ;
}
2017-10-27 00:18:01 -07:00
2017-11-06 05:58:36 -08:00
$ ( "#inventory_slider_input1" ) . keyup ( function ( ) {
var utxo _input = $ ( "#inventory_slider_input1" ) . val ( ) ;
var slider1 _value = $ ( "#inventory-slider1" ) . val ( ) ;
2017-11-06 06:08:36 -08:00
$ ( "#inventory-slider1Total" ) . text ( ( slider1 _value * utxo _input ) . toFixed ( 8 ) ) ;
2017-11-06 05:58:36 -08:00
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 ) ) ;
2017-11-16 13:24:39 -08:00
//var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin _balance = $ ( '.inventory-title' ) . data ( 'balance' ) ;
2017-11-06 05:58:36 -08:00
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 ( ) ;
2017-11-06 06:08:36 -08:00
$ ( "#inventory-slider2Total" ) . text ( ( slider2 _value * utxo _input ) . toFixed ( 8 ) ) ;
2017-11-06 05:58:36 -08:00
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 ) ) ;
2017-11-16 13:24:39 -08:00
//var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin _balance = $ ( '.inventory-title' ) . data ( 'balance' ) ;
2017-11-06 05:58:36 -08:00
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 ( ) ;
2017-11-06 06:08:36 -08:00
$ ( "#inventory-slider3Total" ) . text ( ( slider3 _value * utxo _input ) . toFixed ( 8 ) ) ;
2017-11-06 05:58:36 -08:00
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 ) ) ;
2017-11-16 13:24:39 -08:00
//var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin _balance = $ ( '.inventory-title' ) . data ( 'balance' ) ;
2017-11-06 05:58:36 -08:00
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" ) ;
}
} ) ;
2017-10-27 00:18:01 -07:00
$ ( "#inventory-slider1" ) . slider ( ) ;
$ ( "#inventory-slider1" ) . on ( "slide" , function ( slideEvt ) {
$ ( "#inventory-slider1Val" ) . text ( slideEvt . value ) ;
utxo _input = $ ( "#inventory_slider_input1" ) . val ( ) ;
2017-11-06 06:08:36 -08:00
$ ( "#inventory-slider1Total" ) . text ( ( slideEvt . value * utxo _input ) . toFixed ( 8 ) ) ;
2017-10-27 02:08:57 -07:00
2017-11-06 05:58:36 -08:00
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 ;
2017-10-27 02:08:57 -07:00
$ ( '.inventory-sliderTotal' ) . text ( slider _total . toFixed ( 8 ) ) ;
2017-11-06 05:58:36 -08:00
2017-11-16 13:24:39 -08:00
//var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin _balance = $ ( '.inventory-title' ) . data ( 'balance' ) ;
2017-11-06 05:58:36 -08:00
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" ) ;
}
2017-10-27 00:18:01 -07:00
} ) ;
$ ( "#inventory-slider2" ) . slider ( ) ;
$ ( "#inventory-slider2" ) . on ( "slide" , function ( slideEvt ) {
$ ( "#inventory-slider2Val" ) . text ( slideEvt . value ) ;
utxo _input = $ ( "#inventory_slider_input2" ) . val ( ) ;
2017-11-06 06:08:36 -08:00
$ ( "#inventory-slider2Total" ) . text ( ( slideEvt . value * utxo _input ) . toFixed ( 8 ) ) ;
2017-10-27 02:08:57 -07:00
2017-11-06 05:58:36 -08:00
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 ;
2017-10-27 02:08:57 -07:00
$ ( '.inventory-sliderTotal' ) . text ( slider _total . toFixed ( 8 ) ) ;
2017-11-06 05:58:36 -08:00
2017-11-16 13:24:39 -08:00
//var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin _balance = $ ( '.inventory-title' ) . data ( 'balance' ) ;
2017-11-06 05:58:36 -08:00
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" ) ;
}
2017-10-27 00:18:01 -07:00
} ) ;
$ ( "#inventory-slider3" ) . slider ( ) ;
$ ( "#inventory-slider3" ) . on ( "slide" , function ( slideEvt ) {
$ ( "#inventory-slider3Val" ) . text ( slideEvt . value ) ;
utxo _input = $ ( "#inventory_slider_input3" ) . val ( ) ;
2017-11-06 06:08:36 -08:00
$ ( "#inventory-slider3Total" ) . text ( ( slideEvt . value * utxo _input ) . toFixed ( 8 ) ) ;
2017-10-27 02:08:57 -07:00
2017-11-06 05:58:36 -08:00
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 ;
2017-10-27 02:08:57 -07:00
$ ( '.inventory-sliderTotal' ) . text ( slider _total . toFixed ( 8 ) ) ;
2017-11-06 05:58:36 -08:00
2017-11-16 13:24:39 -08:00
//var selected_coin = JSON.parse(sessionStorage.getItem('mm_selectedcoin'));
var coin _balance = $ ( '.inventory-title' ) . data ( 'balance' ) ;
2017-11-06 05:58:36 -08:00
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" ) ;
}
2017-10-27 00:18:01 -07:00
} ) ;
function clac _coin _inventory ( data ) {
console . log ( data ) ;
2017-10-26 02:56:05 -07:00
2017-10-27 00:18:01 -07:00
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 ) ;
2017-10-27 02:08:57 -07:00
$ ( '.inventory-sliderTotal' ) . text ( slider _total . toFixed ( 8 ) ) ;
2017-10-27 03:44:54 -07:00
}
2017-11-22 08:42:09 -08:00
function make _inventory _withdraw ( mk _inv _data ) {
2017-10-27 03:44:54 -07:00
//console.log(data);
2017-11-22 08:42:09 -08:00
coin = mk _inv _data . coin ;
2017-10-27 03:44:54 -07:00
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
2017-11-22 08:42:09 -08:00
var ajax _data = { "userpass" : userpass , "method" : "withdraw" , "coin" : mk _inv _data . coin , "outputs" : mk _inv _data . outputs } ;
2017-10-27 03:44:54 -07:00
var url = "http://127.0.0.1:7783" ;
console . log ( ajax _data ) ;
2017-11-22 08:42:09 -08:00
console . log ( JSON . stringify ( ajax _data ) ) ;
2017-10-27 03:44:54 -07:00
2017-11-22 08:42:09 -08:00
$ . ajax ( {
data : JSON . stringify ( ajax _data ) ,
//dataType: 'json',
type : 'POST' ,
url : url
} ) . done ( function ( mk _inv _withdraw _data ) {
console . log ( mk _inv _withdraw _data ) ;
var paprsed _mk _inv _withdraw _data = JSON . parse ( mk _inv _withdraw _data ) ;
if ( paprsed _mk _inv _withdraw _data . complete == false ) {
toastr . error ( 'Uncessful Transaction. Please try again.' , 'Tansaction info' ) ;
}
if ( paprsed _mk _inv _withdraw _data . complete == true ) {
var mk _inv _confirm _bootbox = bootbox . dialog ( {
backdrop : true ,
onEscape : true ,
message : ` <p>Sending a transaction to make small deposit change in your address for coin: <b> ` + mk _inv _data . coin + ` </b></p>
< p > Please confirm if you wish to proceed sending this transaction . Regular Transaction fee applies to make this deposit change . < p > < br > ` + JSON.stringify(mk_inv_data.outputs, null, 2),
closeButton : true ,
size : 'medium' ,
buttons : {
cancel : {
label : "Cancel" ,
className : 'btn-default' ,
callback : function ( ) {
}
} ,
ok : {
label : "Confirm" ,
className : 'btn-primary btn_mk_inv_confirm_bootbox' ,
callback : function ( ) {
mk _inv _sendrawtx ( paprsed _mk _inv _withdraw _data , mk _inv _data . coin ) ;
}
}
}
} ) ;
mk _inv _confirm _bootbox . init ( function ( ) {
console . log ( 'mk_inv_confirm_bootbox dialog opened.' )
} ) ;
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
function mk _inv _sendrawtx ( mk _inv _rawtx _data , mk _inv _rawtx _coin ) {
console . log ( mk _inv _rawtx _data ) ;
console . log ( mk _inv _rawtx _coin ) ;
if ( mk _inv _rawtx _data . hasOwnProperty ( 'withdraw' ) ) { console . log ( mk _inv _rawtx _data . withdraw . hex ) ; }
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
var ajax _data = { "userpass" : userpass , "method" : "sendrawtransaction" , "coin" : mk _inv _rawtx _coin , "signedtx" : ( mk _inv _rawtx _data . hasOwnProperty ( 'withdraw' ) ? mk _inv _rawtx _data . withdraw . hex : mk _inv _rawtx _data . hex ) } ;
var url = "http://127.0.0.1:7783" ;
console . log ( ajax _data ) ;
console . log ( JSON . stringify ( ajax _data ) ) ;
$ . ajax ( {
data : JSON . stringify ( ajax _data ) ,
//dataType: 'json',
type : 'POST' ,
url : url
} ) . done ( function ( mk _inv _sendrawtx _output _data ) {
// If successful
console . log ( mk _inv _sendrawtx _output _data ) ;
var parsed _mk _inv _sendrawtx _output _data = '' ;
try {
parsed _mk _inv _sendrawtx _output _data = JSON . parse ( bot _output _data ) ;
console . log ( parsed _mk _inv _sendrawtx _output _data ) ;
if ( ! parsed _mk _inv _sendrawtx _output _data . hasOwnProperty ( 'error' ) === false && parsed _mk _inv _sendrawtx _output _data . error === false ) {
toastr . error ( parsed _mk _inv _sendrawtx _output _data . error . message , 'Transaction Info' ) ;
} else if ( parsed _mk _inv _sendrawtx _output _data . result == null ) {
bootbox . alert ( '<p>Error making withdraw transaction: </p><br>' + JSON . stringify ( parsed _mk _inv _sendrawtx _output _data . error , null , 2 ) ) ;
} else if ( parsed _mk _inv _sendrawtx _output _data . result == 'success' ) {
toastr . info ( 'Low no. of UTXOs<br>Please try again in 1 Minute.' , 'Transaction Status' ) ;
}
} catch ( e ) {
console . log ( e ) ;
var txid _explorer = '' ;
if ( mk _inv _rawtx _coin == 'MNZ' ) {
txid _explorer = 'https://www.mnzexplorer.com/tx/'
} else if ( mk _inv _rawtx _coin == 'KMD' ) {
txid _explorer = 'https://www.kmd.host/tx/'
} else if ( mk _inv _rawtx _coin == 'BTC' ) {
txid _explorer = 'https://www.blocktrail.com/BTC/tx/'
} else if ( mk _inv _rawtx _coin == 'ZEC' ) {
txid _explorer = 'https://zchain.online/tx/'
}
bootbox . alert ( ` Transaction Sent Successfully. Here's the Transaction ID:<br>
< a href = "#" onclick = "shell.openExternal('`+txid_explorer+mk_inv_sendrawtx_output_data+`'); return false;" > ` + mk_inv_sendrawtx_output_data + ` < / a > ` ) ;
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
2017-10-27 03:44:54 -07:00
} ) ;
}
2017-11-01 02:00:04 -07:00
2017-11-06 10:22:12 -08:00
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' ) ;
2017-11-16 13:24:39 -08:00
2017-11-06 10:22:12 -08:00
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 ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-06 10:22:12 -08:00
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' ) ;
2017-11-16 13:24:39 -08:00
2017-11-06 10:22:12 -08:00
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 ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-06 10:22:12 -08:00
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 ) ;
/ * i f ( v a l . s t a t u s = = ' a c t i v e ' ) {
$ ( '.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 ( {
2017-11-16 13:24:39 -08:00
onEscape : true ,
backdrop : true ,
2017-11-06 10:22:12 -08:00
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 < / s t r o n g > < / h 3 >
< / d i v >
< 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%" > < / s e l e c t >
< / d i v >
< div class = "col-sm-6" >
2017-11-16 13:24:39 -08:00
< 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" >
2017-11-06 10:22:12 -08:00
< / d i v >
< / d i v >
< / d i v >
< / d i v >
< / d i v > ` ,
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 ) ;
2017-11-22 08:42:09 -08:00
$ ( '.porfolio_coins_list tbody' ) . empty ( ) ;
var actiavte _portfolio _coins _list _spinner = ''
actiavte _portfolio _coins _list _spinner += '<th colspan="7">' ;
actiavte _portfolio _coins _list _spinner += '<div style="text-align: center; height: 100px;">' ;
actiavte _portfolio _coins _list _spinner += '<svg id="portfolio-coins-spinner">' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '</svg>' ;
actiavte _portfolio _coins _list _spinner += '</div>' ;
actiavte _portfolio _coins _list _spinner += '</th>' ;
$ ( '.porfolio_coins_list tbody' ) . append ( actiavte _portfolio _coins _list _spinner ) ;
2017-11-06 10:22:12 -08:00
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();
2017-11-16 13:24:39 -08:00
2017-11-06 10:22:12 -08:00
} ) ;
}
2017-11-01 02:00:04 -07:00
/* 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' ) ;
2017-11-16 13:24:39 -08:00
2017-11-01 02:00:04 -07:00
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 ) ;
2017-11-04 07:57:53 -07:00
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 ( ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-04 07:57:53 -07:00
return
}
PortfolioTblDataFn ( data ) ;
PortfolioChartUpdate ( data . portfolio ) ;
2017-11-01 02:00:04 -07:00
//$('.initcoinswap-output').html(JSON.stringify(data, null, 2));
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-11-22 08:42:09 -08:00
function PortfolioTblDataFn ( portfolio _tbl _data ) {
console . log ( portfolio _tbl _data . portfolio . length ) ;
if ( portfolio _tbl _data . portfolio &&
portfolio _tbl _data . portfolio . length ) {
$ ( '#portfolio-coins-spinner' ) . hide ( ) ;
}
2017-11-01 02:00:04 -07:00
2017-11-22 08:42:09 -08:00
$ ( '.portfolio_kmd_equiv' ) . html ( portfolio _tbl _data . kmd _equiv ) ;
$ ( '.portfolio_buycoin' ) . html ( portfolio _tbl _data . buycoin ) ;
$ ( '.portfolio_buyforce' ) . html ( portfolio _tbl _data . buyforce ) ;
$ ( '.portfolio_sellcoin' ) . html ( portfolio _tbl _data . sellcoin ) ;
$ ( '.portfolio_sellforce' ) . html ( portfolio _tbl _data . sellforce ) ;
$ ( '.portfolio_base' ) . html ( portfolio _tbl _data . base ) ;
$ ( '.portfolio_rel' ) . html ( portfolio _tbl _data . rel ) ;
$ ( '.portfolio_relvolume' ) . html ( portfolio _tbl _data . relvolume ) ;
2017-11-01 02:00:04 -07:00
$ ( '.dex_portfolio_coins_tbl tbody' ) . empty ( ) ;
2017-11-04 07:57:53 -07:00
$ ( '.porfolio_coins_list tbody' ) . empty ( ) ;
2017-11-22 08:42:09 -08:00
$ . each ( portfolio _tbl _data . portfolio , function ( index , val ) {
2017-11-01 02:00:04 -07:00
//console.log(index);
2017-11-04 07:57:53 -07:00
console . log ( val ) ;
2017-11-01 02:00:04 -07:00
var coin _name = return _coin _name ( val . coin )
var dex _portfolio _coins _tbl _tr = '' ;
dex _portfolio _coins _tbl _tr += '<tr>' ;
2017-11-04 07:57:53 -07:00
dex _portfolio _coins _tbl _tr += '<td><img src="img/cryptologo/' + val . coin . toLowerCase ( ) + '.png" width="30px;"/> ' + coin _name + ' (' + val . coin + ')</td>' ;
2017-11-01 02:00:04 -07:00
//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 . goal + '</td>' ;
dex _portfolio _coins _tbl _tr += '<td>' + val . goalperc + '</td>' ;
2017-11-18 00:46:55 -08:00
dex _portfolio _coins _tbl _tr += '<td>' + val . kmd _equiv + '</td>' ;
2017-11-20 05:58:11 -08:00
dex _portfolio _coins _tbl _tr += ` <td>
2017-11-20 06:34:18 -08:00
< button class = "btn btn-sm btn-default btn_portfolio_coingoal" data - coin = "` + val.coin + `" data - auto = false > Set Goal < span class = "glyphicon glyphicon-export" aria - hidden = "true" > < / s p a n > < / b u t t o n >
2017-11-20 05:58:11 -08:00
< 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 + `" > Exchange < span class = "glyphicon glyphicon-chevron-right" aria - hidden = "true" > < / s p a n > < / b u t t o n >
< / t d > `
2017-11-18 00:46:55 -08:00
//dex_portfolio_coins_tbl_tr += '<td>' + val.perc + '</td>';
/ * d e x _ p o r t f o l i o _ c o i n s _ t b l _ t r + = ' < t d > ' + v a l . r e l v o l u m e + ' < / t d > ' ;
2017-11-01 02:00:04 -07:00
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>' ;
2017-11-04 07:57:53 -07:00
dex _portfolio _coins _tbl _tr += '<td>' + val . bobutil + '</td>' ; * /
2017-11-01 02:00:04 -07:00
dex _portfolio _coins _tbl _tr += '</tr>' ;
2017-11-04 07:57:53 -07:00
$ ( '.porfolio_coins_list tbody' ) . append ( dex _portfolio _coins _tbl _tr ) ;
2017-11-01 02:00:04 -07:00
} )
} ;
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 ,
2017-11-04 07:57:53 -07:00
"marginTop" : 30 ,
"marginBottom" : 15 ,
"marginLeft" : 0 ,
"marginRight" : 0 ,
"pullOutRadius" : 0 ,
2017-11-01 02:00:04 -07:00
/ * " t i t l e s " : [
{
"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 ,
2017-11-04 07:57:53 -07:00
"marginTop" : 30 ,
"marginBottom" : 15 ,
"marginLeft" : 0 ,
"marginRight" : 0 ,
"pullOutRadius" : 0 ,
2017-11-01 02:00:04 -07:00
/ * " t i t l e s " : [
{
"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
}
} ) ;
}
2017-11-04 07:57:53 -07:00
$ ( '.btn-refreshportfolio' ) . click ( function ( ) {
2017-11-01 02:00:04 -07:00
console . log ( 'clicked refresh button at dex portfolio charts' ) ;
2017-11-22 08:42:09 -08:00
$ ( '.porfolio_coins_list tbody' ) . empty ( ) ;
var actiavte _portfolio _coins _list _spinner = ''
actiavte _portfolio _coins _list _spinner += '<th colspan="7">' ;
actiavte _portfolio _coins _list _spinner += '<div style="text-align: center; height: 100px;">' ;
actiavte _portfolio _coins _list _spinner += '<svg id="portfolio-coins-spinner">' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '</svg>' ;
actiavte _portfolio _coins _list _spinner += '</div>' ;
actiavte _portfolio _coins _list _spinner += '</th>' ;
$ ( '.porfolio_coins_list tbody' ) . append ( actiavte _portfolio _coins _list _spinner ) ;
2017-11-01 02:00:04 -07:00
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 ) ;
} ) ;
} )
2017-11-20 05:32:02 -08:00
function set _coin _goal ( goal _data ) {
console . log ( goal _data ) ;
2017-11-01 02:00:04 -07:00
2017-11-20 05:58:11 -08:00
//console.log('AUTO GOAL: ' + goal_data.auto);
//console.log('GOAL PERCENTAGE: ' + goal_data.percent);
//console.log('GOAL COIN: '+ goal_data.coin);
2017-11-01 02:00:04 -07:00
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
2017-11-20 05:32:02 -08:00
if ( goal _data . auto == false ) {
var ajax _data = { "userpass" : userpass , "method" : "goal" , "coin" : goal _data . coin , "val" : goal _data . percent } ;
} else {
var ajax _data = { "userpass" : userpass , "method" : "goal" } ;
}
2017-11-01 02:00:04 -07:00
var url = "http://127.0.0.1:7783" ;
$ . ajax ( {
2017-11-20 05:32:02 -08:00
async : true ,
2017-11-01 02:00:04 -07:00
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
} ) . done ( function ( data ) {
// If successful
console . log ( data ) ;
2017-11-20 05:58:11 -08:00
if ( goal _data . auto == false ) {
toastr . success ( 'Goal for ' + goal _data . coin + ' set to: ' + goal _data . percent + '%' , 'Portfolio Info' )
} else {
bootbox . alert ( 'Auto Goal executed for all active coins. Make sure you have set Auto Price for these coins.' ) ;
}
2017-11-01 02:00:04 -07:00
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
2017-11-20 05:58:11 -08:00
2017-11-22 09:28:14 -08:00
$ ( '.porfolio_coins_list tbody' ) . empty ( ) ;
var actiavte _portfolio _coins _list _spinner = ''
actiavte _portfolio _coins _list _spinner += '<th colspan="7">' ;
actiavte _portfolio _coins _list _spinner += '<div style="text-align: center; height: 100px;">' ;
actiavte _portfolio _coins _list _spinner += '<svg id="portfolio-coins-spinner">' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>' ;
actiavte _portfolio _coins _list _spinner += '</svg>' ;
actiavte _portfolio _coins _list _spinner += '</div>' ;
actiavte _portfolio _coins _list _spinner += '</th>' ;
$ ( '.porfolio_coins_list tbody' ) . append ( actiavte _portfolio _coins _list _spinner ) ;
2017-11-20 05:58:11 -08:00
CheckPortfolioFn ( ) ;
2017-11-20 05:32:02 -08:00
}
2017-11-01 02:00:04 -07:00
2017-11-20 04:33:36 -08:00
$ ( '#trading_pair_coin_autoprice_mode' ) . change ( function ( ) {
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
var bot _or _manual = $ ( 'input[name=trading_mode_options]:checked' ) . val ( ) ;
var margin _or _fixed = $ ( '#trading_pair_coin_autoprice_mode' ) . prop ( 'checked' ) ;
if ( bot _or _manual == 'tradeportfolio' ) {
if ( margin _or _fixed == true ) {
$ ( '#trading_pair_coin_price_max_min' ) . show ( ) ;
$ ( '.trading_pair_coin_price' ) . css ( 'border-radius' , '0' )
//$('.trading_pair_coin_price').attr("placeholder", "Margin e.g. 0.01");
if ( buying _or _selling == 'buying' ) {
$ ( '.btn-bot_action' ) . html ( 'SET AUTO BUY MARGIN %' ) ;
$ ( '.portfolio_info_text' ) . html ( "Auto buy margin will make automatic buy orders on lower prices based on the specified percentage." ) ;
}
if ( buying _or _selling == 'selling' ) {
$ ( '.btn-bot_action' ) . html ( 'SET AUTO SELL MARGIN %' ) ;
$ ( '.portfolio_info_text' ) . html ( "Auto sell margin will make automatic sell orders on higher prices based on the specified percentage." ) ;
}
} else {
$ ( '#trading_pair_coin_price_max_min' ) . hide ( ) ;
$ ( '.trading_pair_coin_price' ) . css ( 'border-radius' , '4px' )
//$('.trading_pair_coin_price').attr("placeholder", "Price e.g. 0.01");
if ( buying _or _selling == 'buying' ) {
$ ( '.btn-bot_action' ) . html ( 'SET AUTO BUY PRICE' ) ;
$ ( '.portfolio_info_text' ) . html ( "Auto buy on fixed price will make automatic buy orders on prices based on the specified price." ) ;
}
if ( buying _or _selling == 'selling' ) {
$ ( '.btn-bot_action' ) . html ( 'SET AUTO SELL PRICE' ) ;
$ ( '.portfolio_info_text' ) . html ( "Auto sell on fixed price will make automatic sell orders on prices based on the specified price." ) ;
}
}
}
} ) ;
2017-11-20 05:32:02 -08:00
$ ( '.btn_set_coin_goal' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn_set_coin_goal clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
var selected _coin = JSON . parse ( sessionStorage . getItem ( 'mm_selectedcoin' ) ) ;
var coin = selected _coin . coin ;
console . log ( coin ) ;
var goal _data = { }
goal _data . coin = coin ;
goal _data . auto = $ ( this ) . data ( 'auto' ) ;
goal _data . percent = $ ( '.coingoal_percentage' ) . val ( ) ;
2017-11-20 05:58:11 -08:00
//console.log(goal_data);
2017-11-20 05:32:02 -08:00
set _coin _goal ( goal _data ) ;
2017-11-20 05:58:11 -08:00
} ) ;
$ ( '.btn-autogoalall' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn-autogoalall clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
var goal _data = { }
goal _data . auto = $ ( this ) . data ( 'auto' ) ;
2017-11-20 06:34:18 -08:00
bootbox . confirm ( {
message : "Are you sure you want to set Auto Goal for all active/enabled coins?<br>It will reset your existing coin goals and you have to set individual coin's goal again. Please click Yes button to proceed, or hit No button to cancel." ,
buttons : {
confirm : {
label : 'Yes' ,
className : 'btn-success'
} ,
cancel : {
label : 'No' ,
className : 'btn-danger'
}
} ,
callback : function ( result ) {
if ( result == true ) {
//console.log(goal_data);
set _coin _goal ( goal _data ) ;
}
}
} ) ;
2017-11-20 05:58:11 -08:00
} ) ;
2017-11-20 05:32:02 -08:00
2017-11-20 04:33:36 -08:00
function autoprice _buy _sell ( autoprice _data ) {
console . log ( autoprice _data ) ;
var selected _coin = JSON . parse ( sessionStorage . getItem ( 'mm_selectedcoin' ) ) ;
var coin = selected _coin . coin ;
//console.log(coin);
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
var margin _or _fixed = $ ( '#trading_pair_coin_autoprice_mode' ) . prop ( 'checked' ) ;
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 ( autoprice _data . mode == 'margin' ) {
var ajax _data = { "userpass" : userpass , "method" : "autoprice" , "base" : base _coin , "rel" : rel _coin , "margin" : autoprice _data . modeval } ;
}
if ( autoprice _data . mode == 'fixed' ) {
var ajax _data = { "userpass" : userpass , "method" : "autoprice" , "base" : base _coin , "rel" : rel _coin , "fixed" : autoprice _data . modeval } ;
}
console . log ( ajax _data ) ;
console . log ( JSON . stringify ( 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 ) ;
$ ( '.trading_pair_coin_price' ) . val ( '' ) ;
$ ( '.trading_pair_coin_volume' ) . val ( '' ) ;
$ ( '.trading_pair_destpubkey' ) . val ( '' ) ;
$ ( '.relvol_basevol' ) . html ( '' ) ;
if ( ! data . error === false ) {
toastr . error ( data . error , 'Trade Info' ) ;
} else if ( data . result == 'success' ) {
toastr . success ( 'Order Executed' , 'Trade Info' ) ;
var autoprice _mode = '' ;
var percent _on _off = '' ;
var autoprice _modeinfo = '' ;
2017-11-20 05:58:11 -08:00
var autoprice _modeval = '' ;
2017-11-20 04:33:36 -08:00
if ( autoprice _data . mode == 'margin' ) {
autoprice _mode = 'Margin' ;
percent _on _off = '%' ;
autoprice _modeinfo = 'Margin Percentage' ;
2017-11-20 05:58:11 -08:00
autoprice _modeval = autoprice _data . modeval * 100 ;
2017-11-20 04:33:36 -08:00
}
if ( autoprice _data . mode == 'fixed' ) {
autoprice _mode = 'Fixed' ;
percent _on _off = '' ;
autoprice _modeinfo = 'Fixed Price' ;
2017-11-20 05:58:11 -08:00
autoprice _modeval = autoprice _data . modeval ;
2017-11-20 04:33:36 -08:00
}
bootbox . alert ( autoprice _mode + ` auto price order executed:<br>
< b > Buying Currency ( base ) : < / b > ` + b a s e _ c o i n + ` < b r >
< b > Selling Currency ( rel ) : < / b > ` + r e l _ c o i n + ` < b r >
2017-11-20 05:58:11 -08:00
< b > ` + autoprice_modeinfo + ` : < / b > ` + a u t o p r i c e _ m o d e v a l + ` ` + p e r c e n t _ o n _ o f f ) ;
2017-11-20 04:33:36 -08:00
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-11-01 02:00:04 -07:00
/* Portfolio section functions END */
2017-11-04 07:57:53 -07:00
2017-11-16 13:24:39 -08:00
/* Manual Tradeing */
2017-11-04 07:57:53 -07:00
2017-11-16 13:24:39 -08:00
$ ( 'input[name=trading_mode_options]' ) . change ( function ( ) {
console . log ( 'trading_mode_options changed' ) ;
2017-11-04 07:57:53 -07:00
2017-11-20 04:33:36 -08:00
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
//console.log(buying_or_selling);
2017-11-16 13:24:39 -08:00
var bot _or _manual = $ ( 'input[name=trading_mode_options]:checked' ) . val ( ) ;
//console.log(bot_or_manual);
2017-11-20 04:33:36 -08:00
var margin _or _fixed = $ ( '#trading_pair_coin_autoprice_mode' ) . prop ( 'checked' ) ;
2017-11-16 13:24:39 -08:00
if ( bot _or _manual == 'tradebot' ) {
$ ( '#trading_pair_coin_price_max_min' ) . html ( 'Max' ) ;
$ ( '.trading_pair_lable_text_one' ) . html ( 'Max' ) ;
$ ( '.trading_pair_lable_text_two' ) . html ( 'Buy' ) ;
2017-11-20 04:33:36 -08:00
if ( buying _or _selling == 'buying' ) {
$ ( '.btn-bot_action' ) . html ( 'BUY' ) ;
$ ( '.relvol_basevol_label' ) . html ( "It'll cost you" )
}
if ( buying _or _selling == 'selling' ) {
$ ( '.btn-bot_action' ) . html ( 'SELL' ) ;
$ ( '.relvol_basevol_label' ) . html ( "You'll get" ) ;
}
2017-11-16 13:24:39 -08:00
$ ( '.btn-bot_action' ) . attr ( 'data-action' , 'buy' ) ;
$ ( '.trading_selected_trader_label' ) . hide ( ) ;
$ ( '.trading_selected_trader' ) . hide ( ) ;
2017-11-20 04:33:36 -08:00
$ ( '.trading_pair_coin_autoprice_mode_span' ) . hide ( ) ;
$ ( '#trading_pair_coin_autoprice_mode' ) . bootstrapToggle ( 'on' )
$ ( '#trading_pair_coin_price_max_min' ) . html ( 'Max' ) ;
$ ( '#trading_pair_coin_price_max_min' ) . show ( ) ;
$ ( '.buy_sell_amount_to' ) . show ( ) ;
$ ( '#trading_pair_coin_ticker' ) . show ( ) ;
$ ( '.trading_pair_coin_volume' ) . show ( ) ;
$ ( '.btn-bot_action' ) . removeClass ( 'btn-block' ) ;
$ ( '.btn-bot_action' ) . css ( 'border-top-left-radius' , '0' ) ;
$ ( '.btn-bot_action' ) . css ( 'border-bottom-left-radius' , '0' ) ;
$ ( '.buy_sell_button_div' ) . css ( 'margin-top' , '0' ) ;
$ ( '.relvol_basevol_amount' ) . show ( ) ;
$ ( '.relvol_basevol_label' ) . show ( ) ;
$ ( '.portfolio_info_text' ) . hide ( ) ;
2017-11-20 05:32:02 -08:00
$ ( '.coingoal_label_div' ) . hide ( ) ;
$ ( '.coingoal_div' ) . hide ( ) ;
2017-11-16 13:24:39 -08:00
}
if ( bot _or _manual == 'trademanual' ) {
//$('#trading_pair_coin_price_max_min').html('Min');
$ ( '.trading_pair_lable_text_one' ) . html ( '' ) ;
//$('.trading_pair_lable_text_two').html('Sell');
2017-11-20 04:33:36 -08:00
if ( buying _or _selling == 'buying' ) {
$ ( '.btn-bot_action' ) . html ( 'BUY' ) ;
$ ( '.relvol_basevol_label' ) . html ( "It'll cost you" )
}
if ( buying _or _selling == 'selling' ) {
$ ( '.btn-bot_action' ) . html ( 'SELL' ) ;
$ ( '.relvol_basevol_label' ) . html ( "You'll get" ) ;
}
2017-11-16 13:24:39 -08:00
//$('.btn-bot_action').attr('data-action', 'sell');
2017-11-23 22:56:02 -08:00
//$('.trading_selected_trader_label').show();
//$('.trading_selected_trader').show();
2017-11-20 04:33:36 -08:00
$ ( '.trading_pair_coin_autoprice_mode_span' ) . hide ( ) ;
$ ( '#trading_pair_coin_price_max_min' ) . html ( 'Max' ) ;
$ ( '#trading_pair_coin_price_max_min' ) . show ( ) ;
$ ( '.buy_sell_amount_to' ) . show ( ) ;
$ ( '#trading_pair_coin_ticker' ) . show ( ) ;
$ ( '.trading_pair_coin_volume' ) . show ( ) ;
$ ( '.btn-bot_action' ) . removeAttr ( 'btn-block' ) ;
$ ( '.btn-bot_action' ) . css ( 'border-top-left-radius' , '0' ) ;
$ ( '.btn-bot_action' ) . css ( 'border-bottom-left-radius' , '0' ) ;
$ ( '.buy_sell_button_div' ) . css ( 'margin-top' , '0' ) ;
$ ( '.relvol_basevol_amount' ) . show ( ) ;
$ ( '.relvol_basevol_label' ) . show ( ) ;
$ ( '.portfolio_info_text' ) . hide ( ) ;
2017-11-20 05:32:02 -08:00
$ ( '.coingoal_label_div' ) . hide ( ) ;
$ ( '.coingoal_div' ) . hide ( ) ;
2017-11-20 04:33:36 -08:00
}
if ( bot _or _manual == 'tradeportfolio' ) {
$ ( '.trading_pair_lable_text_one' ) . html ( 'Auto' )
$ ( '.trading_selected_trader_label' ) . hide ( ) ;
$ ( '.trading_selected_trader' ) . hide ( ) ;
$ ( '.trading_pair_coin_autoprice_mode_span' ) . show ( ) ;
$ ( '#trading_pair_coin_autoprice_mode' ) . bootstrapToggle ( 'on' )
$ ( '#trading_pair_coin_price_max_min' ) . html ( '%' ) ;
if ( buying _or _selling == 'buying' ) {
if ( margin _or _fixed == true ) {
$ ( '.btn-bot_action' ) . html ( 'SET AUTO BUY MARGIN %' ) ;
$ ( '.portfolio_info_text' ) . html ( "Auto buy margin will make automatic buy orders on lower prices based on the specified percentage." ) ;
} else {
$ ( '.btn-bot_action' ) . html ( 'SET AUTO BUY PRICE' ) ;
$ ( '.portfolio_info_text' ) . html ( "Auto buy on fixed price will make automatic buy orders on prices based on the specified price." ) ;
}
}
if ( buying _or _selling == 'selling' ) {
if ( margin _or _fixed == true ) {
$ ( '.btn-bot_action' ) . html ( 'SET AUTO SELL MARGIN %' ) ;
$ ( '.portfolio_info_text' ) . html ( "Auto sell margin will make automatic sell orders on higher prices based on the specified percentage." ) ;
} else {
$ ( '.btn-bot_action' ) . html ( 'SET AUTO SELL PRICE' ) ;
$ ( '.portfolio_info_text' ) . html ( "Auto sell on fixed price will make automatic sell orders on prices based on the specified price." ) ;
}
}
$ ( '.btn-bot_action' ) . attr ( 'data-action' , 'autoprice' ) ;
$ ( '.buy_sell_amount_to' ) . hide ( ) ;
$ ( '#trading_pair_coin_ticker' ) . hide ( ) ;
$ ( '.trading_pair_coin_volume' ) . hide ( ) ;
$ ( '.btn-bot_action' ) . addClass ( ' btn-block' ) ;
$ ( '.btn-bot_action' ) . css ( 'border-top-left-radius' , '4px' ) ;
$ ( '.btn-bot_action' ) . css ( 'border-bottom-left-radius' , '4px' ) ;
$ ( '.buy_sell_button_div' ) . css ( 'margin-top' , '20px' ) ;
$ ( '.relvol_basevol_amount' ) . hide ( ) ;
$ ( '.relvol_basevol_label' ) . hide ( ) ;
$ ( '.portfolio_info_text' ) . show ( ) ;
2017-11-20 05:32:02 -08:00
$ ( '.coingoal_label_div' ) . show ( ) ;
$ ( '.coingoal_div' ) . show ( ) ;
2017-11-16 13:24:39 -08:00
}
} ) ;
function manual _buy _sell ( mt _data ) {
console . log ( mt _data ) ;
var selected _coin = JSON . parse ( sessionStorage . getItem ( 'mm_selectedcoin' ) ) ;
var coin = selected _coin . coin ;
//console.log(coin);
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
/ * i f ( b u y i n g _ o r _ s e l l i n g = = ' b u y i n g ' ) {
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 ( mt _data . action == 'buy' ) {
var ajax _data = { "userpass" : userpass , "method" : "buy" , "base" : base _coin , "rel" : rel _coin , "price" : mt _data . price , "relvolume" : mt _data . volume } ;
if ( mt _data . trader _only == true ) {
ajax _data . destpubkey = mt _data . destpubkey ;
}
}
if ( mt _data . action == 'sell' ) {
var ajax _data = { "userpass" : userpass , "method" : "sell" , "base" : base _coin , "rel" : rel _coin , "price" : mt _data . price , "basevolume" : mt _data . volume } ;
if ( mt _data . trader _only == true ) {
ajax _data . destpubkey = mt _data . destpubkey ;
}
}
console . log ( ajax _data ) ;
console . log ( JSON . stringify ( ajax _data ) ) ;
var url = "http://127.0.0.1:7783" ;
$ . ajax ( {
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
2017-11-24 02:22:49 -08:00
} ) . done ( function ( mt _output _data ) {
2017-11-16 13:24:39 -08:00
// If successful
2017-11-24 02:22:49 -08:00
console . log ( mt _output _data ) ;
2017-11-16 13:24:39 -08:00
$ ( '.trading_pair_coin_price' ) . val ( '' ) ;
$ ( '.trading_pair_coin_volume' ) . val ( '' ) ;
$ ( '.trading_pair_destpubkey' ) . val ( '' ) ;
$ ( '.relvol_basevol' ) . html ( '' ) ;
2017-11-24 02:22:49 -08:00
if ( ! mt _output _data . error === false ) {
toastr . error ( mt _output _data . error , 'Bot Info' ) ;
if ( mt _output _data . error == 'not enough funds' ) {
//toastr.info(mt_output_data.error + '<br>Balance: ' + mt_output_data.balance + ' ' + mt_output_data.coin, 'Bot Info');
2017-11-16 13:24:39 -08:00
bootbox . alert ( {
backdrop : true ,
onEscape : true ,
title : ` Looks like you don't have enough UTXOs in your balance. ` ,
message : ` <p>Not a problem. I have executed the recommended command to make required UTXOs for you.</p>
< p > If you see the message saying "Executed Auto Split Funds" , then please wait for approx . 30 seconds to 1 minute before trying again . < / p >
< p > If you see some outgoing transactions from your barterDEX smartaddress that ' s sent to the same smartaddress of yours to create some inventory transactions for barterDEX to make required trades . < br >
Please try in a moment with same or different volume and you should be all good to go . < / p >
< p > If you are still getting the same error again , here are few things you can try : < / >
< ul >
< li > Please try the "Inventory" button under the coin 's logo where you see it' s balance . < br >
That will give you good overview what exactly UTXO means and what you need to do to fix this error . < / l i >
< li > Try lower amount of buy which makes final cost in total lower . < / l i >
< li > Logout and login back and try lower amount of buy counts total cost lower than previous attempt . < / l i >
< / u l > ` } ) ;
2017-11-24 02:22:49 -08:00
console . log ( JSON . stringify ( mt _output _data ) )
2017-11-16 13:24:39 -08:00
2017-11-24 02:22:49 -08:00
/ * i f ( m t _ o u t p u t _ d a t a . w i t h d r a w . c o m p l e t e = = = t r u e ) {
//bot_sendrawtx(mt_output_data);
2017-11-16 13:24:39 -08:00
toastr . success ( 'Executed Auto Split Funds. Please try in approx. 30 seconds again.' , 'Bot Info' ) ;
} else {
toastr . error ( 'No withdraw info found. Please try again with lower buy amount.' , 'Bot Info' ) ;
} * /
}
2017-11-24 02:22:49 -08:00
} else if ( mt _output _data . result == 'success' ) {
2017-11-16 13:24:39 -08:00
toastr . success ( 'Order Executed' , 'Trade Info' ) ;
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
/* Manual Tradeing END */
/* Auto Trading Bot */
function setOrderPrice ( trade _data ) {
console . log ( trade _data ) ;
//trade_data = JSON.parse(trade_data);
//console.log(trade_data);
trade _price _plus = trade _data . price * 1.01 ;
$ ( '.trading_pair_coin_price' ) . val ( trade _price _plus . toFixed ( 8 ) ) ;
2017-11-24 16:36:48 -08:00
toastr . info ( ` Auto selected price as ${ trade _data . price } + 1% = ${ trade _price _plus . toFixed ( 8 ) } ` , 'Trade Info' ) ;
2017-11-16 13:24:39 -08:00
var bot _or _manual = $ ( 'input[name=trading_mode_options]:checked' ) . val ( ) ;
if ( bot _or _manual == 'tradebot' ) {
}
if ( bot _or _manual == 'trademanual' ) {
2017-11-19 20:04:14 -08:00
pair _volume = trade _data . maxbuy ;
$ ( '.trading_pair_coin_volume' ) . val ( pair _volume . toFixed ( 8 ) ) ;
2017-11-20 07:07:15 -08:00
$ ( '.relvol_basevol' ) . html ( trade _data . avevolume ) ;
2017-11-16 13:24:39 -08:00
$ ( '.trading_pair_destpubkey' ) . val ( trade _data . pubkey ) ;
}
}
function CheckOrderBookFn ( sig ) {
if ( sig == false ) {
clearInterval ( CheckOrderbook _Interval ) ;
return
} else {
console . log ( 'checking orderbook' ) ;
}
2017-11-04 07:57:53 -07:00
var selected _coin = JSON . parse ( sessionStorage . getItem ( 'mm_selectedcoin' ) ) ;
var coin = selected _coin . coin ;
console . log ( coin ) ;
2017-11-16 13:24:39 -08:00
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
2017-11-04 07:57:53 -07:00
if ( buying _or _selling == 'buying' ) {
var base _coin = coin ;
var rel _coin = $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
}
if ( buying _or _selling == 'selling' ) {
2017-11-19 01:32:32 -08:00
// Disabled selling option to show opposite pair orderbook result.
//var base_coin = $('.trading_pair_coin').selectpicker('val');
//var rel_coin = coin;
var base _coin = coin ;
var rel _coin = $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
2017-11-04 07:57:53 -07:00
}
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
2017-11-16 13:24:39 -08:00
2017-11-04 07:57:53 -07:00
$ ( '.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 ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-16 13:24:39 -08:00
//CheckOrderBookFn();
2017-11-04 07:57:53 -07:00
} 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);
2017-11-16 13:24:39 -08:00
var colorpbk = coloredPubkey ( val . pubkey ) ;
2017-11-04 07:57:53 -07:00
var mytrade _true = '' ;
if ( val . pubkey === mypubkey ) {
var mytrade _true = 'class="warning"' ;
}
var orderbook _bids _tr = '' ;
orderbook _bids _tr += '<tr ' + mytrade _true + '>' ;
2017-11-04 13:45:26 -07:00
orderbook _bids _tr += '<td>' + val . price + '</td>' ;
2017-11-16 13:24:39 -08:00
//orderbook_bids_tr += '<td>' + val.minvolume + '</td>';
//orderbook_bids_tr += '<td>' + val.maxvolume + '</td>';
2017-11-17 16:30:42 -08:00
orderbook _bids _tr += '<td>' + val . avevolume + '</td>' ;
orderbook _bids _tr += '<td>' + val . depth + '</td>' ;
2017-11-23 22:56:02 -08:00
//orderbook_bids_tr += '<td>' + colorpbk.firstpart + '<font style="color: #' + colorpbk.colorpart1 + '; background-color: #' + colorpbk.colorpart1 + ';">' + colorpbk.char1 + '</font><font style="color: #' + colorpbk.colorpart2 + '; background-color: #' + colorpbk.colorpart2 + ';">' + colorpbk.char2 + '</font><font style="color: #' + colorpbk.colorpart3 + '; background-color: #' + colorpbk.colorpart3 + ';">' + colorpbk.char3 + '</font>' + colorpbk.lastpart + '</td>';
2017-11-04 13:45:26 -07:00
orderbook _bids _tr += '<td>' + val . age + '</td>' ;
2017-11-17 16:30:42 -08:00
orderbook _bids _tr += '<td>' + val . numutxos + '</td>' ;
2017-11-24 07:57:27 -08:00
orderbook _bids _tr += '<td><span class="glyphicon glyphicon-piggy-bank" aria-hidden="true"></span> ' + val . zcredits + '</td>' ;
2017-11-04 07:57:53 -07:00
$ ( '.orderbook_bids tbody' ) . append ( orderbook _bids _tr ) ;
} )
$ ( '.orderbook_asks tbody' ) . empty ( ) ;
2017-11-16 13:24:39 -08:00
if ( data . asks &&
data . asks . length ) {
$ ( '#orderbook-asks-spinner' ) . hide ( ) ;
}
2017-11-04 07:57:53 -07:00
$ . each ( data . asks , function ( index , val ) {
//console.log(index);
//console.log(val);
2017-11-16 13:24:39 -08:00
var colorpbk = coloredPubkey ( val . pubkey ) ;
2017-11-04 07:57:53 -07:00
var mytrade _true = '' ;
if ( val . pubkey === mypubkey ) {
var mytrade _true = 'class="warning"' ;
}
2017-11-16 13:24:39 -08:00
row _trade _data = { } ;
row _trade _data . price = val . price ;
//row_trade_data.minvolume = val.minvolume;
//row_trade_data.maxvolume = val.maxvolume;
2017-11-17 16:30:42 -08:00
row _trade _data . avevolume = val . avevolume ;
row _trade _data . numutxos = val . numutxos ;
row _trade _data . depth = val . depth ;
2017-11-19 20:04:14 -08:00
row _trade _data . maxbuy = val . avevolume / val . price ;
2017-11-16 13:24:39 -08:00
row _trade _data . pubkey = val . pubkey ;
2017-11-20 07:07:15 -08:00
//row_trade_data.totalbuy = (val.avevolume / val.price) * val.numutxos;
2017-11-04 07:57:53 -07:00
var orderbook _asks _tr = '' ;
2017-11-16 13:24:39 -08:00
orderbook _asks _tr += '<tr ' + mytrade _true + ' onclick=setOrderPrice(' + JSON . stringify ( row _trade _data ) + ')>' ;
2017-11-04 07:57:53 -07:00
orderbook _asks _tr += '<td>' + val . price + '</td>' ;
2017-11-16 13:24:39 -08:00
//orderbook_asks_tr += '<td>' + val.minvolume + ' - ' + val.maxvolume + '</td>';
//orderbook_asks_tr += '<td>' + row_trade_data.totalbuy.toFixed(8) + '</td>';
2017-11-17 16:30:42 -08:00
orderbook _asks _tr += '<td>' + val . avevolume + '</td>' ;
orderbook _asks _tr += '<td>' + val . depth + '</td>' ;
2017-11-23 22:56:02 -08:00
//orderbook_asks_tr += '<td>' + colorpbk.firstpart + '<font style="color: #' + colorpbk.colorpart1 + '; background-color: #' + colorpbk.colorpart1 + ';">' + colorpbk.char1 + '</font><font style="color: #' + colorpbk.colorpart2 + '; background-color: #' + colorpbk.colorpart2 + ';">' + colorpbk.char2 + '</font><font style="color: #' + colorpbk.colorpart3 + '; background-color: #' + colorpbk.colorpart3 + ';">' + colorpbk.char3 + '</font>' + colorpbk.lastpart + '</td>';
2017-11-04 07:57:53 -07:00
orderbook _asks _tr += '<td>' + val . age + '</td>' ;
2017-11-17 16:30:42 -08:00
orderbook _asks _tr += '<td>' + val . numutxos + '</td>' ;
2017-11-24 07:57:27 -08:00
orderbook _asks _tr += '<td><span class="glyphicon glyphicon-piggy-bank" aria-hidden="true"></span> ' + val . zcredits + '</td>' ;
2017-11-04 07:57:53 -07:00
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.' ;
}
2017-11-04 10:53:15 -07:00
function check _my _prices ( sig ) {
if ( sig == false ) {
2017-11-16 13:24:39 -08:00
clearInterval ( check _my _prices _Interval ) ;
2017-11-04 10:53:15 -07:00
return
} else {
console . log ( 'checking my prices' ) ;
}
2017-11-04 07:57:53 -07:00
2017-11-04 10:53:15 -07:00
var selected _coin = JSON . parse ( sessionStorage . getItem ( 'mm_selectedcoin' ) ) ;
var coin = selected _coin . coin ;
console . log ( coin ) ;
2017-11-04 07:57:53 -07:00
2017-11-16 13:24:39 -08:00
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
2017-11-04 10:53:15 -07:00
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' ) ;
2017-11-04 17:29:03 -07:00
//var ajax_data = {"userpass":userpass,"method":"myprice","base":base_coin,"rel":rel_coin};
var ajax _data = { "userpass" : userpass , "method" : "myprices" } ;
2017-11-04 10:53:15 -07:00
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 ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-04 10:53:15 -07:00
} else {
//console.log(data);
2017-11-04 13:45:26 -07:00
$ ( '.exchange_my_orders_tbl tbody' ) . empty ( ) ;
2017-11-04 10:53:15 -07:00
if ( ! data . error === false ) {
2017-11-24 02:22:49 -08:00
toastr . error ( data . error , 'My price info' )
/ * i f ( ! d a t a . e r r o r = = ' a u t h e n t i c a t i o n e r r o r y o u n e e d t o m a k e s u r e u s e r p a s s i s s e t ' ) {
2017-11-16 13:24:39 -08:00
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 ) ;
2017-11-24 02:22:49 -08:00
} * /
2017-11-04 10:53:15 -07:00
} else {
2017-11-04 17:29:03 -07:00
$ . each ( data , function ( index , val ) {
2017-11-04 10:53:15 -07:00
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>' ;
2017-11-04 13:45:26 -07:00
$ ( '.exchange_my_orders_tbl tbody' ) . append ( exchange _my _orders _tr ) ;
2017-11-04 17:29:03 -07:00
} ) ;
2017-11-04 10:53:15 -07:00
2017-11-04 17:29:03 -07:00
/ * v a r b a s e _ c o i n _ n a m e = r e t u r n _ c o i n _ n a m e ( d a t a . b a s e )
2017-11-04 10:53:15 -07:00
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>' ;
2017-11-04 17:29:03 -07:00
$ ( '.exchange_my_orders_tbl tbody' ) . append ( exchange _my _orders _tr ) ; * /
2017-11-04 10:53:15 -07:00
}
}
} ) . 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 ) ;
2017-11-04 13:45:26 -07:00
//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' ) ;
2017-11-16 13:24:39 -08:00
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
2017-11-04 13:45:26 -07:00
//console.log(buying_or_selling);
2017-11-20 04:33:36 -08:00
var bot _or _manual = $ ( 'input[name=trading_mode_options]:checked' ) . val ( ) ;
//console.log(bot_or_manual);
var margin _or _fixed = $ ( '#trading_pair_coin_autoprice_mode' ) . prop ( 'checked' ) ;
2017-11-04 13:45:26 -07:00
if ( buying _or _selling == 'buying' ) {
2017-11-20 04:33:36 -08:00
if ( bot _or _manual == 'tradeportfolio' ) {
$ ( '.trading_pair_lable_text_one' ) . html ( 'Auto' )
$ ( '#trading_pair_coin_price_max_min' ) . html ( '%' ) ;
if ( margin _or _fixed == true ) {
$ ( '.btn-bot_action' ) . html ( 'SET AUTO BUY MARGIN %' ) ;
$ ( '.portfolio_info_text' ) . html ( "Auto buy margin will make automatic buy orders on lower prices based on the specified percentage." ) ;
} else {
$ ( '.btn-bot_action' ) . html ( 'SET AUTO BUY PRICE' ) ;
$ ( '.portfolio_info_text' ) . html ( "Auto buy on fixed price will make automatic buy orders on prices based on the specified price." ) ;
}
} else {
$ ( '#trading_pair_coin_price_max_min' ) . html ( 'Max' ) ;
$ ( '.trading_pair_lable_text_one' ) . html ( 'Max' ) ;
$ ( '.btn-bot_action' ) . html ( 'BUY' ) ;
$ ( '.relvol_basevol_label' ) . html ( "It'll cost you" )
}
2017-11-04 13:45:26 -07:00
$ ( '.trading_pair_lable_text_two' ) . html ( 'Buy' ) ;
$ ( '.btn-bot_action' ) . attr ( 'data-action' , 'buy' ) ;
2017-11-18 04:45:02 -08:00
CheckOrderBookFn ( ) ;
2017-11-04 13:45:26 -07:00
}
if ( buying _or _selling == 'selling' ) {
2017-11-20 04:33:36 -08:00
if ( bot _or _manual == 'tradeportfolio' ) {
$ ( '.trading_pair_lable_text_one' ) . html ( 'Auto' )
$ ( '#trading_pair_coin_price_max_min' ) . html ( '%' ) ;
if ( margin _or _fixed == true ) {
$ ( '.btn-bot_action' ) . html ( 'SET AUTO SELL MARGIN %' ) ;
$ ( '.portfolio_info_text' ) . html ( "Auto sell margin will make automatic sell orders on higher prices based on the specified percentage." ) ;
} else {
$ ( '.btn-bot_action' ) . html ( 'SET AUTO SELL PRICE' ) ;
$ ( '.portfolio_info_text' ) . html ( "Auto sell on fixed price will make automatic sell orders on prices based on the specified price." ) ;
}
} else {
$ ( '#trading_pair_coin_price_max_min' ) . html ( 'Min' ) ;
$ ( '.trading_pair_lable_text_one' ) . html ( 'Min' ) ;
$ ( '.btn-bot_action' ) . html ( 'SELL' ) ;
$ ( '.relvol_basevol_label' ) . html ( "You'll get" ) ;
}
2017-11-04 13:45:26 -07:00
$ ( '.trading_pair_lable_text_two' ) . html ( 'Sell' ) ;
$ ( '.btn-bot_action' ) . attr ( 'data-action' , 'sell' ) ;
2017-11-18 04:45:02 -08:00
CheckOrderBookFn ( ) ;
2017-11-04 13:45:26 -07:00
}
} ) ;
2017-11-16 13:24:39 -08:00
$ ( '.trading_pair_coin' ) . on ( 'changed.bs.select' , function ( e ) {
$ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
$ ( '.relvol_basevol_coin' ) . html ( $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ) ;
bot _screen _sellcoin _balance ( ) ;
bot _screen _coin _balance ( ) ;
} ) ;
$ ( '.your_coins_balance_info' ) . on ( 'click' , '.coin_balance_enable_native' , function ( ) {
console . log ( 'coin_balance_enable_native clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
enable _disable _coin ( $ ( this ) . data ( ) ) ;
bot _screen _sellcoin _balance ( ) ;
bot _screen _coin _balance ( ) ;
} ) ;
$ ( '.your_coins_balance_info' ) . on ( 'click' , '.coin_balance_enable_electrum' , function ( ) {
console . log ( 'coin_balance_enable_electrum clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
enable _disable _coin ( $ ( this ) . data ( ) ) ;
bot _screen _sellcoin _balance ( ) ;
bot _screen _coin _balance ( ) ;
} ) ;
$ ( '.your_coins_balance_info' ) . on ( 'click' , '.coin_balance_disable' , function ( ) {
console . log ( 'coin_balance_disable clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
enable _disable _coin ( $ ( this ) . data ( ) ) ;
bot _screen _sellcoin _balance ( ) ;
bot _screen _coin _balance ( ) ;
} ) ;
$ ( '.your_coins_balance_info' ) . on ( 'click' , '.coin_balance_receive' , function ( ) {
console . log ( 'coin_balance_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 ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-16 13:24:39 -08:00
}
bootbox . dialog ( {
//title: 'A custom dialog with init',
onEscape : true ,
backdrop : true ,
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><blockquote style="font-size: 15px; font-weight: 400; color: #c10a0a; background-color: #ffd5d5; #7d0b0b; border-left: 5px solid #f00;">If you are sending a transaction to your barterDEX smartaddress, then <b>please send 3 small transactions instead of 1 big transaction</b> for best experience.</blockquote><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 ) ;
} ) ;
} )
$ ( '.your_coins_balance_info' ) . on ( 'click' , '.coin_balance_send' , function ( ) {
console . log ( 'coin_balance_send clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
var tx _coin = $ ( this ) . data ( 'coin' ) ;
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var ajax _data0 = { "userpass" : userpass , "method" : "getcoin" , "coin" : tx _coin } ;
var url = "http://127.0.0.1:7783" ;
$ . ajax ( {
async : true ,
data : JSON . stringify ( ajax _data0 ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
} ) . done ( function ( data ) {
console . log ( data . coin . balance ) ;
console . log ( data . coin . txfee ) ;
var coin _balance _send _bootbox = bootbox . dialog ( {
onEscape : true ,
backdrop : true ,
message : `
< div class = "row" >
< div class = "col-sm-12" >
< div class = "panel panel-default" >
< div class = "panel-heading" >
< h3 class = "panel-title" > < strong > Send Transaction ( < span class = "bot_sending_coin_balance" > ` +data.coin.balance+ ` < / s p a n > ` + t x _ c o i n + ` ) < / s t r o n g > < / h 3 >
< / d i v >
< div class = "panel-body" > <!-- panel - body -- >
< div class = "form-group" >
< div class = "input-group col-sm-12" >
< span class = "input-group-addon coin_ticker" style = "font-size: 20px;" > To Address < / s p a n >
< input type = "text" class = "form-control" id = "bot_send_toaddr" placeholder = "Address" style = "height: 64px; font-size: 20px;" >
< / d i v >
< / d i v >
< div class = "form-group" >
< div class = "input-group col-sm-12" >
< span class = "input-group-addon coin_ticker" style = "font-size: 20px;" > Amount < / s p a n >
< input type = "number" class = "form-control" id = "bot_send_amount" placeholder = "Amount e.g. 12.5" style = "height: 64px; font-size: 20px;" >
< / d i v >
< / d i v >
< div class = "form-group" >
< span class = "input-group-addon" >
< input type = "checkbox" id = "bot_send_amount_txfee_checkbox" name = "bot_send_amount_txfee_checkbox" > Subtract Transaction Fees from the sending amount ?
< / s p a n >
< span class = "input-group-addon" style = "font-size: 20px;" > TxFee : < span class = "bot_send_txfee" > ` +data.coin.txfee / 100000000+ ` < / s p a n > < / s p a n >
< span class = "input-group-addon" style = "font-size: 20px;" > Total : < span class = "bot_send_total_amount" > < / s p a n > < / s p a n >
< / d i v >
< / d i v >
< / d i v >
< / d i v >
< / d i v > ` ,
closeButton : false ,
size : 'large' ,
className : 'custom_class_for_bootbox' ,
buttons : {
cancel : {
label : "Cancel" ,
className : 'btn-default' ,
callback : function ( ) {
}
} ,
ok : {
label : "Send Transaction" ,
className : 'btn-primary bot_send_action' ,
callback : function ( ) {
var to _addr = $ ( '#bot_send_toaddr' ) . val ( ) ;
//var send_amount = $('#bot_send_amount').val();
var send _amount = $ ( '.bot_send_total_amount' ) . html ( ) ;
console . log ( to _addr ) ;
console . log ( send _amount ) ;
var output _data = { } ;
output _data [ to _addr ] = send _amount ;
console . log ( output _data ) ;
console . log ( tx _coin ) ;
create _sendtx ( tx _coin , output _data ) ;
}
}
}
} ) ;
coin _balance _send _bootbox . init ( function ( ) {
console . log ( 'coin_balance_send_bootbox dialog opened.' )
$ ( '.bot_send_action' ) . attr ( "disabled" , "disabled" ) ;
$ ( '.bot_sending_coin_balance' ) . click ( function ( ) {
$ ( '#bot_send_amount' ) . val ( $ ( '.bot_sending_coin_balance' ) . html ( ) ) ;
var send _amount = $ ( '#bot_send_amount' ) . val ( ) ;
var send _txfee = $ ( '.bot_send_txfee' ) . html ( ) ;
var subtract _txfee = $ ( '#bot_send_amount_txfee_checkbox' ) . is ( ':checked' )
var send _toaddr = $ ( '#bot_send_toaddr' ) . val ( ) ;
console . log ( send _amount ) ;
console . log ( subtract _txfee ) ;
2017-11-18 05:43:13 -08:00
2017-11-16 13:24:39 -08:00
if ( subtract _txfee == false ) {
var send _amount _total = parseFloat ( send _amount ) + parseFloat ( send _txfee ) ;
$ ( '.bot_send_total_amount' ) . html ( send _amount _total . toFixed ( 8 ) ) ;
} else if ( subtract _txfee == true ) {
var send _amount _total = parseFloat ( send _amount ) - parseFloat ( send _txfee ) ;
$ ( '.bot_send_total_amount' ) . html ( send _amount _total . toFixed ( 8 ) ) ;
}
var empty = false ;
if ( send _toaddr . length == 0 || send _amount . length == 0 ) {
console . log ( 'Send Address is empty' ) ;
console . log ( 'Send Amount is empty' ) ;
empty = true ;
} else if ( send _toaddr . length !== 0 && send _amount . length !== 0 ) {
console . log ( 'SEND ADDRESS IS :' + send _toaddr ) ;
console . log ( 'SEND AMOUNT IS :' + send _amount ) ;
empty = false ;
}
console . log ( empty ) ;
if ( empty ) {
$ ( '.bot_send_action' ) . attr ( "disabled" , "disabled" ) ;
} else {
$ ( '.bot_send_action' ) . removeAttr ( "disabled" ) ;
}
} ) ;
$ ( '#bot_send_amount' ) . keyup ( function ( ) {
var send _amount = $ ( '#bot_send_amount' ) . val ( ) ;
var send _txfee = $ ( '.bot_send_txfee' ) . html ( ) ;
var subtract _txfee = $ ( '#bot_send_amount_txfee_checkbox' ) . is ( ':checked' )
var send _toaddr = $ ( '#bot_send_toaddr' ) . val ( ) ;
console . log ( send _amount ) ;
console . log ( subtract _txfee ) ;
2017-11-18 05:43:13 -08:00
2017-11-16 13:24:39 -08:00
if ( subtract _txfee == false ) {
var send _amount _total = parseFloat ( send _amount ) + parseFloat ( send _txfee ) ;
$ ( '.bot_send_total_amount' ) . html ( send _amount _total . toFixed ( 8 ) ) ;
} else if ( subtract _txfee == true ) {
var send _amount _total = parseFloat ( send _amount ) - parseFloat ( send _txfee ) ;
$ ( '.bot_send_total_amount' ) . html ( send _amount _total . toFixed ( 8 ) ) ;
}
var empty = false ;
if ( send _toaddr . length == 0 || send _amount . length == 0 ) {
console . log ( 'Send Address is empty' ) ;
console . log ( 'Send Amount is empty' ) ;
empty = true ;
} else if ( send _toaddr . length !== 0 && send _amount . length !== 0 ) {
console . log ( 'SEND ADDRESS IS :' + send _toaddr ) ;
console . log ( 'SEND AMOUNT IS :' + send _amount ) ;
empty = false ;
}
console . log ( empty ) ;
if ( empty ) {
$ ( '.bot_send_action' ) . attr ( "disabled" , "disabled" ) ;
} else {
$ ( '.bot_send_action' ) . removeAttr ( "disabled" ) ;
}
} ) ;
$ ( '#bot_send_amount_txfee_checkbox' ) . change ( function ( ) {
var send _amount = $ ( '#bot_send_amount' ) . val ( ) ;
var send _txfee = $ ( '.bot_send_txfee' ) . html ( ) ;
var subtract _txfee = $ ( '#bot_send_amount_txfee_checkbox' ) . is ( ':checked' )
var send _toaddr = $ ( '#bot_send_toaddr' ) . val ( ) ;
console . log ( send _amount ) ;
console . log ( subtract _txfee ) ;
2017-11-18 05:43:13 -08:00
2017-11-16 13:24:39 -08:00
if ( subtract _txfee == false ) {
var send _amount _total = parseFloat ( send _amount ) + parseFloat ( send _txfee ) ;
$ ( '.bot_send_total_amount' ) . html ( send _amount _total . toFixed ( 8 ) ) ;
} else if ( subtract _txfee == true ) {
var send _amount _total = parseFloat ( send _amount ) - parseFloat ( send _txfee ) ;
$ ( '.bot_send_total_amount' ) . html ( send _amount _total . toFixed ( 8 ) ) ;
}
var empty = false ;
if ( send _toaddr . length == 0 || send _amount . length == 0 ) {
console . log ( 'Send Address is empty' ) ;
console . log ( 'Send Amount is empty' ) ;
empty = true ;
} else if ( send _toaddr . length !== 0 && send _amount . length !== 0 ) {
console . log ( 'SEND ADDRESS IS :' + send _toaddr ) ;
console . log ( 'SEND AMOUNT IS :' + send _amount ) ;
empty = false ;
}
console . log ( empty ) ;
if ( empty ) {
$ ( '.bot_send_action' ) . attr ( "disabled" , "disabled" ) ;
} else {
$ ( '.bot_send_action' ) . removeAttr ( "disabled" ) ;
}
} ) ;
} ) ;
} ) ;
} ) ;
$ ( '.your_coins_balance_info' ) . on ( 'click' , '.coin_balance_inventory' , function ( ) {
console . log ( 'coin_balance_inventory clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
coin = $ ( this ) . data ( 'coin' ) ;
addr = $ ( this ) . data ( 'addr' ) ;
balance = $ ( this ) . data ( 'balance' ) ;
$ ( '.screen-exchange' ) . hide ( )
$ ( '.screen-inventory' ) . show ( ) ;
CheckOrderBookFn ( false ) ;
check _swap _status ( false ) ;
check _bot _list ( false ) ;
check _my _prices ( false ) ;
bot _screen _coin _balance ( false ) ;
bot _screen _sellcoin _balance ( false ) ;
$ ( '.inventory-title' ) . html ( 'Manage Inventory (' + balance + ' ' + coin + ')' ) ;
$ ( '.inventory-title' ) . data ( 'coin' , coin ) ;
$ ( '.inventory-title' ) . data ( 'balance' , balance ) ;
$ ( '.coininventory[data-coin]' ) . attr ( 'data-coin' , coin ) ;
//$('.coininventory[data-coin]').attr('data-pair', $(this).data('pair'));
$ ( '.coininventory[data-coin]' ) . attr ( 'data-addr' , 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" : balance } ;
clac _coin _inventory ( calc _data ) ;
} ) ;
function create _sendtx ( coin , tx _data ) {
console . log ( tx _data ) ;
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var ajax _data = { "userpass" : userpass , "method" : "withdraw" , "coin" : coin , "outputs" : [ tx _data ] } ;
var url = "http://127.0.0.1:7783" ;
console . log ( ajax _data ) ;
console . log ( JSON . stringify ( 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 ) ;
} else {
if ( data . complete == true ) {
console . log ( data . hex ) ;
if ( ! data . hasOwnProperty ( 'coin' ) ) { data . coin = coin ; }
bot _sendrawtx ( data ) ;
} else {
toastr . error ( 'Transaction did not complete. Please try again.' , 'Transaction Info' ) ;
}
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-11-04 13:45:26 -07:00
function update _min _max _price _input ( ) {
2017-11-04 10:53:15 -07:00
var selected _coin = JSON . parse ( sessionStorage . getItem ( 'mm_selectedcoin' ) ) ;
var coin = selected _coin . coin ;
console . log ( coin ) ;
2017-11-16 13:24:39 -08:00
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
2017-11-04 10:53:15 -07:00
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 ;
}
2017-11-04 07:57:53 -07:00
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
2017-11-16 13:24:39 -08:00
2017-11-04 10:53:15 -07:00
$ ( '.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)
2017-11-04 07:57:53 -07:00
var url = "http://127.0.0.1:7783" ;
$ . ajax ( {
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
} ) . done ( function ( data ) {
2017-11-04 10:53:15 -07:00
// 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 ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-04 10:53:15 -07:00
//get_coins_list(data.coins);
} else {
//console.log(data.asks);
2017-11-04 13:45:26 -07:00
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 ) ;
}
2017-11-04 10:53:15 -07:00
}
//$('.initcoinswap-output').html(JSON.stringify(data, null, 2));
2017-11-04 07:57:53 -07:00
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
2017-11-04 13:45:26 -07:00
}
2017-11-04 10:53:15 -07:00
2017-11-04 13:45:26 -07:00
function check _bot _list ( sig ) {
if ( sig == false ) {
2017-11-16 13:24:39 -08:00
clearInterval ( check _bot _list _Interval ) ;
2017-11-04 13:45:26 -07:00
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' ) ;
2017-11-06 03:25:18 -08:00
var ajax _data = { "userpass" : userpass , "method" : "bot_statuslist" } ;
2017-11-04 13:45:26 -07:00
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 ) ;
2017-11-16 13:24:39 -08:00
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 ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-16 13:24:39 -08:00
} else {
$ ( '.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 ) ;
2017-11-06 03:25:18 -08:00
} else {
2017-11-16 13:24:39 -08:00
function botProgressBar ( ) {
var trades = val . trades ;
//console.log(trades);
var _out = { } ;
_out . total = 0 ;
for ( let i = 0 ; i < trades . length ; i ++ ) {
//console.log(_out.total);
if ( ! isNaN ( trades [ i ] . volume ) ) {
_out . total += trades [ i ] . volume ;
}
}
2017-11-06 03:25:18 -08:00
2017-11-16 13:24:39 -08:00
_out . percent = ( _out . total / val . totalbasevolume ) * 100
//console.log(_out.total);
return _out
}
var bot _progress _data = botProgressBar ( ) ;
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 style="font-size: 14px; font-weight: 200;">
< span > < font style = "font-weight: 400;" > ` +val.name+ ` < / f o n t > < / s p a n > < b r >
< span > < font style = "font-weight: 400;" > Max Price : < / f o n t > ` + m a x _ m i n _ v a l + ` ` + v a l . r e l + ` < / s p a n > < b r >
< span > < font style = "font-weight: 400;" > Total Spending : < / f o n t > ` + v a l . t o t a l r e l v o l u m e + ` ` + v a l . r e l + ` < / s p a n >
< / t d > ` ;
//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>
< div style = "font-size: 14px; font-weight: 200;" >
< span > < font style = "font-weight: 400;" > Total to Buy : < / f o n t > ` + v a l . t o t a l b a s e v o l u m e + ` ` + v a l . b a s e + ` < / s p a n > < b r >
<!-- < span > < font style = "font-weight: 400;" > Total Bought : < / f o n t > ` + b o t _ p r o g r e s s _ d a t a . t o t a l . t o F i x e d ( 8 ) + ` ` + v a l . b a s e + ` < / s p a n > < b r > - - >
< span > < font style = "font-weight: 400;" > Trade Attempts : < / f o n t > ` + v a l . t r a d e s . l e n g t h + ` < / s p a n >
< / d i v >
< / t d > ` ;
exchange _bot _list _tr += '<td style="text-align: center;"><div class="btn-group"><button class="btn btn-sm 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-sm 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-sm 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-sm 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_tr += '<tr>'; / / bot progress bar disabled
exchange _bot _list _tr += '<td colspan="5" style="padding: 0;"><div class="progress progress-nomargin"><div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="' + bot _progress _data . percent . toFixed ( 2 ) + '" aria-valuemin="0" aria-valuemax="100" style="-webkit-transition: none !important; transition: none !important; width: ' + bot _progress _data . percent . toFixed ( 2 ) + '%; text-shadow: 0px 0px 5px rgba(150, 150, 150, 1);">' + bot _progress _data . percent . toFixed ( 2 ) + '%</div></div></td>' ;
exchange _bot _list _tr += '</tr>' ; * /
$ ( '.exchange_bot_list_tbl tbody' ) . append ( exchange _bot _list _tr ) ;
}
} )
}
2017-11-04 13:45:26 -07:00
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-11-16 13:24:39 -08:00
function buy _sell _precheck ( bot _data ) {
var selected _coin = JSON . parse ( sessionStorage . getItem ( 'mm_selectedcoin' ) ) ;
var coin = selected _coin . coin ;
//console.log(coin);
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
var bot _or _manual = $ ( 'input[name=trading_mode_options]:checked' ) . val ( ) ;
var base _coin = coin ;
var rel _coin = $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
console . log ( 'BOT OR MANUAL: ' + bot _or _manual ) ;
console . log ( 'BUYING or SELLING??: ' + buying _or _selling ) ;
console . log ( 'BASE: ' + base _coin ) ;
console . log ( 'REL: ' + rel _coin ) ;
if ( base _coin == 'BTC' || rel _coin == 'BTC' ) {
console . log ( "BTC found in trading pair. Confirming BTC tx fee before proceeding." ) ;
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var ajax _data0 = { "userpass" : userpass , "method" : "getcoin" , "coin" : 'BTC' } ;
var url = "http://127.0.0.1:7783" ;
$ . ajax ( {
async : true ,
data : JSON . stringify ( ajax _data0 ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
} ) . done ( function ( data ) {
//console.log(data.coin.txfee);
if ( ! data . error === true && data . error !== 'coin is disabled' ) {
2017-11-24 02:22:49 -08:00
toastr . error ( data . error , 'Order precheck info' ) ;
2017-11-16 13:24:39 -08:00
if ( data . coin . txfee >= 100000 ) {
bootbox . alert ( "Bitcoin Transaction Fee is too high <b>" + data . coin . txfee / 100000000 + "</b><br> Due to such high BTC transaction fee this order is being stopped to process, since it may affect the completion of this order. Please try agin when Bitcoin transaction fee is lower." ) ;
return ;
} else if ( data . coin . txfee >= 50000 ) {
bootbox . confirm ( {
message : "Bitcoin Transaction Fee is high <b>" + data . coin . txfee / 100000000 + "</b><br>It is not recommended to go with your order with such high fees. It may take longer to confirm the transaction and that may affect your order completion. Are you sure you want to continue?" ,
buttons : {
confirm : {
label : 'Yes' ,
className : 'btn-success'
} ,
cancel : {
label : 'No' ,
className : 'btn-danger'
}
} ,
callback : function ( result ) {
console . log ( 'This was logged in the callback: ' + result ) ;
if ( result == true ) {
toastr . success ( 'Okay! Proceeding with your order.' , 'Order Notification' ) ;
if ( bot _or _manual == 'tradebot' ) {
bot _buy _sell ( bot _data ) ;
} else if ( bot _or _manual == 'trademanual' ) {
manual _buy _sell ( bot _data ) ;
}
} else {
toastr . info ( 'Your oder has been stopped to process.' , 'Order Notification' ) ;
return ;
}
}
} ) ;
} else {
console . log ( "BTC transaction fee seems OK. Proceeding with trade." )
toastr . success ( 'BTC transaction fee seems OK. Proceeding with trade.' , 'Order Notification' ) ;
if ( bot _or _manual == 'tradebot' ) {
bot _buy _sell ( bot _data ) ;
} else if ( bot _or _manual == 'trademanual' ) {
manual _buy _sell ( bot _data ) ;
}
}
} else {
toastr . info ( 'Make sure Bitcoin wallet is enabled and running.' ) ;
}
} ) ;
} else {
console . log ( "Trading pair doesn't have BTC in it. Precheck done." )
toastr . success ( 'Placing Order' , 'Order Notification' ) ;
if ( bot _or _manual == 'tradebot' ) {
bot _buy _sell ( bot _data ) ;
} else if ( bot _or _manual == 'trademanual' ) {
manual _buy _sell ( bot _data ) ;
}
}
}
2017-11-04 13:45:26 -07:00
function bot _buy _sell ( bot _data ) {
var selected _coin = JSON . parse ( sessionStorage . getItem ( 'mm_selectedcoin' ) ) ;
var coin = selected _coin . coin ;
//console.log(coin);
2017-11-16 13:24:39 -08:00
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
2017-11-06 03:25:18 -08:00
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 ) ;
2017-11-04 13:45:26 -07:00
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
2017-11-16 13:24:39 -08:00
2017-11-04 13:45:26 -07:00
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 } ;
}
2017-11-06 03:25:18 -08:00
console . log ( ajax _data ) ;
2017-11-16 13:24:39 -08:00
console . log ( JSON . stringify ( ajax _data ) ) ;
2017-11-04 13:45:26 -07:00
var url = "http://127.0.0.1:7783" ;
$ . ajax ( {
2017-11-16 13:24:39 -08:00
async : true ,
2017-11-04 13:45:26 -07:00
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
2017-11-24 02:22:49 -08:00
} ) . done ( function ( bot _output _data ) {
2017-11-04 13:45:26 -07:00
// If successful
2017-11-24 02:22:49 -08:00
console . log ( bot _output _data ) ;
2017-11-04 13:45:26 -07:00
2017-11-16 13:24:39 -08:00
$ ( '.trading_pair_coin_price' ) . val ( '' ) ;
$ ( '.trading_pair_coin_volume' ) . val ( '' ) ;
$ ( '.relvol_basevol' ) . html ( '' ) ;
2017-11-24 02:22:49 -08:00
if ( ! bot _output _data . error === false ) {
toastr . error ( bot _output _data . error , 'Bot Info' ) ;
if ( bot _output _data . error == 'not enough funds' ) {
//toastr.info(bot_output_data.error + '<br>Balance: ' + bot_output_data.balance + ' ' + bot_output_data.coin, 'Bot Info');
2017-11-16 13:24:39 -08:00
bootbox . alert ( {
backdrop : true ,
onEscape : true ,
title : ` Looks like you don't have enough UTXOs in your balance. ` ,
message : ` <p>Not a problem. I have executed the recommended command to make required UTXOs for you.</p>
< p > If you see the message saying "Executed Auto Split Funds" , then please wait for approx . 30 seconds to 1 minute before trying again . < / p >
< p > If you see some outgoing transactions from your barterDEX smartaddress that ' s sent to the same smartaddress of yours to create some inventory transactions for barterDEX to make required trades . < br >
Please try in a moment with same or different volume and you should be all good to go . < / p >
< p > If you are still getting the same error again , here are few things you can try : < / >
< ul >
< li > Please try the "Inventory" button under the coin 's logo where you see it' s balance . < br >
That will give you good overview what exactly UTXO means and what you need to do to fix this error . < / l i >
< li > Try lower amount of buy which makes final cost in total lower . < / l i >
< li > Logout and login back and try lower amount of buy counts total cost lower than previous attempt . < / l i >
< / u l > ` } ) ;
2017-11-24 02:22:49 -08:00
console . log ( JSON . stringify ( bot _output _data ) )
2017-11-16 13:24:39 -08:00
2017-11-24 02:22:49 -08:00
if ( bot _output _data . withdraw . complete === true ) {
bot _sendrawtx ( bot _output _data ) ;
2017-11-16 13:24:39 -08:00
toastr . success ( 'Executed Auto Split Funds. Please try in approx. 30 seconds again.' , 'Bot Info' ) ;
} else {
toastr . error ( 'No withdraw info found. Please try again with lower buy amount.' , 'Bot Info' ) ;
}
}
2017-11-24 02:22:49 -08:00
} else if ( bot _output _data . result == 'success' ) {
toastr . success ( bot _output _data . name + ' started <br> Bot ID: ' + bot _output _data . botid , 'Bot Info' ) ;
2017-11-04 13:45:26 -07:00
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
check _bot _list ( ) ;
}
2017-11-24 02:22:49 -08:00
function bot _sendrawtx ( bot _sendrawtx _data ) {
console . log ( bot _sendrawtx _data ) ;
if ( bot _sendrawtx _data . hasOwnProperty ( 'withdraw' ) ) { console . log ( bot _sendrawtx _data . withdraw . hex ) ; }
var coin = bot _sendrawtx _data . coin ;
2017-11-16 13:24:39 -08:00
console . log ( coin ) ;
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
2017-11-24 02:22:49 -08:00
var ajax _data = { "userpass" : userpass , "method" : "sendrawtransaction" , "coin" : coin , "signedtx" : ( bot _sendrawtx _data . hasOwnProperty ( 'withdraw' ) ? bot _sendrawtx _data . withdraw . hex : bot _sendrawtx _data . hex ) } ;
2017-11-16 13:24:39 -08:00
var url = "http://127.0.0.1:7783" ;
console . log ( ajax _data ) ;
console . log ( JSON . stringify ( ajax _data ) ) ;
$ . ajax ( {
data : JSON . stringify ( ajax _data ) ,
//dataType: 'json',
type : 'POST' ,
url : url
2017-11-24 02:22:49 -08:00
} ) . done ( function ( bot _sendrawtx _output _data ) {
2017-11-16 13:24:39 -08:00
// If successful
2017-11-24 02:22:49 -08:00
console . log ( bot _sendrawtx _output _data ) ;
var parsed _bot _sendrawtx _output _data = '' ;
2017-11-22 08:42:09 -08:00
try {
2017-11-24 02:22:49 -08:00
parsed _bot _sendrawtx _output _data = JSON . parse ( bot _sendrawtx _output _data ) ;
console . log ( parsed _bot _sendrawtx _output _data ) ;
if ( ! parsed _bot _sendrawtx _output _data . hasOwnProperty ( 'error' ) === false && parsed _bot _sendrawtx _output _data . error === false ) {
toastr . error ( parsed _bot _sendrawtx _output _data . error . message , 'Transaction Info' ) ;
} else if ( parsed _bot _sendrawtx _output _data . result == null ) {
bootbox . alert ( '<p>Error making withdraw transaction: </p><br>' + JSON . stringify ( parsed _bot _sendrawtx _output _data . error , null , 2 ) ) ;
} else if ( parsed _bot _sendrawtx _output _data . result == 'success' ) {
2017-11-22 08:42:09 -08:00
toastr . info ( 'Low no. of UTXOs<br>Please try again in 1 Minute.' , 'Transaction Status' ) ;
}
} catch ( e ) {
console . log ( e ) ;
2017-11-16 13:24:39 -08:00
var txid _explorer = '' ;
if ( coin == 'MNZ' ) {
txid _explorer = 'https://www.mnzexplorer.com/tx/'
} else if ( coin == 'KMD' ) {
txid _explorer = 'https://www.kmd.host/tx/'
} else if ( coin == 'BTC' ) {
txid _explorer = 'https://www.blocktrail.com/BTC/tx/'
2017-11-22 08:42:09 -08:00
} else if ( coin == 'ZEC' ) {
txid _explorer = 'https://zchain.online/tx/'
2017-11-16 13:24:39 -08:00
}
bootbox . alert ( ` Transaction Sent Successfully. Here's the Transaction ID:<br>
2017-11-24 02:22:49 -08:00
< a href = "#" onclick = "shell.openExternal('`+txid_explorer+bot_sendrawtx_output_data+`'); return false;" > ` + bot_sendrawtx_output_data + ` < / a > ` ) ;
2017-11-16 13:24:39 -08:00
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-11-04 13:45:26 -07:00
function bot _stop _pause _resume ( bot _data ) {
console . log ( bot _data ) ;
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
2017-11-16 13:24:39 -08:00
2017-11-04 13:45:26 -07:00
if ( bot _data . action == 'pause' ) {
var ajax _data = { "userpass" : userpass , "method" : "bot_pause" , "botid" : bot _data . botid } ;
2017-11-16 13:24:39 -08:00
var action _result = 'paused' ;
2017-11-04 13:45:26 -07:00
}
if ( bot _data . action == 'resume' ) {
var ajax _data = { "userpass" : userpass , "method" : "bot_resume" , "botid" : bot _data . botid } ;
2017-11-16 13:24:39 -08:00
var action _result = 'resumed' ;
2017-11-04 13:45:26 -07:00
}
if ( bot _data . action == 'stop' ) {
var ajax _data = { "userpass" : userpass , "method" : "bot_stop" , "botid" : bot _data . botid } ;
2017-11-16 13:24:39 -08:00
var action _result = 'stopped' ;
2017-11-04 13:45:26 -07:00
}
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' ) {
2017-11-16 13:24:39 -08:00
toastr . success ( 'Bot ID: ' + bot _data . botid + ' ' + action _result , 'Bot Info' ) ;
2017-11-04 13:45:26 -07:00
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
check _bot _list ( ) ;
}
2017-11-06 03:25:18 -08:00
function bot _settings ( bot _data ) {
console . log ( bot _data ) ;
2017-11-16 13:24:39 -08:00
2017-11-06 03:25:18 -08:00
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 ) ;
2017-11-16 13:24:39 -08:00
2017-11-06 03:25:18 -08:00
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 ( ) ;
}
2017-11-04 13:45:26 -07:00
function bot _status ( bot _data ) {
console . log ( bot _data ) ;
2017-11-16 13:24:39 -08:00
2017-11-04 13:45:26 -07:00
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
2017-11-04 17:29:03 -07:00
var ajax _data = { "userpass" : userpass , "method" : "bot_status" , "botid" : bot _data . botid } ;
2017-11-04 13:45:26 -07:00
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' ) {
2017-11-04 17:29:03 -07:00
2017-11-06 03:25:18 -08:00
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 ;
}
2017-11-04 17:29:03 -07:00
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 ;
2017-11-05 22:44:32 -08:00
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' ;
2017-11-04 17:29:03 -07:00
2017-11-16 13:24:39 -08:00
// "tradeid": 1750749844, "price": 0.13749702, "volume":
function renderTradeAttempts ( trades ) {
if ( trades &&
trades . length ) {
let _out = {
request : '' ,
trade : '' ,
requestNonEmpty : false ,
tradeNonEmpty : false ,
} ;
_out . request = ` <table width="100%" class="table table-striped">
< tr >
< th > Request ID < / t h >
< th > Quote ID < / t h > ` ;
for ( let i = 0 ; i < trades . length ; i ++ ) {
if ( trades [ i ] . requestid ) {
_out . requestNonEmpty = true ;
_out . request += ` <tr>
< td > $ { trades [ i ] . requestid } < / t d >
< td > $ { trades [ i ] . quoteid } < / t d >
< / t r > ` ;
}
}
_out . request += ` </table> ` ;
_out . trade = ` <table width="100%" class="table table-striped">
< tr >
< th > Trade ID < / t h >
< th > Status < / t h >
< th > Price < / t h >
< th > Volume < / t h > ` ;
for ( let i = 0 ; i < trades . length ; i ++ ) {
if ( trades [ i ] . tradeid ) {
_out . tradeNonEmpty = true ;
var trade _status = ''
var trade _price = ''
var trade _volume = ''
if ( ! trades [ i ] . status == true ) {
trade _status = '-'
trade _price = '-' ;
trade _volume = '-' ;
} else {
trade _status = trades [ i ] . status ;
if ( trades [ i ] . status !== 'pending' ) {
trade _price = trades [ i ] . price ;
trade _volume = trades [ i ] . volume ;
} else {
trade _price = '-' ;
trade _volume = '-' ;
}
}
console . log ( trade _price ) ;
console . log ( trade _volume ) ;
_out . trade += ` <tr>
< td > $ { trades [ i ] . tradeid } < / t d >
< td > $ { trade _status } < / t d >
< td > $ { trade _price } < / t d >
< td > $ { trade _volume } < / t d >
< / t r > ` ;
}
}
_out . trade += ` </table> ` ;
return ( _out . requestNonEmpty ? _out . request : '' ) + ( _out . tradeNonEmpty ? _out . trade : '' ) ;
} else {
return '' ;
}
}
2017-11-06 03:25:18 -08:00
var bot _update _bootbox = bootbox . dialog ( {
2017-11-16 13:24:39 -08:00
backdrop : true ,
onEscape : true ,
2017-11-04 17:29:03 -07:00
message : `
< table width = "100%" class = "table table-striped" >
< tr >
2017-11-06 03:25:18 -08:00
< td style = "width: 150px;" > Auto Trader ID < / t d >
2017-11-04 17:29:03 -07:00
< td > ` + data.botid + ` < / t d >
< / t r >
< tr >
< td > Auto Trade Name < / t d >
< td > ` + data.name + ` < / t d >
< / t r >
< tr >
< td > Trade Action < / t d >
< td > ` + data.action + ` < / t d >
< / t r >
< tr >
< td > Selling Currency < / t d >
< td > ` + rel_answer + ` < / t d >
< / t r >
< tr >
< td > Buying Currency < / t d >
< td > ` + base_answer + ` < / t d >
< / t r >
< tr >
2017-11-06 03:25:18 -08:00
< td > ` + max_min + ` Price < / t d >
< td > ` + max_min_val + ` ` + data.rel + ` < / t d >
2017-11-04 17:29:03 -07:00
< / t r >
< tr >
< td > Total Selling Volume < / t d >
< td > ` + data.totalrelvolume + ` ` + data.rel + ` < / t d >
< / t r >
< tr >
< td > Total Buying Volume < / t d >
< td > ` + data.totalbasevolume + ` ` + data.base + ` < / t d >
< / t r >
< tr >
< td > Result < / t d >
< td > ` + result_answer + ` < / t d >
< / t r >
< tr >
2017-11-16 13:24:39 -08:00
< td > Trades Attempts < / t d >
< td > < div style = "max-height: 450px; overflow-y: scroll;" > ` + renderTradeAttempts(data.trades) + ` < / d i v > < / t d >
2017-11-04 17:29:03 -07:00
< / t r >
2017-11-05 22:44:32 -08:00
< / t a b l e >
< 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 < / s t r o n g > < / h 3 >
< / d i v >
< div class = "panel-body" > <!-- panel - body -- >
< div class = "form-group" >
2017-11-06 03:25:18 -08:00
< span style = "float: right; font-size: 18px;" > < span > New ` + max_min_text + ` < / s p a n > P r i c e t o < s p a n > ` + b u y _ s e l l _ t e x t + ` < / s p a n > < / s p a n >
2017-11-05 22:44:32 -08:00
< / d i v >
< div class = "input-group col-sm-12" >
< span class = "input-group-addon" > ` + rel_form + ` < / s p a n >
2017-11-06 03:25:18 -08:00
< input type = "number" class = "form-control trading_pair_coin_newprice" placeholder = "Price e.g. 0.01" style = "height: 64px; font-size: 20px;" >
2017-11-05 22:44:32 -08:00
< span class = "input-group-addon" id = "trading_pair_coin_price_max_min_update" style = "font-size: 20px;" > ` + max_min_text + ` < / s p a n >
< / d i v >
< div class = "form-group" style = "margin-top: 15px; margin-bottom: 0px;" >
2017-11-06 03:25:18 -08:00
< span style = "font-size: 18px;" > < span > New Max < / s p a n > A m o u n t t o < s p a n > ` + b u y _ s e l l _ t e x t + ` < / s p a n > < / s p a n >
2017-11-05 22:44:32 -08:00
< / d i v >
< 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 + ` < / s p a n >
2017-11-06 03:25:18 -08:00
< input type = "number" class = "form-control trading_pair_coin_newvolume" placeholder = "Amount e.g. 12.5" style = "height: 64px; font-size: 20px;" >
2017-11-05 22:44:32 -08:00
< / d i v >
2017-11-16 13:24:39 -08:00
< div class = "input-group col-sm-12" >
< span class = "input-group-addon" style = "font-size: 30px; font-weight: 200; border: 0; background-color: #fff;" > It ' ll cost you < / s p a n >
< span class = "input-group-addon" style = "font-size: 40px; font-weight: 100; border: 0; background-color: #fff;" > < span class = "new_relvol_basevol" > 0 < / s p a n > < s p a n s t y l e = " f o n t - s i z e : 2 5 p x ; b a c k g r o u n d - c o l o r : # f f f ; f o n t - w e i g h t : 1 0 0 ; " > ` + d a t a . r e l . t o U p p e r C a s e ( ) + ` < / s p a n > < / s p a n >
< / d i v >
2017-11-05 22:44:32 -08:00
< / d i v >
< / d i v >
< / d i v >
< / d i v > ` ,
2017-11-04 17:29:03 -07:00
closeButton : true ,
2017-11-05 22:44:32 -08:00
size : 'large' ,
buttons : {
cancel : {
2017-11-16 13:24:39 -08:00
label : "Close" ,
className : 'btn-default' ,
2017-11-05 22:44:32 -08:00
callback : function ( ) {
}
} ,
ok : {
label : "Update" ,
2017-11-06 03:25:18 -08:00
className : 'btn-primary btn-bot_settings_update' ,
2017-11-05 22:44:32 -08:00
callback : function ( ) {
2017-11-06 03:25:18 -08:00
//console.log($('.trading_pair_coin_newprice').val())
//console.log($('.trading_pair_coin_newvolume').val())
//console.log(data.rel);
//console.log(data.base);
2017-11-16 13:24:39 -08:00
var newmaxprice = $ ( '.trading_pair_coin_newprice' ) . val ( ) ;
var newbasevol = $ ( '.trading_pair_coin_newvolume' ) . val ( ) ;
var newrelvolume = newmaxprice * newbasevol ;
2017-11-06 03:25:18 -08:00
bot _update _data = { }
bot _update _data . rel = data . rel ;
bot _update _data . base = data . base ;
bot _update _data . botid = data . botid ;
2017-11-16 13:24:39 -08:00
bot _update _data . newprice = newmaxprice ;
bot _update _data . newvolume = newrelvolume ;
2017-11-06 03:25:18 -08:00
//console.log(bot_update_data);
bot _settings ( bot _update _data ) ;
2017-11-05 22:44:32 -08:00
}
}
}
2017-11-04 17:29:03 -07:00
} ) ;
2017-11-06 03:25:18 -08:00
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 ( ) ;
2017-11-04 17:29:03 -07:00
2017-11-06 03:25:18 -08:00
$ ( '.trading_pair_coin_newprice' ) . keyup ( function ( ) {
2017-11-16 13:24:39 -08:00
var newmaxprice = $ ( '.trading_pair_coin_newprice' ) . val ( ) ;
var newbasevol = $ ( '.trading_pair_coin_newvolume' ) . val ( ) ;
var newrelvolume = newmaxprice * newbasevol ;
$ ( '.new_relvol_basevol' ) . html ( newrelvolume . toFixed ( 8 ) ) ;
2017-11-06 03:25:18 -08:00
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 ( ) {
2017-11-16 13:24:39 -08:00
var newmaxprice = $ ( '.trading_pair_coin_newprice' ) . val ( ) ;
var newbasevol = $ ( '.trading_pair_coin_newvolume' ) . val ( ) ;
var newrelvolume = newmaxprice * newbasevol ;
$ ( '.new_relvol_basevol' ) . html ( newrelvolume . toFixed ( 8 ) ) ;
2017-11-06 03:25:18 -08:00
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" ) ;
}
} ) ;
2017-11-16 13:24:39 -08:00
2017-11-06 03:25:18 -08:00
} ) ;
//toastr.success('Bot ID: ' + bot_data.botid + ' ' + bot_data.action + ' presented.', 'Bot Info');
2017-11-04 13:45:26 -07:00
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
check _bot _list ( ) ;
}
2017-11-04 10:53:15 -07:00
2017-11-16 13:24:39 -08:00
function bot _screen _sellcoin _balance ( sig ) {
if ( sig == false ) {
clearInterval ( bot _screen _sellcoin _balance _Interval ) ;
return
} else {
console . log ( 'checking bot screen coin balance' ) ;
}
coin = $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
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 ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-16 13:24:39 -08:00
bot _screen _sellcoin _balance ( ) ;
} else {
if ( ! data . error === false && data . error === 'coin is disabled' ) {
var button _controls = ` <br>
< span >
< button class = "btn btn-primary btn-xs coin_balance_enable_native" style = "margin-top: 6px; margin-right: 3px;" data - electrum = true data - method = "enable" data - coin = "` + coin + `" > Enable Native < / b u t t o n >
< button class = "btn btn-warning btn-xs coin_balance_enable_electrum" style = "margin-top: 6px;" data - electrum = false data - method = "enable" data - coin = "` + coin + `" > Enable Electrum < / b u t t o n >
< / s p a n > ` ;
$ ( '.trading_sellcoin_ticker_name' ) . html ( '<img src="img/cryptologo/' + coin . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _name ( coin ) + ' (' + coin + ')' + button _controls ) ;
$ ( '.trading_sellcoin_balance' ) . html ( 'Coin is disabled' ) ;
$ ( '#balance-spinner' ) . hide ( ) ;
$ ( '.balance-block' ) . show ( ) ;
} else {
//console.warn(data.coin)
var coin _mode = '' ;
if ( data . coin . hasOwnProperty ( 'electrum' ) ) {
coin _mode = '<i class="fa fa-bolt" data-toggle="tooltip" data-placement="top" title="Electrum Mode"></i>'
} else {
coin _mode = '<i class="fa fa-shield" data-toggle="tooltip" data-placement="top" title="Native Mode"></i>'
}
var button _controls = ` <br>
< span >
< button class = "btn btn-danger btn-xs coin_balance_disable" style = "margin-top: 6px;" data - electrum = true data - method = "disable" data - coin = "` + coin + `" > Disable < / b u t t o n >
< button class = "btn btn-warning btn-xs coin_balance_receive" style = "margin-top: 6px;" data - coin = "` + coin + `" > Receive < / b u t t o n >
< button class = "btn btn-success btn-xs coin_balance_send" style = "margin-top: 6px;" data - coin = "` + coin + `" > Send < / b u t t o n >
< button class = "btn btn-info btn-xs coin_balance_inventory" style = "margin-top: 6px;" data - coin = "` + coin + `" data - addr = "` + data.coin.smartaddress + `" data - balance = "` + data.coin.balance + `" > Inventory < / b u t t o n >
< / s p a n > ` ;
$ ( '.trading_sellcoin_ticker_name' ) . html ( '<img src="img/cryptologo/' + coin . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _name ( coin ) + ' (' + coin + ') <small style="vertical-align: top; margin-left: 10px">' + coin _mode + '</small>' + button _controls ) ;
$ ( '.trading_sellcoin_balance' ) . html ( data . coin . balance + ' <span style="font-size: 60%; font-weight: 100;">' + coin + '</span><br><span style="font-size: 50%; font-weight: 200;">' + data . coin . smartaddress + '</span>' ) ;
$ ( '#balance-spinner' ) . hide ( ) ;
$ ( '.balance-block' ) . show ( ) ;
}
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-11-06 05:58:36 -08:00
function bot _screen _coin _balance ( sig ) {
if ( sig == false ) {
2017-11-16 13:24:39 -08:00
clearInterval ( bot _screen _coin _balance _Interval ) ;
2017-11-06 05:58:36 -08:00
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 ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-06 05:58:36 -08:00
bot _screen _coin _balance ( ) ;
} else {
2017-11-16 13:24:39 -08:00
if ( ! data . error === false && data . error === 'coin is disabled' ) {
var button _controls = ` <br>
< span >
< button class = "btn btn-primary btn-xs coin_balance_enable_native" style = "margin-top: 6px; margin-right: 3px;" data - electrum = true data - method = "enable" data - coin = "` + coin + `" > Enable Native < / b u t t o n >
< button class = "btn btn-warning btn-xs coin_balance_enable_electrum" style = "margin-top: 6px;" data - electrum = false data - method = "enable" data - coin = "` + coin + `" > Enable Electrum < / b u t t o n >
< / s p a n > ` ;
$ ( '.trading_coin_ticker_name' ) . html ( '<img src="img/cryptologo/' + coin . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _name ( coin ) + ' (' + coin + ')' + button _controls ) ;
$ ( '.trading_coin_balance' ) . html ( 'Coin is disabled' ) ;
} else {
var coin _mode = '' ;
//console.warn(data.coin)
if ( data . coin . hasOwnProperty ( 'electrum' ) ) {
coin _mode = '<i class="fa fa-bolt" data-toggle="tooltip" data-placement="top" title="Electrum Mode"></i>'
} else {
coin _mode = '<i class="fa fa-shield" data-toggle="tooltip" data-placement="top" title="Native Mode"></i>'
}
var button _controls = ` <br>
< span >
< button class = "btn btn-danger btn-xs coin_balance_disable" style = "margin-top: 6px;" data - electrum = true data - method = "disable" data - coin = "` + coin + `" > Disable < / b u t t o n >
< button class = "btn btn-warning btn-xs coin_balance_receive" style = "margin-top: 6px;" data - coin = "` + coin + `" > Receive < / b u t t o n >
< button class = "btn btn-success btn-xs coin_balance_send" style = "margin-top: 6px;" data - coin = "` + coin + `" > Send < / b u t t o n >
< button class = "btn btn-info btn-xs coin_balance_inventory" style = "margin-top: 6px;" data - coin = "` + coin + `" data - addr = "` + data.coin.smartaddress + `" data - balance = "` + data.coin.balance + `" > Inventory < / b u t t o n >
< / s p a n > ` ;
$ ( '.trading_coin_ticker_name' ) . html ( '<img src="img/cryptologo/' + coin . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _name ( coin ) + ' (' + coin + ') <small style="vertical-align: top; margin-left: 10px">' + coin _mode + '</small>' + button _controls ) ;
$ ( '.trading_coin_balance' ) . html ( data . coin . balance + ' <span style="font-size: 60%; font-weight: 100;">' + coin + '</span><br><span style="font-size: 50%; font-weight: 200;">' + data . coin . smartaddress + '</span>' ) ;
}
//$('.trading_coin_ticker_name').html('<img src="img/cryptologo/'+coin.toLowerCase()+'.png" style="width: 30px;"> '+ return_coin_name(coin) + ' ('+coin+')');
//$('.trading_coin_balance').html(data.coin.balance + ' <span style="font-size: 80%; font-weight: 100;">' + coin + '</span><br><span style="font-size: 50%; font-weight: 200;">' + data.coin.smartaddress + '</span>');
2017-11-06 05:58:36 -08:00
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-11-04 10:53:15 -07:00
/* Auto Trading Bot END */
/* Swap Status */
$ ( '.btn-swapstatusrefresh' ) . click ( function ( ) {
2017-11-16 13:24:39 -08:00
check _swap _status ( ) ;
2017-11-04 07:57:53 -07:00
} )
2017-11-04 17:29:03 -07:00
$ ( '.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 ( ) ) ;
} ) ;
2017-11-22 12:01:53 -08:00
function check _swap _status _details ( swap _status _data ) {
console . log ( swap _status _data ) ;
2017-11-04 17:29:03 -07:00
2017-11-22 12:01:53 -08:00
var requestid = swap _status _data . requestid ;
var quoteid = swap _status _data . quoteid ;
2017-11-04 07:57:53 -07:00
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 ( {
2017-11-04 17:29:03 -07:00
async : true ,
2017-11-04 07:57:53 -07:00
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
2017-11-22 12:01:53 -08:00
} ) . done ( function ( swap _status _output _data ) {
2017-11-04 17:29:03 -07:00
// If successful
2017-11-22 12:01:53 -08:00
console . log ( swap _status _output _data ) ;
2017-11-16 13:24:39 -08:00
2017-11-22 12:01:53 -08:00
if ( ! swap _status _output _data . userpass === false ) {
2017-11-16 13:24:39 -08:00
console . log ( 'first marketmaker api call execution after marketmaker started.' )
2017-11-22 12:01:53 -08:00
sessionStorage . setItem ( 'mm_usercoins' , JSON . stringify ( swap _status _output _data . coins ) ) ;
sessionStorage . setItem ( 'mm_userpass' , swap _status _output _data . userpass ) ;
sessionStorage . setItem ( 'mm_mypubkey' , swap _status _output _data . mypubkey ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-16 13:24:39 -08:00
} else {
2017-11-22 12:01:53 -08:00
result _answer = ( swap _status _output _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> ' + swap _status _output _data . result + '</span></h4>' ;
alice _answer = '<img src="img/cryptologo/' + swap _status _output _data . alice . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _name ( swap _status _output _data . alice ) + ' (' + swap _status _output _data . alice + ')' ;
bob _answer = '<img src="img/cryptologo/' + swap _status _output _data . bob . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _name ( swap _status _output _data . bob ) + ' (' + swap _status _output _data . bob + ')' ;
iambob _answer = ( swap _status _output _data . iambob == 0 ) ? 'Buyer' : 'Seller' ;
2017-11-16 13:24:39 -08:00
var bob _explorer = '' ;
2017-11-22 12:01:53 -08:00
if ( swap _status _output _data . bob == 'MNZ' ) {
2017-11-16 13:24:39 -08:00
bob _explorer = 'https://www.mnzexplorer.com/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . bob == 'KMD' ) {
2017-11-16 13:24:39 -08:00
bob _explorer = 'https://www.kmd.host/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . bob == 'BTC' ) {
2017-11-16 13:24:39 -08:00
bob _explorer = 'https://www.blocktrail.com/BTC/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . bob == 'ZEC' ) {
2017-11-22 08:42:09 -08:00
bob _explorer = 'https://zchain.online/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . bob == 'LTC' ) {
2017-11-22 08:42:09 -08:00
bob _explorer = 'https://bchain.info/LTC/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . bob == 'HUSH' ) {
2017-11-22 08:42:09 -08:00
bob _explorer = 'https://explorer.myhush.org/tx/'
2017-11-16 13:24:39 -08:00
}
var alice _explorer = '' ;
2017-11-22 12:01:53 -08:00
if ( swap _status _output _data . alice == 'MNZ' ) {
2017-11-16 13:24:39 -08:00
alice _explorer = 'https://www.mnzexplorer.com/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . alice == 'KMD' ) {
2017-11-16 13:24:39 -08:00
alice _explorer = 'https://www.kmd.host/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . alice == 'BTC' ) {
2017-11-16 13:24:39 -08:00
alice _explorer = 'https://www.blocktrail.com/BTC/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . alice == 'ZEC' ) {
2017-11-22 08:42:09 -08:00
alice _explorer = 'https://zchain.online/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . alice == 'LTC' ) {
2017-11-22 08:42:09 -08:00
alice _explorer = 'https://bchain.info/LTC/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . alice == 'HUSH' ) {
2017-11-22 08:42:09 -08:00
alice _explorer = 'https://explorer.myhush.org/tx/'
2017-11-16 13:24:39 -08:00
}
2017-11-04 17:29:03 -07:00
2017-11-22 12:01:53 -08:00
var time = new Date ( swap _status _output _data . expiration * 1000 ) ;
2017-11-16 13:24:39 -08:00
//var expiration = moment.unix(data.expiration);
//var now = moment();
2017-11-04 17:29:03 -07:00
2017-11-16 13:24:39 -08:00
function renderValues ( values ) {
let _out = '' ;
if ( values &&
values . length ) {
for ( let i = 0 ; i < values . length ; i ++ ) {
_out += ` <div> ${ values [ i ] } </div> ` ;
}
}
return _out ;
}
var simplified _dexdetail _tr = '' ;
2017-11-22 12:01:53 -08:00
if ( swap _status _output _data . iambob == 0 ) {
2017-11-16 13:24:39 -08:00
console . log ( "I'm Buyer." ) ;
2017-11-22 12:01:53 -08:00
var total _sell _unit = parseFloat ( swap _status _output _data . values [ 3 ] ) + parseFloat ( swap _status _output _data . values [ 6 ] ) ;
var single _unit _price = parseFloat ( swap _status _output _data . srcamount ) / parseFloat ( total _sell _unit ) ;
var price _per _bought _unit = parseFloat ( total _sell _unit ) / parseFloat ( swap _status _output _data . srcamount ) ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>Price paid in ' + swap _status _output _data . alice + ':</b> ' + swap _status _output _data . values [ 3 ] . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>Fee paid in ' + swap _status _output _data . alice + ':</b> ' + swap _status _output _data . values [ 6 ] . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>Total ' + swap _status _output _data . alice + ' paid:</b> ' + total _sell _unit . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>' + swap _status _output _data . bob + ' received:</b> ' + swap _status _output _data . srcamount . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>1 ' + swap _status _output _data . alice + ' can buy:</b> ' + swap _status _output _data . srcamount . toFixed ( 8 ) + ' / ' + total _sell _unit . toFixed ( 8 ) + ' = ~' + single _unit _price . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>Price paid per ' + swap _status _output _data . bob + ':</b> ' + total _sell _unit . toFixed ( 8 ) + ' / ' + swap _status _output _data . srcamount . toFixed ( 8 ) + ' = ' + price _per _bought _unit . toFixed ( 8 ) + '</td></tr>' ;
2017-11-16 13:24:39 -08:00
}
2017-11-22 12:01:53 -08:00
if ( swap _status _output _data . iambob == 1 ) {
2017-11-16 13:24:39 -08:00
console . log ( "I'm Seller." ) ;
2017-11-22 12:01:53 -08:00
var total _sell _unit = parseFloat ( swap _status _output _data . values [ 0 ] ) + parseFloat ( swap _status _output _data . bobtxfee ) ;
var units _sold _at _price = parseFloat ( swap _status _output _data . values [ 3 ] ) / parseFloat ( total _sell _unit ) ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>' + swap _status _output _data . bob + ' sold: </b> = ' + swap _status _output _data . values [ 0 ] . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>Fee paid in ' + swap _status _output _data . bob + ': </b> = ' + swap _status _output _data . bobtxfee + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>Total ' + swap _status _output _data . bob + ' deducted: </b> = ' + total _sell _unit + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>' + swap _status _output _data . alice + ' received: </b> = ' + swap _status _output _data . values [ 3 ] . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>' + swap _status _output _data . bob + ' sold at price: </b> = ' + swap _status _output _data . values [ 3 ] . toFixed ( 8 ) + ' / ' + total _sell _unit . toFixed ( 8 ) + ' = ' + units _sold _at _price + '</td></tr>' ;
2017-11-16 13:24:39 -08:00
}
var swap _status _details _bootbox = bootbox . dialog ( {
//onEscape: true, // DO NOT ENABLE THESE TWO LINES PLEASE. THAT DOESN'T LET THE CLOSE BUTTON ACTIONS EXECUTE IF THESE ARE ENABLED.
//backdrop: true,
2017-11-04 17:29:03 -07:00
message : `
2017-11-16 13:24:39 -08:00
< div class = "input-group col-sm-12" >
< span class = "input-group-addon" style = "font-size: 20px; border: 0px;" > < div class = "swapdetail_bobdeposit" > < span class = "glyphicon glyphicon-save" aria - hidden = "true" > < / s p a n > < b r > S e l l e r D e p o s i t < / d i v > < / s p a n >
< span class = "input-group-addon" style = "font-size: 20px; border: 0px;" > < div class = "swapdetail_alicepayment" > < span class = "glyphicon glyphicon-transfer" aria - hidden = "true" > < / s p a n > < b r > B u y e r P a y m e n t < / d i v > < / s p a n >
< span class = "input-group-addon" style = "font-size: 20px; border: 0px;" > < div class = "swapdetail_bobpayment" > < span class = "glyphicon glyphicon-random" aria - hidden = "true" > < / s p a n > < b r > S e l l e r P a y m e n t < / d i v > < / s p a n >
< span class = "input-group-addon" style = "font-size: 20px; border: 0px; text-align: center;" > < div class = "swapdetail_alicespend" > < span class = "glyphicon glyphicon-ok-circle" aria - hidden = "true" > < / s p a n > < b r > A l l D o n e ! < / d i v > < / s p a n >
< / d i v >
< div class = "input-group col-sm-12" >
< span class = "input-group-addon swapdetail_info" style = "font-size: 20px; border: 0px; background-color: #fff;" > < / s p a n >
< / d i v >
< div class = "row" >
< div class = "col-sm-12" >
< div class = "panel panel-default" >
< div class = "panel-heading" >
< h3 class = "panel-title" > < strong > Full Status < / s t r o n g > < / h 3 >
2017-11-24 07:29:20 -08:00
< button class = "btn btn-xs btn-warning btn_kickstart_stuck_trade" style = "float: right; margin-right: -6px; margin-top: -20px" > KICKSTART STUCK TRADE < / b u t t o n >
2017-11-16 13:24:39 -08:00
< / d i v >
< div class = "" > <!-- panel - body -- >
< table width = "100%" class = "table table-striped" style = "margin-bottom: 0;" >
< tr >
< td rowspan = 5 > Trade info < / t d >
< td > Quote ID < / t d >
2017-11-22 12:01:53 -08:00
< td > ` + swap_status_output_data.quoteid + ` < / t d >
2017-11-16 13:24:39 -08:00
< / t r >
< tr >
< td > Request ID < / t d >
2017-11-22 12:01:53 -08:00
< td > ` + swap_status_output_data.requestid + ` < / t d >
2017-11-16 13:24:39 -08:00
< / t r >
< tr >
< td > Trade id < / t d >
2017-11-22 12:01:53 -08:00
< td > ` + swap_status_output_data.tradeid + ` < / t d >
2017-11-16 13:24:39 -08:00
< / t r >
< tr >
< td > Expires In < / t d >
< td > ` + time + ` < / t d >
< / t r >
< tr >
< td > Source Amount < / t d >
2017-11-22 12:01:53 -08:00
< td > ` + swap_status_output_data.srcamount + ` < / t d >
2017-11-16 13:24:39 -08:00
< / t r >
< tr >
< td rowspan = 4 > Buyer Info < / t d >
< td > Buyer Coin < / t d >
< td > ` + alice_answer + ` < / t d >
< / t r >
< tr >
< td > Buyer ID < / t d >
2017-11-22 12:01:53 -08:00
< td > ` + swap_status_output_data.aliceid + ` < / t d >
2017-11-16 13:24:39 -08:00
< / t r >
< tr >
< td > Buyer Payment < / t d >
2017-11-22 12:01:53 -08:00
< td class = "tbl_alicepayment" > ` + ` < a href = "#" onclick = "shell.openExternal('`+alice_explorer+swap_status_output_data.alicepayment+`'); return false;" > ` + swap_status_output_data.alicepayment + ` < / a > < / t d >
2017-11-16 13:24:39 -08:00
< / t r >
< tr >
< td > Buyer Tx Fee < / t d >
2017-11-22 12:01:53 -08:00
< td class = "tbl_alicetxfee" > ` + swap_status_output_data.alicetxfee + ` < / t d >
2017-11-16 13:24:39 -08:00
< / t r >
< tr >
< td rowspan = 4 > Seller Info < / t d >
< td > Seller Coin < / t d >
< td > ` + bob_answer + ` < / t d >
< / t r >
< tr >
< td > Seller Deposit < / t d >
2017-11-22 12:01:53 -08:00
< td class = "tbl_bobdeposit" > ` + ` < a href = "#" onclick = "shell.openExternal('`+bob_explorer+swap_status_output_data.bobdeposit+`'); return false;" > ` + swap_status_output_data.bobdeposit + ` < / a > < / t d >
2017-11-16 13:24:39 -08:00
< / t r >
< tr >
< td > Seller Payment < / t d >
2017-11-22 12:01:53 -08:00
< td class = "tbl_bobpayment" > < a href = "#" onclick = "shell.openExternal('`+bob_explorer+swap_status_output_data.bobpayment+`'); return false;" > ` + swap_status_output_data.bobpayment + ` < / a > < / t d >
2017-11-16 13:24:39 -08:00
< / t r >
< tr >
< td > Seller Tx Fee < / t d >
2017-11-22 12:01:53 -08:00
< td class = "tbl_bobtxfee" > ` + swap_status_output_data.bobtxfee + ` < / t d >
2017-11-16 13:24:39 -08:00
< / t r >
< tr >
2017-11-23 22:56:02 -08:00
< td rowspan = 8 > Other Info < / t d >
2017-11-16 13:24:39 -08:00
< td colspan = 2 > < b > You are : < / b > ` + i a m b o b _ a n s w e r + ` < / t d >
< / t r >
` + simplified_dexdetail_tr + `
< tr >
2017-11-23 22:56:02 -08:00
< td colspan = 2 > < b > Sent Flags : < / b > < s p a n c l a s s = " t b l _ s e n t f l a g s " > ` + J S O N . s t r i n g i f y ( s w a p _ s t a t u s _ o u t p u t _ d a t a . s e n t f l a g s , n u l l , 2 ) + ` < / s p a n > < / t d >
< / t r >
<!-- < tr >
2017-11-16 13:24:39 -08:00
< td > Values < / t d >
2017-11-22 12:01:53 -08:00
< td class = "tbl_values" > ` + renderValues(swap_status_output_data.values) + ` < / t d >
2017-11-16 13:24:39 -08:00
< / t r >
< tr >
< td > depositspent < / t d >
2017-11-22 12:01:53 -08:00
< td class = "tbl_depositspent" > ` + swap_status_output_data.depositspent + ` < / t d >
2017-11-16 13:24:39 -08:00
< / t r >
< tr >
< td > Apayment Spent < / t d >
2017-11-22 12:01:53 -08:00
< td class = "tbl_Apaymentspent" > ` +swap_status_output_data.Apaymentspent+ ` < / t d >
2017-11-16 13:24:39 -08:00
< / t r > - - >
< / t a b l e >
< / d i v >
< / d i v >
< / d i v >
2017-11-18 05:43:13 -08:00
2017-11-16 13:24:39 -08:00
< / d i v > ` ,
closeButton : false ,
size : 'large' ,
buttons : {
cancel : {
label : "Close" ,
className : 'btn-default btn_swap_status_details_close' ,
callback : function ( ) {
}
}
}
} ) ;
swap _status _details _bootbox . init ( function ( ) {
CheckOrderBookFn ( false ) ;
check _swap _status ( false ) ;
check _bot _list ( false ) ;
check _my _prices ( false ) ;
//bot_screen_coin_balance(false);
//bot_screen_sellcoin_balance(false);
2017-11-24 07:29:20 -08:00
$ ( '.btn_kickstart_stuck_trade' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn_kickstart_stuck_trade clicked' ) ;
var remove _finished _swap _file _status = ShepherdIPC ( { "command" : "remove_finished_swap_file" , "requestid" : swap _status _output _data . requestid , "quoteid" : swap _status _output _data . quoteid } ) ;
if ( remove _finished _swap _file _status == 'removed' ) {
console . log ( ` ${ swap _status _output _data . requestid } - ${ swap _status _output _data . quoteid } .finished file removed. ` ) ;
toastr . success ( ` ${ swap _status _output _data . requestid } - ${ swap _status _output _data . quoteid } .finished file removed. ` , 'Swap Status Update' ) ;
} else if ( remove _finished _swap _file _status == 'error' ) {
console . log ( ` Failed to remove ${ swap _status _output _data . requestid } - ${ swap _status _output _data . quoteid } file ` ) ;
toastr . error ( ` Failed to remove ${ swap _status _output _data . requestid } - ${ swap _status _output _data . quoteid } file ` , 'Swap Status Update' ) ;
}
} ) ;
2017-11-16 13:24:39 -08:00
var swapdetail _blinker = null ;
function blinker ( sig ) {
$ . ajax ( {
async : true ,
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
} ) . done ( function ( dataforblinker ) {
var bob _explorer = '' ;
2017-11-22 12:01:53 -08:00
if ( swap _status _output _data . bob == 'MNZ' ) {
2017-11-16 13:24:39 -08:00
bob _explorer = 'https://www.mnzexplorer.com/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . bob == 'KMD' ) {
2017-11-16 13:24:39 -08:00
bob _explorer = 'https://www.kmd.host/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . bob == 'BTC' ) {
2017-11-16 13:24:39 -08:00
bob _explorer = 'https://www.blocktrail.com/BTC/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . bob == 'ZEC' ) {
2017-11-22 08:42:09 -08:00
bob _explorer = 'https://zchain.online/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . bob == 'LTC' ) {
2017-11-22 08:42:09 -08:00
bob _explorer = 'https://bchain.info/LTC/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . bob == 'HUSH' ) {
2017-11-22 08:42:09 -08:00
bob _explorer = 'https://explorer.myhush.org/tx/'
2017-11-16 13:24:39 -08:00
}
var alice _explorer = '' ;
2017-11-22 12:01:53 -08:00
if ( swap _status _output _data . alice == 'MNZ' ) {
2017-11-16 13:24:39 -08:00
alice _explorer = 'https://www.mnzexplorer.com/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . alice == 'KMD' ) {
2017-11-16 13:24:39 -08:00
alice _explorer = 'https://www.kmd.host/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . alice == 'BTC' ) {
2017-11-16 13:24:39 -08:00
alice _explorer = 'https://www.blocktrail.com/BTC/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . alice == 'ZEC' ) {
2017-11-22 08:42:09 -08:00
alice _explorer = 'https://zchain.online/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . alice == 'LTC' ) {
2017-11-22 08:42:09 -08:00
alice _explorer = 'https://bchain.info/LTC/tx/'
2017-11-22 12:01:53 -08:00
} else if ( swap _status _output _data . alice == 'HUSH' ) {
2017-11-22 08:42:09 -08:00
alice _explorer = 'https://explorer.myhush.org/tx/'
2017-11-16 13:24:39 -08:00
}
$ ( '.tbl_alicepayment' ) . html ( ` <a href="#" onclick="shell.openExternal(' ` + alice _explorer + dataforblinker . alicepayment + ` '); return false;"> ` + dataforblinker . alicepayment + ` </a> ` ) ;
$ ( '.tbl_alicetxfee' ) . html ( dataforblinker . alicetxfee ) ;
$ ( '.tbl_bobdeposit' ) . html ( ` <a href="#" onclick="shell.openExternal(' ` + bob _explorer + dataforblinker . bobdeposit + ` '); return false;"> ` + dataforblinker . bobdeposit + ` </a> ` ) ;
$ ( '.tbl_bobpayment' ) . html ( ` <a href="#" onclick="shell.openExternal(' ` + bob _explorer + dataforblinker . bobpayment + ` '); return false;"> ` + dataforblinker . bobpayment + ` </a> ` ) ;
$ ( '.tbl_bobtxfee' ) . html ( dataforblinker . bobtxfee ) ; ;
$ ( '.tbl_sentflags' ) . html ( JSON . stringify ( dataforblinker . sentflags ) , null , 2 ) ;
$ ( '.tbl_values' ) . html ( renderValues ( dataforblinker . values ) ) ;
$ ( '.tbl_depositspent' ) . html ( dataforblinker . depositspent ) ;
$ ( '.tbl_Apaymentspent' ) . html ( dataforblinker . Apaymentspent ) ;
var current _sentflag = get _swapstatus _step ( dataforblinker )
console . log ( 'CURRENT SENT FLAG IS: ' + current _sentflag ) ;
if ( sig == false ) {
clearInterval ( swapdetail _blinker ) ;
return
} else {
console . log ( 'swap detail BLINKING' ) ;
}
if ( dataforblinker . bobpayment !== '0000000000000000000000000000000000000000000000000000000000000000' ) {
$ ( '.swapdetail_info' ) . html ( '<h3><i class="fa fa-handshake-o"></i> Barter Completed!! Buyer Received Funds!</h3>' ) ;
blinker ( false ) ;
} else if ( current _sentflag == 'alicespend' ) {
$ ( '.swapdetail_info' ) . html ( '<h3>Buyer Received Funds.</h3>' ) ;
$ ( '.swapdetail_alicespend' ) . fadeOut ( 500 ) ;
$ ( '.swapdetail_alicespend' ) . fadeIn ( 500 ) ;
} else if ( current _sentflag == 'bobpayment' ) {
$ ( '.swapdetail_info' ) . html ( '<h3>Seller Sent Payment.</h3><h3> Waiting for Buyer to confirm Payment..</h3>' ) ;
$ ( '.swapdetail_alicespend' ) . fadeOut ( 500 ) ;
$ ( '.swapdetail_alicespend' ) . fadeIn ( 500 ) ;
} else if ( current _sentflag == 'alicepayment' ) {
$ ( '.swapdetail_info' ) . html ( '<h3>Buyer Payment Made. Waiting for Seller\'s Payment.</h3>' ) ;
$ ( '.swapdetail_bobpayment' ) . fadeOut ( 500 ) ;
$ ( '.swapdetail_bobpayment' ) . fadeIn ( 500 ) ;
} else if ( current _sentflag == 'bobdeposit' ) {
$ ( '.swapdetail_info' ) . html ( '<h3>Seller Deposited his security. Waiting for Buyer\'s Payment.</h3>' ) ;
$ ( '.swapdetail_alicepayment' ) . fadeOut ( 500 ) ;
$ ( '.swapdetail_alicepayment' ) . fadeIn ( 500 ) ;
} else if ( current _sentflag == 'myfee' ) {
$ ( '.swapdetail_info' ) . html ( '<h3>My BarterDEX fee has been paid.</h3>' ) ;
$ ( '.swapdetail_bobdeposit' ) . fadeOut ( 500 ) ;
$ ( '.swapdetail_bobdeposit' ) . fadeIn ( 500 ) ;
}
} ) ;
}
swapdetail _blinker = setInterval ( blinker , 1000 ) ;
$ ( '.btn_swap_status_details_close' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn_swap_status_details_close clicked' ) ;
blinker ( false ) ;
CheckOrderBookFn ( ) ;
CheckOrderbook _Interval = setInterval ( CheckOrderBookFn , 30000 ) ;
check _swap _status _Interval = setInterval ( check _swap _status , 20000 ) ;
check _swap _status ( ) ;
check _bot _list _Interval = setInterval ( check _bot _list , 10000 ) ;
check _bot _list ( ) ;
check _my _prices _Interval = setInterval ( check _my _prices , 60000 ) ;
check _my _prices ( ) ;
//bot_screen_coin_balance_Interval = setInterval(bot_screen_coin_balance, 30000);
//bot_screen_coin_balance();
//bot_screen_sellcoin_balance_Interval = setInterval(bot_screen_sellcoin_balance, 30000);
//bot_screen_sellcoin_balance();
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-16 13:24:39 -08:00
} )
} ) ;
}
2017-11-04 17:29:03 -07:00
2017-11-04 07:57:53 -07:00
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
2017-11-04 17:29:03 -07:00
}
2017-11-04 10:53:15 -07:00
2017-11-16 13:24:39 -08:00
function get _swapstatus _step ( swap _data ) {
//console.log(swap_data.sentflags);
var status = "realtime" ;
for ( var i = 0 ; i < swap _data . sentflags . length ; i ++ ) {
if ( swap _data . sentflags [ i ] == 'alicespend' ) {
status = "alicespend" ;
return status ;
//break;
} else if ( swap _data . sentflags [ i ] == 'bobpayment' ) {
status = "bobpayment" ;
return status ;
//break;
} else if ( swap _data . sentflags [ i ] == 'alicepayment' ) {
status = "alicepayment" ;
return status ;
//break;
} else if ( swap _data . sentflags [ i ] == 'bobdeposit' ) {
status = "bobdeposit" ;
return status ;
//break;
} else if ( swap _data . sentflags [ i ] == 'myfee' ) {
status = "myfee" ;
return status ;
//break;
}
}
}
2017-11-04 10:53:15 -07:00
function check _swap _status ( sig ) {
if ( sig == false ) {
2017-11-16 13:24:39 -08:00
clearInterval ( check _swap _status _Interval ) ;
2017-11-04 10:53:15 -07:00
return
} else {
2017-11-04 13:45:26 -07:00
console . log ( 'checking swap status' ) ;
2017-11-04 10:53:15 -07:00
}
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 ( {
2017-11-04 17:29:03 -07:00
async : true ,
2017-11-04 10:53:15 -07:00
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
} ) . done ( function ( data ) {
// If successful
//console.log(data);
2017-11-16 13:24:39 -08:00
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 ) ;
2017-11-18 05:43:13 -08:00
2017-11-17 16:30:42 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
2017-11-17 16:58:37 -08:00
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-17 16:30:42 -08:00
if ( dexmode == 'dICO' ) {
2017-11-17 16:58:37 -08:00
get _coin _info ( selected _dICO _coin ) ;
2017-11-17 16:30:42 -08:00
}
2017-11-16 13:24:39 -08:00
} else {
var reversed _swap _list = data . swaps . reverse ( ) ;
$ ( '.exchange_swap_status_tbl tbody' ) . empty ( ) ;
/ * i f ( r e v e r s e d _ s w a p _ l i s t & &
reversed _swap _list . length ) {
$ ( '#exchange-swap-status-spinner' ) . hide ( ) ;
} * /
$ ( '#exchange-swap-status-spinner' ) . hide ( ) ;
$ . 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 style="color: #e53935; font-size: 15px;"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span> 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 {
2017-11-06 03:25:18 -08:00
2017-11-16 13:24:39 -08:00
if ( val . status !== 'realtime' ) {
var current _sentflag = get _swapstatus _step ( val ) ;
if ( val . bobpayment !== '0000000000000000000000000000000000000000000000000000000000000000' ) {
status _color = 'color: #43a047;' ;
swap _status = '<span class="glyphicon glyphicon-ok-circle" aria-hidden="true"></span>' ;
} else if ( current _sentflag == 'alicespend' ) {
status _color = 'color: #43a047;' ;
swap _status = '<span class="glyphicon glyphicon-ok-circle" aria-hidden="true"></span>' ;
} else if ( current _sentflag == 'bobpayment' ) {
status _color = 'color: #0277bd;' ;
swap _status = '<span class="glyphicon glyphicon-save" aria-hidden="true"></span>' ;
} else if ( current _sentflag == 'alicepayment' ) {
status _color = 'color: #42a5f5;' ;
swap _status = '<span class="glyphicon glyphicon-random" aria-hidden="true"></span>' ;
} else if ( current _sentflag == 'bobdeposit' ) {
status _color = 'color: #4527a0;' ;
swap _status = '<span class="glyphicon glyphicon-transfer" aria-hidden="true"></span>' ;
} else if ( current _sentflag == 'myfee' ) {
status _color = 'color: #ef6c00;' ;
swap _status = '<span class="glyphicon glyphicon-random" aria-hidden="true"></span>' ;
}
} else {
var status _color = '' ;
var swap _status = '<span class="glyphicon glyphicon-transfer" aria-hidden="true"></span>' ;
}
var exchange _swap _status _tr = '' ;
exchange _swap _status _tr += '<tr>' ;
exchange _swap _status _tr += '<td><div style="' + status _color + ' font-size: 15px;">' + swap _status + ' ' + val . status + '</div></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 ) ;
}
} )
}
2017-11-04 10:53:15 -07:00
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-11-16 13:24:39 -08:00
/* Swap Status END */
/* Random Color Generator */
function hashCode ( str ) { // java String#hashCode
var hash = 0 ;
for ( var i = 0 ; i < str . length ; i ++ ) {
hash = str . charCodeAt ( i ) + ( ( hash << 5 ) - hash ) ;
}
return hash ;
2017-11-18 05:43:13 -08:00
}
2017-11-16 13:24:39 -08:00
function intToRGB ( i ) {
var c = ( i & 0x00FFFFFF )
. toString ( 16 )
. toUpperCase ( ) ;
return "00000" . substring ( 0 , 6 - c . length ) + c ;
}
function coloredPubkey ( pubkey ) {
var final _string = { } ;
2017-11-17 23:15:21 -08:00
final _string . firstpart = pubkey . slice ( 0 , 3 ) ;
final _string . lastpart = pubkey . slice ( 61 , 64 ) ;
2017-11-16 13:24:39 -08:00
final _string . colorpart1 = intToRGB ( hashCode ( pubkey . slice ( 5 , 10 ) ) ) ;
final _string . colorpart2 = intToRGB ( hashCode ( pubkey . slice ( 10 , 20 ) ) ) ;
final _string . colorpart3 = intToRGB ( hashCode ( pubkey . slice ( 20 , 30 ) ) ) ;
final _string . colorpart4 = intToRGB ( hashCode ( pubkey . slice ( 30 , 40 ) ) ) ;
final _string . colorpart5 = intToRGB ( hashCode ( pubkey . slice ( 40 , 50 ) ) ) ;
final _string . colorpart6 = intToRGB ( hashCode ( pubkey . slice ( 50 , 60 ) ) ) ;
final _string . char1 = final _string . colorpart1 . slice ( 0 , 1 ) ;
final _string . char2 = final _string . colorpart2 . slice ( 0 , 1 ) ;
final _string . char3 = final _string . colorpart3 . slice ( 0 , 1 ) ;
final _string . char4 = final _string . colorpart4 . slice ( 0 , 1 ) ;
final _string . char5 = final _string . colorpart5 . slice ( 0 , 1 ) ;
final _string . char6 = final _string . colorpart6 . slice ( 0 , 1 ) ;
return final _string ;
}
2017-11-17 16:58:37 -08:00
/* Random Color Generator */
/* TRADE HISTORY - CREDIT: pbca26 */
function openTradeDetails ( index , total ) {
for ( let i = 0 ; i < total ; i ++ ) {
if ( i !== index ) {
$ ( ` .trade-details- ${ i } ` ) . hide ( ) ;
$ ( ` .trade-history-toggle- ${ i } ` ) . html ( 'Show details' ) ;
}
}
if ( $ ( ` .trade-details- ${ index } ` ) . is ( ":visible" ) ) {
$ ( ` .trade-details- ${ index } ` ) . hide ( ) ;
$ ( ` .trade-history-toggle- ${ index } ` ) . html ( 'Show details' ) ;
} else {
$ ( ` .trade-details- ${ index } ` ) . show ( ) ;
$ ( ` .trade-history-toggle- ${ index } ` ) . html ( 'Hide details' ) ;
}
}
// display rounding
function formatValue ( formatValue ) {
const _valueToStr = formatValue . toString ( ) ;
if ( _valueToStr . indexOf ( '.' ) === - 1 ) {
return formatValue ;
} else {
if ( _valueToStr ) {
const _decimal = _valueToStr . substr ( _valueToStr . indexOf ( '.' ) + 1 , _valueToStr . length ) ;
let newVal = _valueToStr . substr ( 0 , _valueToStr . indexOf ( '.' ) + 1 ) ;
for ( let i = 0 ; i < _decimal . length ; i ++ ) {
if ( _decimal [ i ] === '0' ) {
newVal = newVal + _decimal [ i ] ;
} else {
newVal = newVal + _decimal [ i ] ;
break ;
}
}
return newVal ;
}
}
}
function constructTradesHistory ( ) {
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 ) {
let out = '' ;
let tradesCounter = 0 ;
if ( data &&
data . swaps &&
data . swaps . length ) {
out += ` <h4 style="margin-bottom: 35px">Total trades: ${ data . swaps . length } </h4> ` ;
let tradesOut = `
< table class = "trades-history-table" >
< tr >
< th > # < / t h >
< th > Direction < / t h >
< th > Pair < / t h >
< th > Sent < / t h >
< th > Received < / t h >
< th > Rate < / t h >
< th > Details < / t h >
< / t r >
` ;
const trades = data . swaps ;
for ( let i = 0 ; i < trades . length ; i ++ ) {
const data = trades [ i ] ;
if ( data . alice &&
data . bob ) {
tradesCounter ++ ;
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' ;
var time = new Date ( data . expiration * 1000 ) ;
var simplified _dexdetail _tr = '' ;
if ( data . iambob == 0 ) {
var total _sell _unit = parseFloat ( data . values [ 3 ] ) + parseFloat ( data . values [ 6 ] ) ;
var single _unit _price = parseFloat ( data . srcamount ) / parseFloat ( total _sell _unit ) ;
var price _per _bought _unit = parseFloat ( total _sell _unit ) / parseFloat ( data . srcamount ) ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>Price paid in ' + data . alice + ':</b> ' + data . values [ 3 ] . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>Fee paid in ' + data . alice + ':</b> ' + data . values [ 6 ] . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>Total ' + data . alice + ' paid:</b> ' + total _sell _unit . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>' + data . bob + ' received:</b> ' + data . srcamount . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>1 ' + data . alice + ' can buy:</b> ' + data . srcamount . toFixed ( 8 ) + ' / ' + total _sell _unit . toFixed ( 8 ) + ' = ~' + single _unit _price . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>Price paid per ' + data . bob + ':</b> ' + total _sell _unit . toFixed ( 8 ) + ' / ' + data . srcamount . toFixed ( 8 ) + ' = ' + price _per _bought _unit . toFixed ( 8 ) + '</td></tr>' ;
}
if ( data . iambob == 1 ) {
var total _sell _unit = parseFloat ( data . values [ 0 ] ) + parseFloat ( data . bobtxfee ) ;
var units _sold _at _price = parseFloat ( data . values [ 3 ] ) / parseFloat ( total _sell _unit ) ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>' + data . bob + ' sold: </b> = ' + data . values [ 0 ] . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>Fee paid in ' + data . bob + ': </b> = ' + data . bobtxfee + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>Total ' + data . bob + ' deducted: </b> = ' + total _sell _unit + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>' + data . alice + ' received: </b> = ' + data . values [ 3 ] . toFixed ( 8 ) + '</td></tr>' ;
simplified _dexdetail _tr += '<tr><td colspan=2><b>' + data . bob + ' sold at price: </b> = ' + data . values [ 3 ] . toFixed ( 8 ) + ' / ' + total _sell _unit . toFixed ( 8 ) + ' = ' + units _sold _at _price + '</td></tr>' ;
}
tradesOut += `
< tr >
< td > $ { i + 1 } < / t d >
< td >
< i class = "fa fa-arrow-${data.iambob == 0 ? 'right col-green' : 'left col-red'}" > < / i > & n b s p ;
< span > $ { data . iambob == 0 ? 'Buy' : 'Sell' } < / s p a n >
< / t d >
< td >
< span class = "${data.iambob == 0 ? '' : 'hide'}" > $ { data . alice } & nbsp ; < i class = "fa fa-exchange" > < / i > & n b s p ; $ { d a t a . b o b } < / s p a n >
< span class = "${data.iambob == 0 ? 'hide' : ''}" > $ { data . bob } & nbsp ; < i class = "fa fa-exchange" > < / i > & n b s p ; $ { d a t a . a l i c e } < / s p a n >
< / t d >
< td >
< span class = "${data.iambob == 0 ? '' : 'hide'}" >
$ { formatValue ( total _sell _unit ) } $ { data . alice }
< / s p a n >
< span class = "${data.iambob == 0 ? 'hide' : ''}" >
$ { formatValue ( total _sell _unit ) } $ { data . bob }
< / s p a n >
< / t d >
< td >
< span class = "${data.iambob == 0 ? '' : 'hide'}" >
$ { formatValue ( data . srcamount ) } $ { data . bob }
< / s p a n >
< span class = "${data.iambob == 0 ? 'hide' : ''}" >
$ { formatValue ( data . values [ 3 ] ) } $ { data . alice }
< / s p a n >
< / t d >
< td >
< span class = "${data.iambob == 0 ? '' : 'hide'}" > $ { price _per _bought _unit ? formatValue ( price _per _bought _unit ) : '' } ( $ { formatValue ( total _sell _unit ) } / $ { formatValue ( data . srcamount ) } ) < / s p a n >
< span class = "${data.iambob == 0 ? 'hide' : ''}" > $ { units _sold _at _price ? formatValue ( units _sold _at _price ) : '' } ( $ { formatValue ( data . values [ 3 ] ) } / $ { formatValue ( total _sell _unit ) } ) < / s p a n >
< / t d >
< td >
< button class = "btn btn-gray trade-history-toggle-${i}" onClick = "openTradeDetails(${i}, ${trades.length})" > Show details < / b u t o n >
< / t d >
< / t r >
< tr >
< td colspan = "7" >
< div class = "trade-details-${i}" style = "display: none; margin-top: 15px" >
< div class = "input-group col-sm-12" >
< span class = "input-group-addon" style = "font-size: 20px; border: 0px;" > < div class = "swapdetail_bobdeposit" > < span class = "glyphicon glyphicon-save" aria - hidden = "true" > < / s p a n > < b r > S e l l e r D e p o s i t < / d i v > < / s p a n >
< span class = "input-group-addon" style = "font-size: 20px; border: 0px;" > < div class = "swapdetail_alicepayment" > < span class = "glyphicon glyphicon-transfer" aria - hidden = "true" > < / s p a n > < b r > B u y e r P a y m e n t < / d i v > < / s p a n >
< span class = "input-group-addon" style = "font-size: 20px; border: 0px;" > < div class = "swapdetail_bobpayment" > < span class = "glyphicon glyphicon-random" aria - hidden = "true" > < / s p a n > < b r > S e l l e r P a y m e n t < / d i v > < / s p a n >
< span class = "input-group-addon" style = "font-size: 20px; border: 0px; text-align: center;" > < div class = "swapdetail_alicespend" > < span class = "glyphicon glyphicon-ok-circle" aria - hidden = "true" > < / s p a n > < b r > A l l D o n e ! < / d i v > < / s p a n >
< / d i v >
< div class = "input-group col-sm-12" >
< span class = "input-group-addon swapdetail_info" style = "font-size: 20px; border: 0px; background-color: #fff;" > < / s p a n >
< / d i v >
< div class = "row" >
< div class = "col-sm-12" >
< div class = "panel panel-default" >
< div class = "panel-heading" >
< h3 class = "panel-title" > < strong > Full Status < / s t r o n g > < / h 3 >
< / d i v >
< div class = "" >
< table width = "100%" class = "table table-striped" style = "margin-bottom: 0;" >
< tr >
< td rowspan = 5 > Trade info < / t d >
< td > Quote ID < / t d >
< td > ` + data.quoteid + ` < / t d >
< / t r >
< tr >
< td > Request ID < / t d >
< td > ` + data.requestid + ` < / t d >
< / t r >
< tr >
< td > Trade id < / t d >
< td > ` + data.tradeid + ` < / t d >
< / t r >
< tr >
< td > Expires In < / t d >
< td > ` + time + ` < / t d >
< / t r >
< tr >
< td > Source Amount < / t d >
< td > ` + data.srcamount + ` < / t d >
< / t r >
< tr >
< td rowspan = 4 > Buyer Info < / t d >
< td > Buyer Coin < / t d >
< td > ` + alice_answer + ` < / t d >
< / t r >
< tr >
< td > Buyer ID < / t d >
< td > ` + data.aliceid + ` < / t d >
< / t r >
< tr >
< td > Buyer Payment < / t d >
< td class = "tbl_alicepayment" > ` + data.alicepayment + ` < / t d >
< / t r >
< tr >
< td > Buyer Tx Fee < / t d >
< td class = "tbl_alicetxfee" > ` + data.alicetxfee + ` < / t d >
< / t r >
< tr >
< td rowspan = 4 > Seller Info < / t d >
< td > Seller Coin < / t d >
< td > ` + bob_answer + ` < / t d >
< / t r >
< tr >
< td > Seller Deposit < / t d >
< td class = "tbl_bobdeposit" > ` + data.bobdeposit + ` < / t d >
< / t r >
< tr >
< td > Seller Payment < / t d >
< td class = "tbl_bobpayment" > ` + data.bobpayment + ` < / t d >
< / t r >
< tr >
< td > Seller Tx Fee < / t d >
< td class = "tbl_bobtxfee" > ` + data.bobtxfee + ` < / t d >
< / t r >
< tr >
< td rowspan = 7 > Other Info < / t d >
< td colspan = 2 > < b > You are : < / b > ` + i a m b o b _ a n s w e r + ` < / t d >
< / t r >
` + simplified_dexdetail_tr + `
< / t a b l e >
< / d i v >
< / d i v >
< / d i v >
< / d i v >
< / d i v >
< / t d >
< / t r > ` ;
}
}
tradesOut += '</table>' ;
if ( tradesCounter > 0 ) {
$ ( '#trades-history-content' ) . html ( out + tradesOut ) ;
} else {
$ ( '#trades-history-content' ) . html ( 'No trade history or swap(s) still in progress' ) ;
}
2017-11-18 05:43:13 -08:00
} else {
$ ( '#trades-history-content' ) . html ( 'No trade history or swap(s) still in progress' ) ;
2017-11-17 16:58:37 -08:00
}
} ) ;
}
2017-11-24 15:23:08 -08:00
/* TRADE HISTORY - CREDIT: pbca26 END*/
/* ZEROCONF SETTINGS */
$ ( '.btn-refreshzeroconf_settings' ) . click ( function ( ) {
getZeroConfDepositHistory ( ) ;
} ) ;
$ ( '.zeroconf_deposits_history_tbl tbody' ) . on ( 'click' , '.zconf_deposit_txid_link' , function ( e ) {
e . preventDefault ( ) ;
console . log ( 'zconf_deposit_txid_link clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
shell . openExternal ( 'https://kmd.explorer.supernet.org/tx/' + $ ( this ) . data ( 'txid' ) ) ;
} ) ;
$ ( '.zeroconf_deposits_history_tbl tbody' ) . on ( 'click' , '.zconf_deposit_details' , function ( e ) {
e . preventDefault ( ) ;
console . log ( 'zconf_deposit_details clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
} ) ;
$ ( '.zeroconf_deposits_history_tbl tbody' ) . on ( 'click' , '.zconf_deposit_claim' , function ( e ) {
e . preventDefault ( ) ;
console . log ( 'zconf_deposit_claim clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
var addr = $ ( this ) . data ( 'address' ) ;
var expr = $ ( this ) . data ( 'expiration' ) ;
ZeroConfClaim ( addr , expr ) ;
} ) ;
$ ( '.btn_zeroconf_deposit' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn_zeroconf_deposit clicked' ) ;
var deposit _weeks = $ ( '.zeroconf_weeks_select' ) . selectpicker ( 'val' ) ;
var deposit _amount = $ ( '.zeroconf_deposit_amount' ) . val ( ) ;
console . log ( deposit _weeks ) ;
console . log ( deposit _amount ) ;
ZeroConfDeposit ( deposit _weeks , deposit _amount ) ;
} ) ;
$ ( '.zeroconf_deposit_amount' ) . keyup ( function ( ) {
var deposit _amount = $ ( '.zeroconf_deposit_amount' ) . val ( ) ;
//console.log(deposit_amount);
var empty = false ;
if ( deposit _amount < 10 ) {
console . log ( 'Send Address is empty or less than 10' ) ;
empty = true ;
}
//console.log(empty);
if ( empty ) {
$ ( '.btn_zeroconf_deposit' ) . attr ( "disabled" , "disabled" ) ;
} else {
$ ( '.btn_zeroconf_deposit' ) . removeAttr ( "disabled" ) ;
}
} ) ;
function getZeroConfDepositHistory ( ) {
var zeroconf _deposit _history _data = ShepherdIPC ( { "command" : "read_zeroconf_log" , "type" : "deposit" } ) ;
//console.log(zeroconf_deposit_history_data);
2017-11-24 15:42:33 -08:00
var reversed _zeroconf _deposit _history _data = zeroconf _deposit _history _data . reverse ( ) ;
2017-11-24 15:23:08 -08:00
$ ( '.zeroconf_deposits_history_tbl tbody' ) . empty ( ) ;
2017-11-24 15:42:33 -08:00
$ . each ( reversed _zeroconf _deposit _history _data , function ( index , val ) {
2017-11-24 15:23:08 -08:00
//console.log(index);
//console.log(val);
if ( ! val . error === false ) {
var zeroconf _deposits _history _tr = '' ;
zeroconf _deposits _history _tr += '<tr>' ;
//zeroconf_deposits_history_tr += '<td>' + index + '</td>';
zeroconf _deposits _history _tr += '<td><div style="color: #e53935; font-size: 15px;"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span> error</div></td>' ;
zeroconf _deposits _history _tr += '<td>-</td>' ;
zeroconf _deposits _history _tr += '</tr>' ;
$ ( '.zeroconf_deposits_history_tbl tbody' ) . append ( zeroconf _deposits _history _tr ) ;
} else {
var expiration _time = new Date ( val . expiration * 1000 ) ;
var zeroconf _deposits _history _tr = '' ;
zeroconf _deposits _history _tr += '<tr>' ;
//zeroconf_deposits_history_tr += '<td>' + index + '</td>';
zeroconf _deposits _history _tr += ` <td>
< b > Address : < / b > $ { v a l . a d d r e s s } < b r >
< b > Deposit : < / b > $ { v a l . d e p o s i t } K M D < b r >
< b > Expiration : < / b > $ { e x p i r a t i o n _ t i m e } < b r >
< b > Transaction ID : < / b > < a c l a s s = " z c o n f _ d e p o s i t _ t x i d _ l i n k " h r e f = " # " d a t a - t x i d = " $ { v a l . t x i d } " > O p e n i n E x p l o r e r < / a >
< / t d > ` ;
2017-11-24 15:42:33 -08:00
zeroconf _deposits _history _tr += ` <td><button class="btn btn-xs btn-default zconf_deposit_details" data-address=" ` + val . address + ` " data-expiration=" ` + val . expiration + ` " style="display: none;">Details</button>
2017-11-24 15:23:08 -08:00
< button class = "btn btn-xs btn-success zconf_deposit_claim" data - address = "` + val.address + `" data - expiration = "` + val.expiration + `" style = "margin: 3px;" > Claim Deposit < / b u t t o n >
< / t d > ` ;
zeroconf _deposits _history _tr += '</tr>' ;
$ ( '.zeroconf_deposits_history_tbl tbody' ) . append ( zeroconf _deposits _history _tr ) ;
}
} ) ;
}
function ZeroConfDeposit ( deposit _weeks , deposit _amount ) {
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
var ajax _data = { "userpass" : userpass , "method" : "zeroconf_deposit" , "weeks" : deposit _weeks , "amount" : deposit _amount , "broadcast" : 1 } ;
var url = "http://127.0.0.1:7783" ;
$ . ajax ( {
async : true ,
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
} ) . done ( function ( zconf _deposit _data ) {
console . log ( zconf _deposit _data ) ;
var update _deposit _log _file = ShepherdIPC ( { "command" : "update_zeroconf_log" , "data" : { "logdata" : JSON . stringify ( zconf _deposit _data ) , "type" : "deposit" } } ) ;
console . log ( update _deposit _log _file ) ;
if ( ! zconf _deposit _data . error === false ) {
toastr . error ( zconf _deposit _data . error , 'ZeroConf Notification' ) ;
}
if ( zconf _deposit _data . result == 'success' ) {
2017-11-24 15:33:26 -08:00
var zconf _depoit _bootbox = bootbox . dialog ( {
title : 'ZeroConf security deposit sent!' ,
message : ` <b>Address: </b> ${ zconf _deposit _data . address } <br>
< b > deposit : < / b > $ { z c o n f _ d e p o s i t _ d a t a . d e p o s i t } < b r >
< b > expiration : < / b > $ { z c o n f _ d e p o s i t _ d a t a . e x p i r a t i o n } < b r >
< a href = "#" class = "zconf_deposit_txid_bootbox" data - txid = "${zconf_deposit_data.txid}" > ` + zconf_deposit_data.txid + ` < / a > ` ,
closeButton : false ,
size : 'medium' ,
buttons : {
cancel : {
label : "Close" ,
className : 'btn-default' ,
callback : function ( ) {
}
}
}
} )
zconf _depoit _bootbox . init ( function ( ) {
$ ( '.zconf_deposit_txid_bootbox' ) . click ( function ( ) {
console . log ( $ ( this ) . data ( ) ) ;
shell . openExternal ( 'https://kmd.explorer.supernet.org/tx/' + $ ( this ) . data ( 'txid' ) ) ;
} ) ;
} ) ;
2017-11-24 15:23:08 -08:00
getZeroConfDepositHistory ( ) ;
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
function ZeroConfClaim ( claim _address , claim _expiration ) {
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
var ajax _data = { "userpass" : userpass , "method" : "zeroconf_claim" , "address" : claim _address , "expiration" : claim _expiration } ;
var url = "http://127.0.0.1:7783" ;
$ . ajax ( {
async : true ,
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
} ) . done ( function ( zconf _claim _data ) {
console . log ( zconf _claim _data ) ;
var update _claim _log _file = ShepherdIPC ( { "command" : "update_zeroconf_log" , "data" : { "logdata" : JSON . stringify ( zconf _claim _data ) , "type" : "claim" } } ) ;
console . log ( update _claim _log _file ) ;
if ( ! zconf _claim _data . error === false ) {
toastr . error ( zconf _claim _data . error , 'ZeroConf Notification' ) ;
}
if ( zconf _claim _data . result == 'success' ) {
2017-11-24 17:04:01 -08:00
var zconf _claim _bootbox = bootbox . dialog ( {
title : 'ZeroConf security claimed!' ,
message : ` <b>Claimed: </b> ${ zconf _claim _data . claimed } <br>
< a href = "#" class = "zconf_claim_txid_bootbox" data - txid = "${zconf_claim_data.txids}" > ` + zconf_claim_data.txids + ` < / a > ` ,
closeButton : false ,
size : 'medium' ,
buttons : {
cancel : {
label : "Close" ,
className : 'btn-default' ,
callback : function ( ) {
}
}
}
} )
zconf _claim _bootbox . init ( function ( ) {
$ ( '.zconf_claim_txid_bootbox' ) . click ( function ( ) {
console . log ( $ ( this ) . data ( ) ) ;
shell . openExternal ( 'https://kmd.explorer.supernet.org/tx/' + $ ( this ) . data ( 'txid' ) ) ;
} ) ;
} ) ;
bootbox . alert ( ) ;
2017-11-24 15:23:08 -08:00
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
/* ZEROCONF SETTINGS END */