Add purpose arg to Wallet::getAddress
Also make all arguments to getAddress required and document args at call sites.
This commit is contained in:
parent
a785bc3667
commit
c5b277033a
5 changed files with 22 additions and 10 deletions
|
@ -152,7 +152,10 @@ public:
|
|||
{
|
||||
return m_wallet.DelAddressBook(dest);
|
||||
}
|
||||
bool getAddress(const CTxDestination& dest, std::string* name, isminetype* is_mine) override
|
||||
bool getAddress(const CTxDestination& dest,
|
||||
std::string* name,
|
||||
isminetype* is_mine,
|
||||
std::string* purpose) override
|
||||
{
|
||||
LOCK(m_wallet.cs_wallet);
|
||||
auto it = m_wallet.mapAddressBook.find(dest);
|
||||
|
@ -165,6 +168,9 @@ public:
|
|||
if (is_mine) {
|
||||
*is_mine = IsMine(m_wallet, dest);
|
||||
}
|
||||
if (purpose) {
|
||||
*purpose = it->second.purpose;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
std::vector<WalletAddress> getAddresses() override
|
||||
|
|
|
@ -99,8 +99,9 @@ public:
|
|||
|
||||
//! Look up address in wallet, return whether exists.
|
||||
virtual bool getAddress(const CTxDestination& dest,
|
||||
std::string* name = nullptr,
|
||||
isminetype* is_mine = nullptr) = 0;
|
||||
std::string* name,
|
||||
isminetype* is_mine,
|
||||
std::string* purpose) = 0;
|
||||
|
||||
//! Get wallet address list.
|
||||
virtual std::vector<WalletAddress> getAddresses() = 0;
|
||||
|
|
|
@ -266,7 +266,8 @@ 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))
|
||||
if (walletModel->wallet().getAddress(
|
||||
newAddress, /* name= */ nullptr, /* is_mine= */ nullptr, /* purpose= */ nullptr))
|
||||
{
|
||||
editStatus = DUPLICATE_ADDRESS;
|
||||
return false;
|
||||
|
@ -351,7 +352,8 @@ QString AddressTableModel::addRow(const QString &type, const QString &label, con
|
|||
}
|
||||
// Check for duplicate addresses
|
||||
{
|
||||
if(walletModel->wallet().getAddress(DecodeDestination(strAddress)))
|
||||
if (walletModel->wallet().getAddress(
|
||||
DecodeDestination(strAddress), /* name= */ nullptr, /* is_mine= */ nullptr, /* purpose= */ nullptr))
|
||||
{
|
||||
editStatus = DUPLICATE_ADDRESS;
|
||||
return QString();
|
||||
|
|
|
@ -102,7 +102,7 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
|
|||
if (IsValidDestination(address)) {
|
||||
std::string name;
|
||||
isminetype ismine;
|
||||
if (wallet.getAddress(address, &name, &ismine))
|
||||
if (wallet.getAddress(address, &name, &ismine, /* purpose= */ nullptr))
|
||||
{
|
||||
strHTML += "<b>" + tr("From") + ":</b> " + tr("unknown") + "<br>";
|
||||
strHTML += "<b>" + tr("To") + ":</b> ";
|
||||
|
@ -128,7 +128,8 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
|
|||
strHTML += "<b>" + tr("To") + ":</b> ";
|
||||
CTxDestination dest = DecodeDestination(strAddress);
|
||||
std::string name;
|
||||
if (wallet.getAddress(dest, &name) && !name.empty())
|
||||
if (wallet.getAddress(
|
||||
dest, &name, /* is_mine= */ nullptr, /* purpose= */ nullptr) && !name.empty())
|
||||
strHTML += GUIUtil::HtmlEscape(name) + " ";
|
||||
strHTML += GUIUtil::HtmlEscape(strAddress) + "<br>";
|
||||
}
|
||||
|
@ -196,7 +197,8 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
|
|||
{
|
||||
strHTML += "<b>" + tr("To") + ":</b> ";
|
||||
std::string name;
|
||||
if (wallet.getAddress(address, &name) && !name.empty())
|
||||
if (wallet.getAddress(
|
||||
address, &name, /* is_mine= */ nullptr, /* purpose= */ nullptr) && !name.empty())
|
||||
strHTML += GUIUtil::HtmlEscape(name) + " ";
|
||||
strHTML += GUIUtil::HtmlEscape(EncodeDestination(address));
|
||||
if(toSelf == ISMINE_SPENDABLE)
|
||||
|
@ -319,7 +321,7 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
|
|||
if (ExtractDestination(vout.scriptPubKey, address))
|
||||
{
|
||||
std::string name;
|
||||
if (wallet.getAddress(address, &name) && !name.empty())
|
||||
if (wallet.getAddress(address, &name, /* is_mine= */ nullptr, /* purpose= */ nullptr) && !name.empty())
|
||||
strHTML += GUIUtil::HtmlEscape(name) + " ";
|
||||
strHTML += QString::fromStdString(EncodeDestination(address));
|
||||
}
|
||||
|
|
|
@ -274,7 +274,8 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(WalletModelTransaction &tran
|
|||
{
|
||||
// Check if we have a new address or an updated label
|
||||
std::string name;
|
||||
if (!m_wallet->getAddress(dest, &name))
|
||||
if (!m_wallet->getAddress(
|
||||
dest, &name, /* is_mine= */ nullptr, /* purpose= */ nullptr))
|
||||
{
|
||||
m_wallet->setAddressBook(dest, strLabel, "send");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue