[MERGE] Fix conflicts with development
This commit is contained in:
commit
fcaffe7fc0
@ -17,6 +17,7 @@ require_once(INCLUDE_DIR . '/config/error_codes.inc.php');
|
|||||||
require_once(CLASS_DIR . '/base.class.php');
|
require_once(CLASS_DIR . '/base.class.php');
|
||||||
require_once(CLASS_DIR . '/coins/coin_base.class.php');
|
require_once(CLASS_DIR . '/coins/coin_base.class.php');
|
||||||
require_once(CLASS_DIR . '/setting.class.php');
|
require_once(CLASS_DIR . '/setting.class.php');
|
||||||
|
require_once(INCLUDE_DIR . '/version.inc.php');
|
||||||
if (PHP_OS == 'WINNT') require_once(CLASS_DIR . '/memcached.class.php');
|
if (PHP_OS == 'WINNT') require_once(CLASS_DIR . '/memcached.class.php');
|
||||||
|
|
||||||
// Now decide on which coin class to load and instantiate
|
// Now decide on which coin class to load and instantiate
|
||||||
|
|||||||
@ -141,6 +141,7 @@ class Worker extends Base {
|
|||||||
FROM $this->table AS w
|
FROM $this->table AS w
|
||||||
WHERE account_id = ?");
|
WHERE account_id = ?");
|
||||||
if ($this->checkStmt($stmt) && $stmt->bind_param('iiiii', $interval, $interval, $interval, $interval, $account_id) && $stmt->execute() && $result = $stmt->get_result()) {
|
if ($this->checkStmt($stmt) && $stmt->bind_param('iiiii', $interval, $interval, $interval, $interval, $account_id) && $stmt->execute() && $result = $stmt->get_result()) {
|
||||||
|
$aData = array();
|
||||||
while ($row = $result->fetch_assoc()) {
|
while ($row = $result->fetch_assoc()) {
|
||||||
$row['hashrate'] = round($this->coin->calcHashrate($row['shares'], $interval), 2);
|
$row['hashrate'] = round($this->coin->calcHashrate($row['shares'], $interval), 2);
|
||||||
if ($row['count_all'] > 0) {
|
if ($row['count_all'] > 0) {
|
||||||
|
|||||||
@ -364,20 +364,6 @@ $aSettings['system'][] = array(
|
|||||||
'name' => 'disable_dashboard_api', 'value' => $setting->getValue('disable_dashboard_api'),
|
'name' => 'disable_dashboard_api', 'value' => $setting->getValue('disable_dashboard_api'),
|
||||||
'tooltip' => 'Disable dashboard API entirely to reduce server load.'
|
'tooltip' => 'Disable dashboard API entirely to reduce server load.'
|
||||||
);
|
);
|
||||||
$aSettings['system'][] = array(
|
|
||||||
'display' => 'Disable Live Navbar', 'type' => 'select',
|
|
||||||
'options' => array( 0 => 'No', 1 => 'Yes'),
|
|
||||||
'default' => 0,
|
|
||||||
'name' => 'disable_navbar', 'value' => $setting->getValue('disable_navbar'),
|
|
||||||
'tooltip' => 'Disable live updates on the navbar to reduce server load.'
|
|
||||||
);
|
|
||||||
$aSettings['system'][] = array(
|
|
||||||
'display' => 'Disable Navbar API', 'type' => 'select',
|
|
||||||
'options' => array( 0 => 'No', 1 => 'Yes'),
|
|
||||||
'default' => 0,
|
|
||||||
'name' => 'disable_navbar_api', 'value' => $setting->getValue('disable_navbar_api'),
|
|
||||||
'tooltip' => 'Disable navbar API entirely to reduce server load. Used in pool stats and navbar mini stats.'
|
|
||||||
);
|
|
||||||
$aSettings['system'][] = array(
|
$aSettings['system'][] = array(
|
||||||
'display' => 'Disable TX Summaries', 'type' => 'select',
|
'display' => 'Disable TX Summaries', 'type' => 'select',
|
||||||
'options' => array( 0 => 'No', 1 => 'Yes'),
|
'options' => array( 0 => 'No', 1 => 'Yes'),
|
||||||
|
|||||||
@ -1,76 +0,0 @@
|
|||||||
<?php
|
|
||||||
$defflip = (!cfip()) ? exit(header('HTTP/1.1 401 Unauthorized')) : 1;
|
|
||||||
|
|
||||||
// Check if the system is enabled
|
|
||||||
if ($setting->getValue('disable_navbar_api')) {
|
|
||||||
echo $api->get_json(array('error' => 'disabled'));
|
|
||||||
die();
|
|
||||||
}
|
|
||||||
|
|
||||||
// System load check
|
|
||||||
if ($load = @sys_getloadavg()) {
|
|
||||||
if (isset($config['system']['load']['max']) && $load[0] > $config['system']['load']['max']) {
|
|
||||||
header('HTTP/1.1 503 Too busy, try again later');
|
|
||||||
die('Server too busy. Please try again later.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fetch RPC information
|
|
||||||
if ($bitcoin->can_connect() === true) {
|
|
||||||
$dNetworkHashrate = $bitcoin->getnetworkhashps();
|
|
||||||
$dDifficulty = $bitcoin->getdifficulty();
|
|
||||||
$iBlock = $bitcoin->getblockcount();
|
|
||||||
} else {
|
|
||||||
$dNetworkHashrate = 0;
|
|
||||||
$dDifficulty = 1;
|
|
||||||
$iBlock = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Some settings
|
|
||||||
if ( ! $interval = $setting->getValue('statistics_ajax_data_interval')) $interval = 300;
|
|
||||||
if ( ! $dPoolHashrateModifier = $setting->getValue('statistics_pool_hashrate_modifier') ) $dPoolHashrateModifier = 1;
|
|
||||||
if ( ! $dNetworkHashrateModifier = $setting->getValue('statistics_network_hashrate_modifier') ) $dNetworkHashrateModifier = 1;
|
|
||||||
|
|
||||||
// Fetch raw data
|
|
||||||
$statistics->setGetCache(false);
|
|
||||||
$dPoolHashrate = $statistics->getCurrentHashrate($interval);
|
|
||||||
if ($dPoolHashrate > $dNetworkHashrate) $dNetworkHashrate = $dPoolHashrate;
|
|
||||||
$statistics->setGetCache(true);
|
|
||||||
|
|
||||||
// Small helper
|
|
||||||
$aHashunits = array( '1' => 'KH/s', '0.001' => 'MH/s', '0.000001' => 'GH/s', '0.000000001' => 'TH/s' );
|
|
||||||
|
|
||||||
// Apply pool modifiers
|
|
||||||
$dPoolHashrateAdjusted = $dPoolHashrate * $dPoolHashrateModifier;
|
|
||||||
$dNetworkHashrateAdjusted = $dNetworkHashrate / 1000 * $dNetworkHashrateModifier;
|
|
||||||
|
|
||||||
// Use caches for this one
|
|
||||||
$aRoundShares = $statistics->getRoundShares();
|
|
||||||
|
|
||||||
$iTotalRoundShares = $aRoundShares['valid'] + $aRoundShares['invalid'];
|
|
||||||
if ($iTotalRoundShares > 0) {
|
|
||||||
$dPoolInvalidPercent = round($aRoundShares['invalid'] / $iTotalRoundShares * 100, 2);
|
|
||||||
} else {
|
|
||||||
$dUserInvalidPercent = 0;
|
|
||||||
$dPoolInvalidPercent = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Round progress
|
|
||||||
$iEstShares = $statistics->getEstimatedShares($dDifficulty);
|
|
||||||
if ($iEstShares > 0 && $aRoundShares['valid'] > 0) {
|
|
||||||
$dEstPercent = round(100 / $iEstShares * $aRoundShares['valid'], 2);
|
|
||||||
} else {
|
|
||||||
$dEstPercent = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Output JSON format
|
|
||||||
$data = array(
|
|
||||||
'raw' => array( 'workers' => $worker->getCountAllActiveWorkers(), 'pool' => array( 'hashrate' => $dPoolHashrate ) ),
|
|
||||||
'pool' => array( 'workers' => $worker->getCountAllActiveWorkers(), 'hashrate' => $dPoolHashrateAdjusted, 'estimated' => $iEstShares, 'progress' => $dEstPercent ),
|
|
||||||
'network' => array( 'hashrate' => $dNetworkHashrateAdjusted, 'difficulty' => $dDifficulty, 'block' => $iBlock )
|
|
||||||
);
|
|
||||||
echo $api->get_json($data);
|
|
||||||
|
|
||||||
// Supress master template
|
|
||||||
$supress_master = 1;
|
|
||||||
?>
|
|
||||||
16
public/include/classes/coins/coin_scryptn.class.php
Normal file
16
public/include/classes/coins/coin_scryptn.class.php
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
$defflip = (!cfip()) ? exit(header('HTTP/1.1 401 Unauthorized')) : 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We extend our CoinBase class
|
||||||
|
* No need to change anything, base class supports
|
||||||
|
* scrypt and sha256d
|
||||||
|
*
|
||||||
|
* Note: This is exactly the same as Scrypt, but it's
|
||||||
|
* here to let MPOS api report the correct coin algorithm.
|
||||||
|
**/
|
||||||
|
class Coin extends CoinBase {
|
||||||
|
protected $target_bits = 16;
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
13
public/include/classes/coins/coin_x11.class.php
Normal file
13
public/include/classes/coins/coin_x11.class.php
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
$defflip = (!cfip()) ? exit(header('HTTP/1.1 401 Unauthorized')) : 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We extend our CoinBase class
|
||||||
|
* No need to change anything, base class supports
|
||||||
|
* scrypt and sha256d
|
||||||
|
**/
|
||||||
|
class Coin extends CoinBase {
|
||||||
|
protected $target_bits = 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
@ -101,7 +101,6 @@ if (count(@$_SESSION['last_ip_pop']) == 2) {
|
|||||||
|
|
||||||
// version check and config check if not disabled
|
// version check and config check if not disabled
|
||||||
if (@$_SESSION['USERDATA']['is_admin'] && $user->isAdmin(@$_SESSION['USERDATA']['id'])) {
|
if (@$_SESSION['USERDATA']['is_admin'] && $user->isAdmin(@$_SESSION['USERDATA']['id'])) {
|
||||||
require_once(INCLUDE_DIR . '/version.inc.php');
|
|
||||||
if (!@$config['skip_config_tests']) {
|
if (!@$config['skip_config_tests']) {
|
||||||
require_once(INCLUDE_DIR . '/admin_checks.php');
|
require_once(INCLUDE_DIR . '/admin_checks.php');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,14 +33,14 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Timezone</label>
|
<label>Timezone</label>
|
||||||
{nocache}
|
{nocache}
|
||||||
<select class="form-control" name="timezone">
|
<select class="form-control select-mini" name="timezone" {if $GLOBAL.twofactor.enabled && $GLOBAL.twofactor.options.details && !$DETAILSUNLOCKED}id="disabledInput" disabled{/if}>
|
||||||
{html_options options=$TIMEZONES selected=$GLOBAL.userdata.timezone}
|
{html_options options=$TIMEZONES selected=$GLOBAL.userdata.timezone}
|
||||||
</select>
|
</select>
|
||||||
{/nocache}
|
{/nocache}
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Payment Address</label>
|
<label>Payment Address</label>
|
||||||
{nocache}<input class="form-control" type="text" name="paymentAddress" value="{$smarty.request.paymentAddress|default:$GLOBAL.userdata.coin_address|escape}" size="40" {if $GLOBAL.twofactor.enabled && $GLOBAL.twofactor.options.details && !$DETAILSUNLOCKED}id="disabledInput" disabled{/if}/>{/nocache}
|
{nocache}<input class="form-control" type="text" name="paymentAddress" value="{$smarty.request.paymentAddress|default:$GLOBAL.userdata.coin_address|escape}" size="40" {if $GLOBAL.twofactor.enabled && $GLOBAL.twofactor.options.details && !$DETAILSUNLOCKED}id="disabledInput" disabled{/if}/>{/nocache}
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Donation Percentage</label>
|
<label>Donation Percentage</label>
|
||||||
|
|||||||
@ -1,30 +0,0 @@
|
|||||||
<script>
|
|
||||||
{literal}
|
|
||||||
$(document).ready(function(){
|
|
||||||
|
|
||||||
// Ajax API URL
|
|
||||||
var url = "{/literal}{$smarty.server.SCRIPT_NAME}?page=api&action=getnavbardata{literal}";
|
|
||||||
|
|
||||||
function refreshStaticData(data) {
|
|
||||||
$('#b-workers').html((parseFloat(data.getnavbardata.data.pool.workers).toFixed(0)));
|
|
||||||
$('#b-hashrate').html((parseFloat(data.getnavbardata.data.pool.hashrate).toFixed(3)));
|
|
||||||
$('#b-target').html(data.getnavbardata.data.pool.estimated + " (done: " + data.getnavbardata.data.pool.progress + "%)");
|
|
||||||
$('#b-diff').html(data.getnavbardata.data.network.difficulty);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Our worker process to keep gauges and graph updated
|
|
||||||
(function worker() {
|
|
||||||
$.ajax({
|
|
||||||
url: url,
|
|
||||||
dataType: 'json',
|
|
||||||
success: function(data) {
|
|
||||||
refreshStaticData(data);
|
|
||||||
},
|
|
||||||
complete: function() {
|
|
||||||
setTimeout(worker, {/literal}{($GLOBAL.config.statistics_ajax_refresh_interval * 1000)|default:"10000"}{literal})
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})();
|
|
||||||
});
|
|
||||||
{/literal}
|
|
||||||
</script>
|
|
||||||
@ -8,7 +8,3 @@
|
|||||||
{include file="statistics/pool/general_stats.tpl"}
|
{include file="statistics/pool/general_stats.tpl"}
|
||||||
{include file="statistics/blocks/small_table.tpl"}
|
{include file="statistics/blocks/small_table.tpl"}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{if !$GLOBAL.website.api.disabled && !$GLOBAL.config.disable_navbar && !$GLOBAL.config.disable_navbar_api}
|
|
||||||
{include file="statistics/js.tpl"}
|
|
||||||
{/if}
|
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
<tr{if $GLOBAL.userdata.username|default:"" == $ROUNDTRANSACTIONS[txs].username}{assign var=listed value=1} style="background-color:#99EB99;"{else}{/if}>
|
<tr{if $GLOBAL.userdata.username|default:"" == $ROUNDTRANSACTIONS[txs].username}{assign var=listed value=1} style="background-color:#99EB99;"{else}{/if}>
|
||||||
<td>{if $ROUNDTRANSACTIONS[txs].is_anonymous|default:"0" == 1 && $GLOBAL.userdata.is_admin|default:"0" == 0}anonymous{else}{$ROUNDTRANSACTIONS[txs].username|default:"unknown"|escape}{/if}</td>
|
<td>{if $ROUNDTRANSACTIONS[txs].is_anonymous|default:"0" == 1 && $GLOBAL.userdata.is_admin|default:"0" == 0}anonymous{else}{$ROUNDTRANSACTIONS[txs].username|default:"unknown"|escape}{/if}</td>
|
||||||
<td>{$ROUNDSHARES[$ROUNDTRANSACTIONS[txs].uid].valid|number_format|default:0}</td>
|
<td>{$ROUNDSHARES[$ROUNDTRANSACTIONS[txs].uid].valid|number_format|default:0}</td>
|
||||||
<td>{if $ROUNDSHARES[$ROUNDTRANSACTIONS[txs].uid].valid > 0 }{(( 100 / $BLOCKDETAILS.shares) * $ROUNDSHARES[$ROUNDTRANSACTIONS[txs].uid].valid)|number_format:"2"}{else}0.00{/if}</td>
|
<td>{if $ROUNDSHARES[$ROUNDTRANSACTIONS[txs].uid].valid|default:"0" > 0 }{(( 100 / $BLOCKDETAILS.shares) * $ROUNDSHARES[$ROUNDTRANSACTIONS[txs].uid].valid)|number_format:"2"}{else}0.00{/if}</td>
|
||||||
<td>{$PPLNSROUNDSHARES[txs].pplns_valid|number_format|default:"0"}</td>
|
<td>{$PPLNSROUNDSHARES[txs].pplns_valid|number_format|default:"0"}</td>
|
||||||
<td>{if $PPLNSROUNDSHARES[txs].pplns_valid|default:"0" > 0 }{(( 100 / $PPLNSSHARES) * $PPLNSROUNDSHARES[txs].pplns_valid)|number_format:"2"|default:"0"}{else}0{/if}</td>
|
<td>{if $PPLNSROUNDSHARES[txs].pplns_valid|default:"0" > 0 }{(( 100 / $PPLNSSHARES) * $PPLNSROUNDSHARES[txs].pplns_valid)|number_format:"2"|default:"0"}{else}0{/if}</td>
|
||||||
<td>{if $ROUNDSHARES[$ROUNDTRANSACTIONS[txs].uid].valid|default:"0" > 0 && $PPLNSROUNDSHARES[txs].pplns_valid|default:"0" > 0}{math assign="percentage1" equation=(100 / ((( 100 / $BLOCKDETAILS.shares) * $ROUNDSHARES[$ROUNDTRANSACTIONS[txs].uid].valid) / (( 100 / $PPLNSSHARES) * $PPLNSROUNDSHARES[txs].pplns_valid)))}{else if $PPLNSROUNDSHARES[txs].pplns_valid|default:"0" == 0}{assign var=percentage1 value=0}{else}{assign var=percentage1 value=100}{/if}
|
<td>{if $ROUNDSHARES[$ROUNDTRANSACTIONS[txs].uid].valid|default:"0" > 0 && $PPLNSROUNDSHARES[txs].pplns_valid|default:"0" > 0}{math assign="percentage1" equation=(100 / ((( 100 / $BLOCKDETAILS.shares) * $ROUNDSHARES[$ROUNDTRANSACTIONS[txs].uid].valid) / (( 100 / $PPLNSSHARES) * $PPLNSROUNDSHARES[txs].pplns_valid)))}{else if $PPLNSROUNDSHARES[txs].pplns_valid|default:"0" == 0}{assign var=percentage1 value=0}{else}{assign var=percentage1 value=100}{/if}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user