Transactions

如何判斷未使用的輸出在哪個帳戶中?

  • December 2, 2014

當我去發送硬幣時,我希望交易忽略某個帳戶中未使用的硬幣。

我想我可以在 wallet.cpp 中做到這一點,但我不確定如何。

也許在 AvailableCoins() 函式中?如果硬幣在此帳戶中,是否繼續?我想我需要創建一個函式,如:

bool isInAccount(string strAccountName, CWalletTx *wtx)

我該怎麼做呢?

您的問題是基於對帳戶系統的誤解。不過,這是一個非常普遍的誤解。

未使用的輸出與帳戶無關。

傳入交易記入與接收交易地址相關聯的賬戶餘額。但賬戶只有餘額——他們不“擁有”發送給他們的硬幣。賬戶餘額可以變為負數,並且可以通過move命令進行修改,而無需更改硬幣。

未使用的輸出作為一個整體屬於錢包,賬戶只是跟踪誰/什麼擁有它們的數量 - 而不是具體是哪些。這就像把屬於你和朋友的錢放在一個錢包裡。您跟踪您欠朋友的金額,但您不跟踪錢包中的哪些特定紙幣或硬幣屬於他們。

要做你想做的事,你要麼需要使用單獨的錢包(將硬幣完全分開保存),要麼使用硬幣控製或原始交易 API,它允許你手動指定要使用的硬幣。

您是否希望能夠使用比特幣守護程序來做到這一點?你可以看看

獲取帳戶

RPC 呼叫。此方法的幫助是:

獲取帳戶“比特幣地址”

返回與給定地址關聯的帳戶。

參數: 1. “bitcoinaddress” (string, required) 用於賬戶查找的比特幣地址。

結果:“accountname”(字元串)帳戶地址

例子:
> 比特幣-cli 獲取帳戶“1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ”
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getaccount", "params": ["1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ"] }' -H '內容類型:文本/純文字;' http://localhost:8332/

引用自:https://bitcoin.stackexchange.com/questions/30779