1

我正在使用 c# 和 NBitcoin 编写我自己的 Programm。(阅读“编程区块链”一书)我可以很好地发送比特币,但非常复杂。这是由于我对交易 ID 缺乏了解。

目前我需要从我的比特币中获取最后一个交易 ID。在这个 ID 的帮助下,我可以将这个比特币发送到其他地方。

这也是我的主要问题。我是否必须保存我收到的每个比特币的每个交易 ID?在这句话中,我使用“比特币”来表示任意数量的比特币。如果我有一个收到 2 个比特币 (1+1) 的地址并且我现在想花费 1.5 个比特币怎么办?如果我花了一个“完整”的硬币,我可以忘记交易 ID,只需要保留剩下的一半?

一个更清楚地表达我的困惑的例子:我有一个地址(ABCDEFGH),我收到了 10 个比特币,其中有 10 笔不同的交易(交易 ID 1-10)因为我没有参与发送(有人把它送给我)我不知道这 10 个交易的交易 ID。我如何以编程方式获取它们?获得所有 TransactionID 后,我现在是否必须将它们全部写下来并跟踪它们以用于我的 ABCDEFGH 地址以备将来支出,或者有什么方法可以说“花费 x 数量的这个地址”?

从这本书中,我以某种方式了解到,我每次交易都需要花费 1 个比特币。因此,如果我想发送 0.3 比特币,我必须将 0.3 比特币发送给接收方,然后将 0.7 比特币返回给我?!?!

有没有办法像这样对它进行编程:

交易(MoneyAmount,RecieverAddress,SenderAddress);

4

1 回答 1

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 字符串添加到列表中。它说它不能将“字符串”转换为 System.Collections.Generic.IEnumerable

于 2017-11-29T20:18:53.937 回答