mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-04-12 00:27:53 +02:00
kernel: Expose consensus parameters (btck_ConsensusParams)
Library users currently need to maintain a full context object to perform context-free block validation. Exposing an opaque `btck_ConsensusParams` struct allows callers to supply only the required consensus parameters, resulting in a lighter-weight API and a clearer expression of the actual validation behavior. Co-authored-by: yuvicc <yuvichh01@gmail.com>
This commit is contained in:
@@ -50,6 +50,10 @@
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
namespace Consensus {
|
||||
struct Params;
|
||||
} // namespace Consensus
|
||||
|
||||
using kernel::ChainstateRole;
|
||||
using util::ImmediateTaskRunner;
|
||||
|
||||
@@ -496,6 +500,7 @@ struct btck_TransactionOutPoint: Handle<btck_TransactionOutPoint, COutPoint> {};
|
||||
struct btck_Txid: Handle<btck_Txid, Txid> {};
|
||||
struct btck_PrecomputedTransactionData : Handle<btck_PrecomputedTransactionData, PrecomputedTransactionData> {};
|
||||
struct btck_BlockHeader: Handle<btck_BlockHeader, CBlockHeader> {};
|
||||
struct btck_ConsensusParams: Handle<btck_ConsensusParams, Consensus::Params> {};
|
||||
|
||||
btck_Transaction* btck_transaction_create(const void* raw_transaction, size_t raw_transaction_len)
|
||||
{
|
||||
@@ -823,6 +828,11 @@ btck_ChainParameters* btck_chain_parameters_copy(const btck_ChainParameters* cha
|
||||
return btck_ChainParameters::copy(chain_parameters);
|
||||
}
|
||||
|
||||
const btck_ConsensusParams* btck_chain_parameters_get_consensus_params(const btck_ChainParameters* chain_parameters)
|
||||
{
|
||||
return btck_ConsensusParams::ref(&btck_ChainParameters::get(chain_parameters).GetConsensus());
|
||||
}
|
||||
|
||||
void btck_chain_parameters_destroy(btck_ChainParameters* chain_parameters)
|
||||
{
|
||||
delete chain_parameters;
|
||||
|
||||
Reference in New Issue
Block a user