我已经想了三天了。我认为我的问题不在于事务构建器,而在于.AddCoins部分。
TransactionBuilder builder = Network.TestNet.CreateTransactionBuilder();
var transaction = builder
.AddCoins(coins)
.AddKeys(myPrivateKey)
.Send(addressThatIamSendingTo, Money.Coins(amountToSend))
.SetChange(addressThatIamSendingFrom);
var fee = transaction.EstimateFees(new FeeRate(1m));
var finalTransaction = transaction.SendFees(fee).BuildTransaction(true);我在.AddCoins的硬币是从这里来的:
var balance = client.GetBalance(myBtcAddress); // client is from QBitNinjaClient client = new QBitNinjaClient(Network.TestNet);
var sum = 0m;
foreach (var operation in balance.Result.Operations)
{
sum += operation.Amount.ToDecimal(MoneyUnit.BTC);
}
Console.WriteLine("Sum {0} is ", sum);
var amountToSend = 0.0002m;
var transaction = Network.TestNet.CreateTransaction();
transaction.Outputs.Add(new TxOut(Money.Coins(sum), myScriptPubKey));
Coin[] coins = transaction.Outputs.AsCoins().ToArray();问题是,builder.Verify(finalTransaction)说True,但是在使用QBitNinja或Local Node广播后,即使配置为命中TestNet,我也得到了事务id,我在任何地方都看不到它,并且BTC没有被传输。
发布于 2022-02-14 21:27:12
结果是我用错误的方式把这该死的平衡。
client.GetBalance(myAddress, true)//真为非废硬币.
然后交易硬币是.AddCoins(client.GetBalance(myAddress, true).Result.Operations.SelectMany(op => op.ReceivedCoins).ToArray())
https://stackoverflow.com/questions/71118080
复制相似问题