Repository navigation
exo-408 items 10 and 14: refused rail wording; the LEZ preview prices from its real source (revives #288) - #329
Merged
Merged
Conversation
Item 10 of exo-408. A refused policy switch (a Bitcoin split with no node, a private split with no LEZ wallet) leaves the previous policy in force and pickPending set, which already keeps Propose off. But the line under the picker said "Propose waits while this proposal switches to …", and after a refusal it never switches. It now says the proposal could not switch, with the reason from chainErrorWords. exo-a2a is closed too: its spec's probes landed under exo-3f2 and it grades 7/7. TDD-Exempt: wording on an existing gate; ui-lint 0 findings; no recorded fixture of a refused switch yet Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Session-Id: 4184ac11-a506-5256-a1c3-4f1e988410ce
… will spend Item 14 of exo-408. wallet_estimate_fee took no source, so the LEZ preview always priced from the module's first account there, the public one. A send from a shielded account previewed the public rail and its disclosure, while the send itself (wallet_send, which reads the source's real form) went private. The educational layer then said something the code does not do. wallet_estimate_fee now takes from_id (empty = the module's account, as before); the hosted estimate builds the source with its real form, as wallet_send does; the backend passes the account the Send panel names. Surface regenerated. TDD-Exempt: wiring on the hosted surface, which no suite test compiles; nim check of muster_module.nim clean; the runner build compiles the UI against the regenerated client Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Session-Id: 4184ac11-a506-5256-a1c3-4f1e988410ce
…s own TDD-Exempt: tracker only Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Session-Id: 4184ac11-a506-5256-a1c3-4f1e988410ce
…will spend wallet_estimate_fee gained from_id in this PR; the seaqt port (ui-nim) still called it with four arguments, which would break make build-nim. It now passes fromId, as the C++ backend. TDD-Exempt: a caller kept in step with a contract change; checked by building the Nim UI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Session-Id: dae9f1e7-9a60-57e2-8d29-9afc3c6527d1
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.
Revives #288 by rebasing it onto current main, with two changes:
muster_gen.nimwas the only conflict. It's generated, so I took main's copy and regenerated it withmodule/tools/regen.sh(SDK6077eb7). The diff is exactlywallet_estimate_feegainingfrom_id.ui-nim/app/backend.nim) still calledwallet_estimate_feeAsyncwith four arguments, which would breakmake build-nim. It now passesfromId, like the C++ backend. Separate commit.Re-tested on main (2026-10-17):
.lgxbuilds;scripts/build-runner-nim.sh);ui-linthas only the 2 baseline-new findings already on main, both inClaimsRegistry.qml.Original description:
wallet_estimate_feetook no source, so the preview always priced from the module's first LEZ account, the public one. A send from a shielded account previewed the public rail and its disclosure, while the send itself went private: the educational layer said something the code doesn't do.wallet_estimate_feenow takesfrom_id(empty = the module's account, as before), and the hosted estimate builds the source with its real form, aswallet_senddoes. Contract changed, surface regenerated; the backend passes the account the Send panel names.pickPendingis incomposeBlocked), but the line said "Propose waits while this proposal switches to …", and a refused switch never completes. It now says the proposal could not switch, with the reason.a2d3819), andgrade-specs.sh exo-45egrades 7/7.Checks:
nim checkof the hosted module is clean, and the regenerated surface has 92 methods.scripts/ui-parity.shwithMUSTER_FLEET=local: 10 of 11 green in the table. The split test was red only for want of foundry on PATH, and it passes undernix shell nixpkgs#foundry.ui-lint: 0 findings.Still open in exo-408: 1, 11, 12, 15. The pebble notes that the Send panel's chain id is the LEZ adapter's own constant
lez:testnet, so it matches the module; that's not a bug.🤖 Generated with Claude Code