-
Notifications
You must be signed in to change notification settings - Fork 437
Open
Description
hey @afk11
I am stuck in an error in main, can you help me? This is my code.
$oldTransactions = file_get_contents('https://blockchain.info/rawaddr/15716aoSwq1VuqZgxbTSEXg7XAknmRVmE7');
$oldTransactions = json_decode($oldTransactions, true);
$wif = 'xxxxx';
$txid = $oldTransactions['txs'][0]['hash'];
$address = '1LDQAktLU5Wcw55CU3nzNE6RqVnCPFWzdQ';
$privKeyFactory = new PrivateKeyFactory;
$key = $privKeyFactory->fromWif($wif);
$witnessScript = new WitnessScript(
ScriptFactory::scriptPubKey()->payToPubKeyHash($key->getPubKeyHash())
);
$dest = new SegwitAddress(
WitnessProgram::v0(
(new AddressCreator())->fromString($address)->getHash()
)
);
$outpoint = new OutPoint(Buffer::hex($txid, 32), 0);
$txOut = new TransactionOutput(100000, $witnessScript);
$builder = (new TxBuilder())
->spendOutPoint($outpoint)
->payToAddress(9000, $dest);
$signer = new Signer($builder->get(), Bitcoin::getEcAdapter());
$input = $signer->input(0, $txOut);
$input->sign($key);
$signed = $signer->get();
$consensus = ScriptFactory::consensus();
echo "Script validation result: " . ($input->verify(I::VERIFY_P2SH | I::VERIFY_WITNESS) ? "yay\n" : "nay\n");
echo PHP_EOL;
echo "Witness serialized transaction: " . $signed->getHex() . PHP_EOL. PHP_EOL;
echo "Base serialized transaction: " . $signed->getBaseSerialization()->getHex() . PHP_EOL;
$apiUrl = 'https://blockchain.info/pushtx';
$postData = [
'tx' => $signed->getHex(),
];
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
$response = curl_exec($ch);
if ($response === false) {
die('Error: ' . curl_error($ch));
}
curl_close($ch);
$responseArray = json_decode($response, true);
if (isset($responseArray['status']) && $responseArray['status'] === 'success') {
echo 'Transaction broadcasted successfully!';
} else {
echo 'Error broadcasting transaction: ' . $response;
}
Metadata
Metadata
Assignees
Labels
No labels