kernel: Add API function for getting a tx input's nSequence

This commit is contained in:
Sebastian Falbesoner
2026-03-18 04:15:30 +01:00
parent 6b64b181d5
commit 9f28120a5b
4 changed files with 21 additions and 0 deletions

View File

@@ -697,6 +697,11 @@ const btck_TransactionOutPoint* btck_transaction_input_get_out_point(const btck_
return btck_TransactionOutPoint::ref(&btck_TransactionInput::get(input).prevout);
}
uint32_t btck_transaction_input_get_sequence(const btck_TransactionInput* input)
{
return btck_TransactionInput::get(input).nSequence;
}
void btck_transaction_input_destroy(btck_TransactionInput* input)
{
delete input;

View File

@@ -1514,6 +1514,15 @@ BITCOINKERNEL_API btck_TransactionInput* BITCOINKERNEL_WARN_UNUSED_RESULT btck_t
BITCOINKERNEL_API const btck_TransactionOutPoint* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_input_get_out_point(
const btck_TransactionInput* transaction_input) BITCOINKERNEL_ARG_NONNULL(1);
/**
* @brief Get a transaction input's nSequence value.
*
* @param[in] transaction_input Non-null.
* @return The nSequence value.
*/
BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_input_get_sequence(
const btck_TransactionInput* transaction_input) BITCOINKERNEL_ARG_NONNULL(1);
/**
* Destroy the transaction input.
*/

View File

@@ -551,6 +551,11 @@ public:
{
return OutPointView{btck_transaction_input_get_out_point(impl())};
}
uint32_t GetSequence() const
{
return btck_transaction_input_get_sequence(impl());
}
};
class TransactionInputView : public View<btck_TransactionInput>, public TransactionInputApi<TransactionInputView>

View File

@@ -404,6 +404,8 @@ BOOST_AUTO_TEST_CASE(btck_transaction_tests)
BOOST_CHECK_EQUAL(tx.GetLocktime(), 510826);
auto broken_tx_data{std::span<std::byte>{tx_data.begin(), tx_data.begin() + 10}};
BOOST_CHECK_THROW(Transaction{broken_tx_data}, std::runtime_error);
auto input{tx.GetInput(0)};
BOOST_CHECK_EQUAL(input.GetSequence(), 0xfffffffe);
auto output{tx.GetOutput(tx.CountOutputs() - 1)};
BOOST_CHECK_EQUAL(output.Amount(), 42130042);
auto script_pubkey{output.GetScriptPubkey()};