Conversation
original widget was made as a text input field, delaying updates to post frame updates to avoid state update conflicts. it is currently being used as a label, so no such complications are necessary. CoinTradeAmountFormField has no references and can be removed
…ty (#3328) - Propagate errors from best_orders instead of returning empty results - Treat P2P 'No response from any peer' (including wrapped Exception) as no orders - Add debug-only failure simulator toggled via kSimulateBestOrdersFailure feat(ui): CTA to Maker when no orders; contextual localized messages - Taker: show CTA when no swap offers available - Bridge: show CTA when no cross-network routes exist - Add locale keys: dexNoSwapOffers, bridgeNoCrossNetworkRoutes
…logging chore(settings): add logging and avoid silent skipping
* fix ci * add wasm libs for CI * cp wasm * echo ls kdf bins * fix typo * rm ls * fix typo * fix macOS CI build * cp wasm files manually * update sdk * update sdk * update sdk * use komodo earth libs * build(web): ignore KDF generated binaries and remove accidentally committed files under web/kdf/kdf/bin --------- Co-authored-by: CharlVS <77973576+CharlVS@users.noreply.github.com>
no references to the DI, but good to fix for consistency & to avoid any surprises down the line
This reverts the changes from 9900372 that attempted to show unconfirmed transactions first. The previous approach caused transactions to appear in a chaotic order during synchronization, creating confusion until all transactions are fully loaded.
disable NFT page in sidebar menu
fix macos app icons
bypass ARRR autoactivation if sync params have not previously set
fix missing import
…mport functionality
…n and updating share method to use SharePlus with appropriate parameters for text and compressed files.
…gin and correct import path for app configuration.
fix(ios): fix download logs dialog not opening on iOS
feat: add photo library usage description to Info.plist for QR code i…
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
ios/Runner/Info.plist(1 hunks)lib/services/file_loader/mobile/file_loader_native_ios.dart(4 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.dart
📄 CodeRabbit inference engine (AGENTS.md)
**/*.dart: Runflutter analyzeand resolve issues before committing code
Format Dart code withdart format(on changed files) before committing
Files:
lib/services/file_loader/mobile/file_loader_native_ios.dart
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
- GitHub Check: Build Mobile (Android)
- GitHub Check: build_and_preview
- GitHub Check: Build Desktop (macos)
- GitHub Check: unit_tests
- GitHub Check: Build Desktop (linux)
- GitHub Check: Build Desktop (windows)
- GitHub Check: validate_code_guidelines
- GitHub Check: Test web-app-linux-profile
- GitHub Check: Test web-app-macos
🔇 Additional comments (2)
ios/Runner/Info.plist (1)
34-35: Photo library permission copy looks correct.Clear justification for importing QR codes—good addition for App Store privacy review.
lib/services/file_loader/mobile/file_loader_native_ios.dart (1)
50-61: SharePlus migration and metadata look solid.Nice move to the new
SharePlus.instance.shareAPI with explicit filenames, MIME types, and anchor rect—this should give a smoother iOS share sheet experience.Also applies to: 77-88
| Rect? _getSharePositionOrigin() { | ||
| final context = scaffoldKey.currentContext; | ||
| if (context == null) return null; | ||
|
|
||
| final box = context.findRenderObject() as RenderBox?; | ||
| if (box == null) return null; | ||
|
|
||
| return box.localToGlobal(Offset.zero) & box.size; | ||
| } |
There was a problem hiding this comment.
Guard the share origin cast to avoid runtime crashes.
context.findRenderObject() can return a RenderView (or other non-RenderBox) when the keyed context points at the navigator/root overlay. Casting it straight to RenderBox? will throw before the null-check, crashing the share flow on iOS tablets. Bail out when the render object isn’t a RenderBox before computing the rect.
- final box = context.findRenderObject() as RenderBox?;
- if (box == null) return null;
+ final renderObject = context.findRenderObject();
+ if (renderObject is! RenderBox) return null;
+ final box = renderObject as RenderBox;📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Rect? _getSharePositionOrigin() { | |
| final context = scaffoldKey.currentContext; | |
| if (context == null) return null; | |
| final box = context.findRenderObject() as RenderBox?; | |
| if (box == null) return null; | |
| return box.localToGlobal(Offset.zero) & box.size; | |
| } | |
| Rect? _getSharePositionOrigin() { | |
| final context = scaffoldKey.currentContext; | |
| if (context == null) return null; | |
| final renderObject = context.findRenderObject(); | |
| if (renderObject is! RenderBox) return null; | |
| final box = renderObject as RenderBox; | |
| return box.localToGlobal(Offset.zero) & box.size; | |
| } |
🤖 Prompt for AI Agents
In lib/services/file_loader/mobile/file_loader_native_ios.dart around lines 15
to 23, the code currently casts context.findRenderObject() directly to RenderBox
which can throw if the render object is a RenderView or any non-RenderBox;
update the function to first capture the renderObject, check whether it is a
RenderBox (e.g. if (renderObject is! RenderBox) return null), then safely
cast/use it to compute the rect and return the share origin; ensure you do not
perform a direct as RenderBox cast before this type check so the function bails
out safely when the render object is not a RenderBox.
…ys handling (#3375) * refactor: improve handling of private keys in security settings to prevent state loss during async operations * debug: private key retrieval and cache * feat: add handling for empty private keys in security settings to improve user feedback * feat: clear previously stored private keys to prevent stale data in security settings * refactor: remove redundant clearing of fetched keys in security settings to streamline error handling * fix: ensure state preservation by updating private keys within setState in security settings
smk762
left a comment
There was a problem hiding this comment.
Multi-OS testing completed (including iOS build 23). Testing on https://walletrc.web.app/wallet is also passing, though a couple of commits behind on cf8bdfa.
v0.9.3 contains many valuable improvements wrt performance and UX which are sorely needed.
The only remaining issues are known problems with a solution on the way (most notably ios sleep issues), or otherwise deferable to v0.9.4 (e.g. minor cosmetic issues or UX enhancements which need more review or implementation)
Big thanks to all involved with the strategic planning, code contribution & testing, along with the community members sending us valuable & actionable feedback towards improving and enhancing the Komodo Wallet.
Blocked on currently pending issues/PRs. Deadline of Tuesday, 4 November.
Komodo Wallet v0.9.3 Release Notes
This release delivers significant performance improvements, enhanced analytics capabilities, and a comprehensive overhaul of authentication and wallet management. Key highlights include real-time portfolio streaming, a dual analytics pipeline with persistent queueing, one-click sign-in, Z-HTLC support, and extensive optimisations that reduce RPC usage while improving responsiveness across all platforms.
🚀 New Features
CoinsBlocstreaming, eliminating the need for manual refreshesSDK Updates (komodo-defi-sdk-flutter)
This release integrates komodo-defi-sdk v1.0.0-pre.1 with 82 commits bringing substantial improvements:
See the full SDK changelog for complete details.
🎨 UI/UX Improvements
⚡ Performance Enhancements
🐛 Bug Fixes
TransactionHistoryBlocper-coin to prevent history mixingUiDropdownwidget, preventing app freeze on logoutmax_maker_volfor spendable balanceKomodoDefiSdkis disposed during periodic fetch🔒 Security & Compliance
💻 Platform-Specific Changes
All Platforms
macOS
Linux
G_APPLICATION_DEFAULT_FLAGSbehind GLib ≥ 2.74, fallba… #3105) - GuardG_APPLICATION_DEFAULT_FLAGSbehind GLib ≥ 2.74 with fallback for older versionsWindows
iOS
Web
--no-web-resources-cdnto web build in build.shDocker & DevOps
🔧 Technical Improvements
SDK Integration (komodo-defi-sdk v1.0.0-pre.1)
Analytics & Monitoring
Developer Experience
Code Quality
📚 Documentation
docs/MANUAL_TESTING_DEBUGGING.md🙏 Contributors
This release includes contributions from 11 developers:
Full Changelog: 0.9.2...0.9.3
For developers building with Komodo DeFi SDK: This release includes komodo-defi-sdk v1.0.0-pre.1 with breaking changes related to streaming APIs and caching behaviour. Review the SDK changelog for migration guidance.
Note
Updates v0.9.3 changelog, adjusts CI for desktop builds (macOS bundle ID, disable codesigning on PRs), hardens web WASM validation, ignores generated KDF binaries, bumps SDK submodule, and fixes macOS app data path in tests.
CHANGELOG.mdfor v0.9.3 with expanded features, fixes, and platform notes./.github/workflows/desktop-builds.yml: change macOSbundle-idtocom.komodo.wallet; disable macOS code signing on PR builds via env flags..github/actions/validate-build/action.yml: replace fragile WASM file check with glob-based discovery and targeted directory listings; echo found files..gitignore: ignoreweb/kdf/kdf/bin/generated binaries; keepdist/ignored.sdk: update submodule to61a4170.test_integration/runners/app_data.dart: update macOS app data container path tocom.komodo.wallet.Written by Cursor Bugbot for commit cefa1e6. This will update automatically on new commits. Configure here.
Summary by CodeRabbit
New Features
Bug Fixes
Performance Enhancements
UI/UX Improvements
Chores