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
2017-12-09 05:56:10 -08:00
$ ( window ) . resize ( function ( ) {
$ ( '.loginbody' ) . css ( 'height' , $ ( window ) . height ( ) ) ;
$ ( '#exchange_coin_asks_togl' ) . css ( 'max-height' , $ ( '.col1' ) . height ( ) + $ ( '.col2' ) . height ( ) + $ ( '.col3' ) . height ( ) - 470 ) ;
$ ( '#exchange_coin_bids_togl' ) . css ( 'max-height' , $ ( '.col1' ) . height ( ) + $ ( '.col2' ) . height ( ) + $ ( '.col3' ) . height ( ) - 470 ) ;
$ ( '#exchange_coin_asks' ) . css ( 'max-height' , $ ( '.col1' ) . height ( ) + $ ( '.col2' ) . height ( ) + $ ( '.col3' ) . height ( ) - 470 ) ;
$ ( '#exchange_coin_bids' ) . css ( 'max-height' , $ ( '.col1' ) . height ( ) + $ ( '.col2' ) . height ( ) + $ ( '.col3' ) . height ( ) - 470 ) ;
$ ( '.exchange_trade_status_body' ) . css ( 'height' , $ ( window ) . height ( ) - ( $ ( '.col1' ) . height ( ) + $ ( '.col2' ) . height ( ) + 135 ) )
console . log ( $ ( window ) . height ( ) ) ;
} )
2017-10-19 06:43:14 -07:00
$ ( document ) . ready ( function ( ) {
2017-12-20 06:27:18 -08:00
document . addEventListener ( 'drop' , function ( e ) {
e . preventDefault ( ) ;
e . stopPropagation ( ) ;
} ) ;
document . addEventListener ( 'dragover' , function ( e ) {
e . preventDefault ( ) ;
e . stopPropagation ( ) ;
} ) ;
2017-12-09 05:56:10 -08:00
$ ( '.loginbody' ) . css ( 'height' , $ ( window ) . height ( ) )
2017-10-19 06:43:14 -07:00
var mmstatus = ShepherdIPC ( { "command" : "mmstatus" } ) ;
if ( mmstatus !== 'closed' ) {
2017-12-05 05:20:56 -08:00
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
2017-12-05 05:42:58 -08:00
var loginstate = sessionStorage . getItem ( 'mm_loginstate' ) ;
2017-12-05 06:07:10 -08:00
if ( loginstate !== null && loginstate == 'loggedin' ) {
2017-12-05 05:42:58 -08:00
$ ( '.mainbody' ) . show ( ) ;
$ ( '.loginbody' ) . hide ( ) ;
CheckPortfolio _Interval = setInterval ( CheckPortfolioFn , 60000 ) ;
CheckPortfolioFn ( ) ;
2017-10-19 06:43:14 -07:00
2017-12-05 05:42:58 -08:00
//check_coin_balance_Interval = setInterval(check_coin_balance,3000);
//check_coin_balance();
2017-11-16 13:24:39 -08:00
2017-12-05 05:42:58 -08:00
//---- dICO App Settings START ----//
//CheckPortfolio_Interval = setInterval(CheckPortfolioFn,60000);
//CheckPortfolioFn();
2017-11-16 13:24:39 -08:00
2017-12-05 05:42:58 -08:00
var dexmode = sessionStorage . getItem ( 'mm_dexmode' ) ;
var selected _dICO _coin = sessionStorage . getItem ( 'mm_selected_dICO_coin' ) ;
2017-11-16 13:24:39 -08:00
2017-12-05 05:42:58 -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' ) ;
$ ( '.trading_pair_coin_autoprice_mode_span' ) . hide ( ) ;
$ ( '#trading_pair_coin_autoprice_mode' ) . bootstrapToggle ( 'on' )
$ ( '#trading_pair_coin_price_max_min' ) . html ( 'Max' ) ;
}
if ( dexmode == 'dICO' ) {
2017-12-07 02:14:36 -08:00
$ ( '.navbar-brandname' ) . html ( return _coin _details ( selected _dICO _coin ) . name + ' dICO' ) ;
2017-12-05 05:42:58 -08:00
selected _coin = { }
selected _coin . coin = selected _dICO _coin ;
2017-12-07 02:14:36 -08:00
selected _coin . coin _name = return _coin _details ( selected _dICO _coin ) . name ;
2017-12-05 05:42:58 -08:00
console . log ( selected _coin ) ;
sessionStorage . setItem ( 'mm_selectedcoin' , JSON . stringify ( selected _coin ) ) ;
2017-11-17 16:30:42 -08:00
2017-12-05 05:42:58 -08:00
$ ( '.dexdashboard-btn' ) . hide ( ) ;
$ ( '.screen-portfolio' ) . hide ( ) ;
$ ( '.screen-coindashboard' ) . hide ( ) ;
$ ( '.btn-exchangeclose' ) . hide ( ) ;
$ ( '.screen-exchange' ) . show ( ) ;
$ ( '.coin_ticker' ) . html ( selected _dICO _coin ) ;
$ . each ( $ ( '.coinexchange[data-coin]' ) , function ( index , value ) {
$ ( '.coinexchange[data-coin]' ) . data ( 'coin' , selected _dICO _coin ) ;
} ) ;
2017-11-17 16:30:42 -08:00
2017-12-05 05:42:58 -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 ( ) ;
get _coin _info ( selected _dICO _coin ) ;
2017-11-26 08:44:54 -08:00
2017-12-05 05:42:58 -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 ( ) ;
$ ( '.trading_pair_coin_autoprice_mode_span' ) . hide ( ) ;
$ ( '#trading_pair_coin_autoprice_mode' ) . bootstrapToggle ( 'on' )
$ ( '#trading_pair_coin_price_max_min' ) . html ( 'Max' ) ;
2017-11-16 13:24:39 -08:00
2017-12-05 05:42:58 -08:00
var charts _instruments _data = { }
charts _instruments _data . symbol = selected _dICO _coin + '/KMD'
charts _instruments _data . company = 'Komodo Platform' ;
ChartsInstruments ( charts _instruments _data )
UpdateDexChart ( selected _dICO _coin , 'KMD' ) ;
2017-12-06 20:42:46 -08:00
Refresh _active _StockChart _Interval = setInterval ( Refresh _active _StockChart , 60000 ) ;
2017-12-05 05:42:58 -08:00
}
2017-11-16 13:24:39 -08:00
2017-12-05 05:42:58 -08:00
//---- dICO App Settings END ----//
2017-11-16 13:24:39 -08:00
2017-12-05 05:42:58 -08:00
//$('.trading_selected_trader_label').hide();
//$('.trading_selected_trader').hide();
$ ( '.relvol_basevol_coin' ) . html ( $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ) ;
2017-12-02 04:29:24 -08:00
2017-12-05 05:42:58 -08:00
BarterDEXSettingsFn ( ) ;
2017-12-05 05:20:56 -08:00
}
2017-10-19 06:43:14 -07:00
} else {
$ ( '.mainbody' ) . hide ( ) ;
2017-12-05 05:20:56 -08:00
//$('.loginbody').show();
2017-10-19 06:43:14 -07:00
}
//$('.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-12-09 05:56:10 -08:00
setTimeout ( function ( ) {
if ( $ ( window ) . height ( ) - ( $ ( '.col1' ) . height ( ) + $ ( '.col2' ) . height ( ) + 135 ) <= 285 ) {
var trade _status _body _height = '285px' ;
} else {
var trade _status _body _height = $ ( window ) . height ( ) - ( $ ( '.col1' ) . height ( ) + $ ( '.col2' ) . height ( ) + 135 ) ;
}
$ ( '.exchange_trade_status_body' ) . css ( 'height' , trade _status _body _height ) ;
$ ( '#exchange_coin_asks_togl' ) . css ( 'max-height' , $ ( '.col1' ) . height ( ) + $ ( '.col2' ) . height ( ) + $ ( '.col3' ) . height ( ) - 470 ) ;
$ ( '#exchange_coin_bids_togl' ) . css ( 'max-height' , $ ( '.col1' ) . height ( ) + $ ( '.col2' ) . height ( ) + $ ( '.col3' ) . height ( ) - 470 ) ;
$ ( '#exchange_coin_asks' ) . css ( 'max-height' , $ ( '.col1' ) . height ( ) + $ ( '.col2' ) . height ( ) + $ ( '.col3' ) . height ( ) - 470 ) ;
$ ( '#exchange_coin_bids' ) . css ( 'max-height' , $ ( '.col1' ) . height ( ) + $ ( '.col2' ) . height ( ) + $ ( '.col3' ) . height ( ) - 470 ) ;
} , 10 ) ;
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-12-07 05:52:14 -08:00
coin = $ ( this ) . data ( 'coin' ) ;
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-12-06 23:09:15 -08:00
setTimeout ( function ( ) { $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , 'KMD' ) ; } , 10 ) ;
2017-11-20 08:30:21 -08:00
}
2017-12-07 05:52:14 -08:00
selected _coin = { }
selected _coin . coin = $ ( this ) . data ( 'coin' ) ;
selected _coin . coin _name = $ ( this ) . data ( 'coinname' ) ;
selected _coin . addr = $ ( this ) . data ( 'addr' ) ;
selected _coin . balance = $ ( this ) . data ( 'balance' ) ;
console . log ( selected _coin ) ;
sessionStorage . setItem ( 'mm_selectedcoin' , JSON . stringify ( selected _coin ) ) ;
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-12-05 17:28:26 -08:00
$ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , coin ) ;
2017-12-07 02:14:36 -08:00
$ ( '.coingoal_label_coin_name' ) . html ( return _coin _details ( coin ) . name + ' (' + 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
2017-12-05 07:23:06 -08:00
//getZeroConfDepositHistory();
2017-11-26 06:11:53 -08:00
2017-12-07 07:26:13 -08:00
sessionStorage . setItem ( 'mm_chartinterval' , JSON . stringify ( { "periodicity" : "" , "interval" : 1 } ) ) ;
2017-11-26 06:11:53 -08:00
var charts _instruments _data = { }
2017-12-04 23:26:39 -08:00
if ( $ ( this ) . data ( 'coin' ) == 'KMD' ) {
2017-12-14 09:48:38 -08:00
charts _instruments _data . symbol = $ ( this ) . data ( 'coin' ) + '/BTC'
2017-12-04 23:26:39 -08:00
charts _instruments _data . company = 'Komodo Platform' ;
ChartsInstruments ( charts _instruments _data )
2017-12-14 09:48:38 -08:00
UpdateDexChart ( $ ( this ) . data ( 'coin' ) , 'BTC' ) ;
2017-12-04 23:26:39 -08:00
} else {
2017-12-14 09:48:38 -08:00
charts _instruments _data . symbol = $ ( this ) . data ( 'coin' ) + '/KMD'
2017-12-04 23:26:39 -08:00
charts _instruments _data . company = 'Komodo Platform' ;
ChartsInstruments ( charts _instruments _data )
2017-12-14 09:48:38 -08:00
UpdateDexChart ( $ ( this ) . data ( 'coin' ) , 'KMD' ) ;
2017-12-04 23:26:39 -08:00
}
2017-12-06 20:42:46 -08:00
Refresh _active _StockChart _Interval = setInterval ( Refresh _active _StockChart , 60000 ) ;
2017-12-04 23:33:21 -08:00
// Fix width of chart
gChart . size = { width : $ ( '#chartContainer' ) . parent ( ) . width ( ) } ;
gChart . update ( ) ;
2017-12-23 11:20:49 -08:00
setTimeout ( function ( ) { PopulateDefaultLanguage ( ) ; } , 100 ) ;
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-12-06 20:42:46 -08:00
Refresh _active _StockChart _Interval = setInterval ( Refresh _active _StockChart , 60000 ) ;
Refresh _active _StockChart ( ) ;
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-12-06 20:42:46 -08:00
Refresh _active _StockChart _Interval = setInterval ( Refresh _active _StockChart , 60000 ) ;
Refresh _active _StockChart ( ) ;
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-12-06 20:42:46 -08:00
Refresh _active _StockChart ( 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-24 19:00:10 -08:00
console . log ( $ ( this ) . 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 ( ) ;
2017-12-01 22:34:08 -08:00
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
2017-11-16 13:24:39 -08:00
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 ;
2017-12-01 22:34:08 -08:00
if ( buying _or _selling == 'buying' ) {
bot _data . volume = pair _volume ;
}
if ( buying _or _selling == 'selling' ) {
bot _data . volume = $ ( '.trading_pair_coin_volume' ) . val ( ) ;
}
2017-11-24 19:00:10 -08:00
//bot_data.action = $(this).data('action');
2017-11-24 17:04:01 -08:00
//bot_data.action = $('.btn-bot_action').attr('data-action');
2017-11-24 19:00:10 -08:00
bot _data . action = $ ( this ) . 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 {
2017-12-19 17:58:17 -08:00
//bot_buy_sell(bot_data);
buy _sell _precheck ( bot _data ) ;
2017-11-16 13:24:39 -08:00
}
} 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 ( ) ;
2017-12-19 17:58:17 -08:00
//autorepeat_trade = $('.trading_auto_repeat_trade_yesno').is(":checked");
trading _options = $ ( 'input[name=trading_manual_buy_sell_options]:checked' ) . val ( ) ;
2017-12-07 03:54:53 -08:00
2017-11-16 13:24:39 -08:00
trade _data = { }
trade _data . price = pair _price ;
2017-12-01 22:34:08 -08:00
if ( buying _or _selling == 'buying' ) {
trade _data . volume = pair _volume ;
}
if ( buying _or _selling == 'selling' ) {
trade _data . volume = $ ( '.trading_pair_coin_volume' ) . val ( ) ;
}
2017-11-16 13:24:39 -08:00
trade _data . trader _only = trader _only ;
trade _data . destpubkey = trader _pubkey ;
2017-12-19 17:58:17 -08:00
//trade_data.autorepeat = autorepeat_trade;
trade _data . trading _options = trading _options ;
2017-11-24 19:00:10 -08:00
//trade_data.action = $(this).data('action');
2017-11-24 17:04:01 -08:00
//trade_data.action = $('.btn-bot_action').attr('data-action');
2017-11-24 19:00:10 -08:00
trade _data . action = $ ( this ) . attr ( 'data-action' ) ;
2017-11-16 13:24:39 -08:00
2017-11-24 19:00:10 -08:00
console . log ( trade _data ) ;
2017-11-16 13:24:39 -08:00
2017-12-20 04:18:50 -08:00
if ( trading _options == 'disabled' ) {
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 {
//manual_buy_sell(trade_data)
buy _sell _precheck ( trade _data ) ;
$ ( '.trading_auto_repeat_trade_yesno' ) . attr ( 'checked' , false ) ;
}
2017-11-16 13:24:39 -08:00
} else {
2017-12-19 17:58:17 -08:00
//manual_buy_sell(trade_data)
buy _sell _precheck ( trade _data ) ;
$ ( '.trading_auto_repeat_trade_yesno' ) . attr ( 'checked' , false ) ;
2017-11-16 13:24:39 -08:00
}
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 19:00:10 -08:00
//trade_data.action = $(this).data('action');
2017-11-24 17:04:01 -08:00
//trade_data.action = $('.btn-bot_action').attr('data-action');
2017-11-24 19:00:10 -08:00
trade _data . action = $ ( this ) . 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 19:00:10 -08:00
//trade_data.action = $(this).data('action');
2017-11-24 17:04:01 -08:00
//trade_data.action = $('.btn-bot_action').attr('data-action');
2017-11-24 19:00:10 -08:00
trade _data . action = $ ( this ) . attr ( 'data-action' ) ;
2017-11-20 04:33:36 -08:00
}
2017-11-24 19:00:10 -08:00
console . log ( trade _data ) ;
2017-11-20 04:33:36 -08:00
autoprice _buy _sell ( trade _data ) ;
2017-11-16 13:24:39 -08:00
}
} ) ;
2017-12-19 17:58:17 -08:00
$ ( 'input[name=trading_manual_buy_sell_options]' ) . change ( function ( ) {
var trading _options = $ ( 'input[name=trading_manual_buy_sell_options]:checked' ) . val ( ) ;
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
//console.log(buying_or_selling);
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' ) ;
if ( trading _options == 'coinmarketcap' ) {
$ ( '.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_autoprice_mode' ) . parent ( ) . addClass ( ' disabled' ) ;
$ ( '#trading_pair_coin_autoprice_mode' ) . attr ( 'disabled' , 'disabled' ) ;
$ ( '#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." ) ;
}
}
$ ( '.buy_sell_amount_to' ) . hide ( ) ;
$ ( '#trading_pair_coin_ticker' ) . hide ( ) ;
$ ( '.trading_pair_coin2' ) . 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 ( ) ;
} else {
$ ( '#trading_pair_coin_autoprice_mode' ) . parent ( ) . removeClass ( ' disabled' ) ;
$ ( '#trading_pair_coin_autoprice_mode' ) . removeAttr ( 'disabled' ) ;
//$('#trading_pair_coin_price_max_min').html('Min');
$ ( '.trading_pair_lable_text_one' ) . html ( '' ) ;
//$('.trading_pair_lable_text_two').html('Sell');
if ( buying _or _selling == 'buying' ) {
$ ( '.btn-bot_action' ) . html ( 'BUY' ) ;
$ ( '.relvol_basevol_label' ) . html ( "It'll cost you" )
$ ( '.btn-bot_action' ) . attr ( 'data-action' , 'buy' ) ;
}
if ( buying _or _selling == 'selling' ) {
$ ( '.btn-bot_action' ) . html ( 'SELL' ) ;
$ ( '.relvol_basevol_label' ) . html ( "You'll get" ) ;
$ ( '.btn-bot_action' ) . attr ( 'data-action' , 'sell' ) ;
}
//$('.btn-bot_action').attr('data-action', 'sell');
//$('.trading_selected_trader_label').show();
//$('.trading_selected_trader').show();
$ ( '.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_coin2' ) . 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 ( ) ;
$ ( '.coingoal_label_div' ) . hide ( ) ;
$ ( '.coingoal_div' ) . hide ( ) ;
}
} )
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-12-14 09:48:38 -08:00
$ ( '.btn_switch_trading_coin_pairs' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'btn_switch_trading_coin_pairs clicked' ) ;
var coin _pair1 = $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
var coin _pair2 = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' ) ;
console . log ( coin _pair1 ) ;
console . log ( coin _pair2 ) ;
$ ( '.trading_pair_coin' ) . selectpicker ( 'val' , coin _pair2 ) ;
$ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , coin _pair1 ) ;
$ ( '.relvol_basevol_coin' ) . html ( coin _pair2 ) ;
bot _screen _sellcoin _balance ( ) ;
bot _screen _coin _balance ( ) ;
CheckOrderBookFn ( ) ;
var charts _instruments _data = { }
charts _instruments _data . symbol = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' ) + '/' + $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
charts _instruments _data . company = 'Komodo Platform' ;
ChartsInstruments ( charts _instruments _data )
UpdateDexChart ( $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' ) , $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ) ;
} ) ;
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-12-07 02:14:36 -08:00
var coin _name = return _coin _details ( coin ) . name ;
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 ;
2017-12-07 02:14:36 -08:00
selected _coin . coin _name = return _coin _details ( coin ) . name ;
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-12-05 00:14:50 -08:00
console . log ( coin _listunspent _output _data [ 0 ] . hasOwnProperty ( 'account' ) ) ;
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-12-05 00:14:50 -08:00
if ( coin _listunspent _output _data [ 0 ] . hasOwnProperty ( 'account' ) == true ) {
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>' ;
} else {
show _list _unspents _tbl _tr += '<th>Height</th>' ;
show _list _unspents _tbl _tr += '<th>Tx Hash</th>' ;
show _list _unspents _tbl _tr += '<th>Tx Pos</th>' ;
show _list _unspents _tbl _tr += '<th>Value</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-25 16:19:43 -08:00
if ( val . hasOwnProperty ( 'interest' ) == true ) {
var utxo _interest = val . interest ;
} else {
var utxo _interest = 'N/A' ;
}
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-12-05 00:14:50 -08:00
if ( coin _listunspent _output _data [ 0 ] . hasOwnProperty ( 'account' ) == true ) {
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>
< 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 >
< b > Confirmations : < / b > ` + v a l . c o n f i r m a t i o n s + ` < b r >
< b > Interest : < / b > ` + u t x o _ 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 > ` ;
} else {
show _list _unspents _tbl _tr += ` <td> ` + val . height + ` </td> ` ;
show _list _unspents _tbl _tr += ` <td> ` + val . tx _hash + ` </td> ` ;
show _list _unspents _tbl _tr += ` <td> ` + val . tx _pos + ` </td> ` ;
2017-12-09 20:30:56 -08:00
show _list _unspents _tbl _tr += ` <td> ` + ( parseFloat ( val . value ) / 100000000 ) . toFixed ( 8 ) + ' ' + coin _listunspent _data . coin + ` </td> ` ;
2017-12-05 00:14:50 -08:00
}
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 ) ;
bootbox . alert ( ` Transaction Sent Successfully. Here's the Transaction ID:<br>
2017-12-07 02:14:36 -08:00
< a href = "#" onclick = "shell.openExternal('`+return_coin_details(mk_inv_rawtx_coin).explorer+mk_inv_sendrawtx_output_data+`'); return false;" > ` + mk_inv_sendrawtx_output_data + ` < / a > ` ) ;
2017-11-22 08:42:09 -08:00
}
} ) . 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 ) ;
2017-12-07 02:14:36 -08:00
var coin _name = return _coin _details ( val . coin ) . name
2017-11-06 10:22:12 -08:00
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-26 07:22:36 -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 - onstyle = "primary" data - offstyle = "info" data - width = "100%" data - height = "44px" >
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 */
2017-12-21 06:15:50 -08:00
$ ( '.porfolio_coins_list' ) . on ( 'click' , '.btn_portfolio_disable' , function ( ) {
console . log ( 'btn_portfolio_disable clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
enable _disable _coin ( $ ( this ) . data ( ) ) ;
$ ( '.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 ) ;
CheckPortfolioFn ( ) ;
} ) ;
$ ( '.porfolio_coins_list' ) . on ( 'click' , '.btn_portfolio_receive' , function ( ) {
console . log ( 'btn_portfolio_receive clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
coinBalanceReceiveAddr ( $ ( this ) . data ( 'coin' ) ) ;
} )
$ ( '.porfolio_coins_list' ) . on ( 'click' , '.btn_portfolio_send' , function ( ) {
console . log ( 'btn_portfolio_send clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
coinBalanceSendFn ( $ ( this ) . data ( 'coin' ) ) ;
} ) ;
2017-11-01 02:00:04 -07:00
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 ) ;
2017-12-23 06:48:05 -08:00
var default _lang = JSON . parse ( sessionStorage . getItem ( 'mm_default_lang' ) ) ;
2017-11-22 08:42:09 -08:00
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
2017-12-17 20:05:27 -08:00
var barterDEX _settings = ShepherdIPC ( { "command" : "read_settings" } ) ;
//console.log(barterDEX_settings);
if ( barterDEX _settings . experimentalFeatures == false ) {
var coingoal _style _showhide = 'display: none;' ;
} else {
var coingoal _style _showhide = '' ;
}
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
2017-12-07 02:14:36 -08:00
var coin _name = return _coin _details ( val . coin ) . name
2017-11-01 02:00:04 -07:00
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-12-23 06:48:05 -08:00
< button class = "btn btn-sm btn-success btn_portfolio_send" data - coin = "` + val.coin + `" > $ { default _lang . Common . btn _send } < span class = "fa fa-paper-plane-o" aria - hidden = "true" > < / s p a n > < / b u t t o n >
< button class = "btn btn-sm btn-warning btn_portfolio_receive" data - coin = "` + val.coin + `" > $ { default _lang . Common . btn _receive } < span class = "fa fa-inbox" aria - hidden = "true" > < / s p a n > < / b u t t o n >
< button class = "btn btn-sm btn-info btn_portfolio_coingoal" data - coin = "` + val.coin + `" data - auto = false style = "${coingoal_style_showhide}" > $ { default _lang . Common . btn _set _goal } < span class = "glyphicon glyphicon-export" aria - hidden = "true" > < / s p a n > < / b u t t o n >
< button class = "btn btn-sm btn-primary btn-portfoliogo" data - coin = "` + val.coin + `" data - coinname = "` + coin_name + `" data - addr = "` + val.address + `" data - balance = "` + val.amount + `" > $ { default _lang . Common . btn _exchange } < span class = "glyphicon glyphicon-chevron-right" aria - hidden = "true" > < / s p a n > < / b u t t o n >
< button class = "btn btn-sm btn-danger btn_portfolio_disable" data - electrum = true data - method = "disable" data - coin = "` + val.coin + `" > $ { default _lang . Common . btn _disable } < span class = "fa fa-times" aria - hidden = "true" > < / s p a n > < / b u t t o n >
2017-11-20 05:58:11 -08:00
< / 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 )
2017-12-23 11:20:49 -08:00
var default _lang = JSON . parse ( sessionStorage . getItem ( 'mm_default_lang' ) ) ;
2017-11-01 02:00:04 -07:00
var chart = AmCharts . makeChart ( "portfolio_chart_current" , {
"type" : "pie" ,
2017-12-02 09:44:51 -08:00
"theme" : "black" ,
"addClassNames" : true ,
2017-11-01 02:00:04 -07:00
"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
"allLabels" : [
{
"y" : "46%" ,
"align" : "center" ,
"size" : 25 ,
"bold" : true ,
2017-12-23 11:20:49 -08:00
"text" : default _lang . Portfolio . portfolio _goal _now ,
2017-12-02 09:44:51 -08:00
"color" : "#e2e2e2"
2017-11-01 02:00:04 -07:00
} ,
{
"y" : "40%" ,
"align" : "center" ,
"size" : 15 ,
2017-12-23 11:20:49 -08:00
"text" : default _lang . Portfolio . portfolio _goal ,
2017-12-02 09:44:51 -08:00
"color" : "#e2e2e2"
2017-11-01 02:00:04 -07:00
}
] ,
"export" : {
"enabled" : false
}
} ) ;
var chart2 = AmCharts . makeChart ( "portfolio_chart_target" , {
"type" : "pie" ,
2017-12-02 09:44:51 -08:00
"theme" : "black" ,
"addClassNames" : true ,
2017-11-01 02:00:04 -07:00
"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
"allLabels" : [
{
"y" : "46%" ,
"align" : "center" ,
"size" : 25 ,
"bold" : true ,
2017-12-23 11:20:49 -08:00
"text" : default _lang . Portfolio . portfolio _goal _target ,
2017-12-02 09:44:51 -08:00
"color" : "#e2e2e2"
2017-11-01 02:00:04 -07:00
} ,
{
"y" : "40%" ,
"align" : "center" ,
"size" : 15 ,
2017-12-23 11:20:49 -08:00
"text" : default _lang . Portfolio . portfolio _goal ,
2017-12-02 09:44:51 -08:00
"color" : "#e2e2e2"
2017-11-01 02:00:04 -07:00
}
] ,
"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 ( ) ) ;
2017-12-07 05:52:14 -08:00
var coin = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , coin ) ;
2017-11-20 05:32:02 -08:00
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 ) ;
2017-12-07 05:52:14 -08:00
var coin = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , coin ) ;
2017-11-20 04:33:36 -08:00
//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-12-19 17:58:17 -08:00
$ ( '.buy_sell_advanced_options_div' ) . hide ( ) ;
2017-11-20 04:33:36 -08:00
if ( buying _or _selling == 'buying' ) {
$ ( '.btn-bot_action' ) . html ( 'BUY' ) ;
2017-11-24 19:00:10 -08:00
$ ( '.relvol_basevol_label' ) . html ( "It'll cost you" ) ;
$ ( '.btn-bot_action' ) . attr ( 'data-action' , 'buy' ) ;
2017-11-20 04:33:36 -08:00
}
if ( buying _or _selling == 'selling' ) {
$ ( '.btn-bot_action' ) . html ( 'SELL' ) ;
$ ( '.relvol_basevol_label' ) . html ( "You'll get" ) ;
2017-11-24 19:00:10 -08:00
$ ( '.btn-bot_action' ) . attr ( 'data-action' , 'sell' ) ;
2017-11-20 04:33:36 -08:00
}
2017-11-16 13:24:39 -08:00
$ ( '.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 ( ) ;
2017-12-05 17:28:26 -08:00
$ ( '.trading_pair_coin2' ) . show ( ) ;
2017-11-20 04:33:36 -08:00
$ ( '.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' ) {
2017-12-19 17:58:17 -08:00
$ ( 'input[name=trading_manual_buy_sell_options]:nth(0)' ) . trigger ( 'click' ) ;
2017-11-16 13:24:39 -08:00
//$('#trading_pair_coin_price_max_min').html('Min');
$ ( '.trading_pair_lable_text_one' ) . html ( '' ) ;
2017-12-19 17:58:17 -08:00
$ ( '.buy_sell_advanced_options_div' ) . show ( ) ;
2017-11-16 13:24:39 -08:00
//$('.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" )
2017-11-24 19:00:10 -08:00
$ ( '.btn-bot_action' ) . attr ( 'data-action' , 'buy' ) ;
2017-11-20 04:33:36 -08:00
}
if ( buying _or _selling == 'selling' ) {
$ ( '.btn-bot_action' ) . html ( 'SELL' ) ;
$ ( '.relvol_basevol_label' ) . html ( "You'll get" ) ;
2017-11-24 19:00:10 -08:00
$ ( '.btn-bot_action' ) . attr ( 'data-action' , 'sell' ) ;
2017-11-20 04:33:36 -08:00
}
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 ( ) ;
2017-12-05 17:28:26 -08:00
$ ( '.trading_pair_coin2' ) . show ( ) ;
2017-11-20 04:33:36 -08:00
$ ( '.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' )
2017-12-19 17:58:17 -08:00
$ ( '#trading_pair_coin_autoprice_mode' ) . parent ( ) . removeClass ( ' disabled' ) ;
$ ( '#trading_pair_coin_autoprice_mode' ) . removeAttr ( 'disabled' ) ;
$ ( '.buy_sell_advanced_options_div' ) . hide ( ) ;
2017-11-20 04:33:36 -08:00
$ ( '#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 ( ) ;
2017-12-05 17:28:26 -08:00
$ ( '.trading_pair_coin2' ) . hide ( ) ;
2017-11-20 04:33:36 -08:00
$ ( '.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 ) ;
2017-12-07 05:52:14 -08:00
var coin = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , coin ) ;
2017-11-16 13:24:39 -08:00
//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' ) {
2017-12-21 05:23:07 -08:00
if ( mt _data . trading _options == 'autorepeat' ) {
2017-12-21 05:37:00 -08:00
//var base_coin = coin;
//var rel_coin = $('.trading_pair_coin').selectpicker('val');
var ajax _data = { "userpass" : userpass , "method" : "autoprice" , "base" : base _coin , "rel" : rel _coin , "fixed" : 1 / mt _data . price } ;
2017-12-21 05:23:07 -08:00
toastr . success ( ` Auto-repeat buy order executed at fixed price of ${ mt _data . price } ` , 'Trade Notification' ) ;
} else if ( mt _data . trading _options == 'coinmarketcap' ) {
2017-12-08 15:35:03 -08:00
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
if ( buying _or _selling == 'buying' ) {
var base _coin = $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
var rel _coin = coin ;
}
2017-12-19 17:58:17 -08:00
if ( buying _or _selling == 'selling' ) {
var base _coin = coin ;
var rel _coin = $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
}
2017-12-21 03:50:54 -08:00
var ajax _data = { "userpass" : userpass , "method" : "autoprice" , "base" : base _coin , "rel" : rel _coin , "margin" : mt _data . price / 100 , "refbase" : base _coin . toLowerCase ( ) , "refrel" : "coinmarketcap" }
2017-12-19 17:58:17 -08:00
toastr . success ( ` Auto-repeat buy order executed at margin percent at ${ mt _data . price } % ` , 'Trade Notification' ) ;
toastr . success ( ` Buy order prices will be auto adjusted based on coinmarketcap.com prices. ` , 'Trade Notification' ) ;
2017-12-07 03:54:53 -08:00
} else {
var ajax _data = { "userpass" : userpass , "method" : "buy" , "base" : base _coin , "rel" : rel _coin , "price" : mt _data . price , "relvolume" : mt _data . volume } ;
}
2017-11-16 13:24:39 -08:00
if ( mt _data . trader _only == true ) {
ajax _data . destpubkey = mt _data . destpubkey ;
}
}
if ( mt _data . action == 'sell' ) {
2017-12-21 05:23:07 -08:00
if ( mt _data . trading _options == 'autorepeat' ) {
2017-12-21 05:37:00 -08:00
var base _coin = $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
var rel _coin = coin ;
var ajax _data = { "userpass" : userpass , "method" : "autoprice" , "base" : base _coin , "rel" : rel _coin , "fixed" : mt _data . price } ;
2017-12-21 05:23:07 -08:00
toastr . success ( ` Auto-repeat sell order executed at fixed price of ${ mt _data . price } ` , 'Trade Notification' ) ;
} else if ( mt _data . trading _options == 'coinmarketcap' ) {
2017-12-08 15:35:03 -08:00
var buying _or _selling = $ ( 'input[name=trading_pair_options]:checked' ) . val ( ) ;
if ( buying _or _selling == 'buying' ) {
var base _coin = $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
var rel _coin = coin ;
}
2017-12-19 17:58:17 -08:00
if ( buying _or _selling == 'selling' ) {
var base _coin = coin ;
var rel _coin = $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
}
2017-12-21 03:50:54 -08:00
var ajax _data = { "userpass" : userpass , "method" : "autoprice" , "base" : base _coin , "rel" : rel _coin , "margin" : mt _data . price / 100 , "refbase" : base _coin . toLowerCase ( ) , "refrel" : "coinmarketcap" }
2017-12-19 17:58:17 -08:00
toastr . success ( ` Auto-repeat buy order executed at margin percent at ${ mt _data . price } % ` , 'Trade Notification' ) ;
toastr . success ( ` Sell order prices will be auto adjusted based on coinmarketcap.com prices. ` , 'Trade Notification' ) ;
2017-12-07 03:54:53 -08:00
} else {
var ajax _data = { "userpass" : userpass , "method" : "sell" , "base" : base _coin , "rel" : rel _coin , "price" : mt _data . price , "basevolume" : mt _data . volume } ;
}
2017-11-16 13:24:39 -08:00
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
2017-11-26 09:37:16 -08:00
//$('.trading_pair_coin_price').val('');
//$('.trading_pair_coin_volume').val('');
2017-11-16 13:24:39 -08:00
$ ( '.trading_pair_destpubkey' ) . val ( '' ) ;
2017-11-26 09:37:16 -08:00
//$('.relvol_basevol').html('');
2017-11-16 13:24:39 -08:00
2017-11-24 02:22:49 -08:00
if ( ! mt _output _data . error === false ) {
2017-12-14 04:39:50 -08:00
toastr . error ( mt _output _data . error , 'Trade Info' ) ;
2017-12-16 06:54:55 -08:00
if ( mt _output _data . error == 'cant find a deposit that is close enough in size. make another deposit that is just a bit larger than what you want to trade' ) {
if ( mt _data . action == 'buy' ) {
var deposit = { } ;
deposit . amount = mt _data . volume . toFixed ( 8 ) ;
deposit . coin = rel _coin ;
}
if ( mt _data . action == 'sell' ) {
var deposit = { } ;
deposit . amount = mt _data . volume ;
deposit . coin = base _coin ;
}
DepositOnError ( deposit ) ;
}
2017-11-24 02:22:49 -08:00
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 */
2017-12-16 06:54:55 -08:00
function DepositOnError ( deposit _data ) {
console . log ( deposit _data ) ;
var coin _name = return _coin _details ( deposit _data . coin ) . name ;
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var ajax _data = { "userpass" : userpass , "method" : "getcoin" , "coin" : deposit _data . 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 ( deposit _data . amount > data . coin . balance ) {
var blockquote _text = ` Looks like your required trade is over your total balance. If you want to try with same trade, then please send the following ammount to the displayed address<br>
< span style = "font-size: 200%;" > $ { deposit _data . amount } $ { deposit _data . coin } < / s p a n > ` ;
var show _table = ` ` ;
var make _deposit _btn _state = 'hidden' ;
} else {
var blockquote _text = ` Want to make a relevant despoit and try again? ` ;
var show _table = ` <table class="table table-striped">
< tr >
< td style = "text-align: right;" > From < / t d >
< td style = "text-align: left;" > $ { data . coin . smartaddress } < / t d >
< / t r >
< tr >
< td style = "text-align: right;" > To < / t d >
< td style = "text-align: left;" > $ { data . coin . smartaddress } < / t d >
< / t r >
< tr >
< td style = "text-align: right;" > Amount < / t d >
< td style = "text-align: left;" > $ { deposit _data . amount } $ { deposit _data . coin } < / t d >
< / t r >
< tr >
< td style = "text-align: right;" > Fees < / t d >
< td style = "text-align: left;" > $ { data . coin . txfee / 100000000 } $ { deposit _data . coin } < / t d >
< / t r >
< tr >
< td style = "text-align: right; font-size: 150%;" > Total < / t d >
< td style = "text-align: left; font-size: 150%;" > $ { parseFloat ( deposit _data . amount ) + parseFloat ( data . coin . txfee / 100000000 ) } $ { deposit _data . coin } < / t d >
< / t r >
< / t a b l e > ` ;
var make _deposit _btn _state = 'shown' ;
}
var deposit _size _error _bootbox = bootbox . dialog ( {
onEscape : true ,
backdrop : true ,
message : ` <div style="text-align: center; margin-top: -40px;">
< img src = "img/cryptologo/${deposit_data.coin.toLowerCase()}.png" class = "coin_balance_receive_coin_logo" / >
< / d i v >
< div style = "text-align: center;" >
< div id = "receive_addr_qrcode" > < / d i v >
< pre style = "font-size: 18px;" > $ { data . coin . smartaddress } < / p r e c l a s s = " r e c e i v e _ a d d r _ q r c o d e _ a d d r " >
< blockquote style = "font-size: 15px; font-weight: 400; color: #ff3b00; background-color: #ffd9bf; border-left: 5px solid #f00;" > System did not find matching change to use from your full balance . < br > $ { blockquote _text } < / b l o c k q u o t e >
$ { show _table }
< / d i v > ` ,
closeButton : false ,
size : 'medium' ,
className : 'deposit_size_error_class_bootbox' ,
buttons : {
cancel : {
label : "Cancel" ,
className : 'btn-default' ,
callback : function ( ) {
}
} ,
ok : {
label : "Make Deposit" ,
className : 'btn-primary deposit_size_error_send_action' ,
callback : function ( ) {
var to _addr = data . coin . smartaddress ;
console . log ( to _addr ) ;
var output _data = { } ;
output _data [ to _addr ] = parseFloat ( deposit _data . amount ) + parseFloat ( data . coin . txfee / 100000000 ) ;
console . log ( output _data ) ;
console . log ( deposit _data . coin ) ;
create _sendtx ( deposit _data . coin , output _data ) ;
}
}
}
} ) ;
deposit _size _error _bootbox . init ( function ( ) {
console . log ( 'deposit_size_error_bootbox dialog opened.' )
var qrcode = new QRCode ( "receive_addr_qrcode" , { width : 128 , height : 128 } ) ;
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' ) ;
if ( make _deposit _btn _state == 'hidden' ) {
$ ( '.deposit_size_error_send_action' ) . hide ( ) ;
}
} ) ;
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-11-16 13:24:39 -08:00
/* Auto Trading Bot */
function setOrderPrice ( trade _data ) {
console . log ( trade _data ) ;
//trade_data = JSON.parse(trade_data);
//console.log(trade_data);
2017-12-07 07:26:13 -08:00
if ( trade _data . type == 'asks' ) {
trade _price _plus = trade _data . price * 1.001 ;
toastr . info ( ` Auto selected price as ${ trade _data . price } + 0.1% = ${ trade _price _plus . toFixed ( 8 ) } ` , 'Trade Info' ) ;
2017-12-19 18:59:42 -08:00
$ ( '#trading_pair_options_buying' ) . trigger ( 'click' ) ;
2017-12-07 07:26:13 -08:00
}
if ( trade _data . type == 'bids' ) {
trade _price _plus = trade _data . price / 1.001 ;
toastr . info ( ` Auto selected price as ${ trade _data . price } - 0.1% = ${ trade _price _plus . toFixed ( 8 ) } ` , 'Trade Info' ) ;
2017-12-19 18:59:42 -08:00
$ ( '#trading_pair_options_selling' ) . trigger ( 'click' ) ;
2017-12-07 07:26:13 -08:00
}
2017-11-16 13:24:39 -08:00
$ ( '.trading_pair_coin_price' ) . val ( trade _price _plus . toFixed ( 8 ) ) ;
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
2017-12-07 05:52:14 -08:00
var coin = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , coin ) ;
2017-11-04 07:57:53 -07:00
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"' ;
}
2017-12-07 07:26:13 -08:00
row _trade _data = { } ;
row _trade _data . price = val . price ;
//row_trade_data.minvolume = val.minvolume;
//row_trade_data.maxvolume = val.maxvolume;
row _trade _data . avevolume = val . avevolume ;
row _trade _data . numutxos = val . numutxos ;
row _trade _data . depth = val . depth ;
row _trade _data . maxbuy = val . avevolume / val . price ;
row _trade _data . pubkey = val . pubkey ;
row _trade _data . type = 'bids' ;
//row_trade_data.totalbuy = (val.avevolume / val.price) * val.numutxos;
2017-11-04 07:57:53 -07:00
var orderbook _bids _tr = '' ;
2017-12-07 07:26:13 -08:00
orderbook _bids _tr += '<tr ' + mytrade _true + ' onclick=setOrderPrice(' + JSON . stringify ( row _trade _data ) + ')>' ;
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-12-20 04:12:48 -08:00
orderbook _bids _tr += '<td>' + ( ( val . avevolume == 0 ) ? '-' : val . avevolume ) + '</td>' ;
2017-11-17 16:30:42 -08:00
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-12-05 08:40:44 -08:00
orderbook _bids _tr += '<td><span class="glyphicon glyphicon-piggy-bank" aria-hidden="true"></span> ' + val . zcredits . toFixed ( 2 ) + '</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 ) {
2017-12-05 08:40:44 -08:00
$ ( '.orderbook-asks-spinner' ) . hide ( ) ;
2017-11-16 13:24:39 -08:00
}
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-12-07 07:26:13 -08:00
row _trade _data . type = 'asks' ;
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-12-20 04:12:48 -08:00
orderbook _asks _tr += '<td>' + ( ( val . avevolume == 0 ) ? '-' : val . avevolume ) + '</td>' ;
2017-11-17 16:30:42 -08:00
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-12-05 08:40:44 -08:00
orderbook _asks _tr += '<td><span class="glyphicon glyphicon-piggy-bank" aria-hidden="true"></span> ' + val . zcredits . toFixed ( 2 ) + '</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-12-07 03:54:53 -08:00
$ ( '.exchange_my_orders_tbl tbody' ) . on ( 'click' , '.btn_my_prices_cancel' , function ( ) {
console . log ( 'btn_my_prices_cancel clicked' )
console . log ( $ ( this ) . data ( ) ) ;
cancel _my _prices ( $ ( this ) . data ( ) ) ;
} ) ;
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-12-07 05:52:14 -08:00
var coin = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , coin ) ;
2017-11-04 10:53:15 -07:00
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-24 18:03:59 -08:00
//console.log(index);
//console.log(val);
2017-11-04 10:53:15 -07:00
2017-12-07 02:14:36 -08:00
var base _coin _name = return _coin _details ( val . base ) . name
var rel _coin _name = return _coin _details ( val . rel ) . name
2017-11-04 10:53:15 -07:00
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>' ;
2017-12-07 03:54:53 -08:00
exchange _my _orders _tr += ` <td><button class="btn btn-xs btn-danger btn_my_prices_cancel" data-base=" ${ val . base } " data-rel=" ${ val . rel } "><span class="glyphicon glyphicon-stop"></span></button></td> ` ;
2017-11-04 10:53:15 -07:00
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-12-07 02:14:36 -08: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 _ d e t a i l s ( d a t a . b a s e ) . n a m e
var rel _coin _name = return _coin _details ( data . rel ) . name
2017-11-04 10:53:15 -07:00
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 ) ;
} ) ;
}
2017-12-07 03:54:53 -08:00
function cancel _my _prices ( cancel _data ) {
console . log ( cancel _data ) ;
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var ajax _data = { "userpass" : userpass , "method" : "setprice" , "base" : cancel _data . base , "rel" : cancel _data . rel , "price" : 0 , "broadcast" : 1 } ;
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 ) ;
check _my _prices ( ) ;
CheckOrderBookFn ( ) ;
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-11-04 10:53:15 -07:00
$ ( '.trading_pair_coin' ) . on ( 'change' , function ( e ) {
var optionSelected = $ ( "option:selected" , this ) ;
var valueSelected = this . value ;
console . log ( valueSelected ) ;
2017-12-05 17:28:26 -08:00
$ ( '.relvol_basevol_coin' ) . html ( valueSelected ) ;
bot _screen _sellcoin _balance ( ) ;
bot _screen _coin _balance ( ) ;
CheckOrderBookFn ( ) ;
2017-11-26 08:44:54 -08:00
var charts _instruments _data = { }
2017-12-14 09:48:38 -08:00
charts _instruments _data . symbol = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' ) + '/' + $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
2017-11-26 08:44:54 -08:00
charts _instruments _data . company = 'Komodo Platform' ;
ChartsInstruments ( charts _instruments _data )
2017-12-09 05:56:10 -08:00
UpdateDexChart ( $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' ) , $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ) ;
2017-12-05 17:28:26 -08:00
} ) ;
2017-11-26 08:44:54 -08:00
2017-12-05 17:28:26 -08:00
$ ( '.trading_pair_coin2' ) . on ( 'change' , function ( e ) {
var optionSelected _pair _coin2 = $ ( "option:selected" , this ) ;
var valueSelected _pair _coin2 = this . value ;
console . log ( valueSelected _pair _coin2 ) ;
coin = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' ) ;
selected _coin = { }
selected _coin . coin = coin ;
2017-12-07 02:14:36 -08:00
selected _coin . coin _name = return _coin _details ( coin ) . name ;
2017-12-05 17:28:26 -08:00
//selected_coin.addr = $(this).data('addr');
//selected_coin.balance = $(this).data('balance');
console . log ( selected _coin ) ;
sessionStorage . setItem ( 'mm_selectedcoin' , JSON . stringify ( selected _coin ) ) ;
$ ( '.coin_ticker' ) . html ( coin ) ;
$ . each ( $ ( '.coinexchange[data-coin]' ) , function ( index , value ) {
$ ( '.coinexchange[data-coin]' ) . data ( 'coin' , coin ) ;
} ) ;
2017-12-07 02:14:36 -08:00
$ ( '.coingoal_label_coin_name' ) . html ( return _coin _details ( coin ) . name + ' (' + coin + ')' ) ;
2017-12-05 17:28:26 -08:00
bot _screen _sellcoin _balance ( ) ;
bot _screen _coin _balance ( ) ;
CheckOrderBookFn ( ) ;
var charts _instruments _data = { }
2017-12-14 09:48:38 -08:00
charts _instruments _data . symbol = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' ) + '/' + $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ;
2017-12-05 17:28:26 -08:00
charts _instruments _data . company = 'Komodo Platform' ;
ChartsInstruments ( charts _instruments _data )
2017-12-09 05:56:10 -08:00
UpdateDexChart ( $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' ) , $ ( '.trading_pair_coin' ) . selectpicker ( 'val' ) ) ;
2017-11-04 13:45:26 -07:00
} ) ;
$ ( '.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-24 19:00:10 -08:00
console . log ( buying _or _selling ) ;
2017-11-04 13:45:26 -07:00
2017-11-20 04:33:36 -08:00
var bot _or _manual = $ ( 'input[name=trading_mode_options]:checked' ) . val ( ) ;
2017-11-24 19:00:10 -08:00
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-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' ) ;
2017-11-24 19:00:10 -08:00
$ ( '.btn-bot_action' ) . attr ( 'data-action' , 'buy' ) ;
2017-11-20 04:33:36 -08:00
$ ( '.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' ) ;
2017-11-24 19:00:10 -08:00
$ ( '.btn-bot_action' ) . attr ( 'data-action' , 'sell' ) ;
2017-11-20 04:33:36 -08:00
$ ( '.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 ( ) ) ;
2017-12-21 06:15:50 -08:00
coinBalanceReceiveAddr ( $ ( this ) . data ( 'coin' ) ) ;
} )
$ ( '.your_coins_balance_info' ) . on ( 'click' , '.coin_balance_send' , function ( ) {
console . log ( 'coin_balance_send clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
coinBalanceSendFn ( $ ( this ) . data ( 'coin' ) ) ;
} ) ;
function coinBalanceReceiveAddr ( coin ) {
2017-11-16 13:24:39 -08:00
2017-12-07 02:14:36 -08:00
var coin _name = return _coin _details ( coin ) . name ;
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" ;
$ . 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 ,
2017-12-02 09:44:51 -08:00
message : '<div style="text-align: center; margin-top: -40px;"><img src="img/cryptologo/' + coin . toLowerCase ( ) + '.png" class="coin_balance_receive_coin_logo"/></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>'
2017-11-16 13:24:39 -08:00
} ) ;
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 ) ;
} ) ;
2017-12-21 06:15:50 -08:00
}
2017-11-16 13:24:39 -08:00
2017-12-21 06:15:50 -08:00
function coinBalanceSendFn ( coin ) {
var tx _coin = coin ;
2017-11-16 13:24:39 -08:00
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" ) ;
}
} ) ;
} ) ;
} ) ;
2017-12-21 06:15:50 -08:00
}
2017-11-16 13:24:39 -08:00
$ ( '.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 ( ) ;
2017-12-17 20:05:27 -08:00
$ ( '.dextradeshistory' ) . hide ( ) ;
$ ( '.dexdebug' ) . hide ( ) ;
2017-11-16 13:24:39 -08:00
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-12-06 20:42:46 -08:00
Refresh _active _StockChart ( false ) ;
2017-11-16 13:24:39 -08:00
$ ( '.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 ) ;
} ) ;
2017-12-07 07:26:13 -08:00
$ ( '.your_coins_balance_info' ) . on ( 'click' , '.coin_balance_zcredits' , function ( ) {
console . log ( 'coin_balance_zcredits clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
} ) ;
2017-11-16 13:24:39 -08:00
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-12-07 05:52:14 -08:00
var coin = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , coin ) ;
2017-11-04 10:53:15 -07:00
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' ) ;
}
2017-12-07 05:52:14 -08:00
var coin = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , coin ) ;
2017-11-04 13:45:26 -07:00
//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 ) {
2017-12-07 05:52:14 -08:00
var coin = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , coin ) ;
2017-11-16 13:24:39 -08:00
//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 ) {
2017-12-09 06:47:28 -08:00
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 again when Bitcoin transaction fee is lower." ) ;
2017-11-16 13:24:39 -08:00
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 ) {
2017-12-07 05:52:14 -08:00
var coin = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , coin ) ;
2017-11-04 13:45:26 -07:00
//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
bootbox . alert ( ` Transaction Sent Successfully. Here's the Transaction ID:<br>
2017-12-07 02:14:36 -08:00
< a href = "#" onclick = "shell.openExternal('`+return_coin_details(coin).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>' ;
2017-12-07 02:14:36 -08:00
rel _answer = '<img src="img/cryptologo/' + data . rel . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _details ( data . rel ) . name + ' (' + data . rel + ')' ;
base _answer = '<img src="img/cryptologo/' + data . base . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _details ( data . base ) . name + ' (' + data . base + ')' ;
2017-11-04 17:29:03 -07:00
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" >
2017-12-02 09:44:51 -08:00
< span class = "input-group-addon bot_settings_label1" > It ' ll cost you < / s p a n >
< span class = "input-group-addon bot_settings_label2" > < span class = "new_relvol_basevol" > 0 < / s p a n > < s p a n c l a s s = " b o t _ s e t t i n g s _ l a b e l 3 " > ` + 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 >
2017-11-16 13:24:39 -08:00
< / 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 ) ;
2017-12-07 02:14:36 -08:00
var coin _name = return _coin _details ( coin ) . name ;
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" ;
$ . 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 > ` ;
2017-12-07 02:14:36 -08:00
$ ( '.trading_sellcoin_ticker_name' ) . html ( '<img src="img/cryptologo/' + coin . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _details ( coin ) . name + ' (' + coin + ')' + button _controls ) ;
2017-11-16 13:24:39 -08:00
$ ( '.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 > ` ;
2017-12-07 02:14:36 -08:00
$ ( '.trading_sellcoin_ticker_name' ) . html ( '<img src="img/cryptologo/' + coin . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _details ( coin ) . name + ' (' + coin + ') <small style="vertical-align: top; margin-left: 10px">' + coin _mode + '</small>' + button _controls ) ;
2017-11-24 18:03:59 -08:00
if ( data . coin . hasOwnProperty ( 'electrum' ) ) {
var electrum _coin _balance _data = { } ;
electrum _coin _balance _data . baserel = 'rel' ;
electrum _coin _balance _data . coin = coin ;
electrum _coin _balance _data . smartaddress = data . coin . smartaddress ;
electrum _coin _balance ( electrum _coin _balance _data ) ;
//$('.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>');
} else {
2017-12-07 07:26:13 -08:00
if ( data . coin . coin == 'KMD' ) {
var show _zcredits = '<br><button class="btn btn-xs btn-warning coin_balance_zcredits" style="font-size: 50%;"><span class="glyphicon glyphicon-piggy-bank" aria-hidden="true"></span> ' + data . coin . zcredits + '</button>' ;
} else {
var show _zcredits = '' ;
}
2017-12-15 22:51:44 -08:00
$ ( '.trading_sellcoin_balance' ) . html ( data . coin . balance + ' <span style="font-size: 60%; font-weight: 100;">' + coin + '</span>' + show _zcredits + '<br><span style="font-size: 50%; font-weight: 200;">' + data . coin . smartaddress + '</span> <!--<button class="btn btn-xs copysellcoinaddr"><i class="fa fa-clipboard" aria-hidden="true"></i></button>-->' ) ;
2017-11-24 18:03:59 -08:00
}
2017-11-16 13:24:39 -08:00
$ ( '#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' ) ;
}
2017-12-07 05:52:14 -08:00
var coin = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' ) ;
2017-11-06 05:58:36 -08:00
console . log ( coin ) ;
2017-12-07 02:14:36 -08:00
var coin _name = return _coin _details ( coin ) . name ;
2017-11-06 05:58:36 -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" ;
$ . 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 > ` ;
2017-12-07 02:14:36 -08:00
$ ( '.trading_coin_ticker_name' ) . html ( '<img src="img/cryptologo/' + coin . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _details ( coin ) . name + ' (' + coin + ')' + button _controls ) ;
2017-11-16 13:24:39 -08:00
$ ( '.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 > ` ;
2017-12-07 02:14:36 -08:00
$ ( '.trading_coin_ticker_name' ) . html ( '<img src="img/cryptologo/' + coin . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _details ( coin ) . name + ' (' + coin + ') <small style="vertical-align: top; margin-left: 10px">' + coin _mode + '</small>' + button _controls ) ;
2017-11-24 18:03:59 -08:00
if ( data . coin . hasOwnProperty ( 'electrum' ) ) {
var electrum _coin _balance _data = { } ;
electrum _coin _balance _data . baserel = 'base' ;
electrum _coin _balance _data . coin = coin ;
electrum _coin _balance _data . smartaddress = data . coin . smartaddress ;
electrum _coin _balance ( electrum _coin _balance _data ) ;
//$('.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>');
} else {
2017-12-07 07:26:13 -08:00
if ( data . coin . coin == 'KMD' ) {
var show _zcredits = '<br><button class="btn btn-xs btn-warning coin_balance_zcredits" style="font-size: 50%;"><span class="glyphicon glyphicon-piggy-bank" aria-hidden="true"></span> ' + data . coin . zcredits + '</button>' ;
} else {
var show _zcredits = '' ;
}
2017-12-15 22:51:44 -08:00
$ ( '.trading_coin_balance' ) . html ( data . coin . balance + ' <span style="font-size: 60%; font-weight: 100;">' + coin + '</span>' + show _zcredits + '<br><span style="font-size: 50%; font-weight: 200;">' + data . coin . smartaddress + '</span> <!--<button class="btn btn-xs btn-copycoinaddr"><i class="fa fa-clipboard" aria-hidden="true"></i></button>-->' ) ;
2017-11-24 18:03:59 -08:00
}
2017-11-16 13:24:39 -08:00
}
2017-12-07 02:14:36 -08:00
//$('.trading_coin_ticker_name').html('<img src="img/cryptologo/'+coin.toLowerCase()+'.png" style="width: 30px;"> '+ return_coin_details(coin).name + ' ('+coin+')');
2017-11-16 13:24:39 -08:00
//$('.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-24 18:03:59 -08:00
function electrum _coin _balance ( coin _balance _data ) {
console . log ( coin _balance _data ) ;
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
var ajax _data = { "userpass" : userpass , "method" : "balance" , "coin" : coin _balance _data . coin , "address" : coin _balance _data . smartaddress } ;
var url = "http://127.0.0.1:7783/" ;
$ . ajax ( {
async : true ,
data : JSON . stringify ( ajax _data ) ,
dataType : 'json' ,
type : 'POST' ,
url : url
} ) . done ( function ( coin _balance _output _data ) {
// If successful
console . log ( coin _balance _output _data ) ;
2017-12-14 04:51:35 -08:00
if ( coin _balance _data . coin == 'KMD' ) {
var show _zcredits = '<br><button class="btn btn-xs btn-warning coin_balance_zcredits" style="font-size: 50%;"><span class="glyphicon glyphicon-piggy-bank" aria-hidden="true"></span> ' + coin _balance _output _data . zcredits + '</button>' ;
} else {
var show _zcredits = '' ;
}
2017-11-24 18:03:59 -08:00
if ( coin _balance _data . baserel == 'base' ) {
2017-12-14 04:51:35 -08:00
$ ( '.trading_coin_balance' ) . html ( coin _balance _output _data . balance + ' <span style="font-size: 60%; font-weight: 100;">' + coin _balance _data . coin + '</span>' + show _zcredits + '<br><span style="font-size: 50%; font-weight: 200;">' + coin _balance _data . smartaddress + '</span>' ) ;
2017-11-24 18:03:59 -08:00
}
if ( coin _balance _data . baserel == 'rel' ) {
2017-12-14 04:51:35 -08:00
$ ( '.trading_sellcoin_balance' ) . html ( coin _balance _output _data . balance + ' <span style="font-size: 60%; font-weight: 100;">' + coin _balance _data . coin + '</span>' + show _zcredits + '<br><span style="font-size: 50%; font-weight: 200;">' + coin _balance _data . smartaddress + '</span>' ) ;
2017-11-24 18:03:59 -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-12-17 20:05:27 -08:00
CheckOrderBookFn ( false ) ;
check _swap _status ( false ) ;
check _bot _list ( false ) ;
check _my _prices ( false ) ;
Refresh _active _StockChart ( false ) ;
//bot_screen_coin_balance(false);
//bot_screen_sellcoin_balance(false);
2017-12-14 04:10:44 -08:00
var options _holdon = {
theme : "sk-bounce" ,
message : 'Please wait while getting swap status detail data...' ,
//backgroundColor:"#1847B1",
textColor : "white"
} ;
HoldOn . open ( options _holdon ) ;
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-12-14 04:10:44 -08:00
HoldOn . close ( ) ;
2017-11-22 12:01:53 -08:00
console . log ( swap _status _output _data ) ;
2017-11-16 13:24:39 -08:00
2017-12-05 17:28:26 -08:00
if ( ! swap _status _output _data . error === false ) {
toastr . error ( swap _status _output _data . error , 'Status Notification' ) ;
}
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>' ;
2017-12-07 02:14:36 -08:00
alice _answer = '<img src="img/cryptologo/' + swap _status _output _data . alice . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _details ( swap _status _output _data . alice ) . name + ' (' + swap _status _output _data . alice + ')' ;
bob _answer = '<img src="img/cryptologo/' + swap _status _output _data . bob . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _details ( swap _status _output _data . bob ) . name + ' (' + swap _status _output _data . bob + ')' ;
2017-11-22 12:01:53 -08:00
iambob _answer = ( swap _status _output _data . iambob == 0 ) ? 'Buyer' : 'Seller' ;
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" >
2017-12-02 09:44:51 -08:00
< span class = "input-group-addon swapdetail_info" > < / s p a n >
2017-11-16 13:24:39 -08:00
< / 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-12-16 08:50:58 -08:00
< button class = "btn btn-xs btn-default btn_swap_status_details_close" style = "float: right; margin-right: -6px; margin-top: -20px" > CLOSE < / b u t t o n >
< 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-12-07 02:14:36 -08:00
< td class = "tbl_alicepayment" > ` + ` < a href = "#" onclick = "shell.openExternal('`+return_coin_details(swap_status_output_data.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-12-07 02:14:36 -08:00
< td class = "tbl_bobdeposit" > ` + ` < a href = "#" onclick = "shell.openExternal('`+return_coin_details(swap_status_output_data.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-12-07 02:14:36 -08:00
< td class = "tbl_bobpayment" > < a href = "#" onclick = "shell.openExternal('`+return_coin_details(swap_status_output_data.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 ,
2017-12-16 08:50:58 -08:00
size : 'large' / * ,
2017-11-16 13:24:39 -08:00
buttons : {
cancel : {
label : "Close" ,
className : 'btn-default btn_swap_status_details_close' ,
callback : function ( ) {
}
}
2017-12-16 08:50:58 -08:00
} * /
2017-11-16 13:24:39 -08:00
} ) ;
swap _status _details _bootbox . init ( function ( ) {
2017-12-17 20:05:27 -08:00
/ * C h e c k O r d e r B o o k F n ( f a l s e ) ;
2017-11-16 13:24:39 -08:00
check _swap _status ( false ) ;
check _bot _list ( false ) ;
check _my _prices ( false ) ;
2017-12-06 20:42:46 -08:00
Refresh _active _StockChart ( false ) ;
2017-11-16 13:24:39 -08:00
//bot_screen_coin_balance(false);
2017-12-17 20:05:27 -08:00
//bot_screen_sellcoin_balance(false);*/
2017-11-16 13:24:39 -08:00
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 ) {
2017-12-07 02:14:36 -08:00
$ ( '.tbl_alicepayment' ) . html ( ` <a href="#" onclick="shell.openExternal(' ` + return _coin _details ( swap _status _output _data . alice ) . explorer + dataforblinker . alicepayment + ` '); return false;"> ` + dataforblinker . alicepayment + ` </a> ` ) ;
2017-11-16 13:24:39 -08:00
$ ( '.tbl_alicetxfee' ) . html ( dataforblinker . alicetxfee ) ;
2017-12-07 02:14:36 -08:00
$ ( '.tbl_bobdeposit' ) . html ( ` <a href="#" onclick="shell.openExternal(' ` + return _coin _details ( swap _status _output _data . bob ) . explorer + dataforblinker . bobdeposit + ` '); return false;"> ` + dataforblinker . bobdeposit + ` </a> ` ) ;
$ ( '.tbl_bobpayment' ) . html ( ` <a href="#" onclick="shell.openExternal(' ` + return _coin _details ( swap _status _output _data . bob ) . explorer + dataforblinker . bobpayment + ` '); return false;"> ` + dataforblinker . bobpayment + ` </a> ` ) ;
2017-11-16 13:24:39 -08:00
$ ( '.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-12-16 08:50:58 -08:00
swap _status _details _bootbox . modal ( 'hide' ) ;
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
2017-12-14 04:10:44 -08:00
HoldOn . close ( ) ;
2017-11-04 07:57:53 -07:00
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
}
2017-12-07 05:52:14 -08:00
var coin = $ ( '.trading_pair_coin2' ) . selectpicker ( 'val' , coin ) ;
2017-11-04 10:53:15 -07:00
//console.log(coin);
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
2017-12-14 14:17:17 -08:00
var ajax _data = { "userpass" : userpass , "method" : "swapstatus" } ;
2017-11-04 10:53:15 -07:00
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
2017-11-26 06:58:39 -08:00
console . log ( data ) ;
2017-11-04 10:53:15 -07:00
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 ) {
2017-12-05 08:40:44 -08:00
$ ( '.exchange-swap-status-spinner' ) . hide ( ) ;
2017-11-16 13:24:39 -08:00
} * /
2017-12-05 08:40:44 -08:00
$ ( '.exchange-swap-status-spinner' ) . hide ( ) ;
2017-11-16 13:24:39 -08:00
$ . 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>' ;
2017-12-16 08:50:58 -08:00
//exchange_swap_status_tr += '<td>-</td>';
2017-11-16 13:24:39 -08:00
exchange _swap _status _tr += '<td>-</td>' ;
exchange _swap _status _tr += '</tr>' ;
$ ( '.exchange_swap_status_tbl tbody' ) . append ( exchange _swap _status _tr ) ;
} else {
2017-12-16 08:50:58 -08:00
if ( val . finishtime == undefined ) {
var fintime = '-' ;
} else {
var fintime = new Date ( val . finishtime * 1000 ) ;
}
if ( val . alice == undefined ) {
var aliceval = '-' ;
} else {
var aliceval = val . alice ;
}
if ( val . bob == undefined ) {
var bobval = '-' ;
} else {
var bobval = val . bob ;
}
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>' ;
}
2017-12-16 08:50:58 -08:00
var pair _and _time = ` <br><b>Pair:</b> ${ aliceval } / ${ bobval } <br> ${ fintime } ` ;
2017-11-16 13:24:39 -08:00
} else {
var status _color = '' ;
var swap _status = '<span class="glyphicon glyphicon-transfer" aria-hidden="true"></span>' ;
2017-12-16 08:50:58 -08:00
var pair _and _time = ` ` ;
2017-11-16 13:24:39 -08:00
}
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>' ;
2017-12-16 08:50:58 -08:00
exchange _swap _status _tr += ` <td><b>Quote ID:</b> ${ val . quoteid } <br>
< b > Request ID : < / b > $ { v a l . r e q u e s t i d }
$ { pair _and _time } < / t d > ` ;
//exchange_swap_status_tr += '<td>' + val.quoteid + '</td>';
//exchange_swap_status_tr += '<td>' + val.requestid + '</td>';
2017-11-16 13:24:39 -08:00
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" } ;
2017-12-14 14:17:17 -08:00
//var ajax_data = {"userpass":userpass,"method":"recentswaps","limit":100};
2017-11-17 16:58:37 -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 ) {
2017-12-14 04:39:50 -08:00
console . log ( data ) ;
2017-11-17 16:58:37 -08:00
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>' ;
2017-12-07 02:14:36 -08:00
alice _answer = '<img src="img/cryptologo/' + data . alice . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _details ( data . alice ) . name + ' (' + data . alice + ')' ;
bob _answer = '<img src="img/cryptologo/' + data . bob . toLowerCase ( ) + '.png" style="width: 30px;"> ' + return _coin _details ( data . bob ) . name + ' (' + data . bob + ')' ;
2017-11-17 16:58:37 -08:00
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" >
2017-12-02 09:44:51 -08:00
< span class = "input-group-addon swapdetail_info" > < / s p a n >
2017-11-17 16:58:37 -08:00
< / 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 */
2017-12-14 06:56:27 -08:00
/ * $ ( ' . z e r o c o n f _ d e p o s i t s _ h i s t o r y _ t b l t b o d y ' ) . o n ( ' c l i c k ' , ' . z c o n f _ d e p o s i t _ t x i d _ l i n k ' , f u n c t i o n ( e ) {
2017-11-24 15:23:08 -08:00
e . preventDefault ( ) ;
console . log ( 'zconf_deposit_txid_link clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
shell . openExternal ( 'https://kmd.explorer.supernet.org/tx/' + $ ( this ) . data ( 'txid' ) ) ;
2017-12-14 06:56:27 -08:00
} ) ; * /
2017-11-24 15:23:08 -08:00
$ ( '.zeroconf_deposits_history_tbl tbody' ) . on ( 'click' , '.zconf_deposit_details' , function ( e ) {
e . preventDefault ( ) ;
console . log ( 'zconf_deposit_details clicked' ) ;
console . log ( $ ( this ) . data ( ) ) ;
} ) ;
2017-12-05 07:23:06 -08:00
$ ( '.btn_zeroconf_claim_deposit' ) . click ( function ( e ) {
2017-11-24 15:23:08 -08:00
e . preventDefault ( ) ;
2017-12-05 07:23:06 -08:00
console . log ( 'btn_zeroconf_claim_deposit clicked' ) ;
ZeroConfClaim ( ) ;
2017-11-24 15:23:08 -08:00
} ) ;
$ ( '.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 ) ;
2017-12-16 06:54:55 -08:00
var zeroconf _deposit _confirm _bootbox = bootbox . dialog ( {
onEscape : true ,
backdrop : true ,
message : ` Please confirm you want to send and lock <font style="font-size: 135%;"> ${ deposit _amount } KMD</font> for <font style="font-size: 135%;"> ${ deposit _weeks } week(s)?</font> ` ,
closeButton : false ,
size : 'medium' ,
className : 'zeroconf_deposit_confirm_class_bootbox' ,
buttons : {
cancel : {
label : "Cancel" ,
className : 'btn-default' ,
callback : function ( ) {
toastr . info ( 'Sending Speed Deposit fund is canceled.' , 'Speed Deposit Notification' )
}
} ,
ok : {
label : "Yes, I confirm" ,
className : 'btn-primary zeroconf_deposit_confirm_make_despoit' ,
callback : function ( ) {
ZeroConfDeposit ( deposit _weeks , deposit _amount ) ;
}
}
}
} ) ;
zeroconf _deposit _confirm _bootbox . init ( function ( ) {
console . log ( 'zeroconf_deposit_confirm_bootbox dialog opened.' )
} ) ;
2017-11-24 15:23:08 -08:00
} ) ;
$ ( '.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>' ;
2017-12-01 23:48:04 -08:00
//zeroconf_deposits_history_tr += '<td>-</td>';
2017-11-24 15:23:08 -08:00
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-12-01 23:48:04 -08:00
/ * z e r o c o n f _ d e p o s i t s _ h i s t o r y _ t r + = ` < t d > < b u t t o n c l a s s = " b t n b t n - x s b t n - d e f a u l t z c o n f _ d e p o s i t _ d e t a i l s " d a t a - a d d r e s s = " ` + v a l . a d d r e s s + ` " d a t a - e x p i r a t i o n = " ` + v a l . e x p i r a t i o n + ` " s t y l e = " d i s p l a y : n o n e ; " > D e t a i l s < / b u t t o n >
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 >
2017-12-01 23:48:04 -08:00
< /td>`;*/
2017-11-24 15:23:08 -08:00
zeroconf _deposits _history _tr += '</tr>' ;
$ ( '.zeroconf_deposits_history_tbl tbody' ) . append ( zeroconf _deposits _history _tr ) ;
}
} ) ;
2017-12-14 06:56:27 -08:00
$ ( '.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' ) ) ;
} ) ;
2017-11-24 15:23:08 -08:00
}
function ZeroConfDeposit ( deposit _weeks , deposit _amount ) {
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
2017-12-01 22:48:16 -08:00
var ajax _data = { "userpass" : userpass , "method" : "instantdex_deposit" , "weeks" : deposit _weeks , "amount" : deposit _amount , "broadcast" : 1 } ;
2017-11-24 15:23:08 -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 ( 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 ) {
2017-12-01 22:48:16 -08:00
toastr . error ( zconf _deposit _data . error , 'InstantDEX Notification' ) ;
2017-11-24 15:23:08 -08:00
}
if ( zconf _deposit _data . result == 'success' ) {
2017-11-24 15:33:26 -08:00
var zconf _depoit _bootbox = bootbox . dialog ( {
2017-12-01 22:48:16 -08:00
title : 'InstantDEX security deposit sent!' ,
2017-11-24 15:33:26 -08:00
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-12-05 07:23:06 -08:00
//getZeroConfDepositHistory();
2017-11-24 15:23:08 -08:00
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-12-05 07:23:06 -08:00
function ZeroConfClaim ( ) {
2017-11-24 15:23:08 -08:00
var userpass = sessionStorage . getItem ( 'mm_userpass' ) ;
var mypubkey = sessionStorage . getItem ( 'mm_mypubkey' ) ;
2017-12-01 23:48:04 -08:00
var ajax _data = { "userpass" : userpass , "method" : "instantdex_claim" } ;
2017-11-24 15:23:08 -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 ( 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 ) {
2017-12-01 22:48:16 -08:00
toastr . error ( zconf _claim _data . error , 'InstantDEX Notification' ) ;
2017-11-24 15:23:08 -08:00
}
if ( zconf _claim _data . result == 'success' ) {
2017-11-24 17:04:01 -08:00
var zconf _claim _bootbox = bootbox . dialog ( {
2017-12-05 07:23:06 -08:00
title : 'InstantDEX Deposit Claim' ,
message : ` <div class="zeroconf_claims_table_div mCustomScrollbar" data-mcs-theme="minimal-dark">
< table class = "table table-striped zeroconf_claims_tbl" width = "100%" style = "margin-bottom: 0;" >
< thead >
< th > List of Claimable Deposit < / t h >
< / t h e a d >
< tbody > < / t b o d y >
< / t a b l e >
< / d i v > ` ,
2017-11-24 17:04:01 -08:00
closeButton : false ,
size : 'medium' ,
buttons : {
cancel : {
label : "Close" ,
className : 'btn-default' ,
callback : function ( ) {
}
}
}
} )
zconf _claim _bootbox . init ( function ( ) {
2017-12-05 07:23:06 -08:00
$ ( '.zeroconf_claims_tbl tbody' ) . empty ( ) ;
$ . each ( zconf _claim _data . txids , function ( index , val ) {
console . log ( index ) ;
console . log ( val ) ;
var seconds = val . waittime ;
var duration = moment . duration ( seconds , 'seconds' ) ;
var formatted _waittime = duration . format ( "hh:mm:ss" ) ;
console . log ( formatted _waittime ) ;
var zeroconf _claims _tbl _tr = '' ;
zeroconf _claims _tbl _tr += '<tr>' ;
zeroconf _claims _tbl _tr += ` <td>
< b > Deposit : < / b > $ { v a l . d e p o s i t } K M D < b r >
< b > Interest : < / b > $ { v a l . i n t e r e s t } < b r >
< b > Wait Time : < / b > $ { f o r m a t t e d _ w a i t t i m e } ( H H : m m : s s ) < b r >
< b > Transaction ID : < / b > < a c l a s s = " z c o n f _ c l a i m _ t x i d _ b o o t b o x " 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 > ` ;
zeroconf _claims _tbl _tr += '</tr>' ;
$ ( '.zeroconf_claims_tbl tbody' ) . append ( zeroconf _claims _tbl _tr ) ;
} ) ;
$ ( '.zeroconf_claims_tbl tbody' ) . on ( 'click' , '.zconf_claim_txid_bootbox' , function ( e ) {
2017-11-24 17:04:01 -08:00
console . log ( $ ( this ) . data ( ) ) ;
shell . openExternal ( 'https://kmd.explorer.supernet.org/tx/' + $ ( this ) . data ( 'txid' ) ) ;
} ) ;
} ) ;
2017-12-01 23:48:04 -08:00
//bootbox.alert();
2017-11-24 15:23:08 -08:00
}
} ) . fail ( function ( jqXHR , textStatus , errorThrown ) {
// If fail
console . log ( textStatus + ': ' + errorThrown ) ;
} ) ;
}
2017-12-05 07:23:06 -08:00
$ ( '.btn_zeroconf_deposit_history' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'info_box_for_zeroconf clicked' ) ;
var zconf _deposit _history _bootbox = bootbox . dialog ( {
title : 'High Speed Mode Deposits History' ,
message : ` <div class="zeroconf_settings_table_div mCustomScrollbar" data-mcs-theme="minimal-dark">
< table class = "table table-striped zeroconf_deposits_history_tbl" width = "100%" style = "margin-bottom: 0;" >
< thead >
<!-- < th > Index < / t h > - - >
< th > High Speed Mode Deposits History < / t h >
<!-- < th > Actions < / t h > - - >
< / t h e a d >
< tbody > < / t b o d y >
< / t a b l e >
< / d i v > ` ,
closeButton : false ,
size : 'medium' ,
buttons : {
cancel : {
label : "Close" ,
className : 'btn-default' ,
callback : function ( ) {
}
}
}
} )
zconf _deposit _history _bootbox . init ( function ( ) {
getZeroConfDepositHistory ( ) ;
$ ( ".mCustomScrollbar" ) . mCustomScrollbar ( ) ;
} ) ;
} ) ;
2017-11-24 18:03:59 -08:00
$ ( '.info_box_for_zeroconf' ) . click ( function ( e ) {
e . preventDefault ( ) ;
console . log ( 'info_box_for_zeroconf clicked' ) ;
bootbox . alert ( {
2017-11-26 06:23:35 -08:00
title : ` What is High Speed Mode Confirmations Feature? ` ,
2017-11-26 08:01:18 -08:00
message : ` <p>Use of this feature requires a security deposit, equal to or greater than the amount you wish to actively trade. This deposit is placed in a special multisig address for safe keeping. The following conditions apply:</p>
2017-11-26 06:58:39 -08:00
< ul >
< li > The minimum deposit amount is 10 KMD . < / l i >
2017-11-26 08:01:18 -08:00
< li > The minimum deposit period is 1 week , and the maximum period is 52 weeks . < / l i >
< li > The expiration date is permanently set and recorded within your blockchain transaction at the time of sending the deposit . < / l i >
< li > Choose your time period appropriately , as you can only reclaim your deposit after the expiration date . < / l i >
< li > Your KMD security deposit will continue to accrue the 5 % APR throughout the time period , as usual . < / l i >
< li > Upon conclusion , you will receive your deposit and interest , less a security fee of 0.1 % . < / l i >
< / u l >
< p > IMPORTANT : If you attempt to cheat while using High Speed Mode , both the amount of your offense and an additional penalty fee can be deducted from your deposit and forfeited to the affected parties . The remaining amount in your deposit balance will be claimable at the normal time of expiration . < / p > ` ,
2017-11-24 18:03:59 -08:00
size : 'large'
} ) ;
} )
2017-12-01 12:34:32 -08:00
/* ZEROCONF SETTINGS END */