interfaces, gui: Remove is_mine output parameter from getAddress
What changed, and why it matters
This commit is a simple code cleanup: it removes an unused 'is_mine' output parameter from a wallet address lookup function and updates all callers. There is no security-relevant change; the removed parameter was never used, and the remaining behavior is unchanged.
No action required. This is a benign refactoring commit with no security implications.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit refactors the Wallet::getAddress interface by dropping the wallet::isminetype* is_mine output parameter. All callers passed nullptr for this parameter, so no caller logic changes. The implementation in src/wallet/interfaces.cpp now calls m_wallet->IsMine(dest) only when purpose is requested, which is behaviorally equivalent to the previous code because dest_is_mine was only computed when is_mine or purpose was non-null, and is_mine was always null in practice.
Changed components
src/interfaces/wallet.hsrc/qt/addresstablemodel.cppsrc/qt/transactiondesc.cppsrc/qt/walletmodel.cppsrc/wallet/interfaces.cppInspect captured patch +9 / −19
diff --git a/src/interfaces/wallet.h b/src/interfaces/wallet.h
index 412cbb61..0b74c219 100644
--- a/src/interfaces/wallet.h
+++ b/src/interfaces/wallet.h
@@ -117,7 +117,6 @@ public:
//! Look up address in wallet, return whether exists.
virtual bool getAddress(const CTxDestination& dest,
std::string* name,
- wallet::isminetype* is_mine,
wallet::AddressPurpose* purpose) = 0;
//! Get wallet address list.
diff --git a/src/qt/addresstablemodel.cpp b/src/qt/addresstablemodel.cpp
index efdc3966..190fd5ae 100644
--- a/src/qt/addresstablemodel.cpp
+++ b/src/qt/addresstablemodel.cpp
@@ -270,7 +270,7 @@ bool AddressTableModel::setData(const QModelIndex &index, const QVariant &value,
// Check for duplicate addresses to prevent accidental deletion of addresses, if you try
// to paste an existing address over another address (with a different label)
if (walletModel->wallet().getAddress(
- newAddress, /* name= */ nullptr, /* is_mine= */ nullptr, /* purpose= */ nullptr))
+ newAddress, /*name=*/nullptr, /*purpose=*/ nullptr))
{
editStatus = DUPLICATE_ADDRESS;
return false;
@@ -356,7 +356,7 @@ QString AddressTableModel::addRow(const QString &type, const QString &label, con
// Check for duplicate addresses
{
if (walletModel->wallet().getAddress(
- DecodeDestination(strAddress), /* name= */ nullptr, /* is_mine= */ nullptr, /* purpose= */ nullptr))
+ DecodeDestination(strAddress), /*name=*/nullptr, /*purpose=*/nullptr))
{
editStatus = DUPLICATE_ADDRESS;
return QString();
@@ -429,7 +429,7 @@ bool AddressTableModel::getAddressData(const QString &address,
std::string* name,
wallet::AddressPurpose* purpose) const {
CTxDestination destination = DecodeDestination(address.toStdString());
- return walletModel->wallet().getAddress(destination, name, /* is_mine= */ nullptr, purpose);
+ return walletModel->wallet().getAddress(destination, name, purpose);
}
int AddressTableModel::lookupAddress(const QString &address) const
diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp
index db3c7f74..af301a49 100644
--- a/src/qt/transactiondesc.cpp
+++ b/src/qt/transactiondesc.cpp
@@ -143,8 +143,7 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
CTxDestination address = DecodeDestination(rec->address);
if (IsValidDestination(address)) {
std::string name;
- isminetype ismine;
- if (wallet.getAddress(address, &name, &ismine, /* purpose= */ nullptr))
+ if (wallet.getAddress(address, &name, /*purpose=*/nullptr))
{
strHTML += "<b>" + tr("From") + ":</b> " + tr("unknown") + "<br>";
strHTML += "<b>" + tr("To") + ":</b> ";
@@ -171,7 +170,7 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
CTxDestination dest = DecodeDestination(strAddress);
std::string name;
if (wallet.getAddress(
- dest, &name, /* is_mine= */ nullptr, /* purpose= */ nullptr) && !name.empty())
+ dest, &name, /*purpose=*/nullptr) && !name.empty())
strHTML += GUIUtil::HtmlEscape(name) + " ";
strHTML += GUIUtil::HtmlEscape(strAddress) + "<br>";
}
@@ -236,7 +235,7 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
strHTML += "<b>" + tr("To") + ":</b> ";
std::string name;
if (wallet.getAddress(
- address, &name, /* is_mine= */ nullptr, /* purpose= */ nullptr) && !name.empty())
+ address, &name, /*purpose=*/nullptr) && !name.empty())
strHTML += GUIUtil::HtmlEscape(name) + " ";
strHTML += GUIUtil::HtmlEscape(EncodeDestination(address));
if(toSelf == ISMINE_SPENDABLE)
@@ -357,7 +356,7 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
if (ExtractDestination(vout.scriptPubKey, address))
{
std::string name;
- if (wallet.getAddress(address, &name, /* is_mine= */ nullptr, /* purpose= */ nullptr) && !name.empty())
+ if (wallet.getAddress(address, &name, /*purpose=*/nullptr) && !name.empty())
strHTML += GUIUtil::HtmlEscape(name) + " ";
strHTML += QString::fromStdString(EncodeDestination(address));
}
diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp
index 9597726e..694fb535 100644
--- a/src/qt/walletmodel.cpp
+++ b/src/qt/walletmodel.cpp
@@ -268,7 +268,7 @@ void WalletModel::sendCoins(WalletModelTransaction& transaction)
// Check if we have a new address or an updated label
std::string name;
if (!m_wallet->getAddress(
- dest, &name, /* is_mine= */ nullptr, /* purpose= */ nullptr))
+ dest, &name, /*purpose=*/nullptr))
{
m_wallet->setAddressBook(dest, strLabel, wallet::AddressPurpose::SEND);
}
diff --git a/src/wallet/interfaces.cpp b/src/wallet/interfaces.cpp
index 36f8fd9a..42ccfae6 100644
--- a/src/wallet/interfaces.cpp
+++ b/src/wallet/interfaces.cpp
@@ -185,7 +185,6 @@ public:
}
bool getAddress(const CTxDestination& dest,
std::string* name,
- isminetype* is_mine,
AddressPurpose* purpose) override
{
LOCK(m_wallet->cs_wallet);
@@ -194,16 +193,9 @@ public:
if (name) {
*name = entry->GetLabel();
}
- std::optional<isminetype> dest_is_mine;
- if (is_mine || purpose) {
- dest_is_mine = m_wallet->IsMine(dest);
- }
- if (is_mine) {
- *is_mine = *dest_is_mine;
- }
if (purpose) {
// In very old wallets, address purpose may not be recorded so we derive it from IsMine
- *purpose = entry->purpose.value_or(*dest_is_mine ? AddressPurpose::RECEIVE : AddressPurpose::SEND);
+ *purpose = entry->purpose.value_or(m_wallet->IsMine(dest) ? AddressPurpose::RECEIVE : AddressPurpose::SEND);
}
return true;
}
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.