Add documentation describing CWallet::nTimeSmart.
Most of the text comes from the 2012 Luke Dashjr <luke-jr+git@utopios.org>
c3f95ef
commit message.
This commit is contained in:
parent
1f98abe47b
commit
6c996c2df7
2 changed files with 30 additions and 0 deletions
|
@ -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;
|
||||||
|
|
|
@ -260,6 +260,15 @@ public:
|
||||||
std::vector<std::pair<std::string, std::string> > vOrderForm;
|
std::vector<std::pair<std::string, std::string> > vOrderForm;
|
||||||
unsigned int fTimeReceivedIsTxTime;
|
unsigned int fTimeReceivedIsTxTime;
|
||||||
unsigned int nTimeReceived; //!< time received by this node
|
unsigned int nTimeReceived; //!< time received by this node
|
||||||
|
/**
|
||||||
|
* Stable timestamp that never changes, and reflects the order a transaction
|
||||||
|
* was added to the wallet. Timestamp is based on the block time for a
|
||||||
|
* transaction added as part of a block, or else the time when the
|
||||||
|
* transaction was received if it wasn't part of a block, with the timestamp
|
||||||
|
* adjusted in both cases so timestamp order matches the order transactions
|
||||||
|
* were added to the wallet. More details can be found in
|
||||||
|
* CWallet::ComputeTimeSmart().
|
||||||
|
*/
|
||||||
unsigned int nTimeSmart;
|
unsigned int nTimeSmart;
|
||||||
/**
|
/**
|
||||||
* From me flag is set to 1 for transactions that were created by the wallet
|
* From me flag is set to 1 for transactions that were created by the wallet
|
||||||
|
|
Loading…
Add table
Reference in a new issue