|
|
@ -3454,6 +3454,27 @@ void CWallet::GetKeyBirthTimes(std::map<CTxDestination, int64_t> &mapKeyBirth) c |
|
|
|
mapKeyBirth[it->first] = it->second->GetBlockTime() - 7200; // block times can be 2h off
|
|
|
|
mapKeyBirth[it->first] = it->second->GetBlockTime() - 7200; // block times can be 2h off
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Compute smart timestamp for a transaction being added to the wallet. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* Logic: |
|
|
|
|
|
|
|
* - If sending a transaction, assign its timestamp to the current time. |
|
|
|
|
|
|
|
* - If receiving a transaction outside a block, assign its timestamp to the |
|
|
|
|
|
|
|
* current time. |
|
|
|
|
|
|
|
* - If receiving a block with a future timestamp, assign all its (not already |
|
|
|
|
|
|
|
* known) transactions' timestamps to the current time. |
|
|
|
|
|
|
|
* - If receiving a block with a past timestamp, before the most recent known |
|
|
|
|
|
|
|
* transaction (that we care about), assign all its (not already known) |
|
|
|
|
|
|
|
* transactions' timestamps to the same timestamp as that most-recent-known |
|
|
|
|
|
|
|
* transaction. |
|
|
|
|
|
|
|
* - If receiving a block with a past timestamp, but after the most recent known |
|
|
|
|
|
|
|
* transaction, assign all its (not already known) transactions' timestamps to |
|
|
|
|
|
|
|
* the block time. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* For more information see CWalletTx::nTimeSmart, |
|
|
|
|
|
|
|
* https://bitcointalk.org/?topic=54527, or
|
|
|
|
|
|
|
|
* https://github.com/bitcoin/bitcoin/pull/1393.
|
|
|
|
|
|
|
|
*/ |
|
|
|
unsigned int CWallet::ComputeTimeSmart(const CWalletTx& wtx) const |
|
|
|
unsigned int CWallet::ComputeTimeSmart(const CWalletTx& wtx) const |
|
|
|
{ |
|
|
|
{ |
|
|
|
unsigned int nTimeSmart = wtx.nTimeReceived; |
|
|
|
unsigned int nTimeSmart = wtx.nTimeReceived; |
|
|
|