Как получить / понять идентификатор транзакции Биткойн
Я использую C# и NBitcoin, чтобы написать свою собственную программу. (Читая книгу "Программирование блокчейна") Я могу отправлять биткойны просто отлично, но очень сложно. Это из-за моего непонимания идентификатора транзакции.
На данный момент мне нужно получить последний идентификатор транзакции из моей биткойны. И с помощью этого идентификатора я могу потом отправить этот биткойн куда-нибудь еще.
Это тоже моя главная проблема. Должен ли я сохранять каждый идентификатор транзакции каждого полученного мной Биткойна? В этом предложении я использую "Биткойн" для обозначения любого количества биткойнов. Что если у меня есть адрес, по которому я получил 2 биткойна (1+1), и я хочу потратить 1,5 биткойна сейчас? Если я потратил одну "полную" монету, я могу забыть идентификатор транзакции и оставить только одну оставшуюся половину?
Пример, чтобы сделать мою путаницу более ясной: у меня есть адрес (ABCDEFGH), и я получил 10 биткойнов с 10 различными транзакциями (ID транзакции 1-10), так как я не был вовлечен в отправку (некоторые люди подарили его мне), я не знаю идентификаторы транзакций этих 10 транзакций. Как я могу получить их программно? Получив все идентификаторы Transaction ID, нужно ли мне записывать их все сейчас и отслеживать их для моего адреса ABCDEFGH для будущих расходов, или есть какой-то способ просто сказать "потратить х сумму этого адреса"?
Из книги я как-то понял, что мне нужно тратить всегда 1 биткойн за транзакцию. Поэтому, если я хочу отправить 0,3 биткойна, я должен отправить 0,3 биткойна получателю и 0,7 обратно мне?!?!
Есть ли способ запрограммировать это так:
Сделка (MoneyAmount,RecieverAddress,SenderAddress);
1 ответ
Я думаю, что нашел способ сделать это, но последняя часть 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, я получаю правильные идентификаторы транзакций. Но по какой-то причине я не могу добавить строки TransactionID в список. Он говорит, что не может преобразовать "строку" в System.Collections.Generic.IEnumerable