Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions lib/src/rust/api/sync.dart
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ Future<void> rewindSync(
Future<SyncHeight> getDbHeight({required Coin c}) =>
RustLib.instance.api.crateApiSyncGetDbHeight(c: c);

Future<void> fetchTxDetails({required Coin c}) =>
RustLib.instance.api.crateApiSyncFetchTxDetails(c: c);
Future<void> fetchTxDetails({required int account, required Coin c}) =>
RustLib.instance.api.crateApiSyncFetchTxDetails(account: account, c: c);

Future<void> cacheBlockTime({required int height, required Coin c}) =>
RustLib.instance.api.crateApiSyncCacheBlockTime(height: height, c: c);
Expand Down
11 changes: 7 additions & 4 deletions lib/src/rust/frb_generated.dart
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,8 @@ abstract class RustLibApi extends BaseApi {
Future<List<TAddressTxCount>> crateApiAccountFetchTransparentAddressTxCount(
{required Coin c});

Future<void> crateApiSyncFetchTxDetails({required Coin c});
Future<void> crateApiSyncFetchTxDetails(
{required int account, required Coin c});

Future<void> crateApiTransactionFillMissingTxPrices(
{required String api, required Coin c});
Expand Down Expand Up @@ -1986,11 +1987,13 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
);

@override
Future<void> crateApiSyncFetchTxDetails({required Coin c}) {
Future<void> crateApiSyncFetchTxDetails(
{required int account, required Coin c}) {
return handler.executeNormal(
NormalTask(
callFfi: (port_) {
final serializer = SseSerializer(generalizedFrbRustBinding);
sse_encode_u_32(account, serializer);
sse_encode_box_autoadd_coin(c, serializer);
pdeCallFfi(generalizedFrbRustBinding, serializer,
funcId: 49, port: port_);
Expand All @@ -2000,15 +2003,15 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
decodeErrorData: sse_decode_AnyhowException,
),
constMeta: kCrateApiSyncFetchTxDetailsConstMeta,
argValues: [c],
argValues: [account, c],
apiImpl: this,
),
);
}

TaskConstMeta get kCrateApiSyncFetchTxDetailsConstMeta => const TaskConstMeta(
debugName: "fetch_tx_details",
argNames: ["c"],
argNames: ["account", "c"],
);

@override
Expand Down
6 changes: 4 additions & 2 deletions lib/store.dart
Original file line number Diff line number Diff line change
Expand Up @@ -688,10 +688,12 @@ class SynchronizerNotifier extends _$SynchronizerNotifier {
ref.invalidate(accountProvider);
if (WidgetsBinding.instance.lifecycleState == AppLifecycleState.resumed) showSnackbar("Synchronization Completed");
logger.i("Synchronization Completed");
// Fetch tx details in the background
// Fetch tx details in the background for all accounts
unawaited(Future(() async {
try {
await fetchTxDetails(c: c);
for (final account in accounts) {
await fetchTxDetails(account: account.id, c: c);
}
ref.invalidate(accountProvider);
} on AnyhowException catch (e) {
logger.e("Error fetching tx details: $e");
Expand Down
4 changes: 2 additions & 2 deletions lib/store.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions rust/src/api/sync.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,10 @@ pub async fn get_db_height(c: &Coin) -> Result<SyncHeight> {
}

#[cfg_attr(feature = "flutter", frb)]
pub async fn fetch_tx_details(c: &Coin) -> Result<()> {
pub async fn fetch_tx_details(account: u32, c: &Coin) -> Result<()> {
let mut connection = c.get_connection().await?;
let mut client = c.client().await?;
crate::memo::fetch_tx_details(&c.network(), &mut *connection, &mut client, c.account).await?;
crate::memo::fetch_tx_details(&c.network(), &mut *connection, &mut client, account).await?;
Ok(())
}

Expand Down
4 changes: 3 additions & 1 deletion rust/src/frb_generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2110,12 +2110,14 @@ fn wire__crate__api__sync__fetch_tx_details_impl(
};
let mut deserializer =
flutter_rust_bridge::for_generated::SseDeserializer::new(message);
let api_account = <u32>::sse_decode(&mut deserializer);
let api_c = <crate::api::coin::Coin>::sse_decode(&mut deserializer);
deserializer.end();
move |context| async move {
transform_result_sse::<_, flutter_rust_bridge::for_generated::anyhow::Error>(
(move || async move {
let output_ok = crate::api::sync::fetch_tx_details(&api_c).await?;
let output_ok =
crate::api::sync::fetch_tx_details(api_account, &api_c).await?;
Ok(output_ok)
})()
.await,
Expand Down
Loading