[refactor] GetAccount{PubKey,Address} -> GetAccountDestination

This commit is contained in:
Pieter Wuille 2017-12-17 20:34:39 -08:00
parent 0c8ea6380c
commit cbe197470e
3 changed files with 13 additions and 12 deletions

View file

@ -175,14 +175,14 @@ UniValue getnewaddress(const JSONRPCRequest& request)
} }
CTxDestination GetAccountAddress(CWallet* const pwallet, std::string strAccount, bool bForceNew=false) CTxDestination GetAccountDestination(CWallet* const pwallet, std::string strAccount, bool bForceNew=false)
{ {
CPubKey pubKey; CTxDestination dest;
if (!pwallet->GetAccountPubkey(pubKey, strAccount, bForceNew)) { if (!pwallet->GetAccountDestination(dest, strAccount, bForceNew)) {
throw JSONRPCError(RPC_WALLET_KEYPOOL_RAN_OUT, "Error: Keypool ran out, please call keypoolrefill first"); throw JSONRPCError(RPC_WALLET_KEYPOOL_RAN_OUT, "Error: Keypool ran out, please call keypoolrefill first");
} }
return pubKey.GetID(); return dest;
} }
UniValue getaccountaddress(const JSONRPCRequest& request) UniValue getaccountaddress(const JSONRPCRequest& request)
@ -214,7 +214,7 @@ UniValue getaccountaddress(const JSONRPCRequest& request)
UniValue ret(UniValue::VSTR); UniValue ret(UniValue::VSTR);
ret = EncodeDestination(GetAccountAddress(pwallet, strAccount)); ret = EncodeDestination(GetAccountDestination(pwallet, strAccount));
return ret; return ret;
} }
@ -292,8 +292,8 @@ UniValue setaccount(const JSONRPCRequest& request)
// Detect when changing the account of an address that is the 'unused current key' of another account: // Detect when changing the account of an address that is the 'unused current key' of another account:
if (pwallet->mapAddressBook.count(dest)) { if (pwallet->mapAddressBook.count(dest)) {
std::string strOldAccount = pwallet->mapAddressBook[dest].name; std::string strOldAccount = pwallet->mapAddressBook[dest].name;
if (dest == GetAccountAddress(pwallet, strOldAccount)) { if (dest == GetAccountDestination(pwallet, strOldAccount)) {
GetAccountAddress(pwallet, strOldAccount, true); GetAccountDestination(pwallet, strOldAccount, true);
} }
} }
pwallet->SetAddressBook(dest, strAccount, "receive"); pwallet->SetAddressBook(dest, strAccount, "receive");

View file

@ -821,7 +821,7 @@ bool CWallet::AccountMove(std::string strFrom, std::string strTo, CAmount nAmoun
return true; return true;
} }
bool CWallet::GetAccountPubkey(CPubKey &pubKey, std::string strAccount, bool bForceNew) bool CWallet::GetAccountDestination(CTxDestination &dest, std::string strAccount, bool bForceNew)
{ {
CWalletDB walletdb(*dbw); CWalletDB walletdb(*dbw);
@ -850,12 +850,13 @@ bool CWallet::GetAccountPubkey(CPubKey &pubKey, std::string strAccount, bool bFo
if (!GetKeyFromPool(account.vchPubKey, false)) if (!GetKeyFromPool(account.vchPubKey, false))
return false; return false;
SetAddressBook(account.vchPubKey.GetID(), strAccount, "receive"); dest = account.vchPubKey.GetID();
SetAddressBook(dest, strAccount, "receive");
walletdb.WriteAccount(strAccount, account); walletdb.WriteAccount(strAccount, account);
} else {
dest = account.vchPubKey.GetID();
} }
pubKey = account.vchPubKey;
return true; return true;
} }

View file

@ -923,7 +923,7 @@ public:
int64_t IncOrderPosNext(CWalletDB *pwalletdb = nullptr); int64_t IncOrderPosNext(CWalletDB *pwalletdb = nullptr);
DBErrors ReorderTransactions(); DBErrors ReorderTransactions();
bool AccountMove(std::string strFrom, std::string strTo, CAmount nAmount, std::string strComment = ""); bool AccountMove(std::string strFrom, std::string strTo, CAmount nAmount, std::string strComment = "");
bool GetAccountPubkey(CPubKey &pubKey, std::string strAccount, bool bForceNew = false); bool GetAccountDestination(CTxDestination &dest, std::string strAccount, bool bForceNew = false);
void MarkDirty(); void MarkDirty();
bool AddToWallet(const CWalletTx& wtxIn, bool fFlushOnClose=true); bool AddToWallet(const CWalletTx& wtxIn, bool fFlushOnClose=true);