Hi,
this is a gift to the community from
www.e-token.org.
It's a small PHP soft I'm using to manage large lists of giveaways. Nothing exceptional, it's just about sharing it.
Example here:
https://bitcointalk.org/index.php?topic=417553.msg4560016#msg4560016The only thing you have to do it to register the addresses by hand.
Then the transactions are auto, according to your setup. A list with the TX hash is returned.
I'll do no support on this, if you don't know how run a PHP file, google is your friend.
Be careful of what you do, this script will auto-send your coins, I'm not responsible of any mistakes or so.
Here how it look:
Here the code:
<?php
/*
Simple Auto-Giveaway script
by Mogui, gift to the community
Community manager of e-token.org
HELP
1. Configure your altcoin.conf (server=1, rpcuser, rpcpassword)
2. Confirgure the informations below
3. Start your daemon
4. Run index.php
5. After you're sure everything is okay, push start.
Be careful what you do,
you'll proceed to auto-sends by your own.
YOUR SETUP HERE
*/
class moguiveaway {
private $giveaway = 0.1; // amount per address
private $max = 10; // maximum to send
// Connections details
private $rpcuser = 'root';
private $rpcpass = 'pass';
private $rpchost = 'localhost';
private $rpcport = '29663';
// Array of addresses
private $addr = array(
'eCMjnUci43apiE87BPKEqrAzWLuUaDBPYo',
'eQwRi9XfkDHWypVPadJwisjdbUdxEB2q6o',
'addr3',
'ect...'
);
/* ==================================================================== */
function letsrollbaby() {
$rpc = new jsonRPCClient('http://'.$this->rpcuser.':'.$this->rpcpass.'@'.$this->rpchost.':'.$this->rpcport);
$c = 0;
$count = count($this->addr);
$balance = $rpc->getbalance();
if(isset($_REQUEST['x'])) {
echo "<b>Starting on ".intval(microtime(true))."<br>
with a balance of ".$balance." eTOK.</b><hr>";
for($i=0; $i<$count;$i++) {
$addr = $this->addr[$i];
$do = $rpc->sendtoaddress($addr, $this->giveaway);
$tx = $do == 'error' ? 'Transaction aborded: not enought funds, or unknown error.' : $do;
if($c < $this->max) {
$time = intval(microtime(true));
echo 'Public: '.$addr.'<br>';
echo 'TX: '.$tx.'<br>';
echo 'Time: '.$time.'<br><br>';
if($i % 25) { sleep(1); }
$c = $c + $this->giveaway;
}
}
$balance = $rpc->getbalance();
echo "<hr><b>Over at ".intval(microtime(true))."<br>
with a balance of ".$balance." eTOK.</b>";
} else {
if($rpc->getbalance() != 'error') {
echo "<p><b>Mogui's super giveaway fingers economizer</b></p>
<p>".$count." addresses registered.</p>
<p>Giveaways setup on ".$this->giveaway." per address.</p>
<p>Your balance is ".$balance." eTOK on this wallet.</p>
<p>You'll send ".$this->max." max.</p>
<p>You can pay a max of ".$this->max." / ".$this->giveaway." = ".($this->max / $this->giveaway)." persons.</p>
<p>Start now ? <a href='?x=1'>YES</a></p>
<p>Your daemon will take at least 1sec per addr. Don't stop the engine.</a></p>
";
} else {
echo "<p>Unable to connect to the server.</p>";
}
}
}
}
/* / ========================================================================= / */
$ga = new moguiveaway();
$ga->letsrollbaby();
/* / ========================================================================= /
COPYRIGHT
Copyright 2007 Sergio Vaccaro <sergio@inservibile.org>
This file is part of JSON-RPC PHP.
JSON-RPC PHP is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
JSON-RPC PHP is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with JSON-RPC PHP; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* The object of this class are generic jsonRPC 1.0 clients
* http://json-rpc.org/wiki/specification
*
* @author sergio <jsonrpcphp@inservibile.org>
*/
class jsonRPCClient {
private $debug;
private $url;
private $id;
private $notification = false;
public function __construct($url,$debug = false) {
$this->url = $url;
empty($proxy) ? $this->proxy = '' : $this->proxy = $proxy;
empty($debug) ? $this->debug = false : $this->debug = true;
$this->id = 1;
}
public function setRPCNotification($notification) {
empty($notification) ? $this->notification = false : $this->notification = true;
}
public function __call($method,$params) {
if (!is_scalar($method)) { throw new Exception('Method name has no scalar value'); }
if (is_array($params)) { $params = array_values($params); } else {
throw new Exception('Params must be given as array');
}
if ($this->notification) { $currentId = NULL; } else {
$currentId = $this->id;
}
$request = array('method' => $method, 'params' => $params, 'id' => $currentId);
$request = json_encode($request);
$this->debug && $this->debug.='***** Request *****'."\n".$request."\n".'***** End Of request *****'."\n\n";
$opts = array ('http' => array ('method' => 'POST', 'header' => 'Content-type: application/json', 'content' => $request));
$context = stream_context_create($opts);
if ($fp = @fopen($this->url, 'r', false, $context)) {
$response = '';
while($row = fgets($fp)) {
$response.= trim($row)."\n";
}
$this->debug && $this->debug.='***** Server response *****'."\n".$response.'***** End of server response *****'."\n";
$response = json_decode($response,true);
} else {
return "error";
}
if ($this->debug) { echo nl2br($debug); }
if (!$this->notification) {
if ($response['id'] != $currentId) {
throw new Exception('Incorrect response id (request id: '.$currentId.', response id: '.$response['id'].')');
}
if (!is_null($response['error'])) {
throw new Exception('Request error: '.$response['error']);
}
return $response['result'];
} else { return true; }
}
}
?>