From d57249b963a395588fac4617b57a1d84b038b182 Mon Sep 17 00:00:00 2001 From: Tritonn204 Date: Sat, 6 Dec 2025 23:43:14 -0800 Subject: [PATCH] misc: update Xelis FFI lib, update deps to support flutter 3.35 out of the box (since sdk pinned to 3.9.0+ already) --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/settings.gradle | 2 +- lib/wallets/wallet/impl/xelis_wallet.dart | 6 +- .../wallet/intermediate/lib_xelis_wallet.dart | 3 +- .../interfaces/lib_xelis_interface.dart | 10 +- pubspec.lock | 223 +++++++++--------- scripts/android/build_all.sh | 4 +- .../templates/pubspec.template.yaml | 4 +- scripts/rust_version.sh | 8 +- ...XEL_lib_xelis_interface_impl.template.dart | 86 +++++-- 10 files changed, 201 insertions(+), 147 deletions(-) diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index afa1e8eb0..efdcc4ace 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip diff --git a/android/settings.gradle b/android/settings.gradle index 04c37e5f2..86b9d4c7e 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version '8.7.0' apply false + id "com.android.application" version '8.9.1' apply false id "org.jetbrains.kotlin.android" version "2.2.20" apply false } diff --git a/lib/wallets/wallet/impl/xelis_wallet.dart b/lib/wallets/wallet/impl/xelis_wallet.dart index 9423b0697..66b551bb8 100644 --- a/lib/wallets/wallet/impl/xelis_wallet.dart +++ b/lib/wallets/wallet/impl/xelis_wallet.dart @@ -57,7 +57,7 @@ class XelisWallet extends LibXelisWallet { seed: mnemonic, network: cryptoCurrency.network, precomputedTablesPath: tablePath, - l1Low: tableState.currentSize.isLow, + stack_l1Low: tableState.currentSize.isLow, ); await secureStorageInterface.write( @@ -91,7 +91,7 @@ class XelisWallet extends LibXelisWallet { password: password, network: cryptoCurrency.network, precomputedTablesPath: tablePath, - l1Low: tableState.currentSize.isLow, + stack_l1Low: tableState.currentSize.isLow, ); final mnemonic = await libXelis.getSeed(wallet); @@ -123,7 +123,7 @@ class XelisWallet extends LibXelisWallet { password: password!, network: cryptoCurrency.network, precomputedTablesPath: tablePath, - l1Low: tableState.currentSize.isLow, + stack_l1Low: tableState.currentSize.isLow, ); await _finishInit(); diff --git a/lib/wallets/wallet/intermediate/lib_xelis_wallet.dart b/lib/wallets/wallet/intermediate/lib_xelis_wallet.dart index 6b276c21a..0cfac6d1b 100644 --- a/lib/wallets/wallet/intermediate/lib_xelis_wallet.dart +++ b/lib/wallets/wallet/intermediate/lib_xelis_wallet.dart @@ -226,11 +226,10 @@ extension XelisTableManagement on LibXelisWallet { try { Logging.instance.i("Xelis: Generating large tables in background"); - final tablePath = await getPrecomputedTablesPath(); await libXelis.updateTables( precomputedTablesPath: tablePath, - l1Low: state.desiredSize.isLow, + stack_l1Low: state.desiredSize.isLow, ); await setTableState( diff --git a/lib/wl_gen/interfaces/lib_xelis_interface.dart b/lib/wl_gen/interfaces/lib_xelis_interface.dart index ecf76a435..494b698b3 100644 --- a/lib/wl_gen/interfaces/lib_xelis_interface.dart +++ b/lib/wl_gen/interfaces/lib_xelis_interface.dart @@ -1,5 +1,5 @@ import 'package:flutter/foundation.dart'; - + import '../../providers/progress_report/xelis_table_progress_provider.dart'; import '../../wallets/crypto_currency/crypto_currency.dart'; @@ -32,7 +32,7 @@ abstract class LibXelisInterface { Future updateTables({ required String precomputedTablesPath, - required bool l1Low, + required bool stack_l1Low, }); Future getSeed(OpaqueXelisWallet wallet); @@ -46,7 +46,7 @@ abstract class LibXelisInterface { String? seed, String? privateKey, String? precomputedTablesPath, - bool? l1Low, + bool? stack_l1Low, }); Future openXelisWallet( @@ -56,7 +56,7 @@ abstract class LibXelisInterface { required String password, required CryptoCurrencyNetwork network, String? precomputedTablesPath, - bool? l1Low, + bool? stack_l1Low, }); String getAddress(OpaqueXelisWallet wallet); @@ -225,6 +225,8 @@ enum XelisTableSize { low, full; + // TODO: add more granular table size management interface + // for now, just patching the old system into the new FFI API bool get isLow => this == XelisTableSize.low; static XelisTableSize get platformDefault { diff --git a/pubspec.lock b/pubspec.lock index fd2dde370..e8ce4e637 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: dd3d2ad434b9510001d089e8de7556d50c834481b9abc2891a0184a8493a19dc + sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d url: "https://pub.dev" source: hosted - version: "89.0.0" + version: "91.0.0" analyzer: dependency: "direct dev" description: name: analyzer - sha256: c22b6e7726d1f9e5db58c7251606076a71ca0dbcf76116675edfadbec0c9e875 + sha256: f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08 url: "https://pub.dev" source: hosted - version: "8.2.0" + version: "8.4.1" another_flushbar: dependency: "direct main" description: @@ -53,10 +53,10 @@ packages: dependency: "direct main" description: name: async - sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 + sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" url: "https://pub.dev" source: hosted - version: "2.12.0" + version: "2.13.0" basic_utils: dependency: "direct main" description: @@ -170,10 +170,10 @@ packages: dependency: transitive description: name: build - sha256: "7d95cbbb1526ab5ae977df9b4cc660963b9b27f6d1075c0b34653868911385e4" + sha256: ce76b1d48875e3233fde17717c23d1f60a91cc631597e49a400c89b475395b1d url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.1.0" build_cli_annotations: dependency: transitive description: @@ -186,42 +186,42 @@ packages: dependency: transitive description: name: build_config - sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" + sha256: "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.2.0" build_daemon: dependency: transitive description: name: build_daemon - sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957 url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.1.1" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: "38c9c339333a09b090a638849a4c56e70a404c6bdd3b511493addfbc113b60c2" + sha256: d1d57f7807debd7349b4726a19fd32ec8bc177c71ad0febf91a20f84cd2d4b46 url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.0.3" build_runner: dependency: "direct dev" description: name: build_runner - sha256: b971d4a1c789eba7be3e6fe6ce5e5b50fd3719e3cb485b3fad6d04358304351d + sha256: b24597fceb695969d47025c958f3837f9f0122e237c6a22cb082a5ac66c3ca30 url: "https://pub.dev" source: hosted - version: "2.6.0" + version: "2.7.1" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: c04e612ca801cd0928ccdb891c263a2b1391cb27940a5ea5afcf9ba894de5d62 + sha256: "066dda7f73d8eb48ba630a55acb50c4a84a2e6b453b1cb4567f581729e794f7b" url: "https://pub.dev" source: hosted - version: "9.2.0" + version: "9.3.1" built_collection: dependency: transitive description: @@ -234,10 +234,10 @@ packages: dependency: transitive description: name: built_value - sha256: a30f0a0e38671e89a492c44d005b5545b830a961575bbd8336d42869ff71066d + sha256: "426cf75afdb23aa74bd4e471704de3f9393f3c7b04c1e2d9c6f1073ae0b8b139" url: "https://pub.dev" source: hosted - version: "8.12.0" + version: "8.12.1" calendar_date_picker2: dependency: "direct main" description: @@ -267,10 +267,10 @@ packages: dependency: "direct main" description: name: camera_platform_interface - sha256: ea1ef6ba79cdbed93df2d3eeef11542a90dec24dbcd9cde574926b86d7a09a10 + sha256: "98cfc9357e04bad617671b4c1f78a597f25f08003089dd94050709ae54effc63" url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.12.0" camera_windows: dependency: "direct main" description: @@ -308,10 +308,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" url: "https://pub.dev" source: hosted - version: "2.0.3" + version: "2.0.4" cli_config: dependency: transitive description: @@ -415,10 +415,10 @@ packages: dependency: transitive description: name: cross_file - sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" + sha256: "701dcfc06da0882883a2657c445103380e53e647060ad8d9dfb710c100996608" url: "https://pub.dev" source: hosted - version: "0.3.4+2" + version: "0.3.5+1" crypto: dependency: "direct main" description: @@ -431,10 +431,10 @@ packages: dependency: transitive description: name: cryptography - sha256: d146b76d33d94548cf035233fbc2f4338c1242fa119013bead807d033fc4ae05 + sha256: "3eda3029d34ec9095a27a198ac9785630fe525c0eb6a49f3d575272f8e792ef0" url: "https://pub.dev" source: hosted - version: "2.7.0" + version: "2.9.0" cs_monero: dependency: "direct main" description: @@ -535,10 +535,10 @@ packages: dependency: "direct main" description: name: cs_salvium_flutter_libs - sha256: "2aea1bbb6e6b69ac0a8e4dace2efc50507a10651ad9bec862f6a5ccd06a76578" + sha256: "05a9f9e3f8cb539a310419d49270492e84d0f89bccb4c31512c854b1fe1f1c5f" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" cs_salvium_flutter_libs_android: dependency: transitive description: @@ -575,10 +575,10 @@ packages: dependency: transitive description: name: cs_salvium_flutter_libs_ios - sha256: "4dc2447255f1c8997b6d26e72577e30ceab7f4622620549dc9de9eb8dccac35c" + sha256: aa474e7da65ba36e23afc4936ffbe39328808619fbdac44dacad9aa3aafb1b08 url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" cs_salvium_flutter_libs_linux: dependency: transitive description: @@ -591,10 +591,10 @@ packages: dependency: transitive description: name: cs_salvium_flutter_libs_macos - sha256: "428e4eead3d507112cb6f0b70f69bc43430b3db60f0b4d731e0d6a6fab0b69bb" + sha256: "988077e7affc6443a1b665bac6df3b39269cc1352375cb805bd6d26aac82b46f" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" cs_salvium_flutter_libs_platform_interface: dependency: transitive description: @@ -655,10 +655,10 @@ packages: dependency: transitive description: name: dart_style - sha256: c87dfe3d56f183ffe9106a18aebc6db431fc7c98c31a54b952a77f3d54a85697 + sha256: a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" dartx: dependency: transitive description: @@ -687,10 +687,10 @@ packages: dependency: "direct dev" description: name: dependency_validator - sha256: "3a243f5b9def5f902887a66fbea7e72e612eee956af6c8c34d382fe6d5484145" + sha256: a5928c0e3773808027bdafeb13fb4be0e4fdd79819773ad3df34d0fcf42636f2 url: "https://pub.dev" source: hosted - version: "5.0.2" + version: "5.0.3" desktop_drop: dependency: "direct main" description: @@ -752,26 +752,26 @@ packages: dependency: "direct main" description: name: drift - sha256: "540cf382a3bfa99b76e51514db5b0ebcd81ce3679b7c1c9cb9478ff3735e47a1" + sha256: "3669e1b68d7bffb60192ac6ba9fd2c0306804d7a00e5879f6364c69ecde53a7f" url: "https://pub.dev" source: hosted - version: "2.28.2" + version: "2.30.0" drift_dev: dependency: "direct dev" description: name: drift_dev - sha256: "4db0eeedc7e8bed117a9f22d867ab7a3a294300fed5c269aac90d0b3545967ca" + sha256: afe4d1d2cfce6606c86f11a6196e974a2ddbfaa992956ce61e054c9b1899c769 url: "https://pub.dev" source: hosted - version: "2.28.3" + version: "2.30.0" drift_flutter: dependency: "direct main" description: name: drift_flutter - sha256: b7534bf320aac5213259aac120670ba67b63a1fd010505babc436ff86083818f + sha256: c07120854742a0cae2f7501a0da02493addde550db6641d284983c08762e60a7 url: "https://pub.dev" source: hosted - version: "0.2.7" + version: "0.2.8" dropdown_button2: dependency: "direct main" description: @@ -987,10 +987,10 @@ packages: dependency: "direct main" description: name: flutter_mwebd - sha256: c5d1f628a037a12cd558c3c37fec46438c4d8d07e108a7f7cc8969806de13993 + sha256: "14f2a331b2621b78ddf62081ca8a466f6a2b4352a66950fffd68615c14e63edf" url: "https://pub.dev" source: hosted - version: "0.0.1-pre.8" + version: "0.0.1-pre.11" flutter_native_splash: dependency: "direct main" description: @@ -1003,10 +1003,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: b0694b7fb1689b0e6cc193b3f1fcac6423c4f93c74fb20b806c6b6f196db0c31 + sha256: ee8068e0e1cd16c4a82714119918efdeed33b3ba7772c54b5d094ab53f9b7fd1 url: "https://pub.dev" source: hosted - version: "2.0.30" + version: "2.0.33" flutter_riverpod: dependency: "direct main" description: @@ -1019,10 +1019,10 @@ packages: dependency: transitive description: name: flutter_rust_bridge - sha256: "5a5c7a5deeef2cc2ffe6076a33b0429f4a20ceac22a397297aed2b1eb067e611" + sha256: "37ef40bc6f863652e865f0b2563ea07f0d3c58d8efad803cc01933a4b2ee067e" url: "https://pub.dev" source: hosted - version: "2.9.0" + version: "2.11.1" flutter_secure_storage: dependency: "direct main" description: @@ -1075,10 +1075,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: b9c2ad5872518a27507ab432d1fb97e8813b05f0fc693f9d40fad06d073e0678 + sha256: "87fbd7c534435b6c5d9d98b01e1fd527812b82e68ddd8bd35fc45ed0fa8f0a95" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.3" flutter_test: dependency: "direct dev" description: flutter @@ -1194,18 +1194,18 @@ packages: dependency: "direct main" description: name: hive_ce - sha256: "89746b555109029a30780e0a601978460b8065643592667f6e43a238faccb8a4" + sha256: "81d39a03c4c0ba5938260a8c3547d2e71af59defecea21793d57fc3551f0d230" url: "https://pub.dev" source: hosted - version: "2.13.2" + version: "2.15.1" hive_ce_flutter: dependency: "direct main" description: name: hive_ce_flutter - sha256: f5bd57fda84402bca7557fedb8c629c96c8ea10fab4a542968d7b60864ca02cc + sha256: "26d656c9e8974f0732f1d09020e2d7b08ba841b8961a02dbfb6caf01474b0e9a" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.3" hive_ce_generator: dependency: "direct dev" description: @@ -1367,10 +1367,10 @@ packages: dependency: transitive description: name: json_serializable - sha256: "33a040668b31b320aafa4822b7b1e177e163fc3c1e835c6750319d4ab23aa6fe" + sha256: c5b2ee75210a0f263c6c7b9eeea80553dbae96ea1bf57f02484e806a3ffdffa3 url: "https://pub.dev" source: hosted - version: "6.11.1" + version: "6.11.2" jsontool: dependency: transitive description: @@ -1431,26 +1431,26 @@ packages: dependency: transitive description: name: local_auth_android - sha256: "48924f4a8b3cc45994ad5993e2e232d3b00788a305c1bf1c7db32cef281ce9a3" + sha256: a0bdfcc0607050a26ef5b31d6b4b254581c3d3ce3c1816ab4d4f4a9173e84467 url: "https://pub.dev" source: hosted - version: "1.0.52" + version: "1.0.56" local_auth_darwin: dependency: transitive description: name: local_auth_darwin - sha256: "0e9706a8543a4a2eee60346294d6a633dd7c3ee60fae6b752570457c4ff32055" + sha256: "699873970067a40ef2f2c09b4c72eb1cfef64224ef041b3df9fdc5c4c1f91f49" url: "https://pub.dev" source: hosted - version: "1.6.0" + version: "1.6.1" local_auth_platform_interface: dependency: transitive description: name: local_auth_platform_interface - sha256: "1b842ff177a7068442eae093b64abe3592f816afd2a533c0ebcdbe40f9d2075a" + sha256: f98b8e388588583d3f781f6806e4f4c9f9e189d898d27f0c249b93a1973dd122 url: "https://pub.dev" source: hosted - version: "1.0.10" + version: "1.1.0" local_auth_windows: dependency: transitive description: @@ -1528,10 +1528,10 @@ packages: dependency: "direct main" description: name: mobile_scanner - sha256: "5e7e09d904dc01de071b79b3f3789b302b0ed3c9c963109cd3f83ad90de62ecf" + sha256: "023a71afb4d7cfb5529d0f2636aa8b43db66257905b9486d702085989769c5f2" url: "https://pub.dev" source: hosted - version: "7.1.2" + version: "7.1.3" mockingjay: dependency: "direct dev" description: @@ -1544,10 +1544,10 @@ packages: dependency: "direct dev" description: name: mockito - sha256: "4feb43bc4eb6c03e832f5fcd637d1abb44b98f9cfa245c58e27382f58859f8f6" + sha256: dac24d461418d363778d53198d9ac0510b9d073869f078450f195766ec48d05e url: "https://pub.dev" source: hosted - version: "5.5.1" + version: "5.6.1" mocktail: dependency: transitive description: @@ -1673,18 +1673,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "993381400e94d18469750e5b9dcb8206f15bc09f9da86b9e44a9b0092a0066db" + sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e url: "https://pub.dev" source: hosted - version: "2.2.18" + version: "2.2.22" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd" + sha256: "6d13aece7b3f5c5a9731eaf553ff9dcbc2eff41087fd2df587fd0fed9a3eb0c4" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.5.1" path_provider_linux: dependency: transitive description: @@ -1817,10 +1817,10 @@ packages: dependency: transitive description: name: process - sha256: "107d8be718f120bbba9dcd1e95e3bd325b1b4a4f07db64154635ba03f2567a0d" + sha256: c6248e4526673988586e8c00bb22a49210c258dc91df5227d5da9748ecf79744 url: "https://pub.dev" source: hosted - version: "5.0.3" + version: "5.0.5" protobuf: dependency: transitive description: @@ -1999,10 +1999,10 @@ packages: dependency: transitive description: name: source_helper - sha256: a447acb083d3a5ef17f983dd36201aeea33fedadb3228fa831f2f0c92f0f3aca + sha256: "6a3c6cc82073a8797f8c4dc4572146114a39652851c157db37e964d9c7038723" url: "https://pub.dev" source: hosted - version: "1.3.7" + version: "1.3.8" source_map_stack_trace: dependency: transitive description: @@ -2047,10 +2047,10 @@ packages: dependency: transitive description: name: sqlparser - sha256: "57090342af1ce32bb499aa641f4ecdd2d6231b9403cea537ac059e803cc20d67" + sha256: "162435ede92bcc793ea939fdc0452eef0a73d11f8ed053b58a89792fba749da5" url: "https://pub.dev" source: hosted - version: "0.41.2" + version: "0.42.1" stack_trace: dependency: transitive description: @@ -2234,10 +2234,10 @@ packages: dependency: transitive description: name: universal_io - sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad" + sha256: f63cbc48103236abf48e345e07a03ce5757ea86285ed313a6a032596ed9301e2 url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.3.1" unorm_dart: dependency: transitive description: @@ -2258,34 +2258,34 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "81777b08c498a292d93ff2feead633174c386291e35612f8da438d6e92c4447e" + sha256: "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611" url: "https://pub.dev" source: hosted - version: "6.3.20" + version: "6.3.28" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7 + sha256: cfde38aa257dae62ffe79c87fab20165dfdf6988c1d31b58ebf59b9106062aad url: "https://pub.dev" source: hosted - version: "6.3.4" + version: "6.3.6" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" + sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f + sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18" url: "https://pub.dev" source: hosted - version: "3.2.3" + version: "3.2.5" url_launcher_platform_interface: dependency: transitive description: @@ -2306,10 +2306,10 @@ packages: dependency: transitive description: name: url_launcher_windows - sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" + sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f" url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.5" uuid: dependency: "direct main" description: @@ -2354,18 +2354,18 @@ packages: dependency: transitive description: name: very_good_analysis - sha256: "62d2b86d183fb81b2edc22913d9f155d26eb5cf3855173adb1f59fac85035c63" + sha256: e479fbc0941009262343db308133e121bf8660c2c81d48dd8e952df7b7e1e382 url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "9.0.0" vm_service: dependency: transitive description: name: vm_service - sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" + sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" url: "https://pub.dev" source: hosted - version: "14.3.1" + version: "15.0.2" wakelock_platform_interface: dependency: transitive description: @@ -2419,10 +2419,10 @@ packages: dependency: transitive description: name: watcher - sha256: "5bf046f41320ac97a469d506261797f35254fa61c641741ef32dacda98b7d39c" + sha256: "592ab6e2892f67760543fb712ff0177f4ec76c031f02f5b4ff8d3fc5eb9fb61a" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "1.1.4" web: dependency: "direct overridden" description: @@ -2451,18 +2451,18 @@ packages: dependency: transitive description: name: web_socket_client - sha256: "0ec5230852349191188c013112e4d2be03e3fc83dbe80139ead9bf3a136e53b5" + sha256: "394789177aa3bc1b7b071622a1dbf52a4631d7ce23c555c39bb2523e92316b07" url: "https://pub.dev" source: hosted - version: "0.1.5" + version: "0.2.1" webdriver: dependency: transitive description: name: webdriver - sha256: "3d773670966f02a646319410766d3b5e1037efb7f07cc68f844d5e06cd4d61c8" + sha256: "2f3a14ca026957870cfd9c635b83507e0e51d8091568e90129fbf805aba7cade" url: "https://pub.dev" source: hosted - version: "3.0.4" + version: "3.1.0" webkit_inspection_protocol: dependency: transitive description: @@ -2475,10 +2475,10 @@ packages: dependency: "direct overridden" description: name: win32 - sha256: "66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03" + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e url: "https://pub.dev" source: hosted - version: "5.14.0" + version: "5.15.0" win32_registry: dependency: transitive description: @@ -2507,18 +2507,19 @@ packages: xelis_dart_sdk: dependency: transitive description: - name: xelis_dart_sdk - sha256: "2a7f8ab4c30fad2fd824ba6ea4e83ac20c726b47c7aa4f1e713ef3971a3ec1f7" - url: "https://pub.dev" - source: hosted - version: "0.24.0" + path: "." + ref: HEAD + resolved-ref: "62f1c16a2762b9d4e9db24d101035b28a2dcc69e" + url: "https://github.com/Tritonn204/xelis-dart-sdk" + source: git + version: "0.29.0" xelis_flutter: dependency: "direct main" description: path: "." - ref: "5dd5c50713160fa15fb06ff44886ae035eed62fd" - resolved-ref: "5dd5c50713160fa15fb06ff44886ae035eed62fd" - url: "https://github.com/cypherstack/xelis-flutter-ffi.git" + ref: b09b3ffd89bc6390f6d565b967c2ae1052a4bdd2 + resolved-ref: b09b3ffd89bc6390f6d565b967c2ae1052a4bdd2 + url: "https://github.com/xelis-project/xelis-flutter-ffi.git" source: git version: "0.1.1" xml: @@ -2571,4 +2572,4 @@ packages: version: "0.2.4" sdks: dart: ">=3.9.0 <4.0.0" - flutter: ">=3.29.0 <4.0.0" + flutter: ">=3.35.0 <4.0.0" diff --git a/scripts/android/build_all.sh b/scripts/android/build_all.sh index dc904e95d..5c1dd53ca 100755 --- a/scripts/android/build_all.sh +++ b/scripts/android/build_all.sh @@ -10,8 +10,8 @@ PLUGINS_DIR=../../crypto_plugins # libepiccash requires old rust source ../rust_version.sh set_rust_version_for_libepiccash -(cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./build_all.sh ) -(cd "${PLUGINS_DIR}"/flutter_libmwc/scripts/android && ./build_all.sh ) +# (cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./build_all.sh ) +# (cd "${PLUGINS_DIR}"/flutter_libmwc/scripts/android && ./build_all.sh ) # set rust (back) to a more recent stable release after building epiccash set_rust_to_everything_else diff --git a/scripts/app_config/templates/pubspec.template.yaml b/scripts/app_config/templates/pubspec.template.yaml index 564948796..8f2677f45 100644 --- a/scripts/app_config/templates/pubspec.template.yaml +++ b/scripts/app_config/templates/pubspec.template.yaml @@ -32,8 +32,8 @@ dependencies: # %%ENABLE_XEL%% # xelis_flutter: # git: -# url: https://github.com/cypherstack/xelis-flutter-ffi.git -# ref: 5dd5c50713160fa15fb06ff44886ae035eed62fd +# url: https://github.com/xelis-project/xelis-flutter-ffi.git +# ref: b09b3ffd89bc6390f6d565b967c2ae1052a4bdd2 # %%END_ENABLE_XEL%% # %%ENABLE_FIRO%% diff --git a/scripts/rust_version.sh b/scripts/rust_version.sh index 65bf911f4..d1d72a2fb 100755 --- a/scripts/rust_version.sh +++ b/scripts/rust_version.sh @@ -2,10 +2,10 @@ set_rust_to_everything_else() { - if rustup toolchain list | grep -q "1.85.1"; then - rustup default 1.85.1 + if rustup toolchain list | grep -q "1.91.0"; then + rustup default 1.91.0 else - echo "Rust version 1.85.1 is not installed. Please install it using 'rustup install 1.85.1'." >&2 + echo "Rust version 1.91.0 is not installed. Please install it using 'rustup install 1.91.0'." >&2 exit 1 fi } @@ -17,4 +17,4 @@ set_rust_version_for_libepiccash() { echo "Rust version 1.81.0 is not installed. Please install it using 'rustup install 1.81.0'." >&2 exit 1 fi -} +} \ No newline at end of file diff --git a/tool/wl_templates/XEL_lib_xelis_interface_impl.template.dart b/tool/wl_templates/XEL_lib_xelis_interface_impl.template.dart index 75941a390..9db4f3ecd 100644 --- a/tool/wl_templates/XEL_lib_xelis_interface_impl.template.dart +++ b/tool/wl_templates/XEL_lib_xelis_interface_impl.template.dart @@ -9,6 +9,10 @@ import 'package:xelis_flutter/src/api/network.dart' as x_network; import 'package:xelis_flutter/src/api/seed_search_engine.dart' as x_seed; import 'package:xelis_flutter/src/api/utils.dart' as x_utils; import 'package:xelis_flutter/src/api/wallet.dart' as x_wallet; +import 'package:xelis_flutter/src/api/precomputed_tables.dart' as x_tables; +import 'package:xelis_flutter/src/api/models/wallet_dtos.dart' as x_wallet_dtos; +import 'package:xelis_flutter/src/api/progress_report.dart' as x_report; + import 'package:xelis_flutter/src/frb_generated.dart' as xelis_rust; import '../../providers/progress_report/xelis_table_progress_provider.dart'; @@ -72,17 +76,28 @@ final class _LibXelisInterfaceImpl extends LibXelisInterface { @override Stream createProgressReportStream() { double lastPrintedProgress = 0.0; + XelisTableGenerationStep? lastStep; + return xelis_api.createProgressReportStream().map((report) { return report.when( - tableGeneration: (progress, step, _) { + tableGeneration: (progress, step, message) { final currentStep = XelisTableGenerationStep.fromString(step); - if ((progress - lastPrintedProgress).abs() >= 0.05 || - currentStep != XelisTableGenerationStep.fromString(step) || - progress >= 0.99) { + + final hasProgressJump = (progress - lastPrintedProgress).abs() >= 0.05; + final stepChanged = currentStep != lastStep; + final isFinished = progress >= 0.99; + + if (hasProgressJump || stepChanged || isFinished) { + final percent = (progress * 100).toStringAsFixed(1); + final extra = + (message != null && message.isNotEmpty) ? ' – $message' : ''; + Logging.instance.d( - "Xelis Table Generation: $step - ${progress * 100.0}%", + 'Xelis Table Generation: $step - $percent%$extra', ); + lastPrintedProgress = progress; + lastStep = currentStep; } return XelisTableProgressState( @@ -90,7 +105,12 @@ final class _LibXelisInterfaceImpl extends LibXelisInterface { currentStep: currentStep, ); }, - misc: (_) => const XelisTableProgressState(), + misc: (message) { + if (message != null && message.isNotEmpty) { + Logging.instance.d('Xelis Table Generation (misc): $message'); + } + return const XelisTableProgressState(); + }, ); }); } @@ -143,6 +163,12 @@ final class _LibXelisInterfaceImpl extends LibXelisInterface { json['data'] as Map, ); yield BalanceChanged(data.assetHash, data.balance); + case xelis_sdk.WalletEvent.trackAsset: + // TODO + continue; + case xelis_sdk.WalletEvent.untrackAsset: + // TODO + continue; case xelis_sdk.WalletEvent.rescan: yield Rescan(json['data']['start_topoheight'] as int); case xelis_sdk.WalletEvent.online: @@ -151,6 +177,9 @@ final class _LibXelisInterfaceImpl extends LibXelisInterface { yield const Offline(); case xelis_sdk.WalletEvent.historySynced: yield HistorySynced(json['data']['topoheight'] as int); + case xelis_sdk.WalletEvent.syncError: + print("ERROR SYNCING: ${json['data']['message']}"); + yield const Offline(); // TODO: make a message describing the error with json['data']['message'] } } catch (e, s) { Logging.instance.e( @@ -176,11 +205,20 @@ final class _LibXelisInterfaceImpl extends LibXelisInterface { @override Future updateTables({ required String precomputedTablesPath, - required bool l1Low, - }) => x_wallet.updateTables( - precomputedTablesPath: precomputedTablesPath, - l1Low: l1Low, - ); + required bool stack_l1Low, + }) async { + // TODO: add more granular table size management interface + // for now, just patching the old system into the new FFI API + + x_tables.PrecomputedTableType tableType = stack_l1Low + ? x_tables.PrecomputedTableType.l1Low() + : x_tables.PrecomputedTableType.l1Full(); + + return x_wallet.updateTables( + precomputedTablesPath: precomputedTablesPath, + precomputedTableType: tableType, + ); + } @override Future getSeed(OpaqueXelisWallet wallet) => wallet.actual.getSeed(); @@ -195,8 +233,15 @@ final class _LibXelisInterfaceImpl extends LibXelisInterface { String? seed, String? privateKey, String? precomputedTablesPath, - bool? l1Low, + bool? stack_l1Low, }) async { + // TODO: add more granular table size management interface + // for now, just patching the old system into the new FFI API + + x_tables.PrecomputedTableType tableType = stack_l1Low ?? false + ? x_tables.PrecomputedTableType.l1Low() + : x_tables.PrecomputedTableType.l1Full(); + final wallet = await x_wallet.createXelisWallet( name: name, directory: directory, @@ -205,7 +250,7 @@ final class _LibXelisInterfaceImpl extends LibXelisInterface { seed: seed, network: network.xelisNetwork, precomputedTablesPath: precomputedTablesPath, - l1Low: l1Low, + precomputedTableType: tableType, ); return OpaqueXelisWallet(wallet); @@ -219,15 +264,22 @@ final class _LibXelisInterfaceImpl extends LibXelisInterface { required String password, required CryptoCurrencyNetwork network, String? precomputedTablesPath, - bool? l1Low, + bool? stack_l1Low, }) async { + // TODO: add more granular table size management interface + // for now, just patching the old system into the new FFI API + + x_tables.PrecomputedTableType tableType = (stack_l1Low ?? false) + ? x_tables.PrecomputedTableType.l1Low() + : x_tables.PrecomputedTableType.l1Full(); + final wallet = await x_wallet.openXelisWallet( name: name, directory: directory, password: password, network: network.xelisNetwork, precomputedTablesPath: precomputedTablesPath, - l1Low: l1Low, + precomputedTableType: tableType, ); return OpaqueXelisWallet(wallet); @@ -274,7 +326,7 @@ final class _LibXelisInterfaceImpl extends LibXelisInterface { }) => wallet.actual.createTransfersTransaction( transfers: transfers .map( - (e) => x_wallet.Transfer( + (e) => x_wallet_dtos.Transfer( floatAmount: e.floatAmount, strAddress: e.strAddress, assetHash: e.assetHash, @@ -291,7 +343,7 @@ final class _LibXelisInterfaceImpl extends LibXelisInterface { }) => wallet.actual.estimateFees( transfers: transfers .map( - (e) => x_wallet.Transfer( + (e) => x_wallet_dtos.Transfer( floatAmount: e.floatAmount, strAddress: e.strAddress, assetHash: e.assetHash,