diff --git a/lib/pages/tx.dart b/lib/pages/tx.dart index c46713b7..75a13977 100644 --- a/lib/pages/tx.dart +++ b/lib/pages/tx.dart @@ -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'; @@ -14,7 +15,24 @@ import 'avatar.dart'; import 'utils.dart'; import 'widgets.dart'; -class TxPage extends StatelessWidget { +class TxPage extends StatefulWidget { + @override + State createState() => TxPageState(); +} + +class TxPageState extends State { + @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( diff --git a/native/zcash-sync b/native/zcash-sync index c9246c95..201f30fd 160000 --- a/native/zcash-sync +++ b/native/zcash-sync @@ -1 +1 @@ -Subproject commit c9246c9554c1db381b56037e542cbbbb7d823511 +Subproject commit 201f30fd170419530f88d3ce4d270819d0cb5c59 diff --git a/packages/warp_api_ffi/lib/warp_api.dart b/packages/warp_api_ffi/lib/warp_api.dart index ded93475..5ab76fff 100644 --- a/packages/warp_api_ffi/lib/warp_api.dart +++ b/packages/warp_api_ffi/lib/warp_api.dart @@ -180,6 +180,13 @@ class WarpApi { warp_api_lib.cancel_warp(); } + static Future 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 getLatestHeight(int coin) async { return await compute( (_) => unwrapResultU32(warp_api_lib.get_latest_height(coin)), null); diff --git a/packages/warp_api_ffi/lib/warp_api_generated.dart b/packages/warp_api_ffi/lib/warp_api_generated.dart index 531d3e50..eab2f8ad 100644 --- a/packages/warp_api_ffi/lib/warp_api_generated.dart +++ b/packages/warp_api_ffi/lib/warp_api_generated.dart @@ -395,6 +395,25 @@ class NativeLibrary { late final _warp = _warpPtr.asFunction(); + 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(); + int is_valid_seed( int coin, ffi.Pointer seed, @@ -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 error; @@ -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 error; @@ -1958,7 +1979,6 @@ final class CResult_bool extends ffi.Struct { external int len; } -typedef bool = ffi.Char; typedef DartPostCObjectFnType = ffi.Pointer; const int EXPIRY_HEIGHT_OFFSET = 50; @@ -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; diff --git a/packages/warp_api_ffi/pubspec.lock b/packages/warp_api_ffi/pubspec.lock index 9c067b8a..eec3ffee 100644 --- a/packages/warp_api_ffi/pubspec.lock +++ b/packages/warp_api_ffi/pubspec.lock @@ -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: @@ -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: @@ -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: @@ -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: @@ -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" diff --git a/pubspec.yaml b/pubspec.yaml index afd5fa44..e9a3cef4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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"