mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-09-12 21:52:53 +02:00
kernel: expose witness stack for btck_TransactionInput
This commit is contained in:
@@ -513,6 +513,28 @@ BOOST_AUTO_TEST_CASE(btck_transaction_input)
|
||||
OutPoint point_0 = input_0.OutPoint();
|
||||
OutPoint point_1 = input_1.OutPoint();
|
||||
CheckHandle(point_0, point_1);
|
||||
|
||||
WitnessStackView ws_0 = input_0.GetWitnessStack();
|
||||
BOOST_CHECK_EQUAL(ws_0.CountItems(), 0);
|
||||
BOOST_CHECK(ws_0.Items().empty());
|
||||
|
||||
// P2WSH input: OP_0, sig, sig, redeem_script (0, 71, 71, 105 bytes); no scriptSig.
|
||||
Transaction segwit_tx{hex_string_to_byte_vec("010000000001011f97548fbbe7a0db7588a66e18d803d0089315aa7d4cc28360b6ec50ef36718a0100000000ffffffff02df1776000000000017a9146c002a686959067f4866b8fb493ad7970290ab728757d29f0000000000220020701a8d401c84fb13e6baf169d59684e17abd9fa216c8cc5b9fc63d622ff8c58d04004730440220565d170eed95ff95027a69b313758450ba84a01224e1f7f130dda46e94d13f8602207bdd20e307f062594022f12ed5017bbf4a055a06aea91c10110a0e3bb23117fc014730440220647d2dc5b15f60bc37dc42618a370b2a1490293f9e5c8464f53ec4fe1dfe067302203598773895b4b16d37485cbe21b337f4e4b650739880098c592553add7dd4355016952210375e00eb72e29da82b89367947f29ef34afb75e8654f6ea368e0acdfd92976b7c2103a1b26313f430c4b15bb1fdce663207659d8cac749a0e53d70eff01874496feff2103c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f88053ae00000000")};
|
||||
TransactionInputView segwit_input = segwit_tx.GetInput(0);
|
||||
WitnessStackView ws = segwit_input.GetWitnessStack();
|
||||
BOOST_CHECK_EQUAL(ws.CountItems(), 4);
|
||||
BOOST_CHECK(ws.GetItem(0).empty());
|
||||
BOOST_CHECK(ws.GetItem(1) == hex_string_to_byte_vec("30440220565d170eed95ff95027a69b313758450ba84a01224e1f7f130dda46e94d13f8602207bdd20e307f062594022f12ed5017bbf4a055a06aea91c10110a0e3bb23117fc01"));
|
||||
BOOST_CHECK(ws.GetItem(2) == hex_string_to_byte_vec("30440220647d2dc5b15f60bc37dc42618a370b2a1490293f9e5c8464f53ec4fe1dfe067302203598773895b4b16d37485cbe21b337f4e4b650739880098c592553add7dd435501"));
|
||||
BOOST_CHECK(ws.GetItem(3) == hex_string_to_byte_vec("52210375e00eb72e29da82b89367947f29ef34afb75e8654f6ea368e0acdfd92976b7c2103a1b26313f430c4b15bb1fdce663207659d8cac749a0e53d70eff01874496feff2103c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f88053ae"));
|
||||
auto items = ws.Items();
|
||||
BOOST_CHECK_EQUAL(items.size(), 4);
|
||||
for (size_t i = 0; i < items.size(); ++i) {
|
||||
BOOST_CHECK(items[i] == ws.GetItem(i));
|
||||
}
|
||||
WitnessStack owned_ws_0{ws_0};
|
||||
WitnessStack owned_ws{ws};
|
||||
CheckHandle(owned_ws_0, owned_ws);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(btck_precomputed_txdata) {
|
||||
|
||||
Reference in New Issue
Block a user