Skip to content

fix: Salvium sync (post-fork native libs + connect status visibility)#1405

Open
mmokhi wants to merge 2 commits into
cypherstack:stagingfrom
mmokhi:fix/salvium-sync-status
Open

fix: Salvium sync (post-fork native libs + connect status visibility)#1405
mmokhi wants to merge 2 commits into
cypherstack:stagingfrom
mmokhi:fix/salvium-sync-status

Conversation

@mmokhi

@mmokhi mmokhi commented Jun 9, 2026

Copy link
Copy Markdown

Why

Salvium wallets cannot sync, against the default node or a self-hosted one. The default node (salvium.stackwallet.com:19081) is healthy and answers get_info/get_height over SSL, so this is client side, not a server.

Root cause: the bundled native wallet lib is pre-fork. cs_salvium_flutter_libs is the package that actually does the chain sync, and the committed lockfile is still pinned at 2.0.1 (pre-fork bins) even though the pubspec template already requires ^3.0.1. Builds only end up on 3.0.1 because plain pub get re-resolves at build time, the committed lock never reflected the fix and nothing makes it explicit/reproducible.

No published release carries the new bins yet: latest release v2.4.4 (2026-02-11) predates the bins bump (2026-05-26), so shipped Salvium has the same problem.

What

  • Pin cs_salvium_flutter_libs to 3.0.1 in pubspec.lock (only the cs_salvium_flutter_libs family moves, regenerated with flutter pub get). cs_salvium dart wrapper stays at 2.0.0 (latest) and platform_interface stays 1.0.0, both confirmed compatible by the resolve.
  • Uncomment ConnectedSyncStatus / FailedSyncStatus in LibSalviumWallet.updateNode(). They were left commented from the initial salvium integration, so a failed connect only logged and the UI sat on a silent "Connecting..." spinner. Now it reports "unable to sync", matching lib_monero_wallet.

Notes

The sync fix itself is the 3.0.1 bins. The status uncomment is for visibility, if it still fails on 3.0.1 the real error surfaces instead of a spinner. Confirmed the branch is +2 commits clean on top of staging.

mmokhi added 2 commits June 9, 2026 15:51
updateNode() had the ConnectedSyncStatus and FailedSyncStatus calls
commented out, so a failed daemon connection only got logged and the
wallet stayed stuck on "Connecting..." forever instead of showing
"unable to sync".

This uncomments them so connect success and failure are both reflected
in the sync status, matching how lib_monero_wallet already behaves. Both
status classes are defined in this same file so it compiles as is.
The pubspec template already requires cs_salvium_flutter_libs ^3.0.1 but
the committed lockfile was still pinned at 2.0.1, the pre-fork native
libs that cannot sync the current Salvium chain. Builds only ended up on
3.0.1 because plain pub get re-resolved it at build time, the committed
lock never reflected the fix.

Regenerated with flutter pub get and kept only the cs_salvium_flutter_libs
family changes (3.0.0/3.0.1). Everything else stays at its current pin.
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