Merge pull request #9872

6d6e8e173 construct_tx_and_get_tx_key: don't erase exception trace (jeffro256)
This commit is contained in:
tobtoht 2025-04-23 16:22:25 +00:00
commit 56ee3d2765
No known key found for this signature in database
GPG key ID: E45B10DD027D2472

View file

@ -610,7 +610,10 @@ namespace cryptonote
{ {
hw::device &hwdev = sender_account_keys.get_device(); hw::device &hwdev = sender_account_keys.get_device();
hwdev.open_tx(tx_key); hwdev.open_tx(tx_key);
try { const auto auto_close_tx = epee::misc_utils::create_scope_leave_handler([&hwdev](){
hwdev.close_tx();
});
{
// figure out if we need to make additional tx pubkeys // figure out if we need to make additional tx pubkeys
size_t num_stdaddresses = 0; size_t num_stdaddresses = 0;
size_t num_subaddresses = 0; size_t num_subaddresses = 0;
@ -628,11 +631,7 @@ namespace cryptonote
bool shuffle_outs = true; bool shuffle_outs = true;
bool r = construct_tx_with_tx_key(sender_account_keys, subaddresses, sources, destinations, change_addr, extra, tx, tx_key, additional_tx_keys, rct, rct_config, shuffle_outs, use_view_tags); bool r = construct_tx_with_tx_key(sender_account_keys, subaddresses, sources, destinations, change_addr, extra, tx, tx_key, additional_tx_keys, rct, rct_config, shuffle_outs, use_view_tags);
hwdev.close_tx();
return r; return r;
} catch(...) {
hwdev.close_tx();
throw;
} }
} }
//--------------------------------------------------------------- //---------------------------------------------------------------