wallet2: refactor is_tx_spendtime_unlocked()

This commit is contained in:
Jaquee 2017-08-04 23:05:02 +02:00
parent 32e2b0030e
commit 43b57804f8
2 changed files with 9 additions and 3 deletions

View File

@ -3160,10 +3160,15 @@ void wallet2::rescan_blockchain(bool refresh)
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
bool wallet2::is_transfer_unlocked(const transfer_details& td) const bool wallet2::is_transfer_unlocked(const transfer_details& td) const
{ {
if(!is_tx_spendtime_unlocked(td.m_tx.unlock_time, td.m_block_height)) return is_transfer_unlocked(td.m_tx.unlock_time, td.m_block_height);
}
//----------------------------------------------------------------------------------------------------
bool wallet2::is_transfer_unlocked(uint64_t unlock_time, uint64_t block_height) const
{
if(!is_tx_spendtime_unlocked(unlock_time, block_height))
return false; return false;
if(td.m_block_height + CRYPTONOTE_DEFAULT_TX_SPENDABLE_AGE > m_blockchain.size()) if(block_height + CRYPTONOTE_DEFAULT_TX_SPENDABLE_AGE > m_local_bc_height)
return false; return false;
return true; return true;
@ -3174,7 +3179,7 @@ bool wallet2::is_tx_spendtime_unlocked(uint64_t unlock_time, uint64_t block_heig
if(unlock_time < CRYPTONOTE_MAX_BLOCK_NUMBER) if(unlock_time < CRYPTONOTE_MAX_BLOCK_NUMBER)
{ {
//interpret as block index //interpret as block index
if(m_blockchain.size()-1 + CRYPTONOTE_LOCKED_TX_ALLOWED_DELTA_BLOCKS >= unlock_time) if(m_local_bc_height-1 + CRYPTONOTE_LOCKED_TX_ALLOWED_DELTA_BLOCKS >= unlock_time)
return true; return true;
else else
return false; return false;

View File

@ -529,6 +529,7 @@ namespace tools
void rescan_spent(); void rescan_spent();
void rescan_blockchain(bool refresh = true); void rescan_blockchain(bool refresh = true);
bool is_transfer_unlocked(const transfer_details& td) const; bool is_transfer_unlocked(const transfer_details& td) const;
bool is_transfer_unlocked(uint64_t unlock_time, uint64_t block_height) const;
template <class t_archive> template <class t_archive>
inline void serialize(t_archive &a, const unsigned int ver) inline void serialize(t_archive &a, const unsigned int ver)
{ {