Conversation
* chore: add generated deprecation notices for legacy rpc errors * feat: add polish foundation for trading and withdrawals * chore: roll sdk foundation pointer
* Port full Flutter WASM support * chore(gitignore): ignore local AI skill bundles * chore(sdk): roll submodule for wasm-safe interop cleanup * fix(web): address WASM review feedback
…#3444) * fix(app): resolve open findings and adopt sdk manager APIs * chore(app): roll sdk submodule for pr review fixes * chore(docs): remove local review artifacts from tracked docs * chore(app): roll sdk submodule to merged dev commit
* fix(web): isolate cache adapters and update JS interop * fix(app): backfill wallet metadata display * chore: update CI Flutter version * chore: update Flutter packages * chore: roll Flutter constraints * chore: update Docker Flutter version
* feat(legal): render terms of service from markdown asset * fix(legal): prevent tos popup freeze on open * chore: add pubspec assets * fix(disclaimer): improve ToS markdown rendering and dialog behavior * feat(legal): load legal docs from GitHub at runtime * feat(legal): add kyc policy to settings
* feat(wallet): roll SDK and complete TRON integration * fix(wallet): handle tron custom token import follow-ups * fix(wallet): address tron review follow-ups Preserve native TRX fiat support, send Ramp TRON asset codes correctly, and keep imported TRC20 token decimals aligned with token metadata. * fix(wallet): address banxa and preview cleanup regressions * fix(wallet): preserve saved assets during preview rollback Keep previously saved parent/token metadata intact when a custom-token preview is cancelled, while still fully rolling back preview-only activations.
* fix(ci): preserve native desktop assets during builds * fix(ci): use target-specific build cleanup to preserve native_assets The blanket removal of the build directory wipe between the asset-fetching and real build passes caused web workflows to skip copy_assets and reuse the stale AssetManifest.bin from the warm-up run. Restore the cleanup using a find command that wipes all build caches except native_assets, which desktop builds generate and need to reuse.
* fix(sia): finalize app release integration * chore(sdk): repoint app SIA branch to sdk/test-sia Point the app's SIA integration branch at the current sdk/test-sia tip so the submodule references a GitHub-visible commit and the dev PR can be reviewed alongside the SDK PR. * fix(sia): broadcast suspended state for filtered Trezor SIA assets When a Trezor wallet has SIA in its activated coins from an older build, the early return in activateAssetsSync would leave those coins stuck in the "activating" state because no update was ever broadcast via enabledAssetsChanges. Now we broadcast CoinState.suspended for each filtered SIA asset before discarding them, so CoinsBloc correctly removes them from walletCoins. * chore(sdk): update submodule to include withdrawal fix (#322)
* fix: preserve search focus across rebuilds * chore(ci): trigger workflows * fix(search): stabilize scrollbar tree and wallet search rebuilds * fix(ui): move hide-balance icon into balance cards to save vertical space Embed the privacy toggle directly in the balance card instead of a dedicated row, saving ~48px of vertical space on both mobile and desktop. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(ui): equalize desktop wallet overview card heights * fix(ui): remove intrinsic layout from wallet overview cards --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
fix(auth): resolve activated_coins metadata with explicit user checks Points sdk at komodo-defi-sdk-flutter dev through the merge of JSON traversal fixes (#329). Kdf auth metadata helpers no longer use user?.metadata when reading List<String> activated_coins.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…3454) * chore(sdk): roll submodule for metadata race fix Points to GLEECBTC/komodo-defi-sdk-flutter#328 which adds mutex-protected atomic metadata updates to prevent concurrent coin activations from overwriting each other's state. * fix(coins): use atomic metadata updates for coin activation Batch-write all asset IDs to wallet metadata in a single call before launching parallel activations, then pass addToWalletMetadata: false to avoid N concurrent read-modify-write cycles that caused last-write-wins data loss. Migrate addActivatedCoins/removeActivatedCoins to use the new updateActiveUserKeyValue API for atomic single-key transforms. * chore(sdk): roll submodule to dev (9532870) Includes fix(auth): add mutex-protected atomic metadata updates (#328). * chore(sdk): advance submodule to 317719d for WASM valueOrNull fix The merge from dev picked the fix/metadata-race side's SDK pointer (9532870, #328 only) instead of dev's pointer (317719d) which also includes #329 — the reified generics fix for _traverseJson that prevents valueOrNull<List<String>> from silently returning null in WASM/minified release builds. * chore(sdk): bump submodule for trezor test compilation fix Points to fix/trezor-test-missing-method (ea99ec6) which adds the missing updateActiveUserMetadataKey stub to _FakeAuthService in trezor_auth_service_test.dart. * chore(sdk): roll submodule to dev (c70beed) Includes #328 (atomic metadata updates), #329 (reified generics for WASM), and #330 (trezor test compilation fix). * ci: trigger CI rebuild * chore(sdk): bump submodule to dev after bundled coins commit merge Points sdk at 869dd00 (komodo-defi-sdk-flutter dev), including PR #331.
Picks up fix(streaming): gate enable_* calls on real SSE first-byte event (#332), which prevents UnknownClient errors when subscribing to orderbook and other event streams.
Advances the SDK pointer to include chore(release): publish packages on komodo-defi-sdk-flutter dev.
* chore: update v0.9.4 changelog * chore(sdk): roll merged SDK updates
…3460) * chore(sdk): bump submodule for market data cache fix (merged #335) * fix(wallet): stabilize profit/loss chart across period changes Use restartable handling for period changes, skip stale periodic refresh cycles when the selected range changes mid-flight, filter chart samples to the visible window with a leading boundary point, and key the line chart by selected period so Flutter rebuilds the series correctly. * fix: harden numeric parsing for recent swaps and related models * chore: bump sdk submodule to merged numeric parsing fix * feat(wallet): CEX-backed totals, shared computeWalletTotalUsd, tests - Extract computeWalletTotalUsd with docs on CEX vs SDK price sources - CoinsBloc/CoinsRepo: defensive unmodifiable price maps, uppercase keys - Coin details: watchBalance stream; balancePlaceholder for unknown values - Export ThemeCustomDark/Light from app_theme to fix implementation_imports - Add unit tests for computeWalletTotalUsd; add code review notes doc * fix(web): coerce mm2 JS interop results to int via num Dartify may return int or double from JS; use num.toInt() for stable returns. * chore: remove pending changes code review notes * chore: temporarily disable wasm
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Visit the preview URL for this PR (updated for commit bcd2752): https://walletrc--pull-3461-merge-0hkq1grj.web.app (expires Thu, 09 Apr 2026 13:25:02 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: f66a4ff03faa546f12f0ae5a841bd9eff2714dcc |
* chore(sdk): bump submodule for market data cache fix (merged #335) * fix(wallet): stabilize profit/loss chart across period changes Use restartable handling for period changes, skip stale periodic refresh cycles when the selected range changes mid-flight, filter chart samples to the visible window with a leading boundary point, and key the line chart by selected period so Flutter rebuilds the series correctly. * fix: harden numeric parsing for recent swaps and related models * chore: bump sdk submodule to merged numeric parsing fix * feat(wallet): CEX-backed totals, shared computeWalletTotalUsd, tests - Extract computeWalletTotalUsd with docs on CEX vs SDK price sources - CoinsBloc/CoinsRepo: defensive unmodifiable price maps, uppercase keys - Coin details: watchBalance stream; balancePlaceholder for unknown values - Export ThemeCustomDark/Light from app_theme to fix implementation_imports - Add unit tests for computeWalletTotalUsd; add code review notes doc * fix(web): coerce mm2 JS interop results to int via num Dartify may return int or double from JS; use num.toInt() for stable returns. * chore: remove pending changes code review notes * chore: temporarily disable wasm * fix(wallet): launch TRON explorer URLs correctly * fix(wallet): preserve charts, improve TRON UX, and roll SDK * chore(docs): untrack local WASM audit * fix(wallet): hide HD warning banner * fix(wallet): confirm back clears preview; explorer address picker - WithdrawFormStepReverted: from confirm, go to fill and clear preview/previewError/transactionError\n- Coins without tx history: open explorer with showAddressSearch when multiple addresses * fix(wallet): add GRC20 coin type and enable TRON tx history Add dedicated GRC20 enum variant and mappings instead of aliasing to ERC20, and move TRX/TRC20 into the supported transaction-history list so the wallet displays TRON transactions. * chore(sdk): bump komodo defi sdk * fix(wallet): reuse receive dialog and handle empty fees Update the sdk submodule pointer to the merged dev commit for TRON transaction history.
* fix(wallet): coordinate activation through shared sdk path Force-refresh app activation checks before enabling assets, route activation through the shared SDK coordinator, and roll the sdk submodule to the TRX market-data and activation fixes. * chore(sdk): roll submodule to merged TRX activation fix Update the app to track the merged SDK dev commit that restores TRX market data and coordinates activation deduplication.
…3464) Keep legacy explorer launches working for assets that only expose a base explorer URL by falling back to the base transaction path. Add a regression test to preserve the fallback and 0x-prefix behavior.
…ning & UI redesign (#3465) * feat(wallet): balance confirmation and withdraw flow updates - Add CoinDetailsBalanceConfirmationController to confirm balance before showing amounts - Extend withdraw form BLoC/state/events and coin details UI integration - Improve coins repo/state USD conversion; update rewards and transaction views - Add unit tests for balance confirmation and coins USD conversion * fix: harden withdraw preview and balance confirmation * chore: update sdk submodule pointer * feat(wallet): redesign withdraw preview and success receipt UI Refactor the withdraw confirmation screen into card-based sections (summary, destination, TRON details) with responsive layouts, status banners for expiration/refresh state, and a dedicated success receipt replacing the reused TransactionDetails widget. * fix(wallet): address PR review feedback on withdraw BLoC and balance widget Use the live bloc state instead of the stale requestState snapshot when emitting the Trezor confirmation flag in _generatePreview, preventing isSending/isPreviewRefreshing from being reset mid-request. Add didUpdateWidget to _BalanceState so the confirmation controller and balance stream are torn down and re-bound when the parent supplies a different coin without remounting the widget. * fix(wallet): hoist Trezor confirmation flag into caller emissions Move isAwaitingTrezorConfirmation into the callers' own "in progress" emits (from requestState.copyWith) instead of emitting from the live bloc state getter inside _generatePreview. This keeps all emissions consistent with the explicit requestState snapshot pattern and makes _generatePreview a pure function with no side effects. * feat(wallet): add coin details section shortcut chips Add transactions and addresses chips to the coin details header so users can jump directly to those sections without scanning the full page. * fix(wallet): decouple coin details shortcut scrolling Keep section scroll keys in the coin details state and pass semantic callbacks to child widgets so the shortcut chips depend on actions rather than scroll implementation details. * fix(wallet): guard stale withdraw preview state merges Preserve unrelated async updates while discarding preview results and errors once the effective withdraw request changes. * test(wallet): expand coin details coverage across test layers Add comprehensive coin-details unit/BLoC and widget coverage, plus integration scenarios and aggregate test wiring, so regressions in withdraw, transaction details, rewards, and faucet/address flows are caught earlier. * fix(wallet): retry failed coin-details balance bootstrap Schedule bounded startup retries when bootstrap fetch fails so coin-details balance confirmation does not remain stuck unconfirmed when the stream is quiet. * chore(sdk): roll submodule to komodo-defi-sdk-flutter dev (b8555f1) Includes merged PR #342: RPC method hint for ambiguous KDF error parsing. * refactor(errors): centralize KDF user-facing messages in kdf_error_display Add formatKdfUserFacingError and extractKdfTechnicalDetails (MmRpc, GeneralErrorResponse, SdkError, activation wrappers). Use across withdraw, coin addresses, transaction history, bridge/taker fee and preimage paths, profit/loss and portfolio growth failures, and ARRR activation emit errors. Drop redundant English prefixes where the underlying error is already specific. Update withdraw_form_bloc tests.
- Rename library test modules to *_tests.dart so flutter test test_units/ loads - Update test_units/main.dart imports; fix fract2rat Rational normalization - Align backoff unit/integration tests with 1-minute default; doc comment fix - Analytics tests: dispose repository; table_utils: bloc/repo test harness - Wallet login test: unfocus before password-manager-style input - Add asset_ticker_group_sort and use in assets/grouped lists
* fix(ci): stabilize release candidate checks * fix(ci): use bundle preflight for native assets * fix(ci): avoid global melos dependency * fix(ci): scope sdk pub get to validation * fix(ci): enforce sdk lockfile in validation * fix(ci): restore validation and web test checks * fix(ci): resolve linux web and osv failures * fix(ci): pass configured chrome binary to web tests
Adds BUILD_DATE (ISO 8601 UTC, no spaces) to --dart-define for both the generate-assets composite action and the Docker Linux build script, so the Settings page no longer shows 'unknown' for the build date.
* fix(wallet): roll SDK for SIA withdrawal hardening * fix(wallet): roll SDK for TRC20 badge icon mapping fix Advance the sdk submodule pointer from 391334d to 6dddeee to pick up fix(ui): correct TRC20 badge icon mapping (#344).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Blocked on the conclusion of the KDF release.
Gleec Wallet v0.9.4 Release Notes
This release packages the current
devbranch work for the nextmainupdate with broader asset support, a stronger web runtime, and a much larger polish pass across the wallet. Highlights include TRON and SIA flows on top ofkomodo-defi-sdk v0.5.0, Flutter Web WASM support, runtime-loaded legal documents, refreshed wallet and trading surfaces, and the QA/release infrastructure that came out of the documented polish program.🚀 New Features
SDK Updates (komodo-defi-sdk-flutter)
This release integrates komodo-defi-sdk v0.5.0 with the audited SDK release changes bringing:
See the full SDK changelog for complete details.
🎨 UI/UX Improvements
More polish work...
⚡ Performance & Responsiveness
Completed responsiveness work...
trade_preimage, maker and taker volume calls, and bridge orderbook depth checks so rapid form edits and validations stop hammering RPC.my_recent_swapspayload pressure, slow swaps and orders refresh outside active DEX routes, and keep balance sweeps as fallback only when live watchers are unavailable.🐛 Bug Fixes
Completed validation and workflow fixes...
🔒 Security & Compliance
💻 Platform-Specific Changes
Web
Native Platforms
🔧 Technical Improvements
More technical work...
Full Changelog: e50aa370...bc0058a
flutter analyzeis not green in this checkout because bundled SDK product/example directories undersdk/products/...fail analysis; scoped wallet analysis completed with0 errors,17 warnings, and353 infosviaflutter analyze lib app_theme packages test_units test_integration --no-pub.komodo-defi-sdkat submodule commitb5626fdc1d507172a8b37e79d6120423343ff6af; the open SDK release PR also includes post-pin fixes from#335and#336, which are not yet rolled into this branch.🙏 Contributors
This release includes contributions from:
For developers building with Komodo DeFi SDK: this app release currently integrates
komodo-defi-sdk v0.5.0pinned atb5626fdc1d507172a8b37e79d6120423343ff6af. Review the SDK release PR GLEECBTC/komodo-defi-sdk-flutter#337 andsdk/CHANGELOG.mdfor the package-level release details and for the two newer fixes that are not yet included in this app branch.