Set account name for gettransaction results.

This only sets the name for any kind of "receiving" category
(receive/immature/generate).

Fixes #360.
This commit is contained in:
Josh Rickmar 2016-02-09 09:41:39 -05:00
parent 32ca19322a
commit 102cd553c5

View file

@ -911,19 +911,28 @@ func GetTransaction(icmd interface{}, w *wallet.Wallet) (interface{}, error) {
continue continue
} }
var addr string var address string
var accountName string
_, addrs, _, err := txscript.ExtractPkScriptAddrs( _, addrs, _, err := txscript.ExtractPkScriptAddrs(
details.MsgTx.TxOut[cred.Index].PkScript, w.ChainParams()) details.MsgTx.TxOut[cred.Index].PkScript, w.ChainParams())
if err == nil && len(addrs) == 1 { if err == nil && len(addrs) == 1 {
addr = addrs[0].EncodeAddress() addr := addrs[0]
address = addr.EncodeAddress()
account, err := w.Manager.AddrAccount(addr)
if err == nil {
accountName, err = w.Manager.AccountName(account)
if err != nil {
accountName = ""
}
}
} }
ret.Details = append(ret.Details, btcjson.GetTransactionDetailsResult{ ret.Details = append(ret.Details, btcjson.GetTransactionDetailsResult{
// Fields left zeroed: // Fields left zeroed:
// InvolvesWatchOnly // InvolvesWatchOnly
// Account
// Fee // Fee
Address: addr, Account: accountName,
Address: address,
Category: credCat, Category: credCat,
Amount: cred.Amount.ToBTC(), Amount: cred.Amount.ToBTC(),
Vout: cred.Index, Vout: cred.Index,