diff options
author | Carl Dong <contact@carldong.me> | 2021-04-12 18:25:13 -0400 |
---|---|---|
committer | Carl Dong <contact@carldong.me> | 2021-04-12 18:25:13 -0400 |
commit | 306b1cd3eeb2502904ed4698646d2c86d028aad2 (patch) | |
tree | ffb56a87c99acefbeb59d19d1007d6a27f03e18b | |
parent | d7824acdb9b18fe8f151771a83ccae1681f16c66 (diff) | |
download | bitcoin-306b1cd3eeb2502904ed4698646d2c86d028aad2.tar.xz |
rpc: Add alt Ensure* functions acepting NodeContext
-rw-r--r-- | src/rpc/blockchain.cpp | 24 | ||||
-rw-r--r-- | src/rpc/blockchain.h | 3 |
2 files changed, 21 insertions, 6 deletions
diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index ffabca0aff..cc7a29ffdb 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -64,18 +64,21 @@ NodeContext& EnsureNodeContext(const std::any& context) return *node_context; } -CTxMemPool& EnsureMemPool(const std::any& context) +CTxMemPool& EnsureMemPool(const NodeContext& node) { - const NodeContext& node = EnsureNodeContext(context); if (!node.mempool) { throw JSONRPCError(RPC_CLIENT_MEMPOOL_DISABLED, "Mempool disabled or instance not found"); } return *node.mempool; } -ChainstateManager& EnsureChainman(const std::any& context) +CTxMemPool& EnsureMemPool(const std::any& context) +{ + return EnsureMemPool(EnsureNodeContext(context)); +} + +ChainstateManager& EnsureChainman(const NodeContext& node) { - const NodeContext& node = EnsureNodeContext(context); if (!node.chainman) { throw JSONRPCError(RPC_INTERNAL_ERROR, "Node chainman not found"); } @@ -83,15 +86,24 @@ ChainstateManager& EnsureChainman(const std::any& context) return *node.chainman; } -CBlockPolicyEstimator& EnsureFeeEstimator(const std::any& context) +ChainstateManager& EnsureChainman(const std::any& context) +{ + return EnsureChainman(EnsureNodeContext(context)); +} + +CBlockPolicyEstimator& EnsureFeeEstimator(const NodeContext& node) { - NodeContext& node = EnsureNodeContext(context); if (!node.fee_estimator) { throw JSONRPCError(RPC_INTERNAL_ERROR, "Fee estimation disabled"); } return *node.fee_estimator; } +CBlockPolicyEstimator& EnsureFeeEstimator(const std::any& context) +{ + return EnsureFeeEstimator(EnsureNodeContext(context)); +} + /* Calculate the difficulty for a given block index. */ double GetDifficulty(const CBlockIndex* blockindex) diff --git a/src/rpc/blockchain.h b/src/rpc/blockchain.h index cd04c9a10f..17c7060761 100644 --- a/src/rpc/blockchain.h +++ b/src/rpc/blockchain.h @@ -57,8 +57,11 @@ void ScriptPubKeyToUniv(const CScript& scriptPubKey, UniValue& out, bool fInclud void TxToUniv(const CTransaction& tx, const uint256& hashBlock, UniValue& entry, bool include_hex = true, int serialize_flags = 0, const CTxUndo* txundo = nullptr); NodeContext& EnsureNodeContext(const std::any& context); +CTxMemPool& EnsureMemPool(const NodeContext& node); CTxMemPool& EnsureMemPool(const std::any& context); +ChainstateManager& EnsureChainman(const NodeContext& node); ChainstateManager& EnsureChainman(const std::any& context); +CBlockPolicyEstimator& EnsureFeeEstimator(const NodeContext& node); CBlockPolicyEstimator& EnsureFeeEstimator(const std::any& context); /** |