From fc85f4f488ca868deb1e0a58778e8b19c8c3c3fc Mon Sep 17 00:00:00 2001 From: Erdem Yerebasmaz Date: Fri, 3 May 2024 13:43:07 +0300 Subject: [PATCH] Generate Dart/Flutter bindings --- lib/core/src/frb/bridge.io.rs | 248 +++++++++--- lib/core/src/frb/bridge.rs | 271 +++++++++---- .../include/breez_liquid_sdk.h | 200 ++++++++++ .../breez_liquid/lib/src/bindings.dart | 21 +- .../breez_liquid/lib/src/frb_generated.dart | 314 +++++++++++---- .../lib/src/frb_generated.io.dart | 356 +++++++++++++++--- .../packages/breez_liquid/lib/src/model.dart | 131 +++++-- ...utter_breez_liquid_bindings_generated.dart | 150 ++++++-- 8 files changed, 1364 insertions(+), 327 deletions(-) create mode 100644 lib/flutter/breez_liquid_sdk/include/breez_liquid_sdk.h diff --git a/lib/core/src/frb/bridge.io.rs b/lib/core/src/frb/bridge.io.rs index d46288f..9df78cf 100644 --- a/lib/core/src/frb/bridge.io.rs +++ b/lib/core/src/frb/bridge.io.rs @@ -54,6 +54,20 @@ impl CstDecode for *mut wire_cst_list_prim_u_8_strict { String::from_utf8(vec).unwrap() } } +impl CstDecode for *mut wire_cst_connect_request { + // Codec=Cst (C-struct based), see doc to use other codecs + fn cst_decode(self) -> crate::model::ConnectRequest { + let wrap = unsafe { flutter_rust_bridge::for_generated::box_from_leak_ptr(self) }; + CstDecode::::cst_decode(*wrap).into() + } +} +impl CstDecode for *mut wire_cst_get_info_request { + // Codec=Cst (C-struct based), see doc to use other codecs + fn cst_decode(self) -> crate::model::GetInfoRequest { + let wrap = unsafe { flutter_rust_bridge::for_generated::box_from_leak_ptr(self) }; + CstDecode::::cst_decode(*wrap).into() + } +} impl CstDecode for *mut wire_cst_prepare_receive_request { // Codec=Cst (C-struct based), see doc to use other codecs fn cst_decode(self) -> crate::model::PrepareReceiveRequest { @@ -68,6 +82,13 @@ impl CstDecode for *mut wire_cst_prepare_r CstDecode::::cst_decode(*wrap).into() } } +impl CstDecode for *mut wire_cst_prepare_send_request { + // Codec=Cst (C-struct based), see doc to use other codecs + fn cst_decode(self) -> crate::model::PrepareSendRequest { + let wrap = unsafe { flutter_rust_bridge::for_generated::box_from_leak_ptr(self) }; + CstDecode::::cst_decode(*wrap).into() + } +} impl CstDecode for *mut wire_cst_prepare_send_response { // Codec=Cst (C-struct based), see doc to use other codecs fn cst_decode(self) -> crate::model::PrepareSendResponse { @@ -75,6 +96,13 @@ impl CstDecode for *mut wire_cst_prepare_send CstDecode::::cst_decode(*wrap).into() } } +impl CstDecode for *mut wire_cst_restore_request { + // Codec=Cst (C-struct based), see doc to use other codecs + fn cst_decode(self) -> crate::model::RestoreRequest { + let wrap = unsafe { flutter_rust_bridge::for_generated::box_from_leak_ptr(self) }; + CstDecode::::cst_decode(*wrap).into() + } +} impl CstDecode for *mut u32 { // Codec=Cst (C-struct based), see doc to use other codecs fn cst_decode(self) -> u32 { @@ -87,6 +115,33 @@ impl CstDecode for *mut u64 { unsafe { *flutter_rust_bridge::for_generated::box_from_leak_ptr(self) } } } +impl CstDecode for wire_cst_connect_request { + // Codec=Cst (C-struct based), see doc to use other codecs + fn cst_decode(self) -> crate::model::ConnectRequest { + crate::model::ConnectRequest { + mnemonic: self.mnemonic.cst_decode(), + data_dir: self.data_dir.cst_decode(), + network: self.network.cst_decode(), + } + } +} +impl CstDecode for wire_cst_get_info_request { + // Codec=Cst (C-struct based), see doc to use other codecs + fn cst_decode(self) -> crate::model::GetInfoRequest { + crate::model::GetInfoRequest { + with_scan: self.with_scan.cst_decode(), + } + } +} +impl CstDecode for wire_cst_get_info_response { + // Codec=Cst (C-struct based), see doc to use other codecs + fn cst_decode(self) -> crate::model::GetInfoResponse { + crate::model::GetInfoResponse { + balance_sat: self.balance_sat.cst_decode(), + pubkey: self.pubkey.cst_decode(), + } + } +} impl CstDecode> for *mut wire_cst_list_payment { // Codec=Cst (C-struct based), see doc to use other codecs fn cst_decode(self) -> Vec { @@ -162,7 +217,6 @@ impl CstDecode for wire_cst_prepare_receive fn cst_decode(self) -> crate::model::PrepareReceiveRequest { crate::model::PrepareReceiveRequest { payer_amount_sat: self.payer_amount_sat.cst_decode(), - receiver_amount_sat: self.receiver_amount_sat.cst_decode(), } } } @@ -176,6 +230,14 @@ impl CstDecode for wire_cst_prepare_receiv } } } +impl CstDecode for wire_cst_prepare_send_request { + // Codec=Cst (C-struct based), see doc to use other codecs + fn cst_decode(self) -> crate::model::PrepareSendRequest { + crate::model::PrepareSendRequest { + invoice: self.invoice.cst_decode(), + } + } +} impl CstDecode for wire_cst_prepare_send_response { // Codec=Cst (C-struct based), see doc to use other codecs fn cst_decode(self) -> crate::model::PrepareSendResponse { @@ -198,6 +260,14 @@ impl CstDecode for wire_cst_receive_paymen } } } +impl CstDecode for wire_cst_restore_request { + // Codec=Cst (C-struct based), see doc to use other codecs + fn cst_decode(self) -> crate::model::RestoreRequest { + crate::model::RestoreRequest { + backup_path: self.backup_path.cst_decode(), + } + } +} impl CstDecode for wire_cst_send_payment_response { // Codec=Cst (C-struct based), see doc to use other codecs fn cst_decode(self) -> crate::model::SendPaymentResponse { @@ -206,15 +276,45 @@ impl CstDecode for wire_cst_send_payment_resp } } } -impl CstDecode for wire_cst_wallet_info { - // Codec=Cst (C-struct based), see doc to use other codecs - fn cst_decode(self) -> crate::model::WalletInfo { - crate::model::WalletInfo { - balance_sat: self.balance_sat.cst_decode(), - pubkey: self.pubkey.cst_decode(), +impl NewWithNullPtr for wire_cst_connect_request { + fn new_with_null_ptr() -> Self { + Self { + mnemonic: core::ptr::null_mut(), + data_dir: core::ptr::null_mut(), + network: Default::default(), } } } +impl Default for wire_cst_connect_request { + fn default() -> Self { + Self::new_with_null_ptr() + } +} +impl NewWithNullPtr for wire_cst_get_info_request { + fn new_with_null_ptr() -> Self { + Self { + with_scan: Default::default(), + } + } +} +impl Default for wire_cst_get_info_request { + fn default() -> Self { + Self::new_with_null_ptr() + } +} +impl NewWithNullPtr for wire_cst_get_info_response { + fn new_with_null_ptr() -> Self { + Self { + balance_sat: Default::default(), + pubkey: core::ptr::null_mut(), + } + } +} +impl Default for wire_cst_get_info_response { + fn default() -> Self { + Self::new_with_null_ptr() + } +} impl NewWithNullPtr for wire_cst_payment { fn new_with_null_ptr() -> Self { Self { @@ -248,8 +348,7 @@ impl Default for wire_cst_payment_error { impl NewWithNullPtr for wire_cst_prepare_receive_request { fn new_with_null_ptr() -> Self { Self { - payer_amount_sat: core::ptr::null_mut(), - receiver_amount_sat: core::ptr::null_mut(), + payer_amount_sat: Default::default(), } } } @@ -272,6 +371,18 @@ impl Default for wire_cst_prepare_receive_response { Self::new_with_null_ptr() } } +impl NewWithNullPtr for wire_cst_prepare_send_request { + fn new_with_null_ptr() -> Self { + Self { + invoice: core::ptr::null_mut(), + } + } +} +impl Default for wire_cst_prepare_send_request { + fn default() -> Self { + Self::new_with_null_ptr() + } +} impl NewWithNullPtr for wire_cst_prepare_send_response { fn new_with_null_ptr() -> Self { Self { @@ -302,6 +413,18 @@ impl Default for wire_cst_receive_payment_response { Self::new_with_null_ptr() } } +impl NewWithNullPtr for wire_cst_restore_request { + fn new_with_null_ptr() -> Self { + Self { + backup_path: core::ptr::null_mut(), + } + } +} +impl Default for wire_cst_restore_request { + fn default() -> Self { + Self::new_with_null_ptr() + } +} impl NewWithNullPtr for wire_cst_send_payment_response { fn new_with_null_ptr() -> Self { Self { @@ -314,19 +437,6 @@ impl Default for wire_cst_send_payment_response { Self::new_with_null_ptr() } } -impl NewWithNullPtr for wire_cst_wallet_info { - fn new_with_null_ptr() -> Self { - Self { - balance_sat: Default::default(), - pubkey: core::ptr::null_mut(), - } - } -} -impl Default for wire_cst_wallet_info { - fn default() -> Self { - Self::new_with_null_ptr() - } -} #[no_mangle] pub extern "C" fn frbgen_breez_liquid_wire_backup(port_: i64) { @@ -334,13 +444,8 @@ pub extern "C" fn frbgen_breez_liquid_wire_backup(port_: i64) { } #[no_mangle] -pub extern "C" fn frbgen_breez_liquid_wire_connect( - port_: i64, - mnemonic: *mut wire_cst_list_prim_u_8_strict, - data_dir: *mut wire_cst_list_prim_u_8_strict, - network: i32, -) { - wire_connect_impl(port_, mnemonic, data_dir, network) +pub extern "C" fn frbgen_breez_liquid_wire_connect(port_: i64, req: *mut wire_cst_connect_request) { + wire_connect_impl(port_, req) } #[no_mangle] @@ -349,8 +454,11 @@ pub extern "C" fn frbgen_breez_liquid_wire_empty_wallet_cache(port_: i64) { } #[no_mangle] -pub extern "C" fn frbgen_breez_liquid_wire_get_info(port_: i64, with_scan: bool) { - wire_get_info_impl(port_, with_scan) +pub extern "C" fn frbgen_breez_liquid_wire_get_info( + port_: i64, + req: *mut wire_cst_get_info_request, +) { + wire_get_info_impl(port_, req) } #[no_mangle] @@ -373,9 +481,9 @@ pub extern "C" fn frbgen_breez_liquid_wire_prepare_receive_payment( #[no_mangle] pub extern "C" fn frbgen_breez_liquid_wire_prepare_send_payment( port_: i64, - invoice: *mut wire_cst_list_prim_u_8_strict, + req: *mut wire_cst_prepare_send_request, ) { - wire_prepare_send_payment_impl(port_, invoice) + wire_prepare_send_payment_impl(port_, req) } #[no_mangle] @@ -392,11 +500,8 @@ pub extern "C" fn frbgen_breez_liquid_wire_recover_funds(port_: i64, recovery: u } #[no_mangle] -pub extern "C" fn frbgen_breez_liquid_wire_restore( - port_: i64, - backup_path: *mut wire_cst_list_prim_u_8_strict, -) { - wire_restore_impl(port_, backup_path) +pub extern "C" fn frbgen_breez_liquid_wire_restore(port_: i64, req: *mut wire_cst_restore_request) { + wire_restore_impl(port_, req) } #[no_mangle] @@ -425,6 +530,22 @@ pub extern "C" fn frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque } } +#[no_mangle] +pub extern "C" fn frbgen_breez_liquid_cst_new_box_autoadd_connect_request( +) -> *mut wire_cst_connect_request { + flutter_rust_bridge::for_generated::new_leak_box_ptr( + wire_cst_connect_request::new_with_null_ptr(), + ) +} + +#[no_mangle] +pub extern "C" fn frbgen_breez_liquid_cst_new_box_autoadd_get_info_request( +) -> *mut wire_cst_get_info_request { + flutter_rust_bridge::for_generated::new_leak_box_ptr( + wire_cst_get_info_request::new_with_null_ptr(), + ) +} + #[no_mangle] pub extern "C" fn frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_request( ) -> *mut wire_cst_prepare_receive_request { @@ -441,6 +562,14 @@ pub extern "C" fn frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_respon ) } +#[no_mangle] +pub extern "C" fn frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request( +) -> *mut wire_cst_prepare_send_request { + flutter_rust_bridge::for_generated::new_leak_box_ptr( + wire_cst_prepare_send_request::new_with_null_ptr(), + ) +} + #[no_mangle] pub extern "C" fn frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_response( ) -> *mut wire_cst_prepare_send_response { @@ -449,6 +578,14 @@ pub extern "C" fn frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_response( ) } +#[no_mangle] +pub extern "C" fn frbgen_breez_liquid_cst_new_box_autoadd_restore_request( +) -> *mut wire_cst_restore_request { + flutter_rust_bridge::for_generated::new_leak_box_ptr( + wire_cst_restore_request::new_with_null_ptr(), + ) +} + #[no_mangle] pub extern "C" fn frbgen_breez_liquid_cst_new_box_autoadd_u_32(value: u32) -> *mut u32 { flutter_rust_bridge::for_generated::new_leak_box_ptr(value) @@ -482,6 +619,24 @@ pub extern "C" fn frbgen_breez_liquid_cst_new_list_prim_u_8_strict( flutter_rust_bridge::for_generated::new_leak_box_ptr(ans) } +#[repr(C)] +#[derive(Clone, Copy)] +pub struct wire_cst_connect_request { + mnemonic: *mut wire_cst_list_prim_u_8_strict, + data_dir: *mut wire_cst_list_prim_u_8_strict, + network: i32, +} +#[repr(C)] +#[derive(Clone, Copy)] +pub struct wire_cst_get_info_request { + with_scan: bool, +} +#[repr(C)] +#[derive(Clone, Copy)] +pub struct wire_cst_get_info_response { + balance_sat: u64, + pubkey: *mut wire_cst_list_prim_u_8_strict, +} #[repr(C)] #[derive(Clone, Copy)] pub struct wire_cst_list_payment { @@ -542,8 +697,7 @@ pub struct wire_cst_PaymentError_SignerError { #[repr(C)] #[derive(Clone, Copy)] pub struct wire_cst_prepare_receive_request { - payer_amount_sat: *mut u64, - receiver_amount_sat: *mut u64, + payer_amount_sat: u64, } #[repr(C)] #[derive(Clone, Copy)] @@ -554,6 +708,11 @@ pub struct wire_cst_prepare_receive_response { } #[repr(C)] #[derive(Clone, Copy)] +pub struct wire_cst_prepare_send_request { + invoice: *mut wire_cst_list_prim_u_8_strict, +} +#[repr(C)] +#[derive(Clone, Copy)] pub struct wire_cst_prepare_send_response { id: *mut wire_cst_list_prim_u_8_strict, payer_amount_sat: u64, @@ -570,12 +729,11 @@ pub struct wire_cst_receive_payment_response { } #[repr(C)] #[derive(Clone, Copy)] -pub struct wire_cst_send_payment_response { - txid: *mut wire_cst_list_prim_u_8_strict, +pub struct wire_cst_restore_request { + backup_path: *mut wire_cst_list_prim_u_8_strict, } #[repr(C)] #[derive(Clone, Copy)] -pub struct wire_cst_wallet_info { - balance_sat: u64, - pubkey: *mut wire_cst_list_prim_u_8_strict, +pub struct wire_cst_send_payment_response { + txid: *mut wire_cst_list_prim_u_8_strict, } diff --git a/lib/core/src/frb/bridge.rs b/lib/core/src/frb/bridge.rs index 52304e2..70f3f8a 100644 --- a/lib/core/src/frb/bridge.rs +++ b/lib/core/src/frb/bridge.rs @@ -52,9 +52,7 @@ fn wire_backup_impl(port_: flutter_rust_bridge::for_generated::MessagePort) { } fn wire_connect_impl( port_: flutter_rust_bridge::for_generated::MessagePort, - mnemonic: impl CstDecode, - data_dir: impl CstDecode>, - network: impl CstDecode, + req: impl CstDecode, ) { FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( flutter_rust_bridge::for_generated::TaskInfo { @@ -63,14 +61,8 @@ fn wire_connect_impl( mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, }, move || { - let api_mnemonic = mnemonic.cst_decode(); - let api_data_dir = data_dir.cst_decode(); - let api_network = network.cst_decode(); - move |context| { - transform_result_dco((move || { - crate::bindings::connect(api_mnemonic, api_data_dir, api_network) - })()) - } + let api_req = req.cst_decode(); + move |context| transform_result_dco((move || crate::bindings::connect(api_req))()) }, ) } @@ -88,13 +80,19 @@ fn wire_empty_wallet_cache_impl(port_: flutter_rust_bridge::for_generated::Messa } fn wire_get_info_impl( port_: flutter_rust_bridge::for_generated::MessagePort, - with_scan: impl CstDecode, + req: impl CstDecode, ) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "get_info", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_with_scan = with_scan.cst_decode(); move |context| { - transform_result_dco((move || { - crate::bindings::get_info(api_with_scan) - })()) - } }) + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "get_info", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let api_req = req.cst_decode(); + move |context| transform_result_dco((move || crate::bindings::get_info(api_req))()) + }, + ) } fn wire_list_payments_impl( port_: flutter_rust_bridge::for_generated::MessagePort, @@ -138,7 +136,7 @@ fn wire_prepare_receive_payment_impl( } fn wire_prepare_send_payment_impl( port_: flutter_rust_bridge::for_generated::MessagePort, - invoice: impl CstDecode, + req: impl CstDecode, ) { FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( flutter_rust_bridge::for_generated::TaskInfo { @@ -147,9 +145,9 @@ fn wire_prepare_send_payment_impl( mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, }, move || { - let api_invoice = invoice.cst_decode(); + let api_req = req.cst_decode(); move |context| { - transform_result_dco((move || crate::bindings::prepare_send_payment(api_invoice))()) + transform_result_dco((move || crate::bindings::prepare_send_payment(api_req))()) } }, ) @@ -192,7 +190,7 @@ fn wire_recover_funds_impl( } fn wire_restore_impl( port_: flutter_rust_bridge::for_generated::MessagePort, - backup_path: impl CstDecode>, + req: impl CstDecode, ) { FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( flutter_rust_bridge::for_generated::TaskInfo { @@ -201,10 +199,8 @@ fn wire_restore_impl( mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, }, move || { - let api_backup_path = backup_path.cst_decode(); - move |context| { - transform_result_dco((move || crate::bindings::restore(api_backup_path))()) - } + let api_req = req.cst_decode(); + move |context| transform_result_dco((move || crate::bindings::restore(api_req))()) }, ) } @@ -327,6 +323,42 @@ impl SseDecode for bool { } } +impl SseDecode for crate::model::ConnectRequest { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut var_mnemonic = ::sse_decode(deserializer); + let mut var_dataDir = >::sse_decode(deserializer); + let mut var_network = ::sse_decode(deserializer); + return crate::model::ConnectRequest { + mnemonic: var_mnemonic, + data_dir: var_dataDir, + network: var_network, + }; + } +} + +impl SseDecode for crate::model::GetInfoRequest { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut var_withScan = ::sse_decode(deserializer); + return crate::model::GetInfoRequest { + with_scan: var_withScan, + }; + } +} + +impl SseDecode for crate::model::GetInfoResponse { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut var_balanceSat = ::sse_decode(deserializer); + let mut var_pubkey = ::sse_decode(deserializer); + return crate::model::GetInfoResponse { + balance_sat: var_balanceSat, + pubkey: var_pubkey, + }; + } +} + impl SseDecode for i32 { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { @@ -486,11 +518,9 @@ impl SseDecode for crate::model::PaymentType { impl SseDecode for crate::model::PrepareReceiveRequest { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut var_payerAmountSat = >::sse_decode(deserializer); - let mut var_receiverAmountSat = >::sse_decode(deserializer); + let mut var_payerAmountSat = ::sse_decode(deserializer); return crate::model::PrepareReceiveRequest { payer_amount_sat: var_payerAmountSat, - receiver_amount_sat: var_receiverAmountSat, }; } } @@ -509,6 +539,16 @@ impl SseDecode for crate::model::PrepareReceiveResponse { } } +impl SseDecode for crate::model::PrepareSendRequest { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut var_invoice = ::sse_decode(deserializer); + return crate::model::PrepareSendRequest { + invoice: var_invoice, + }; + } +} + impl SseDecode for crate::model::PrepareSendResponse { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { @@ -541,6 +581,16 @@ impl SseDecode for crate::model::ReceivePaymentResponse { } } +impl SseDecode for crate::model::RestoreRequest { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut var_backupPath = >::sse_decode(deserializer); + return crate::model::RestoreRequest { + backup_path: var_backupPath, + }; + } +} + impl SseDecode for crate::model::SendPaymentResponse { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { @@ -582,18 +632,6 @@ impl SseDecode for usize { } } -impl SseDecode for crate::model::WalletInfo { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut var_balanceSat = ::sse_decode(deserializer); - let mut var_pubkey = ::sse_decode(deserializer); - return crate::model::WalletInfo { - balance_sat: var_balanceSat, - pubkey: var_pubkey, - }; - } -} - fn pde_ffi_dispatcher_primary_impl( func_id: i32, port: flutter_rust_bridge::for_generated::MessagePort, @@ -639,6 +677,57 @@ impl flutter_rust_bridge::IntoIntoDart> for LBtc } } +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for crate::model::ConnectRequest { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + [ + self.mnemonic.into_into_dart().into_dart(), + self.data_dir.into_into_dart().into_dart(), + self.network.into_into_dart().into_dart(), + ] + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for crate::model::ConnectRequest {} +impl flutter_rust_bridge::IntoIntoDart + for crate::model::ConnectRequest +{ + fn into_into_dart(self) -> crate::model::ConnectRequest { + self + } +} +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for crate::model::GetInfoRequest { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + [self.with_scan.into_into_dart().into_dart()].into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for crate::model::GetInfoRequest {} +impl flutter_rust_bridge::IntoIntoDart + for crate::model::GetInfoRequest +{ + fn into_into_dart(self) -> crate::model::GetInfoRequest { + self + } +} +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for crate::model::GetInfoResponse { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + [ + self.balance_sat.into_into_dart().into_dart(), + self.pubkey.into_into_dart().into_dart(), + ] + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for crate::model::GetInfoResponse {} +impl flutter_rust_bridge::IntoIntoDart + for crate::model::GetInfoResponse +{ + fn into_into_dart(self) -> crate::model::GetInfoResponse { + self + } +} // Codec=Dco (DartCObject based), see doc to use other codecs impl flutter_rust_bridge::IntoDart for crate::model::Network { fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { @@ -725,11 +814,7 @@ impl flutter_rust_bridge::IntoIntoDart for crate::mod // Codec=Dco (DartCObject based), see doc to use other codecs impl flutter_rust_bridge::IntoDart for crate::model::PrepareReceiveRequest { fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { - [ - self.payer_amount_sat.into_into_dart().into_dart(), - self.receiver_amount_sat.into_into_dart().into_dart(), - ] - .into_dart() + [self.payer_amount_sat.into_into_dart().into_dart()].into_dart() } } impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive @@ -766,6 +851,23 @@ impl flutter_rust_bridge::IntoIntoDart } } // Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for crate::model::PrepareSendRequest { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + [self.invoice.into_into_dart().into_dart()].into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive + for crate::model::PrepareSendRequest +{ +} +impl flutter_rust_bridge::IntoIntoDart + for crate::model::PrepareSendRequest +{ + fn into_into_dart(self) -> crate::model::PrepareSendRequest { + self + } +} +// Codec=Dco (DartCObject based), see doc to use other codecs impl flutter_rust_bridge::IntoDart for crate::model::PrepareSendResponse { fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { [ @@ -812,6 +914,20 @@ impl flutter_rust_bridge::IntoIntoDart } } // Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for crate::model::RestoreRequest { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + [self.backup_path.into_into_dart().into_dart()].into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for crate::model::RestoreRequest {} +impl flutter_rust_bridge::IntoIntoDart + for crate::model::RestoreRequest +{ + fn into_into_dart(self) -> crate::model::RestoreRequest { + self + } +} +// Codec=Dco (DartCObject based), see doc to use other codecs impl flutter_rust_bridge::IntoDart for crate::model::SendPaymentResponse { fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { [self.txid.into_into_dart().into_dart()].into_dart() @@ -828,22 +944,6 @@ impl flutter_rust_bridge::IntoIntoDart self } } -// Codec=Dco (DartCObject based), see doc to use other codecs -impl flutter_rust_bridge::IntoDart for crate::model::WalletInfo { - fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { - [ - self.balance_sat.into_into_dart().into_dart(), - self.pubkey.into_into_dart().into_dart(), - ] - .into_dart() - } -} -impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for crate::model::WalletInfo {} -impl flutter_rust_bridge::IntoIntoDart for crate::model::WalletInfo { - fn into_into_dart(self) -> crate::model::WalletInfo { - self - } -} impl SseEncode for flutter_rust_bridge::for_generated::anyhow::Error { // Codec=Sse (Serialization based), see doc to use other codecs @@ -884,6 +984,30 @@ impl SseEncode for bool { } } +impl SseEncode for crate::model::ConnectRequest { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.mnemonic, serializer); + >::sse_encode(self.data_dir, serializer); + ::sse_encode(self.network, serializer); + } +} + +impl SseEncode for crate::model::GetInfoRequest { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.with_scan, serializer); + } +} + +impl SseEncode for crate::model::GetInfoResponse { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.balance_sat, serializer); + ::sse_encode(self.pubkey, serializer); + } +} + impl SseEncode for i32 { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { @@ -1032,8 +1156,7 @@ impl SseEncode for crate::model::PaymentType { impl SseEncode for crate::model::PrepareReceiveRequest { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >::sse_encode(self.payer_amount_sat, serializer); - >::sse_encode(self.receiver_amount_sat, serializer); + ::sse_encode(self.payer_amount_sat, serializer); } } @@ -1046,6 +1169,13 @@ impl SseEncode for crate::model::PrepareReceiveResponse { } } +impl SseEncode for crate::model::PrepareSendRequest { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.invoice, serializer); + } +} + impl SseEncode for crate::model::PrepareSendResponse { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { @@ -1066,6 +1196,13 @@ impl SseEncode for crate::model::ReceivePaymentResponse { } } +impl SseEncode for crate::model::RestoreRequest { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >::sse_encode(self.backup_path, serializer); + } +} + impl SseEncode for crate::model::SendPaymentResponse { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { @@ -1109,14 +1246,6 @@ impl SseEncode for usize { } } -impl SseEncode for crate::model::WalletInfo { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - ::sse_encode(self.balance_sat, serializer); - ::sse_encode(self.pubkey, serializer); - } -} - #[cfg(not(target_family = "wasm"))] #[path = "bridge.io.rs"] mod io; diff --git a/lib/flutter/breez_liquid_sdk/include/breez_liquid_sdk.h b/lib/flutter/breez_liquid_sdk/include/breez_liquid_sdk.h new file mode 100644 index 0000000..974f90f --- /dev/null +++ b/lib/flutter/breez_liquid_sdk/include/breez_liquid_sdk.h @@ -0,0 +1,200 @@ +#include +#include +#include +// EXTRA BEGIN +typedef struct DartCObject *WireSyncRust2DartDco; +typedef struct WireSyncRust2DartSse { + uint8_t *ptr; + int32_t len; +} WireSyncRust2DartSse; + +typedef int64_t DartPort; +typedef bool (*DartPostCObjectFnType)(DartPort port_id, void *message); +void store_dart_post_cobject(DartPostCObjectFnType ptr); +// EXTRA END +typedef struct _Dart_Handle* Dart_Handle; + +/** + * Claim tx feerate for Receive, in sats per vbyte. + * Since the Liquid blocks are consistently empty for now, we hardcode the minimum feerate. + */ +#define LIQUID_CLAIM_TX_FEERATE 0.1 + +typedef struct wire_cst_list_prim_u_8_strict { + uint8_t *ptr; + int32_t len; +} wire_cst_list_prim_u_8_strict; + +typedef struct wire_cst_connect_request { + struct wire_cst_list_prim_u_8_strict *mnemonic; + struct wire_cst_list_prim_u_8_strict *data_dir; + int32_t network; +} wire_cst_connect_request; + +typedef struct wire_cst_get_info_request { + bool with_scan; +} wire_cst_get_info_request; + +typedef struct wire_cst_prepare_receive_request { + uint64_t payer_amount_sat; +} wire_cst_prepare_receive_request; + +typedef struct wire_cst_prepare_send_request { + struct wire_cst_list_prim_u_8_strict *invoice; +} wire_cst_prepare_send_request; + +typedef struct wire_cst_prepare_receive_response { + struct wire_cst_list_prim_u_8_strict *pair_hash; + uint64_t payer_amount_sat; + uint64_t fees_sat; +} wire_cst_prepare_receive_response; + +typedef struct wire_cst_restore_request { + struct wire_cst_list_prim_u_8_strict *backup_path; +} wire_cst_restore_request; + +typedef struct wire_cst_prepare_send_response { + struct wire_cst_list_prim_u_8_strict *id; + uint64_t payer_amount_sat; + uint64_t receiver_amount_sat; + uint64_t total_fees; + struct wire_cst_list_prim_u_8_strict *funding_address; + struct wire_cst_list_prim_u_8_strict *invoice; +} wire_cst_prepare_send_response; + +typedef struct wire_cst_payment { + struct wire_cst_list_prim_u_8_strict *id; + uint32_t *timestamp; + uint64_t amount_sat; + uint64_t *fees_sat; + int32_t payment_type; + struct wire_cst_list_prim_u_8_strict *invoice; +} wire_cst_payment; + +typedef struct wire_cst_list_payment { + struct wire_cst_payment *ptr; + int32_t len; +} wire_cst_list_payment; + +typedef struct wire_cst_get_info_response { + uint64_t balance_sat; + struct wire_cst_list_prim_u_8_strict *pubkey; +} wire_cst_get_info_response; + +typedef struct wire_cst_PaymentError_Generic { + struct wire_cst_list_prim_u_8_strict *err; +} wire_cst_PaymentError_Generic; + +typedef struct wire_cst_PaymentError_LwkError { + struct wire_cst_list_prim_u_8_strict *err; +} wire_cst_PaymentError_LwkError; + +typedef struct wire_cst_PaymentError_SendError { + struct wire_cst_list_prim_u_8_strict *err; +} wire_cst_PaymentError_SendError; + +typedef struct wire_cst_PaymentError_SignerError { + struct wire_cst_list_prim_u_8_strict *err; +} wire_cst_PaymentError_SignerError; + +typedef union PaymentErrorKind { + struct wire_cst_PaymentError_Generic Generic; + struct wire_cst_PaymentError_LwkError LwkError; + struct wire_cst_PaymentError_SendError SendError; + struct wire_cst_PaymentError_SignerError SignerError; +} PaymentErrorKind; + +typedef struct wire_cst_payment_error { + int32_t tag; + union PaymentErrorKind kind; +} wire_cst_payment_error; + +typedef struct wire_cst_receive_payment_response { + struct wire_cst_list_prim_u_8_strict *id; + struct wire_cst_list_prim_u_8_strict *invoice; +} wire_cst_receive_payment_response; + +typedef struct wire_cst_send_payment_response { + struct wire_cst_list_prim_u_8_strict *txid; +} wire_cst_send_payment_response; + +void frbgen_breez_liquid_wire_backup(int64_t port_); + +void frbgen_breez_liquid_wire_connect(int64_t port_, struct wire_cst_connect_request *req); + +void frbgen_breez_liquid_wire_empty_wallet_cache(int64_t port_); + +void frbgen_breez_liquid_wire_get_info(int64_t port_, struct wire_cst_get_info_request *req); + +void frbgen_breez_liquid_wire_list_payments(int64_t port_, bool with_scan, bool include_pending); + +void frbgen_breez_liquid_wire_prepare_receive_payment(int64_t port_, + struct wire_cst_prepare_receive_request *req); + +void frbgen_breez_liquid_wire_prepare_send_payment(int64_t port_, + struct wire_cst_prepare_send_request *req); + +void frbgen_breez_liquid_wire_receive_payment(int64_t port_, + struct wire_cst_prepare_receive_response *req); + +void frbgen_breez_liquid_wire_recover_funds(int64_t port_, uintptr_t recovery); + +void frbgen_breez_liquid_wire_restore(int64_t port_, struct wire_cst_restore_request *req); + +void frbgen_breez_liquid_wire_send_payment(int64_t port_, + struct wire_cst_prepare_send_response *req); + +void frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery(const void *ptr); + +void frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery(const void *ptr); + +struct wire_cst_connect_request *frbgen_breez_liquid_cst_new_box_autoadd_connect_request(void); + +struct wire_cst_get_info_request *frbgen_breez_liquid_cst_new_box_autoadd_get_info_request(void); + +struct wire_cst_prepare_receive_request *frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_request(void); + +struct wire_cst_prepare_receive_response *frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_response(void); + +struct wire_cst_prepare_send_request *frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request(void); + +struct wire_cst_prepare_send_response *frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_response(void); + +struct wire_cst_restore_request *frbgen_breez_liquid_cst_new_box_autoadd_restore_request(void); + +uint32_t *frbgen_breez_liquid_cst_new_box_autoadd_u_32(uint32_t value); + +uint64_t *frbgen_breez_liquid_cst_new_box_autoadd_u_64(uint64_t value); + +struct wire_cst_list_payment *frbgen_breez_liquid_cst_new_list_payment(int32_t len); + +struct wire_cst_list_prim_u_8_strict *frbgen_breez_liquid_cst_new_list_prim_u_8_strict(int32_t len); +static int64_t dummy_method_to_enforce_bundling(void) { + int64_t dummy_var = 0; + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_connect_request); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_get_info_request); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_request); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_response); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_response); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_restore_request); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_u_32); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_u_64); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_list_payment); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_list_prim_u_8_strict); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_backup); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_connect); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_empty_wallet_cache); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_get_info); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_list_payments); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_prepare_receive_payment); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_prepare_send_payment); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_receive_payment); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_recover_funds); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_restore); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_send_payment); + dummy_var ^= ((int64_t) (void*) store_dart_post_cobject); + return dummy_var; +} diff --git a/lib/flutter/packages/breez_liquid/lib/src/bindings.dart b/lib/flutter/packages/breez_liquid/lib/src/bindings.dart index 075090e..3f4ea94 100644 --- a/lib/flutter/packages/breez_liquid/lib/src/bindings.dart +++ b/lib/flutter/packages/breez_liquid/lib/src/bindings.dart @@ -8,20 +8,15 @@ import 'frb_generated.dart'; import 'model.dart'; import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; -Future connect( - {required String mnemonic, - String? dataDir, - required Network network, - dynamic hint}) => - RustLib.instance.api.connect( - mnemonic: mnemonic, dataDir: dataDir, network: network, hint: hint); +Future connect({required ConnectRequest req, dynamic hint}) => + RustLib.instance.api.connect(req: req, hint: hint); -Future getInfo({required bool withScan, dynamic hint}) => - RustLib.instance.api.getInfo(withScan: withScan, hint: hint); +Future getInfo({required GetInfoRequest req, dynamic hint}) => + RustLib.instance.api.getInfo(req: req, hint: hint); Future prepareSendPayment( - {required String invoice, dynamic hint}) => - RustLib.instance.api.prepareSendPayment(invoice: invoice, hint: hint); + {required PrepareSendRequest req, dynamic hint}) => + RustLib.instance.api.prepareSendPayment(req: req, hint: hint); Future sendPayment( {required PrepareSendResponse req, dynamic hint}) => @@ -49,8 +44,8 @@ Future emptyWalletCache({dynamic hint}) => Future backup({dynamic hint}) => RustLib.instance.api.backup(hint: hint); -Future restore({String? backupPath, dynamic hint}) => - RustLib.instance.api.restore(backupPath: backupPath, hint: hint); +Future restore({required RestoreRequest req, dynamic hint}) => + RustLib.instance.api.restore(req: req, hint: hint); // Rust type: RustOpaqueNom> @sealed diff --git a/lib/flutter/packages/breez_liquid/lib/src/frb_generated.dart b/lib/flutter/packages/breez_liquid/lib/src/frb_generated.dart index 3bde177..fd43d20 100644 --- a/lib/flutter/packages/breez_liquid/lib/src/frb_generated.dart +++ b/lib/flutter/packages/breez_liquid/lib/src/frb_generated.dart @@ -69,15 +69,11 @@ class RustLib extends BaseEntrypoint { abstract class RustLibApi extends BaseApi { Future backup({dynamic hint}); - Future connect( - {required String mnemonic, - String? dataDir, - required Network network, - dynamic hint}); + Future connect({required ConnectRequest req, dynamic hint}); Future emptyWalletCache({dynamic hint}); - Future getInfo({required bool withScan, dynamic hint}); + Future getInfo({required GetInfoRequest req, dynamic hint}); Future> listPayments( {required bool withScan, required bool includePending, dynamic hint}); @@ -86,7 +82,7 @@ abstract class RustLibApi extends BaseApi { {required PrepareReceiveRequest req, dynamic hint}); Future prepareSendPayment( - {required String invoice, dynamic hint}); + {required PrepareSendRequest req, dynamic hint}); Future receivePayment( {required PrepareReceiveResponse req, dynamic hint}); @@ -94,7 +90,7 @@ abstract class RustLibApi extends BaseApi { Future recoverFunds( {required LBtcReverseRecovery recovery, dynamic hint}); - Future restore({String? backupPath, dynamic hint}); + Future restore({required RestoreRequest req, dynamic hint}); Future sendPayment( {required PrepareSendResponse req, dynamic hint}); @@ -140,24 +136,18 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { ); @override - Future connect( - {required String mnemonic, - String? dataDir, - required Network network, - dynamic hint}) { + Future connect({required ConnectRequest req, dynamic hint}) { return handler.executeNormal(NormalTask( callFfi: (port_) { - var arg0 = cst_encode_String(mnemonic); - var arg1 = cst_encode_opt_String(dataDir); - var arg2 = cst_encode_network(network); - return wire.wire_connect(port_, arg0, arg1, arg2); + var arg0 = cst_encode_box_autoadd_connect_request(req); + return wire.wire_connect(port_, arg0); }, codec: DcoCodec( decodeSuccessData: dco_decode_unit, decodeErrorData: dco_decode_AnyhowException, ), constMeta: kConnectConstMeta, - argValues: [mnemonic, dataDir, network], + argValues: [req], apiImpl: this, hint: hint, )); @@ -165,7 +155,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { TaskConstMeta get kConnectConstMeta => const TaskConstMeta( debugName: "connect", - argNames: ["mnemonic", "dataDir", "network"], + argNames: ["req"], ); @override @@ -191,18 +181,18 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { ); @override - Future getInfo({required bool withScan, dynamic hint}) { + Future getInfo({required GetInfoRequest req, dynamic hint}) { return handler.executeNormal(NormalTask( callFfi: (port_) { - var arg0 = cst_encode_bool(withScan); + var arg0 = cst_encode_box_autoadd_get_info_request(req); return wire.wire_get_info(port_, arg0); }, codec: DcoCodec( - decodeSuccessData: dco_decode_wallet_info, + decodeSuccessData: dco_decode_get_info_response, decodeErrorData: dco_decode_AnyhowException, ), constMeta: kGetInfoConstMeta, - argValues: [withScan], + argValues: [req], apiImpl: this, hint: hint, )); @@ -210,7 +200,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { TaskConstMeta get kGetInfoConstMeta => const TaskConstMeta( debugName: "get_info", - argNames: ["withScan"], + argNames: ["req"], ); @override @@ -264,10 +254,10 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { @override Future prepareSendPayment( - {required String invoice, dynamic hint}) { + {required PrepareSendRequest req, dynamic hint}) { return handler.executeNormal(NormalTask( callFfi: (port_) { - var arg0 = cst_encode_String(invoice); + var arg0 = cst_encode_box_autoadd_prepare_send_request(req); return wire.wire_prepare_send_payment(port_, arg0); }, codec: DcoCodec( @@ -275,7 +265,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { decodeErrorData: dco_decode_payment_error, ), constMeta: kPrepareSendPaymentConstMeta, - argValues: [invoice], + argValues: [req], apiImpl: this, hint: hint, )); @@ -283,7 +273,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { TaskConstMeta get kPrepareSendPaymentConstMeta => const TaskConstMeta( debugName: "prepare_send_payment", - argNames: ["invoice"], + argNames: ["req"], ); @override @@ -337,10 +327,10 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { ); @override - Future restore({String? backupPath, dynamic hint}) { + Future restore({required RestoreRequest req, dynamic hint}) { return handler.executeNormal(NormalTask( callFfi: (port_) { - var arg0 = cst_encode_opt_String(backupPath); + var arg0 = cst_encode_box_autoadd_restore_request(req); return wire.wire_restore(port_, arg0); }, codec: DcoCodec( @@ -348,7 +338,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { decodeErrorData: dco_decode_AnyhowException, ), constMeta: kRestoreConstMeta, - argValues: [backupPath], + argValues: [req], apiImpl: this, hint: hint, )); @@ -356,7 +346,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { TaskConstMeta get kRestoreConstMeta => const TaskConstMeta( debugName: "restore", - argNames: ["backupPath"], + argNames: ["req"], ); @override @@ -425,6 +415,18 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return raw as bool; } + @protected + ConnectRequest dco_decode_box_autoadd_connect_request(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return dco_decode_connect_request(raw); + } + + @protected + GetInfoRequest dco_decode_box_autoadd_get_info_request(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return dco_decode_get_info_request(raw); + } + @protected PrepareReceiveRequest dco_decode_box_autoadd_prepare_receive_request( dynamic raw) { @@ -439,6 +441,12 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return dco_decode_prepare_receive_response(raw); } + @protected + PrepareSendRequest dco_decode_box_autoadd_prepare_send_request(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return dco_decode_prepare_send_request(raw); + } + @protected PrepareSendResponse dco_decode_box_autoadd_prepare_send_response( dynamic raw) { @@ -446,6 +454,12 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return dco_decode_prepare_send_response(raw); } + @protected + RestoreRequest dco_decode_box_autoadd_restore_request(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return dco_decode_restore_request(raw); + } + @protected int dco_decode_box_autoadd_u_32(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -458,6 +472,42 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return dco_decode_u_64(raw); } + @protected + ConnectRequest dco_decode_connect_request(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 3) + throw Exception('unexpected arr length: expect 3 but see ${arr.length}'); + return ConnectRequest( + mnemonic: dco_decode_String(arr[0]), + dataDir: dco_decode_opt_String(arr[1]), + network: dco_decode_network(arr[2]), + ); + } + + @protected + GetInfoRequest dco_decode_get_info_request(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 1) + throw Exception('unexpected arr length: expect 1 but see ${arr.length}'); + return GetInfoRequest( + withScan: dco_decode_bool(arr[0]), + ); + } + + @protected + GetInfoResponse dco_decode_get_info_response(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 2) + throw Exception('unexpected arr length: expect 2 but see ${arr.length}'); + return GetInfoResponse( + balanceSat: dco_decode_u_64(arr[0]), + pubkey: dco_decode_String(arr[1]), + ); + } + @protected int dco_decode_i_32(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -563,11 +613,10 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { PrepareReceiveRequest dco_decode_prepare_receive_request(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs final arr = raw as List; - if (arr.length != 2) - throw Exception('unexpected arr length: expect 2 but see ${arr.length}'); + if (arr.length != 1) + throw Exception('unexpected arr length: expect 1 but see ${arr.length}'); return PrepareReceiveRequest( - payerAmountSat: dco_decode_opt_box_autoadd_u_64(arr[0]), - receiverAmountSat: dco_decode_opt_box_autoadd_u_64(arr[1]), + payerAmountSat: dco_decode_u_64(arr[0]), ); } @@ -584,6 +633,17 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { ); } + @protected + PrepareSendRequest dco_decode_prepare_send_request(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 1) + throw Exception('unexpected arr length: expect 1 but see ${arr.length}'); + return PrepareSendRequest( + invoice: dco_decode_String(arr[0]), + ); + } + @protected PrepareSendResponse dco_decode_prepare_send_response(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -612,6 +672,17 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { ); } + @protected + RestoreRequest dco_decode_restore_request(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 1) + throw Exception('unexpected arr length: expect 1 but see ${arr.length}'); + return RestoreRequest( + backupPath: dco_decode_opt_String(arr[0]), + ); + } + @protected SendPaymentResponse dco_decode_send_payment_response(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs @@ -653,18 +724,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return dcoDecodeI64OrU64(raw); } - @protected - WalletInfo dco_decode_wallet_info(dynamic raw) { - // Codec=Dco (DartCObject based), see doc to use other codecs - final arr = raw as List; - if (arr.length != 2) - throw Exception('unexpected arr length: expect 2 but see ${arr.length}'); - return WalletInfo( - balanceSat: dco_decode_u_64(arr[0]), - pubkey: dco_decode_String(arr[1]), - ); - } - @protected AnyhowException sse_decode_AnyhowException(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -703,6 +762,20 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return deserializer.buffer.getUint8() != 0; } + @protected + ConnectRequest sse_decode_box_autoadd_connect_request( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return (sse_decode_connect_request(deserializer)); + } + + @protected + GetInfoRequest sse_decode_box_autoadd_get_info_request( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return (sse_decode_get_info_request(deserializer)); + } + @protected PrepareReceiveRequest sse_decode_box_autoadd_prepare_receive_request( SseDeserializer deserializer) { @@ -717,6 +790,13 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return (sse_decode_prepare_receive_response(deserializer)); } + @protected + PrepareSendRequest sse_decode_box_autoadd_prepare_send_request( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return (sse_decode_prepare_send_request(deserializer)); + } + @protected PrepareSendResponse sse_decode_box_autoadd_prepare_send_response( SseDeserializer deserializer) { @@ -724,6 +804,13 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return (sse_decode_prepare_send_response(deserializer)); } + @protected + RestoreRequest sse_decode_box_autoadd_restore_request( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return (sse_decode_restore_request(deserializer)); + } + @protected int sse_decode_box_autoadd_u_32(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -736,6 +823,31 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return (sse_decode_u_64(deserializer)); } + @protected + ConnectRequest sse_decode_connect_request(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_mnemonic = sse_decode_String(deserializer); + var var_dataDir = sse_decode_opt_String(deserializer); + var var_network = sse_decode_network(deserializer); + return ConnectRequest( + mnemonic: var_mnemonic, dataDir: var_dataDir, network: var_network); + } + + @protected + GetInfoRequest sse_decode_get_info_request(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_withScan = sse_decode_bool(deserializer); + return GetInfoRequest(withScan: var_withScan); + } + + @protected + GetInfoResponse sse_decode_get_info_response(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_balanceSat = sse_decode_u_64(deserializer); + var var_pubkey = sse_decode_String(deserializer); + return GetInfoResponse(balanceSat: var_balanceSat, pubkey: var_pubkey); + } + @protected int sse_decode_i_32(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -865,11 +977,8 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { PrepareReceiveRequest sse_decode_prepare_receive_request( SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs - var var_payerAmountSat = sse_decode_opt_box_autoadd_u_64(deserializer); - var var_receiverAmountSat = sse_decode_opt_box_autoadd_u_64(deserializer); - return PrepareReceiveRequest( - payerAmountSat: var_payerAmountSat, - receiverAmountSat: var_receiverAmountSat); + var var_payerAmountSat = sse_decode_u_64(deserializer); + return PrepareReceiveRequest(payerAmountSat: var_payerAmountSat); } @protected @@ -885,6 +994,14 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { feesSat: var_feesSat); } + @protected + PrepareSendRequest sse_decode_prepare_send_request( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_invoice = sse_decode_String(deserializer); + return PrepareSendRequest(invoice: var_invoice); + } + @protected PrepareSendResponse sse_decode_prepare_send_response( SseDeserializer deserializer) { @@ -913,6 +1030,13 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return ReceivePaymentResponse(id: var_id, invoice: var_invoice); } + @protected + RestoreRequest sse_decode_restore_request(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var var_backupPath = sse_decode_opt_String(deserializer); + return RestoreRequest(backupPath: var_backupPath); + } + @protected SendPaymentResponse sse_decode_send_payment_response( SseDeserializer deserializer) { @@ -950,14 +1074,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return deserializer.buffer.getUint64(); } - @protected - WalletInfo sse_decode_wallet_info(SseDeserializer deserializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - var var_balanceSat = sse_decode_u_64(deserializer); - var var_pubkey = sse_decode_String(deserializer); - return WalletInfo(balanceSat: var_balanceSat, pubkey: var_pubkey); - } - @protected int cst_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( LBtcReverseRecovery raw) { @@ -1057,6 +1173,20 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { serializer.buffer.putUint8(self ? 1 : 0); } + @protected + void sse_encode_box_autoadd_connect_request( + ConnectRequest self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_connect_request(self, serializer); + } + + @protected + void sse_encode_box_autoadd_get_info_request( + GetInfoRequest self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_get_info_request(self, serializer); + } + @protected void sse_encode_box_autoadd_prepare_receive_request( PrepareReceiveRequest self, SseSerializer serializer) { @@ -1071,6 +1201,13 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { sse_encode_prepare_receive_response(self, serializer); } + @protected + void sse_encode_box_autoadd_prepare_send_request( + PrepareSendRequest self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_prepare_send_request(self, serializer); + } + @protected void sse_encode_box_autoadd_prepare_send_response( PrepareSendResponse self, SseSerializer serializer) { @@ -1078,6 +1215,13 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { sse_encode_prepare_send_response(self, serializer); } + @protected + void sse_encode_box_autoadd_restore_request( + RestoreRequest self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_restore_request(self, serializer); + } + @protected void sse_encode_box_autoadd_u_32(int self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -1090,6 +1234,30 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { sse_encode_u_64(self, serializer); } + @protected + void sse_encode_connect_request( + ConnectRequest self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_String(self.mnemonic, serializer); + sse_encode_opt_String(self.dataDir, serializer); + sse_encode_network(self.network, serializer); + } + + @protected + void sse_encode_get_info_request( + GetInfoRequest self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_bool(self.withScan, serializer); + } + + @protected + void sse_encode_get_info_response( + GetInfoResponse self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_u_64(self.balanceSat, serializer); + sse_encode_String(self.pubkey, serializer); + } + @protected void sse_encode_i_32(int self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs @@ -1201,8 +1369,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { void sse_encode_prepare_receive_request( PrepareReceiveRequest self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_opt_box_autoadd_u_64(self.payerAmountSat, serializer); - sse_encode_opt_box_autoadd_u_64(self.receiverAmountSat, serializer); + sse_encode_u_64(self.payerAmountSat, serializer); } @protected @@ -1214,6 +1381,13 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { sse_encode_u_64(self.feesSat, serializer); } + @protected + void sse_encode_prepare_send_request( + PrepareSendRequest self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_String(self.invoice, serializer); + } + @protected void sse_encode_prepare_send_response( PrepareSendResponse self, SseSerializer serializer) { @@ -1234,6 +1408,13 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { sse_encode_String(self.invoice, serializer); } + @protected + void sse_encode_restore_request( + RestoreRequest self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_opt_String(self.backupPath, serializer); + } + @protected void sse_encode_send_payment_response( SendPaymentResponse self, SseSerializer serializer) { @@ -1269,11 +1450,4 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { // Codec=Sse (Serialization based), see doc to use other codecs serializer.buffer.putUint64(self); } - - @protected - void sse_encode_wallet_info(WalletInfo self, SseSerializer serializer) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_u_64(self.balanceSat, serializer); - sse_encode_String(self.pubkey, serializer); - } } diff --git a/lib/flutter/packages/breez_liquid/lib/src/frb_generated.io.dart b/lib/flutter/packages/breez_liquid/lib/src/frb_generated.io.dart index 93818ab..9eedc77 100644 --- a/lib/flutter/packages/breez_liquid/lib/src/frb_generated.io.dart +++ b/lib/flutter/packages/breez_liquid/lib/src/frb_generated.io.dart @@ -43,6 +43,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected bool dco_decode_bool(dynamic raw); + @protected + ConnectRequest dco_decode_box_autoadd_connect_request(dynamic raw); + + @protected + GetInfoRequest dco_decode_box_autoadd_get_info_request(dynamic raw); + @protected PrepareReceiveRequest dco_decode_box_autoadd_prepare_receive_request( dynamic raw); @@ -51,15 +57,30 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { PrepareReceiveResponse dco_decode_box_autoadd_prepare_receive_response( dynamic raw); + @protected + PrepareSendRequest dco_decode_box_autoadd_prepare_send_request(dynamic raw); + @protected PrepareSendResponse dco_decode_box_autoadd_prepare_send_response(dynamic raw); + @protected + RestoreRequest dco_decode_box_autoadd_restore_request(dynamic raw); + @protected int dco_decode_box_autoadd_u_32(dynamic raw); @protected int dco_decode_box_autoadd_u_64(dynamic raw); + @protected + ConnectRequest dco_decode_connect_request(dynamic raw); + + @protected + GetInfoRequest dco_decode_get_info_request(dynamic raw); + + @protected + GetInfoResponse dco_decode_get_info_response(dynamic raw); + @protected int dco_decode_i_32(dynamic raw); @@ -96,12 +117,18 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected PrepareReceiveResponse dco_decode_prepare_receive_response(dynamic raw); + @protected + PrepareSendRequest dco_decode_prepare_send_request(dynamic raw); + @protected PrepareSendResponse dco_decode_prepare_send_response(dynamic raw); @protected ReceivePaymentResponse dco_decode_receive_payment_response(dynamic raw); + @protected + RestoreRequest dco_decode_restore_request(dynamic raw); + @protected SendPaymentResponse dco_decode_send_payment_response(dynamic raw); @@ -120,9 +147,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected int dco_decode_usize(dynamic raw); - @protected - WalletInfo dco_decode_wallet_info(dynamic raw); - @protected AnyhowException sse_decode_AnyhowException(SseDeserializer deserializer); @@ -142,6 +166,14 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected bool sse_decode_bool(SseDeserializer deserializer); + @protected + ConnectRequest sse_decode_box_autoadd_connect_request( + SseDeserializer deserializer); + + @protected + GetInfoRequest sse_decode_box_autoadd_get_info_request( + SseDeserializer deserializer); + @protected PrepareReceiveRequest sse_decode_box_autoadd_prepare_receive_request( SseDeserializer deserializer); @@ -150,16 +182,33 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { PrepareReceiveResponse sse_decode_box_autoadd_prepare_receive_response( SseDeserializer deserializer); + @protected + PrepareSendRequest sse_decode_box_autoadd_prepare_send_request( + SseDeserializer deserializer); + @protected PrepareSendResponse sse_decode_box_autoadd_prepare_send_response( SseDeserializer deserializer); + @protected + RestoreRequest sse_decode_box_autoadd_restore_request( + SseDeserializer deserializer); + @protected int sse_decode_box_autoadd_u_32(SseDeserializer deserializer); @protected int sse_decode_box_autoadd_u_64(SseDeserializer deserializer); + @protected + ConnectRequest sse_decode_connect_request(SseDeserializer deserializer); + + @protected + GetInfoRequest sse_decode_get_info_request(SseDeserializer deserializer); + + @protected + GetInfoResponse sse_decode_get_info_response(SseDeserializer deserializer); + @protected int sse_decode_i_32(SseDeserializer deserializer); @@ -198,6 +247,10 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { PrepareReceiveResponse sse_decode_prepare_receive_response( SseDeserializer deserializer); + @protected + PrepareSendRequest sse_decode_prepare_send_request( + SseDeserializer deserializer); + @protected PrepareSendResponse sse_decode_prepare_send_response( SseDeserializer deserializer); @@ -206,6 +259,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { ReceivePaymentResponse sse_decode_receive_payment_response( SseDeserializer deserializer); + @protected + RestoreRequest sse_decode_restore_request(SseDeserializer deserializer); + @protected SendPaymentResponse sse_decode_send_payment_response( SseDeserializer deserializer); @@ -225,9 +281,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected int sse_decode_usize(SseDeserializer deserializer); - @protected - WalletInfo sse_decode_wallet_info(SseDeserializer deserializer); - @protected ffi.Pointer cst_encode_AnyhowException( AnyhowException raw) { @@ -241,6 +294,24 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { return cst_encode_list_prim_u_8_strict(utf8.encoder.convert(raw)); } + @protected + ffi.Pointer cst_encode_box_autoadd_connect_request( + ConnectRequest raw) { + // Codec=Cst (C-struct based), see doc to use other codecs + final ptr = wire.cst_new_box_autoadd_connect_request(); + cst_api_fill_to_wire_connect_request(raw, ptr.ref); + return ptr; + } + + @protected + ffi.Pointer + cst_encode_box_autoadd_get_info_request(GetInfoRequest raw) { + // Codec=Cst (C-struct based), see doc to use other codecs + final ptr = wire.cst_new_box_autoadd_get_info_request(); + cst_api_fill_to_wire_get_info_request(raw, ptr.ref); + return ptr; + } + @protected ffi.Pointer cst_encode_box_autoadd_prepare_receive_request( @@ -261,6 +332,15 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { return ptr; } + @protected + ffi.Pointer + cst_encode_box_autoadd_prepare_send_request(PrepareSendRequest raw) { + // Codec=Cst (C-struct based), see doc to use other codecs + final ptr = wire.cst_new_box_autoadd_prepare_send_request(); + cst_api_fill_to_wire_prepare_send_request(raw, ptr.ref); + return ptr; + } + @protected ffi.Pointer cst_encode_box_autoadd_prepare_send_response(PrepareSendResponse raw) { @@ -270,6 +350,15 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { return ptr; } + @protected + ffi.Pointer cst_encode_box_autoadd_restore_request( + RestoreRequest raw) { + // Codec=Cst (C-struct based), see doc to use other codecs + final ptr = wire.cst_new_box_autoadd_restore_request(); + cst_api_fill_to_wire_restore_request(raw, ptr.ref); + return ptr; + } + @protected ffi.Pointer cst_encode_box_autoadd_u_32(int raw) { // Codec=Cst (C-struct based), see doc to use other codecs @@ -327,6 +416,18 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { return raw.toInt(); } + @protected + void cst_api_fill_to_wire_box_autoadd_connect_request( + ConnectRequest apiObj, ffi.Pointer wireObj) { + cst_api_fill_to_wire_connect_request(apiObj, wireObj.ref); + } + + @protected + void cst_api_fill_to_wire_box_autoadd_get_info_request( + GetInfoRequest apiObj, ffi.Pointer wireObj) { + cst_api_fill_to_wire_get_info_request(apiObj, wireObj.ref); + } + @protected void cst_api_fill_to_wire_box_autoadd_prepare_receive_request( PrepareReceiveRequest apiObj, @@ -341,6 +442,13 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { cst_api_fill_to_wire_prepare_receive_response(apiObj, wireObj.ref); } + @protected + void cst_api_fill_to_wire_box_autoadd_prepare_send_request( + PrepareSendRequest apiObj, + ffi.Pointer wireObj) { + cst_api_fill_to_wire_prepare_send_request(apiObj, wireObj.ref); + } + @protected void cst_api_fill_to_wire_box_autoadd_prepare_send_response( PrepareSendResponse apiObj, @@ -348,6 +456,33 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { cst_api_fill_to_wire_prepare_send_response(apiObj, wireObj.ref); } + @protected + void cst_api_fill_to_wire_box_autoadd_restore_request( + RestoreRequest apiObj, ffi.Pointer wireObj) { + cst_api_fill_to_wire_restore_request(apiObj, wireObj.ref); + } + + @protected + void cst_api_fill_to_wire_connect_request( + ConnectRequest apiObj, wire_cst_connect_request wireObj) { + wireObj.mnemonic = cst_encode_String(apiObj.mnemonic); + wireObj.data_dir = cst_encode_opt_String(apiObj.dataDir); + wireObj.network = cst_encode_network(apiObj.network); + } + + @protected + void cst_api_fill_to_wire_get_info_request( + GetInfoRequest apiObj, wire_cst_get_info_request wireObj) { + wireObj.with_scan = cst_encode_bool(apiObj.withScan); + } + + @protected + void cst_api_fill_to_wire_get_info_response( + GetInfoResponse apiObj, wire_cst_get_info_response wireObj) { + wireObj.balance_sat = cst_encode_u_64(apiObj.balanceSat); + wireObj.pubkey = cst_encode_String(apiObj.pubkey); + } + @protected void cst_api_fill_to_wire_payment(Payment apiObj, wire_cst_payment wireObj) { wireObj.id = cst_encode_opt_String(apiObj.id); @@ -414,10 +549,7 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void cst_api_fill_to_wire_prepare_receive_request( PrepareReceiveRequest apiObj, wire_cst_prepare_receive_request wireObj) { - wireObj.payer_amount_sat = - cst_encode_opt_box_autoadd_u_64(apiObj.payerAmountSat); - wireObj.receiver_amount_sat = - cst_encode_opt_box_autoadd_u_64(apiObj.receiverAmountSat); + wireObj.payer_amount_sat = cst_encode_u_64(apiObj.payerAmountSat); } @protected @@ -429,6 +561,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { wireObj.fees_sat = cst_encode_u_64(apiObj.feesSat); } + @protected + void cst_api_fill_to_wire_prepare_send_request( + PrepareSendRequest apiObj, wire_cst_prepare_send_request wireObj) { + wireObj.invoice = cst_encode_String(apiObj.invoice); + } + @protected void cst_api_fill_to_wire_prepare_send_response( PrepareSendResponse apiObj, wire_cst_prepare_send_response wireObj) { @@ -449,16 +587,15 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { } @protected - void cst_api_fill_to_wire_send_payment_response( - SendPaymentResponse apiObj, wire_cst_send_payment_response wireObj) { - wireObj.txid = cst_encode_String(apiObj.txid); + void cst_api_fill_to_wire_restore_request( + RestoreRequest apiObj, wire_cst_restore_request wireObj) { + wireObj.backup_path = cst_encode_opt_String(apiObj.backupPath); } @protected - void cst_api_fill_to_wire_wallet_info( - WalletInfo apiObj, wire_cst_wallet_info wireObj) { - wireObj.balance_sat = cst_encode_u_64(apiObj.balanceSat); - wireObj.pubkey = cst_encode_String(apiObj.pubkey); + void cst_api_fill_to_wire_send_payment_response( + SendPaymentResponse apiObj, wire_cst_send_payment_response wireObj) { + wireObj.txid = cst_encode_String(apiObj.txid); } @protected @@ -513,6 +650,14 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_bool(bool self, SseSerializer serializer); + @protected + void sse_encode_box_autoadd_connect_request( + ConnectRequest self, SseSerializer serializer); + + @protected + void sse_encode_box_autoadd_get_info_request( + GetInfoRequest self, SseSerializer serializer); + @protected void sse_encode_box_autoadd_prepare_receive_request( PrepareReceiveRequest self, SseSerializer serializer); @@ -521,16 +666,36 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { void sse_encode_box_autoadd_prepare_receive_response( PrepareReceiveResponse self, SseSerializer serializer); + @protected + void sse_encode_box_autoadd_prepare_send_request( + PrepareSendRequest self, SseSerializer serializer); + @protected void sse_encode_box_autoadd_prepare_send_response( PrepareSendResponse self, SseSerializer serializer); + @protected + void sse_encode_box_autoadd_restore_request( + RestoreRequest self, SseSerializer serializer); + @protected void sse_encode_box_autoadd_u_32(int self, SseSerializer serializer); @protected void sse_encode_box_autoadd_u_64(int self, SseSerializer serializer); + @protected + void sse_encode_connect_request( + ConnectRequest self, SseSerializer serializer); + + @protected + void sse_encode_get_info_request( + GetInfoRequest self, SseSerializer serializer); + + @protected + void sse_encode_get_info_response( + GetInfoResponse self, SseSerializer serializer); + @protected void sse_encode_i_32(int self, SseSerializer serializer); @@ -570,6 +735,10 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { void sse_encode_prepare_receive_response( PrepareReceiveResponse self, SseSerializer serializer); + @protected + void sse_encode_prepare_send_request( + PrepareSendRequest self, SseSerializer serializer); + @protected void sse_encode_prepare_send_response( PrepareSendResponse self, SseSerializer serializer); @@ -578,6 +747,10 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { void sse_encode_receive_payment_response( ReceivePaymentResponse self, SseSerializer serializer); + @protected + void sse_encode_restore_request( + RestoreRequest self, SseSerializer serializer); + @protected void sse_encode_send_payment_response( SendPaymentResponse self, SseSerializer serializer); @@ -596,9 +769,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void sse_encode_usize(int self, SseSerializer serializer); - - @protected - void sse_encode_wallet_info(WalletInfo self, SseSerializer serializer); } // Section: wire_class @@ -657,28 +827,21 @@ class RustLibWire implements BaseWire { void wire_connect( int port_, - ffi.Pointer mnemonic, - ffi.Pointer data_dir, - int network, + ffi.Pointer req, ) { return _wire_connect( port_, - mnemonic, - data_dir, - network, + req, ); } late final _wire_connectPtr = _lookup< - ffi.NativeFunction< - ffi.Void Function( - ffi.Int64, - ffi.Pointer, - ffi.Pointer, - ffi.Int32)>>('frbgen_breez_liquid_wire_connect'); - late final _wire_connect = _wire_connectPtr.asFunction< - void Function(int, ffi.Pointer, - ffi.Pointer, int)>(); + ffi.NativeFunction< + ffi.Void Function( + ffi.Int64, ffi.Pointer)>>( + 'frbgen_breez_liquid_wire_connect'); + late final _wire_connect = _wire_connectPtr + .asFunction)>(); void wire_empty_wallet_cache( int port_, @@ -696,19 +859,21 @@ class RustLibWire implements BaseWire { void wire_get_info( int port_, - bool with_scan, + ffi.Pointer req, ) { return _wire_get_info( port_, - with_scan, + req, ); } - late final _wire_get_infoPtr = - _lookup>( - 'frbgen_breez_liquid_wire_get_info'); - late final _wire_get_info = - _wire_get_infoPtr.asFunction(); + late final _wire_get_infoPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Int64, ffi.Pointer)>>( + 'frbgen_breez_liquid_wire_get_info'); + late final _wire_get_info = _wire_get_infoPtr + .asFunction)>(); void wire_list_payments( int port_, @@ -749,22 +914,22 @@ class RustLibWire implements BaseWire { void wire_prepare_send_payment( int port_, - ffi.Pointer invoice, + ffi.Pointer req, ) { return _wire_prepare_send_payment( port_, - invoice, + req, ); } late final _wire_prepare_send_paymentPtr = _lookup< ffi.NativeFunction< ffi.Void Function( - ffi.Int64, ffi.Pointer)>>( + ffi.Int64, ffi.Pointer)>>( 'frbgen_breez_liquid_wire_prepare_send_payment'); late final _wire_prepare_send_payment = _wire_prepare_send_paymentPtr.asFunction< - void Function(int, ffi.Pointer)>(); + void Function(int, ffi.Pointer)>(); void wire_receive_payment( int port_, @@ -802,21 +967,21 @@ class RustLibWire implements BaseWire { void wire_restore( int port_, - ffi.Pointer backup_path, + ffi.Pointer req, ) { return _wire_restore( port_, - backup_path, + req, ); } late final _wire_restorePtr = _lookup< ffi.NativeFunction< ffi.Void Function( - ffi.Int64, ffi.Pointer)>>( + ffi.Int64, ffi.Pointer)>>( 'frbgen_breez_liquid_wire_restore'); - late final _wire_restore = _wire_restorePtr.asFunction< - void Function(int, ffi.Pointer)>(); + late final _wire_restore = _wire_restorePtr + .asFunction)>(); void wire_send_payment( int port_, @@ -868,6 +1033,30 @@ class RustLibWire implements BaseWire { _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecoveryPtr .asFunction)>(); + ffi.Pointer cst_new_box_autoadd_connect_request() { + return _cst_new_box_autoadd_connect_request(); + } + + late final _cst_new_box_autoadd_connect_requestPtr = _lookup< + ffi.NativeFunction Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_connect_request'); + late final _cst_new_box_autoadd_connect_request = + _cst_new_box_autoadd_connect_requestPtr + .asFunction Function()>(); + + ffi.Pointer + cst_new_box_autoadd_get_info_request() { + return _cst_new_box_autoadd_get_info_request(); + } + + late final _cst_new_box_autoadd_get_info_requestPtr = _lookup< + ffi + .NativeFunction Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_get_info_request'); + late final _cst_new_box_autoadd_get_info_request = + _cst_new_box_autoadd_get_info_requestPtr + .asFunction Function()>(); + ffi.Pointer cst_new_box_autoadd_prepare_receive_request() { return _cst_new_box_autoadd_prepare_receive_request(); @@ -894,6 +1083,19 @@ class RustLibWire implements BaseWire { _cst_new_box_autoadd_prepare_receive_responsePtr.asFunction< ffi.Pointer Function()>(); + ffi.Pointer + cst_new_box_autoadd_prepare_send_request() { + return _cst_new_box_autoadd_prepare_send_request(); + } + + late final _cst_new_box_autoadd_prepare_send_requestPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request'); + late final _cst_new_box_autoadd_prepare_send_request = + _cst_new_box_autoadd_prepare_send_requestPtr + .asFunction Function()>(); + ffi.Pointer cst_new_box_autoadd_prepare_send_response() { return _cst_new_box_autoadd_prepare_send_response(); @@ -907,6 +1109,17 @@ class RustLibWire implements BaseWire { _cst_new_box_autoadd_prepare_send_responsePtr .asFunction Function()>(); + ffi.Pointer cst_new_box_autoadd_restore_request() { + return _cst_new_box_autoadd_restore_request(); + } + + late final _cst_new_box_autoadd_restore_requestPtr = _lookup< + ffi.NativeFunction Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_restore_request'); + late final _cst_new_box_autoadd_restore_request = + _cst_new_box_autoadd_restore_requestPtr + .asFunction Function()>(); + ffi.Pointer cst_new_box_autoadd_u_32( int value, ) { @@ -988,10 +1201,27 @@ final class wire_cst_list_prim_u_8_strict extends ffi.Struct { external int len; } -final class wire_cst_prepare_receive_request extends ffi.Struct { - external ffi.Pointer payer_amount_sat; +final class wire_cst_connect_request extends ffi.Struct { + external ffi.Pointer mnemonic; - external ffi.Pointer receiver_amount_sat; + external ffi.Pointer data_dir; + + @ffi.Int32() + external int network; +} + +final class wire_cst_get_info_request extends ffi.Struct { + @ffi.Bool() + external bool with_scan; +} + +final class wire_cst_prepare_receive_request extends ffi.Struct { + @ffi.Uint64() + external int payer_amount_sat; +} + +final class wire_cst_prepare_send_request extends ffi.Struct { + external ffi.Pointer invoice; } final class wire_cst_prepare_receive_response extends ffi.Struct { @@ -1004,6 +1234,10 @@ final class wire_cst_prepare_receive_response extends ffi.Struct { external int fees_sat; } +final class wire_cst_restore_request extends ffi.Struct { + external ffi.Pointer backup_path; +} + final class wire_cst_prepare_send_response extends ffi.Struct { external ffi.Pointer id; @@ -1044,6 +1278,13 @@ final class wire_cst_list_payment extends ffi.Struct { external int len; } +final class wire_cst_get_info_response extends ffi.Struct { + @ffi.Uint64() + external int balance_sat; + + external ffi.Pointer pubkey; +} + final class wire_cst_PaymentError_Generic extends ffi.Struct { external ffi.Pointer err; } @@ -1087,11 +1328,4 @@ final class wire_cst_send_payment_response extends ffi.Struct { external ffi.Pointer txid; } -final class wire_cst_wallet_info extends ffi.Struct { - @ffi.Uint64() - external int balance_sat; - - external ffi.Pointer pubkey; -} - const double LIQUID_CLAIM_TX_FEERATE = 0.1; diff --git a/lib/flutter/packages/breez_liquid/lib/src/model.dart b/lib/flutter/packages/breez_liquid/lib/src/model.dart index c222d76..bf039b8 100644 --- a/lib/flutter/packages/breez_liquid/lib/src/model.dart +++ b/lib/flutter/packages/breez_liquid/lib/src/model.dart @@ -6,6 +6,69 @@ import 'frb_generated.dart'; import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; +class ConnectRequest { + final String mnemonic; + final String? dataDir; + final Network network; + + const ConnectRequest({ + required this.mnemonic, + this.dataDir, + required this.network, + }); + + @override + int get hashCode => mnemonic.hashCode ^ dataDir.hashCode ^ network.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is ConnectRequest && + runtimeType == other.runtimeType && + mnemonic == other.mnemonic && + dataDir == other.dataDir && + network == other.network; +} + +class GetInfoRequest { + final bool withScan; + + const GetInfoRequest({ + required this.withScan, + }); + + @override + int get hashCode => withScan.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is GetInfoRequest && + runtimeType == other.runtimeType && + withScan == other.withScan; +} + +class GetInfoResponse { + final int balanceSat; + final String pubkey; + + const GetInfoResponse({ + required this.balanceSat, + required this.pubkey, + }); + + @override + int get hashCode => balanceSat.hashCode ^ pubkey.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is GetInfoResponse && + runtimeType == other.runtimeType && + balanceSat == other.balanceSat && + pubkey == other.pubkey; +} + enum Network { liquid, liquidTestnet, @@ -62,24 +125,21 @@ enum PaymentType { } class PrepareReceiveRequest { - final int? payerAmountSat; - final int? receiverAmountSat; + final int payerAmountSat; const PrepareReceiveRequest({ - this.payerAmountSat, - this.receiverAmountSat, + required this.payerAmountSat, }); @override - int get hashCode => payerAmountSat.hashCode ^ receiverAmountSat.hashCode; + int get hashCode => payerAmountSat.hashCode; @override bool operator ==(Object other) => identical(this, other) || other is PrepareReceiveRequest && runtimeType == other.runtimeType && - payerAmountSat == other.payerAmountSat && - receiverAmountSat == other.receiverAmountSat; + payerAmountSat == other.payerAmountSat; } class PrepareReceiveResponse { @@ -107,6 +167,24 @@ class PrepareReceiveResponse { feesSat == other.feesSat; } +class PrepareSendRequest { + final String invoice; + + const PrepareSendRequest({ + required this.invoice, + }); + + @override + int get hashCode => invoice.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is PrepareSendRequest && + runtimeType == other.runtimeType && + invoice == other.invoice; +} + class PrepareSendResponse { final String id; final int payerAmountSat; @@ -167,6 +245,24 @@ class ReceivePaymentResponse { invoice == other.invoice; } +class RestoreRequest { + final String? backupPath; + + const RestoreRequest({ + this.backupPath, + }); + + @override + int get hashCode => backupPath.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is RestoreRequest && + runtimeType == other.runtimeType && + backupPath == other.backupPath; +} + class SendPaymentResponse { final String txid; @@ -184,24 +280,3 @@ class SendPaymentResponse { runtimeType == other.runtimeType && txid == other.txid; } - -class WalletInfo { - final int balanceSat; - final String pubkey; - - const WalletInfo({ - required this.balanceSat, - required this.pubkey, - }); - - @override - int get hashCode => balanceSat.hashCode ^ pubkey.hashCode; - - @override - bool operator ==(Object other) => - identical(this, other) || - other is WalletInfo && - runtimeType == other.runtimeType && - balanceSat == other.balanceSat && - pubkey == other.pubkey; -} diff --git a/lib/flutter/packages/flutter_breez_liquid/lib/flutter_breez_liquid_bindings_generated.dart b/lib/flutter/packages/flutter_breez_liquid/lib/flutter_breez_liquid_bindings_generated.dart index 7e62574..93f2179 100644 --- a/lib/flutter/packages/flutter_breez_liquid/lib/flutter_breez_liquid_bindings_generated.dart +++ b/lib/flutter/packages/flutter_breez_liquid/lib/flutter_breez_liquid_bindings_generated.dart @@ -57,29 +57,22 @@ class FlutterBreezLiquidBindings { void frbgen_breez_liquid_wire_connect( int port_, - ffi.Pointer mnemonic, - ffi.Pointer data_dir, - int network, + ffi.Pointer req, ) { return _frbgen_breez_liquid_wire_connect( port_, - mnemonic, - data_dir, - network, + req, ); } late final _frbgen_breez_liquid_wire_connectPtr = _lookup< - ffi.NativeFunction< - ffi.Void Function( - ffi.Int64, - ffi.Pointer, - ffi.Pointer, - ffi.Int32)>>('frbgen_breez_liquid_wire_connect'); + ffi.NativeFunction< + ffi.Void Function( + ffi.Int64, ffi.Pointer)>>( + 'frbgen_breez_liquid_wire_connect'); late final _frbgen_breez_liquid_wire_connect = _frbgen_breez_liquid_wire_connectPtr.asFunction< - void Function(int, ffi.Pointer, - ffi.Pointer, int)>(); + void Function(int, ffi.Pointer)>(); void frbgen_breez_liquid_wire_empty_wallet_cache( int port_, @@ -98,20 +91,22 @@ class FlutterBreezLiquidBindings { void frbgen_breez_liquid_wire_get_info( int port_, - bool with_scan, + ffi.Pointer req, ) { return _frbgen_breez_liquid_wire_get_info( port_, - with_scan, + req, ); } - late final _frbgen_breez_liquid_wire_get_infoPtr = - _lookup>( - 'frbgen_breez_liquid_wire_get_info'); + late final _frbgen_breez_liquid_wire_get_infoPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Int64, ffi.Pointer)>>( + 'frbgen_breez_liquid_wire_get_info'); late final _frbgen_breez_liquid_wire_get_info = - _frbgen_breez_liquid_wire_get_infoPtr - .asFunction(); + _frbgen_breez_liquid_wire_get_infoPtr.asFunction< + void Function(int, ffi.Pointer)>(); void frbgen_breez_liquid_wire_list_payments( int port_, @@ -153,22 +148,22 @@ class FlutterBreezLiquidBindings { void frbgen_breez_liquid_wire_prepare_send_payment( int port_, - ffi.Pointer invoice, + ffi.Pointer req, ) { return _frbgen_breez_liquid_wire_prepare_send_payment( port_, - invoice, + req, ); } late final _frbgen_breez_liquid_wire_prepare_send_paymentPtr = _lookup< ffi.NativeFunction< ffi.Void Function( - ffi.Int64, ffi.Pointer)>>( + ffi.Int64, ffi.Pointer)>>( 'frbgen_breez_liquid_wire_prepare_send_payment'); late final _frbgen_breez_liquid_wire_prepare_send_payment = _frbgen_breez_liquid_wire_prepare_send_paymentPtr.asFunction< - void Function(int, ffi.Pointer)>(); + void Function(int, ffi.Pointer)>(); void frbgen_breez_liquid_wire_receive_payment( int port_, @@ -208,22 +203,22 @@ class FlutterBreezLiquidBindings { void frbgen_breez_liquid_wire_restore( int port_, - ffi.Pointer backup_path, + ffi.Pointer req, ) { return _frbgen_breez_liquid_wire_restore( port_, - backup_path, + req, ); } late final _frbgen_breez_liquid_wire_restorePtr = _lookup< ffi.NativeFunction< ffi.Void Function( - ffi.Int64, ffi.Pointer)>>( + ffi.Int64, ffi.Pointer)>>( 'frbgen_breez_liquid_wire_restore'); late final _frbgen_breez_liquid_wire_restore = _frbgen_breez_liquid_wire_restorePtr.asFunction< - void Function(int, ffi.Pointer)>(); + void Function(int, ffi.Pointer)>(); void frbgen_breez_liquid_wire_send_payment( int port_, @@ -276,6 +271,34 @@ class FlutterBreezLiquidBindings { _frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecoveryPtr .asFunction)>(); + ffi.Pointer + frbgen_breez_liquid_cst_new_box_autoadd_connect_request() { + return _frbgen_breez_liquid_cst_new_box_autoadd_connect_request(); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_connect_requestPtr = + _lookup< + ffi.NativeFunction< + ffi.Pointer Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_connect_request'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_connect_request = + _frbgen_breez_liquid_cst_new_box_autoadd_connect_requestPtr + .asFunction Function()>(); + + ffi.Pointer + frbgen_breez_liquid_cst_new_box_autoadd_get_info_request() { + return _frbgen_breez_liquid_cst_new_box_autoadd_get_info_request(); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_get_info_requestPtr = + _lookup< + ffi.NativeFunction< + ffi.Pointer Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_get_info_request'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_get_info_request = + _frbgen_breez_liquid_cst_new_box_autoadd_get_info_requestPtr + .asFunction Function()>(); + ffi.Pointer frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_request() { return _frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_request(); @@ -306,6 +329,20 @@ class FlutterBreezLiquidBindings { .asFunction< ffi.Pointer Function()>(); + ffi.Pointer + frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request() { + return _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request(); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_requestPtr = + _lookup< + ffi.NativeFunction< + ffi.Pointer Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request = + _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_requestPtr + .asFunction Function()>(); + ffi.Pointer frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_response() { return _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_response(); @@ -320,6 +357,20 @@ class FlutterBreezLiquidBindings { _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_responsePtr .asFunction Function()>(); + ffi.Pointer + frbgen_breez_liquid_cst_new_box_autoadd_restore_request() { + return _frbgen_breez_liquid_cst_new_box_autoadd_restore_request(); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_restore_requestPtr = + _lookup< + ffi.NativeFunction< + ffi.Pointer Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_restore_request'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_restore_request = + _frbgen_breez_liquid_cst_new_box_autoadd_restore_requestPtr + .asFunction Function()>(); + ffi.Pointer frbgen_breez_liquid_cst_new_box_autoadd_u_32( int value, ) { @@ -421,10 +472,27 @@ final class wire_cst_list_prim_u_8_strict extends ffi.Struct { external int len; } -final class wire_cst_prepare_receive_request extends ffi.Struct { - external ffi.Pointer payer_amount_sat; +final class wire_cst_connect_request extends ffi.Struct { + external ffi.Pointer mnemonic; - external ffi.Pointer receiver_amount_sat; + external ffi.Pointer data_dir; + + @ffi.Int32() + external int network; +} + +final class wire_cst_get_info_request extends ffi.Struct { + @ffi.Bool() + external bool with_scan; +} + +final class wire_cst_prepare_receive_request extends ffi.Struct { + @ffi.Uint64() + external int payer_amount_sat; +} + +final class wire_cst_prepare_send_request extends ffi.Struct { + external ffi.Pointer invoice; } final class wire_cst_prepare_receive_response extends ffi.Struct { @@ -437,6 +505,10 @@ final class wire_cst_prepare_receive_response extends ffi.Struct { external int fees_sat; } +final class wire_cst_restore_request extends ffi.Struct { + external ffi.Pointer backup_path; +} + final class wire_cst_prepare_send_response extends ffi.Struct { external ffi.Pointer id; @@ -477,6 +549,13 @@ final class wire_cst_list_payment extends ffi.Struct { external int len; } +final class wire_cst_get_info_response extends ffi.Struct { + @ffi.Uint64() + external int balance_sat; + + external ffi.Pointer pubkey; +} + final class wire_cst_PaymentError_Generic extends ffi.Struct { external ffi.Pointer err; } @@ -520,11 +599,4 @@ final class wire_cst_send_payment_response extends ffi.Struct { external ffi.Pointer txid; } -final class wire_cst_wallet_info extends ffi.Struct { - @ffi.Uint64() - external int balance_sat; - - external ffi.Pointer pubkey; -} - const double LIQUID_CLAIM_TX_FEERATE = 0.1;