PHP Bitwasp, подписание транзакции с биткойн-концомPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 PHP Bitwasp, подписание транзакции с биткойн-концом

Сообщение Anonymous »

Я пытаюсь подписать тестовую транзакцию bitcoin-cash, а затем транслировать ее.
Для версии bitwasp 0.0.35.0 код:

Код: Выделить всё

   $utxoOwnerPrivateKey = 'MyPrIvAtEKey';//public key is "16Dbmp13CqdLVwjXrd6amF48t7L8gYSGBj", note - the real private key is another
$utxo = '5e44cdab9cb4a4f1871f2137ab568bf9ef2760e52816971fbaf0198f19e28378';
$utxoAmount = 598558;
$reciverPublicKey = '1EjCxux1FcohsBNGzY9KdF59Dz7MYHQyPN';
$fee = 1000;

$addressCreator = new \Btccom\BitcoinCash\Address\AddressCreator();

$networkObject = \Btccom\BitcoinCash\Network\NetworkFactory::bitcoinCash();
$keyPairInput = \BitWasp\Bitcoin\Key\PrivateKeyFactory::fromWif($utxoOwnerPrivateKey, null, $networkObject);

$outpoint = new \BitWasp\Bitcoin\Transaction\OutPoint(\BitWasp\Buffertools\Buffer::hex($utxo, 32), 0);

$transaction = \BitWasp\Bitcoin\Transaction\TransactionFactory::build()
->spendOutPoint($outpoint)
->payToAddress($utxoAmount - $fee, $addressCreator->fromString($reciverPublicKey, $networkObject) )
->get();

echo "Unsigned transaction: " . $transaction->getHex() . '

';

$signScript = \BitWasp\Bitcoin\Script\ScriptFactory::scriptPubKey()->payToPubKeyHash($keyPairInput->getPublicKey()->getPubKeyHash());
$txOut = new \BitWasp\Bitcoin\Transaction\TransactionOutput($utxoAmount  - $fee, $signScript);

$signer = new \BitWasp\Bitcoin\Transaction\Factory\Signer($transaction);

$signatureChecker = \Btccom\BitcoinCash\Transaction\Factory\Checker\CheckerCreator::fromEcAdapter( \BitWasp\Bitcoin\Bitcoin::getEcAdapter() ); // for version 0.0.35
$signer->setCheckerCreator( $signatureChecker ); // for version 0.0.35
$input = $signer->input(0, $txOut);
$signatureType = \Btccom\BitcoinCash\Transaction\SignatureHash\SigHash::ALL | \Btccom\BitcoinCash\Transaction\SignatureHash\SigHash::BITCOINCASH;
$input->sign($keyPairInput, $signatureType);
$signed = $signer->get();

echo "Witness serialized transaction: " . $signed->getHex() . '

';
echo "Base serialized transaction: " . $signed->getBaseSerialization()->getHex() . '

';
echo "Script validation result: " . ($input->verify() ? "yes\n" : "no\n"). '

';

die();
< /code>

В этом случае я получаю результат: < /p>

Script validation result: no
Попытка транслировать транзакцию BCH выдает ошибку:

Код: Выделить всё

An error occured:
16: mandatory-script-verify-flag-failed (Signature must be zero for failed CHECK(MULTI)SIG operation). Code:-26
Думаю, это означает, что подпись неправильная. Если мы удалим флаг $signatureType (оставим это значение по умолчанию), то результат проверки скрипта будет да, но при широковещании будет выдана ошибка:

Код: Выделить всё

16: mandatory-script-verify-flag-failed (Signature must use SIGHASH_FORKID). Code:-26
< /code>

Я думаю, это означает, что транзакция подписана как в биткойн -сети, должна быть подписана правилами биткойн -cash. Может я ошибаюсь. Но подписание биткойнов транзакция в порядке. У Bitwasp нет руководств, как подписать транзакции с биткойнами, у меня есть тот же код для Bitwasp v.0.0.34.2 (без Addon "btccom/bitwasp-bitcoin-bch-addon", используя $ signer-> redembitcoincash (true) ; 
function), но дает тот же результат. и включите его в хэш: < /p>

$hasher = new V1Hasher($this->transaction, $this->amount);
< /code>

Но для Bitcoin bitwasp не требуется сумма, предположительно, она берет сумму от транзакции. < /p>

Помогите мне, пожалуйста, подписать транзакцию, у Bitwasp есть только биткойн-примеры, а не биткойн-Cash. Очень трудно найти какую-либо информацию о подписании PHP Altcoins без стороннего программного обеспечения. С уважением.

Подробнее здесь: https://stackoverflow.com/questions/522 ... ransaction
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Создать биткойн-адрес в PHP
    Anonymous » » в форуме Php
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как сделать биткойн сжатым открытым ключом
    Гость » » в форуме Python
    0 Ответы
    39 Просмотры
    Последнее сообщение Гость
  • Создание биткойн -транзакций с использованием биткойнлиб
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Почему я продолжаю получать эту ошибку - ❌ Подписание транзакции не удалось: «Solders.transaction.versionedTransaction».
    Anonymous » » в форуме Python
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Как создать полезную нагрузку транзакции для подписанной транзакции EIP-1559
    Гость » » в форуме Python
    0 Ответы
    126 Просмотры
    Последнее сообщение Гость

Вернуться в «Php»