Merge #11247: qt: Use IsMine to validate custom change address
a1ea1cfbd qt: Use IsMine to validate custom change address (Chris Moore) Pull request description: Fixes #11137 Closes #11184 (which was accidentally opened against 0.15 branch) Tree-SHA512: a20a59b4f36c1471a9c84bcc7c69048576d1f413104c299a7ed9ba221f28eddf93d727fca2926420ea5d0dd9aba582924f26a5acd44d995039b7202c73eb53bc
This commit is contained in:
parent
6ec77c0a71
commit
a88e000fe9
@ -865,10 +865,8 @@ void SendCoinsDialog::coinControlChangeEdited(const QString& text)
|
||||
}
|
||||
else // Valid address
|
||||
{
|
||||
CKeyID keyid;
|
||||
addr.GetKeyID(keyid);
|
||||
if (!model->havePrivKey(keyid)) // Unknown change address
|
||||
{
|
||||
const CTxDestination dest = addr.Get();
|
||||
if (!model->IsSpendable(dest)) {
|
||||
ui->labelCoinControlChangeLabel->setText(tr("Warning: Unknown change address"));
|
||||
|
||||
// confirmation dialog
|
||||
@ -876,7 +874,7 @@ void SendCoinsDialog::coinControlChangeEdited(const QString& text)
|
||||
QMessageBox::Yes | QMessageBox::Cancel, QMessageBox::Cancel);
|
||||
|
||||
if(btnRetVal == QMessageBox::Yes)
|
||||
CoinControlDialog::coinControl->destChange = addr.Get();
|
||||
CoinControlDialog::coinControl->destChange = dest;
|
||||
else
|
||||
{
|
||||
ui->lineEditCoinControlChange->setText("");
|
||||
@ -895,7 +893,7 @@ void SendCoinsDialog::coinControlChangeEdited(const QString& text)
|
||||
else
|
||||
ui->labelCoinControlChangeLabel->setText(tr("(no label)"));
|
||||
|
||||
CoinControlDialog::coinControl->destChange = addr.Get();
|
||||
CoinControlDialog::coinControl->destChange = dest;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -649,9 +649,9 @@ bool WalletModel::getPubKey(const CKeyID &address, CPubKey& vchPubKeyOut) const
|
||||
return wallet->GetPubKey(address, vchPubKeyOut);
|
||||
}
|
||||
|
||||
bool WalletModel::havePrivKey(const CKeyID &address) const
|
||||
bool WalletModel::IsSpendable(const CTxDestination& dest) const
|
||||
{
|
||||
return wallet->HaveKey(address);
|
||||
return IsMine(*wallet, dest) & ISMINE_SPENDABLE;
|
||||
}
|
||||
|
||||
bool WalletModel::havePrivKey(const CScript& script) const
|
||||
|
@ -200,7 +200,7 @@ public:
|
||||
UnlockContext requestUnlock(bool fForMixingOnly=false);
|
||||
|
||||
bool getPubKey(const CKeyID &address, CPubKey& vchPubKeyOut) const;
|
||||
bool havePrivKey(const CKeyID &address) const;
|
||||
bool IsSpendable(const CTxDestination& dest) const;
|
||||
bool havePrivKey(const CScript& script) const;
|
||||
bool getPrivKey(const CKeyID &address, CKey& vchPrivKeyOut) const;
|
||||
void getOutputs(const std::vector<COutPoint>& vOutpoints, std::vector<COutput>& vOutputs);
|
||||
|
Loading…
Reference in New Issue
Block a user