Bitcoin Core 31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
transactionrecord.h
Go to the documentation of this file.
1// Copyright (c) 2011-present 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>
10#include <uint256.h>
11
12#include <QList>
13#include <QString>
14
15namespace interfaces {
16class Node;
17class Wallet;
18struct WalletTx;
19struct WalletTxStatus;
20}
21
58
63{
64public:
74
76 static const int RecommendedNumConfirmations = 6;
77
79 hash(), time(0), type(Other), debit(0), credit(0), idx(0)
80 {
81 }
82
83 TransactionRecord(Txid _hash, qint64 _time):
84 hash(_hash), time(_time), type(Other), debit(0),
85 credit(0), idx(0)
86 {
87 }
88
89 TransactionRecord(Txid _hash, qint64 _time,
90 Type _type, const std::string &_address,
91 const CAmount& _debit, const CAmount& _credit):
92 hash(_hash), time(_time), type(_type), address(_address), debit(_debit), credit(_credit),
93 idx(0)
94 {
95 }
96
99 static bool showTransaction();
100 static QList<TransactionRecord> decomposeTransaction(const interfaces::WalletTx& wtx);
101
105 qint64 time;
107 std::string address;
111
113 int idx;
114
117
119 QString getTxHash() const;
120
122 int getOutputIndex() const;
123
126 void updateStatus(const interfaces::WalletTxStatus& wtx, const uint256& block_hash, int numBlocks, int64_t block_time);
127
130 bool statusUpdateNeeded(const uint256& block_hash) const;
131};
132
133#endif // BITCOIN_QT_TRANSACTIONRECORD_H
int64_t CAmount
Amount in satoshis (Can be negative).
Definition amount.h:12
TransactionRecord(Txid _hash, qint64 _time)
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.
TransactionRecord(Txid _hash, qint64 _time, Type _type, const std::string &_address, const CAmount &_debit, const CAmount &_credit)
static bool showTransaction()
Decompose CWallet transaction to model transaction records.
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.
void updateStatus(const interfaces::WalletTxStatus &wtx, const uint256 &block_hash, int numBlocks, int64_t block_time)
Update status from core wallet tx.
Top-level interface for a bitcoin node (bitcoind process).
Definition node.h:70
Interface for accessing a wallet.
Definition wallet.h:66
256-bit opaque blob.
Definition uint256.h:195
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).
@ Confirmed
Have 6 or more confirmations (normal tx) or fully mature (mined tx).
@ Unconfirmed
Normal (sent/received) transactions.
@ Immature
Generated (mined) transactions.
@ Confirming
Confirmed, but waiting for the recommended number of confirmations.
@ NotAccepted
Mined but not accepted.
@ Conflicted
Conflicts with other transaction or mempool.
@ Abandoned
Abandoned from the wallet.
std::string sortKey
Sorting key based on status.
Updated transaction status.
Definition wallet.h:401
transaction_identifier< false > Txid
Txid commits to all transaction fields except the witness.