我正在建立一个比特币钱包,但收到错误消息:无效的输入。
这是示例代码
var transaction = new Transaction();
List<NBitcoin.ICoin> receivedCoins = new List<NBitcoin.ICoin>();
OutPoint outPointToSpend = null;
if (balance.Operations.Count > 0)
{
foreach (var operation in balance.Operations)
{
foreach (Coin receivedCoin in operation.ReceivedCoins)
{
outPointToSpend = receivedCoin.Outpoint;
{
if (receivedCoin.TxOut.ScriptPubKey == mk.ScriptPubKey)
{
outPointToSpend = receivedCoin.Outpoint;
}
}
if (outPointToSpend == null)
throw new Exception("TxOut doesn't contain our ScriptPubKey");
transaction.Inputs.Add(new TxIn() { PrevOut = outPointToSpend });
receivedCoins.Add(receivedCoin);
}
一切似乎都正常,我没有收到其他错误。这也是事务生成器。
TransactionBuilder builder = new TransactionBuilder();
var tx = builder
.AddCoins(receivedCoins)
.AddKeys(mk)
.Send(Stranger, Money.Coins(k))
.SetChange(mk)
.SendFees(Money.Coins(0.0001m))
.BuildTransaction(sign: true);
有什么想法吗?
这不是编译错误。在MessageBox,ErrorCode:和Error message:
中构建项目时收到错误消息BroadcastResponse broadcastResponse = client.Broadcast(tx).Result;
if (!broadcastResponse.Success)
{
MessageBox.Show("ErrorCode: " + broadcastResponse.Error.ErrorCode);
MessageBox.Show("Error message: " + broadcastResponse.Error.Reason);
}
else
{
MessageBox.Show("Success! You can check out the hash of the transaciton in any block explorer:");
Console.WriteLine(tx.GetHash());
}