Merge pull request #7419

25588de trezor: simplify recognition of integrated addresses (Dusan Klinec)
This commit is contained in:
luigi1111 2021-03-20 01:54:52 -04:00
commit 9ec4ce36c7
No known key found for this signature in database
GPG Key ID: F4ACA0183641E010

View File

@ -502,21 +502,9 @@ namespace tx {
} }
void Signer::compute_integrated_indices(TsxData * tsx_data){ void Signer::compute_integrated_indices(TsxData * tsx_data){
if (m_aux_data == nullptr || m_aux_data->tx_recipients.empty()){
return;
}
auto & chg = tsx_data->change_dts(); auto & chg = tsx_data->change_dts();
std::string change_hash = hash_addr(&chg.addr(), chg.amount(), chg.is_subaddress()); std::string change_hash = hash_addr(&chg.addr(), chg.amount(), chg.is_subaddress());
std::vector<uint32_t> integrated_indices; std::vector<uint32_t> integrated_indices;
std::set<std::string> integrated_hashes;
for (auto & cur : m_aux_data->tx_recipients){
if (!cur.has_payment_id){
continue;
}
integrated_hashes.emplace(hash_addr(&cur.address.m_spend_public_key, &cur.address.m_view_public_key));
}
ssize_t idx = -1; ssize_t idx = -1;
for (auto & cur : tsx_data->outputs()){ for (auto & cur : tsx_data->outputs()){
@ -527,8 +515,7 @@ namespace tx {
continue; continue;
} }
c_hash = hash_addr(&cur.addr()); if (cur.is_integrated()){
if (integrated_hashes.find(c_hash) != integrated_hashes.end()){
integrated_indices.push_back((uint32_t)idx); integrated_indices.push_back((uint32_t)idx);
} }
} }