Address balance API

This commit is contained in:
marcdeb1 2018-12-18 22:11:00 +01:00
parent af39804ce7
commit 830df53d74

View file

@ -729,13 +729,13 @@ class MainController extends AppController {
} }
// check if the tag is taken // check if the tag is taken
$addrTag = $this->Addresses->find()->select(['Id'])->where(['LOWER(Tag)' => strtolower($entity->Tag)])->first(); $addrTag = $this->Addresses->find()->select(['id'])->where(['LOWER(Tag)' => strtolower($entity->Tag)])->first();
if ($addrTag) { if ($addrTag) {
return $this->_jsonError('Oops! The tag is already taken. Please specify a different tag.', 400); return $this->_jsonError('Oops! The tag is already taken. Please specify a different tag.', 400);
} }
// check for existing verification // check for existing verification
$exist = $this->TagAddressRequests->find()->select(['Id'])->where(['Address' => $base58address, 'IsVerified' => 0])->first(); $exist = $this->TagAddressRequests->find()->select(['id'])->where(['Address' => $base58address, 'IsVerified' => 0])->first();
if ($exist) { if ($exist) {
return $this->_jsonError('Oops! There is a pending tag verification for this address.', 400); return $this->_jsonError('Oops! There is a pending tag verification for this address.', 400);
} }
@ -755,16 +755,23 @@ class MainController extends AppController {
if (!isset($base58address)) { if (!isset($base58address)) {
return $this->_jsonError('Base58 address not specified.', 400); return $this->_jsonError('Base58 address not specified.', 400);
} }
// TODO: Add unconfirmed_balance to response $address = $this->Addresses->find()->select(['id'])->where(['address' => $base58address])->first();
$result = $this->Addresses->find()->select(['Balance'])->where(['Address' => $base58address])->first(); if (!$address) {
if (!$result) { return $this->_jsonError('Could not find address.', 400);
// Return 0 for address that does not exist?
$result = new \stdClass();
$result->Balance = 0;
} }
$conn = ConnectionManager::get('default');
return $this->_jsonResponse(['success' => true, ['balance' => ['confirmed' => $result->Balance, 'unconfirmed' => 0]]]); $stmt = $conn->execute(sprintf(
'SELECT TA.debit_amount, TA.credit_amount, ' .
'FROM transaction_address TA' .
'WHERE TA.address_id = ?'), [$address->id]);
$transaction_addresses = $stmt->fetchAll(\PDO::FETCH_OBJ);
$balance = 0;
foreach($transaction_addresses as $ta) {
$balance += $ta->credit_amount;
$balance -= $ta->debit_amount;
}
return $this->_jsonResponse(['success' => true, ['balance' => ['confirmed' => $balance, 'unconfirmed' => 0]]]);
} }
public function apiaddrutxo($base58address = null) { public function apiaddrutxo($base58address = null) {