[ADDED] getrealbalance wrapper for payouts
During payouts, we must ensure our wallets main accounts has the funds to payout users. Hence we implement a wrapper method: * If account count == 1 we only have main account, return getbalance * Else return our main accounts balance - calculated unconfirmed This should keep getbalance untouched when used on other places but gives our payout processing a proper main account balance. It's mostly a wrapper for those wallets running multiple accounts in one wallet. They are warned on the front-end already but this ensure payouts process properly. Fixes #1755 once merged.
This commit is contained in:
parent
8f4af5b038
commit
6f1f56abb6
@ -41,7 +41,7 @@ $sendmanyAvailable = ((strpos($bitcoin->help('sendmany'), 'unknown') === FALSE)
|
|||||||
if ($sendmanyAvailable)
|
if ($sendmanyAvailable)
|
||||||
$log->logDebug(' sendmany available in coind help command');
|
$log->logDebug(' sendmany available in coind help command');
|
||||||
|
|
||||||
if (!$dWalletBalance = $bitcoin->getbalance())
|
if (!$dWalletBalance = $bitcoin->getrealbalance())
|
||||||
$dWalletBalance = 0;
|
$dWalletBalance = 0;
|
||||||
|
|
||||||
// Fetch outstanding manual-payouts
|
// Fetch outstanding manual-payouts
|
||||||
@ -113,7 +113,7 @@ if ($setting->getValue('disable_manual_payouts') != 1 && $aManualPayouts) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$dWalletBalance = $bitcoin->getbalance())
|
if (!$dWalletBalance = $bitcoin->getrealbalance())
|
||||||
$dWalletBalance = 0;
|
$dWalletBalance = 0;
|
||||||
|
|
||||||
// Fetch outstanding auto-payouts
|
// Fetch outstanding auto-payouts
|
||||||
|
|||||||
@ -31,17 +31,26 @@ class BitcoinWrapper extends BitcoinClient {
|
|||||||
if ($data = $this->memcache->get(__FUNCTION__)) return $data;
|
if ($data = $this->memcache->get(__FUNCTION__)) return $data;
|
||||||
return $this->memcache->setCache(__FUNCTION__, parent::getmininginfo(), 30);
|
return $this->memcache->setCache(__FUNCTION__, parent::getmininginfo(), 30);
|
||||||
}
|
}
|
||||||
// Wrapper to check our wallet balance from the DEFAULT account only
|
|
||||||
public function getbalance() {
|
|
||||||
$this->oDebug->append("STA " . __METHOD__, 4);
|
|
||||||
$aAccounts = parent::listaccounts();
|
|
||||||
return $aAccounts[''];
|
|
||||||
}
|
|
||||||
public function getblockcount() {
|
public function getblockcount() {
|
||||||
$this->oDebug->append("STA " . __METHOD__, 4);
|
$this->oDebug->append("STA " . __METHOD__, 4);
|
||||||
if ($data = $this->memcache->get(__FUNCTION__)) return $data;
|
if ($data = $this->memcache->get(__FUNCTION__)) return $data;
|
||||||
return $this->memcache->setCache(__FUNCTION__, parent::getblockcount(), 30);
|
return $this->memcache->setCache(__FUNCTION__, parent::getblockcount(), 30);
|
||||||
}
|
}
|
||||||
|
// Wrapper method to get the real main account balance
|
||||||
|
public function getrealbalance() {
|
||||||
|
$this->oDebug->append("STA " . __METHOD__, 4);
|
||||||
|
$aAccounts = parent::listaccounts();
|
||||||
|
$dBalance = parent::getbalance();
|
||||||
|
// Account checks
|
||||||
|
if (count($aAccounts) == 1) {
|
||||||
|
// We only have a single account so getbalance will be fine
|
||||||
|
return $dBalance;
|
||||||
|
} else {
|
||||||
|
$dMainBalance = $aAccounts[''];
|
||||||
|
$dUnconfirmed = $dMainBalance - $dBalance;
|
||||||
|
return $dMainBalance - $dUnconfirmed;
|
||||||
|
}
|
||||||
|
}
|
||||||
public function getdifficulty() {
|
public function getdifficulty() {
|
||||||
$this->oDebug->append("STA " . __METHOD__, 4);
|
$this->oDebug->append("STA " . __METHOD__, 4);
|
||||||
if ($data = $this->memcache->get(__FUNCTION__)) return $data;
|
if ($data = $this->memcache->get(__FUNCTION__)) return $data;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user