@ -4934,7 +4934,7 @@ void simple_wallet::on_new_block(uint64_t height, const cryptonote::block& block
m_refresh_progress_reporter . update ( height , false ) ;
}
//----------------------------------------------------------------------------------------------------
void simple_wallet : : on_money_received ( uint64_t height , const crypto : : hash & txid , const cryptonote : : transaction & tx , uint64_t amount , const cryptonote : : subaddress_index & subaddr_index )
void simple_wallet : : on_money_received ( uint64_t height , const crypto : : hash & txid , const cryptonote : : transaction & tx , uint64_t amount , const cryptonote : : subaddress_index & subaddr_index , uint64_t unlock_time )
{
message_writer ( console_color_green , false ) < < " \r " < <
tr ( " Height " ) < < height < < " , " < <
@ -4956,6 +4956,8 @@ void simple_wallet::on_money_received(uint64_t height, const crypto::hash &txid,
( m_long_payment_id_support ? tr ( " WARNING: this transaction uses an unencrypted payment ID: consider using subaddresses instead. " ) : tr ( " WARNING: this transaction uses an unencrypted payment ID: these are obsolete. Support will be withdrawn in the future. Use subaddresses instead. " ) ) ;
}
}
if ( unlock_time )
message_writer ( ) < < tr ( " NOTE: This transaction is locked, see details with: show_transfer " ) + epee : : string_tools : : pod_to_hex ( txid ) ;
if ( m_auto_refresh_refreshing )
m_cmd_binder . print_prompt ( ) ;
else
@ -7683,6 +7685,8 @@ bool simple_wallet::get_transfers(std::vector<std::string>& local_args, std::vec
local_args . erase ( local_args . begin ( ) ) ;
}
const uint64_t last_block_height = m_wallet - > get_blockchain_current_height ( ) ;
if ( in | | coinbase ) {
std : : list < std : : pair < crypto : : hash , tools : : wallet2 : : payment_details > > payments ;
m_wallet - > get_payments ( payments , min_height , max_height , m_current_subaddress_account , subaddr_indices ) ;
@ -7697,6 +7701,25 @@ bool simple_wallet::get_transfers(std::vector<std::string>& local_args, std::vec
std : : string destination = m_wallet - > get_subaddress_as_str ( { m_current_subaddress_account , pd . m_subaddr_index . minor } ) ;
const std : : string type = pd . m_coinbase ? tr ( " block " ) : tr ( " in " ) ;
const bool unlocked = m_wallet - > is_transfer_unlocked ( pd . m_unlock_time , pd . m_block_height ) ;
std : : string locked_msg = " unlocked " ;
if ( ! unlocked )
{
locked_msg = " locked " ;
const uint64_t unlock_time = pd . m_unlock_time ;
if ( pd . m_unlock_time < CRYPTONOTE_MAX_BLOCK_NUMBER )
{
uint64_t bh = std : : max ( pd . m_unlock_time , pd . m_block_height + CRYPTONOTE_DEFAULT_TX_SPENDABLE_AGE ) ;
if ( bh > = last_block_height )
locked_msg = std : : to_string ( bh - last_block_height ) + " blks " ;
}
else
{
uint64_t current_time = static_cast < uint64_t > ( time ( NULL ) ) ;
uint64_t threshold = current_time + ( m_wallet - > use_fork_rules ( 2 , 0 ) ? CRYPTONOTE_LOCKED_TX_ALLOWED_DELTA_SECONDS_V2 : CRYPTONOTE_LOCKED_TX_ALLOWED_DELTA_SECONDS_V1 ) ;
if ( threshold < pd . m_unlock_time )
locked_msg = get_human_readable_timespan ( std : : chrono : : seconds ( pd . m_unlock_time - threshold ) ) ;
}
}
transfers . push_back ( {
type ,
pd . m_block_height ,
@ -7710,7 +7733,7 @@ bool simple_wallet::get_transfers(std::vector<std::string>& local_args, std::vec
{ { destination , pd . m_amount } } ,
{ pd . m_subaddr_index . minor } ,
note ,
( unlocked ) ? " unlocked " : " locked "
locked_msg
} ) ;
}
}