@@ -54,6 +54,16 @@ const CTransaction* cast_const_transaction(const kernel_Transaction* transaction
54
54
return reinterpret_cast <const CTransaction*>(transaction);
55
55
}
56
56
57
+ const CTxIn* cast_const_transaction_input (const kernel_TransactionInput* input)
58
+ {
59
+ return reinterpret_cast <const CTxIn*>(input);
60
+ }
61
+
62
+ const COutPoint* cast_const_transaction_out_point (const kernel_TransactionOutPoint* out_point)
63
+ {
64
+ return reinterpret_cast <const COutPoint*>(out_point);
65
+ }
66
+
57
67
kernel_blockreader_IBDStatus cast_ibd_status (IBDStatus status)
58
68
{
59
69
switch (status) {
@@ -399,7 +409,7 @@ const kernel_Transaction* kernel_block_pointer_get_transaction(const kernel_Bloc
399
409
return reinterpret_cast <const kernel_Transaction*>(block->vtx [index].get ());
400
410
}
401
411
402
- uint32_t kernel_transaction_get_transaction_input_count (const kernel_Transaction * _transaction)
412
+ uint32_t kernel_transaction_get_transaction_input_count (const kernel_Transaction* _transaction)
403
413
{
404
414
const auto * transaction = cast_const_transaction (_transaction);
405
415
return transaction->vin .size ();
@@ -414,4 +424,28 @@ const kernel_TransactionInput* kernel_transaction_get_transaction_input(const ke
414
424
return reinterpret_cast <const kernel_TransactionInput*>(&transaction->vin [index]);
415
425
}
416
426
427
+ const kernel_TransactionOutPoint* kernel_transaction_input_get_out_point (const kernel_TransactionInput* _input)
428
+ {
429
+ const auto * input = cast_const_transaction_input (_input);
430
+ return reinterpret_cast <const kernel_TransactionOutPoint*>(&input->prevout );
431
+ }
432
+
433
+ const kernel_BlockHash* kernel_transaction_out_point_get_hash (const kernel_TransactionOutPoint* _out_point)
434
+ {
435
+ const auto * out_point = cast_const_transaction_out_point (_out_point);
436
+
437
+ auto * block_hash = new kernel_BlockHash{};
438
+ std::memcpy (block_hash->hash , out_point->hash .begin (), sizeof (block_hash));
439
+
440
+ return block_hash;
441
+ }
442
+
443
+ uint32_t kernel_transaction_out_point_get_index (const kernel_TransactionOutPoint* _out_point)
444
+ {
445
+ const auto * input = cast_const_transaction_out_point (_out_point);
446
+
447
+ return input->n ;
448
+ }
449
+
450
+
417
451
} // extern "C"
0 commit comments