如何通过php在比特币测试网上发送比特币交易?

问题描述

我发现了一个 PHP 比特币包 "bitwasp/bitcoin": "^1.0",它在 GitHub 上拥有最多的星星。 我尝试通过 tesnet 从隔离见证地址发送一些比特币到另一个隔离见证地址,按照示例 https://github.com/Bit-Wasp/bitcoin-php/blob/1.0/examples/tx.fund.p2wpkh.php 实际工作

<?PHP
        Bitwasp::setNetwork(NetworkFactory::bitcoinTestnet());
        $network = Bitwasp::getNetwork();
        $ecAdapter = Bitwasp::getEcAdapter();

        $privateKey = 'cNDENaGUxLDUveptKTpap5ntvZEd7aytvyiRRyQaR9nKQ7L2Wdjp';
        $txid = '5d16df78dbfa335502124ef85fc8e49ff9414086ef8e80f377c9aeff692152ad';
        $to = 'tb1qx92d8azr93janzx4q80rqeujt63tq53v740shj';
        $qty = 10400;
        $qtyAfterFee = 10000;

        // From
        $privateKey = (new PrivateKeyFactory())->fromWif($privateKey,$network);
        $scriptPubKey = ScriptFactory::scriptPubKey()->payToPubKeyHash($privateKey->getPubKeyHash());
        // To
        $to =  (new AddressCreator())->fromString($to,$network);
        // Utxo
        $outpoint = new OutPoint(Buffer::hex($txid,32),0);
        $txOut = new TransactionOutput($qty,$scriptPubKey);

        $tx = (new TxBuilder())
            ->spendOutPoint($outpoint)
            ->output($qtyAfterFee,$to->getScriptPubKey())
            ->get();

        // Sign transaction
        $signed = (new Signer($tx,$ecAdapter))
            ->sign(0,$privateKey,$txOut)
            ->get();

        $broadcast = $signed->getHex();
         // Hex: 0100000001ad522169ffaec977f3808eef864041f99fe4c85ff84e12025533fadb78df165d000000006a47304402207b48f5e1f78d8e3903646abbe2953743625f3aed033ff971bec266f4cabd85d602206da9171e72168a0224e3547950be848a60ce455dd93762d41c6410ac8e12d9a4012102d4206262fda5b9fa3dd124b90166f469e9ef072437582da92c4574a7c2a87241ffffffff0110270000000000001600143154d3f4432c65d988d501de3067925ea2b0522c00000000
        
        $broadcast = $this->sendTx($broadcast);
        dd($broadcast);

不幸的是,我在这里遇到了一些错误

 Client error: `POST https://blockstream.info/testnet/api/tx` resulted in a `400 Bad Request` response:
    sendrawtransaction RPC error: {"code":-26,"message":"non-mandatory-script-verify-flag (Witness requires empty scriptSig) (truncated...)

我该如何解决这个问题?或者有一个可以完全工作的例子?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...