Beispiel #1
0
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')));
 }