我正在使用c#和NBitcoin编写自己的Programm。 (阅读“编程区块链”一书) 我可以发出比特币就好了,但非常复杂。这是由于我对交易ID缺乏了解。
目前我需要从比特币中获取最后一笔交易ID。在这个ID的帮助下,我可以将比特币发送到其他地方。
这也是我的主要问题。我是否必须保存我收到的每个BItcoin的每个交易ID?在这句话中,我使用“比特币”来表示任何数量的比特币。如果我有一个地址我收到2比特币(1 + 1)并且我想现在花费1.5 BItcoin怎么办?如果我花了一个“完整”的硬币,我可以忘记交易ID,只需保留剩下的一半吗?
更清楚地表达我的困惑的一个例子: 我有一个地址(ABCDEFGH),我收到了10个不同交易的10个比特币(交易ID 1-10) 由于我没有参与发送(有人赠送给我),我不知道这10个交易的交易ID。我如何以编程方式获得它们? 在获得所有的TransactionID后,我是否必须将它们全部写下来并记录下来以获取我的ABCDEFGH地址以供将来支出,或者是否有某种方式可以说“花费x这个地址”?
从书中我不知怎的理解我需要每笔交易花费1比特币。因此,如果我想发送0.3比特币,我必须将0.3比特币发送给接收者并将0.7发回给我?!?!
有没有办法像这样编程:
交易(MoneyAmount,RecieverAddress,SenderAddress);
答案 0 :(得分:0)
我想我找到了一种方法来做到这一点,但最后一点C#Wisdom失踪了:
var balance = client.GetBalance(new BitcoinPubKeyAddress(bitcoinPrivateKey.GetAddress().ToString())).Result;
var tid = new List<String>();
foreach (var operation in balance.Operations)
//Console.WriteLine(operation.TransactionId.ToString());
tid.AddRange(operation.TransactionId.ToString());
如果我使用Console.WriteLine,我会得到正确的交易ID。但由于某种原因,我无法将TransactionID字符串添加到List。它说它无法转换&#34; string&#34;到System.Collections.Generic.IEnumerable