Skip to content

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

Merged
julian-CStack merged 1 commit into
cypherstack:stagingfrom
mmokhi:fix/salvium-sync-status
Jun 12, 2026
Merged

fix: Salvium sync (post-fork native libs + connect status visibility)#1405
julian-CStack merged 1 commit into
cypherstack:stagingfrom
mmokhi:fix/salvium-sync-status

Conversation

@mmokhi

@mmokhi mmokhi commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

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.

@julian-CStack julian-CStack left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pubspec lockfile does not need to be updated. Please drop that commit and I'll merge the changes in the other commit

@mmokhi mmokhi force-pushed the fix/salvium-sync-status branch from 3605843 to 20499f1 Compare June 12, 2026 08:13
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.
@mmokhi mmokhi force-pushed the fix/salvium-sync-status branch from 20499f1 to 0cb6240 Compare June 12, 2026 08:14
@mmokhi

mmokhi commented Jun 12, 2026

Copy link
Copy Markdown
Contributor Author

The pubspec lockfile does not need to be updated. Please drop that commit and I'll merge the changes in the other commit

Done @julian-CStack :)
Thanks for the review

@julian-CStack julian-CStack merged commit 3015125 into cypherstack:staging Jun 12, 2026
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.

2 participants