-
Notifications
You must be signed in to change notification settings - Fork 13
Open
Description
Developer Experience Improvements
Feedback and suggestions based on real-world development experience building Proton.Link and related smart contracts (protonwall, protonrating).
1. WebAuthn Key Support - Clear Error Message (High Priority)
Issue: WebAuthn keys (PUB_WA_*) cannot sign transactions from the CLI, but there's no clear error message explaining this.
Current behavior:
proton action mycontract myaction '{}' myaccount
# Fails silently or with cryptic error when account uses WebAuthn keySuggestion:
- Add clear error message: "WebAuthn keys cannot sign from CLI. Please add a K1 key to your account's active permission."
- Document this limitation prominently in CLI help/docs
- Consider adding
proton key:check <account>command to verify if account can sign from CLI
2. Misleading Success/Error Messages (Medium Priority)
Issue: Some commands show error messages even when they succeed.
Example encountered:
proton contract:set protonrating ./assembly/target
# Output: "Error: Inline actions already enabled"
# But contract was actually deployed successfullySuggestion:
- Distinguish between warnings and errors
- Show clear success message with transaction ID when deployment succeeds
- Format:
✓ Contract deployed successfully (tx: abc123...)
3. RAM Purchase Syntax (Low Priority)
Issue: The ram:buy command syntax for authorization isn't intuitive.
What I tried:
proton ram:buy account account 150000 account@active # FailedWhat worked:
proton ram:buy account account 150000 -p account@active # SuccessSuggestion:
- Accept both positional and flag-based authorization
- Or update help text to clearly show
-pis required - Consider making authorization optional and defaulting to the payer account
4. Multi-Contract Context Safety (High Priority)
Issue: When working with multiple contracts, it's easy to accidentally deploy to the wrong account.
Suggestion: Add safety features:
# Option 1: Confirmation prompt
proton contract:set protonrating ./target
> You are about to deploy to 'protonrating'. Continue? [y/N]
# Option 2: Contract-account binding in config
proton config:bind ./protonrating-contract protonrating
# Then warn if deploying from wrong directory
# Option 3: Show current "active contract context"
proton contract:context
> Current: protonrating (last deployed 2h ago)5. Additional Nice-to-Haves
Table Query Output Formatting
proton table protonrating ratings --format=table # ASCII table
proton table protonrating ratings --format=json # Current default
proton table protonrating ratings --format=csv # For exportsTransaction History Command
proton history <account> --limit=10
# Shows recent actions performed by/on accountDry Run Mode
proton action mycontract transfer '{"from":"a","to":"b","quantity":"1.0000 XPR"}' sender --dry-run
# Output: Would transfer 1.0000 XPR from 'a' to 'b'
# Estimated CPU: 250 µs, NET: 128 bytesSummary
| Suggestion | Priority | Impact |
|---|---|---|
| WebAuthn key error message | High | Saves hours of debugging |
| Multi-contract safety | High | Prevents costly mistakes |
| Better success/error distinction | Medium | Reduces confusion |
| RAM purchase syntax | Low | Minor friction |
Happy to discuss any of these further or contribute PRs if there's interest!
Metadata
Metadata
Assignees
Labels
No labels