Line data Source code
1 : // Copyright (c) 2009-2021 The Bitcoin Core developers 2 : // Copyright (c) 2014-2025 The Dash Core developers 3 : // Distributed under the MIT software license, see the accompanying 4 : // file COPYING or http://www.opensource.org/licenses/mit-license.php. 5 : 6 : #ifndef BITCOIN_WALLET_COINJOIN_H 7 : #define BITCOIN_WALLET_COINJOIN_H 8 : 9 : #include <consensus/amount.h> 10 : #include <threadsafety.h> 11 : #include <wallet/wallet.h> 12 : 13 : // Use a macro instead of a function for conditional logging to prevent 14 : // evaluating arguments when logging for the category is not enabled. 15 : #define WalletCJLogPrint(wallet, ...) \ 16 : do { \ 17 : if (LogAcceptDebug(BCLog::COINJOIN)) { \ 18 : wallet->WalletLogPrintf(__VA_ARGS__); \ 19 : } \ 20 : } while (0) 21 : 22 : namespace wallet { 23 : class CCoinControl; 24 : class CWallet; 25 : class CWalletTx; 26 : 27 : CAmount GetBalanceAnonymized(const CWallet& wallet, const CCoinControl& coinControl); 28 : 29 : CAmount CachedTxGetAnonymizedCredit(const CWallet& wallet, const CWalletTx& wtx, const CCoinControl& coinControl) 30 : EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet); 31 : 32 170843 : struct CoinJoinCredits { 33 170843 : CAmount m_anonymized{0}; 34 170843 : CAmount m_denominated{0}; 35 170843 : bool is_unconfirmed{false}; 36 : }; 37 : 38 : CoinJoinCredits CachedTxGetAvailableCoinJoinCredits(const CWallet& wallet, const CWalletTx& wtx) 39 : EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet); 40 : } // namespace wallet 41 : 42 : #endif // BITCOIN_WALLET_COINJOIN_H