diff --git a/include/classes/bitcoinwrapper.class.php b/include/classes/bitcoinwrapper.class.php
index c399e52e4..4bd318ec2 100755
--- a/include/classes/bitcoinwrapper.class.php
+++ b/include/classes/bitcoinwrapper.class.php
@@ -40,7 +40,7 @@ public function is_testnet() {
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,15 +55,21 @@ public function getblockcount() {
// Wrapper method to get the real main account balance
public function getrealbalance() {
$this->oDebug->append("STA " . __METHOD__, 4);
- $aAccounts = parent::listaccounts();
- $dBalance = parent::getbalance('');
+ $aAccounts = [];
+
+ try {
+ $aAccounts = parent::listaccounts();
+ } catch (Exception $e) {
+ if ($e->getCode() == 404)
+ $aAccounts = array( '*' => parent::getbalance("*") );
+ }
+
// Account checks
if (count($aAccounts) == 1) {
// We only have a single account so getbalance will be fine
- return $dBalance;
+ return parent::getbalance("*");
} else {
- $dMainBalance = $aAccounts[''];
- return $dMainBalance;
+ return $aAccounts[0];
}
}
public function getdifficulty() {
diff --git a/include/classes/coins/coin_c11.class.php b/include/classes/coins/coin_c11.class.php
new file mode 100644
index 000000000..d2c6cc5fd
--- /dev/null
+++ b/include/classes/coins/coin_c11.class.php
@@ -0,0 +1,12 @@
+url = $url;
- $this->debug = $debug;
+ $this->debug = $debug;
$this->debug_output = '';
$this->id = rand(1, 100);
}
@@ -97,7 +97,7 @@ public function __call($method, $params) {
'id' => $this->id
);
$request = json_encode($request);
- if ($this->debug) $this->debug_output[] = 'Request: '.$request;
+ if ($this->debug) $this->debug_output = 'Request: '.$request[0];
// performs the HTTP POST
// extract information from URL for proper authentication
@@ -112,12 +112,12 @@ public function __call($method, $params) {
// 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;
+ if ($this->debug) $this->debug_output = 'Response: ' . $response[0];
$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']);
+ 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']);
}
curl_close($ch);
diff --git a/include/pages/admin/checks/check_daemon.inc.php b/include/pages/admin/checks/check_daemon.inc.php
index a4d445070..baa68b012 100644
--- a/include/pages/admin/checks/check_daemon.inc.php
+++ b/include/pages/admin/checks/check_daemon.inc.php
@@ -35,11 +35,17 @@
$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
- $accounts = $bitcoin->listaccounts();
+ try {
+ $accounts = $bitcoin->listaccounts();
+ } catch (Exception $e) {
+ if ($e->getCode() == 404)
+ $accounts = $bitcoin->listwallets();
+ }
+
if (count($accounts) > 1 && $accounts[''] <= 0) {
$newerror = array();
$newerror['name'] = "Coin daemon";
diff --git a/include/pages/admin/wallet.inc.php b/include/pages/admin/wallet.inc.php
index 6aca3a693..16c75d4cd 100644
--- a/include/pages/admin/wallet.inc.php
+++ b/include/pages/admin/wallet.inc.php
@@ -11,14 +11,32 @@
$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)
{
- $dAccountAddresses[$key] = $bitcoin->getaddressesbyaccount((string)$key);
+ 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;
+ }
+ }
}
$aGetInfo = $bitcoin->getinfo();
@@ -26,7 +44,7 @@
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 {
@@ -69,6 +87,7 @@
$smarty->assign("PEERINFO", $aGetPeerInfo);
$smarty->assign('PRECISION', $coin->getCoinValuePrevision());
$smarty->assign("TRANSACTIONS", $aGetTransactions);
+ $smarty->assign("LABELSCOMMAND", $labelsCommand);
} else {
$debug->append('Using cached page', 3);
}
diff --git a/templates/bootstrap/admin/wallet/accounts.tpl b/templates/bootstrap/admin/wallet/accounts.tpl
index 7b7d22492..e66616b99 100644
--- a/templates/bootstrap/admin/wallet/accounts.tpl
+++ b/templates/bootstrap/admin/wallet/accounts.tpl
@@ -2,50 +2,75 @@
- Wallet Accounts
+ {if $LABELSCOMMAND}
+ Wallet Labels
+ {else}
+ Wallet Accounts
+ {/if}
{foreach key=NAME item=VALUE from=$ACCOUNTS}
- Account: {$NAME|default:"Default"}
+ {if $LABELSCOMMAND}
+ Label: {$VALUE|default:"Default"}
+ {else}
+ Account: {$NAME|default:"Default"}
+ {/if}
-
-
-
- Balance Info
-
-
-
-
- Balance |
- {$VALUE|number_format:"8"} |
-
-
+ {if (not ($LABELSCOMMAND))}
+
+
+
+ Balance Info
+
+
+
+
+ Balance |
+ {$VALUE|number_format:"8"} |
+
+
+
-
+ {/if}
{foreach key=ACCOUNT item=ADDRESS from=$ACCOUNTADDRESSES}
{if $ACCOUNT == $NAME}
-
+ {if $LABELSCOMMAND}
+
+ {else}
+ {/if}
- Addresses assigned to Account {$ACCOUNT|default:"Default"}
+ {if $LABELSCOMMAND}
+ Addresses assigned to Label {$VALUE|default:"Default"}
+ {else}
+ Addresses assigned to Account {$ACCOUNT|default:"Default"}
+ {/if}
{foreach from=$ACCOUNTADDRESSES[$ACCOUNT] key=ACCOUNT1 item=ADDRESS1}
-{if $ADDRESS1@iteration is even by 1}
- {$ADDRESS1} |
-
+{if not $LABELSCOMMAND}
+ {if $ADDRESS1@iteration is even by 1}
+ {$ADDRESS1} |
+
+ {else}
+
+ {$ADDRESS1} |
+ {/if}
{else}
-
- {$ADDRESS1} |
+ {foreach from=$ACCOUNT1 key=ACCOUNT2 item=ADDRESS2}
+
+ {$ADDRESS2} |
+
+ {/foreach}
{/if}
{/foreach}
diff --git a/templates/bootstrap/admin/wallet/status.tpl b/templates/bootstrap/admin/wallet/status.tpl
index c1d2f4773..a64be996c 100644
--- a/templates/bootstrap/admin/wallet/status.tpl
+++ b/templates/bootstrap/admin/wallet/status.tpl
@@ -14,7 +14,11 @@
Peers |
Status |
Blocks |
- Accounts |
+ {if $LABELSCOMMAND}
+ Labels |
+ {else}
+ Accounts |
+ {/if}
diff --git a/templates/bootstrap/admin/wallet/transactions.tpl b/templates/bootstrap/admin/wallet/transactions.tpl
index 63f627ca4..9ffdaf4c1 100644
--- a/templates/bootstrap/admin/wallet/transactions.tpl
+++ b/templates/bootstrap/admin/wallet/transactions.tpl
@@ -9,7 +9,11 @@
- Account |
+ {if $LABELSCOMMAND}
+ Label |
+ {else}
+ Account |
+ {/if}
Address |
Category |
Amount |