Title: BitPonzi Betbot Feedback Thread
Post by: ineededausername on September 19, 2011, 10:19:23 PM
Here's a new thread for all things related to betbots. I managed to get one working, with a few trivial tweaks: <?php
if (!defined('kBitcoinToInt')) define('kBitcoinToInt', 100000000); require_once('bitcoinURL.php'); require_once('jsonRPCClient.php');
define('kJackpotRatio', 5); define('kMinSecs', 120); define('kMaxSecs', 600); define('kSecsFixed', 120);
header('Refresh: 240');
echo "Jackpot ratio threshold: " . kJackpotRatio . "<br />"; echo "Min secs remaining: " . kMinSecs . "<br />"; echo "Max secs remaining: " . kMaxSecs . "<br />";
try { $bitcoin = new jsonRPCClient(kBitcoinURL);
$betPlaced = false;
$soapClient = null; try { $soapClient = @new SoapClient("http://bitponzi.net/API/API.asmx?WSDL",array("exceptions" => 1)); } catch (SoapFault $E) { echo $E->faultstring; exit(); } $rounds = $soapClient->getRounds()->getRoundsResult->_Round; $payoutAddress = $bitcoin->getnewaddress("bet bot ineededausername"); echo "New address created: " . $payoutAddress . "<br />"; foreach ($rounds as $r) { $deposits = $soapClient->getDeposits(array("round" => $r->Name))->getDepositsResult->_Deposit; $jackpotRatio = $r->JP / $r->MinDeposit; $secsRemaining = $r->Remaining * 60; echo "<hr />Round ID: " . $r->Name . "<br />Jackpot ratio: $jackpotRatio<br />" . "Secs remaining: $secsRemaining<br/ >"; if ($r->FixedDuration) echo "Fixed duration round.<br />";
// make sure that bet bot wasn't the last to deposit. $lastConfirmedDeposit = end($deposits); if ($lastConfirmedDeposit) { $lastConfirmedPayoutAddr = $lastConfirmedDeposit->PaymentAddress;
echo "Last payment address: " . $lastConfirmedPayoutAddr . "<br />"; echo "Address id: ". $bitcoin->getaccount($lastConfirmedPayoutAddr) . "<br />"; if ('bet bot ineededausername' == $bitcoin->getaccount($lastConfirmedPayoutAddr)) { echo 'Bet bot is the last depositor<br />'; continue; } } else { echo "Only 1 deposit. <br />"; } if ($jackpotRatio >= kJackpotRatio && ($secsRemaining < mt_rand(kMinSecs,kMaxSecs)) || ($secsRemaining < kSecsFixed && $r->FixedDuration)) {
echo "Sniping...<br />"; // Let's not let it expire! $depositAddress = $soapClient->newDeposit(array( "round" => $r->Name, "bitcoinAddress" => $payoutAddress ))->newDepositResult;
if ($depositAddress[0] != "1") { echo $depositAddress; exit(); } $bitcoin->sendtoaddress($depositAddress, floatval($r->MinDeposit / kBitcoinToInt)); $betPlaced = true; echo "Bet for " . $r->MinDeposit . " placed for round " . $r->Name . ", jackpot ratio: $jackpotRatio, secs remaining: $secsRemaining<br />";
} if (!$betPlaced) echo "<hr />No bets were placed.";
}
} catch (Exception $e) { // require_once('MessageLog.inc'); // $msgLog = new MessageLog('errors'); // $msgLog->write('Exception: '.$e->getMessage()); echo $e->getMessage(); }
Make sure to replace my username with your username, or our bots will identify as the same...Known API bugs and other issues:Please note that not all of these are bugs, but they are things to be aware of. getDeposits returns empty array when there is only 1 deposit PHP does not interpret response as array- Only 128 queries/hr (not a bug, but not documented)
EDIT: Please note that this bot has not made a real deposit from my computer yet.
Title: Re: BitPonzi Betbot Feedback Thread
Post by: mb300sd on September 19, 2011, 10:22:56 PM
Not an API bug. You can test any API call and see the return XML here.
http://bitponzi.net/API/API.asmx
http://bitponzi.net/API/API.asmx?op=getDeposits
I think something funny is happening in PHP since it lacks variable types, and its not converting it to an array when theres only 1 element.
Title: Re: BitPonzi Betbot Feedback Thread
Post by: ineededausername on September 19, 2011, 10:25:27 PM
I think something funny is happening in PHP since it lacks variable types, and its not converting it to an array when theres only 1 element.
Oh damn, should've tested before saying it was a bug. I'll modify the code in a little while.
|