Bitcoin Core 22.99.0
P2P Digital Currency
transactionrecord.h
Go to the documentation of this file.
1// Copyright (c) 2011-2020 The Bitcoin Core developers
2// Distributed under the MIT software license, see the accompanying
3// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5#ifndef BITCOIN_QT_TRANSACTIONRECORD_H
6#define BITCOIN_QT_TRANSACTIONRECORD_H
7
8#include <consensus/amount.h>
9#include <uint256.h>
10
11#include <QList>
12#include <QString>
13
14namespace interfaces {
15class Node;
16class Wallet;
17struct WalletTx;
18struct WalletTxStatus;
19}
20
24{
25public:
28 { }
29
30 enum Status {
42 };
43
47 std::string sortKey;
48
57 qint64 depth;
58 qint64 open_for;
65
67};
68
73{
74public:
75 enum Type
76 {
84 };
85
87 static const int RecommendedNumConfirmations = 6;
88
90 hash(), time(0), type(Other), address(""), debit(0), credit(0), idx(0)
91 {
92 }
93
94 TransactionRecord(uint256 _hash, qint64 _time):
95 hash(_hash), time(_time), type(Other), address(""), debit(0),
96 credit(0), idx(0)
97 {
98 }
99
100 TransactionRecord(uint256 _hash, qint64 _time,
101 Type _type, const std::string &_address,
102 const CAmount& _debit, const CAmount& _credit):
103 hash(_hash), time(_time), type(_type), address(_address), debit(_debit), credit(_credit),
104 idx(0)
105 {
106 }
107
110 static bool showTransaction();
111 static QList<TransactionRecord> decomposeTransaction(const interfaces::WalletTx& wtx);
112
116 qint64 time;
118 std::string address;
124 int idx;
125
128
131
133 QString getTxHash() const;
134
136 int getOutputIndex() const;
137
140 void updateStatus(const interfaces::WalletTxStatus& wtx, const uint256& block_hash, int numBlocks, int64_t block_time);
141
144 bool statusUpdateNeeded(const uint256& block_hash) const;
145};
146
147#endif // BITCOIN_QT_TRANSACTIONRECORD_H
int64_t CAmount
Amount in satoshis (Can be negative)
Definition: amount.h:12
UI model for a transaction.
int idx
Subtransaction index, for sort key.
static QList< TransactionRecord > decomposeTransaction(const interfaces::WalletTx &wtx)
static const int RecommendedNumConfirmations
Number of confirmation recommended for accepting a transaction.
static bool showTransaction()
Decompose CWallet transaction to model transaction records.
TransactionRecord(uint256 _hash, qint64 _time)
TransactionStatus status
Status: can change with block chain update.
int getOutputIndex() const
Return the output index of the subtransaction
QString getTxHash() const
Return the unique identifier for this transaction (part)
bool statusUpdateNeeded(const uint256 &block_hash) const
Return whether a status update is needed.
TransactionRecord(uint256 _hash, qint64 _time, Type _type, const std::string &_address, const CAmount &_debit, const CAmount &_credit)
void updateStatus(const interfaces::WalletTxStatus &wtx, const uint256 &block_hash, int numBlocks, int64_t block_time)
Update status from core wallet tx.
bool involvesWatchAddress
Whether the transaction was sent/received with a watch-only address.
UI model for transaction status.
bool countsForBalance
Transaction counts towards available balance.
uint256 m_cur_block_hash
Current block hash (to know whether cached status is still valid)
qint64 open_for
Timestamp if status==OpenUntilDate, otherwise number of additional blocks that need to be mined befor...
@ Confirmed
Have 6 or more confirmations (normal tx) or fully mature (mined tx)
@ OpenUntilDate
Normal (sent/received) transactions.
@ Unconfirmed
Not yet mined into a block.
@ Immature
Generated (mined) transactions.
@ Confirming
Confirmed, but waiting for the recommended number of confirmations.
@ NotAccepted
Mined but not accepted.
@ OpenUntilBlock
Transaction not yet final, waiting for block.
@ Conflicted
Conflicts with other transaction or mempool.
@ Abandoned
Abandoned from the wallet.
std::string sortKey
Sorting key based on status.
256-bit opaque blob.
Definition: uint256.h:124
Updated transaction status.
Definition: wallet.h:392