Repository navigation
Conversation
fnando
force-pushed
the
muxed-contract-w-address
branch
from
October 30, 2026 23:22
a025b72 to
fc2bebc
Compare
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
An active nit remains because related MuxedAddress error descriptions still omit the newly supported W... format, leaving user-facing guidance inconsistent.
1 open issue
What changed in this PR
This pull request completes CLI handling for Protocol 30 muxed contract (W…) addresses by improving authorization errors, signing-prompt formatting, argument guidance, and address serialization tests.
Changes:
- Rejects muxed account and contract authorization entries with explicit errors instead of panicking or returning generic errors.
- Renders muxed contract addresses as
W…strkeys in signing prompts. - Updates muxed-address documentation and adds
W…parsing and round-trip coverage.
| File | Description |
|---|---|
cmd/soroban-cli/src/signer/mod.rs |
Adds explicit rejection paths and tests for muxed account and contract authorization addresses. |
cmd/soroban-cli/src/log/auth.rs |
Formats authorization addresses as strkeys and tests muxed contract rendering. |
cmd/soroban-cli/src/commands/contract/arg_parsing.rs |
Updates unsupported-address guidance for muxed contract formats. |
cmd/crates/soroban-spec-tools/src/lib.rs |
Documents muxed contract support and tests W… parsing and serialization. |
Review effort: Lite
| actual: usize, | ||
| }, | ||
| #[error("Unsupported address type '{address}'\n\nSupported formats:\n- Account addresses: G... (starts with G)\n- Contract addresses: C... (starts with C)\n- Muxed accounts: M... (starts with M)\n- Identity names: alice, bob, etc.\n\nReceived: '{address}'")] | ||
| #[error("Unsupported address type '{address}'\n\nSupported formats:\n- Account addresses: G... (starts with G)\n- Contract addresses: C... (starts with C)\n- Muxed accounts: M... (starts with M)\n- Muxed contracts: W... (starts with W)\n- Identity names: alice, bob, etc.\n\nReceived: '{address}'")] |
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.

What
Completes CLI handling for Protocol 30 (CAP-84) muxed contract
W…addresses. In the auth signer, contract and muxed-contract addresses now return the dedicatedContractAddressAreNotSupportederror, and muxed accounts returnMissingSignerForAddressinstead of hitting atodo!()panic. The signing-prompt formatter rendersW…strkeys instead of raw debug XDR, and theMuxedAddressargument help plus the unsupported-address error now mention theW…form. Adds tests for theW…strkey round-trip, the signer rejection paths, and the formatter.Why
Protocol 30 introduces muxed contract (
W…) addresses. The CLI already parsed and encoded them, but the surrounding surfaces were incomplete: signing an auth entry whose credential was a muxed account panicked, muxed contracts produced a generic missing-signer error, the signing prompt printed raw XDR forW…, and the help/error text never mentionedW…. This makes the behavior correct and consistent, and removes a panic.Known limitations
Signing with a muxed address is still unsupported — both
M…(muxed account) andW…(muxed contract) are rejected, now gracefully rather than panicking. Only theMuxedAddressdescriptor advertisesW…, mirroring howM…is handled (the plainAddressdescriptor lists neither).