5 #ifndef BITCOIN_INTERFACES_NODE_H 6 #define BITCOIN_INTERFACES_NODE_H 87 virtual void mapPort(
bool use_upnp,
bool use_natpmp) = 0;
96 using NodesStats = std::vector<std::tuple<CNodeStats, bool, CNodeStateStats>>;
103 virtual bool ban(
const CNetAddr& net_addr, int64_t ban_time_offset) = 0;
130 virtual bool getHeaderTip(
int& height, int64_t& block_time) = 0;
186 std::function<bool(const bilingual_str& message, const std::string& caption, unsigned int style)>;
191 const std::string& non_interactive_message,
192 const std::string& caption,
193 unsigned int style)>;
197 using ShowProgressFn = std::function<void(const std::string& title, int progress, bool resume_possible)>;
218 std::function<void(SynchronizationState, interfaces::BlockTip tip, double verification_progress)>;
223 std::function<void(SynchronizationState, interfaces::BlockTip tip, double verification_progress)>;
244 #endif // BITCOIN_INTERFACES_NODE_H virtual std::unique_ptr< Handler > handleNotifyHeaderTip(NotifyHeaderTipFn fn)=0
std::vector< std::tuple< CNodeStats, bool, CNodeStateStats > > NodesStats
Get stats for connected nodes.
Block tip (could be a header or not, depends on the subscribed signal).
virtual bool isInitialBlockDownload()=0
Is initial block download.
SynchronizationState
Current sync state passed to tip changed callbacks.
virtual bool getNetworkActive()=0
Get network active.
virtual void initLogging()=0
Init logging.
virtual double getVerificationProgress()=0
Get verification progress.
virtual size_t getMempoolDynamicUsage()=0
Get mempool dynamic usage.
virtual bool baseInitialize()=0
Initialize app dependencies.
virtual bool getProxy(Network net, proxyType &proxy_info)=0
Get proxy.
virtual bool unban(const CSubNet &ip)=0
Unban node.
virtual void startShutdown()=0
Start shutdown.
virtual UniValue executeRpc(const std::string &command, const UniValue ¶ms, const std::string &uri)=0
Execute rpc command.
virtual void rpcUnsetTimerInterface(RPCTimerInterface *iface)=0
Unset RPC timer interface.
virtual int64_t getTotalBytesRecv()=0
Get total bytes recv.
virtual bool getImporting()=0
Get importing.
std::function< void(bool network_active)> NotifyNetworkActiveChangedFn
Register handler for network active messages.
virtual size_t getMempoolSize()=0
Get mempool size.
virtual uint32_t getLogCategories()=0
std::function< void(SynchronizationState, interfaces::BlockTip tip, double verification_progress)> NotifyBlockTipFn
Register handler for block tip messages.
Wallet chain client that in addition to having chain client methods for starting up, shutting down, and registering RPCs, also has additional methods (called by the GUI) to load and create wallets.
virtual std::unique_ptr< Handler > handleNotifyBlockTip(NotifyBlockTipFn fn)=0
virtual void setContext(NodeContext *context)
virtual CFeeRate getDustRelayFee()=0
Get dust relay fee.
virtual bool ban(const CNetAddr &net_addr, int64_t ban_time_offset)=0
Ban node.
virtual size_t getNodeCount(ConnectionDirection flags)=0
Get number of connections.
virtual void rpcSetTimerInterfaceIfUnset(RPCTimerInterface *iface)=0
Set RPC timer interface if unset.
virtual std::unique_ptr< Handler > handleMessageBox(MessageBoxFn fn)=0
virtual std::unique_ptr< Handler > handleNotifyNumConnectionsChanged(NotifyNumConnectionsChangedFn fn)=0
std::function< void(SynchronizationState, interfaces::BlockTip tip, double verification_progress)> NotifyHeaderTipFn
Register handler for header tip messages.
NodeContext struct containing references to chain state and connection state.
std::function< void()> NotifyAlertChangedFn
Register handler for notify alert messages.
virtual bilingual_str getWarnings()=0
Get warnings.
virtual std::unique_ptr< Handler > handleShowProgress(ShowProgressFn fn)=0
virtual bool disconnectByAddress(const CNetAddr &net_addr)=0
Disconnect node by address.
Block and header tip information.
virtual std::unique_ptr< Handler > handleBannedListChanged(BannedListChangedFn fn)=0
An outpoint - a combination of a transaction hash and an index n into its vout.
virtual std::vector< ExternalSigner > externalSigners()=0
List external signers.
virtual bool shutdownRequested()=0
Return whether shutdown was requested.
std::function< void(const std::string &message)> InitMessageFn
Register handler for init messages.
std::function< void()> BannedListChangedFn
Register handler for ban list messages.
virtual void initParameterInteraction()=0
Init parameter interaction.
std::function< void(int new_num_connections)> NotifyNumConnectionsChangedFn
Register handler for number of connections changed messages.
virtual bool getReindex()=0
Get reindex.
double verification_progress
virtual int64_t getLastBlockTime()=0
Get last block time.
virtual void appShutdown()=0
Stop node.
virtual std::unique_ptr< Handler > handleQuestion(QuestionFn fn)=0
std::function< bool(const bilingual_str &message, const std::string &non_interactive_message, const std::string &caption, unsigned int style)> QuestionFn
Register handler for question messages.
virtual uint256 getBestBlockHash()=0
Get best block hash.
virtual WalletClient & walletClient()=0
Get wallet client.
virtual std::vector< std::string > listRpcCommands()=0
List rpc commands.
virtual bool getHeaderTip(int &height, int64_t &block_time)=0
Get header tip height and time.
virtual NodeContext * context()
Get and set internal node context.
virtual bool getNodesStats(NodesStats &stats)=0
Fee rate in satoshis per kilobyte: CAmount / kB.
virtual bool getBanned(banmap_t &banmap)=0
Get ban map entries.
std::function< void(const std::string &title, int progress, bool resume_possible)> ShowProgressFn
Register handler for progress messages.
std::map< CSubNet, CBanEntry > banmap_t
virtual int getNumBlocks()=0
Get num blocks.
virtual std::unique_ptr< Handler > handleNotifyAlertChanged(NotifyAlertChangedFn fn)=0
std::function< bool(const bilingual_str &message, const std::string &caption, unsigned int style)> MessageBoxFn
Register handler for message box messages.
virtual bool disconnectById(NodeId id)=0
Disconnect node by id.
virtual std::unique_ptr< Handler > handleNotifyNetworkActiveChanged(NotifyNetworkActiveChangedFn fn)=0
std::unique_ptr< Node > MakeNode(NodeContext *context=nullptr)
Return implementation of Node interface.
virtual int64_t getTotalBytesSent()=0
Get total bytes sent.
virtual void setNetworkActive(bool active)=0
Set network active.
virtual void mapPort(bool use_upnp, bool use_natpmp)=0
Map port.
Top-level interface for a bitcoin node (bitcoind process).
virtual bool getUnspentOutput(const COutPoint &output, Coin &coin)=0
Get unspent outputs associated with a transaction.
virtual bool appInitMain(interfaces::BlockAndHeaderTipInfo *tip_info=nullptr)=0
Start node.
virtual std::unique_ptr< Handler > handleInitMessage(InitMessageFn fn)=0