Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <div class="section-header">
- <div class="container">
- <div class="row">
- <div class="col-md-12 text-left">
- <button class="btn btn-primary btn-xs" style="margin-top: 3px;" data-original-title="Asiapool used dedicated servers for best performance mining pool"
- data-placement="bottom" data-toggle="tooltip" type="button"><i class="fa fa-tasks"></i> <i class="icon-film"></i>Dedicated
- Server</button>
- <button class="btn btn-primary btn-xs" style="margin-top: 3px;" data-original-title="You can monitor your workers directly with realtime information"
- data-placement="bottom" data-toggle="tooltip" type="button"><i aria-hidden="true" class="fa fa-eye"></i>
- Realtime Statistic</button>
- <button class="btn btn-primary btn-xs" style="margin-top: 3px;" data-original-title="Asiapool uses a very low fees than the fees of other pools"
- data-placement="bottom" data-toggle="tooltip" type="button"><i aria-hidden="true" class="fa fa-money"></i>
- Low Fee</button>
- <button class="btn btn-primary btn-xs" style="margin-top: 3px;" data-original-title="Asiapool support of paymentId, integrated address and Subaddress allows to mine directly to an exchange"
- data-placement="bottom" data-toggle="tooltip" type="button"><i aria-hidden="true" class="fa fa-exchange"></i>
- Direct Mine to Exchange</button>
- <button class="btn btn-primary btn-xs" style="margin-top: 3px;" data-original-title="Asiapool support to set fixed difficulty on miner"
- data-placement="bottom" data-toggle="tooltip" type="button"><i aria-hidden="true" class="fa fa-bell"></i>
- Telegram Bot Notifications</button>
- <button class="btn btn-primary btn-xs" style="margin-top: 3px;" data-original-title="Asiapool support to set fixed difficulty on miner"
- data-placement="bottom" data-toggle="tooltip" type="button"><i aria-hidden="true" class="fa fa-lock"></i>
- DifficultyFixed</button>
- </div>
- </div>
- </div>
- </div>
- <div class="container">
- <div class="row">
- <div class="col-md-8">
- <h4>Pool News</h4>
- <div class="panel panel-primary borderleft">
- <div class="panel-body">
- <div class="scroll"></div>
- </div>
- </div>
- </div>
- <div class="col-md-4">
- <h4>Pool Community</h4>
- <div class="panel panel-primary borderleft">
- <div class="panel-body">
- <a class="btn btn-primary btn-xs" href="https://goo.gl/forms/9xxHY3IWR9g9EwFm1" style="margin-bottom: 5px; color:white;"
- target="_blank" type="button"><i aria-hidden="true" class="fa fa-pencil-square-o"></i> Request
- New Coin</a> <a class="btn btn-primary btn-xs" href="https://t.me/asiapoolmining" style="margin-bottom: 5px; color:white;"
- target="_blank" type="button"><i aria-hidden="true" class="fa fa-telegram"></i> Telegram Chat</a>
- <a class="btn btn-primary btn-xs" href="https://twitter.com/asiapool_io" style="margin-bottom: 5px; color:white;"
- target="_blank" type="button"><i aria-hidden="true" class="fa fa-twitter"></i> Follow Twitter</a>
- <a class="btn btn-primary btn-xs" href="https://discord.gg/7a34Xp8" style="margin-bottom: 5px; color:white;"
- target="_blank" type="button"><i aria-hidden="true" class="fa fa-hashtag"></i> Discord Chat</a>
- <a class="btn btn-primary btn-xs" href="http://asiapool.io/bios" style="margin-bottom: 5px; color:white;"
- target="_blank" type="button"><i aria-hidden="true" class="fa fa-microchip"></i> Bios Mod
- Collection</a>
- </div>
- </div>
- </div>
- </div>
- <div class="row" id="poolStats">
- <div class="col-md-4">
- <h4>Network</h4>
- <div class="bs-component">
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-tachometer"></i> Has Rate: <span class="text-primary" id="networkHashrate"></span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-clock-o"></i> Block Found: <span class="time"><span class="text-primary"
- id="networkLastBlockFound"></span></span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-lock"></i> Difficulty: <span class="text-primary" id="networkDifficulty"></span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-delicious"></i> Blockchain Height: <span class="text-primary" id="blockchainHeight"></span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-gift"></i> Last Reward: <span class="text-primary" id="networkLastReward"></span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-unlink"></i> Last Hash: <span class="value"><a id="lastHash"
- target="_blank"></a></span> <span class="time"><span class="small" id="networkLastBlockFound"></span></span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-hashtag"></i> Algorithm: <span class="text-primary" id="cnAlgorithm"></span></li>
- </ul>
- </div>
- </div>
- <div class="col-md-4">
- <h4>Our Pool</h4>
- <div class="component">
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-tachometer"></i> Has Rate: <span class="text-primary" id="poolHashrate"></span>
- <span class="small">(<span id="hashPower"></span>)</span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-clock-o"></i> Block Found: <span class="text-primary" id="blocksTotal"
- style="display:none !important"></span> <span class="text-primary" id="poolLastBlockFound"></span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-users"></i> Miner: <span class="text-primary" id="poolMiners"></span>
- <span><small>(<span id="poolWorkers"></span> <span>workers</span>)</small></span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-tags"></i> Pool Fee: <span class="text-primary" id="poolFee"></span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-history"></i> Block Found Every: <span class="text-primary" id="blockSolvedTime"></span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-star-half-o"></i> Current Effort: <span class="text-primary" id="currentEffort"></span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><i class="fa fa-money"></i> Min Payout: <span class="text-primary" id="paymentsMinimum"></span></li>
- </ul>
- </div>
- </div>
- <div class="col-md-4">
- <h4>Coin Price</h4>
- <div>
- <ul class="breadcrumb">
- <li class="active"><span>BTC:</span> <i class="fa fa-btc text-primary"></i> <span class="text-primary"
- id="coinPriceBTC">...</span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><span>USD:</span> <i class="fa fa-dollar text-primary"></i> <span class="text-primary"
- id="coinPriceUSD">...</span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><span>IDR:</span> <i class="fa fa-podcast text-primary"></i> <span class="text-primary"
- id="coinPriceIDR">...</span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><span>JPY:</span> <i class="fa fa-jpy text-primary"></i> <span class="text-primary"
- id="coinPriceJPY">...</span></li>
- </ul>
- <ul class="breadcrumb">
- <li class="active"><span>EUR:</span> <i class="fa fa-eur text-primary"></i> <span class="text-primary"
- id="coinPriceEUR">...</span></li>
- </ul>
- <div id="miningProfitCalc">
- <div id="calcHashHolder">
- <div class="input-group">
- <input class="form-control" id="calcHashRate" placeholder="Estimated Mining Profit" type="number">
- <span class="input-group-btn">
- <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" id="calcHashDropdown">
- <span id="calcHashUnit" data-mul="1">KH/s</span>
- <span class="caret"></span>
- </button>
- <ul class="dropdown-menu dropdown-menu-right" role="menu" id="calcHashUnits">
- <li>
- <a href="#" data-mul="0">H/s</a>
- </li>
- <li>
- <a href="#" data-mul="1">KH/s</a>
- </li>
- <li>
- <a href="#" data-mul="2">MH/s</a>
- </li>
- </ul>
- </span>
- </div>
- <span class="btn btn-default" id="calcHashResultsHolder" style="margin-top:18px;">
- <span id="calcHashAmount">
- <span data-toggle="tooltip" data-placement="left" data-original-title="Estimation Profit Per Day"><i
- class="fa fa-question-circle"></i></span> <span id="getcoin">0</span> | <span
- id="getusd">0</span> USD | <span id="getbtc">0</span> BTC
- </span>
- </span>
- </div>
- </div>
- </div>
- </div>
- </div>
- <br>
- <!-- Pool Charts -->
- <div class="row">
- <div class="col-md-4 poolChart">
- <h4>Pool HashRate</h4>
- <div class="panel panel-primary">
- <div class="panel-body" style="background: #8360c3; /* fallback for old browsers */ background: -webkit-linear-gradient(to right, #2ebf91, #8360c3); /* Chrome 10-25, Safari 5.1-6 */ background: linear-gradient(to right, #2ebf91, #8360c3); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ padding: 5px;">
- <div class="chart">
- <canvas id="chart_poolhashrate"></canvas><a class="chart-style"></a>
- </div>
- </div>
- </div>
- </div>
- <div class="col-md-4 poolChart">
- <h4>Network Difficulty</h4>
- <div class="panel panel-primary">
- <div class="panel-body" style="background: #a8c0ff; /* fallback for old browsers */ background: -webkit-linear-gradient(to right, #3f2b96, #a8c0ff); /* Chrome 10-25, Safari 5.1-6 */ background: linear-gradient(to right, #3f2b96, #a8c0ff); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ padding: 5px;">
- <div class="chart">
- <canvas id="chart_pooldiff"></canvas><a class="chart-style"></a>
- </div>
- </div>
- </div>
- </div>
- <div class="col-md-4 poolChart">
- <h4>Miner</h4>
- <div class="panel panel-primary">
- <div class="panel-body" style="background: #11998e; /* fallback for old browsers */ background: -webkit-linear-gradient(to right, #38ef7d, #11998e); /* Chrome 10-25, Safari 5.1-6 */ background: linear-gradient(to right, #38ef7d, #11998e); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ padding: 5px;">
- <div class="chart">
- <canvas id="chart_poolminers"></canvas><a class="chart-style"></a>
- </div>
- </div>
- </div>
- </div>
- </div><!-- Worker Stats -->
- <div class="row" id="workerStats">
- <div class="col-md-12" style="padding-bottom:20px;">
- <h4>Your Stats & Payment History</h4>
- <div class="input-group">
- <input class="form-control" id="yourStatsInput" placeholder="Enter Your Address" type="text">
- <span class="input-group-btn"><button class="btn btn-default" id="lookUp" type="button"><i class="fa fa-search"
- aria-hidden="true"></i> LOOKUP</button></span>
- </div>
- </div>
- <div class="text-center" id="addressError"></div>
- <div class="yourStats push-up-20">
- <div class="col-md-12">
- <h5>Account Overview</h5>
- </div>
- <div class="col-md-3 text-center">
- <div class="panel panel-primary">
- <div class="panel-heading">
- <i class="fa fa-money"></i> Pending Balance
- </div>
- <div class="panel-body">
- <abbr class="text-primary workerstatspool" id="yourPendingBalance" title="Total your coin for next payment interval"></abbr>
- </div>
- </div>
- </div>
- <div class="col-md-3 text-center">
- <div class="panel panel-primary">
- <div class="panel-heading">
- <i class="fa fa-smile-o"></i> Total Paid
- </div>
- <div class="panel-body">
- <abbr class="text-primary workerstatspool" id="yourPaid" title="Total coin already sent via payments"></abbr>
- </div>
- </div>
- </div>
- <div class="col-md-3 text-center">
- <div class="panel panel-primary">
- <div class="panel-heading">
- <i class="fa fa-dashboard"></i> Hash Rate
- </div>
- <div class="panel-body">
- <span class="text-primary workerstatspool" id="yourHashrateHolder"></span>
- </div>
- </div>
- </div>
- <div class="col-md-3 text-center">
- <div class="panel panel-primary">
- <div class="panel-heading">
- <i class="fa fa-cloud-download"></i> Total Shares
- </div>
- <div class="panel-body">
- <span class="text-primary workerstatspool" id="yourHashes"></span>
- </div>
- </div>
- </div>
- <div class="col-md-8">
- <h5>Realtime Mining Estimation <span data-toggle="tooltip" data-placement="right" data-original-title="Based on current difficulty"><i
- class="fa fa-question-circle"></i></span></h5>
- <div class="table-responsive">
- <table class="table table-bordered">
- <tbody>
- <tr>
- <td style="width:15%;"><i class="fa fa-clock-o"></i> Hourly</td>
- <td><abbr title="" id="hourlycoin">N/A</abbr> / <abbr title="" id="hourlycoinusd">0 USD</abbr>
- / <abbr title="" id="hourlycoinbtc">0 BTC</abbr> / <abbr title="" id="hourlycoinidr">0
- IDR</abbr></td>
- </tr>
- <tr>
- <td style="width:15%;"><i class="fa fa-clock-o"></i> Daily</td>
- <td><abbr title="" id="dailycoin">N/A</abbr> / <abbr title="" id="dailycoinusd">0 USD</abbr>
- / <abbr title="" id="dailycoinbtc">0 BTC</abbr> / <abbr title="" id="hourlycoinidr">0
- IDR</abbr></td>
- </tr>
- <tr>
- <td style="width:15%;"><i class="fa fa-clock-o"></i> Weekly</td>
- <td><abbr title="" id="weeklycoin">N/A</abbr> / <abbr title="" id="weeklycoinusd">0 USD</abbr>
- / <abbr title="" id="weeklycoinbyc">0 BTC</abbr> / <abbr title="" id="hourlycoinidr">0
- IDR</abbr></td>
- </tr>
- <tr>
- <td style="width:15%;"><i class="fa fa-clock-o"></i> Monthly</td>
- <td><abbr title="" id="monthlycoin">N/A</abbr> / <abbr title="" id="monthlycoinusd">0
- USD</abbr> / <abbr title="" id="monthlycoinbtc">0 BTC</abbr> / <abbr title=""
- id="hourlycoinidr">0 IDR</abbr></td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- <div class="col-md-4 text-center">
- <h5>Set Payment Treshold</h5>
- <div class="panel panel-primary">
- <div class="panel-heading">
- <i class="fa fa-pencil-square-o"></i> Your Treshold
- </div>
- <div class="panel-body">
- <abbr class="text-primary workerstatspool" id="yourPayoutRate" title=""></abbr> <span class="text-primary workerstatspool"
- id="coinSymbol"></span>
- <br>
- <div class="btn btn-primary btn-sm" style="margin-top:12px;margin-bottom:10px;">
- <i class="fa fa-gear"></i> <a href="#settings" style="color: #fff;" target="_blank">Set Up
- Min. Payment</a>
- </div>
- </div>
- </div>
- </div>
- <div class="col-md-6 yourStats">
- <h5>Your Hashrate Charts</h5>
- <div class="panel panel-default">
- <div class="panel-body userChart" style="background: #12c2e9; /* fallback for old browsers */ background: -webkit-linear-gradient(to right, #f64f59, #c471ed, #12c2e9); /* Chrome 10-25, Safari 5.1-6 */ background: linear-gradient(to right, #f64f59, #c471ed, #12c2e9); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ padding: 5px;">
- <div class="chart">
- <canvas id="chart_userhashrate"></canvas><a class="chart-style"></a>
- </div>
- </div>
- </div>
- </div>
- <div class="col-md-6 yourStats">
- <h5>Your Payments Charts</h5>
- <div class="panel panel-default">
- <div class="panel-body userChart" style="background: #11998e; /* fallback for old browsers */ background: -webkit-linear-gradient(to right, #38ef7d, #11998e); /* Chrome 10-25, Safari 5.1-6 */ background: linear-gradient(to right, #38ef7d, #11998e); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ padding: 5px;">
- <div class="chart">
- <canvas id="chart_userpayments"></canvas><a class="chart-style"></a>
- </div>
- </div>
- </div>
- </div>
- <div class="col-md-12">
- <h5>Your Workers</h5>
- <div class="table-responsive" id="workersReport">
- <table class="table table-bordered">
- <thead>
- <tr>
- <th class="col1 sort"><span>Status</span> <i class="fa fa-sort"></i></th>
- <th class="col2 sort"><span>Worker Name</span> <i class="fa fa-sort"></i></th>
- <th class="col3 sort"><span>Hash Rate</span> <i class="fa fa-sort"></i></th>
- <th class="col4 sort"><span>Last Share Submitted</span> <i class="fa fa-sort"></i></th>
- <th class="col5 sort"><span>Share Submitted</span> <i class="fa fa-sort"></i></th>
- </tr>
- </thead>
- <tbody id="workersReport_rows"></tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="col-md-12">
- <div class="yourStats">
- <h5>Your Payments</h5>
- <div class="table-responsive" id="workerPayments">
- <table class="table table-bordered">
- <thead>
- <tr>
- <th class="col1"><span>Time Sent</span></th>
- <th class="col2"><span>Transaction Hash</span></th>
- <th class="col3"><span>Amount</span></th>
- <th class="col4"><span>Mixin</span></th>
- </tr>
- </thead>
- <tbody id="paymentsReport_rows"></tbody>
- </table>
- </div>
- </div>
- <p class="yourStats text-center push-up-10"><button class="btn btn-default" id="loadMorePayments" type="button"><span>Load
- More</span></button></p>
- </div>
- </div>
- </div>
- <script>
- // Tooltip
- $(document).ready(function () {
- $('[data-toggle="tooltip"]').tooltip();
- });
- // Coin PRICES
- $.ajax({
- url: CoinPriceAPI,
- dataType: 'json',
- cache: 'false'
- }).done(function (data) {
- CoinPrice = data;
- updateText('coinPriceBTC', CoinPrice.BTC);
- updateText('coinPriceUSD', CoinPrice.USD);
- updateText('coinPriceIDR', CoinPrice.IDR);
- updateText('coinPriceJPY', CoinPrice.JPY);
- updateText('coinPriceEUR', CoinPrice.EUR);
- updateText('lastrewardusd', parseFloat(getReadableCoins(lastStats.lastblock.reward * CoinPrice.USD)).toFixed(
- 2));
- });
- // Charts initialized
- var chartsInitialized = false;
- var intervalChartsUpdate;
- var userChartsData2 = null;
- var chartsInitialized2 = false;
- var xhrAddressPoll;
- var addressTimeout;
- // Update current page
- currentPage = {
- destroy: function () {
- calcEstimateProfit();
- $('#networkLastBlockFound,#poolLastBlockFound').timeago('dispose');
- if (chartsInitialized) {
- chartsInitialized = false;
- clearInterval(intervalChartsUpdate);
- }
- },
- update: function () {
- $('#networkLastBlockFound').timeago('update', new Date(lastStats.lastblock.timestamp * 1000).toISOString());
- updateText('networkHashrate', getReadableHashRateString(lastStats.network.difficulty / lastStats.config
- .coinDifficultyTarget) + '/sec');
- updateText('networkDifficulty', getReadableDiffString(lastStats.network.difficulty));
- updateText('coinSymbol', lastStats.config.symbol);
- updateText('blockchainHeight', formatNumber(lastStats.network.height.toString(), ' '));
- updateText('lastHash', (lastStats.lastblock.hash).substring(0, 13) + '...').setAttribute('href',
- getBlockchainUrl(lastStats.lastblock.hash));
- if (lastStats.config.networkFee) {
- var networkFeePercent = lastStats.config.networkFee / 100;
- updateText('networkLastReward', getReadableCoins(lastStats.lastblock.reward - (lastStats.lastblock
- .reward * networkFeePercent)));
- } else {
- updateText('networkLastReward', getReadableCoins(lastStats.lastblock.reward));
- }
- updateText('poolHashrate', getReadableHashRateString(lastStats.pool.hashrate) + '/sec');
- updateText('blocksTotal', lastStats.pool.totalBlocks.toString());
- var hashPower = lastStats.pool.hashrate / (lastStats.network.difficulty / lastStats.config.coinDifficultyTarget) *
- 100;
- updateText('hashPower', hashPower.toFixed(2) + '%');
- if (lastStats.pool.lastBlockFound) {
- var d = new Date(parseInt(lastStats.pool.lastBlockFound)).toISOString();
- $('#poolLastBlockFound').timeago('update', d);
- } else {
- $('#poolLastBlockFound').removeAttr('title').data('ts', '').update('Never');
- }
- updateText('poolMiners', lastStats.pool.miners.toString());
- updateText('poolWorkers', lastStats.pool.workers.toString());
- var totalFee = lastStats.config.fee;
- if (Object.keys(lastStats.config.donation).length) {
- var totalDonation = 0;
- for (var i in lastStats.config.donation) {
- totalDonation += lastStats.config.donation[i];
- }
- totalFee += totalDonation;
- }
- updateText('poolFee', (totalFee > 0 && totalFee != 100 ? floatToString(totalFee) - 1 : (totalFee ==
- 100 ? '100' : '0')) + '%');
- updateText('paymentsInterval', getReadableTime(lastStats.config.paymentsInterval));
- updateText('paymentsMinimum', getReadableCoins(lastStats.config.minPaymentThreshold));
- updateText('blockSolvedTime', getReadableTime(lastStats.network.difficulty / lastStats.pool.hashrate));
- updateText('currentEffort', (lastStats.pool.roundHashes / lastStats.network.difficulty * 100).toFixed(
- 1) + '%');
- if (lastStats.charts && !chartsInitialized) {
- intervalChartsUpdate = setInterval(createCharts, 60 * 1000);
- createCharts();
- chartsInitialized = true;
- }
- // CN Algorithm
- var cnAlgorithm = lastStats.config.cnAlgorithm || "cryptonight";
- var cnVariant = lastStats.config.cnVariant || 0;
- algorithm = '';
- xmrstakAlgo = '';
- if (cnAlgorithm == "cryptonight_light") {
- if (cnVariant === 1) {
- algorithm = 'Cryptonight Light (Aeon v7)';
- xmrstakAlgo = 'cryptonight_lite_v7';
- } else if (cnVariant === 2) {
- algorithm = 'Cryptonight Light (IPBC)';
- xmrstakAlgo = 'cryptonight_lite_v7_xor';
- } else {
- algorithm = 'Cryptonight Light (Original)';
- xmrstakAlgo = 'cryptonight_lite';
- }
- } else if (cnAlgorithm == "cryptonight_heavy") {
- algorithm = 'Cryptonight Heavy';
- xmrstakAlgo = 'cryptonight_heavy';
- } else {
- if (cnVariant === 1) {
- algorithm = 'Cryptonight (Monero v7)';
- xmrstakAlgo = 'cryptonight_v7';
- } else if (cnVariant === 3) {
- algorithm = 'Cryptonight (Stellite v7)';
- xmrstakAlgo = 'cryptonight_v7_stellite';
- } else if (cnVariant === 4) {
- algorithm = 'Cryptonight Fast (Masari)';
- xmrstakAlgo = 'cryptonight_masari';
- } else {
- algorithm = 'Cryptonight (Saber)';
- xmrstakAlgo = 'cryptonight_bittube';
- }
- }
- updateText('cnAlgorithm', algorithm);
- updateText('xmrstakAlgo', xmrstakAlgo);
- }
- };
- // Enable timeago on last block found
- $('#networkLastBlockFound,#poolLastBlockFound').timeago();
- /**
- * Charts
- **/
- // Create charts
- function createCharts() {
- if (!lastStats || !lastStats.charts) return;
- var data = lastStats.charts;
- var graphData = {
- poolhashrate: getGraphData(data.hashrate),
- pooldiff: getGraphData(data.difficulty),
- poolminers: getGraphData(data.miners),
- };
- for (var graphType in graphData) {
- if (graphData[graphType].values.length > 1) {
- var $chart = $('#chart_' + graphType);
- var bgcolor = null,
- bordercolor = null,
- borderwidth = null;
- var colorelem = $chart.siblings('a.chart-style');
- if (colorelem.length == 1) {
- bgcolor = colorelem.css('background-color');
- bordercolor = colorelem.css('border-left-color');
- borderwidth = parseFloat(colorelem.css('width'));
- }
- if (bgcolor === null) bgcolor = 'rgba(3, 169, 244, .4)';
- if (bordercolor === null) bordercolor = '#03a9f4';
- if (borderwidth === null || isNaN(borderwidth)) borderwidth = 1;
- var chartObj = new Chart(document.getElementById('chart_' + graphType), {
- type: 'line',
- data: {
- labels: graphData[graphType].names,
- datasets: [{
- data: graphData[graphType].values,
- dataType: graphType,
- fill: true,
- backgroundColor: bgcolor,
- borderColor: bordercolor,
- borderWidth: borderwidth
- }]
- },
- options: {
- animation: false,
- responsive: true,
- maintainAspectRatio: false,
- legend: {
- display: false
- },
- elements: {
- point: {
- radius: 0,
- hitRadius: 10,
- hoverRadius: 5
- }
- },
- scales: {
- xAxes: [{
- display: false,
- ticks: {
- display: false
- },
- gridLines: {
- display: false
- }
- }],
- yAxes: [{
- display: false,
- ticks: {
- display: false,
- beginAtZero: true,
- userCallback: function (label, index, labels) {
- if (Math.floor(label) === label) return label;
- }
- },
- gridLines: {
- display: false
- }
- }]
- },
- layout: {
- padding: {
- top: 5,
- left: 0,
- right: 0,
- bottom: 0
- }
- },
- tooltips: {
- callbacks: {
- label: function (tooltipItem, data) {
- var dataType = data.datasets[tooltipItem.datasetIndex].dataType || '';
- var label = tooltipItem.yLabel;
- if (dataType == 'poolhashrate') label = getReadableHashRateString(
- tooltipItem.yLabel) + '/sec';
- else if (dataType == 'pooldiff') label = getReadableDiffString(
- tooltipItem.yLabel);
- else if (dataType == 'poolminers') label = (tooltipItem.yLabel) + ' ' +
- 'miner';
- else label = formatNumber(tooltipItem.yLabel.toString(), ' ');
- return ' ' + label;
- }
- }
- }
- }
- });
- $chart.closest('.poolChart').show();
- }
- }
- }
- // Get chart data
- function getGraphData(rawData) {
- var graphData = {
- names: [],
- values: []
- };
- if (rawData) {
- for (var i = 0, xy; xy = rawData[i]; i++) {
- graphData.names.push(new Date(xy[0] * 1000).toLocaleString());
- graphData.values.push(xy[1]);
- }
- }
- return graphData;
- }
- // Ambil News
- $(document).ready(function () {
- $.getJSON("https://admin-asiapool.club/api/news", function (data) {
- var items = [];
- $.each(data, function (key, val) {
- items.push(
- `
- <p>
- <span class="label label-success">${ val.published }</span>
- <span class="text-primary">
- <a href="${ val.url }" target="_blank">${ val.name }</a>
- </span>
- ${ val.content }
- </p>
- `
- );
- });
- $("<div/>", {
- "class": "news-list",
- html: items.join("")
- }).appendTo(".scroll");
- });
- })
- /**
- * Miner statistics
- **/
- // Enable time ago on last submitted share
- $('#yourLastShare').timeago();
- // Load current miner statistics
- function fetchAddressStats(longpoll) {
- var address = getCurrentAddress();
- xhrAddressPoll = $.ajax({
- url: api + '/stats_address',
- data: {
- address: address,
- longpoll: longpoll
- },
- dataType: 'json',
- cache: 'false',
- success: function (data) {
- if (!data.stats) {
- $('.yourStats, .yourWorkers, .userChart').hide();
- $('#addressError').text(data.error).show();
- docCookies.setItem('mining_address', '', Infinity);
- loadLiveStats(true);
- return;
- }
- $('#addressError').hide();
- if (data.stats.lastShare) {
- $('#yourLastShare').timeago('update', new Date(parseInt(data.stats.lastShare) * 1000).toISOString());
- } else {
- updateText('yourLastShare', 'Never');
- }
- updateText('yourHashrateHolder', (getReadableHashRateString(data.stats.hashrate) || '0 H') +
- '/sec');
- updateText('yourHashes', getReadableDiffString(data.stats.hashes || 0).toString());
- updateText('yourPaid', getReadableCoins(data.stats.paid));
- updateText('yourPendingBalance', getReadableCoins(data.stats.balance));
- // Mining estimation coin
- var profits = (data.stats.hashrate * 3600 / lastStats.network.difficulty * lastStats.lastblock
- .reward)
- var profits1 = (data.stats.hashrate * 86400 / lastStats.network.difficulty * lastStats.lastblock
- .reward)
- var profits2 = (data.stats.hashrate * 7 * 86400 / lastStats.network.difficulty * lastStats.lastblock
- .reward)
- var profits3 = (data.stats.hashrate * 30 * 86400 / lastStats.network.difficulty * lastStats
- .lastblock.reward)
- if (profits) {
- updateText('hourlycoin', getReadableCoins(profits));
- updateText('dailycoin', getReadableCoins(profits1));
- updateText('weeklycoin', getReadableCoins(profits2));
- updateText('monthlycoin', getReadableCoins(profits3));
- }
- var userRoundHashes = parseInt(data.stats.roundHashes || 0);
- var poolRoundHashes = parseInt(lastStats.pool.roundHashes || 0);
- var userRoundScore = parseFloat(data.stats.roundScore || 0);
- var poolRoundScore = parseFloat(lastStats.pool.roundScore || 0);
- var lastReward = parseFloat(lastStats.lastblock.reward || 0);
- var poolFee = lastStats.config.fee;
- if (Object.keys(lastStats.config.donation).length) {
- var totalDonation = 0;
- for (var i in lastStats.config.donation) {
- totalDonation += lastStats.config.donation[i];
- }
- poolFee += totalDonation;
- }
- var transferFee = lastStats.config.transferFee;
- var share_pct = userRoundHashes * 100 / poolRoundHashes;
- var score_pct = userRoundScore * 100 / poolRoundScore;
- if (!lastStats.config.slushMiningEnabled) {
- $('#slush_round_info').hide();
- }
- renderPayments(data.payments);
- if (data.workers && data.workers.length > 0) {
- renderWorkers(data.workers);
- $('.yourWorkers').show();
- }
- $('.yourStats').show();
- if (data.charts) {
- userChartsData2 = data.charts;
- if (!chartsInitialized2) {
- intervalChartsUpdate = setInterval(createCharts2, 60 * 1000);
- createCharts2();
- chartsInitialized2 = true;
- }
- }
- fetchAddressStats(true);
- $.ajax({
- url: 'https://tradeogre.com/api/v1/ticker/btc-tube',
- dataType: 'json',
- cache: 'false',
- success: function (data) {
- pbtc = data.price * getReadableCoins(profits).replace(' TUBE', '');
- pbtc1 = data.price * getReadableCoins(profits1).replace(' TUBE', '');
- pbtc2 = data.price * getReadableCoins(profits2).replace(' TUBE', '');
- pbtc3 = data.price * getReadableCoins(profits3).replace(' TUBE', '');
- $('#hourlycoinbtc').text(pbtc + ' BTC');
- $('#dailycoinbtc').text(pbtc1 + ' BTC');
- $('#weeklycoinbtc').text(pbtc2 + ' BTC');
- $('#monthlycoinbtc').text(pbtc3 + ' BTC');
- $.ajax({
- url: 'https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=IDR',
- dataType: 'json',
- cache: 'false',
- success: function (data) {
- $('#hourlycoinidr').text((data.IDR * pbtc) + ' IDR');
- $('#dailycoinidr').text((data.IDR * pbtc1) + ' IDR');
- $('#weeklycoinidr').text((data.IDR * pbtc2) + ' IDR');
- $('#monthlycoinidr').text((data.IDR * pbtc3) + ' IDR');
- }
- });
- $.ajax({
- url: 'https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD',
- dataType: 'json',
- cache: 'false',
- success: function (data) {
- $('#hourlycoinusd').text((data.USD * pbtc) + ' USD');
- $('#dailycoinusd').text((data.USD * pbtc1) + ' USD');
- $('#weeklycoinusd').text((data.USD * pbtc2) + ' USD');
- $('#monthlycoinusd').text((data.USD * pbtc3) + ' USD');
- }
- });
- }
- });
- },
- error: function (e) {
- if (e.statusText === 'abort') return;
- $('#addressError').text('Connection error').show();
- if (addressTimeout) clearTimeout(addressTimeout);
- addressTimeout = setTimeout(function () {
- fetchAddressStats(false);
- }, 2000);
- }
- });
- }
- // Click on lookup button
- $('#lookUp').click(function () {
- var address = $('#yourStatsInput').val().trim();
- if (getCurrentAddress() != address) {
- docCookies.setItem('mining_address', address, Infinity);
- var urlWalletAddress = location.search.split('wallet=')[1] || 0;
- if (urlWalletAddress) {
- window.location.href = "/#worker_stats";
- return;
- } else {
- docCookies.setItem('mining_address', address, Infinity);
- loadLiveStats(true);
- }
- }
- $('#addressError, .yourStats, .yourWorkers, .userChart').hide();
- $('#workersReport_rows').empty();
- $('#paymentsReport_rows').empty();
- $('#lookUp > span:first-child').hide();
- $('#lookUp > span:last-child').show();
- if (xhrAddressPoll) xhrAddressPoll.abort();
- if (addressTimeout) clearTimeout(addressTimeout);
- $('#lookUp > span:last-child').hide();
- $('#lookUp > span:first-child').show();
- if (!address) {
- $('#yourStatsInput').focus();
- return;
- }
- fetchAddressStats(false);
- });
- // Lookup if current address is known
- var address = getCurrentAddress();
- if (address) {
- $('#yourStatsInput').val(address);
- $('#lookUp').click();
- }
- // Handler enter key on lookup address text field
- $('#yourStatsInput').keyup(function (e) {
- if (e.keyCode === 13)
- $('#lookUp').click();
- });
- /**
- * Charts
- **/
- // Create charts
- function createCharts2() {
- if (!userChartsData2) return;
- var data = userChartsData2;
- var graphData2 = {
- userhashrate: getGraphData(data.hashrate),
- userpayments: getGraphData(data.payments)
- };
- for (var graphType in graphData2) {
- if (graphData2[graphType].values.length > 1) {
- var $chart = $('#chart_' + graphType);
- var bgcolor = null,
- bordercolor = null,
- borderwidth = null;
- var colorelem = $chart.siblings('a.chart-style');
- if (colorelem.length == 1) {
- bgcolor = colorelem.css('background-color');
- bordercolor = colorelem.css('border-left-color');
- borderwidth = parseFloat(colorelem.css('width'));
- }
- if (bgcolor === null) bgcolor = 'rgba(3, 169, 244, .4)';
- if (bordercolor === null) bordercolor = '#03a9f4';
- if (borderwidth === null || isNaN(borderwidth)) borderwidth = 1;
- var chartObj = new Chart(document.getElementById('chart_' + graphType), {
- type: 'line',
- data: {
- labels: graphData2[graphType].names,
- datasets: [{
- data: graphData2[graphType].values,
- dataType: graphType,
- fill: true,
- backgroundColor: bgcolor,
- borderColor: bordercolor,
- borderWidth: borderwidth
- }]
- },
- options: {
- animation: false,
- responsive: true,
- maintainAspectRatio: false,
- legend: {
- display: false
- },
- elements: {
- point: {
- radius: 0,
- hitRadius: 10,
- hoverRadius: 5
- }
- },
- scales: {
- xAxes: [{
- display: false,
- ticks: {
- display: false
- },
- gridLines: {
- display: false
- }
- }],
- yAxes: [{
- display: false,
- ticks: {
- display: false,
- beginAtZero: true,
- userCallback: function (label, index, labels) {
- if (Math.floor(label) === label) return label;
- }
- },
- gridLines: {
- display: false
- }
- }]
- },
- layout: {
- padding: {
- top: 10,
- left: 0,
- right: 0,
- bottom: 0
- }
- },
- tooltips: {
- callbacks: {
- label: function (tooltipItem, data) {
- var dataType = data.datasets[tooltipItem.datasetIndex].dataType || '';
- var label = tooltipItem.yLabel;
- if (dataType == 'userhashrate') label = getReadableHashRateString(
- tooltipItem.yLabel) + '/sec';
- else if (dataType == 'userpayments') label = getReadableCoins(
- tooltipItem.yLabel);
- return ' ' + label;
- }
- }
- }
- }
- });
- $chart.closest('.userChart').show();
- }
- }
- }
- // Get chart data
- function getGraphData(rawData, fixValueToCoins) {
- var graphData2 = {
- names: [],
- values: []
- };
- if (rawData) {
- for (var i = 0, xy; xy = rawData[i]; i++) {
- graphData2.names.push(new Date(xy[0] * 1000).toLocaleString());
- graphData2.values.push(xy[1]);
- }
- }
- return graphData2;
- }
- /**
- * Workers report
- **/
- // Get worker row id
- function getWorkerRowId(workerName) {
- var id = btoa(workerName);
- id = id.replace(/=/, '');
- return id;
- }
- // Get worker row element
- function getWorkerRowElement(worker, jsonString) {
- var row = document.createElement('tr');
- row.setAttribute('data-json', jsonString);
- row.setAttribute('data-name', worker.name);
- row.setAttribute('id', 'workerRow_' + getWorkerRowId(worker.name));
- row.innerHTML = getWorkerCells(worker);
- return row;
- }
- // Get worker cells
- function getWorkerCells(worker) {
- var hashrate = worker.hashrate ? worker.hashrate : 0;
- var hashrate1h = worker.hashrate_1h || 0;
- var hashrate6h = worker.hashrate_6h || 0;
- var hashrate24h = worker.hashrate_24h || 0;
- var lastShare = worker.lastShare ? worker.lastShare : 0;
- var hashes = getReadableDiffString(worker.hashes || 0).toString();
- var status = (hashrate <= 0) ? 'error' : 'ok';
- return '<td class="col1" data-sort="' + status + '"><i class="fa fa-' + (status == 'ok' ? 'check status-ok' :
- 'times status-error') + '"></i></td>' +
- '<td class="col2" data-sort="' + (worker.name != 'undefined' ? worker.name : '') + '">' + (worker.name !=
- 'undefined' ? worker.name : '<em>Undefined</em>') + '</td>' +
- '<td class="col3" data-sort="' + hashrate + '">' + getReadableHashRateString(hashrate) + '/s</td>' +
- '<td class="col4 avghr" data-sort="' + hashrate1h + '">' + getReadableHashRateString(hashrate1h) +
- '/s</td>' +
- '<td class="col5 avghr" data-sort="' + hashrate6h + '">' + getReadableHashRateString(hashrate6h) +
- '/s</td>' +
- '<td class="col6 avghr" data-sort="' + hashrate24h + '">' + getReadableHashRateString(hashrate24h) +
- '/s</td>' +
- '<td class="col7 text-center" data-sort="' + lastShare + '">' + (lastShare ? $.timeago(new Date(parseInt(
- lastShare) * 1000).toISOString()) : 'Never') + '</td>' +
- '<td class="col8 text-center" data-sort="' + hashes + '">' + hashes + '</td>';
- }
- // Handle sort on workers table
- $('#workersReport th.sort').on('click', sortTable);
- // Sort workers
- function sortWorkers(a, b) {
- var aName = a.name.toLowerCase();
- var bName = b.name.toLowerCase();
- return ((aName < bName) ? -1 : ((aName > bName) ? 1 : 0));
- }
- // Render workers list
- function renderWorkers(workersData) {
- workersData = workersData.sort(sortWorkers);
- var $workersRows = $('#workersReport_rows');
- for (var i = 0; i < workersData.length; i++) {
- var existingRow = document.getElementById('workerRow_' + getWorkerRowId(workersData[i].name));
- if (!existingRow) {
- $workersRows.empty();
- break;
- }
- }
- var have_avg_hr = false;
- for (var i = 0; i < workersData.length; i++) {
- var worker = workersData[i];
- if (Date.now() / 1000 - parseInt(worker.lastShare) > 2 * 86400) continue;
- if (!have_avg_hr && 'hashrate_1h' in worker) have_avg_hr = true;
- var workerJson = JSON.stringify(worker);
- var existingRow = document.getElementById('workerRow_' + getWorkerRowId(worker.name));
- if (existingRow && existingRow.getAttribute('data-json') !== workerJson) {
- $(existingRow).replaceWith(getWorkerRowElement(worker, workerJson));
- } else if (!existingRow) {
- var workerElement = getWorkerRowElement(worker, workerJson);
- $workersRows.append(workerElement);
- }
- }
- if (!have_avg_hr) $('#workersReport .avghr').hide();
- else $('#workersReport .avghr').show();
- }
- /**
- * Payments report
- **/
- // Parse payment data
- function parsePayment(time, serializedPayment) {
- var parts = serializedPayment.split(':');
- return {
- time: parseInt(time),
- hash: parts[0],
- amount: parts[1],
- fee: parts[2],
- mixin: parts[3],
- recipients: parts[4]
- };
- }
- // Get payment row element
- function getPaymentRowElement(payment, jsonString) {
- var row = document.createElement('tr');
- row.setAttribute('data-json', jsonString);
- row.setAttribute('data-time', payment.time);
- row.setAttribute('id', 'paymentRow' + payment.time);
- row.innerHTML = getPaymentCells(payment);
- return row;
- }
- // Get payment cells
- function getPaymentCells(payment) {
- return '<td class="col1">' + formatDate(payment.time) + '</td>' +
- '<td class="col2">' + formatPaymentLink(payment.hash) + '</td>' +
- '<td class="col3">' + getReadableCoins(payment.amount) + '</td>' +
- '<td class="col4">' + payment.mixin + '</td>';
- }
- // Get summary row element
- function getSummaryRowElement(summary, jsonString) {
- var row = document.createElement('tr');
- row.setAttribute('data-json', jsonString);
- row.setAttribute('data-date', summary.date);
- row.setAttribute('id', 'summaryRow' + summary.date);
- row.setAttribute('class', 'summary');
- row.innerHTML = getSummaryCells(summary);
- return row;
- }
- // Get summary cells
- function getSummaryCells(summary) {
- var text = getTranslation('paymentSummaryMulti') ? getTranslation('paymentSummaryMulti') :
- 'On %DATE% you have received %AMOUNT% in %COUNT% payments';
- if (summary.count <= 1) text = getTranslation('paymentSummarySingle') ? getTranslation('paymentSummarySingle') :
- 'On %DATE% you have received %AMOUNT%';
- text = text.replace(/%DATE%/g, summary.date);
- text = text.replace(/%COUNT%/g, summary.count);
- text = text.replace(/%AMOUNT%/g, getReadableCoins(summary.amount));
- return '<td colspan="4"><div class="alert notifys" style="color: #fff;background-color:#7388D9;"><i class="fa fa-money"></i> ' +
- text + '</div></td>';
- }
- // Render payments
- function renderPayments(paymentsResults) {
- var $paymentsRows = $('#paymentsReport_rows');
- var lastPaymentDate = null;
- var summaryData = {
- date: null,
- time: null,
- count: 0,
- amount: 0
- };
- for (var i = 0; i < paymentsResults.length; i += 2) {
- var payment = parsePayment(paymentsResults[i + 1], paymentsResults[i]);
- var paymentJson = JSON.stringify(payment);
- var paymentElement = getPaymentRowElement(payment, paymentJson);
- var paymentDate = new Date(parseInt(payment.time) * 1000).toLocaleDateString();
- if (!lastPaymentDate || lastPaymentDate && paymentDate != lastPaymentDate) {
- summaryData = {
- date: paymentDate,
- time: payment.time,
- count: 0,
- amount: 0
- };
- }
- var existingRow = document.getElementById('paymentRow' + payment.time);
- if (existingRow && existingRow.getAttribute('data-json') !== paymentJson) {
- $(existingRow).replaceWith(getPaymentRowElement(payment, paymentJson));
- } else if (!existingRow) {
- var inserted = false;
- var rows = $paymentsRows.children().get();
- for (var f = 0; f < rows.length; f++) {
- var pTime = parseInt(rows[f].getAttribute('data-time'));
- if (pTime && pTime < payment.time) {
- inserted = true;
- $(rows[f]).before(paymentElement);
- break;
- }
- }
- if (!inserted) {
- $paymentsRows.append(paymentElement);
- }
- }
- summaryData.count++;
- summaryData.amount += parseInt(payment.amount);
- var summaryJson = JSON.stringify(summaryData);
- var summaryElement = getSummaryRowElement(summaryData, summaryJson);
- var existingSummary = document.getElementById('summaryRow' + summaryData.date);
- if (existingSummary && existingSummary.getAttribute('data-json') !== summaryJson) {
- $(existingSummary).replaceWith(summaryElement);
- } else if (!existingSummary) {
- var inserted = false;
- var rows = $paymentsRows.children().get();
- for (var f = 0; f < rows.length; f++) {
- var pTime = parseInt(rows[f].getAttribute('data-time'));
- if (pTime && pTime === summaryData.time) {
- inserted = true;
- $(rows[f]).before(summaryElement);
- break;
- }
- }
- if (!inserted) {
- $paymentsRows.append(summaryElement);
- }
- }
- lastPaymentDate = paymentDate;
- }
- }
- // Load more payments button
- var xhrGetPayments;
- $('#loadMorePayments').click(function () {
- if (xhrGetPayments) xhrGetPayments.abort();
- xhrGetPayments = $.ajax({
- url: api + '/get_payments',
- data: {
- time: $('#paymentsReport_rows').children().last().data('time'),
- address: address
- },
- dataType: 'json',
- cache: 'false',
- success: function (data) {
- renderPayments(data);
- }
- });
- });
- /**
- * Hash Profitability Calculator
- **/
- // Automatically update profit calculation on key press
- $('#calcHashRate').keyup(calcEstimateProfit).change(calcEstimateProfit);
- // Click on button
- $('#calcHashUnits > li > a').click(function (e) {
- e.preventDefault();
- $('#calcHashUnit').text($(this).text()).data('mul', $(this).data('mul'));
- calcEstimateProfit();
- });
- // Calculate current estimation
- function calcEstimateProfit() {
- try {
- var rateUnit = Math.pow(1000, parseInt($('#calcHashUnit').data('mul')));
- var hashRate = parseFloat($('#calcHashRate').val()) * rateUnit;
- var profit = (hashRate * 86400 / lastStats.network.difficulty) * lastStats.lastblock.reward;
- if (profit) {
- updateText('getcoin', getReadableCoins(profit));
- updateText('getusd', (CoinPrice.USD * getReadableCoins(profit, 2, true)).toFixed(2));
- updateText('getbtc', (CoinPrice.BTC * getReadableCoins(profit, 2, true)).toFixed(6));
- return;
- }
- } catch (e) {}
- updateText('calcHashAmount1', '');
- updateText('calcHashAmount2', '');
- }
- var address = getCurrentAddress();
- if (address) {
- getPayoutLevel(address);
- }
- // Get current payout level
- function getPayoutLevel(address) {
- if (!address || address == '') return;
- $.ajax({
- url: api + '/get_miner_payout_level',
- data: {
- address: address
- },
- dataType: 'json',
- cache: 'false'
- }).done(function (data) {
- updateText('yourPayoutRate', (data.level));
- });
- }
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement