Compare commits

..

1 Commits

Author SHA1 Message Date
Sebastian Grewe
236cccd5d3
Merge pull request #2738 from MPOS/development
UPDATE : Development to Master
2018-05-24 14:12:01 +02:00
14 changed files with 41 additions and 146 deletions

View File

@ -40,7 +40,7 @@ class BitcoinWrapper extends BitcoinClient {
else
return $this->memcache->setCache(__FUNCTION__, parent::getblockchaininfo()['chain'] == 'test', 30);
}
public function getmininginfo() {
$this->oDebug->append("STA " . __METHOD__, 4);
if ($data = $this->memcache->get(__FUNCTION__)) return $data;
@ -55,21 +55,15 @@ class BitcoinWrapper extends BitcoinClient {
// Wrapper method to get the real main account balance
public function getrealbalance() {
$this->oDebug->append("STA " . __METHOD__, 4);
$aAccounts = [];
try {
$aAccounts = parent::listaccounts();
} catch (Exception $e) {
if ($e->getCode() == 404)
$aAccounts = array( '*' => parent::getbalance("*") );
}
$aAccounts = parent::listaccounts();
$dBalance = parent::getbalance('');
// Account checks
if (count($aAccounts) == 1) {
// We only have a single account so getbalance will be fine
return parent::getbalance("*");
return $dBalance;
} else {
return $aAccounts[0];
$dMainBalance = $aAccounts[''];
return $dMainBalance;
}
}
public function getdifficulty() {

View File

@ -1,12 +0,0 @@
<?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 = 32;
protected $share_difficulty_precision = 6;
}

View File

@ -24,7 +24,6 @@ class Notifications_NotifyMyAndroid implements IPushNotification {
public function notify($message, $severity = 'info', $event = null){
global $setting;
curl_setopt_array($ch = curl_init(), array(
CURLOPT_TIMEOUT_MS => 1500,
CURLOPT_URL => "https://www.notifymyandroid.com/publicapi/notify",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,

View File

@ -27,7 +27,6 @@
public function notify($message, $severity = 'info', $event = null){
curl_setopt_array($ch = curl_init(), array(
CURLOPT_TIMEOUT_MS => 1500,
CURLOPT_URL => "https://api.pushover.net/1/messages.json",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,

View File

@ -7,7 +7,7 @@ $aErrorCodes['E0002'] = 'Upstream shares not found';
$aErrorCodes['E0003'] = 'Failed to change shares order';
$aErrorCodes['E0004'] = 'Failed to reset previous block';
$aErrorCodes['E0005'] = 'Unable to fetch blocks upstream share';
$aErrorCodes['E0006'] = 'Unable to connect to RPC server backend';
$aErrorCodes['E0006'] = 'Unable to conenct to RPC server backend';
$aErrorCodes['E0007'] = 'Out of Order Share detected, autofixed';
$aErrorCodes['E0008'] = 'Failed to delete archived shares';
$aErrorCodes['E0009'] = 'Cron disabled by admin';

View File

@ -58,7 +58,7 @@ class jsonRPCClient {
*/
public function __construct($url, $debug = false) {
$this->url = $url;
$this->debug = $debug;
$this->debug = $debug;
$this->debug_output = '';
$this->id = rand(1, 100);
}
@ -97,7 +97,7 @@ class jsonRPCClient {
'id' => $this->id
);
$request = json_encode($request);
if ($this->debug) $this->debug_output = 'Request: '.$request[0];
if ($this->debug) $this->debug_output[] = 'Request: '.$request;
// performs the HTTP POST
// extract information from URL for proper authentication
@ -112,12 +112,12 @@ class jsonRPCClient {
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$response = curl_exec($ch);
if (curl_errno($ch)) throw new Exception('RPC call failed: ' . curl_error($ch));
if ($this->debug) $this->debug_output = 'Response: ' . $response[0];
if ($this->debug) $this->debug_output[] = 'Response: ' . $response;
$response = json_decode($response, true);
$resultStatus = curl_getinfo($ch);
if ($resultStatus['http_code'] != '200') {
if ($resultStatus['http_code'] == '401') throw new Exception('RPC call did not return 200: Authentication failed');
throw new Exception('RPC call did not return 200: HTTP error: ' . $resultStatus['http_code'] . ' - JSON Response: [' . @$response['error']['code'] . '] ' . @$response['error']['message'], $resultStatus['http_code']);
throw new Exception('RPC call did not return 200: HTTP error: ' . $resultStatus['http_code'] . ' - JSON Response: [' . @$response['error']['code'] . '] ' . @$response['error']['message']);
}
curl_close($ch);

View File

@ -35,17 +35,11 @@ try {
$newerror['description'] = "Blockchain download progress is at an estimated $dDownloadPercentage%. It may take a while to complete.";
$newerror['configvalue'] = "wallet.host";
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Config-Setup#wiki-local-wallet-rpc";
$error[] = $newerror;
$error[] = $newerror;
$newerror = null;
}
// check if there is more than one account set on wallet
try {
$accounts = $bitcoin->listaccounts();
} catch (Exception $e) {
if ($e->getCode() == 404)
$accounts = $bitcoin->listwallets();
}
$accounts = $bitcoin->listaccounts();
if (count($accounts) > 1 && $accounts[''] <= 0) {
$newerror = array();
$newerror['name'] = "Coin daemon";

View File

@ -1,21 +0,0 @@
<?php
$defflip = (!cfip()) ? exit(header('HTTP/1.1 401 Unauthorized')) : 1;
// MPOS has issues with version 5.7 so lets fetch this installs version
$mysql_version = $mysqli->query('SELECT VERSION() AS version')->fetch_object()->version;
// This should be set if we are running on 5.7
$mysql_mode = $mysqli->query('SELECT @@GLOBAL.sql_mode AS sql_mode')->fetch_object()->sql_mode;
// see if it includes 5.7
if (strpos($mysql_version, '5.7') !== false && strpos($mysql_mode, 'ONLY_FULL_GROUP_BY') !== false) {
$newerror = array();
$newerror['name'] = "MySQL Version";
$newerror['level'] = 3;
$newerror['description'] = "SQL version not fully supported.";
$newerror['configvalue'] = "db.*";
$newerror['extdesc'] = "You are using MySQL Version $mysql_version which is not fully supported. You may run into issues during payout when using this version of MySQL. Please see our Wiki FAQ on how to workaround any potential issues. This check only matches your version string against `5.7` so you may still be fine.";
$newerror['helplink'] = "";
$error[] = $newerror;
$newerror = null;
}

View File

@ -11,32 +11,14 @@ if (!$smarty->isCached('master.tpl', $smarty_cache_key)) {
$debug->append('No cached version available, fetching from backend', 3);
if ($bitcoin->can_connect() === true) {
$dBalance = $bitcoin->getrealbalance();
$labelsCommand = false;
try {
$dWalletAccounts = $bitcoin->listaccounts();
} catch (Exception $e) {
if ($e->getCode() == 404) {
$dWalletAccounts = $bitcoin->listlabels();
$labelsCommand = true;
}
}
$dWalletAccounts = $bitcoin->listaccounts();
$dAddressCount = count($dWalletAccounts);
$dAccountAddresses = array();
foreach($dWalletAccounts as $key => $value)
{
if (!($labelsCommand))
$dAccountAddresses[$key] = $bitcoin->getaddressesbyaccount((string)$key);
else {
if (strlen($value) == 0)
$value = "";
foreach ($bitcoin->getaddressesbylabel((string)$value) as $key2 => $value2) {
$dAccountAddresses[$key][$key2] = $value2;
}
}
$dAccountAddresses[$key] = $bitcoin->getaddressesbyaccount((string)$key);
}
$aGetInfo = $bitcoin->getinfo();
@ -44,7 +26,7 @@ if (!$smarty->isCached('master.tpl', $smarty_cache_key)) {
if ($aGetInfo['connections'] == 0) $aGetInfo['errors'] = 'No peers';
# Check if daemon is downloading the blockchain, estimated
if ($dDownloadPercentage = $bitcoin->getblockchaindownload()) $aGetInfo['errors'] = "Downloading: $dDownloadPercentage%";
$aGetTransactions = $bitcoin->listtransactions('*', (int)$setting->getValue('wallet_transaction_limit', 25));
$aGetTransactions = $bitcoin->listtransactions('', (int)$setting->getValue('wallet_transaction_limit', 25));
if (is_array($aGetInfo) && array_key_exists('newmint', $aGetInfo)) {
$dNewmint = $aGetInfo['newmint'];
} else {
@ -87,7 +69,6 @@ if (!$smarty->isCached('master.tpl', $smarty_cache_key)) {
$smarty->assign("PEERINFO", $aGetPeerInfo);
$smarty->assign('PRECISION', $coin->getCoinValuePrevision());
$smarty->assign("TRANSACTIONS", $aGetTransactions);
$smarty->assign("LABELSCOMMAND", $labelsCommand);
} else {
$debug->append('Using cached page', 3);
}

View File

@ -71,7 +71,7 @@ if ($config['memcache']['enabled'] && $config['mc_antidos']['enabled']) {
if (!$skip_check) {
$mcad = new MemcacheAntiDos($config, $memcache, $per_page);
if ($config['mc_antidos']['protect_ajax'] && $is_ajax_call && $mcad->rate_limit_api_request) {
exit(header('HTTP/1.1 429 Too Many Requests'));
exit(header('HTTP/1.1 401 Unauthorized'));
}
$error_page = $config['mc_antidos']['error_push_page'];
if ($mcad->rate_limit_site_request) {

View File

@ -2,75 +2,50 @@
<div class="col-lg-12">
<div class="panel panel-info">
<div class="panel-heading">
{if $LABELSCOMMAND}
<i class="fa fa-users fa-fw"></i> Wallet Labels
{else}
<i class="fa fa-users fa-fw"></i> Wallet Accounts
{/if}
<i class="fa fa-users fa-fw"></i> Wallet Accounts
</div>
<div class="panel-body ">
<div class="panel-group">
{foreach key=NAME item=VALUE from=$ACCOUNTS}
<div class="panel panel-default">
<div class="panel-heading">
{if $LABELSCOMMAND}
<i class="fa fa-user fa-fw"></i> Label: {$VALUE|default:"Default"}
{else}
<i class="fa fa-user fa-fw"></i> Account: {$NAME|default:"Default"}
{/if}
<i class="fa fa-user fa-fw"></i> Account: {$NAME|default:"Default"}
</div>
<div class="panel-body">
{if (not ($LABELSCOMMAND))}
<div class="col-lg-4">
<div class="panel panel-info">
<div class="panel-heading">
<i class="fa fa-money fa-fw"></i> Balance Info
</div>
<div class="table-responsive panel-body no-padding">
<table class="table table-striped table-bordered table-hover">
<tr>
<td class="col-lg-4">Balance</td>
<td class="col-lg-12">{$VALUE|number_format:"8"}</td>
</tr>
</table>
</div>
<div class="col-lg-4">
<div class="panel panel-info">
<div class="panel-heading">
<i class="fa fa-money fa-fw"></i> Balance Info
</div>
<div class="table-responsive panel-body no-padding">
<table class="table table-striped table-bordered table-hover">
<tr>
<td class="col-lg-4">Balance</td>
<td class="col-lg-12">{$VALUE|number_format:"8"}</td>
</tr>
</table>
</div>
</div>
{/if}
</div>
{foreach key=ACCOUNT item=ADDRESS from=$ACCOUNTADDRESSES}
{if $ACCOUNT == $NAME}
{if $LABELSCOMMAND}
<div class="col-lg-12">
{else}
<div class="col-lg-8">
{/if}
<div class="panel panel-info">
<div class="panel-heading">
{if $LABELSCOMMAND}
<i class="fa fa-book fa-fw"></i> Addresses assigned to Label {$VALUE|default:"Default"}
{else}
<i class="fa fa-book fa-fw"></i> Addresses assigned to Account {$ACCOUNT|default:"Default"}
{/if}
<i class="fa fa-book fa-fw"></i> Addresses assigned to Account {$ACCOUNT|default:"Default"}
</div>
<div class="table-responsive panel-body no-padding">
<table class="table table-striped table-bordered table-hover">
<tbody>
{foreach from=$ACCOUNTADDRESSES[$ACCOUNT] key=ACCOUNT1 item=ADDRESS1}
{if not $LABELSCOMMAND}
{if $ADDRESS1@iteration is even by 1}
<td>{$ADDRESS1}</td>
</tr>
{else}
<tr>
<td>{$ADDRESS1}</td>
{/if}
{if $ADDRESS1@iteration is even by 1}
<td>{$ADDRESS1}</td>
</tr>
{else}
{foreach from=$ACCOUNT1 key=ACCOUNT2 item=ADDRESS2}
<tr>
<td>{$ADDRESS2}</td>
</tr>
{/foreach}
<tr>
<td>{$ADDRESS1}</td>
{/if}
{/foreach}
<tbody>

View File

@ -14,11 +14,7 @@
<th>Peers</th>
<th>Status</th>
<th>Blocks</th>
{if $LABELSCOMMAND}
<th>Labels</th>
{else}
<th>Accounts</th>
{/if}
<th>Accounts</th>
</tr>
</thead>
<tbody>

View File

@ -9,11 +9,7 @@
<table class="table table-striped table-bordered table-hover">
<thead>
<tr>
{if $LABELSCOMMAND}
<th class="text-center">Label</th>
{else}
<th class="text-center">Account</th>
{/if}
<th class="text-center">Account</th>
<th class="text-center">Address</th>
<th class="text-center">Category</th>
<th class="text-right">Amount</th>

View File

@ -193,15 +193,9 @@ $(document).ready(function(){
return;
}
if (blocks[0].height > lastBlock) {
{/literal}
{if $GLOBAL.website.blockfindersound.enabled|default:"1"}
{literal}
if(canCreateSoundJS) {
createjs.Sound.play('ding');
}
{/literal}
{/if}
{literal}
lastBlock = blocks[0].height;
var table_content = '<tbody id="b-blocks">';
for (index = 0; index < blocks.length; ++index) {