You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to create a bitcoin transaction but keep getting error bad request or Invalid transaction. Error: non-mandatory-script-verify-flag (Script failed an OP_EQUALVERIFY operation) . I believe I'm using the correct keys.
Below is my code:
My signed tranaction hex is:
010000000001012e1d32ebc3fa508fc740c6b589b32787e7c16132093e49008386ab59118c76f00000000000ffffffff028089000000000000160014facb445a65e273a1475b46f279a6d2bcbacf87c59a420000000000001600142865223582201a799e229c19a15ef4d7ec72097202483045022100ab0d9a9e02a8bc5907d49e4e21edbabd2a47e0eabdd97506f364bd7d9b443bd202205586775ac5ceec73a5d226c11e4076a7ca8b96a432408cc885c14af65b047ce901210353825959e0f36eff9a1257fa07ad919406a9bba4d100c6df601bc44c63d0ab1100000000
Below is my code:
$privateKey = (new BitWasp\Bitcoin\Key\Factory\PrivateKeyFactory)->fromWif('XXXXXXXXXXXXXXXXXXXXXXXXXX');
// Utxo is: outpoint.txid, outpoint.vout, txout.scriptPubKey, txout.amount
$outpoint = new OutPoint(Buffer::hex('f0768c1159ab868300493e093261c1e78727b389b5c640c78f50fac3eb321d2e'), 0);
$outputScript = ScriptFactory::scriptPubKey()->payToPubKeyHash($privateKey->getPubKeyHash());
$satoshi = 100000000; //one bitcoin in satoshi ie 100 million
$send_wallet_amount = 0.0005425 * $satoshi;
$send = 0.0003520 * $satoshi; // satoshis
$fee = 0.00002 * $satoshi; // satoshis
//calculate change
$change = $send_wallet_amount - $send - $fee;
$txOut = new TransactionOutput($send_wallet_amount, $outputScript);
$transaction = TransactionFactory::build()
->input('f0768c1159ab868300493e093261c1e78727b389b5c640c78f50fac3eb321d2e', 0 )
//->spendOutPoint($outpoint)
//address to send to
->payToAddress($send, (new BitWasp\Bitcoin\Address\AddressCreator)->fromString('bc1qlt95gkn9ufe6z36mgme8nfkjhjavlp79ynjrdz'))
//change
->payToAddress($change, (new BitWasp\Bitcoin\Address\AddressCreator)->fromString('bc1q9pjjydvzyqd8n83znsv6zhh56lk8yztj3m7cjn'))
->get();
$tx_hex = $transaction->getHex();
$redeemScript = ScriptFactory::scriptPubKey()->p2wkh($privateKey->getPubKeyHash());
$p2shScript = new P2shScript($redeemScript);
$signData = new SignData();
$signData->p2sh($redeemScript);
$transactionOutputs = [];
foreach ($transaction->getInputs() as $idx => $input) {
//$transactionOutput = new TransactionOutput(0, ScriptFactory::fromHex($input->getScript()->getBuffer()->getHex()));
$transactionOutput = new TransactionOutput(0, ScriptFactory::fromHex($p2shScript->getBuffer()->getHex()));
array_push($transactionOutputs, $transactionOutput);
}
$signer = new Signer($transaction, Bitcoin::getEcAdapter());
foreach ($transactionOutputs as $idx => $transactionOutput) {
$signer->sign($idx, $privateKey, $transactionOutput, $signData);
}
$signedTx = $signer->get();
$hex = $signedTx->getHex();
The text was updated successfully, but these errors were encountered:
code2expert
changed the title
Please help - Error with creating a signed bitcoin transaction
Error with creating a signed bitcoin transaction
Jan 29, 2024
Kindly help with this issue.
I am trying to create a bitcoin transaction but keep getting error bad request or Invalid transaction. Error: non-mandatory-script-verify-flag (Script failed an OP_EQUALVERIFY operation) . I believe I'm using the correct keys.
Below is my code:
My signed tranaction hex is:
010000000001012e1d32ebc3fa508fc740c6b589b32787e7c16132093e49008386ab59118c76f00000000000ffffffff028089000000000000160014facb445a65e273a1475b46f279a6d2bcbacf87c59a420000000000001600142865223582201a799e229c19a15ef4d7ec72097202483045022100ab0d9a9e02a8bc5907d49e4e21edbabd2a47e0eabdd97506f364bd7d9b443bd202205586775ac5ceec73a5d226c11e4076a7ca8b96a432408cc885c14af65b047ce901210353825959e0f36eff9a1257fa07ad919406a9bba4d100c6df601bc44c63d0ab1100000000
Below is my code:
$privateKey = (new BitWasp\Bitcoin\Key\Factory\PrivateKeyFactory)->fromWif('XXXXXXXXXXXXXXXXXXXXXXXXXX');
The text was updated successfully, but these errors were encountered: