Remove tokio runtime (#239)

* Remove obsolete Tokio runtime dependency on bindings

* Apply changes on example app

* Update "Getting Started" on README

* Update pubspec.lock
This commit is contained in:
Erdem Yerebasmaz
2024-05-30 17:04:58 +03:00
committed by GitHub
parent e5dba1043e
commit e0322c39d6
15 changed files with 261 additions and 221 deletions

View File

@@ -27,7 +27,8 @@ If you would like to build your binaries (for Flutter devices) locally in additi
- Need to run `brew install llvm` on macOS since Apple's llvm doesn't have it
## Getting Started
Run `just bootstrap` to initialize your workspace.
Run `just bootstrap true true` to initialize your workspace.
First parameter installs frb dependencies, second parameter builds the libraries.
To see all available recipes, run `just`.

View File

@@ -223,15 +223,13 @@ void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_add_event_liste
uintptr_t that,
struct wire_cst_list_prim_u_8_strict *listener);
void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_backup(int64_t port_,
uintptr_t that,
WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_backup(uintptr_t that,
struct wire_cst_backup_request *req);
void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_disconnect(int64_t port_,
uintptr_t that);
void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache(int64_t port_,
uintptr_t that);
WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache(uintptr_t that);
void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_get_info(int64_t port_,
uintptr_t that,
@@ -252,8 +250,7 @@ void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_receive_payment
uintptr_t that,
struct wire_cst_prepare_receive_response *req);
void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_restore(int64_t port_,
uintptr_t that,
WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_restore(uintptr_t that,
struct wire_cst_restore_request *req);
void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_send_payment(int64_t port_,

View File

@@ -101,10 +101,10 @@ packages:
dependency: transitive
description:
name: http
sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba
sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
version: "1.2.1"
http_parser:
dependency: transitive
description:
@@ -125,10 +125,10 @@ packages:
dependency: transitive
description:
name: json_annotation
sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
url: "https://pub.dev"
source: hosted
version: "4.8.1"
version: "4.9.0"
lints:
dependency: "direct dev"
description:
@@ -157,10 +157,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: "25dfcaf170a0190f47ca6355bdd4552cb8924b430512ff0cafb8db9bd41fe33b"
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
url: "https://pub.dev"
source: hosted
version: "1.14.0"
version: "1.15.0"
mustache_template:
dependency: transitive
description:
@@ -309,10 +309,10 @@ packages:
dependency: transitive
description:
name: web
sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05"
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
url: "https://pub.dev"
source: hosted
version: "0.4.2"
version: "0.5.1"
yaml:
dependency: transitive
description:
@@ -325,9 +325,9 @@ packages:
dependency: transitive
description:
name: yaml_edit
sha256: c566f4f804215d84a7a2c377667f546c6033d5b34b4f9e60dfb09d17c4e97826
sha256: e9c1a3543d2da0db3e90270dbb1e4eebc985ee5e3ffe468d83224472b2194a5f
url: "https://pub.dev"
source: hosted
version: "2.2.0"
version: "2.2.1"
sdks:
dart: ">=3.2.0 <4.0.0"
dart: ">=3.3.0 <4.0.0"

View File

@@ -1,14 +1,7 @@
use crate::{error::*, frb::bridge::StreamSink, model::*, sdk::LiquidSdk};
use anyhow::Result;
use once_cell::sync::Lazy;
use flutter_rust_bridge::frb;
use std::sync::Arc;
use tokio::runtime::Runtime;
static RT: Lazy<Runtime> = Lazy::new(|| Runtime::new().unwrap());
pub(crate) fn rt() -> &'static Runtime {
&RT
}
struct BindingEventListener {
stream: StreamSink<LiquidSdkEvent>,
@@ -20,11 +13,9 @@ impl EventListener for BindingEventListener {
}
}
pub fn connect(req: ConnectRequest) -> Result<BindingLiquidSdk, LiquidSdkError> {
rt().block_on(async {
pub async fn connect(req: ConnectRequest) -> Result<BindingLiquidSdk, LiquidSdkError> {
let ln_sdk = LiquidSdk::connect(req).await?;
Ok(BindingLiquidSdk { sdk: ln_sdk })
})
}
pub fn parse_invoice(input: String) -> Result<LNInvoice, PaymentError> {
@@ -36,69 +27,71 @@ pub struct BindingLiquidSdk {
}
impl BindingLiquidSdk {
pub fn get_info(&self, req: GetInfoRequest) -> Result<GetInfoResponse, LiquidSdkError> {
rt().block_on(self.sdk.get_info(req)).map_err(Into::into)
pub async fn get_info(&self, req: GetInfoRequest) -> Result<GetInfoResponse, LiquidSdkError> {
self.sdk.get_info(req).await.map_err(Into::into)
}
pub fn add_event_listener(
pub async fn add_event_listener(
&self,
listener: StreamSink<LiquidSdkEvent>,
) -> Result<String, LiquidSdkError> {
rt().block_on(
self.sdk
.add_event_listener(Box::new(BindingEventListener { stream: listener })),
)
.add_event_listener(Box::new(BindingEventListener { stream: listener }))
.await
}
pub fn prepare_send_payment(
pub async fn prepare_send_payment(
&self,
req: PrepareSendRequest,
) -> Result<PrepareSendResponse, PaymentError> {
rt().block_on(self.sdk.prepare_send_payment(&req))
self.sdk.prepare_send_payment(&req).await
}
pub fn send_payment(
pub async fn send_payment(
&self,
req: PrepareSendResponse,
) -> Result<SendPaymentResponse, PaymentError> {
rt().block_on(self.sdk.send_payment(&req))
self.sdk.send_payment(&req).await
}
pub fn prepare_receive_payment(
pub async fn prepare_receive_payment(
&self,
req: PrepareReceiveRequest,
) -> Result<PrepareReceiveResponse, PaymentError> {
rt().block_on(self.sdk.prepare_receive_payment(&req))
self.sdk.prepare_receive_payment(&req).await
}
pub fn receive_payment(
pub async fn receive_payment(
&self,
req: PrepareReceiveResponse,
) -> Result<ReceivePaymentResponse, PaymentError> {
rt().block_on(self.sdk.receive_payment(&req))
self.sdk.receive_payment(&req).await
}
pub fn list_payments(&self) -> Result<Vec<Payment>, PaymentError> {
rt().block_on(self.sdk.list_payments())
pub async fn list_payments(&self) -> Result<Vec<Payment>, PaymentError> {
self.sdk.list_payments().await
}
pub fn sync(&self) -> Result<(), LiquidSdkError> {
rt().block_on(self.sdk.sync()).map_err(Into::into)
pub async fn sync(&self) -> Result<(), LiquidSdkError> {
self.sdk.sync().await.map_err(Into::into)
}
#[frb(sync)]
pub fn empty_wallet_cache(&self) -> Result<(), LiquidSdkError> {
self.sdk.empty_wallet_cache().map_err(Into::into)
}
#[frb(sync)]
pub fn backup(&self, req: BackupRequest) -> Result<(), LiquidSdkError> {
self.sdk.backup(req).map_err(Into::into)
}
#[frb(sync)]
pub fn restore(&self, req: RestoreRequest) -> Result<(), LiquidSdkError> {
self.sdk.restore(req).map_err(Into::into)
}
pub fn disconnect(&self) -> Result<(), LiquidSdkError> {
rt().block_on(self.sdk.disconnect())
pub async fn disconnect(&self) -> Result<(), LiquidSdkError> {
self.sdk.disconnect().await
}
}

View File

@@ -696,11 +696,10 @@ pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_ad
#[no_mangle]
pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_backup(
port_: i64,
that: usize,
req: *mut wire_cst_backup_request,
) {
wire__crate__bindings__BindingLiquidSdk_backup_impl(port_, that, req)
) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco {
wire__crate__bindings__BindingLiquidSdk_backup_impl(that, req)
}
#[no_mangle]
@@ -713,10 +712,9 @@ pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_di
#[no_mangle]
pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache(
port_: i64,
that: usize,
) {
wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache_impl(port_, that)
) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco {
wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache_impl(that)
}
#[no_mangle]
@@ -765,11 +763,10 @@ pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_re
#[no_mangle]
pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_restore(
port_: i64,
that: usize,
req: *mut wire_cst_restore_request,
) {
wire__crate__bindings__BindingLiquidSdk_restore_impl(port_, that, req)
) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco {
wire__crate__bindings__BindingLiquidSdk_restore_impl(that, req)
}
#[no_mangle]

View File

@@ -51,42 +51,61 @@ fn wire__crate__bindings__BindingLiquidSdk_add_event_listener_impl(
StreamSink<crate::model::LiquidSdkEvent, flutter_rust_bridge::for_generated::DcoCodec>,
>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_add_event_listener", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_listener = listener.cst_decode(); move |context| {
transform_result_dco((move || {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::<flutter_rust_bridge::for_generated::DcoCodec,_,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_add_event_listener", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_listener = listener.cst_decode(); move |context| async move {
transform_result_dco((move || async move {
let mut api_that_decoded = None;
let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]);
for i in decode_indices_ {
match i {
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)),
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await),
_ => unreachable!(),
}
}
let api_that = api_that_decoded.unwrap();
crate::bindings::BindingLiquidSdk::add_event_listener(&api_that, api_listener)
})())
crate::bindings::BindingLiquidSdk::add_event_listener(&api_that, api_listener).await
})().await)
} })
}
fn wire__crate__bindings__BindingLiquidSdk_backup_impl(
port_: flutter_rust_bridge::for_generated::MessagePort,
that: impl CstDecode<
RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<BindingLiquidSdk>>,
>,
req: impl CstDecode<crate::model::BackupRequest>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_backup", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_req = req.cst_decode(); move |context| {
) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::<flutter_rust_bridge::for_generated::DcoCodec, _>(
flutter_rust_bridge::for_generated::TaskInfo {
debug_name: "BindingLiquidSdk_backup",
port: None,
mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync,
},
move || {
let api_that = that.cst_decode();
let api_req = req.cst_decode();
transform_result_dco((move || {
let mut api_that_decoded = None;
let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]);
let decode_indices_ =
flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(
vec![
flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(
&api_that, 0, false,
),
],
);
for i in decode_indices_ {
match i {
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)),
0 => api_that_decoded = Some(
flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(
&api_that,
),
),
_ => unreachable!(),
}
}
let api_that = api_that_decoded.unwrap();
crate::bindings::BindingLiquidSdk::backup(&api_that, api_req)
})())
} })
},
)
}
fn wire__crate__bindings__BindingLiquidSdk_disconnect_impl(
port_: flutter_rust_bridge::for_generated::MessagePort,
@@ -94,41 +113,59 @@ fn wire__crate__bindings__BindingLiquidSdk_disconnect_impl(
RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<BindingLiquidSdk>>,
>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_disconnect", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode(); move |context| {
transform_result_dco((move || {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::<flutter_rust_bridge::for_generated::DcoCodec,_,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_disconnect", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode(); move |context| async move {
transform_result_dco((move || async move {
let mut api_that_decoded = None;
let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]);
for i in decode_indices_ {
match i {
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)),
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await),
_ => unreachable!(),
}
}
let api_that = api_that_decoded.unwrap();
crate::bindings::BindingLiquidSdk::disconnect(&api_that)
})())
crate::bindings::BindingLiquidSdk::disconnect(&api_that).await
})().await)
} })
}
fn wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache_impl(
port_: flutter_rust_bridge::for_generated::MessagePort,
that: impl CstDecode<
RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<BindingLiquidSdk>>,
>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_empty_wallet_cache", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode(); move |context| {
) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::<flutter_rust_bridge::for_generated::DcoCodec, _>(
flutter_rust_bridge::for_generated::TaskInfo {
debug_name: "BindingLiquidSdk_empty_wallet_cache",
port: None,
mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync,
},
move || {
let api_that = that.cst_decode();
transform_result_dco((move || {
let mut api_that_decoded = None;
let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]);
let decode_indices_ =
flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(
vec![
flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(
&api_that, 0, false,
),
],
);
for i in decode_indices_ {
match i {
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)),
0 => api_that_decoded = Some(
flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(
&api_that,
),
),
_ => unreachable!(),
}
}
let api_that = api_that_decoded.unwrap();
crate::bindings::BindingLiquidSdk::empty_wallet_cache(&api_that)
})())
} })
},
)
}
fn wire__crate__bindings__BindingLiquidSdk_get_info_impl(
port_: flutter_rust_bridge::for_generated::MessagePort,
@@ -137,19 +174,19 @@ fn wire__crate__bindings__BindingLiquidSdk_get_info_impl(
>,
req: impl CstDecode<crate::model::GetInfoRequest>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_get_info", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_req = req.cst_decode(); move |context| {
transform_result_dco((move || {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::<flutter_rust_bridge::for_generated::DcoCodec,_,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_get_info", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_req = req.cst_decode(); move |context| async move {
transform_result_dco((move || async move {
let mut api_that_decoded = None;
let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]);
for i in decode_indices_ {
match i {
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)),
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await),
_ => unreachable!(),
}
}
let api_that = api_that_decoded.unwrap();
crate::bindings::BindingLiquidSdk::get_info(&api_that, api_req)
})())
crate::bindings::BindingLiquidSdk::get_info(&api_that, api_req).await
})().await)
} })
}
fn wire__crate__bindings__BindingLiquidSdk_list_payments_impl(
@@ -158,19 +195,19 @@ fn wire__crate__bindings__BindingLiquidSdk_list_payments_impl(
RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<BindingLiquidSdk>>,
>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_list_payments", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode(); move |context| {
transform_result_dco((move || {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::<flutter_rust_bridge::for_generated::DcoCodec,_,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_list_payments", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode(); move |context| async move {
transform_result_dco((move || async move {
let mut api_that_decoded = None;
let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]);
for i in decode_indices_ {
match i {
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)),
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await),
_ => unreachable!(),
}
}
let api_that = api_that_decoded.unwrap();
crate::bindings::BindingLiquidSdk::list_payments(&api_that)
})())
crate::bindings::BindingLiquidSdk::list_payments(&api_that).await
})().await)
} })
}
fn wire__crate__bindings__BindingLiquidSdk_prepare_receive_payment_impl(
@@ -180,19 +217,19 @@ fn wire__crate__bindings__BindingLiquidSdk_prepare_receive_payment_impl(
>,
req: impl CstDecode<crate::model::PrepareReceiveRequest>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_prepare_receive_payment", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_req = req.cst_decode(); move |context| {
transform_result_dco((move || {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::<flutter_rust_bridge::for_generated::DcoCodec,_,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_prepare_receive_payment", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_req = req.cst_decode(); move |context| async move {
transform_result_dco((move || async move {
let mut api_that_decoded = None;
let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]);
for i in decode_indices_ {
match i {
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)),
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await),
_ => unreachable!(),
}
}
let api_that = api_that_decoded.unwrap();
crate::bindings::BindingLiquidSdk::prepare_receive_payment(&api_that, api_req)
})())
crate::bindings::BindingLiquidSdk::prepare_receive_payment(&api_that, api_req).await
})().await)
} })
}
fn wire__crate__bindings__BindingLiquidSdk_prepare_send_payment_impl(
@@ -202,19 +239,19 @@ fn wire__crate__bindings__BindingLiquidSdk_prepare_send_payment_impl(
>,
req: impl CstDecode<crate::model::PrepareSendRequest>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_prepare_send_payment", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_req = req.cst_decode(); move |context| {
transform_result_dco((move || {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::<flutter_rust_bridge::for_generated::DcoCodec,_,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_prepare_send_payment", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_req = req.cst_decode(); move |context| async move {
transform_result_dco((move || async move {
let mut api_that_decoded = None;
let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]);
for i in decode_indices_ {
match i {
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)),
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await),
_ => unreachable!(),
}
}
let api_that = api_that_decoded.unwrap();
crate::bindings::BindingLiquidSdk::prepare_send_payment(&api_that, api_req)
})())
crate::bindings::BindingLiquidSdk::prepare_send_payment(&api_that, api_req).await
})().await)
} })
}
fn wire__crate__bindings__BindingLiquidSdk_receive_payment_impl(
@@ -224,42 +261,61 @@ fn wire__crate__bindings__BindingLiquidSdk_receive_payment_impl(
>,
req: impl CstDecode<crate::model::PrepareReceiveResponse>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_receive_payment", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_req = req.cst_decode(); move |context| {
transform_result_dco((move || {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::<flutter_rust_bridge::for_generated::DcoCodec,_,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_receive_payment", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_req = req.cst_decode(); move |context| async move {
transform_result_dco((move || async move {
let mut api_that_decoded = None;
let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]);
for i in decode_indices_ {
match i {
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)),
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await),
_ => unreachable!(),
}
}
let api_that = api_that_decoded.unwrap();
crate::bindings::BindingLiquidSdk::receive_payment(&api_that, api_req)
})())
crate::bindings::BindingLiquidSdk::receive_payment(&api_that, api_req).await
})().await)
} })
}
fn wire__crate__bindings__BindingLiquidSdk_restore_impl(
port_: flutter_rust_bridge::for_generated::MessagePort,
that: impl CstDecode<
RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<BindingLiquidSdk>>,
>,
req: impl CstDecode<crate::model::RestoreRequest>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_restore", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_req = req.cst_decode(); move |context| {
) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::<flutter_rust_bridge::for_generated::DcoCodec, _>(
flutter_rust_bridge::for_generated::TaskInfo {
debug_name: "BindingLiquidSdk_restore",
port: None,
mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync,
},
move || {
let api_that = that.cst_decode();
let api_req = req.cst_decode();
transform_result_dco((move || {
let mut api_that_decoded = None;
let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]);
let decode_indices_ =
flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(
vec![
flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(
&api_that, 0, false,
),
],
);
for i in decode_indices_ {
match i {
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)),
0 => api_that_decoded = Some(
flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(
&api_that,
),
),
_ => unreachable!(),
}
}
let api_that = api_that_decoded.unwrap();
crate::bindings::BindingLiquidSdk::restore(&api_that, api_req)
})())
} })
},
)
}
fn wire__crate__bindings__BindingLiquidSdk_send_payment_impl(
port_: flutter_rust_bridge::for_generated::MessagePort,
@@ -268,19 +324,19 @@ fn wire__crate__bindings__BindingLiquidSdk_send_payment_impl(
>,
req: impl CstDecode<crate::model::PrepareSendResponse>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_send_payment", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_req = req.cst_decode(); move |context| {
transform_result_dco((move || {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::<flutter_rust_bridge::for_generated::DcoCodec,_,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_send_payment", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode();let api_req = req.cst_decode(); move |context| async move {
transform_result_dco((move || async move {
let mut api_that_decoded = None;
let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]);
for i in decode_indices_ {
match i {
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)),
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await),
_ => unreachable!(),
}
}
let api_that = api_that_decoded.unwrap();
crate::bindings::BindingLiquidSdk::send_payment(&api_that, api_req)
})())
crate::bindings::BindingLiquidSdk::send_payment(&api_that, api_req).await
})().await)
} })
}
fn wire__crate__bindings__BindingLiquidSdk_sync_impl(
@@ -289,26 +345,26 @@ fn wire__crate__bindings__BindingLiquidSdk_sync_impl(
RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<BindingLiquidSdk>>,
>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_sync", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode(); move |context| {
transform_result_dco((move || {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::<flutter_rust_bridge::for_generated::DcoCodec,_,_,_>(flutter_rust_bridge::for_generated::TaskInfo{ debug_name: "BindingLiquidSdk_sync", port: Some(port_), mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal }, move || { let api_that = that.cst_decode(); move |context| async move {
transform_result_dco((move || async move {
let mut api_that_decoded = None;
let decode_indices_ = flutter_rust_bridge::for_generated::rust_auto_opaque_decode_compute_order(vec![flutter_rust_bridge::for_generated::rust_auto_opaque_lock_order_info(&api_that, 0, false)]);
for i in decode_indices_ {
match i {
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_sync_ref(&api_that)),
0 => api_that_decoded = Some(flutter_rust_bridge::for_generated::rust_auto_opaque_decode_async_ref(&api_that).await),
_ => unreachable!(),
}
}
let api_that = api_that_decoded.unwrap();
crate::bindings::BindingLiquidSdk::sync(&api_that)
})())
crate::bindings::BindingLiquidSdk::sync(&api_that).await
})().await)
} })
}
fn wire__crate__bindings__connect_impl(
port_: flutter_rust_bridge::for_generated::MessagePort,
req: impl CstDecode<crate::model::ConnectRequest>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec, _, _>(
FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::<flutter_rust_bridge::for_generated::DcoCodec, _, _, _>(
flutter_rust_bridge::for_generated::TaskInfo {
debug_name: "connect",
port: Some(port_),
@@ -316,7 +372,11 @@ fn wire__crate__bindings__connect_impl(
},
move || {
let api_req = req.cst_decode();
move |context| transform_result_dco((move || crate::bindings::connect(api_req))())
move |context| async move {
transform_result_dco(
(move || async move { crate::bindings::connect(api_req).await })().await,
)
}
},
)
}

View File

@@ -33,13 +33,13 @@ class BindingLiquidSdk extends RustOpaque {
Stream<LiquidSdkEvent> addEventListener({dynamic hint}) =>
RustLib.instance.api.crateBindingsBindingLiquidSdkAddEventListener(that: this, hint: hint);
Future<void> backup({required BackupRequest req, dynamic hint}) =>
void backup({required BackupRequest req, dynamic hint}) =>
RustLib.instance.api.crateBindingsBindingLiquidSdkBackup(that: this, req: req, hint: hint);
Future<void> disconnect({dynamic hint}) =>
RustLib.instance.api.crateBindingsBindingLiquidSdkDisconnect(that: this, hint: hint);
Future<void> emptyWalletCache({dynamic hint}) =>
void emptyWalletCache({dynamic hint}) =>
RustLib.instance.api.crateBindingsBindingLiquidSdkEmptyWalletCache(that: this, hint: hint);
Future<GetInfoResponse> getInfo({required GetInfoRequest req, dynamic hint}) =>
@@ -58,7 +58,7 @@ class BindingLiquidSdk extends RustOpaque {
Future<ReceivePaymentResponse> receivePayment({required PrepareReceiveResponse req, dynamic hint}) =>
RustLib.instance.api.crateBindingsBindingLiquidSdkReceivePayment(that: this, req: req, hint: hint);
Future<void> restore({required RestoreRequest req, dynamic hint}) =>
void restore({required RestoreRequest req, dynamic hint}) =>
RustLib.instance.api.crateBindingsBindingLiquidSdkRestore(that: this, req: req, hint: hint);
Future<SendPaymentResponse> sendPayment({required PrepareSendResponse req, dynamic hint}) =>

View File

@@ -66,12 +66,12 @@ abstract class RustLibApi extends BaseApi {
Stream<LiquidSdkEvent> crateBindingsBindingLiquidSdkAddEventListener(
{required BindingLiquidSdk that, dynamic hint});
Future<void> crateBindingsBindingLiquidSdkBackup(
void crateBindingsBindingLiquidSdkBackup(
{required BindingLiquidSdk that, required BackupRequest req, dynamic hint});
Future<void> crateBindingsBindingLiquidSdkDisconnect({required BindingLiquidSdk that, dynamic hint});
Future<void> crateBindingsBindingLiquidSdkEmptyWalletCache({required BindingLiquidSdk that, dynamic hint});
void crateBindingsBindingLiquidSdkEmptyWalletCache({required BindingLiquidSdk that, dynamic hint});
Future<GetInfoResponse> crateBindingsBindingLiquidSdkGetInfo(
{required BindingLiquidSdk that, required GetInfoRequest req, dynamic hint});
@@ -88,7 +88,7 @@ abstract class RustLibApi extends BaseApi {
Future<ReceivePaymentResponse> crateBindingsBindingLiquidSdkReceivePayment(
{required BindingLiquidSdk that, required PrepareReceiveResponse req, dynamic hint});
Future<void> crateBindingsBindingLiquidSdkRestore(
void crateBindingsBindingLiquidSdkRestore(
{required BindingLiquidSdk that, required RestoreRequest req, dynamic hint});
Future<SendPaymentResponse> crateBindingsBindingLiquidSdkSendPayment(
@@ -145,15 +145,15 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
);
@override
Future<void> crateBindingsBindingLiquidSdkBackup(
void crateBindingsBindingLiquidSdkBackup(
{required BindingLiquidSdk that, required BackupRequest req, dynamic hint}) {
return handler.executeNormal(NormalTask(
callFfi: (port_) {
return handler.executeSync(SyncTask(
callFfi: () {
var arg0 =
cst_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBindingLiquidSdk(
that);
var arg1 = cst_encode_box_autoadd_backup_request(req);
return wire.wire__crate__bindings__BindingLiquidSdk_backup(port_, arg0, arg1);
return wire.wire__crate__bindings__BindingLiquidSdk_backup(arg0, arg1);
},
codec: DcoCodec(
decodeSuccessData: dco_decode_unit,
@@ -197,13 +197,13 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
);
@override
Future<void> crateBindingsBindingLiquidSdkEmptyWalletCache({required BindingLiquidSdk that, dynamic hint}) {
return handler.executeNormal(NormalTask(
callFfi: (port_) {
void crateBindingsBindingLiquidSdkEmptyWalletCache({required BindingLiquidSdk that, dynamic hint}) {
return handler.executeSync(SyncTask(
callFfi: () {
var arg0 =
cst_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBindingLiquidSdk(
that);
return wire.wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache(port_, arg0);
return wire.wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache(arg0);
},
codec: DcoCodec(
decodeSuccessData: dco_decode_unit,
@@ -356,15 +356,15 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
);
@override
Future<void> crateBindingsBindingLiquidSdkRestore(
void crateBindingsBindingLiquidSdkRestore(
{required BindingLiquidSdk that, required RestoreRequest req, dynamic hint}) {
return handler.executeNormal(NormalTask(
callFfi: (port_) {
return handler.executeSync(SyncTask(
callFfi: () {
var arg0 =
cst_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBindingLiquidSdk(
that);
var arg1 = cst_encode_box_autoadd_restore_request(req);
return wire.wire__crate__bindings__BindingLiquidSdk_restore(port_, arg0, arg1);
return wire.wire__crate__bindings__BindingLiquidSdk_restore(arg0, arg1);
},
codec: DcoCodec(
decodeSuccessData: dco_decode_unit,

View File

@@ -1026,13 +1026,11 @@ class RustLibWire implements BaseWire {
_wire__crate__bindings__BindingLiquidSdk_add_event_listenerPtr
.asFunction<void Function(int, int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
void wire__crate__bindings__BindingLiquidSdk_backup(
int port_,
WireSyncRust2DartDco wire__crate__bindings__BindingLiquidSdk_backup(
int that,
ffi.Pointer<wire_cst_backup_request> req,
) {
return _wire__crate__bindings__BindingLiquidSdk_backup(
port_,
that,
req,
);
@@ -1040,11 +1038,11 @@ class RustLibWire implements BaseWire {
late final _wire__crate__bindings__BindingLiquidSdk_backupPtr = _lookup<
ffi
.NativeFunction<ffi.Void Function(ffi.Int64, ffi.UintPtr, ffi.Pointer<wire_cst_backup_request>)>>(
.NativeFunction<WireSyncRust2DartDco Function(ffi.UintPtr, ffi.Pointer<wire_cst_backup_request>)>>(
'frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_backup');
late final _wire__crate__bindings__BindingLiquidSdk_backup =
_wire__crate__bindings__BindingLiquidSdk_backupPtr
.asFunction<void Function(int, int, ffi.Pointer<wire_cst_backup_request>)>();
.asFunction<WireSyncRust2DartDco Function(int, ffi.Pointer<wire_cst_backup_request>)>();
void wire__crate__bindings__BindingLiquidSdk_disconnect(
int port_,
@@ -1062,21 +1060,20 @@ class RustLibWire implements BaseWire {
late final _wire__crate__bindings__BindingLiquidSdk_disconnect =
_wire__crate__bindings__BindingLiquidSdk_disconnectPtr.asFunction<void Function(int, int)>();
void wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache(
int port_,
WireSyncRust2DartDco wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache(
int that,
) {
return _wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache(
port_,
that,
);
}
late final _wire__crate__bindings__BindingLiquidSdk_empty_wallet_cachePtr =
_lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int64, ffi.UintPtr)>>(
_lookup<ffi.NativeFunction<WireSyncRust2DartDco Function(ffi.UintPtr)>>(
'frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache');
late final _wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache =
_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cachePtr.asFunction<void Function(int, int)>();
_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cachePtr
.asFunction<WireSyncRust2DartDco Function(int)>();
void wire__crate__bindings__BindingLiquidSdk_get_info(
int port_,
@@ -1174,13 +1171,11 @@ class RustLibWire implements BaseWire {
_wire__crate__bindings__BindingLiquidSdk_receive_paymentPtr
.asFunction<void Function(int, int, ffi.Pointer<wire_cst_prepare_receive_response>)>();
void wire__crate__bindings__BindingLiquidSdk_restore(
int port_,
WireSyncRust2DartDco wire__crate__bindings__BindingLiquidSdk_restore(
int that,
ffi.Pointer<wire_cst_restore_request> req,
) {
return _wire__crate__bindings__BindingLiquidSdk_restore(
port_,
that,
req,
);
@@ -1188,11 +1183,11 @@ class RustLibWire implements BaseWire {
late final _wire__crate__bindings__BindingLiquidSdk_restorePtr = _lookup<
ffi
.NativeFunction<ffi.Void Function(ffi.Int64, ffi.UintPtr, ffi.Pointer<wire_cst_restore_request>)>>(
.NativeFunction<WireSyncRust2DartDco Function(ffi.UintPtr, ffi.Pointer<wire_cst_restore_request>)>>(
'frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_restore');
late final _wire__crate__bindings__BindingLiquidSdk_restore =
_wire__crate__bindings__BindingLiquidSdk_restorePtr
.asFunction<void Function(int, int, ffi.Pointer<wire_cst_restore_request>)>();
.asFunction<WireSyncRust2DartDco Function(int, ffi.Pointer<wire_cst_restore_request>)>();
void wire__crate__bindings__BindingLiquidSdk_send_payment(
int port_,

View File

@@ -5,7 +5,6 @@ import 'package:flutter_breez_liquid/flutter_breez_liquid.dart';
import 'package:flutter_breez_liquid_example/routes/home/widgets/balance.dart';
import 'package:flutter_breez_liquid_example/routes/home/widgets/bottom_app_bar.dart';
import 'package:flutter_breez_liquid_example/routes/home/widgets/drawer.dart';
import 'package:flutter_breez_liquid_example/routes/home/widgets/mnemonics_dialog.dart';
import 'package:flutter_breez_liquid_example/routes/home/widgets/payment_list/payment_list.dart';
import 'package:flutter_breez_liquid_example/routes/home/widgets/qr_scan_action_button.dart';
import 'package:flutter_breez_liquid_example/services/credentials_manager.dart';
@@ -61,7 +60,7 @@ class _HomePageState extends State<HomePage> {
);
},
),
actions: [],
actions: const [],
),
body: LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {

View File

@@ -19,7 +19,7 @@ class Balance extends StatelessWidget {
return const Center(child: Text('Loading...'));
}
if (walletInfoSnapshot.requireData.balanceSat.isNaN) {
if (walletInfoSnapshot.requireData.balanceSat != BigInt.zero) {
return const Center(child: Text('No balance.'));
}
final walletInfo = walletInfoSnapshot.data!;
@@ -34,13 +34,13 @@ class Balance extends StatelessWidget {
"${walletInfo.balanceSat} sats",
style: Theme.of(context).textTheme.headlineLarge?.copyWith(color: Colors.blue),
),
if (walletInfo.pendingReceiveSat != 0) ...[
if (walletInfo.pendingReceiveSat != BigInt.zero) ...[
Text(
"Pending Receive: ${walletInfo.pendingReceiveSat} sats",
style: Theme.of(context).textTheme.labelSmall?.copyWith(color: Colors.blueGrey),
),
],
if (walletInfo.pendingSendSat != 0) ...[
if (walletInfo.pendingSendSat != BigInt.zero) ...[
Text(
"Pending Send: ${walletInfo.pendingSendSat} sats",
style: Theme.of(context).textTheme.labelSmall?.copyWith(color: Colors.blueGrey),

View File

@@ -38,7 +38,7 @@ class _HomePageDrawerState extends State<HomePageDrawer> {
try {
debugPrint("Creating backup.");
// TODO: Backup API should return backup file or it's filepath
await widget.liquidSDK.backup();
widget.liquidSDK.backup(req: const BackupRequest());
debugPrint("Created backup.");
} catch (e) {
final errMsg = "Failed to create backup. $e";
@@ -61,7 +61,7 @@ class _HomePageDrawerState extends State<HomePageDrawer> {
debugPrint("Restoring backup.");
// TODO: Select backup file to restore
RestoreRequest req = const RestoreRequest();
await widget.liquidSDK.restore(req: req);
widget.liquidSDK.restore(req: req);
debugPrint("Restored backup.");
} catch (e) {
final errMsg = "Failed to restore backup. $e";
@@ -80,7 +80,7 @@ class _HomePageDrawerState extends State<HomePageDrawer> {
onTap: () async {
try {
debugPrint("Emptying wallet cache.");
await widget.liquidSDK.emptyWalletCache();
widget.liquidSDK.emptyWalletCache();
debugPrint("Emptied wallet cache.");
} catch (e) {
final errMsg = "Failed to empty wallet cache. $e";

View File

@@ -131,12 +131,13 @@ class _ReceivePaymentDialogState extends State<ReceivePaymentDialog> {
setState(() => creatingInvoice = true);
int amountSat = int.parse(payerAmountController.text);
PrepareReceiveRequest prepareReceiveReq =
PrepareReceiveRequest(payerAmountSat: amountSat);
PrepareReceiveResponse req =
await widget.liquidSDK.prepareReceivePayment(req: prepareReceiveReq);
PrepareReceiveRequest(payerAmountSat: BigInt.from(amountSat));
PrepareReceiveResponse req = await widget.liquidSDK.prepareReceivePayment(
req: prepareReceiveReq,
);
setState(() {
payerAmountSat = req.payerAmountSat;
feesSat = req.feesSat;
payerAmountSat = req.payerAmountSat.toInt();
feesSat = req.feesSat.toInt();
});
ReceivePaymentResponse resp = await widget.liquidSDK.receivePayment(req: req);
debugPrint(

View File

@@ -152,10 +152,10 @@ packages:
dependency: "direct main"
description:
name: flutter_rust_bridge
sha256: "915d48099928282c80f7f13ad7b9bbf5808bd3c2a1ec3dc76a749aefde3025ae"
sha256: efb018e387c5e844095e35e9d6c6bd1610c49f25de109f4988b7c45aeca60a9a
url: "https://pub.dev"
source: hosted
version: "2.0.0-dev.35"
version: "2.0.0-dev.36"
flutter_secure_storage:
dependency: "direct main"
description:

View File

@@ -57,13 +57,11 @@ class FlutterBreezLiquidBindings {
_frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_add_event_listenerPtr
.asFunction<void Function(int, int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_backup(
int port_,
WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_backup(
int that,
ffi.Pointer<wire_cst_backup_request> req,
) {
return _frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_backup(
port_,
that,
req,
);
@@ -71,11 +69,11 @@ class FlutterBreezLiquidBindings {
late final _frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_backupPtr = _lookup<
ffi
.NativeFunction<ffi.Void Function(ffi.Int64, ffi.UintPtr, ffi.Pointer<wire_cst_backup_request>)>>(
.NativeFunction<WireSyncRust2DartDco Function(ffi.UintPtr, ffi.Pointer<wire_cst_backup_request>)>>(
'frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_backup');
late final _frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_backup =
_frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_backupPtr
.asFunction<void Function(int, int, ffi.Pointer<wire_cst_backup_request>)>();
.asFunction<WireSyncRust2DartDco Function(int, ffi.Pointer<wire_cst_backup_request>)>();
void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_disconnect(
int port_,
@@ -94,22 +92,20 @@ class FlutterBreezLiquidBindings {
_frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_disconnectPtr
.asFunction<void Function(int, int)>();
void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache(
int port_,
WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache(
int that,
) {
return _frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache(
port_,
that,
);
}
late final _frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cachePtr =
_lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int64, ffi.UintPtr)>>(
_lookup<ffi.NativeFunction<WireSyncRust2DartDco Function(ffi.UintPtr)>>(
'frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache');
late final _frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cache =
_frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_empty_wallet_cachePtr
.asFunction<void Function(int, int)>();
.asFunction<WireSyncRust2DartDco Function(int)>();
void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_get_info(
int port_,
@@ -209,13 +205,11 @@ class FlutterBreezLiquidBindings {
_frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_receive_paymentPtr
.asFunction<void Function(int, int, ffi.Pointer<wire_cst_prepare_receive_response>)>();
void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_restore(
int port_,
WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_restore(
int that,
ffi.Pointer<wire_cst_restore_request> req,
) {
return _frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_restore(
port_,
that,
req,
);
@@ -223,11 +217,11 @@ class FlutterBreezLiquidBindings {
late final _frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_restorePtr = _lookup<
ffi
.NativeFunction<ffi.Void Function(ffi.Int64, ffi.UintPtr, ffi.Pointer<wire_cst_restore_request>)>>(
.NativeFunction<WireSyncRust2DartDco Function(ffi.UintPtr, ffi.Pointer<wire_cst_restore_request>)>>(
'frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_restore');
late final _frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_restore =
_frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_restorePtr
.asFunction<void Function(int, int, ffi.Pointer<wire_cst_restore_request>)>();
.asFunction<WireSyncRust2DartDco Function(int, ffi.Pointer<wire_cst_restore_request>)>();
void frbgen_breez_liquid_wire__crate__bindings__BindingLiquidSdk_send_payment(
int port_,
@@ -812,4 +806,7 @@ final class wire_cst_send_payment_response extends ffi.Struct {
external wire_cst_payment payment;
}
/// EXTRA BEGIN
typedef WireSyncRust2DartDco = ffi.Pointer<DartCObject>;
const double LIQUID_CLAIM_TX_FEERATE_MSAT = 100.0;