diff --git a/CHANGELOG.md b/CHANGELOG.md index 532373372e..797b94ac83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,22 +1,48 @@ # Gleec Wallet v0.9.5 Release Notes -This release prepares the updated `0.9.4` release line for mobile publishing as `0.9.5`, keeping the web release history intact while integrating the final mobile-readiness SDK roll. Highlights include `komodo-defi-sdk v0.6.0`, legacy wallet migration support, hardened TRON/TRC20 and SIA handling, refreshed Gleec Dex branding, and release metadata/lockfile updates for reproducible native builds. +This release prepares the `0.9.4` release line for mobile publishing as `0.9.5`, keeping the app version at `0.9.5+0` while incorporating the final mobile-readiness work from `dev`. It covers the published SDK `0.6.0` roll, the in-app legacy wallet migration flow, the iOS publishing identity update, Gleec Dex branding, web publishing alignment, and refreshed dependency metadata. ## 🚀 New Features -- **SDK 0.6.0 Integration** ([@CharlVS]) - Roll the SDK submodule to the published `komodo-defi-sdk v0.6.0` release, bringing the finalized mobile-readiness package set into the app. -- **Legacy Wallet Migration Support** ([@CharlVS]) - Include the SDK-side migration package and auth/framework hooks for discovering, verifying, importing, and cleaning up legacy wallet data. -- **TRON/TRC20 and SIA Readiness** ([@CharlVS]) - Pull in hardened TRON activation, transaction-history, explorer, and market-data handling alongside the finalized SIA activation and withdrawal strategy. +- **Legacy Wallet Migration Flow** ([@CharlVS], #3475) - Add the app-side migration flow for discovering legacy native wallets, checking compatibility, preparing imports, integrating migrated wallets with auth/session state, and cleaning up migrated legacy data from settings. +- **SDK 0.6.0 Integration** ([@CharlVS]) - Roll the SDK submodule to the published `komodo-defi-sdk v0.6.0` release commit and keep the root lockfile aligned with the SDK package versions used by the app. + +### SDK Updates (komodo-defi-sdk-flutter) + +This release integrates [komodo-defi-sdk v0.6.0](https://github.com/GLEECBTC/komodo-defi-sdk-flutter) with the mobile publishing package set bringing: + +- **Legacy Wallet Migration Support** - Add the `komodo_legacy_wallet_migration` package and supporting auth/framework hooks for discovering, verifying, importing, and cleaning up legacy wallet data. +- **TRON/TRC20 Readiness** - Harden TRON activation, TRC20 handling, transaction history through Tronscan, explorer URL support, and TRX market-data coordination. +- **SIA Readiness** - Finalize SIA activation and withdrawal handling for the mobile release line. +- **Balance, Fee, and Market Data Hardening** - Add balance recovery mode, richer fee information, cached spot-price continuity, CoinGecko failure cooldowns, icon-precache hardening, and numeric JSON compatibility. ## 🐛 Bug Fixes -- **Balance, Fee, and Market Data Hardening** ([@CharlVS]) - Integrate SDK fixes for activation recovery, richer fee information, cached spot-price continuity, CoinGecko failure cooldowns, and numeric JSON compatibility. -- **Gleec Dex Branding Refresh** ([@CharlVS], #3479) - Preserve the updated Gleec Dex title, app metadata, icons, social preview assets, and Ramp logo cache-busting changes already prepared on `dev`. +- **Migration Startup and Compatibility Guardrails** ([@CharlVS], #3475) - Add startup/settings migration services, compatibility dialog states, password-field handling, wallet metadata preparation, and migration cleanup coverage for legacy wallet users. +- **Fiat Preference and Wallet Visibility Hardening** ([@CharlVS], #3475) - Stabilize fiat onramp defaults and wallet-gated UI behavior as part of the migration-ready app flow. + +## 🎨 UI/UX Improvements + +- **Gleec Dex Branding Refresh** ([@CharlVS], #3479) - Keep the updated Gleec Dex title, app metadata, icons, social preview assets, and Ramp logo cache-busting changes already prepared on `dev`. + +## 💻 Platform-Specific Changes + +### iOS + +- **Bundle Identifier and Signing Team Update** ([@DeckerSU], #3482) - Switch the iOS bundle identifier to `com.GleecDEX.wallet` and the signing team to `B52ZCS7TMQ` for mobile publishing. + +### Android + +- **Package Path Alignment** ([@CharlVS], #3475) - Move `MainActivity` into the Gleec package path used by the native release configuration. + +### Web + - **Web Publishing Adjustment** ([@DeckerSU], #3476) - Keep the non-WASM web build path adjustment from `dev` so web publishing remains aligned with the current deployment target. ## 🔧 Technical Improvements -- **Release Metadata Refresh** ([@CharlVS]) - Move the app release name to `0.9.5+0` and refresh dependency resolution against the SDK `0.6.0` submodule. +- **Legacy Migration Test Coverage** ([@CharlVS], #3475) - Add unit/widget coverage for legacy app settings migration, legacy wallet migration, migration compatibility UI, cleanup UI, and fiat preference defaults. +- **Release Metadata Refresh** ([@CharlVS]) - Keep the app release name at `0.9.5+0`, align the SDK submodule with the SDK `0.6.0` release commit, and refresh dependency resolution for reproducible native builds. **Full Changelog**: [0.9.4...0.9.5](https://github.com/GLEECBTC/gleec-wallet/compare/0.9.4...0.9.5) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 4aab7d0697..db76003328 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -160,9 +160,6 @@ PODS: - OrderedSet (6.0.3) - package_info_plus (0.4.5): - Flutter - - path_provider_foundation (0.0.1): - - Flutter - - FlutterMacOS - PromisesObjC (2.4.0) - SDWebImage (5.21.2): - SDWebImage/Core (= 5.21.2) @@ -172,6 +169,9 @@ PODS: - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS + - sqflite_darwin (0.0.4): + - Flutter + - FlutterMacOS - SwiftyGif (5.4.5) - url_launcher_ios (0.0.1): - Flutter @@ -192,9 +192,9 @@ DEPENDENCIES: - local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`) - mobile_scanner (from `.symlinks/plugins/mobile_scanner/darwin`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - share_plus (from `.symlinks/plugins/share_plus/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) + - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`) @@ -241,12 +241,12 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/mobile_scanner/darwin" package_info_plus: :path: ".symlinks/plugins/package_info_plus/ios" - path_provider_foundation: - :path: ".symlinks/plugins/path_provider_foundation/darwin" share_plus: :path: ".symlinks/plugins/share_plus/ios" shared_preferences_foundation: :path: ".symlinks/plugins/shared_preferences_foundation/darwin" + sqflite_darwin: + :path: ".symlinks/plugins/sqflite_darwin/darwin" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" video_player_avfoundation: @@ -266,25 +266,25 @@ SPEC CHECKSUMS: FirebaseInstallations: 317270fec08a5d418fdbc8429282238cab3ac843 Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 - flutter_secure_storage_darwin: ce237a8775b39723566dc72571190a3769d70468 + flutter_secure_storage_darwin: acdb3f316ed05a3e68f856e0353b133eec373a23 GoogleAdsOnDeviceConversion: 2be6297a4f048459e0ae17fad9bfd2844e10cf64 GoogleAppMeasurement: 700dce7541804bec33db590a5c496b663fbe2539 GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e komodo_defi_framework: b6929645df13ccb8d2c1c177ccf8b7bbb81f6859 - local_auth_darwin: d2e8c53ef0c4f43c646462e3415432c4dab3ae19 + local_auth_darwin: c3ee6cce0a8d56be34c8ccb66ba31f7f180aaebb mobile_scanner: 9157936403f5a0644ca3779a38ff8404c5434a93 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 - path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 SDWebImage: 9f177d83116802728e122410fb25ad88f5c7608a share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a - shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 - url_launcher_ios: 694010445543906933d732453a59da0a173ae33d - video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b + url_launcher_ios: 7a95fa5b60cc718a708b8f2966718e93db0cef1b + video_player_avfoundation: dd410b52df6d2466a42d28550e33e4146928280a PODFILE CHECKSUM: 8a1940628b81389d4af7ba4fac6ed1cc8374cca0 diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 0e481369a3..8d322492bc 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -120,15 +120,15 @@ PODS: - OrderedSet (6.0.3) - package_info_plus (0.0.1): - FlutterMacOS - - path_provider_foundation (0.0.1): - - Flutter - - FlutterMacOS - PromisesObjC (2.4.0) - share_plus (0.0.1): - FlutterMacOS - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS + - sqflite_darwin (0.0.4): + - Flutter + - FlutterMacOS - url_launcher_macos (0.0.1): - FlutterMacOS - video_player_avfoundation (0.0.1): @@ -150,9 +150,9 @@ DEPENDENCIES: - local_auth_darwin (from `Flutter/ephemeral/.symlinks/plugins/local_auth_darwin/darwin`) - mobile_scanner (from `Flutter/ephemeral/.symlinks/plugins/mobile_scanner/darwin`) - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) - - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) - share_plus (from `Flutter/ephemeral/.symlinks/plugins/share_plus/macos`) - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) + - sqflite_darwin (from `Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - video_player_avfoundation (from `Flutter/ephemeral/.symlinks/plugins/video_player_avfoundation/darwin`) - window_size (from `Flutter/ephemeral/.symlinks/plugins/window_size/macos`) @@ -195,12 +195,12 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/mobile_scanner/darwin package_info_plus: :path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos - path_provider_foundation: - :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin share_plus: :path: Flutter/ephemeral/.symlinks/plugins/share_plus/macos shared_preferences_foundation: :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin + sqflite_darwin: + :path: Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin url_launcher_macos: :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos video_player_avfoundation: @@ -219,23 +219,23 @@ SPEC CHECKSUMS: FirebaseCoreInternal: 9afa45b1159304c963da48addb78275ef701c6b4 FirebaseInstallations: 317270fec08a5d418fdbc8429282238cab3ac843 flutter_inappwebview_macos: c2d68649f9f8f1831bfcd98d73fd6256366d9d1d - flutter_secure_storage_darwin: ce237a8775b39723566dc72571190a3769d70468 + flutter_secure_storage_darwin: acdb3f316ed05a3e68f856e0353b133eec373a23 flutter_window_close: bd408414cbbf0d39f0d3076c4da0cdbf1c527168 FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1 GoogleAppMeasurement: 700dce7541804bec33db590a5c496b663fbe2539 GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 komodo_defi_framework: 2e2b89505f158840822ed30ffc7589ff8035e248 - local_auth_darwin: d2e8c53ef0c4f43c646462e3415432c4dab3ae19 + local_auth_darwin: c3ee6cce0a8d56be34c8ccb66ba31f7f180aaebb mobile_scanner: 9157936403f5a0644ca3779a38ff8404c5434a93 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 package_info_plus: f0052d280d17aa382b932f399edf32507174e870 - path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 share_plus: 510bf0af1a42cd602274b4629920c9649c52f4cc - shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 - url_launcher_macos: 0fba8ddabfc33ce0a9afe7c5fef5aab3d8d2d673 - video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b + shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 + url_launcher_macos: f87a979182d112f911de6820aefddaf56ee9fbfd + video_player_avfoundation: dd410b52df6d2466a42d28550e33e4146928280a window_size: 4bd15034e6e3d0720fd77928a7c42e5492cfece9 PODFILE CHECKSUM: a890bc27443c296eb8ca4510f54c35d2e0f66ed0 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 5338ebcddc..727b369bb4 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -369,9 +369,9 @@ "${BUILT_PRODUCTS_DIR}/mobile_scanner/mobile_scanner.framework", "${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework", "${BUILT_PRODUCTS_DIR}/package_info_plus/package_info_plus.framework", - "${BUILT_PRODUCTS_DIR}/path_provider_foundation/path_provider_foundation.framework", "${BUILT_PRODUCTS_DIR}/share_plus/share_plus.framework", "${BUILT_PRODUCTS_DIR}/shared_preferences_foundation/shared_preferences_foundation.framework", + "${BUILT_PRODUCTS_DIR}/sqflite_darwin/sqflite_darwin.framework", "${BUILT_PRODUCTS_DIR}/url_launcher_macos/url_launcher_macos.framework", "${BUILT_PRODUCTS_DIR}/video_player_avfoundation/video_player_avfoundation.framework", "${BUILT_PRODUCTS_DIR}/window_size/window_size.framework", @@ -394,9 +394,9 @@ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/mobile_scanner.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/package_info_plus.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider_foundation.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/share_plus.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences_foundation.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqflite_darwin.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_macos.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_player_avfoundation.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/window_size.framework", diff --git a/pubspec.lock b/pubspec.lock index ef9f1f57f5..073f843623 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -754,6 +754,13 @@ packages: relative: true source: path version: "0.4.1" + komodo_legacy_wallet_migration: + dependency: "direct main" + description: + path: "sdk/packages/komodo_legacy_wallet_migration" + relative: true + source: path + version: "0.1.0" komodo_ui: dependency: "direct main" description: @@ -1277,6 +1284,46 @@ packages: url: "https://pub.dev" source: hosted version: "7.0.0" + sqflite: + dependency: transitive + description: + name: sqflite + sha256: "564cfed0746fe53140c23b70b308e045c3b31f17778f2f326ccb7d804ea0250a" + url: "https://pub.dev" + source: hosted + version: "2.4.2+1" + sqflite_android: + dependency: transitive + description: + name: sqflite_android + sha256: "881e28efdcc9950fd8e9bb42713dcf1103e62a2e7168f23c9338d82db13dec40" + url: "https://pub.dev" + source: hosted + version: "2.4.2+3" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + sha256: "5e8377564d95166761a968ed96104e0569b6b6cc611faac92a36ab8a169112c3" + url: "https://pub.dev" + source: hosted + version: "2.5.6+1" + sqflite_darwin: + dependency: transitive + description: + name: sqflite_darwin + sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + sqflite_platform_interface: + dependency: transitive + description: + name: sqflite_platform_interface + sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" + url: "https://pub.dev" + source: hosted + version: "2.4.0" stack_trace: dependency: transitive description: @@ -1317,6 +1364,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.1" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: "63896c27e81b28f8cb4e69ead0d3e8f03f1d1e5fc531a3e579cabed6a2c7c9e5" + url: "https://pub.dev" + source: hosted + version: "3.4.0+1" term_glyph: dependency: transitive description: @@ -1607,5 +1662,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.10.3 <4.0.0" - flutter: ">=3.41.4" + dart: ">=3.11.0 <4.0.0" + flutter: ">=3.41.4 <4.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index aba397018f..cc33b287c1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -18,7 +18,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev version: 0.9.5+0 environment: - sdk: ">=3.8.1 <4.0.0" + sdk: ">=3.11.0 <4.0.0" flutter: ">=3.41.4 <4.0.0" workspace: diff --git a/sdk b/sdk index af9c5b7140..ccc855082e 160000 --- a/sdk +++ b/sdk @@ -1 +1 @@ -Subproject commit af9c5b714079b8b58ec2c7ca314f595f3ee581e5 +Subproject commit ccc855082ee5026683188751484eed5342602698