Skip to content

Various patches - #1501

Merged
julian-CStack merged 22 commits into
stagingfrom
various-patches
Nov 5, 2026
Merged

julian-CStack merged 22 commits into
stagingfrom
various-patches

Conversation

@julian-CStack

Copy link
Copy Markdown
Collaborator

No description provided.

@codecov

codecov Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 75.00000% with 159 lines in your changes missing coverage. Please review.
✅ Project coverage is 13.89%. Comparing base (3342a68) to head (2585f28).
⚠️ Report is 1 commits behind head on staging.

Files with missing lines Patch % Lines
...my_stack_view/wallet_view/desktop_wallet_view.dart 0.00% 47 Missing ⚠️
lib/db/sqlite/firo_cache_coordinator.dart 87.60% 15 Missing ⚠️
...ub_widgets/more_features/more_features_dialog.dart 36.84% 12 Missing ⚠️
...b/wallets/isar/providers/wallet_info_provider.dart 0.00% 12 Missing ⚠️
...overy_phrase_view/verify_recovery_phrase_view.dart 0.00% 7 Missing ⚠️
lib/pages_desktop_specific/desktop_home_view.dart 0.00% 7 Missing ⚠️
...r/providers/solana/sol_token_balance_provider.dart 79.41% 7 Missing ⚠️
lib/wallets/wallet/impl/epiccash_wallet.dart 0.00% 7 Missing ⚠️
lib/wallets/wallet/impl/firo_wallet.dart 0.00% 7 Missing ⚠️
lib/services/price_service.dart 66.66% 5 Missing ⚠️
... and 11 more
Additional details and impacted files
@@             Coverage Diff             @@
##           staging    #1501      +/-   ##
===========================================
+ Coverage    11.66%   13.89%   +2.22%     
===========================================
  Files         1136     1137       +1     
  Lines       114405   114625     +220     
===========================================
+ Hits         13349    15924    +2575     
+ Misses      101056    98701    -2355     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

slopbot9k and others added 15 commits November 4, 2026 18:10
Reject invalid version/platform inputs before changing project files, and stop prebuild work after the first failure. Includes Dart host tests.

Co-authored-by: julian <julian@julians-Virtual-Machine.local>
Release Isar subscriptions with provider lifecycles and retain desktop preferences during teardown, preventing late updates into disposed state.

Co-authored-by: slopbot9k <slop9000@tuta.io>
Add a Dart launcher and real UI/native create/reopen harness for the 24 mnemonic-wallet defaults. Production changes here are limited to test controls, opt-out notification prompts, and native Epic address verification.

Treat explicit build or app failures as failed phases even when completion markers appear, and drain process output before closing the log when stopping the process tree fails.
Keep focused input and cursor positions stable while estimates change. Ignore stale responses and prevent pending exchange work from updating disposed or successor forms.

Schedule the frame that clears the shared loading state when a refresh finishes without changing anything else.

Co-authored-by: slopbot9k <slop9000@tuta.io>
Clearing fiat input also clears the stored send amount, preventing a later unit or locale change from restoring an old amount. Covers mobile and desktop coin/token forms.
Keep controller updates separate from user edits, observe fee formatting in the main build, and preserve the exact amount passed to prepareSend.
Share concurrent refresh work and retain its lock until both history and UTXO requests finish, including failures. Handle unavailable view-only state and allow automatic retries safely.

Exit stops automatic polling and returns immediately while refresh requests remain pending. Native Monero, Wownero and Salvium exits stop it through the base exit as well. Cover stalled requests, failures, late completions, late pings and reopening.

Co-authored-by: slopbot9k <slop9000@tuta.io>
Create filtered lists without altering the original all/favourite wallet collections so normal views restore correctly when duress mode ends.

Co-authored-by: slopbot9k <slop9000@tuta.io>
Persist and return the actual derived receiving-address index so subsequent derivations do not repeat or skip the wrong index.
Use canonical program IDs and the validated sender token program for associated-account derivation, account creation and transfer instructions. Report failed confirmations to the caller, remove their pending transfer record, and take the token program from the transfer instruction rather than its position.
Invalidate old fetch generations, serialize file resets in the worker, reject late writes and recover interrupted resets from a durable marker. Tags-only resets preserve sets. No foreground VACUUM.

Refreshes restart after a shared reset, a bounded number of times, and a failed local reset is retried by the next cache read instead of disabling the cache for the session.
Key cached prices by currency and discard obsolete responses across recreated API instances, preventing USD values from appearing as BTC or replacing newer USD prices. Migrate prices cached before this change to the saved currency once at startup.
Guard each asynchronous stage against disposal, suppress late notifications and prevent disposed services from restarting their polling timers.

Co-authored-by: slopbot9k <slop9000@tuta.io>
Start polling for recreated price providers and restart it when settings change currency, while retaining one active timer and a single immediate fetch.

Co-authored-by: slopbot9k <slop9000@tuta.io>
Show one decimal place in both confirmation layouts, omit invalid/unknown sizes, and use exact integer rounding to preserve large atomic values.

Co-authored-by: slopbot9k <slop9000@tuta.io>
slopbot9k and others added 7 commits November 5, 2026 11:02
A full cache reset rebuilds SparkSet, so a wallet's stored block hash may no longer exist. The incremental query then matched nothing and the wallet still advanced its checkpoint, skipping coins received before the reset. Treat an unknown hash as the start of the set.
The destination token account came from getTokenAccountsByOwner and was only checked against the System Program, so a hostile node could answer with any holder's account for the same mint. Always use the recipient's derived ATA and compare owner addresses for self-transfer detection.
The checkpoint lookup matched on block hash alone. Firo never reports one block for two groups today, but the schema allows it, and a match in another group would move the cutoff and skip this group's newer sets. Scope the lookup to the requested group.
Upstream CI formats every Dart file changed on a PR. This file was already unformatted on staging and only became a changed file with the checkpoint fixes.
@julian-CStack
julian-CStack merged commit e11de13 into staging Nov 5, 2026
4 checks passed
@julian-CStack
julian-CStack deleted the various-patches branch November 5, 2026 20:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant