diff --git a/conanfile.py b/conanfile.py index a6a8c56..4e7638e 100644 --- a/conanfile.py +++ b/conanfile.py @@ -80,7 +80,7 @@ def requirements(self): def build_requirements(self): if self.options.tests: - self.test_requires("catch2/3.6.0") + self.test_requires("catch2/3.7.1") def config_options(self): KnuthConanFileV2.config_options(self) diff --git a/include/kth/capi/chain/transaction.h b/include/kth/capi/chain/transaction.h index 8f5d358..751559d 100644 --- a/include/kth/capi/chain/transaction.h +++ b/include/kth/capi/chain/transaction.h @@ -41,11 +41,11 @@ kth_hash_t kth_chain_transaction_hash(kth_transaction_t transaction); KTH_EXPORT void kth_chain_transaction_hash_out(kth_transaction_t transaction, kth_hash_t* out_hash); -KTH_EXPORT -kth_hash_t kth_chain_transaction_hash_sighash_type(kth_transaction_t transaction, uint32_t sighash_type); +// KTH_EXPORT +// kth_hash_t kth_chain_transaction_hash_sighash_type(kth_transaction_t transaction, uint32_t sighash_type); -KTH_EXPORT -void kth_chain_transaction_hash_sighash_type_out(kth_transaction_t transaction, uint32_t sighash_type, kth_hash_t* out_hash); +// KTH_EXPORT +// void kth_chain_transaction_hash_sighash_type_out(kth_transaction_t transaction, uint32_t sighash_type, kth_hash_t* out_hash); KTH_EXPORT uint32_t kth_chain_transaction_locktime(kth_transaction_t transaction); diff --git a/src/chain/block.cpp b/src/chain/block.cpp index 85e2074..a3c4e8c 100644 --- a/src/chain/block.cpp +++ b/src/chain/block.cpp @@ -28,7 +28,7 @@ kth_block_t kth_chain_block_construct(kth_header_t header, kth_transaction_list_ kth_block_t kth_chain_block_factory_from_data(uint32_t version, uint8_t* data, uint64_t n) { kth::data_chunk data_cpp(data, std::next(data, n)); - auto block = kth::domain::create(version, data_cpp); + auto block = kth::domain::create_old(data_cpp, version); return kth::move_or_copy_and_leak(std::move(block)); } diff --git a/src/chain/chain_async.cpp b/src/chain/chain_async.cpp index 991a3ef..6b185f9 100644 --- a/src/chain/chain_async.cpp +++ b/src/chain/chain_async.cpp @@ -80,14 +80,14 @@ void kth_chain_async_block_header_by_hash(kth_chain_t chain, void* ctx, kth_hash } void kth_chain_async_block_by_height(kth_chain_t chain, void* ctx, kth_size_t height, kth_block_fetch_handler_t handler) { - safe_chain(chain).fetch_block(height, kth::witness(), [chain, ctx, handler](std::error_code const& ec, kth::domain::message::block::const_ptr block, size_t h) { + safe_chain(chain).fetch_block(height, [chain, ctx, handler](std::error_code const& ec, kth::domain::message::block::const_ptr block, size_t h) { handler(chain, ctx, kth::to_c_err(ec), kth::leak_if_success(block, ec), h); }); } void kth_chain_async_block_by_hash(kth_chain_t chain, void* ctx, kth_hash_t hash, kth_block_fetch_handler_t handler) { auto hash_cpp = kth::to_array(hash.hash); - safe_chain(chain).fetch_block(hash_cpp, kth::witness(), [chain, ctx, handler](std::error_code const& ec, kth::domain::message::block::const_ptr block, size_t h) { + safe_chain(chain).fetch_block(hash_cpp, [chain, ctx, handler](std::error_code const& ec, kth::domain::message::block::const_ptr block, size_t h) { handler(chain, ctx, kth::to_c_err(ec), kth::leak_if_success(block, ec), h); }); } @@ -140,7 +140,7 @@ void kth_chain_async_block_by_height_timestamp(kth_chain_t chain, void* ctx, kth void kth_chain_async_transaction(kth_chain_t chain, void* ctx, kth_hash_t hash, kth_bool_t require_confirmed, kth_transaction_fetch_handler_t handler) { //precondition: [hash, 32] is a valid range auto hash_cpp = kth::to_array(hash.hash); - safe_chain(chain).fetch_transaction(hash_cpp, kth::int_to_bool(require_confirmed), kth::witness(), [chain, ctx, handler](std::error_code const& ec, kth::domain::message::transaction::const_ptr transaction, size_t i, size_t h) { + safe_chain(chain).fetch_transaction(hash_cpp, kth::int_to_bool(require_confirmed), [chain, ctx, handler](std::error_code const& ec, kth::domain::message::transaction::const_ptr transaction, size_t i, size_t h) { handler(chain, ctx, kth::to_c_err(ec), kth::leak_if_success(transaction, ec), i, h); }); } diff --git a/src/chain/chain_sync.cpp b/src/chain/chain_sync.cpp index 214b042..30ae0a2 100644 --- a/src/chain/chain_sync.cpp +++ b/src/chain/chain_sync.cpp @@ -120,7 +120,7 @@ kth_error_code_t kth_chain_sync_block_by_height(kth_chain_t chain, kth_size_t he std::latch latch(1); //Note: workaround to fix an error on some versions of Boost.Threads kth_error_code_t res; - safe_chain(chain).fetch_block(height, kth::witness(), [&](std::error_code const& ec, kth::domain::message::block::const_ptr block, size_t h) { + safe_chain(chain).fetch_block(height, [&](std::error_code const& ec, kth::domain::message::block::const_ptr block, size_t h) { if (ec == kth::error::success) { *out_block = kth::leak_if_success(block, ec); } else { @@ -142,7 +142,7 @@ kth_error_code_t kth_chain_sync_block_by_hash(kth_chain_t chain, kth_hash_t hash auto hash_cpp = kth::to_array(hash.hash); - safe_chain(chain).fetch_block(hash_cpp, kth::witness(), [&](std::error_code const& ec, kth::domain::message::block::const_ptr block, size_t h) { + safe_chain(chain).fetch_block(hash_cpp, [&](std::error_code const& ec, kth::domain::message::block::const_ptr block, size_t h) { if (ec == kth::error::success) { *out_block = kth::leak_if_success(block, ec); } else { @@ -280,7 +280,7 @@ kth_error_code_t kth_chain_sync_transaction(kth_chain_t chain, kth_hash_t hash, auto hash_cpp = kth::to_array(hash.hash); - safe_chain(chain).fetch_transaction(hash_cpp, kth::int_to_bool(require_confirmed), kth::witness(), [&](std::error_code const& ec, kth::domain::message::transaction::const_ptr transaction, size_t i, size_t h) { + safe_chain(chain).fetch_transaction(hash_cpp, kth::int_to_bool(require_confirmed), [&](std::error_code const& ec, kth::domain::message::transaction::const_ptr transaction, size_t i, size_t h) { *out_transaction = kth::leak_if_success(transaction, ec); *out_height = h; *out_index = i; @@ -375,7 +375,7 @@ kth_error_code_t kth_chain_sync_confirmed_transactions(kth_chain_t chain, kth_pa kth_mempool_transaction_list_t kth_chain_sync_mempool_transactions(kth_chain_t chain, kth_payment_address_t address, kth_bool_t use_testnet_rules) { auto const& address_cpp = kth_wallet_payment_address_const_cpp(address); if (address_cpp) { - auto txs = safe_chain(chain).get_mempool_transactions(address_cpp.encoded_cashaddr(false), kth::int_to_bool(use_testnet_rules), kth::witness()); + auto txs = safe_chain(chain).get_mempool_transactions(address_cpp.encoded_cashaddr(false), kth::int_to_bool(use_testnet_rules)); auto ret_txs = kth::leak(txs); return static_cast(ret_txs); } @@ -385,7 +385,7 @@ kth_mempool_transaction_list_t kth_chain_sync_mempool_transactions(kth_chain_t c kth_transaction_list_t kth_chain_sync_mempool_transactions_from_wallets(kth_chain_t chain, kth_payment_address_list_t addresses, kth_bool_t use_testnet_rules) { auto const& addresses_cpp = *static_cast const*>(addresses); - auto txs = safe_chain(chain).get_mempool_transactions_from_wallets(addresses_cpp, kth::int_to_bool(use_testnet_rules), kth::witness()); + auto txs = safe_chain(chain).get_mempool_transactions_from_wallets(addresses_cpp, kth::int_to_bool(use_testnet_rules)); return kth::move_or_copy_and_leak(std::move(txs)); } diff --git a/src/chain/header.cpp b/src/chain/header.cpp index c1becbe..925cc16 100644 --- a/src/chain/header.cpp +++ b/src/chain/header.cpp @@ -13,7 +13,7 @@ extern "C" { kth_header_t kth_chain_header_factory_from_data(uint32_t version, uint8_t* data, uint64_t n) { kth::data_chunk data_cpp(data, std::next(data, n)); - auto header = kth::domain::create(version, data_cpp); + auto header = kth::domain::create_old(data_cpp, version); return kth::move_or_copy_and_leak(std::move(header)); } diff --git a/src/chain/input.cpp b/src/chain/input.cpp index 914a4d6..55a7cc7 100644 --- a/src/chain/input.cpp +++ b/src/chain/input.cpp @@ -29,7 +29,7 @@ void kth_chain_input_destruct(kth_input_t input) { kth_input_t kth_chain_input_factory_from_data(uint8_t* data, uint64_t n) { kth::data_chunk data_cpp(data, std::next(data, n)); - auto input = kth::domain::create(data_cpp); + auto input = kth::domain::create_old(data_cpp, true); return kth::move_or_copy_and_leak(std::move(input)); } diff --git a/src/chain/output.cpp b/src/chain/output.cpp index 30f837c..ddfc102 100644 --- a/src/chain/output.cpp +++ b/src/chain/output.cpp @@ -29,7 +29,7 @@ void kth_chain_output_destruct(kth_output_t output) { kth_output_t kth_chain_output_factory_from_data(uint8_t* data, uint64_t n) { kth::data_chunk data_cpp(data, std::next(data, n)); - auto output = kth::domain::create(data_cpp); + auto output = kth::domain::create_old(data_cpp); return kth::move_or_copy_and_leak(std::move(output)); } diff --git a/src/chain/transaction.cpp b/src/chain/transaction.cpp index 01bf79d..e8e5b6d 100644 --- a/src/chain/transaction.cpp +++ b/src/chain/transaction.cpp @@ -17,7 +17,7 @@ extern "C" { kth_transaction_t kth_chain_transaction_factory_from_data(uint32_t version, uint8_t* data, uint64_t n) { kth::data_chunk data_cpp(data, std::next(data, n)); - auto tx = kth::domain::create(version, data_cpp); + auto tx = kth::domain::create_old(data_cpp, version); return kth::move_or_copy_and_leak(std::move(tx)); } @@ -57,15 +57,15 @@ void kth_chain_transaction_hash_out(kth_transaction_t transaction, kth_hash_t* o kth::copy_c_hash(hash_cpp, out_hash); } -kth_hash_t kth_chain_transaction_hash_sighash_type(kth_transaction_t transaction, uint32_t sighash_type) { - auto const& hash_cpp = kth_chain_transaction_const_cpp(transaction).hash(sighash_type != 0u); - return kth::to_hash_t(hash_cpp); -} +// kth_hash_t kth_chain_transaction_hash_sighash_type(kth_transaction_t transaction, uint32_t sighash_type) { +// auto const& hash_cpp = kth_chain_transaction_const_cpp(transaction).hash(sighash_type != 0u); +// return kth::to_hash_t(hash_cpp); +// } -void kth_chain_transaction_hash_sighash_type_out(kth_transaction_t transaction, uint32_t sighash_type, kth_hash_t* out_hash) { - auto const& hash_cpp = kth_chain_transaction_const_cpp(transaction).hash(sighash_type != 0u); - kth::copy_c_hash(hash_cpp, out_hash); -} +// void kth_chain_transaction_hash_sighash_type_out(kth_transaction_t transaction, uint32_t sighash_type, kth_hash_t* out_hash) { +// auto const& hash_cpp = kth_chain_transaction_const_cpp(transaction).hash(sighash_type != 0u); +// kth::copy_c_hash(hash_cpp, out_hash); +// } uint32_t kth_chain_transaction_locktime(kth_transaction_t transaction) { return kth_chain_transaction_const_cpp(transaction).locktime();