Skip to content

Error broadcasting transaction: Code: -26, Error: non-mandatory-script-verify-flag (Invalid Taproot control block size) #918

Description

@hussainSheikh123

Hey @afk11 !
can you help me this is my code:
$oldTransactions = file_get_contents('https://blockchain.info/rawaddr/15716aoSwq1VuqZgxbTSEXg7XAknmRVmE7');
$oldTransactions = json_decode($oldTransactions, true);
$wif = 'xxxxxxx';
$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->getOutputScript());

$builder = (new TxBuilder())
    ->spendOutPoint($outpoint)
    ->payToAddress(9000, $dest);

$signData = (new SignData())->p2wsh($witnessScript);

$signer = new Signer($builder->get(), Bitcoin::getEcAdapter());
$input = $signer->input(0, $txOut, $signData);
$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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions