diff --git a/lib/bindings/langs/flutter/breez_liquid_sdk/include/breez_liquid_sdk.h b/lib/bindings/langs/flutter/breez_liquid_sdk/include/breez_liquid_sdk.h index b459e77..ed2e551 100644 --- a/lib/bindings/langs/flutter/breez_liquid_sdk/include/breez_liquid_sdk.h +++ b/lib/bindings/langs/flutter/breez_liquid_sdk/include/breez_liquid_sdk.h @@ -278,10 +278,9 @@ void frbgen_breez_liquid_wire__crate__bindings__breez_log_stream(int64_t port_, void frbgen_breez_liquid_wire__crate__bindings__connect(int64_t port_, struct wire_cst_connect_request *req); -void frbgen_breez_liquid_wire__crate__bindings__default_config(int64_t port_, int32_t network); +WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__default_config(int32_t network); -void frbgen_breez_liquid_wire__crate__bindings__parse_invoice(int64_t port_, - struct wire_cst_list_prim_u_8_strict *input); +WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__parse_invoice(struct wire_cst_list_prim_u_8_strict *input); void frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBindingLiquidSdk(const void *ptr); diff --git a/lib/core/src/bindings.rs b/lib/core/src/bindings.rs index b82c3ae..16e2ab5 100644 --- a/lib/core/src/bindings.rs +++ b/lib/core/src/bindings.rs @@ -59,10 +59,12 @@ pub fn breez_log_stream(s: StreamSink) -> Result<()> { Ok(()) } +#[frb(sync)] pub fn default_config(network: Network) -> Config { LiquidSdk::default_config(network) } +#[frb(sync)] pub fn parse_invoice(input: String) -> Result { LiquidSdk::parse_invoice(&input) } diff --git a/lib/core/src/frb/bridge.io.rs b/lib/core/src/frb/bridge.io.rs index 65fccb8..bcb6424 100644 --- a/lib/core/src/frb/bridge.io.rs +++ b/lib/core/src/frb/bridge.io.rs @@ -872,18 +872,16 @@ pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__connect( #[no_mangle] pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__default_config( - port_: i64, network: i32, -) { - wire__crate__bindings__default_config_impl(port_, network) +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco { + wire__crate__bindings__default_config_impl(network) } #[no_mangle] pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__parse_invoice( - port_: i64, input: *mut wire_cst_list_prim_u_8_strict, -) { - wire__crate__bindings__parse_invoice_impl(port_, input) +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco { + wire__crate__bindings__parse_invoice_impl(input) } #[no_mangle] diff --git a/lib/core/src/frb/bridge.rs b/lib/core/src/frb/bridge.rs index 0f9019b..83a766f 100644 --- a/lib/core/src/frb/bridge.rs +++ b/lib/core/src/frb/bridge.rs @@ -391,40 +391,34 @@ fn wire__crate__bindings__connect_impl( ) } fn wire__crate__bindings__default_config_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, network: impl CstDecode, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( flutter_rust_bridge::for_generated::TaskInfo { debug_name: "default_config", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, }, move || { let api_network = network.cst_decode(); - move |context| { - transform_result_dco((move || { - Result::<_, ()>::Ok(crate::bindings::default_config(api_network)) - })()) - } + transform_result_dco((move || { + Result::<_, ()>::Ok(crate::bindings::default_config(api_network)) + })()) }, ) } fn wire__crate__bindings__parse_invoice_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, input: impl CstDecode, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( flutter_rust_bridge::for_generated::TaskInfo { debug_name: "parse_invoice", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, }, move || { let api_input = input.cst_decode(); - move |context| { - transform_result_dco((move || crate::bindings::parse_invoice(api_input))()) - } + transform_result_dco((move || crate::bindings::parse_invoice(api_input))()) }, ) } diff --git a/packages/dart/lib/src/bindings.dart b/packages/dart/lib/src/bindings.dart index 6b272c3..b02b8e6 100644 --- a/packages/dart/lib/src/bindings.dart +++ b/packages/dart/lib/src/bindings.dart @@ -18,10 +18,10 @@ Future connect({required ConnectRequest req, dynamic hint}) => Stream breezLogStream({dynamic hint}) => RustLib.instance.api.crateBindingsBreezLogStream(hint: hint); -Future defaultConfig({required Network network, dynamic hint}) => +Config defaultConfig({required Network network, dynamic hint}) => RustLib.instance.api.crateBindingsDefaultConfig(network: network, hint: hint); -Future parseInvoice({required String input, dynamic hint}) => +LNInvoice parseInvoice({required String input, dynamic hint}) => RustLib.instance.api.crateBindingsParseInvoice(input: input, hint: hint); // Rust type: RustOpaqueNom> diff --git a/packages/dart/lib/src/frb_generated.dart b/packages/dart/lib/src/frb_generated.dart index b88164e..524b9f0 100644 --- a/packages/dart/lib/src/frb_generated.dart +++ b/packages/dart/lib/src/frb_generated.dart @@ -100,9 +100,9 @@ abstract class RustLibApi extends BaseApi { Future crateBindingsConnect({required ConnectRequest req, dynamic hint}); - Future crateBindingsDefaultConfig({required Network network, dynamic hint}); + Config crateBindingsDefaultConfig({required Network network, dynamic hint}); - Future crateBindingsParseInvoice({required String input, dynamic hint}); + LNInvoice crateBindingsParseInvoice({required String input, dynamic hint}); RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_BindingLiquidSdk; @@ -488,11 +488,11 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { ); @override - Future crateBindingsDefaultConfig({required Network network, dynamic hint}) { - return handler.executeNormal(NormalTask( - callFfi: (port_) { + Config crateBindingsDefaultConfig({required Network network, dynamic hint}) { + return handler.executeSync(SyncTask( + callFfi: () { var arg0 = cst_encode_network(network); - return wire.wire__crate__bindings__default_config(port_, arg0); + return wire.wire__crate__bindings__default_config(arg0); }, codec: DcoCodec( decodeSuccessData: dco_decode_config, @@ -511,11 +511,11 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { ); @override - Future crateBindingsParseInvoice({required String input, dynamic hint}) { - return handler.executeNormal(NormalTask( - callFfi: (port_) { + LNInvoice crateBindingsParseInvoice({required String input, dynamic hint}) { + return handler.executeSync(SyncTask( + callFfi: () { var arg0 = cst_encode_String(input); - return wire.wire__crate__bindings__parse_invoice(port_, arg0); + return wire.wire__crate__bindings__parse_invoice(arg0); }, codec: DcoCodec( decodeSuccessData: dco_decode_ln_invoice, diff --git a/packages/dart/lib/src/frb_generated.io.dart b/packages/dart/lib/src/frb_generated.io.dart index e1582b3..f141ea5 100644 --- a/packages/dart/lib/src/frb_generated.io.dart +++ b/packages/dart/lib/src/frb_generated.io.dart @@ -1325,37 +1325,33 @@ class RustLibWire implements BaseWire { late final _wire__crate__bindings__connect = _wire__crate__bindings__connectPtr .asFunction)>(); - void wire__crate__bindings__default_config( - int port_, + WireSyncRust2DartDco wire__crate__bindings__default_config( int network, ) { return _wire__crate__bindings__default_config( - port_, network, ); } late final _wire__crate__bindings__default_configPtr = - _lookup>( + _lookup>( 'frbgen_breez_liquid_wire__crate__bindings__default_config'); late final _wire__crate__bindings__default_config = - _wire__crate__bindings__default_configPtr.asFunction(); + _wire__crate__bindings__default_configPtr.asFunction(); - void wire__crate__bindings__parse_invoice( - int port_, + WireSyncRust2DartDco wire__crate__bindings__parse_invoice( ffi.Pointer input, ) { return _wire__crate__bindings__parse_invoice( - port_, input, ); } late final _wire__crate__bindings__parse_invoicePtr = - _lookup)>>( + _lookup)>>( 'frbgen_breez_liquid_wire__crate__bindings__parse_invoice'); late final _wire__crate__bindings__parse_invoice = _wire__crate__bindings__parse_invoicePtr - .asFunction)>(); + .asFunction)>(); void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBindingLiquidSdk( diff --git a/packages/dart/lib/src/model.dart b/packages/dart/lib/src/model.dart index 30c0633..fb98235 100644 --- a/packages/dart/lib/src/model.dart +++ b/packages/dart/lib/src/model.dart @@ -33,9 +33,13 @@ class Config { final String boltzUrl; final String electrumUrl; - /// Directory in which all SDK files (DB, log) are stored. + /// Directory in which all SDK files (DB, log, cache) are stored. + /// + /// Prefix can be a relative or absolute path to this directory. final String workingDir; final Network network; + + /// Send payment timeout. See [crate::sdk::LiquidSdk::send_payment] final BigInt paymentTimeoutSec; const Config({ diff --git a/packages/flutter/lib/flutter_breez_liquid_bindings_generated.dart b/packages/flutter/lib/flutter_breez_liquid_bindings_generated.dart index 795d7e3..c30c160 100644 --- a/packages/flutter/lib/flutter_breez_liquid_bindings_generated.dart +++ b/packages/flutter/lib/flutter_breez_liquid_bindings_generated.dart @@ -294,38 +294,35 @@ class FlutterBreezLiquidBindings { _frbgen_breez_liquid_wire__crate__bindings__connectPtr .asFunction)>(); - void frbgen_breez_liquid_wire__crate__bindings__default_config( - int port_, + WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__default_config( int network, ) { return _frbgen_breez_liquid_wire__crate__bindings__default_config( - port_, network, ); } late final _frbgen_breez_liquid_wire__crate__bindings__default_configPtr = - _lookup>( + _lookup>( 'frbgen_breez_liquid_wire__crate__bindings__default_config'); late final _frbgen_breez_liquid_wire__crate__bindings__default_config = - _frbgen_breez_liquid_wire__crate__bindings__default_configPtr.asFunction(); + _frbgen_breez_liquid_wire__crate__bindings__default_configPtr + .asFunction(); - void frbgen_breez_liquid_wire__crate__bindings__parse_invoice( - int port_, + WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__parse_invoice( ffi.Pointer input, ) { return _frbgen_breez_liquid_wire__crate__bindings__parse_invoice( - port_, input, ); } late final _frbgen_breez_liquid_wire__crate__bindings__parse_invoicePtr = - _lookup)>>( + _lookup)>>( 'frbgen_breez_liquid_wire__crate__bindings__parse_invoice'); late final _frbgen_breez_liquid_wire__crate__bindings__parse_invoice = _frbgen_breez_liquid_wire__crate__bindings__parse_invoicePtr - .asFunction)>(); + .asFunction)>(); void frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBindingLiquidSdk(