aboutsummaryrefslogtreecommitdiff
path: root/src/simplewallet/simplewallet.cpp
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2020-02-19 22:24:44 -0500
committerluigi1111 <luigi1111w@gmail.com>2020-02-19 22:24:44 -0500
commit04187e59684e03ff7380d2799dc53e65acbb6cd9 (patch)
treecad87af596f5860146c36c224cde5c6fed918b57 /src/simplewallet/simplewallet.cpp
parentMerge pull request #6194 (diff)
parentsimplewallet: fix encrypted payment id note triggering on dummy ones (diff)
downloadmonero-04187e59684e03ff7380d2799dc53e65acbb6cd9.tar.xz
Merge pull request #6197
f812783 simplewallet: fix encrypted payment id note triggering on dummy ones (moneromooo-monero)
Diffstat (limited to 'src/simplewallet/simplewallet.cpp')
-rw-r--r--src/simplewallet/simplewallet.cpp32
1 files changed, 20 insertions, 12 deletions
diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp
index 74e793669..d5181f654 100644
--- a/src/simplewallet/simplewallet.cpp
+++ b/src/simplewallet/simplewallet.cpp
@@ -5469,20 +5469,28 @@ void simple_wallet::on_money_received(uint64_t height, const crypto::hash &txid,
std::vector<tx_extra_field> tx_extra_fields;
parse_tx_extra(tx.extra, tx_extra_fields); // failure ok
tx_extra_nonce extra_nonce;
- if (find_tx_extra_field_by_type(tx_extra_fields, extra_nonce))
+ tx_extra_pub_key extra_pub_key;
+ crypto::hash8 payment_id8 = crypto::null_hash8;
+ if (find_tx_extra_field_by_type(tx_extra_fields, extra_pub_key))
{
- crypto::hash payment_id = crypto::null_hash;
- crypto::hash8 payment_id8 = crypto::null_hash8;
- if (get_encrypted_payment_id_from_tx_extra_nonce(extra_nonce.nonce, payment_id8))
+ const crypto::public_key &tx_pub_key = extra_pub_key.pub_key;
+ if (find_tx_extra_field_by_type(tx_extra_fields, extra_nonce))
{
- if (payment_id8 != crypto::null_hash8)
- message_writer() <<
- tr("NOTE: this transaction uses an encrypted payment ID: consider using subaddresses instead");
- }
- else if (get_payment_id_from_tx_extra_nonce(extra_nonce.nonce, payment_id))
- message_writer(console_color_red, false) <<
- tr("WARNING: this transaction uses an unencrypted payment ID: these are obsolete and ignored. Use subaddresses instead.");
- }
+ if (get_encrypted_payment_id_from_tx_extra_nonce(extra_nonce.nonce, payment_id8))
+ {
+ m_wallet->get_account().get_device().decrypt_payment_id(payment_id8, tx_pub_key, m_wallet->get_account().get_keys().m_view_secret_key);
+ }
+ }
+ }
+
+ if (payment_id8 != crypto::null_hash8)
+ message_writer() <<
+ tr("NOTE: this transaction uses an encrypted payment ID: consider using subaddresses instead");
+
+ crypto::hash payment_id = crypto::null_hash;
+ if (get_payment_id_from_tx_extra_nonce(extra_nonce.nonce, payment_id))
+ message_writer(console_color_red, false) <<
+ tr("WARNING: this transaction uses an unencrypted payment ID: these are obsolete and ignored. Use subaddresses instead.");
}
if (unlock_time && !cryptonote::is_coinbase(tx))
message_writer() << tr("NOTE: This transaction is locked, see details with: show_transfer ") + epee::string_tools::pod_to_hex(txid);