5 #ifndef BITCOIN_INTERFACES_CHAIN_H 6 #define BITCOIN_INTERFACES_CHAIN_H 139 virtual std::unique_ptr<Lock>
lock(
bool try_lock =
false) = 0;
150 int64_t* max_time =
nullptr) = 0;
155 virtual void findCoins(std::map<COutPoint, Coin>& coins) = 0;
213 virtual void initMessage(
const std::string& message) = 0;
216 virtual void initWarning(
const std::string& message) = 0;
219 virtual void initError(
const std::string& message) = 0;
222 virtual void loadWallet(std::unique_ptr<Wallet> wallet) = 0;
225 virtual void showProgress(
const std::string& title,
int progress,
bool resume_possible) = 0;
283 virtual bool verify() = 0;
286 virtual bool load() = 0;
292 virtual void flush() = 0;
295 virtual void stop() = 0;
309 std::unique_ptr<ChainClient>
MakeWalletClient(Chain& chain, std::vector<std::string> wallet_filenames);
313 #endif // BITCOIN_INTERFACES_CHAIN_H std::shared_ptr< const CTransaction > CTransactionRef
Definition: transaction.h:408
virtual bool shutdownRequested()=0
Check if shutdown requested.
virtual CFeeRate relayIncrementalFee()=0
Relay incremental fee setting (-incrementalrelayfee), reflecting cost of relay.
virtual int64_t getBlockTime(int height)=0
Get block time. Height must be valid or this function will abort.
virtual void initWarning(const std::string &message)=0
Send init warning.
virtual int getBlockDepth(const uint256 &hash)=0
virtual void getTransactionAncestry(const uint256 &txid, size_t &ancestors, size_t &descendants)=0
Calculate mempool ancestor and descendant counts for the given transaction.
virtual bool verify()=0
Check for errors before loading.
virtual unsigned int estimateMaxBlocks()=0
Fee estimator max target.
virtual bool load()=0
Load saved state.
virtual void TransactionRemovedFromMempool(const CTransactionRef &ptx)
Definition: chain.h:233
virtual CFeeRate relayDustFee()=0
Relay dust fee setting (-dustrelayfee), reflecting lowest rate it's economical to spend.
Definition: scheduler.h:37
virtual bool submitToMemoryPool(const CTransactionRef &tx, CAmount absurd_fee, CValidationState &state)=0
virtual ~ChainClient()
Definition: chain.h:277
virtual ~Notifications()
Definition: chain.h:231
virtual void waitForNotificationsIfNewBlocksConnected(const uint256 &old_tip)=0
virtual void TransactionAddedToMempool(const CTransactionRef &tx)
Definition: chain.h:232
std::unique_ptr< ChainClient > MakeWalletClient(Chain &chain, std::vector< std::string > wallet_filenames)
Definition: wallet.cpp:530
virtual void registerRpcs()=0
Register rpcs.
Chain notifications.
Definition: chain.h:228
static auto & nullopt
Substitute for C++17 std::nullopt.
Definition: optional.h:24
virtual int64_t getAdjustedTime()=0
Get adjusted time.
virtual CFeeRate estimateSmartFee(int num_blocks, bool conservative, FeeCalculation *calc=nullptr)=0
Estimate smart fee.
virtual bool findBlock(const uint256 &hash, CBlock *block=nullptr, int64_t *time=nullptr, int64_t *max_time=nullptr)=0
virtual void BlockConnected(const CBlock &block, const std::vector< CTransactionRef > &tx_conflicted)
Definition: chain.h:234
Definition: validation.h:98
virtual void relayTransaction(const uint256 &txid)=0
Relay transaction.
static CScheduler scheduler
Definition: init.cpp:178
virtual void requestMempoolTransactions(Notifications ¬ifications)=0
virtual double guessVerificationProgress(const uint256 &block_hash)=0
virtual Optional< int > getHeight()=0
RBFTransactionState
Definition: rbf.h:10
virtual int rpcSerializationFlags()=0
Current RPC serialization flags.
int64_t CAmount
Definition: amount.h:12
virtual void initMessage(const std::string &message)=0
Send init message.
virtual void stop()=0
Shut down client.
virtual bool checkChainLimits(const CTransactionRef &tx)=0
Check if transaction will pass the mempool's chain limits.
virtual RBFTransactionState isRBFOptIn(const CTransaction &tx)=0
Check if transaction is RBF opt in.
virtual void UpdatedBlockTip()
Definition: chain.h:236
virtual uint256 getBlockHash(int height)=0
Get block hash. Height must be valid or this function will abort.
Definition: dummywallet.cpp:11
virtual void findCoins(std::map< COutPoint, Coin > &coins)=0
Definition: transaction.h:270
virtual bool isInitialBlockDownload()=0
Check if in IBD.
const char * name
Definition: rest.cpp:39
virtual std::unique_ptr< Handler > handleNotifications(Notifications ¬ifications)=0
Register handler for notifications.
virtual void ChainStateFlushed(const CBlockLocator &locator)
Definition: chain.h:237
virtual bool rpcEnableDeprecated(const std::string &method)=0
Check if deprecated RPC is enabled.
virtual void start(CScheduler &scheduler)=0
Start client execution and provide a scheduler.
virtual ~Chain()
Definition: chain.h:61
virtual bool checkFinalTx(const CTransaction &tx)=0
Check if transaction will be final given chain height current time.
virtual int64_t getBlockMedianTimePast(int height)=0
virtual void rpcRunLater(const std::string &name, std::function< void()> fn, int64_t seconds)=0
Run function after given number of seconds. Cancel any previous calls with same name.
virtual void loadWallet(std::unique_ptr< Wallet > wallet)=0
Send wallet load notification to the GUI.
virtual CFeeRate mempoolMinFee()=0
Mempool minimum fee.
virtual CFeeRate relayMinFee()=0
Relay current minimum fee (from -minrelaytxfee and -incrementalrelayfee settings).
virtual void BlockDisconnected(const CBlock &block)
Definition: chain.h:235
std::unique_ptr< Chain > MakeChain()
Return implementation of Chain interface.
Definition: chain.cpp:383
Definition: uint256.h:121
virtual Optional< int > findPruned(int start_height=0, Optional< int > stop_height=nullopt)=0
virtual ~Lock()
Definition: chain.h:71
virtual std::unique_ptr< Handler > handleRpc(const CRPCCommand &command)=0
virtual Optional< int > findFork(const uint256 &hash, Optional< int > *height)=0
virtual Optional< int > getBlockHeight(const uint256 &hash)=0
virtual bool hasDescendantsInMempool(const uint256 &txid)=0
Check if transaction has descendants in mempool.
virtual std::unique_ptr< Lock > lock(bool try_lock=false)=0
signed long long int64_t
Definition: stdint.h:18
virtual bool havePruned()=0
Check if any block has been pruned.
virtual bool isReadyToBroadcast()=0
Check if the node is ready to broadcast transactions.
virtual bool p2pEnabled()=0
Check if p2p enabled.
virtual void initError(const std::string &message)=0
Send init error.
virtual void flush()=0
Save state to disk.
boost::optional< T > Optional
Substitute for C++17 std::optional.
Definition: optional.h:14
virtual Optional< int > findLocatorFork(const CBlockLocator &locator)=0
virtual CBlockLocator getTipLocator()=0
Get locator for the current chain tip.
virtual void showProgress(const std::string &title, int progress, bool resume_possible)=0
Send progress indicator.
virtual bool haveBlockOnDisk(int height)=0
virtual Optional< int > findFirstBlockWithTimeAndHeight(int64_t time, int height, uint256 *hash)=0