Skip to content

Release v4.9.6#931

Open
gummy789j wants to merge 5 commits into
masterfrom
release_v4.9.6
Open

Release v4.9.6#931
gummy789j wants to merge 5 commits into
masterfrom
release_v4.9.6

Conversation

@gummy789j
Copy link
Copy Markdown
Collaborator

@gummy789j gummy789j commented May 13, 2026

Summary

This PR builds on standard CLI stdin credential input and adds:

  • Standard CLI Ledger signing support
  • Standard CLI address book / alias support
  • Hardening fixes for Ledger timeout state and alias persistence
  • Version bump to v4.9.6

Changes

Ledger support for standard CLI

  • Adds non-interactive Ledger signing for standard CLI wallet-authenticated commands.
  • Uses the selected Ledger keystore’s stored BIP44 path and address.
  • Requires normal keystore auth via MASTER_PASSWORD / --password-stdin.
  • Suppresses legacy Ledger stdout noise so JSON output remains machine-readable.
  • Emits structured ledger_* errors:
    • ledger_not_connected
    • ledger_app_not_open
    • ledger_sign_by_hash_disabled
    • ledger_unsupported_contract
    • ledger_already_signing
    • ledger_user_rejected
    • ledger_timeout
    • ledger_sign_failed
  • Adds Ledger timeout state tracking so stale signing state does not block later standard CLI commands.

Address book alias support

  • Adds per-network alias files under Wallet/aliases/<network>.json.
  • Adds built-in token aliases for supported networks.
  • Adds alias commands:
    • alias-add
    • alias-remove
    • alias-list
    • alias-resolve
  • Supports typed alias resolution:
    • account-position options resolve account aliases
    • contract/token-position options resolve token aliases
  • Adds JSON audit metadata for resolved aliases under meta.resolved.
  • Keeps raw Base58Check and hex TRON addresses working directly.

Hardening fixes

  • Prevents malformed user alias files from being treated as empty during mutating alias commands.
  • Rejects invalid token decimals outside 0..18.
  • Ensures Ledger quiet-mode singleton state is reset on production adapter exceptions.
  • Separates Ledger timeout from user rejection by adding explicit timeout state.

Docs and QA

  • Updates standard CLI contract spec.
  • Adds Ledger standard CLI user manual section.
  • Adds Ledger smoke QA doc.
  • Adds alias QA script.

Testing

Targeted tests passed:

./gradlew test --tests 'org.tron.walletcli.cli.aliases.*' \
  --tests org.tron.walletcli.cli.ledger.NonInteractiveLedgerSignerTest \
  --tests org.tron.walletcli.cli.StandardCliRunnerTest

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.

1 participant