2017-11-29 4 views
1

私は自分のプログラムを書くためにC#とNBitcoinを使用しています。 ( "Programming Blockchain"の本を読んで) Bitcoinsをうまく送信できますが、非常に複雑です。これは私がトランザクションIDを理解していないためです。Bitcoin Transaction IDの取得方法/理解方法

私はBitcoinから最後のトランザクションIDを取得する必要があります。このIDの助けを借りて、このBitcoinをどこか別の場所に送ることができます。

これも私の主な問題です。私はこれまでに受け取ったすべてのBItcoinのすべてのトランザクションIDを保存する必要がありますか?この文章では、「Bitcoin」を使用してBitcoinの量を表します。もし私が2 Bitcoins(1 + 1)を受け取ったアドレスを持っていたら、今私は1.5 BItcoinを使いたいですか?私が1つの "完全な"コインを過ごした場合、私はトランザクションIDを忘れることができ、残りの半分の1つを保持するだけですか?

より明確に私の混乱を表現するようにする例: 私は住所(ABCDEFGH)を持っていると私は、送信(Somoneの人々に関与していなかったので、私は10回の異なるトランザクション(トランザクションID 1-10) で10 Bitcoinsを受け取っ私に謝った)私はそれらの10トランザクションのトランザクションIDを知らない。プログラムでそれらを取得するにはどうすればよいですか? すべてのTransactionIDを取得したら、今すぐすべてを書き留めて、今後の支出のために自分のABCDEFGHアドレスを記録しておく必要がありますか、単に「このアドレスのx金額を使う」と言う方法がありますか?

私は何とかして、トランザクションごとに常に1つのBitcoinを費やす必要があると理解していました。だから、もし私が0.3 Bitcoinを送ろうと思ったら、私は0.3 Bitcoinを受信者に送り、0.7を私に送り返さなければならないのですか?

このようにそれをプログラムの開発する方法があります:

トランザクションが(MoneyAmount、RecieverAddress、SenderAddress)。

+0

要するに、私はコインを使うことができるように、プログラムでアドレスのTransactionIDを取得しますか? – Klark

答えて

0

私は私がこれを行う方法を見つけたと思うが、C#の知恵の最後のビットが欠落しています。

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に変換することはできないと言います。

+0

OK im stupid。解決方法は、AddRangeの代わりにtid.Add(...)を使用することです – Klark

関連する問題