Skip to content

Commit

Permalink
Lazily Sync Transparent History
Browse files Browse the repository at this point in the history
  • Loading branch information
hhanh00 committed Jun 7, 2024
1 parent 9876b35 commit 032f740
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 25 deletions.
20 changes: 19 additions & 1 deletion lib/pages/tx.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:gap/gap.dart';
import 'package:go_router/go_router.dart';
import 'package:warp_api/warp_api.dart';

import '../accounts.dart';
import '../generated/intl/messages.dart';
Expand All @@ -14,7 +15,24 @@ import 'avatar.dart';
import 'utils.dart';
import 'widgets.dart';

class TxPage extends StatelessWidget {
class TxPage extends StatefulWidget {
@override
State<StatefulWidget> createState() => TxPageState();
}

class TxPageState extends State<TxPage> {
@override
void initState() {
super.initState();
syncStatus2.latestHeight?.let((height) {
Future(() async {
final txListUpdated = await WarpApi.transparentSync(aa.coin, aa.id, height);
if (txListUpdated)
aa.update(height); // reload if updated
});
});
}

@override
Widget build(BuildContext context) {
return SortSetting(
Expand Down
2 changes: 1 addition & 1 deletion native/zcash-sync
7 changes: 7 additions & 0 deletions packages/warp_api_ffi/lib/warp_api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,13 @@ class WarpApi {
warp_api_lib.cancel_warp();
}

static Future<bool> transparentSync(int coin, int account, int height) async {
final res = await compute(
(_) => warp_api_lib.transparent_sync(coin, account, height),
null);
return unwrapResultBool(res);
}

static Future<int> getLatestHeight(int coin) async {
return await compute(
(_) => unwrapResultU32(warp_api_lib.get_latest_height(coin)), null);
Expand Down
40 changes: 32 additions & 8 deletions packages/warp_api_ffi/lib/warp_api_generated.dart
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,25 @@ class NativeLibrary {
late final _warp =
_warpPtr.asFunction<CResult_u8 Function(int, int, int, int, int, int)>();

CResult_bool transparent_sync(
int coin,
int account,
int height,
) {
return _transparent_sync(
coin,
account,
height,
);
}

late final _transparent_syncPtr = _lookup<
ffi.NativeFunction<
CResult_bool Function(
ffi.Uint8, ffi.Uint32, ffi.Uint32)>>('transparent_sync');
late final _transparent_sync =
_transparent_syncPtr.asFunction<CResult_bool Function(int, int, int)>();

int is_valid_seed(
int coin,
ffi.Pointer<ffi.Char> seed,
Expand Down Expand Up @@ -1938,8 +1957,8 @@ final class CResult_____c_char extends ffi.Struct {
external int len;
}

final class CResult_u64 extends ffi.Struct {
@ffi.Uint64()
final class CResult_bool extends ffi.Struct {
@bool()
external int value;

external ffi.Pointer<ffi.Char> error;
Expand All @@ -1948,8 +1967,10 @@ final class CResult_u64 extends ffi.Struct {
external int len;
}

final class CResult_bool extends ffi.Struct {
@bool()
typedef bool = ffi.Char;

final class CResult_u64 extends ffi.Struct {
@ffi.Uint64()
external int value;

external ffi.Pointer<ffi.Char> error;
Expand All @@ -1958,7 +1979,6 @@ final class CResult_bool extends ffi.Struct {
external int len;
}

typedef bool = ffi.Char;
typedef DartPostCObjectFnType = ffi.Pointer<ffi.Void>;

const int EXPIRY_HEIGHT_OFFSET = 50;
Expand Down Expand Up @@ -2141,8 +2161,12 @@ const int Swap_VT_FROM_AMOUNT = 12;

const int Swap_VT_FROM_ADDRESS = 14;

const int Swap_VT_TO_CURRENCY = 16;
const int Swap_VT_FROM_IMAGE = 16;

const int Swap_VT_TO_CURRENCY = 18;

const int Swap_VT_TO_AMOUNT = 20;

const int Swap_VT_TO_AMOUNT = 18;
const int Swap_VT_TO_ADDRESS = 22;

const int Swap_VT_TO_ADDRESS = 20;
const int Swap_VT_TO_IMAGE = 24;
28 changes: 14 additions & 14 deletions packages/warp_api_ffi/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -311,26 +311,26 @@ packages:
dependency: transitive
description:
name: leak_tracker
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
url: "https://pub.dev"
source: hosted
version: "10.0.0"
version: "10.0.4"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "3.0.3"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "3.0.1"
logging:
dependency: transitive
description:
Expand Down Expand Up @@ -359,10 +359,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
url: "https://pub.dev"
source: hosted
version: "1.11.0"
version: "1.12.0"
mime:
dependency: transitive
description:
Expand Down Expand Up @@ -516,10 +516,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
url: "https://pub.dev"
source: hosted
version: "0.6.1"
version: "0.7.0"
timing:
dependency: transitive
description:
Expand Down Expand Up @@ -548,10 +548,10 @@ packages:
dependency: transitive
description:
name: vm_service
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
url: "https://pub.dev"
source: hosted
version: "13.0.0"
version: "14.2.1"
watcher:
dependency: transitive
description:
Expand Down Expand Up @@ -585,5 +585,5 @@ packages:
source: hosted
version: "2.1.1"
sdks:
dart: ">=3.2.0-0 <4.0.0"
flutter: ">=3.0.0"
dart: ">=3.3.0 <4.0.0"
flutter: ">=3.18.0-18.0.pre.54"
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.6.0+530
version: 1.6.0+531

environment:
sdk: ">=3.0.0 <4.0.0"
Expand Down

0 comments on commit 032f740

Please sign in to comment.