[wip] accounts / signer refactor#4502
Draft
DelevoXDG wants to merge 4 commits into
Draft
Conversation
Primary: - Replace untagged `SignerType` deserialize with flat `Option<>` fields; soft-parse `Ambiguous` - Capture `unknown_fields` on `AccountData`; keep on-disk accounts JSON shape unchanged - Rework `account list` to display `Ambiguous`/ledger via `SignerDisplay` without serializing `SignerType::Ambiguous` Context: - Hard-fail `Ambiguous` on use (`build_signer`) and on serialize (prevent wiping keys) - Add `build_signer` → `SignerBackend` seam; route account resolve, deploy, and address compute through it - Add `build_account_variant` wrap helper; remove duplicated local/ledger account construction paths - Route devnet accounts through `build_signer`; drop separate local-only builder
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.
Towards #4498
Introduced changes
Primary:
SignerTypedeserialize with:SignerTypeParams- file representation, with flatOption<>fields for signer locators (private_key,ledger_path+ upcomingkeystoreandkeyringvariants)SignerType- internal repr withAmbiguousvariant for clear handling (soft-parsing) of 0 or ≥2 locator fields.unknown_fieldsonAccountDataaccount list: always showsigner_type(private_key|ledger|ambiguous) in text + JSONcommandfield inaccount list --json:account delete→account listContext:
Ambiguouson use (build_signer) and onserialize(avoid wiping locator keys on write)build_signer→SignerBackend(resolve / deploy / address compute / devnet); drop duplicated local/ledger buildersChecklist
CHANGELOG.md