Support converting C `OutPoint`s to `bitcoin` `OutPoint`s
[ldk-c-bindings] / lightning-c-bindings / src / c_types / mod.rs
index 09c8a5147d4c096fea4c1313af2497a659072269..8cbfddd469437b725c4dd2e3a04fc58e0f05e566 100644 (file)
@@ -289,6 +289,13 @@ pub extern "C" fn Transaction_free(_res: Transaction) { }
 pub(crate) fn bitcoin_to_C_outpoint(outpoint: ::bitcoin::blockdata::transaction::OutPoint) -> crate::lightning::chain::transaction::OutPoint {
        crate::lightning::chain::transaction::OutPoint_new(ThirtyTwoBytes { data: outpoint.txid.into_inner() }, outpoint.vout.try_into().unwrap())
 }
+pub(crate) fn C_to_bitcoin_outpoint(outpoint: crate::lightning::chain::transaction::OutPoint) -> ::bitcoin::blockdata::transaction::OutPoint {
+       unsafe {
+               ::bitcoin::blockdata::transaction::OutPoint {
+                       txid: (*outpoint.inner).txid, vout: (*outpoint.inner).index as u32
+               }
+       }
+}
 
 #[repr(C)]
 #[derive(Clone)]
@@ -390,9 +397,6 @@ impl lightning::util::ser::Writer for VecWriter {
                self.0.extend_from_slice(buf);
                Ok(())
        }
-       fn size_hint(&mut self, size: usize) {
-               self.0.reserve_exact(size);
-       }
 }
 pub(crate) fn serialize_obj<I: lightning::util::ser::Writeable>(i: &I) -> derived::CVec_u8Z {
        let mut out = VecWriter(Vec::new());