Browse Source

Some Housekeeping

Some code cleanup
Added 2 buy/sell toastr msgs that will need lang settings
Added grouping to swapstatus debug output
Moved 1 HTML click function
Updated with KomodoPlatform edits
master
TheComputerGenie 7 years ago
committed by Unknown
parent
commit
36d0184961
  1. 6
      ReadMe.md
  2. BIN
      assets/bin/win64/marketmaker.exe
  3. 398
      gui/index.html
  4. 35
      gui/js/dex_ManipulateHTML.js
  5. 154
      gui/js/dex_SimpleActions.js
  6. 234
      gui/js/ipc-actions.js
  7. 36
      ipc/killmm.js
  8. 669
      ipc/shepherd-ipc.js
  9. 57
      main.js

6
ReadMe.md

@ -6,8 +6,8 @@ The BarterDEX application created by Komodo Platform allows trading cryptocurren
-matching aspect uses a low-level pubkey-to-pubkey messaging protocol, and the final settlement is executed through an atomic cross-chain swap. 
Komodo Platform Official Site:  https://komodoplatform.com
Komodo BarterDEX Page :  https://www.komodoplatform.com/en/technology/barterdex
BarterDEX Whitepaper :  https://www.komodoplatform.com/en/technology/whitepapers/BarterDEX-Whitepaper-v0.4.pdf
Komodo BarterDEX Page:  https://www.komodoplatform.com/decentralized-exchange
Komodo Whitepaper:  https://www.komodoplatform.com/wp-content/uploads/2018/03/2018-03-12-Komodo-White-Paper-Full.pdf
@ -62,7 +62,7 @@ sudo npm install -g electron --unsafe-perm=true
2. Start Monaize Native Wallet
3. Wait for both Komodo and Monaize to sync 100%
4. Start BarterDEX
5. Select 'Monzie (MNZ) dICO' option at the login screen.
5. Select 'Monaize (MNZ) dICO' option at the login screen.
6. Login with `passphrase` (either pre-generated or make a new one).
7. Look for the KMD address and send KMDs to it. Once sent, it will start reflecting there in a minute.
8. Give the maximum price that you would like to pay for MNZ. Example: 0.15

BIN
assets/bin/win64/marketmaker.exe

Binary file not shown.

398
gui/index.html

@ -42,7 +42,7 @@
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url('http://fonts.gstatic.com/s/opensans/v10/cJZKeOuBrn4kERxqtaUH3bO3LdcAZYWl9Si6vvxL-qU.woff') format('woff');
}
body {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;
}
@ -52,13 +52,13 @@
.table-fixed thead {
width: 97%;
}
.table-fixed tbody {
height: 230px;
overflow-y: auto;
width: 100%;
}
.table-fixed thead,
.table-fixed tbody,
.table-fixed tr,
@ -66,7 +66,7 @@
.table-fixed th {
display: block;
}
.table-fixed tbody td,
.table-fixed thead>tr>th {
float: left;
@ -107,7 +107,8 @@
<label for="loginPassphrase" class="sr-only language" data-langstr="login_passphrase_label"></label>
<div class="input-group col-sm-12" style="margin-bottom: 10px;">
<input type="password" id="loginPassphrase" class="form-control loginPassphrase language" data-langstr="login_passphrase_input_placeholder" placeholder="" data-toggle="password" required>
<input type="password" id="loginPassphrase" class="form-control loginPassphrase language" data-langstr="login_passphrase_input_placeholder"
placeholder="" data-toggle="password" required>
<!--
<span class="input-group-btn">
<button class="btn btn-grey btn_login_show_passphrase" style="height: 44px; margin-bottom: 10px;"><span class="glyphicon glyphicon-eye-close" aria-hidden="true"></span></button>
@ -116,8 +117,9 @@
<div class="col-sm-4" style="margin-bottom: 10px; padding: 0 5px 0 0;">
<span class="input-group">
<span class="input-group-addon" class="language" data-langstr="">Net ID</span>
<input type="number" id="loginNetid" class="form-control loginNetid language" data-langstr="login_netid_input_placeholder" placeholder="" value="0" required>
<span class="input-group-addon" class="language" data-langstr="">Net ID</span>
<input type="number" id="loginNetid" class="form-control loginNetid language" data-langstr="login_netid_input_placeholder"
placeholder="" value="0" required>
</span>
@ -126,16 +128,17 @@
<div class="col-sm-8" style="margin-bottom: 10px; padding: 0 0 0 5px;">
<span class="input-group">
<span class="input-group-addon" class="language" data-langstr="">Seed Node IP</span>
<input type="text" id="loginSeednode" class="form-control loginSeednode language" data-langstr="login_seednode_input_placeholder" placeholder="" value="" required>
<span class="input-group-addon" class="language" data-langstr="">Seed Node IP</span>
<input type="text" id="loginSeednode" class="form-control loginSeednode language" data-langstr="login_seednode_input_placeholder"
placeholder="" value="" required>
</span>
</div>
<div class="input-group col-sm-12" style="margin-bottom: 10px;">
<select class="selectpicker login_mode_options" data-hide-disabled="true" data-width="30%"></select>
<span class="input-group-btn">
<button class="btn btn-lg btn-primary btn-block login-btn language" data-langstr="login_btn" type="submit" style="height: 64px;"></button>
</span>
<button class="btn btn-lg btn-primary btn-block login-btn language" data-langstr="login_btn" type="submit" style="height: 64px;"></button>
</span>
</div>
<button class="btn btn-lg btn-default btn-block login-genpass-btn language" data-langstr="generate_a_new_passphrase" style="margin-bottom: 10px;"></button>
@ -166,11 +169,11 @@
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-brand-centered">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-brand">BarterDEX</div>
</div>
@ -211,16 +214,16 @@
<div class="dextradeshistory" style="display: none; margin-top: 60px;">
<span class="refresh-trades-history-icon" onclick="constructTradesHistory()">
<i class="fa fa-refresh"></i>
</span>
<i class="fa fa-refresh"></i>
</span>
<div id="trades-history-content">
<svg id="trades-history-spinner">
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
</svg>
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
</svg>
</div>
</div>
@ -239,9 +242,17 @@
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title language" data-langstr="portfolio_portfolio_chart"></h3>
<button class="btn btn-xs btn-warning btn-managecoins portfolio" style="float: right; margin-right: -6px; margin-top: -20px"><span class="language" data-langstr="portfolio_manage_coins"></span> <span class="fa fa-cogs" aria-hidden="true"></span></button>
<button class="btn btn-xs btn-info btn-activatecoins portfolio" style="float: right; margin-right: 6px; margin-top: -20px"><span class="language" data-langstr="portfolio_add_coins"></span> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span></button>
<button class="btn btn-xs btn-refreshportfolio portfolio" style="float: right; margin-right: 6px; margin-top: -20px"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span></button>
<button class="btn btn-xs btn-warning btn-managecoins portfolio" style="float: right; margin-right: -6px; margin-top: -20px">
<span class="language" data-langstr="portfolio_manage_coins"></span>
<span class="fa fa-cogs" aria-hidden="true"></span>
</button>
<button class="btn btn-xs btn-info btn-activatecoins portfolio" style="float: right; margin-right: 6px; margin-top: -20px">
<span class="language" data-langstr="portfolio_add_coins"></span>
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
</button>
<button class="btn btn-xs btn-refreshportfolio portfolio" style="float: right; margin-right: 6px; margin-top: -20px">
<span class="glyphicon glyphicon-refresh" aria-hidden="true"></span>
</button>
</div>
<div class="portfolio portfolio-coinslist">
<!-- panel-body -->
@ -255,7 +266,8 @@
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title language" data-langstr="portfolio_portfolio_coins"></h3>
<button class="btn btn-xs btn-info btn-autogoalall portfolio language" data-langstr="portfolio_auto_goal_all_active_coins" data-auto=true style="float: right; margin-right: -6px; margin-top: -20px"></button>
<button class="btn btn-xs btn-info btn-autogoalall portfolio language" data-langstr="portfolio_auto_goal_all_active_coins"
data-auto=true style="float: right; margin-right: -6px; margin-top: -20px"></button>
</div>
<div class="portfolio portfolio-coinslist">
<!-- panel-body -->
@ -275,11 +287,11 @@
<th colspan="7">
<div style="text-align: center; height: 100px;">
<svg id="portfolio-coins-spinner">
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
</svg>
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
</svg>
</div>
</th>
</tbody>
@ -302,7 +314,9 @@
<select class="selectpicker addcoin_startup_select" data-live-search="true" data-hide-disabled="true" data-width="100%"></select>
</div>
<div class="col-sm-6">
<input class="toggle_checkbox toggle_font_lg" id="addcoin_toggle_startup_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">
<input class="toggle_checkbox toggle_font_lg" id="addcoin_toggle_startup_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">
</div>
<div class="col-sm-12" style="text-align: center;">
<button class="btn btn-lg btn-warning btn-managecoins_add_to_startup">Add Coin to Startup</button>
@ -314,7 +328,9 @@
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title language" data-langstr="portfolio_default_startup_coins"></h3>
<button class="btn btn-xs btn-refreshmanagecoins portfolio" style="float: right; margin-right: -6px; margin-top: -20px"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span></button>
<button class="btn btn-xs btn-refreshmanagecoins portfolio" style="float: right; margin-right: -6px; margin-top: -20px">
<span class="glyphicon glyphicon-refresh" aria-hidden="true"></span>
</button>
</div>
<div class="">
<!-- panel-body -->
@ -331,11 +347,22 @@
<div class="screen-inventory" style="display: none; margin-top: 60px;">
<div class="col-sm-12" style="display: block;">
<p>This screen shows you option to manage your coin's inventory. What is coin inventory?</p>
<p>Every crypto currency wallet is very much like your regular physical wallet. Just like in your physical wallet if you have different currency notes and coins available, that means they are not spent. You can spend them. If you use the
same analogy in crypto currency, these unspent notes and coins can be referred as <b><i>unspent transactions.</i></b> In tiny bit technical term it's called <b>U</b>nspent <b>T</b>ransaction <b>O</b>utput, in short <b>UTXO</b>.</p>
<p>The decentralised Exchange doesn't run on total balance of your crypto currency wallet. It needs small unspent transactions. So, if you have sent a big transaction to your BarterDEX smart address, you can use this screen to split your
balance to number of small UTXOs.</p>
<p>By clicking <i>Make Inventory</i> button, it will split your smart address balance to number of UTXOs and send them back to your smart address. It will cost regular transaction fee to split your smart address balance.</p>
<p>Every crypto currency wallet is very much like your regular physical wallet. Just like in your physical wallet
if you have different currency notes and coins available, that means they are not spent. You can spend
them. If you use the same analogy in crypto currency, these unspent notes and coins can be referred as
<b>
<i>unspent transactions.</i>
</b> In tiny bit technical term it's called
<b>U</b>nspent
<b>T</b>ransaction
<b>O</b>utput, in short
<b>UTXO</b>.</p>
<p>The decentralised Exchange doesn't run on total balance of your crypto currency wallet. It needs small unspent
transactions. So, if you have sent a big transaction to your BarterDEX smart address, you can use this
screen to split your balance to number of small UTXOs.</p>
<p>By clicking
<i>Make Inventory</i> button, it will split your smart address balance to number of UTXOs and send them
back to your smart address. It will cost regular transaction fee to split your smart address balance.</p>
</div>
<div class="col-sm-12" style="display: block;">
@ -354,13 +381,18 @@
<input type="number" class="form-control" id="inventory_slider_input1">
</div>
<div class="col-sm-5">
<input id="inventory-slider1" type="text" class="col-sm-8 form-control" data-slider-min="0" data-slider-max="3" data-slider-step="1" data-slider-value="3" />
<input id="inventory-slider1" type="text" class="col-sm-8 form-control" data-slider-min="0" data-slider-max="3" data-slider-step="1"
data-slider-value="3" />
</div>
<div class="col-sm-2">
<span id="inventory-slider1CurrentValLabel">No. of deposit: <span id="inventory-slider1Val" style="font-weight: bold;">3</span></span>
<span id="inventory-slider1CurrentValLabel">No. of deposit:
<span id="inventory-slider1Val" style="font-weight: bold;">3</span>
</span>
</div>
<div class="col-sm-2">
<span id="inventory-slider1CurrentTotalLabel">Total: <span id="inventory-slider1Total" style="font-weight: bold;"></span></span>
<span id="inventory-slider1CurrentTotalLabel">Total:
<span id="inventory-slider1Total" style="font-weight: bold;"></span>
</span>
</div>
</div>
@ -372,13 +404,18 @@
<input type="number" class="form-control" id="inventory_slider_input2">
</div>
<div class="col-sm-5">
<input id="inventory-slider2" type="text" class="col-sm-8 form-control" data-slider-min="0" data-slider-max="3" data-slider-step="1" data-slider-value="3" />
<input id="inventory-slider2" type="text" class="col-sm-8 form-control" data-slider-min="0" data-slider-max="3" data-slider-step="1"
data-slider-value="3" />
</div>
<div class="col-sm-2">
<span id="inventory-slider2CurrentValLabel">No. of deposit: <span id="inventory-slider2Val" style="font-weight: bold;">3</span></span>
<span id="inventory-slider2CurrentValLabel">No. of deposit:
<span id="inventory-slider2Val" style="font-weight: bold;">3</span>
</span>
</div>
<div class="col-sm-2">
<span id="inventory-slider2CurrentTotalLabel">Total: <span id="inventory-slider2Total" style="font-weight: bold;"></span></span>
<span id="inventory-slider2CurrentTotalLabel">Total:
<span id="inventory-slider2Total" style="font-weight: bold;"></span>
</span>
</div>
</div>
@ -390,18 +427,26 @@
<input type="number" class="form-control" id="inventory_slider_input3">
</div>
<div class="col-sm-5">
<input id="inventory-slider3" type="text" class="col-sm-8 form-control" data-slider-min="0" data-slider-max="4" data-slider-step="1" data-slider-value="4" />
<input id="inventory-slider3" type="text" class="col-sm-8 form-control" data-slider-min="0" data-slider-max="4" data-slider-step="1"
data-slider-value="4" />
</div>
<div class="col-sm-2">
<span id="inventory-slider3CurrentValLabel">No. of deposit: <span id="inventory-slider3Val" style="font-weight: bold;">4</span></span>
<span id="inventory-slider3CurrentValLabel">No. of deposit:
<span id="inventory-slider3Val" style="font-weight: bold;">4</span>
</span>
</div>
<div class="col-sm-2">
<span id="inventory-slider3CurrentTotalLabel">Total: <span id="inventory-slider3Total" style="font-weight: bold;"></span></span>
<span id="inventory-slider3CurrentTotalLabel">Total:
<span id="inventory-slider3Total" style="font-weight: bold;"></span>
</span>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-9 col-sm-3">
<span style="font-weight: 300; font-size: 25px;">Total <span class="inventory-sliderTotal" style="font-weight: 300; font-size: 25px;"></span><span class="coininventory inventory-sliderTotalCoin"></span></span>
<span style="font-weight: 300; font-size: 25px;">Total
<span class="inventory-sliderTotal" style="font-weight: 300; font-size: 25px;"></span>
<span class="coininventory inventory-sliderTotalCoin"></span>
</span>
</div>
</div>
<div class="form-group">
@ -424,7 +469,9 @@
<div class="panel-heading">
<!--<button class="btn btn-default btn-sm backto_dex_balances" style="float: right; font-size: 13px; padding: 8px 8px;">Back</button>-->
<button class="btn btn-xs btn-inventoryclose coininventory" data-coin="COIN" style="float: right; margin: 6px 6px 0px 3px;">BACK</button>
<button class="btn btn-xs btn-inventoryrefresh coininventory" style="float: right; margin: 6px 6px 0px 3px;" data-coin="COIN"><span class="glyphicon glyphicon-refresh"></span></button>
<button class="btn btn-xs btn-inventoryrefresh coininventory" style="float: right; margin: 6px 6px 0px 3px;" data-coin="COIN">
<span class="glyphicon glyphicon-refresh"></span>
</button>
<ul class="nav nav-tabs">
<li style="display: none;">
<a href="#AliceInventory" data-toggle="tab" class="language" data-langstr="inventory_tab_inventory"></a>
@ -432,7 +479,9 @@
<li class="active">
<a href="#ListUnspents" data-toggle="tab" class="language" data-langstr="inventory_list_unspent_tab"></a>
</li>
<li style="display: none;"><a href="#RawJSONInventory" data-toggle="tab">Raw JSON</a></li>
<li style="display: none;">
<a href="#RawJSONInventory" data-toggle="tab">Raw JSON</a>
</li>
</ul>
</div>
<div class="">
@ -475,18 +524,25 @@
<div class="col-sm-12 col1">
<div class="panel panel-default" style="margin-bottom: 5px;">
<div class="panel-heading">
<h3 class="panel-title"><strong class="language" data-langstr="exchange_your_balance"></strong></h3>
<button class="btn btn-xs btn-warning btn_switch_trading_coin_pairs" style="float: right; margin: -20px 20px;"><span class="language" data-langstr="exchange_switch_pairs"></span> <span class="fa fa-random" aria-hidden="true"></span></button>
<button class="btn btn-xs btn-trading_coin_balance_refresh coinexchange" data-coin="COIN" style="float: right; margin: -20px -8px"><span class="glyphicon glyphicon-refresh"></span></button>
<h3 class="panel-title">
<strong class="language" data-langstr="exchange_your_balance"></strong>
</h3>
<button class="btn btn-xs btn-warning btn_switch_trading_coin_pairs" style="float: right; margin: -20px 20px;">
<span class="language" data-langstr="exchange_switch_pairs"></span>
<span class="fa fa-random" aria-hidden="true"></span>
</button>
<button class="btn btn-xs btn-trading_coin_balance_refresh coinexchange" data-coin="COIN" style="float: right; margin: -20px -8px">
<span class="glyphicon glyphicon-refresh"></span>
</button>
</div>
<div>
<!-- panel-body -->
<svg id="balance-spinner">
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
</svg>
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
</svg>
<div class="balance-block">
<div class="input-group col-sm-12 your_coins_balance_info">
<span class="input-group-addon trading_sellcoin_ticker_name"></span>
@ -506,7 +562,12 @@
<div class="panel with-nav-tabs panel-default" style="margin-bottom: 5px;">
<div class="panel-heading">
<ul class="nav nav-tabs">
<li class="active"><a href="#exchange_trading_pair" data-toggle="tab"><span class="language" data-langstr="exchange_trading_pair"></span> <!--<button class="btn btn-xs btn-refreshtrading_pair coinexchange" data-coin="COIN"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span></button>--></a></li>
<li class="active">
<a href="#exchange_trading_pair" data-toggle="tab">
<span class="language" data-langstr="exchange_trading_pair"></span>
<!--<button class="btn btn-xs btn-refreshtrading_pair coinexchange" data-coin="COIN"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span></button>-->
</a>
</li>
<li>
<a href="#exchange_zeroconf_settings" data-toggle="tab" class="language" data-langstr="exchange_speed_mode_settings"></a>
</li>
@ -522,32 +583,51 @@
<div class="form-group trading_buysell_options">
<div class="btn-group btn-group-justified colors" data-toggle="buttons">
<label class="btn btn-info active">
<input type="radio" name="trading_pair_options" id="trading_pair_options_buying" value="buying" autocomplete="off" checked> <span class="language" data-langstr="exchange_btn_buy_caps"></span> <span class="coin_ticker"></span></label>
<input type="radio" name="trading_pair_options" id="trading_pair_options_buying" value="buying" autocomplete="off" checked>
<span class="language" data-langstr="exchange_btn_buy_caps"></span>
<span class="coin_ticker"></span>
</label>
<label class="btn btn-info">
<input type="radio" name="trading_pair_options" id="trading_pair_options_selling" value="selling" autocomplete="off"> <span class="language" data-langstr="exchange_btn_sell_caps"></span> <span class="coin_ticker"></span></label>
<input type="radio" name="trading_pair_options" id="trading_pair_options_selling" value="selling" autocomplete="off">
<span class="language" data-langstr="exchange_btn_sell_caps"></span>
<span class="coin_ticker"></span>
</label>
</div>
</div>
<div class="form-group trading_method_options">
<div class="btn-group btn-group-justified colors" data-toggle="buttons">
<label class="btn btn-warning active">
<input type="radio" name="trading_mode_options" id="trading_mode_options_tradebot" value="tradebot" autocomplete="off"><span class="language" data-langstr="exchange_btn_trade_bot"></span></label>
<input type="radio" name="trading_mode_options" id="trading_mode_options_tradebot" value="tradebot" autocomplete="off">
<span class="language" data-langstr="exchange_btn_trade_bot"></span>
</label>
<label class="btn btn-warning">
<input type="radio" name="trading_mode_options" id="trading_mode_options_trademanual" value="trademanual" autocomplete="off"><span class="language" data-langstr="exchange_btn_manual_trade"></span></label>
<input type="radio" name="trading_mode_options" id="trading_mode_options_trademanual" value="trademanual" autocomplete="off">
<span class="language" data-langstr="exchange_btn_manual_trade"></span>
</label>
<label class="btn btn-warning">
<input type="radio" name="trading_mode_options" id="trading_mode_options_tradeportfolio" value="tradeportfolio" autocomplete="off"><span class="language" data-langstr="exchange_btn_portfolio"></span></label>
<input type="radio" name="trading_mode_options" id="trading_mode_options_tradeportfolio" value="tradeportfolio" autocomplete="off">
<span class="language" data-langstr="exchange_btn_portfolio"></span>
</label>
</div>
</div>
<div class="form-group">
<span style="float: left; font-size: 18px;"><span class="trading_pair_lable_text_one language" data-langstr="exchange_lbl_one_max"></span> <span class="language" data-langstr="exchange_lbl_one_price_to"></span> <span class="trading_pair_lable_text_two language" data-langstr="exchange_lbl_buy_small"></span></span>
<span style="float: left; font-size: 18px;">
<span class="trading_pair_lable_text_one language" data-langstr="exchange_lbl_one_max"></span>
<span class="language" data-langstr="exchange_lbl_one_price_to"></span>
<span class="trading_pair_lable_text_two language" data-langstr="exchange_lbl_buy_small"></span>
</span>
</div>
<div class="input-group col-sm-12">
<select class="selectpicker trading_pair_coin" data-live-search="true" data-hide-disabled="true" data-width="30%"></select>
<span class="input-group-addon trading_pair_coin_autoprice_mode_span" style="font-size: 0px; margin: 0; padding: 0; width: 120px; background-color: #fff; border: 0;">
<div class="checkbox" style="margin: 0;">
<input class="toggle_checkbox toggle_font_lg" id="trading_pair_coin_autoprice_mode" type="checkbox" checked data-toggle="toggle" data-on="Margin" data-off="Fixed" data-onstyle="primary" data-offstyle="info" data-width="100%" data-height="44px" data-class="toggle-font-lg">
</div>
</span>
<input type="number" class="form-control trading_pair_coin_price" data-langstr="exchange_trading_pair_coin_price_input_placeholder" placeholder="" style="height: 44px; font-size: 20px;">
<div class="checkbox" style="margin: 0;">
<input class="toggle_checkbox toggle_font_lg" id="trading_pair_coin_autoprice_mode" type="checkbox" checked data-toggle="toggle"
data-on="Margin" data-off="Fixed" data-onstyle="primary" data-offstyle="info"
data-width="100%" data-height="44px" data-class="toggle-font-lg">
</div>
</span>
<input type="number" class="form-control trading_pair_coin_price" data-langstr="exchange_trading_pair_coin_price_input_placeholder"
placeholder="" style="height: 44px; font-size: 20px;">
<span class="input-group-addon language" data-langstr="exchange_coin_price_max" id="trading_pair_coin_price_max_min" style="font-size: 20px;"></span>
</div>
@ -556,14 +636,19 @@
</div>
<div class="input-group col-sm-12 trading_selected_trader" style="display: none;">
<span class="input-group-addon">
<input class="big-checkbox trading_pair_destpubkey_yesno" type="checkbox"> <span class="language" data-langstr="exchange_destpubkey_yes"></span>
<input class="big-checkbox trading_pair_destpubkey_yesno" type="checkbox">
<span class="language" data-langstr="exchange_destpubkey_yes"></span>
</span>
<input type="text" class="form-control trading_pair_destpubkey" placeholder="eg. bab6ad2eebe1e666369cab504d4622b22c1f1ef718ef388e88020f30a1573e01" style="height: 44px; font-size: 20px;">
<input type="text" class="form-control trading_pair_destpubkey" placeholder="eg. bab6ad2eebe1e666369cab504d4622b22c1f1ef718ef388e88020f30a1573e01"
style="height: 44px; font-size: 20px;">
</div>
<div class="form-group buy_sell_amount_to" style="margin-top: 15px; margin-bottom: 0px;">
<span style="font-size: 18px;"><span class="language" data-langstr="exchange_lbl_two_max"></span> <span class="language" data-langstr="exchange_lbl_amount_to"></span> <span class="trading_pair_lable_text_two language"
data-langstr="exchange_lbl_buy_small"></span></span>
<span style="font-size: 18px;">
<span class="language" data-langstr="exchange_lbl_two_max"></span>
<span class="language" data-langstr="exchange_lbl_amount_to"></span>
<span class="trading_pair_lable_text_two language" data-langstr="exchange_lbl_buy_small"></span>
</span>
</div>
<div class="input-group col-sm-12">
<p class="portfolio_info_text" style="font-size: 120%; font-weight: 200;"></p>
@ -571,10 +656,11 @@
<div class="input-group col-sm-12 buy_sell_button_div">
<!--<span class="input-group-addon coin_ticker" id="trading_pair_coin_ticker" style="font-size: 20px;"></span>-->
<select class="selectpicker trading_pair_coin2" data-live-search="true" data-hide-disabled="true" data-width="30%"></select>
<input type="number" class="form-control trading_pair_coin_volume" data-langstr="exchange_trading_pair_coin_volume_input_placeholder" placeholder="" style="height: 44px; font-size: 20px;">
<input type="number" class="form-control trading_pair_coin_volume" data-langstr="exchange_trading_pair_coin_volume_input_placeholder"
placeholder="" style="height: 44px; font-size: 20px;">
<span class="input-group-btn">
<button class="btn btn-primary btn-bot_action language" data-action="buy" style="height: 44px; font-size: 20px;" data-langstr="exchange_btn_buy_caps"></button>
</span>
<button class="btn btn-primary btn-bot_action language" data-action="buy" style="height: 44px; font-size: 20px;" data-langstr="exchange_btn_buy_caps"></button>
</span>
</div>
<div class="input-group col-sm-12 trading_auto_repeat_trade">
<!--<input class="big-checkbox trading_auto_repeat_trade_yesno" type="checkbox"> Enable auto-repeat this trade <br>-->
@ -584,14 +670,16 @@
<div class="state p-danger-o">
<label class="language" data-langstr="exchange_dont_auto_repeat_order"></label>
</div>
</div> <br>
</div>
<br>
<div class="pretty p-default p-curve">
<input type="radio" name="trading_manual_buy_sell_options" value="autorepeat" />
<div class="state p-success-o">
<label class="language" data-langstr="exchange_enable_auto_repeat_this_trade"></label>
</div>
</div> <br>
</div>
<br>
<div class="pretty p-default p-curve">
<input type="radio" name="trading_manual_buy_sell_options" value="coinmarketcap" />
@ -605,18 +693,26 @@
<div class="input-group col-sm-12">
<span class="input-group-addon relvol_basevol_label language" data-langstr="exchange_itll_cost_you"></span>
<span class="input-group-addon relvol_basevol_amount"><span class="relvol_basevol">0</span> <span class="relvol_basevol_coin"></span></span>
<span class="input-group-addon relvol_basevol_amount">
<span class="relvol_basevol">0</span>
<span class="relvol_basevol_coin"></span>
</span>
</div>
<div class="form-group coingoal_label_div" style="margin-top: 15px; margin-bottom: 0px; display: none;">
<span style="font-size: 118%;"><span class="language" data-langstr="exchange_set_small"></span> <span class="coingoal_label_coin_name"></span> <span class="language" data-langstr="exchange_goal_percent_for_your_portfolio"></span></span>
<span style="font-size: 118%;">
<span class="language" data-langstr="exchange_set_small"></span>
<span class="coingoal_label_coin_name"></span>
<span class="language" data-langstr="exchange_goal_percent_for_your_portfolio"></span>
</span>
</div>
<div class="input-group col-sm-12 coingoal_div" style="display: none;">
<span class="input-group-addon coin_ticker" id="coingoal_coin_ticker" style="font-size: 20px;"></span>
<input type="number" class="form-control coingoal_percentage" placeholder="e.g. 12.5" style="height: 44px; font-size: 20px;">
<span class="input-group-btn">
<button class="btn btn-primary btn_set_coin_goal language" data-langstr="exchange_set_gaol_caps" data-action="goal" data-auto=false style="height: 44px; font-size: 20px;"></button>
</span>
<button class="btn btn-primary btn_set_coin_goal language" data-langstr="exchange_set_gaol_caps" data-action="goal" data-auto=false
style="height: 44px; font-size: 20px;"></button>
</span>
</div>
</div>
@ -626,9 +722,12 @@
<div class="tab-pane fade" id="exchange_zeroconf_settings">
<div class="row" style="padding: 15px;">
<div class="col-sm-12">
<p><span class="language" data-langstr="exchange_0conf_settings_text_one"></span> <span class="language" data-langstr="exchange_0conf_settings_text_two"></span>
<a href="#" class="info_box_for_zeroconf language"
data-langstr="exchange_0conf_settings_a"></a> <span class="language" data-langstr="exchange_0conf_settings_text_three"></span></p>
<p>
<span class="language" data-langstr="exchange_0conf_settings_text_one"></span>
<span class="language" data-langstr="exchange_0conf_settings_text_two"></span>
<a href="#" class="info_box_for_zeroconf language" data-langstr="exchange_0conf_settings_a"></a>
<span class="language" data-langstr="exchange_0conf_settings_text_three"></span>
</p>
<div class="form-group">
<span style="float: left; font-size: 18px;" class="language" data-langstr="exchange_0conf_deposit_high_speed_mode_sec"></span>
@ -672,9 +771,30 @@
<!--<button class="btn btn-xs btn-exchangeclose coinexchange" data-coin="COIN" style="float: right; margin: 6px 6px 0px 3px;">BACK</button>
<button class="btn btn-xs btn-exchangerefresh coinexchange" data-coin="COIN" style="float: right; margin: 6px 6px 0px 3px;"><span class="glyphicon glyphicon-refresh"></span></button>-->
<ul class="nav nav-tabs">
<li><a href="#exchange_myorders" data-toggle="tab"><span class="language" data-langstr="exchange_my_prices"></span> <button class="btn btn-xs btn-myordersrefresh coinexchange" data-coin="COIN"><span class="glyphicon glyphicon-refresh"></span></button></a></li>
<li class="autobot_tab"><a href="#exchange_botlist" data-toggle="tab"><span class="language" data-langstr="exchange_auto_bot_list"></span> <button class="btn btn-xs btn-botlistrefresh coinexchange" data-coin="COIN"><span class="glyphicon glyphicon-refresh"></span></button></a></li>
<li class="active"><a href="#exchange_tradestatus" data-toggle="tab"><span class="language" data-langstr="exchange_trade_status"></span> <button class="btn btn-xs btn-botlistrefresh coinexchange" data-coin="COIN"><span class="glyphicon glyphicon-refresh"></span></button></a></li>
<li>
<a href="#exchange_myorders" data-toggle="tab">
<span class="language" data-langstr="exchange_my_prices"></span>
<button class="btn btn-xs btn-myordersrefresh coinexchange" data-coin="COIN">
<span class="glyphicon glyphicon-refresh"></span>
</button>
</a>
</li>
<li class="autobot_tab">
<a href="#exchange_botlist" data-toggle="tab">
<span class="language" data-langstr="exchange_auto_bot_list"></span>
<button class="btn btn-xs btn-botlistrefresh coinexchange" data-coin="COIN">
<span class="glyphicon glyphicon-refresh"></span>
</button>
</a>
</li>
<li class="active">
<a href="#exchange_tradestatus" data-toggle="tab">
<span class="language" data-langstr="exchange_trade_status"></span>
<button class="btn btn-xs btn-botlistrefresh coinexchange" data-coin="COIN">
<span class="glyphicon glyphicon-refresh"></span>
</button>
</a>
</li>
</ul>
</div>
<div class="">
@ -728,11 +848,11 @@
</tbody>
</table>
<svg id="exchange-swap-status-spinner" class="exchange-swap-status-spinner">
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
</svg>
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
</svg>
</div>
</div>
@ -756,16 +876,24 @@
<div class="hidden-xs hidden-sm hidden-md col-lg-6 col-xl-6" style="padding-right: 2px;">
<div class="panel panel-default">
<div class="panel-heading">
<span class="language" data-langstr="exchange_sellers_caps"></span>: <span class="orderbook_numasks"></span>
<button class="btn btn-xs btn-exchangeclose coinexchange" data-coin="COIN" style="float: right; margin: 0px -8px 0px 3px;"><span class="language" data-langstr="exchange_btn_back"></span></button>
<button class="btn btn-xs btn-exchangerefresh coinexchange" data-coin="COIN" style="float: right; margin: 0px 0px 0px 3px;"><span class="glyphicon glyphicon-refresh"></span></button>
<span class="language" data-langstr="exchange_sellers_caps"></span>:
<span class="orderbook_numasks"></span>
<button class="btn btn-xs btn-exchangeclose coinexchange" data-coin="COIN" style="float: right; margin: 0px -8px 0px 3px;">
<span class="language" data-langstr="exchange_btn_back"></span>
</button>
<button class="btn btn-xs btn-exchangerefresh coinexchange" data-coin="COIN" style="float: right; margin: 0px 0px 0px 3px;">
<span class="glyphicon glyphicon-refresh"></span>
</button>
</div>
<div class="">
<!-- panel-body -->
<div class="mCustomScrollbar" data-mcs-theme="minimal-dark" id="exchange_coin_asks">
<table class="table table-striped orderbook_asks" width="100%" style="margin-bottom: 0;">
<thead>
<th><span class="language" data-langstr="exchange_th_orderbook_price_in"></span> <span class="orderbook_rel_coin"></span></th>
<th>
<span class="language" data-langstr="exchange_th_orderbook_price_in"></span>
<span class="orderbook_rel_coin"></span>
</th>
<!--<th>Size(Min-Max <span class="orderbook_base_coin"></span>)</th>
<th>Size(Min-Max <span class="orderbook_rel_coin"></span>)</th>
<th>Sum(<span class="orderbook_rel_coin"></span>)</th>-->
@ -779,11 +907,11 @@
<tbody></tbody>
</table>
<svg id="orderbook-asks-spinner" class="orderbook-asks-spinner">
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
</svg>
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
</svg>
</div>
</div>
</div>
@ -792,16 +920,24 @@
<div class="hidden-xs hidden-sm hidden-md col-lg-6 col-xl-6" style="padding-left: 2px;">
<div class="panel panel-default">
<div class="panel-heading">
<span class="language" data-langstr="exchange_buyers_caps"></span>: <span class="orderbook_numbids"></span>
<button class="btn btn-xs btn-exchangeclose coinexchange" data-coin="COIN" style="float: right; margin: 0px -8px 0px 3px;"><span class="language" data-langstr="exchange_btn_back"></span></button>
<button class="btn btn-xs btn-exchangerefresh coinexchange" data-coin="COIN" style="float: right; margin: 0px 0px 0px 3px;"><span class="glyphicon glyphicon-refresh"></span></button>
<span class="language" data-langstr="exchange_buyers_caps"></span>:
<span class="orderbook_numbids"></span>
<button class="btn btn-xs btn-exchangeclose coinexchange" data-coin="COIN" style="float: right; margin: 0px -8px 0px 3px;">
<span class="language" data-langstr="exchange_btn_back"></span>
</button>
<button class="btn btn-xs btn-exchangerefresh coinexchange" data-coin="COIN" style="float: right; margin: 0px 0px 0px 3px;">
<span class="glyphicon glyphicon-refresh"></span>
</button>
</div>
<div class="">
<!-- panel-body -->
<div class="mCustomScrollbar" data-mcs-theme="minimal-dark" id="exchange_coin_bids">
<table class="table table-striped orderbook_bids" width="100%" style="margin-bottom: 0;">
<thead>
<th><span class="language" data-langstr="exchange_th_orderbook_price_in"></span> <span class="orderbook_rel_coin"></span></th>
<th>
<span class="language" data-langstr="exchange_th_orderbook_price_in"></span>
<span class="orderbook_rel_coin"></span>
</th>
<!--<th>Min <span class="orderbook_rel_coin"></span></th>
<th>Max <span class="orderbook_rel_coin"></span></th>-->
<th class="language" data-langstr="exchange_th_orderbook_avg_volume"></th>
@ -821,11 +957,25 @@
<div class="col-sm-12 col-md-12 hidden-lg hidden-xl">
<div class="panel with-nav-tabs panel-default">
<div class="panel-heading">
<button class="btn btn-xs btn-exchangeclose coinexchange" data-coin="COIN" style="float: right; margin: 6px 6px 0px 3px;"><span class="language" data-langstr="exchange_btn_back"></span></button>
<button class="btn btn-xs btn-exchangerefresh coinexchange" data-coin="COIN" style="float: right; margin: 6px 6px 0px 3px;"><span class="glyphicon glyphicon-refresh"></span></button>
<button class="btn btn-xs btn-exchangeclose coinexchange" data-coin="COIN" style="float: right; margin: 6px 6px 0px 3px;">
<span class="language" data-langstr="exchange_btn_back"></span>
</button>
<button class="btn btn-xs btn-exchangerefresh coinexchange" data-coin="COIN" style="float: right; margin: 6px 6px 0px 3px;">
<span class="glyphicon glyphicon-refresh"></span>
</button>
<ul class="nav nav-tabs">
<li class="active"><a href="#exchange_coin_asks_togl" data-toggle="tab"><span class="language" data-langstr="exchange_sellers_caps"></span>: <span class="orderbook_numasks"></span></a></li>
<li><a href="#exchange_coin_bids_togl" data-toggle="tab"><span class="language" data-langstr="exchange_buyers_caps"></span>: <span class="orderbook_numbids"></span></a></li>
<li class="active">
<a href="#exchange_coin_asks_togl" data-toggle="tab">
<span class="language" data-langstr="exchange_sellers_caps"></span>:
<span class="orderbook_numasks"></span>
</a>
</li>
<li>
<a href="#exchange_coin_bids_togl" data-toggle="tab">
<span class="language" data-langstr="exchange_buyers_caps"></span>:
<span class="orderbook_numbids"></span>
</a>
</li>
</ul>
</div>
<div class="">
@ -835,7 +985,10 @@
<table class="table table-striped orderbook_asks" width="100%" style="margin-bottom: 0;">
<thead>
<th><span class="language" data-langstr="exchange_th_orderbook_price_in"></span> <span class="orderbook_rel_coin"></span></th>
<th>
<span class="language" data-langstr="exchange_th_orderbook_price_in"></span>
<span class="orderbook_rel_coin"></span>
</th>
<!--<th>Size(Min-Max <span class="orderbook_base_coin"></span>)</th>
<th>Size(Min-Max <span class="orderbook_rel_coin"></span>)</th>
<th>Sum(<span class="orderbook_rel_coin"></span>)</th>-->
@ -849,17 +1002,20 @@
<tbody></tbody>
</table>
<svg id="orderbook-asks-spinner" class="orderbook-asks-spinner">
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10"/>
</svg>
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path2" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path3" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
<circle class="path4" cx="50" cy="50" r="20" fill="none" stroke-width="5" stroke-miterlimit="10" />
</svg>
</div>
<div class="tab-pane fade mCustomScrollbar" data-mcs-theme="minimal-dark" id="exchange_coin_bids_togl">
<table class="table table-striped orderbook_bids" width="100%" style="margin-bottom: 0;">
<thead>
<th><span class="language" data-langstr="exchange_th_orderbook_price_in"></span> <span class="orderbook_rel_coin"></span></th>
<th>
<span class="language" data-langstr="exchange_th_orderbook_price_in"></span>
<span class="orderbook_rel_coin"></span>
</th>
<!--<th>Min <span class="orderbook_rel_coin"></span></th>
<th>Max <span class="orderbook_rel_coin"></span></th>-->
<th class="language" data-langstr="exchange_th_orderbook_avg_volume"></th>
@ -993,11 +1149,11 @@
<!--<script src="js/charts/site.js"></script>-->
<!-- custom dex actions javascript -->
<!--<script src="js/dexactions.js"></script>-->
<script src="js/dex_ManipulateHTML.js"></script>
<script src="js/electrum_list.js"></script>
<script src="js/dex_SimpleActions.js"></script>
<script src="js/dex_mmCalls.js"></script>
<script src="js/dex_ComplexActions.js"></script>
<script src="js/dex_ManipulateHTML.js"></script>
<script src="js/electrum_list.js"></script>
<script src="js/dex_RemoteAlerts.js"></script>
<script src="js/language-codes_json.js"></script>

35
gui/js/dex_ManipulateHTML.js

@ -0,0 +1,35 @@
$('.dexdashboard-btn').click(function (e) {
e.preventDefault();
console.log('btn-exchangeclose clicked');
console.log($(this).data());
$('.navbar-right').children().removeClass('active');
$('.dexdashboard-btn').parent().addClass("active");
$('body').css('overflow', 'inherit');
$('.dextradeshistory').hide();
$('.dexdebug').hide();
$('.dexdebug-btn').show();
$('.dexlogout-btn').show();
$('.dexdebug-close-btn').hide();
$('.dextradeshistory-btn').show();
//$('.screen-coindashboard').show()
$('.screen-exchange').hide();
$('.screen-inventory').hide();
$('.screen-managecoins').hide();
$('.screen-portfolio').show();
CheckOrderBookFn(false);
check_swap_status(false);
check_bot_list(false);
check_my_prices(false);
bot_screen_coin_balance(false);
bot_screen_sellcoin_balance(false);
Refresh_active_StockChart(false);
//check_coin_balance_Interval = setInterval(check_coin_balance(),3000);
//check_coin_balance();
CheckPortfolioFn();
CheckPortfolio_Interval = setInterval(CheckPortfolioFn, 60000);
});

154
gui/js/dex_SimpleActions.js

@ -1023,7 +1023,8 @@ function check_coin_balance(chk_coin_data) {
var ajax_data = {"userpass":userpass,"method":"getcoin","coin": coin};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -1100,7 +1101,8 @@ function get_coin_info(coin) {
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"getcoin","coin":coin};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -1143,7 +1145,8 @@ function get_coin_info_spv_inv(coin_data) {
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"balance","coin":coin_data.coin,"address":coin_data.addr};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -1187,7 +1190,8 @@ function get_coins() {
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"getcoins"};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -1256,7 +1260,8 @@ function enable_disable_coin(enable_disable_coin_data) {
if (enable_disable_coin_data.method === 'disable') {
console.warn('disable coin called');
var ajax_data = {"userpass":userpass,"method":"electrum","coin":enable_disable_coin_data.coin};
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -1286,7 +1291,8 @@ function enable_disable_coin(enable_disable_coin_data) {
console.log(return_data_port);
var ajax_data = {"userpass":userpass,"method":"electrum","coin":enable_disable_coin_data.coin,"ipaddr":return_data_ipaddr,"port":return_data_port};
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -1363,7 +1369,8 @@ function enable_disable_coin(enable_disable_coin_data) {
var ajax_data = {"userpass":userpass,"method":enable_disable_coin_data.method,"coin":enable_disable_coin_data.coin};
console.log(ajax_data);
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -1445,7 +1452,8 @@ function check_coin_inventory(coin) {
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"inventory","coin":coin};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -1518,7 +1526,8 @@ function check_coin_listunspent(coin_listunspent_data) {
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"listunspent","coin":coin_listunspent_data.coin,"address":coin_listunspent_data.addr};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -1803,7 +1812,8 @@ function make_inventory_withdraw(mk_inv_data) {
console.log(ajax_data);
console.log(JSON.stringify(ajax_data));
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
@ -1868,7 +1878,8 @@ function mk_inv_sendrawtx(mk_inv_rawtx_data,mk_inv_rawtx_coin) {
console.log(ajax_data);
console.log(JSON.stringify(ajax_data));
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
//dataType: 'json',
@ -1933,7 +1944,8 @@ function addcoin_enable_disable_coin(data) {
var url = "http://127.0.0.1:7783";
console.log(ajax_data);
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
@ -1985,7 +1997,8 @@ function get_coins_list() {
var ajax_data = {"userpass":userpass,"method":"getcoins"};
console.log(ajax_data)
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -2189,7 +2202,8 @@ function CheckPortfolioFn(sig) {
var ajax_data = {"userpass":userpass,"method":"portfolio"};
console.log(ajax_data)
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -2421,7 +2435,8 @@ $('.portfolio_set_price_btn').click(function() {
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";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
@ -2452,7 +2467,8 @@ $('.portfolio_set_autoprice_btn').click(function() {
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";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
@ -2485,7 +2501,8 @@ function set_coin_goal(goal_data){
var ajax_data = {"userpass":userpass,"method":"goal"};
}
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -2658,7 +2675,8 @@ function autoprice_buy_sell(autoprice_data) {
console.log(JSON.stringify(ajax_data));
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
@ -2942,7 +2960,8 @@ function manual_buy_sell(mt_data) {
console.log(JSON.stringify(ajax_data));
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
@ -2999,10 +3018,19 @@ function manual_buy_sell(mt_data) {
} else {
toastr.error('No withdraw info found. Please try again with lower buy amount.', `${default_lang.Exchange.exchange_toastr_title_bot_info}`);
}*/
} else {
if (mt_output_data.error == 'only one pending request at a time') {
toastr.error("Please wait " + JSON.stringify(mt_output_data.wait) + " seconds before trying to place your next order", default_lang.Exchange.exchange_tradingbot_toastr_trade_info_title);
} else {
toastr.error(mt_output_data.error, default_lang.Exchange.exchange_tradingbot_toastr_trade_info_title);
}
}
} else if (mt_output_data.result == 'success') {
var default_lang = JSON.parse(sessionStorage.getItem('mm_default_lang'));
toastr.success(default_lang.Exchange.exchange_order_executed, default_lang.Exchange.exchange_tradingbot_toastr_trade_info_title);
if (!mt_output_data.pending === false) {
toastr.info("Please wait " + JSON.stringify(mt_output_data.pending.timeleft) + " seconds before placing your next order", default_lang.Exchange.exchange_tradingbot_toastr_trade_info_title);
}
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
@ -3029,7 +3057,8 @@ function DepositOnError(deposit_data) {
var ajax_data = {"userpass":userpass,"method":"getcoin","coin": deposit_data.coin};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -3224,7 +3253,7 @@ function CheckOrderBookFn(sig) {
}
var coin = $('.trading_pair_coin2').selectpicker('val',coin);
console.log(coin);
console.log('trading_pair_coin2 is: ' + coin);
var buying_or_selling = $('input[name=trading_pair_options]:checked').val();
@ -3249,7 +3278,8 @@ function CheckOrderBookFn(sig) {
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";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
@ -3408,7 +3438,8 @@ function check_my_prices(sig){
var ajax_data = {"userpass":userpass,"method":"myprices"};
console.log(ajax_data)
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
@ -3417,7 +3448,7 @@ function check_my_prices(sig){
url: url
}).done(function(data) {
// If successful
console.log(data);
console.log('check_my_prices data: ' + JSON.stringify(data));
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
sessionStorage.setItem('mm_usercoins', JSON.stringify(data.coins));
@ -3487,7 +3518,8 @@ function cancel_my_prices(cancel_data){
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";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
@ -3691,7 +3723,8 @@ function coinBalanceReceiveAddr(coin) {
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"getcoin","coin": coin};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
@ -3751,7 +3784,8 @@ function coinBalanceSendFn(coin) {
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data0 = {"userpass":userpass,"method":"getcoin","coin": tx_coin};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data0),
@ -4091,7 +4125,8 @@ function create_sendtx(coin,tx_data){
console.log(ajax_data);
console.log(JSON.stringify(ajax_data));
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
@ -4154,7 +4189,8 @@ function update_min_max_price_input(){
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";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
@ -4207,7 +4243,8 @@ function check_bot_list(sig) {
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"bot_statuslist"};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
@ -4216,7 +4253,7 @@ function check_bot_list(sig) {
url: url
}).done(function(data) {
// If successful
console.log(data);
console.log('check_bot_list data: ' + JSON.stringify(data));
if (!data.userpass === false) {
console.log('first marketmaker api call execution after marketmaker started.')
@ -4338,7 +4375,8 @@ function buy_sell_precheck(bot_data){
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data0 = {"userpass":userpass,"method":"getcoin","coin": 'BTC'};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data0),
@ -4439,7 +4477,8 @@ function bot_buy_sell(bot_data) {
console.log(JSON.stringify(ajax_data));
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -4513,7 +4552,8 @@ function bot_sendrawtx(bot_sendrawtx_data) {
console.log(ajax_data);
console.log(JSON.stringify(ajax_data));
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
//dataType: 'json',
@ -4571,7 +4611,8 @@ function bot_stop_pause_resume(bot_data) {
}
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
@ -4606,7 +4647,8 @@ function bot_settings(bot_data) {
console.log(ajax_data);
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -4640,7 +4682,8 @@ function bot_status(bot_data) {
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"bot_status","botid":bot_data.botid};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
data: JSON.stringify(ajax_data),
dataType: 'json',
@ -4965,14 +5008,15 @@ function bot_screen_sellcoin_balance(sig) {
}
coin = $('.trading_pair_coin').selectpicker('val');
console.log(coin);
console.log('trading_pair_coin is: ' + coin);
var coin_name = return_coin_details(coin).name;
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"getcoin","coin": coin};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
@ -5083,7 +5127,8 @@ function bot_screen_coin_balance(sig) {
var userpass = sessionStorage.getItem('mm_userpass');
var ajax_data = {"userpass":userpass,"method":"getcoin","coin": coin};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
@ -5177,7 +5222,8 @@ function electrum_coin_balance(coin_balance_data) {
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/";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -5254,7 +5300,8 @@ function check_swap_status_details(swap_status_data) {
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/";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -5473,7 +5520,8 @@ function check_swap_status_details(swap_status_data) {
});
var swapdetail_blinker = null;
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
function blinker(sig) {
$.ajax({
async: true,
@ -5629,7 +5677,8 @@ function check_swap_status(sig) {
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"swapstatus","pending":0,"fast":1,"limit":30};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -5661,9 +5710,11 @@ function check_swap_status(sig) {
$('.exchange-swap-status-spinner').hide();
}*/
$('.exchange-swap-status-spinner').hide();
console.groupCollapsed('Swap Status Info');
$.each(reversed_swap_list, function(index, val) {
console.log(index);
console.log(val);
console.log(index); //swap #
console.log(val); //swap data
if(!val.error === false) {
var default_lang = JSON.parse(sessionStorage.getItem('mm_default_lang'));
var exchange_swap_status_tr = '';
@ -5735,6 +5786,8 @@ function check_swap_status(sig) {
$('.exchange_swap_status_tbl tbody').append(exchange_swap_status_tr);
}
})
console.groupEnd();
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
@ -5843,7 +5896,8 @@ function constructTradesHistory() {
var ajax_data = {"userpass":userpass,"method":"swapstatus"};
//var ajax_data = {"userpass":userpass,"method":"recentswaps","limit":100};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -6201,7 +6255,8 @@ function ZeroConfDeposit(deposit_weeks, deposit_amount) {
var ajax_data = {"userpass":userpass,"method":"instantdex_deposit","weeks":deposit_weeks,"amount":deposit_amount,"broadcast": 1};
var url = "http://127.0.0.1:7783";
console.log(ajax_data);
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
@ -6255,7 +6310,8 @@ function ZeroConfClaim() {
var mypubkey = sessionStorage.getItem('mm_mypubkey');
var ajax_data = {"userpass":userpass,"method":"instantdex_claim"};
var url = "http://127.0.0.1:7783";
var fName = arguments.callee.toString().match(/function ([^\(]+)/)[1]
console.warn(new Date().toLocaleTimeString() + " MM_CALL: " + fName);;
$.ajax({
async: true,
data: JSON.stringify(ajax_data),

234
gui/js/ipc-actions.js

@ -1,18 +1,31 @@
var CheckMM_Interval = null;
var CheckDefaultLogin_Interval = null;
const { ipcRenderer } = require('electron'),
dICO_coin = 'MNZ';
$(document).ready(function() {
var CheckMM_Interval = null,
CheckDefaultLogin_Interval = null;
// In renderer process (web page).
ShepherdIPC = function (data) {
// USING SYNCHRONOUS METHOD TO SEND AND RECIVE IPC COMMANDS/REPLIES
//console.log(ipcRenderer.sendSync('shepherd-commandSync', 'ping')) // prints "pong"
let shepherdreply = ipcRenderer.sendSync('shepherd-command', data);
return shepherdreply;
}
$(document).ready(function () {
BarterDEXInitLang();
setTimeout(function(){
setTimeout(function () {
var mypubkey = sessionStorage.getItem('mm_mypubkey');
if (mypubkey !== '739860d6114f01f8bae9e1132945c4d4523a423d97c3573b84d4caf9cb8f0c78') {
var loginstate = sessionStorage.getItem('mm_loginstate');
if (loginstate == null || loginstate == 'default') {
var shepherdresult = ShepherdIPC({"command":"login","passphrase":"default"});
sessionStorage.setItem('mm_mypubkey', "739860d6114f01f8bae9e1132945c4d4523a423d97c3573b84d4caf9cb8f0c78"); //Add default login pubkey to sessionStorage
var shepherdresult = ShepherdIPC({ "command": "login", "passphrase": "default" });
//Add default login pubkey to sessionStorage
sessionStorage.setItem('mm_mypubkey', "739860d6114f01f8bae9e1132945c4d4523a423d97c3573b84d4caf9cb8f0c78");
$('.mainbody').hide();
$('.loginbody').hide();
CheckMM_Interval = setInterval(CheckMMStatus,1000);
CheckMM_Interval = setInterval(CheckMMStatus, 1000);
$('.loadingbody').fadeIn();
} else if (loginstate == 'loggedout') {
$('.mainbody').hide();
@ -28,64 +41,7 @@ $(document).ready(function() {
});
// In renderer process (web page).
const {ipcRenderer} = require('electron')
const dICO_coin = 'MNZ';
ShepherdIPC = function(data) {
/*ipcRenderer.on('shepherd-reply', (event, arg) => {
console.log(arg) // prints "pong"
})
ipcRenderer.sendSync('shepherd-command', data)*/
// USING SYNCHRONOUS METHOD TO SEND AND RECIVE IPC COMMANDS/REPLIES
//console.log(ipcRenderer.sendSync('shepherd-commandSync', 'ping')) // prints "pong"
let shepherdreply = ipcRenderer.sendSync('shepherd-command', data);
//console.log(shepherdreply);
return shepherdreply;
}
$('.dexdashboard-btn').click(function(e){
e.preventDefault();
console.log('btn-exchangeclose clicked');
console.log($(this).data());
$('.navbar-right').children().removeClass('active');
$('.dexdashboard-btn').parent().addClass( "active" );
$('body').css('overflow', 'inherit');
$('.dextradeshistory').hide();
$('.dexdebug').hide();
$('.dexdebug-btn').show();
$('.dexlogout-btn').show();
$('.dexdebug-close-btn').hide();
$('.dextradeshistory-btn').show();
//$('.screen-coindashboard').show()
$('.screen-exchange').hide();
$('.screen-inventory').hide();
$('.screen-managecoins').hide();
$('.screen-portfolio').show();
CheckOrderBookFn(false);
check_swap_status(false);
check_bot_list(false);
check_my_prices(false);
bot_screen_coin_balance(false);
bot_screen_sellcoin_balance(false);
Refresh_active_StockChart(false);
//check_coin_balance_Interval = setInterval(check_coin_balance(),3000);
//check_coin_balance();
CheckPortfolioFn();
CheckPortfolio_Interval = setInterval(CheckPortfolioFn,60000);
});
$('.dextradeshistory-btn').click(function(e) {
$('.dextradeshistory-btn').click(function (e) {
$('.screen-portfolio').hide();
$('.screen-coindashboard').hide();
@ -93,10 +49,10 @@ $('.dextradeshistory-btn').click(function(e) {
$('.screen-inventory').hide();
$('.dexdebug').hide();
$('.screen-managecoins').hide();
$('.dextradeshistory').show();
$('.navbar-right').children().removeClass('active');
$('.dextradeshistory-btn').parent().addClass( "active" );
$('.dextradeshistory-btn').parent().addClass("active");
constructTradesHistory();
CheckPortfolioFn(false);
@ -109,7 +65,7 @@ $('.dextradeshistory-btn').click(function(e) {
check_coin_balance(false);
Refresh_active_StockChart(false);
/*if ($('.dextradeshistory').is(":visible")) {
$('body').css('overflow', 'inherit');
$('.dextradeshistory').hide();
@ -125,19 +81,19 @@ $('.dextradeshistory-btn').click(function(e) {
}*/
});
$('.dexlogout-btn').click(function(e) {
$('.dexlogout-btn').click(function (e) {
e.preventDefault();
//var shepherdresult = ShepherdIPC({"command":"logout"});
$('.mainbody').fadeOut();
$('.loadingbody').fadeIn();
$('.screen-managecoins').hide();
var login_data = {};
login_data.passphrase = 'default';
login_data.netid = 0;
login_data.seednode = '';
LoginWithPassphrase(login_data,'logout');
LoginWithPassphrase(login_data, 'logout');
CheckPortfolioFn(false);
CheckOrderBookFn(false);
@ -152,7 +108,7 @@ $('.dexlogout-btn').click(function(e) {
//sessionStorage.clear();
});
$('.dexdebug-btn').click(function(e) {
$('.dexdebug-btn').click(function (e) {
$('.navbar-right').children().removeClass('active');
$('.dexdebug').show();
//$('.dexlogout-btn').hide();
@ -169,7 +125,7 @@ $('.dexdebug-btn').click(function(e) {
$('.screen-managecoins').hide();
$('.navbar-right').children().removeClass('active');
$('.dexdebug-btn').parent().addClass( "active" );
$('.dexdebug-btn').parent().addClass("active");
CheckPortfolioFn(false);
@ -184,7 +140,7 @@ $('.dexdebug-btn').click(function(e) {
Refresh_active_StockChart(false);
});
$('.dexdebug-close-btn').click(function(e) {
$('.dexdebug-close-btn').click(function (e) {
$('.dexdebug').hide();
$('.dexdebug-btn').show();
$('.dexlogout-btn').show();
@ -195,7 +151,7 @@ $('.dexdebug-close-btn').click(function(e) {
$('.navbar-right').children().removeClass('active');
});
$('.login-genpass-btn').click(function(e){
$('.login-genpass-btn').click(function (e) {
e.preventDefault();
var default_lang = JSON.parse(sessionStorage.getItem('mm_default_lang'));
@ -229,14 +185,14 @@ $('.login-genpass-btn').click(function(e){
cancel: {
label: `${default_lang.Common.btn_close_smallcaps}`,
className: 'btn-default',
callback: function(){
callback: function () {
}
},
ok: {
label: `${default_lang.login.login_genpass_login_with_new_pass}`,
className: 'btn-primary btn_gen_pass_regenpass_login',
callback: function(){
callback: function () {
var pass_input1 = $('.btn_gen_pass_input1').val();
var pass_input2 = $('.btn_gen_pass_input2').val();
console.log(pass_input1);
@ -248,25 +204,25 @@ $('.login-genpass-btn').click(function(e){
}
}
});
login_gen_pass.init(function(){
login_gen_pass.init(function () {
console.log('dialog opened.')
$('.btn_gen_pass_regenpass_login').attr("disabled", "disabled");
$('.btn_gen_pass_input1').val(PassPhraseGenerator.generatePassPhrase(128));
$('.btn_gen_pass_regenpass').click(function(e){
$('.btn_gen_pass_regenpass').click(function (e) {
e.preventDefault();
console.log('btn_gen_pass_regenpass clicked');
$('.btn_gen_pass_input1').val(PassPhraseGenerator.generatePassPhrase(128));
})
$('.btn_gen_pass_input1').keyup(function() {
$('.btn_gen_pass_input1').keyup(function () {
var pass_input1 = $('.btn_gen_pass_input1').val();
var pass_input2 = $('.btn_gen_pass_input2').val();
//console.log(pass_input1);
//console.log(pass_input2);
if (pass_input1 !== pass_input2){
if (pass_input1 !== pass_input2) {
$('.btn_gen_pass_regenpass_login').attr("disabled", "disabled");
} else {
$('.btn_gen_pass_regenpass_login').removeAttr("disabled");
@ -274,14 +230,14 @@ $('.login-genpass-btn').click(function(e){
});
$('.btn_gen_pass_input2').keyup(function() {
$('.btn_gen_pass_input2').keyup(function () {
var pass_input1 = $('.btn_gen_pass_input1').val();
var pass_input2 = $('.btn_gen_pass_input2').val();
//console.log(pass_input1);
//console.log(pass_input2);
if (pass_input1 !== pass_input2){
if (pass_input1 !== pass_input2) {
$('.btn_gen_pass_regenpass_login').attr("disabled", "disabled");
} else {
$('.btn_gen_pass_regenpass_login').removeAttr("disabled");
@ -295,7 +251,7 @@ $('.login-genpass-btn').click(function(e){
});
$('.login-btn').click(function(e) {
$('.login-btn').click(function (e) {
e.preventDefault();
var login_data = {};
login_data.passphrase = $('.loginPassphrase').val();
@ -307,7 +263,7 @@ $('.login-btn').click(function(e) {
message: `<b>Net ID:</b> ${login_data.netid} <br>Net ID can not be bigger than 14420.`
});
} else {
LoginWithPassphrase(login_data,'login');
LoginWithPassphrase(login_data, 'login');
//var shepherdresult = ShepherdIPC({"command":"login","passphrase":passphrase});
$('.loginPassphrase').val('');
$('.mainbody').hide();
@ -329,11 +285,11 @@ $('.login-btn').click(function(e) {
});
$('.dexsettings-btn').click(function(e){
$('.dexsettings-btn').click(function (e) {
e.preventDefault();
var default_lang = JSON.parse(sessionStorage.getItem('mm_default_lang'));
var barterDEX_settings = ShepherdIPC({"command":"read_settings"});
var barterDEX_settings = ShepherdIPC({ "command": "read_settings" });
var dex_settings_bootbox = bootbox.dialog({
backdrop: true,
@ -383,24 +339,24 @@ $('.dexsettings-btn').click(function(e){
cancel: {
label: `${default_lang.Common.btn_close_smallcaps}`,
className: 'btn-default',
callback: function(){
callback: function () {
}
},
reset: {
label: `${default_lang.Settings.settings_reset_settings}`,
className: 'btn-warning btn_dex_reset_settings',
callback: function(){
ShepherdIPC({"command":"reset_settings"});
callback: function () {
ShepherdIPC({ "command": "reset_settings" });
sessionStorage.setItem('mm_tradingchart', 'show');
$('#trading_mode_options_trademanual').trigger('click');
setTimeout(function(){ BarterDEXSettingsFn(); }, 1000);
setTimeout(function(){ BarterDEXDefaultLangFn('en_US') }, 1000);
setTimeout(function () { BarterDEXSettingsFn(); }, 1000);
setTimeout(function () { BarterDEXDefaultLangFn('en_US') }, 1000);
}
},
ok: {
label: `${default_lang.Settings.settings_save_settings}`,
className: 'btn-primary btn_dex_save_settings',
callback: function(){
callback: function () {
var experimental_features = $('input[name=experimental_features]:checked').val();
var selected_theme = $('.settings_theme_select').selectpicker('val');
var selected_deflang = $('.settings_deflang_select').selectpicker('val');
@ -414,7 +370,7 @@ $('.dexsettings-btn').click(function(e){
if (barterDEX_settings.charts == 'hide') {
sessionStorage.setItem('mm_tradingchart', 'hide');
}
console.log(experimental_features);
if (experimental_features == 'enable') {
barterDEX_settings.experimentalFeatures = true;
@ -425,14 +381,14 @@ $('.dexsettings-btn').click(function(e){
}
console.log(barterDEX_settings);
ShepherdIPC({"command":"update_settings", "data":barterDEX_settings});
ShepherdIPC({ "command": "update_settings", "data": barterDEX_settings });
BarterDEXSettingsFn();
RefreshStockChartTheme(selected_theme);
if (barterDEX_settings.deflang == 'tlh_UNI') {
$('body').css('font-family',"'piqad', 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif");
RefreshStockChartTheme(selected_theme);
if (barterDEX_settings.deflang == 'tlh_UNI') {
$('body').css('font-family', "'piqad', 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif");
BarterDEXDefaultLangFn(selected_deflang);
} else {
$('body').css('font-family',"'Open Sans', 'Helvetica Neue', Helvetica, sans-serif");
$('body').css('font-family', "'Open Sans', 'Helvetica Neue', Helvetica, sans-serif");
BarterDEXDefaultLangFn(selected_deflang);
}
toastr.info(`${default_lang.Settings.settings_toastr_settings_update_processed}`, `${default_lang.Settings.settings_toastr_title}`);
@ -440,12 +396,12 @@ $('.dexsettings-btn').click(function(e){
}
}
});
dex_settings_bootbox.init(function(){
dex_settings_bootbox.init(function () {
$('.settings_theme_select').selectpicker('render');
$('.settings_deflang_select').html(GetListofAvailableLocalization());
$('.settings_deflang_select').selectpicker('render');
$('.settings_charts_status_select').selectpicker('render');
console.log('settings dialog opened.');
//var barterDEX_settings = ShepherdIPC({"command":"read_settings"});
@ -454,11 +410,11 @@ $('.dexsettings-btn').click(function(e){
$('.label_experimental_features_enable').removeClass('active');
$('.label_trading_pair_options_disable').addClass(' active');
$('#experimental_features_enable').removeAttr('checked');
$('#trading_pair_options_disable').attr('checked','checked');
$('#trading_pair_options_disable').attr('checked', 'checked');
} else {
$('.label_experimental_features_enable').addClass(' active');
$('.label_trading_pair_options_disable').removeClass('active');
$('#experimental_features_enable').attr('checked','checked');
$('#experimental_features_enable').attr('checked', 'checked');
$('#trading_pair_options_disable').removeAttr('checked');
}
if (barterDEX_settings.theme == 'dark') {
@ -479,7 +435,7 @@ $('.dexsettings-btn').click(function(e){
});
});
function loginBarterdEX(){
function loginBarterdEX() {
$('.navbar-brandname').html('BarterDEX');
$('.screen-portfolio').show();
$('.screen-coindashboard').hide();
@ -491,14 +447,14 @@ function loginBarterdEX(){
$('#trading_mode_options_trademanual').trigger('click');
$('#trading_mode_options_tradebot').removeAttr("checked");
$('#trading_mode_options_trademanual').attr('checked','checked');
$('#trading_mode_options_trademanual').attr('checked', 'checked');
//ManageDEXCoins();
}
function logindICO(coin){
function logindICO(coin) {
console.log('LOGIN TO dICO OPTION SEELCTED.')
console.log('COIN SELECTED: ' + coin)
var default_lang = JSON.parse(sessionStorage.getItem('mm_default_lang'));
$('.mainbody').hide();
$('.loginbody').hide();
@ -521,14 +477,14 @@ function logindICO(coin){
$('.screen-coindashboard').hide()
$('.screen-exchange').show();
$('.coin_ticker').html(coin);
$.each($('.coinexchange[data-coin]'), function(index, value) {
$.each($('.coinexchange[data-coin]'), function (index, value) {
$('.coinexchange[data-coin]').data('coin', coin);
});
CheckPortfolioFn(false);
CheckOrderBookFn();
CheckOrderbook_Interval = setInterval(CheckOrderBookFn,30000);
check_swap_status_Interval = setInterval(check_swap_status,20000);
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();
@ -543,7 +499,7 @@ function logindICO(coin){
$('#trading_mode_options_trademanual').trigger('click');
$('#trading_mode_options_tradebot').removeAttr("checked");
$('#trading_mode_options_trademanual').attr('checked','checked');
$('#trading_mode_options_trademanual').attr('checked', 'checked');
$('.trading_method_options').hide();
$('.trading_buysell_options').hide();
$('.trading_pair_coin_autoprice_mode_span').hide();
@ -551,31 +507,31 @@ function logindICO(coin){
$('#trading_pair_coin_price_max_min').html(`${default_lang.Exchange.exchange_lbl_one_max}`);
var charts_instruments_data = {}
charts_instruments_data.symbol = coin+'/KMD'
charts_instruments_data.symbol = coin + '/KMD'
charts_instruments_data.company = 'Komodo Platform';
ChartsInstruments(charts_instruments_data)
UpdateDexChart(coin, 'KMD');
}
CheckMMStatus = function(sig) {
CheckMMStatus = function (sig) {
if (sig == false) {
clearInterval(CheckMM_Interval);
} else {
console.log('Checking MarketMaker Status');
}
var mmstatus = ShepherdIPC({"command":"mmstatus"});
var mmstatus = ShepherdIPC({ "command": "mmstatus" });
if (mmstatus !== 'closed') {
console.log(mmstatus);
clearInterval(CheckMM_Interval);
CheckDefaultLogin_Interval = setInterval(CheckDefaultLogin,1000);
CheckDefaultLogin_Interval = setInterval(CheckDefaultLogin, 1000);
} else {
$('.mainbody').hide();
$('.loginbody').hide();
$('.loadingbody').fadeIn();
}
/*if (mmstatus !== 'closed') {
var userpass = sessionStorage.getItem('mm_userpass');
var mypubkey = sessionStorage.getItem('mm_mypubkey');
@ -604,7 +560,7 @@ CheckMMStatus = function(sig) {
}
CheckDefaultLogin = function(sig) {
CheckDefaultLogin = function (sig) {
if (sig == false) {
clearInterval(CheckDefaultLogin_Interval);
} else {
@ -661,7 +617,7 @@ CheckDefaultLogin = function(sig) {
}
LoginWithPassphrase = function(login_passphrase_data,action_mode) {
LoginWithPassphrase = function (login_passphrase_data, action_mode) {
console.log('Login using passphrase from Login form input');
//console.log(login_passphrase_data);
@ -671,8 +627,8 @@ LoginWithPassphrase = function(login_passphrase_data,action_mode) {
} else {
var userpass = '1d8b27b21efabcd96571cd56f91a40fb9aa4cc623d273c63bf9223dc6f8cd81f';
}
var ajax_data = {"userpass":userpass,"method":"passphrase","passphrase":login_passphrase_data.passphrase,"gui":"simplegui"};
var ajax_data = { "userpass": userpass, "method": "passphrase", "passphrase": login_passphrase_data.passphrase, "gui": "simplegui" };
if (login_passphrase_data.netid == 0) {
console.log(login_passphrase_data.netid);
@ -689,11 +645,11 @@ LoginWithPassphrase = function(login_passphrase_data,action_mode) {
$.ajax({
async: true,
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function(data) {
data: JSON.stringify(ajax_data),
dataType: 'json',
type: 'POST',
url: url
}).done(function (data) {
// If successful
console.log(data);
@ -707,8 +663,8 @@ LoginWithPassphrase = function(login_passphrase_data,action_mode) {
$('.loginbody').fadeOut();
$('.loadingbody').hide();
CheckPortfolio_Interval = setInterval(CheckPortfolioFn,60000);
ManageDEXCoins('enable',null);
CheckPortfolio_Interval = setInterval(CheckPortfolioFn, 60000);
ManageDEXCoins('enable', null);
CheckPortfolioFn();
}
@ -722,16 +678,16 @@ LoginWithPassphrase = function(login_passphrase_data,action_mode) {
}
}).fail(function(jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
}).fail(function (jqXHR, textStatus, errorThrown) {
// If fail
console.log(textStatus + ': ' + errorThrown);
});
}
function BarterDEXSettingsFn() {
var barterDEX_settings = ShepherdIPC({"command":"read_settings"});
var barterDEX_settings = ShepherdIPC({ "command": "read_settings" });
console.log(barterDEX_settings);
if (barterDEX_settings.experimentalFeatures == false) {
$('.btn-autogoalall').hide();
@ -760,22 +716,22 @@ function BarterDEXSettingsFn() {
function ManageDEXCoins(mng_coin_action,mng_coins_data) {
function ManageDEXCoins(mng_coin_action, mng_coins_data) {
console.log('DEX Coins Management function called.');
console.log(mng_coin_action);
//console.log(mng_coins_data);
var default_coins_list_array = [{coin: "KMD", electrum: false, method: "enable"}]
var default_coins_list_array = [{ coin: "KMD", electrum: false, method: "enable" }]
switch(mng_coin_action) {
switch (mng_coin_action) {
case 'enable':
if (JSON.parse(localStorage.getItem('mm_default_coins_list')) == null) {
localStorage.setItem('mm_default_coins_list', JSON.stringify(default_coins_list_array));
enable_disable_coin(default_coins_list_array[0])
} else {
var lstore_default_coins_list_array = JSON.parse(localStorage.getItem('mm_default_coins_list'));
$.each(lstore_default_coins_list_array, function(index, val) {
$.each(lstore_default_coins_list_array, function (index, val) {
console.log(index);
console.log(val);
enable_disable_coin(val);
@ -792,7 +748,7 @@ function ManageDEXCoins(mng_coin_action,mng_coins_data) {
case 'remove':
console.log(mng_coins_data);
var lstore_default_coins_list_array = JSON.parse(localStorage.getItem('mm_default_coins_list'));
lstore_default_coins_list_array = _.without(lstore_default_coins_list_array, _.findWhere(lstore_default_coins_list_array, {coin: mng_coins_data.coin}));
lstore_default_coins_list_array = _.without(lstore_default_coins_list_array, _.findWhere(lstore_default_coins_list_array, { coin: mng_coins_data.coin }));
console.log(lstore_default_coins_list_array);
localStorage.setItem('mm_default_coins_list', JSON.stringify(lstore_default_coins_list_array));
break;
@ -802,8 +758,8 @@ function ManageDEXCoins(mng_coin_action,mng_coins_data) {
enable_disable_coin(default_coins_list_array[0])
} else {
var lstore_default_coins_list_array = JSON.parse(localStorage.getItem('mm_default_coins_list'));
$.each(lstore_default_coins_list_array, function(index, val) {
$.each(lstore_default_coins_list_array, function (index, val) {
console.log(index);
console.log(val);
enable_disable_coin(val);

36
ipc/killmm.js

@ -1,13 +1,13 @@
const os = require('os');
const exec = require('child_process').exec;
const electron = require('electron');
const app = electron.app;
const os = require('os'),
exec = require('child_process').exec,
electron = require('electron'),
app = electron.app,
osPlatform = os.platform();
// kill rogue marketmaker copies on start
killMarketmaker = function(data, quit) {
killMarketmaker = function (data, quit) {
if (data == true) {
let marketmakerGrep;
const osPlatform = os.platform();
switch (osPlatform) {
case 'darwin':
@ -20,33 +20,21 @@ killMarketmaker = function(data, quit) {
marketmakerGrep = 'tasklist';
break;
}
exec(marketmakerGrep, function(error, stdout, stderr) {
exec(marketmakerGrep, function (error, stdout, stderr) {
if (stdout.indexOf('marketmaker') > -1) {
const pkillCmd = osPlatform === 'win32' ? 'taskkill /f /im marketmaker.exe' : 'pkill -15 marketmaker';
console.log('found another marketmaker process(es)');
exec(pkillCmd, function(error, stdout, stderr) {
exec(pkillCmd, function (error, stdout, stderr) {
console.log(`${pkillCmd} is issued`);
if (quit) {
app.quit();
}
if (error !== null) {
console.log(`${pkillCmd} exec error: ${error}`);
};
if (quit) { app.quit(); }
if (error !== null) { console.error(`${pkillCmd} exec error: ${error}`); };
});
} else {
if (quit) {
app.quit();
}
if (quit) { app.quit(); }
}
if (error !== null) {
console.log(`${marketmakerGrep} exec error: ${error}`);
};
if (error !== null) { console.error(`${marketmakerGrep} exec error: ${error}`); };
});
}
}

669
ipc/shepherd-ipc.js

@ -1,496 +1,351 @@
const electron = require('electron'),
app = electron.app,
BrowserWindow = electron.BrowserWindow,
path = require('path'),
url = require('url'),
os = require('os'),
osPlatform = os.platform(),
fsnode = require('fs'),
fs = require('fs-extra'),
mkdirp = require('mkdirp'),
exec = require('child_process').exec,
spawn = require('child_process').spawn,
portscanner = require('portscanner'),
fixPath = require('fix-path'),
numCPUs = require('os').cpus().length;
//ipc = require('electron').ipcMain;
Promise = require('bluebird');
app = electron.app,
BrowserWindow = electron.BrowserWindow,
path = require('path'),
url = require('url'),
os = require('os'),
osPlatform = os.platform(),
fsnode = require('fs'),
fs = require('fs-extra'),
mkdirp = require('mkdirp'),
exec = require('child_process').exec,
spawn = require('child_process').spawn,
portscanner = require('portscanner'),
fixPath = require('fix-path'),
numCPUs = require('os').cpus().length,
killmm = require('./killmm'),
_BarterDEXSettingsFile = `${BarterDEXDir}/settings.json`,
{ ipcMain } = require('electron');
var ps = require('ps-node'),
shepherd = '',
assetChainPorts = require('./ports.js');
shepherd = '',
assetChainPorts = require('./ports.js'),
BarterDEXBin,
BarterDEXDir;
const killmm = require('./killmm');
Promise = require('bluebird');
// SETTING OS DIR TO RUN MARKETMAKER FROM
// SETTING APP ICON FOR LINUX AND WINDOWS
if (os.platform() === 'darwin') {
fixPath();
var BarterDEXBin = path.join(__dirname, '../assets/bin/osx/marketmaker'),
BarterDEXDir = `${process.env.HOME}/Library/Application Support/BarterDEX`;
}
if (os.platform() === 'linux') {
var BarterDEXBin = path.join(__dirname, '../assets/bin/linux64/marketmaker'),
BarterDEXDir = `${process.env.HOME}/.BarterDEX`;
}
if (os.platform() === 'win32') {
var BarterDEXBin = path.join(__dirname, '../assets/bin/win64/marketmaker.exe');
BarterDEXBin = path.normalize(BarterDEXBin);
BarterDEXDir = `${process.env.APPDATA}/BarterDEX`;
BarterDEXDir = path.normalize(BarterDEXDir);
BarterDEXIcon = path.join(__dirname, '/assets/icons/barterdex/barterdex.ico');
switch (osPlatform) {
case "darwin":
fixPath();
BarterDEXBin = path.join(__dirname, '../assets/bin/osx/marketmaker');
BarterDEXDir = `${process.env.HOME}/Library/Application Support/BarterDEX`;
break;
case "linux":
BarterDEXBin = path.join(__dirname, '../assets/bin/linux64/marketmaker');
BarterDEXDir = `${process.env.HOME}/.BarterDEX`;
break;
case "win32":
BarterDEXBin = path.join(__dirname, '../assets/bin/win64/marketmaker.exe');
BarterDEXBin = path.normalize(BarterDEXBin);
BarterDEXDir = `${process.env.APPDATA}/BarterDEX`;
BarterDEXDir = path.normalize(BarterDEXDir);
BarterDEXIcon = path.join(__dirname, '/assets/icons/barterdex/barterdex.ico');
break;
}
// DEFAULT COINS LIST FOR MARKETMAKER
defaultCoinsListFile = path.join(__dirname, '../assets/coins.json');
// DEFAULT BARTERDEX SETTINGS FILE
defaultBarterDEXSettingsFile = path.join(__dirname, '../assets/settings.json');
//Make empty zeroconf log files if not there
fs.ensureFile(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`)
.then(() => {
console.log('success!')
fs.readJson(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`, (err, zconf_deposit_log) => {
if (err) console.error(err)
var isitjson = typeof zconf_deposit_log == 'object';
if (isitjson == false){
fs.appendFile(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`, `[]`, function (err) {
if (err) throw err;
console.log('ZeroConf deposit log updated!');
});
}
})
})
.catch(err => {
console.error(err);
.then(() => {
console.log('success!')
fs.readJson(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`, (err, zconf_deposit_log) => {
if (err) console.error(err)
var isitjson = typeof zconf_deposit_log == 'object';
if (isitjson == false) {
fs.appendFile(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`, `[]`, function (err) {
if (err) throw err;
console.log('ZeroConf deposit log updated!');
});
}
})
})
.catch(err => { console.error(err); })
fs.ensureFile(`${BarterDEXDir}/ZeroConf_Claim_logFile.log`)
.then(() => {
console.log('success!')
fs.readJson(`${BarterDEXDir}/ZeroConf_Claim_logFile.log`, (err, zconf_claim_log) => {
if (err) console.error(err)
.then(() => {
console.log('success!')
fs.readJson(`${BarterDEXDir}/ZeroConf_Claim_logFile.log`, (err, zconf_claim_log) => {
if (err) console.error(err)
var isitjson = typeof zconf_claim_log == 'object';
if (isitjson == false){
if (isitjson == false) {
fs.appendFile(`${BarterDEXDir}/ZeroConf_Claim_logFile.log`, `[]`, function (err) {
if (err) throw err;
console.log('ZeroConf claim log updated!');
});
}
})
})
})
.catch(err => {
console.error(err);
})
.catch(err => { console.error(err); })
const _BarterDEXSettingsFile = `${BarterDEXDir}/settings.json`;
fs.pathExists(_BarterDEXSettingsFile, (err, exists) => {
if (exists === true) {
console.log('barterdex settings file exist');
} else if (exists === false) {
console.log('barterdex settings file doesn\'t exist');
fs.copy(defaultBarterDEXSettingsFile, _BarterDEXSettingsFile)
.then(() => {
console.log('barterdex settings file copied!')
})
.catch(err => {
console.error(err)
})
}
if (err) {
console.log(err) // => null
}
if (exists === true) {
console.log('barterdex settings file exist');
} else if (exists === false) {
console.log('barterdex settings file doesn\'t exist');
fs.copy(defaultBarterDEXSettingsFile, _BarterDEXSettingsFile)
.then(() => { console.log('barterdex settings file copied!') })
.catch(err => { console.error(err) })
}
if (err) { console.error(err) } // => null
});
const {ipcMain} = require('electron');
/*ipcMain.on('shepherd-commandSync', (event, arg) => {
console.log(arg.command) // prints "ping"
event.returnValue = 'pong'
})*/
ipcMain.on('shepherd-command', (event, arg) => {
console.log(arg) // prints "ping"
switch (arg.command) {
case 'ping':
//event.sender.send('shepherd-reply', 'pong');
event.returnValue = 'pong'
break;
case 'login':
console.log(BarterDEXBin);
console.log(BarterDEXDir);
//event.sender.send('shepherd-reply', 'Logged In');
event.returnValue = 'Logged In';
//const _passphrase = 'scatter quote stumble confirm extra jacket lens abuse gesture soda rebel seed nature achieve hurt shoot farm middle venture fault mesh crew upset cotton';
StartMarketMaker({"passphrase":arg.passphrase});
break;
case 'logout':
killmm(true);
event.returnValue = 'Logged Out';
break;
case 'mmstatus':
portscanner.checkPortStatus(7783, '127.0.0.1', function(error, status) {
console.log(status)
//event.sender.send('shepherd-reply', status);
event.returnValue = status;
})
break;
case 'update_zeroconf_log':
//console.log(arg.data);
UpdateZeroConfLogs(arg.data);
event.returnValue = 'Zeroconf log updated';
break;
case 'read_zeroconf_log':
//console.log(arg.data);
if (arg.type == 'deposit') {
fs.readJson(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`)
.then(zconf_deposit_log_file => {
event.returnValue = zconf_deposit_log_file;
})
.catch(err => {
console.error(err)
})
}
if (arg.type == 'claim') {
fs.readJson(`${BarterDEXDir}/ZeroConf_Claim_logFile.log`)
.then(zconf_claim_log_file => {
event.returnValue = zconf_claim_log_file;
})
.catch(err => {
console.error(err)
})
}
break;
case 'remove_finished_swap_file':
//console.log(arg.data);
fs.remove(`${BarterDEXDir}/DB/SWAPS/${arg.requestid}-${arg.quoteid}.finished`)
.then(() => {
console.log('Removed: '+ `${BarterDEXDir}/DB/SWAPS/${arg.requestid}-${arg.quoteid}.finished`)
event.returnValue = 'removed';
})
.catch(err => {
console.error(err)
event.returnValue = 'error';
})
break;
case 'read_settings':
//console.log(arg.data);
fs.readJson(`${BarterDEXDir}/settings.json`)
.then(barterdex_settings_file_output => {
event.returnValue = barterdex_settings_file_output;
})
.catch(err => {
console.error(err)
})
break;
case 'update_settings':
//console.log(arg.data);
UpdateBarterDEXSettings(arg.data);
event.returnValue = 'BarterDEX settings updated';
break;
case 'reset_settings':
//console.log(arg.data);
fs.copy(defaultBarterDEXSettingsFile, _BarterDEXSettingsFile, { overwrite: true })
.then(() => {
console.log('barterdex settings file copied!')
})
.catch(err => {
console.error(err)
})
event.returnValue = 'reset_done';
break;
case 'app_info':
event.returnValue = app.getVersion();
break;
case 'get_lang_data':
console.log(arg.lang);
fs.readJson(path.join(__dirname, `../assets/languages/${arg.lang}.json`))
.then(barterdex_deflang_file_output => {
event.returnValue = barterdex_deflang_file_output;
})
.catch(err => {
console.error(err)
})
break;
case 'get_lang_file_list':
fs.readdir(path.join(__dirname, `../assets/languages/`),function(err,lang_files){
if(err) throw err;
console.log(lang_files);
event.returnValue = lang_files;
});
console.log('Shepard arg: ' + JSON.stringify(arg.command)) // prints arg
switch (arg.command) {
case 'ping':
event.returnValue = 'pong'
break;
case 'login':
console.log(BarterDEXBin + '\n' + BarterDEXDir);
event.returnValue = 'Logged In';
//const _passphrase = 'scatter quote stumble confirm extra jacket lens abuse gesture soda rebel seed nature achieve hurt shoot farm middle venture fault mesh crew upset cotton';
StartMarketMaker({ "passphrase": arg.passphrase });
break;
case 'logout':
killmm(true);
event.returnValue = 'Logged Out';
break;
case 'mmstatus':
portscanner.checkPortStatus(7783, '127.0.0.1', function (error, status) {
console.log(status)
event.returnValue = status;
})
break;
case 'update_zeroconf_log':
UpdateZeroConfLogs(arg.data);
event.returnValue = 'Zeroconf log updated';
break;
case 'read_zeroconf_log':
if (arg.type == 'deposit') {
fs.readJson(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`)
.then(zconf_deposit_log_file => { event.returnValue = zconf_deposit_log_file; })
.catch(err => { console.error(err) })
}
if (arg.type == 'claim') {
fs.readJson(`${BarterDEXDir}/ZeroConf_Claim_logFile.log`)
.then(zconf_claim_log_file => { event.returnValue = zconf_claim_log_file; })
.catch(err => { console.error(err) })
}
break;
case 'remove_finished_swap_file':
fs.remove(`${BarterDEXDir}/DB/SWAPS/${arg.requestid}-${arg.quoteid}.finished`)
.then(() => {
console.log('Removed: ' + `${BarterDEXDir}/DB/SWAPS/${arg.requestid}-${arg.quoteid}.finished`)
event.returnValue = 'removed';
})
.catch(err => {
console.error(err)
event.returnValue = 'error';
})
break;
case 'read_settings':
fs.readJson(`${BarterDEXDir}/settings.json`)
.then(barterdex_settings_file_output => { event.returnValue = barterdex_settings_file_output; })
.catch(err => { console.error(err) })
break;
case 'update_settings':
UpdateBarterDEXSettings(arg.data);
event.returnValue = 'BarterDEX settings updated';
break;
case 'reset_settings':
fs.copy(defaultBarterDEXSettingsFile, _BarterDEXSettingsFile, { overwrite: true })
.then(() => { console.log('barterdex settings file copied!') })
.catch(err => { console.error(err) })
event.returnValue = 'reset_done';
break;
case 'app_info':
event.returnValue = app.getVersion();
break;
case 'get_lang_data':
console.log(arg.lang);
fs.readJson(path.join(__dirname, `../assets/languages/${arg.lang}.json`))
.then(barterdex_deflang_file_output => {
event.returnValue = barterdex_deflang_file_output;
})
.catch(err => { console.error(err) })
break;
case 'get_lang_file_list':
fs.readdir(path.join(__dirname, `../assets/languages/`), function (err, lang_files) {
if (err) throw err;
console.log(lang_files);
event.returnValue = lang_files;
});
}
})
StartMarketMaker = function(data) {
//console.log(data.passphrase);
try {
fs.unlink(BarterDEXDir+'/coins.json');
// check if marketmaker instance is already running
portscanner.checkPortStatus(7783, '127.0.0.1', function(error, status) {
// Status is 'open' if currently in use or 'closed' if available
if (status === 'closed') {
const _coinsListFile = BarterDEXDir+'/coins.json'
fs.pathExists(_coinsListFile, (err, exists) => {
if (exists === true) {
console.log('file exist');
var coinslist_filedata = fs.readJsonSync(_coinsListFile, { throws: false });
data.coinslist = ProcessCoinsList(coinslist_filedata);
// data.coinslist is not used under Windows, if coins.json already exists
// it will be directly used by marketmaker
ExecMarketMaker(data);
} else if (exists === false) {
console.log('file doesn\'t exist');
fs.copy(defaultCoinsListFile, _coinsListFile)
.then(() => {
console.log('file copied!')
var coinslist_filedata = fs.readJsonSync(_coinsListFile, { throws: false });
data.coinslist = ProcessCoinsList(coinslist_filedata);
if (os.platform() === 'win32') {
// here we should write processed coin.json to it's location from where it will be use by marketmaker
/*
// ver.1
var json_to_write = JSON.stringify(data.coinslist);
//json_to_write = json_to_write.replace(/\\\\/g, "\\");
fs.writeFile(_coinsListFile, json_to_write, function(err) {
if(err) {
console.error(err);
}
});
*/
// ver.2
fs.writeJsonSync(_coinsListFile, data.coinslist);
}
ExecMarketMaker(data);
})
.catch(err => {
console.error(err)
})
}
if (err) {
console.log(err) // => null
}
})
} else {
console.log(`port 7783 marketmaker is already in use`);
}
});
} catch(e) {
console.log(`failed to start marketmaker err: ${e}`);
}
StartMarketMaker = function (data) {
try {
fs.unlink(BarterDEXDir + '/coins.json');
// check if marketmaker instance is already running
portscanner.checkPortStatus(7783, '127.0.0.1', function (error, status) {
// Status is 'open' if currently in use or 'closed' if available
if (status === 'closed') {
const _coinsListFile = BarterDEXDir + '/coins.json'
fs.pathExists(_coinsListFile, (err, exists) => {
if (exists === true) {
console.log('file exist');
var coinslist_filedata = fs.readJsonSync(_coinsListFile, { throws: false });
data.coinslist = ProcessCoinsList(coinslist_filedata);
// data.coinslist is not used under Windows, if coins.json already exists
// it will be directly used by marketmaker
ExecMarketMaker(data);
} else if (exists === false) {
console.log('file doesn\'t exist');
fs.copy(defaultCoinsListFile, _coinsListFile)
.then(() => {
console.log('file copied!')
var coinslist_filedata = fs.readJsonSync(_coinsListFile, { throws: false });
data.coinslist = ProcessCoinsList(coinslist_filedata);
if (os.platform() === 'win32') { fs.writeJsonSync(_coinsListFile, data.coinslist); } // ver.2
ExecMarketMaker(data);
})
.catch(err => { console.error(err) })
}
if (err) { console.error(err) } // => null
})
} else { console.error(`port 7783 marketmaker is already in use`); }
});
} catch (e) { console.error(`failed to start marketmaker err: ${e}`); }
}
let mmid;
ExecMarketMaker = function(data) {
//console.log(data);
// start marketmaker via exec
/*if (os.platform() === 'win32') {
const _customParam = {
'gui':'uglygui',
'client':1,
'userhome':`${process.env.APPDATA}`,
'passphrase': data.passphrase,
'coins': data.coinslist
};
}
else {
const _customParam = {
'gui':'uglygui',
'client':1,
'userhome':`${process.env.HOME}`,
'passphrase': data.passphrase,
'coins': data.coinslist
};
}*/
const _customParam = {
'gui':'simplegui',
'client':1,
'profitmargin': 0.01,
'userhome':`${process.env.HOME}`,
'passphrase': data.passphrase,
'coins': data.coinslist
};
//console.log(JSON.stringify(_customParam))
//console.log(`exec ${BarterDEXBin} ${JSON.stringify(_customParam)}`);
let params = _customParam;
if (osPlatform !== 'win32') {
params = JSON.stringify(_customParam);
params = `'${params}'`;
} else {
BarterDEXBin = '"'+BarterDEXBin+'"';
params.userhome = process.env.APPDATA;
if (!!params.coins) { // if not undefined and true
delete params.coins; // for Windows we should use coins.json file, and don't pass coins in command line
}
//console.log('[Decker] BarterDEXBin = '+BarterDEXBin+', BarterDEXDir = '+BarterDEXDir);
params = JSON.stringify(_customParam);
params = params.replace(/"/g, '\\"');
params = '"' + params +'"';
}
//console.log(`[Decker] exec ${BarterDEXBin} ${params}`);
/*var out = fs.openSync(`${BarterDEXDir}/out.log`, 'a');
var err = fs.openSync(`${BarterDEXDir}/out.log`, 'a');
var cp = require('child_process');
console.log(params);
console.log(BarterDEXBin);
var child = cp.spawn(BarterDEXBin, [params], { detached: true, stdio: [ 'ignore', out, err ] });
child.unref();*/
var logStream = fs.createWriteStream(`${BarterDEXDir}/logFile.log`, {flags: 'a'});
ExecMarketMaker = function (data) {
const _customParam = {
'gui': 'simplegui',
'client': 1,
'profitmargin': 0.01,
'userhome': `${process.env.HOME}`,
'passphrase': data.passphrase,
'coins': data.coinslist
};
let params = _customParam;
if (osPlatform !== 'win32') {
params = JSON.stringify(_customParam);
params = `'${params}'`;
} else {
BarterDEXBin = '"' + BarterDEXBin + '"';
params.userhome = process.env.APPDATA;
// if not undefined and true for Windows we should use coins.json file, and don't pass coins in command line
if (!!params.coins) { delete params.coins; }
params = JSON.stringify(_customParam);
params = params.replace(/"/g, '\\"');
params = '"' + params + '"';
console.log('mm start');
//console.log("[Decker] BarterDEXDir = '"+BarterDEXDir+"'");
console.log(`${BarterDEXBin} ${params}`)
mmid = exec(`${BarterDEXBin} ${params}`, {
cwd: BarterDEXDir,
maxBuffer: 1024 * 50000 // 50 mb
}, function(error, stdout, stderr) {
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
if (error !== null) {
console.log(`exec error: ${error}`);
/*if (error.toString().indexOf('using -reindex') > -1) {
cache.io.emit('service', {
'komodod': {
'error': 'run'
}
});
}*/
}
});
mmid.stdout.on('data', (data) => {
console.log(`child stdout:\n${data}`);
}).pipe(logStream);
}
mmid.stderr.on('data', (data) => {
console.error(`child stderr:\n${data}`);
}).pipe(logStream);
var logStream = fs.createWriteStream(`${BarterDEXDir}/logFile.log`, { flags: 'a' });
console.log('mm start\n' + `${BarterDEXBin} ${params}`)
mmid = exec(`${BarterDEXBin} ${params}`, {
cwd: BarterDEXDir,
maxBuffer: 1024 * 50000 // 50 mb
}, function (error, stdout, stderr) {
console.log(`stdout: ${stdout}`);
console.error(`stderr: ${stderr}`);
if (error !== null) { console.error(`exec error: ${error}`); }
});
mmid.stdout.on('data', (data) => { console.log(`child stdout:\n${data}`); }).pipe(logStream);
mmid.stderr.on('data', (data) => { console.error(`child stderr:\n${data}`); }).pipe(logStream);
}
UpdateZeroConfLogs = function(zeroconf_log_data) {
//console.log(zeroconf_log_data);
UpdateZeroConfLogs = function (zeroconf_log_data) {
if (zeroconf_log_data.type == 'deposit') {
fs.ensureFile(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`)
.then(() => {
console.log('success!')
fs.readJson(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`, (err, zconf_deposit_log) => {
if (err) console.error(err)
.then(() => {
console.log('success!')
fs.readJson(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`, (err, zconf_deposit_log) => {
if (err) console.error(err)
var isitjson = typeof zconf_deposit_log == 'object';
if (isitjson == false){
fs.appendFile(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`, `[`+zeroconf_log_data.logdata+`]`, function (err) {
if (isitjson == false) {
fs.appendFile(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`, `[` + zeroconf_log_data.logdata + `]`, function (err) {
if (err) throw err;
console.log('ZeroConf deposit log updated!');
});
} else {
console.log(zconf_deposit_log);
zconf_deposit_log.push(JSON.parse(zeroconf_log_data.logdata));
console.log('===============')
console.log(zconf_deposit_log);
console.log('===============\n' + zconf_deposit_log);
fs.writeJsonSync(`${BarterDEXDir}/ZeroConf_Deposit_logFile.log`, zconf_deposit_log, function (err) {
if (err) throw err;
console.log('ZeroConf deposit log updated!');
});
}
})
})
})
.catch(err => {
console.error(err);
})
.catch(err => { console.error(err); })
}
if (zeroconf_log_data.type == 'claim') {
fs.ensureFile(`${BarterDEXDir}/ZeroConf_Claim_logFile.log`)
.then(() => {
console.log('success!')
fs.readJson(`${BarterDEXDir}/ZeroConf_Claim_logFile.log`, (err, zconf_claim_log) => {
if (err) console.error(err)
.then(() => {
console.log('success!')
fs.readJson(`${BarterDEXDir}/ZeroConf_Claim_logFile.log`, (err, zconf_claim_log) => {
if (err) console.error(err)
var isitjson = typeof zconf_claim_log == 'object';
if (isitjson == false){
fs.appendFile(`${BarterDEXDir}/ZeroConf_Claim_logFile.log`, `[`+zeroconf_log_data.logdata+`]`, function (err) {
if (isitjson == false) {
fs.appendFile(`${BarterDEXDir}/ZeroConf_Claim_logFile.log`, `[` + zeroconf_log_data.logdata + `]`, function (err) {
if (err) throw err;
console.log('ZeroConf claim log updated!');
});
} else {
//console.log(zconf_claim_log);
JSON.parse(zeroconf_log_data.logdata)
zconf_claim_log.push(JSON.parse(zeroconf_log_data.logdata));
//console.log('===============')
//console.log(zconf_claim_log);
fs.writeJsonSync(`${BarterDEXDir}/ZeroConf_Claim_logFile.log`, zconf_claim_log, function (err) {
if (err) throw err;
console.log('ZeroConf claim log updated!');
});
}
})
})
})
.catch(err => {
console.error(err);
})
.catch(err => { console.error(err); })
}
}
UpdateBarterDEXSettings = function(settings_data) {
UpdateBarterDEXSettings = function (settings_data) {
console.log(settings_data);
fs.ensureFile(_BarterDEXSettingsFile)
.then(() => {
fs.writeJsonSync(_BarterDEXSettingsFile, settings_data, function (err) {
if (err) throw err;
console.log('ZeroConf claim log updated!');
});
})
.catch(err => {
console.error(err);
})
.then(() => {
fs.writeJsonSync(_BarterDEXSettingsFile, settings_data, function (err) {
if (err) throw err;
console.log('ZeroConf claim log updated!');
});
})
.catch(err => { console.error(err); })
}
function ProcessCoinsList(coins) {
if (os.platform() === 'darwin') {
fixPath();
coins = JSON.stringify(coins);
coins = coins.replace(/USERHOME/g, `${process.env.HOME}/Library/Application Support`);
coins = coins.replace(/\/\./g, '/');
coins = JSON.parse(coins);
return coins;
}
if (os.platform() === 'linux') {
coins = JSON.stringify(coins);
coins = coins.replace(/USERHOME/g, `${process.env.HOME}`);
coins = JSON.parse(coins);
return coins;
if (osPlatform === 'darwin') { fixPath(); };
coins = JSON.stringify(coins);
switch (osPlatform) {
case "darwin":
coins = coins.replace(/USERHOME/g, `${process.env.HOME}/Library/Application Support`);
coins = coins.replace(/\/\./g, '/');
break;
case "linux":
coins = coins.replace(/USERHOME/g, `${process.env.HOME}`);
break;
case "win32":
coins = coins.replace(/USERHOME/g, `${process.env.APPDATA}`);
coins = coins.replace(/\/\./g, '/');
coins = path.normalize(coins);
coins = coins.replace(/\\/g, "\\\\");
break;
}
coins = JSON.parse(coins);
return coins;
if (os.platform() === 'win32') {
coins = JSON.stringify(coins);
//console.log("\n\n[Decker #1] "+coins);
coins = coins.replace(/USERHOME/g, `${process.env.APPDATA}`);
coins = coins.replace(/\/\./g, '/');
coins = path.normalize(coins);
coins = coins.replace(/\\/g, "\\\\");
//console.log("\n\n[Decker #2] "+coins);
coins = JSON.parse(coins);
return coins;
}
}

57
main.js

@ -1,39 +1,31 @@
const electron = require('electron'),
app = electron.app,
BrowserWindow = electron.BrowserWindow,
path = require('path'),
url = require('url'),
os = require('os'),
spawn = require('child_process').spawn,
exec = require('child_process').exec,
{ Menu } = require('electron'),
portscanner = require('portscanner'),
osPlatform = os.platform(),
fixPath = require('fix-path'),
ipc = require('electron').ipcMain,
fs = require('fs-extra'),
mkdirp = require('mkdirp');
var shepherd = require('./ipc/shepherd-ipc');
const killmm = require('./ipc/killmm');
const appBasicInfo = {
name: 'BarterDEX',
version: '1.0.0-rc'
};
app = electron.app,
BrowserWindow = electron.BrowserWindow,
path = require('path'),
url = require('url'),
os = require('os'),
spawn = require('child_process').spawn,
exec = require('child_process').exec,
{ Menu } = require('electron'),
portscanner = require('portscanner'),
osPlatform = os.platform(),
fixPath = require('fix-path'),
ipc = require('electron').ipcMain,
fs = require('fs-extra'),
mkdirp = require('mkdirp'),
killmm = require('./ipc/killmm'),
appBasicInfo = {
name: 'BarterDEX',
version: '1.0.0-rc'
};
var shepherd = require('./ipc/shepherd-ipc'),
MNZdICOIcon;
app.setName(appBasicInfo.name);
app.setVersion(appBasicInfo.version);
if (osPlatform === 'linux') {
process.env.ELECTRON_RUN_AS_NODE = true;
// console.log(process.env);
}
var MNZdICOIcon;
if (os.platform() === 'linux') {
MNZdICOIcon = path.join(__dirname, '/assets/icons/barterdex/128x128.png');
}
if (os.platform() === 'win32') {
@ -47,7 +39,7 @@ let closeAppAfterLoading = false;
// be closed automatically when the JavaScript object is garbage collected.
let mainWindow
function createWindow (status) {
function createWindow(status) {
require(path.join(__dirname, 'private/mainmenu'));
// initialise window
@ -85,7 +77,6 @@ function createWindow (status) {
mainWindow.webContents.on('context-menu', (e, params) => { // context-menu returns params
const { selectionText, isEditable } = params; // params obj
if (isEditable) {
editMenu.popup(mainWindow);
} else if (selectionText && selectionText.trim() !== '') {
@ -123,9 +114,7 @@ app.on('window-all-closed', function () {
app.on('activate', function () {
// On OS X it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (mainWindow === null) {
createWindow()
}
if (mainWindow === null) { createWindow() }
})
// In this file you can include the rest of your app's specific main process

Loading…
Cancel
Save