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);
|
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);
|
LOCK(m_wallet.cs_wallet);
|
||||||
auto it = m_wallet.mapAddressBook.find(dest);
|
auto it = m_wallet.mapAddressBook.find(dest);
|
||||||
|
@ -165,6 +168,9 @@ public:
|
||||||
if (is_mine) {
|
if (is_mine) {
|
||||||
*is_mine = IsMine(m_wallet, dest);
|
*is_mine = IsMine(m_wallet, dest);
|
||||||
}
|
}
|
||||||
|
if (purpose) {
|
||||||
|
*purpose = it->second.purpose;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
std::vector<WalletAddress> getAddresses() override
|
std::vector<WalletAddress> getAddresses() override
|
||||||
|
|
|
@ -99,8 +99,9 @@ public:
|
||||||
|
|
||||||
//! Look up address in wallet, return whether exists.
|
//! Look up address in wallet, return whether exists.
|
||||||
virtual bool getAddress(const CTxDestination& dest,
|
virtual bool getAddress(const CTxDestination& dest,
|
||||||
std::string* name = nullptr,
|
std::string* name,
|
||||||
isminetype* is_mine = nullptr) = 0;
|
isminetype* is_mine,
|
||||||
|
std::string* purpose) = 0;
|
||||||
|
|
||||||
//! Get wallet address list.
|
//! Get wallet address list.
|
||||||
virtual std::vector<WalletAddress> getAddresses() = 0;
|
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
|
// 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)
|
// 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;
|
editStatus = DUPLICATE_ADDRESS;
|
||||||
return false;
|
return false;
|
||||||
|
@ -351,7 +352,8 @@ QString AddressTableModel::addRow(const QString &type, const QString &label, con
|
||||||
}
|
}
|
||||||
// Check for duplicate addresses
|
// 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;
|
editStatus = DUPLICATE_ADDRESS;
|
||||||
return QString();
|
return QString();
|
||||||
|
|
|
@ -102,7 +102,7 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
|
||||||
if (IsValidDestination(address)) {
|
if (IsValidDestination(address)) {
|
||||||
std::string name;
|
std::string name;
|
||||||
isminetype ismine;
|
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("From") + ":</b> " + tr("unknown") + "<br>";
|
||||||
strHTML += "<b>" + tr("To") + ":</b> ";
|
strHTML += "<b>" + tr("To") + ":</b> ";
|
||||||
|
@ -128,7 +128,8 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
|
||||||
strHTML += "<b>" + tr("To") + ":</b> ";
|
strHTML += "<b>" + tr("To") + ":</b> ";
|
||||||
CTxDestination dest = DecodeDestination(strAddress);
|
CTxDestination dest = DecodeDestination(strAddress);
|
||||||
std::string name;
|
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(name) + " ";
|
||||||
strHTML += GUIUtil::HtmlEscape(strAddress) + "<br>";
|
strHTML += GUIUtil::HtmlEscape(strAddress) + "<br>";
|
||||||
}
|
}
|
||||||
|
@ -196,7 +197,8 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
|
||||||
{
|
{
|
||||||
strHTML += "<b>" + tr("To") + ":</b> ";
|
strHTML += "<b>" + tr("To") + ":</b> ";
|
||||||
std::string name;
|
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(name) + " ";
|
||||||
strHTML += GUIUtil::HtmlEscape(EncodeDestination(address));
|
strHTML += GUIUtil::HtmlEscape(EncodeDestination(address));
|
||||||
if(toSelf == ISMINE_SPENDABLE)
|
if(toSelf == ISMINE_SPENDABLE)
|
||||||
|
@ -319,7 +321,7 @@ QString TransactionDesc::toHTML(interfaces::Node& node, interfaces::Wallet& wall
|
||||||
if (ExtractDestination(vout.scriptPubKey, address))
|
if (ExtractDestination(vout.scriptPubKey, address))
|
||||||
{
|
{
|
||||||
std::string name;
|
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(name) + " ";
|
||||||
strHTML += QString::fromStdString(EncodeDestination(address));
|
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
|
// Check if we have a new address or an updated label
|
||||||
std::string name;
|
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");
|
m_wallet->setAddressBook(dest, strLabel, "send");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue