Bitcoin - PHP Transaction-Script
Um meine Bitcoins automatisch zu sichern, habe ich in PHP ein Script geschrieben, mit dem es mir auf einfache Weiße ermöglicht wird alle Bitcoins die ich besitze an eine bestimmte Adresse mit eigens festgelegter Gebühr zu überweißen.
Mit nur wenigen Änderungen ist es möglich die Transaktion den eigenen Bedürfnissen an zu passen, z.B. eine feste Fee (Gebühr) einstellen, mehrere Ausgabeadressen, etc.
Für die Funktion wird benötigt:
- bitcoin-Client mit RPC Protokoll z.B. Standart Client Bitcoin-qt.
- jsonRpc lib fü php: jsonrpc-Client PHP
Das Script:
require_once("jsonRPCClient.php");
$jsonrpc = new jsonRPCClient("http://127.0.0.1:8332");
$unspent = $jsonrpc->listunspent();<br /> $i=0;
$amount=0;<br /> for(; isset($unspent[$i]); $i++)
{
$input[$i] = array(
"txid"=>$unspent[$i]['txid'],
"vout"=>$unspent[$i]['vout']);
$amount += $unspent[$i]['amount'];
}
$fee = (int) ((($i+1) * 181 + 34 + 10) /1024) + 1;
$fee *= 0.0001; //fee per kb
if($amount > $fee AND $fee > 0)
{
echo "Amount:\t ".($amount - $fee)."\n";
echo "Fee: \t ".($fee)."\n";
$output = array(
"1BackupVNHhsJrhnwTAuKiMz2nosj9vtxa" => ($amount - $fee));
echo "Unsigned:\n";
echo $tx = $jsonrpc->createrawtransaction($input, $output);
echo "\nSigned:\n";
$signed = $jsonrpc->signrawtransaction($tx);
echo $signed['hex'];
echo "\nResult:\n";
if(isset($signed['complete']) AND $signed['complete'] != 0)
$jsonrpc->sendrawtransaction($signed['hex']);
else
echo "failed";
echo "\n";
}
Für Fragen dazu stehe ich gerne zur Verfügung.