function getBitcoinAddr($btcBalance = null) { require_once 'chipin/bitcoin.php'; $a = '15Mux55YKsWp9pe5eUC2jcP5R9K7XA4pPF'; if ($btcBalance !== null) { DB\delete('bitcoin_addresses', 'address = ?', array($a)); DB\insertOne('bitcoin_addresses', array('address' => $a, 'satoshis' => $btcBalance * Bitcoin\satoshisPerBTC(), 'updated_at' => new DateTime('now'))); } return $a; }
function testGetBalanceUsesLocallyCachedValueWhenAppropriate() { $address = '1K7dyLY6arFRXBidQhrtnyqksqJZdj2F37'; $actualBalance = BlockchainDotInfo\getBalanceInSatoshis($address); $cachedBalance = $actualBalance + 1000; DB\delete('bitcoin_addresses', 'address = ?', array($address)); DB\insertOne('bitcoin_addresses', array('address' => $address, 'satoshis' => $cachedBalance, 'updated_at' => new DateTime('now'))); $balance = Bitcoin\getBalance($address, null); assertEqual($cachedBalance, $balance->numSatoshis); assertEqual($cachedBalance / Bitcoin\satoshisPerBTC(), $balance->numBTC); }
/** * Store the balance of the given Bitcoin address to our local database for quick * access in the near future. */ function cacheBalance($address, $satoshis) { try { DB\transaction(function () use($address, $satoshis) { DB\delete('bitcoin_addresses', 'address = ?', array($address)); DB\insertOne('bitcoin_addresses', array('address' => $address, 'satoshis' => $satoshis, 'updated_at' => new DateTime('now'))); }); } catch (\PDOException $e) { # If it's an exception about a deadlock, we'll ignore it -- it's probably due to # two processes trying to update the record at the same time. if (!contains(strtolower($e->getMessage()), "deadlock found")) { throw $e; } } }
function removeCode($code) { DB\delete('confirmation_codes', 'code = ?', array($code)); }
function setPriceForBTC($currency, $price) { DB\delete('ticker_data', 'currency = ?', array($currency)); DB\insertOne('ticker_data', array('currency' => $currency, 'last_price' => $price)); }
private function setBalance($address, $btc) { DB\delete('bitcoin_addresses', 'address = ?', array($address)); DB\insertOne('bitcoin_addresses', array('address' => $address, 'satoshis' => $btc * Bitcoin\satoshisPerBTC(), 'updated_at' => new DateTime('now'))); }