Skip to content

Commit 626bc61

Browse files
committed
wallet: clean up ListLockedCoins() implementation
1 parent 8ba0f27 commit 626bc61

File tree

6 files changed

+11
-23
lines changed

6 files changed

+11
-23
lines changed

src/interfaces/wallet.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ class Wallet
145145
virtual bool isLockedCoin(const COutPoint& output) = 0;
146146

147147
//! List locked coins.
148-
virtual void listLockedCoins(std::vector<COutPoint>& outputs) = 0;
148+
virtual std::vector<COutPoint> listLockedCoins() = 0;
149149

150150
//! List protx coins.
151151
virtual std::vector<COutPoint> listProTxCoins() = 0;

src/qt/coincontroldialog.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -426,11 +426,10 @@ void CoinControlDialog::viewItemChanged(QTreeWidgetItem* item, int column)
426426
// shows count of locked unspent outputs
427427
void CoinControlDialog::updateLabelLocked()
428428
{
429-
std::vector<COutPoint> vOutpts;
430-
model->wallet().listLockedCoins(vOutpts);
431-
if (vOutpts.size() > 0)
429+
auto locked_coins{model->wallet().listLockedCoins().size()};
430+
if (locked_coins > 0)
432431
{
433-
ui->labelLocked->setText(tr("(%1 locked)").arg(vOutpts.size()));
432+
ui->labelLocked->setText(tr("(%1 locked)").arg(locked_coins));
434433
ui->labelLocked->setVisible(true);
435434
}
436435
else ui->labelLocked->setVisible(false);

src/wallet/interfaces.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,10 +255,10 @@ class WalletImpl : public Wallet
255255
LOCK(m_wallet->cs_wallet);
256256
return m_wallet->IsLockedCoin(output.hash, output.n);
257257
}
258-
void listLockedCoins(std::vector<COutPoint>& outputs) override
258+
std::vector<COutPoint> listLockedCoins() override
259259
{
260260
LOCK(m_wallet->cs_wallet);
261-
return m_wallet->ListLockedCoins(outputs);
261+
return m_wallet->ListLockedCoins();
262262
}
263263
std::vector<COutPoint> listProTxCoins() override
264264
{

src/wallet/rpcwallet.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2371,14 +2371,9 @@ static RPCHelpMan listlockunspent()
23712371

23722372
LOCK(pwallet->cs_wallet);
23732373

2374-
std::vector<COutPoint> vOutpts;
2375-
pwallet->ListLockedCoins(vOutpts);
2376-
23772374
UniValue ret(UniValue::VARR);
2378-
2379-
for (const COutPoint& outpt : vOutpts) {
2375+
for (const COutPoint& outpt : pwallet->ListLockedCoins()) {
23802376
UniValue o(UniValue::VOBJ);
2381-
23822377
o.pushKV("txid", outpt.hash.GetHex());
23832378
o.pushKV("vout", (int)outpt.n);
23842379
ret.push_back(o);

src/wallet/wallet.cpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2795,12 +2795,10 @@ std::map<CTxDestination, std::vector<COutput>> CWallet::ListCoins() const
27952795
}
27962796
}
27972797

2798-
std::vector<COutPoint> lockedCoins;
2799-
ListLockedCoins(lockedCoins);
28002798
// Include watch-only for LegacyScriptPubKeyMan wallets without private keys
28012799
const bool include_watch_only = GetLegacyScriptPubKeyMan() && IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS);
28022800
const isminetype is_mine_filter = include_watch_only ? ISMINE_WATCH_ONLY : ISMINE_SPENDABLE;
2803-
for (const COutPoint& output : lockedCoins) {
2801+
for (const COutPoint& output : setLockedCoins) {
28042802
auto it = mapWallet.find(output.hash);
28052803
if (it != mapWallet.end()) {
28062804
int depth = it->second.GetDepthInMainChain();
@@ -4496,14 +4494,10 @@ bool CWallet::IsLockedCoin(uint256 hash, unsigned int n) const
44964494
return (setLockedCoins.count(outpt) > 0);
44974495
}
44984496

4499-
void CWallet::ListLockedCoins(std::vector<COutPoint>& vOutpts) const
4497+
std::vector<COutPoint> CWallet::ListLockedCoins() const
45004498
{
45014499
AssertLockHeld(cs_wallet);
4502-
for (std::set<COutPoint>::iterator it = setLockedCoins.begin();
4503-
it != setLockedCoins.end(); it++) {
4504-
COutPoint outpt = (*it);
4505-
vOutpts.push_back(outpt);
4506-
}
4500+
return std::vector<COutPoint>(setLockedCoins.begin(), setLockedCoins.end());
45074501
}
45084502

45094503
std::vector<COutPoint> CWallet::ListProTxCoins() const { return ListProTxCoins(setWalletUTXO); }

src/wallet/wallet.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1038,7 +1038,7 @@ class CWallet final : public WalletStorage, public interfaces::Chain::Notificati
10381038
bool LockCoin(const COutPoint& output, WalletBatch* batch = nullptr) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
10391039
bool UnlockCoin(const COutPoint& output, WalletBatch* batch = nullptr) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
10401040
bool UnlockAllCoins() EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
1041-
void ListLockedCoins(std::vector<COutPoint>& vOutpts) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
1041+
std::vector<COutPoint> ListLockedCoins() const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
10421042
std::vector<COutPoint> ListProTxCoins() const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
10431043
std::vector<COutPoint> ListProTxCoins(const std::set<COutPoint>& utxos) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
10441044

0 commit comments

Comments
 (0)