NBitcoin Не удаётся создать транзакцию
Следующий код создаёт bitcoin-транзакцию с 1 входом и 1 выходом. Адреса отправителя и получателя совпадают. fundingTx - существующая транзакция с 1 непотраченным выходом, senderAddresses - массив NBitcoin.BitcoinAddress c 1 элементом - адрес отправителя (включает и приватный ключ), coin - выход fundingTx с индексом 0 (первый и единственный), recipient - получатель (NBitcoin.BitcoinAddress, тот же адрес, что и отправитель), fees - комиссия за транзакцию (корректное значение в сатошах).
Transaction tx1 = Transaction.Parse(fundingTxHexString, Network.Main);
Coin coin = new Coin(tx1, 0);
TransactionBuilder builder = Network.CreateTransactionBuilder();
builder.AddCoins(new[] { coin });
builder.AddKeys(senderAddresses.Select((sender) => sender.PrivateKey).ToArray());
builder.SendFees(new Money(fees));
builder.SetChange(changeAddress.Address.ScriptPubKey);
builder.SendAllRemainingToChange();
builder.Send(recipient, value);
Transaction transaction = builder.BuildTransaction(true);
В результате иногда я получаю вот такую ерунду:
{
"addresses": [
"bc1qmystncn6phsrtex5hchtulwvwrqj7gl79qe2zk"
],
"block_height": -1,
"block_index": -1,
"confirmations": 0,
"double_spend": false,
"fees": 0,
"hash": "f6ef6ddbb30eedde0695a4a6967c1bb97742e58f22007906783d3c20b102f215",
"inputs": [
{
"age": 0,
"output_index": 0,
"prev_hash": "b4111fb1bf6ec9ca3875b468eb02bb47c433a77e459a498b643e63fa1633fa66",
"script_type": "empty",
"sequence": 4294967295
}
],
"outputs": [
{
"addresses": [
"bc1qmystncn6phsrtex5hchtulwvwrqj7gl79qe2zk"
],
"script": "0014d920b9e27a0de035e4d4be2ebe7dcc70c12f23fe",
"script_type": "pay-to-witness-pubkey-hash",
"value": 1595000
}
],
"preference": "low",
"received": "2022-07-13T22:52:24.566309859Z",
"relayed_by": "44.200.190.150",
"size": 191,
"total": 1595000,
"ver": 1,
"vin_sz": 1,
"vout_sz": 1,
"vsize": 110
}
То есть проблема с тем как обрабатывается coin. При этом builder.Verify возвращает true, то есть транзакция сформирована "корректно". Подскажите, как исправить?