# Phase 2, Milestone 2: CLI Commands > Complete CLI command implementation **Status**: ✅ Complete **Priority**: High **Application**: `synor-cli` --- ## Overview Implement all 23 CLI commands for wallet management, transactions, block queries, and smart contract interaction. --- ## Tasks ### Task 2.1: Wallet Commands - [x] `synor wallet create` - Generate new wallet - [x] `synor wallet recover` - Recover from mnemonic - [x] `synor wallet info` - Display wallet info - [x] `synor wallet addresses` - List addresses - [x] `synor wallet new-address` - Generate new address - [x] `synor wallet export` - Export wallet backup - [x] `synor wallet import` - Import wallet backup **Files:** - `apps/cli/src/commands/wallet.rs` **Validation:** ```bash ./target/release/synor wallet create ./target/release/synor wallet info ./target/release/synor wallet addresses ``` ### Task 2.2: Balance & Transaction Commands - [x] `synor balance` - Query UTXO balance - [x] `synor send
` - Send SYNOR - [x] `synor tx ` - View transaction details - [x] `synor mempool` - View pending transactions - [x] `synor utxos` - List UTXOs **Files:** - `apps/cli/src/commands/balance.rs` - `apps/cli/src/commands/send.rs` - `apps/cli/src/commands/tx.rs` **Validation:** ```bash ./target/release/synor balance ./target/release/synor send synor:qz... 1.0 ./target/release/synor tx ``` ### Task 2.3: Block Commands - [x] `synor block ` - Fetch block - [x] `synor tips` - Get current DAG tips - [x] `synor info` - Chain information **Files:** - `apps/cli/src/commands/block.rs` - `apps/cli/src/commands/info.rs` **Validation:** ```bash ./target/release/synor block 0 ./target/release/synor tips ./target/release/synor info ``` ### Task 2.4: Network Commands - [x] `synor peers` - List connected peers - [x] `synor peer add ` - Add peer - [x] `synor peer ban ` - Ban peer **Files:** - `apps/cli/src/commands/peers.rs` **Validation:** ```bash ./target/release/synor peers ``` ### Task 2.5: Mining Commands - [x] `synor mining start` - Start mining - [x] `synor mining stop` - Stop mining - [x] `synor mining status` - Mining status - [x] `synor mining set-address` - Set coinbase address **Files:** - `apps/cli/src/commands/mining.rs` **Validation:** ```bash ./target/release/synor mining status ``` ### Task 2.6: Smart Contract Commands - [x] `synor contract deploy ` - Deploy contract - [x] `synor contract call ` - Call contract - [x] `synor contract query ` - Query contract (read-only) **Files:** - `apps/cli/src/commands/contract.rs` **Validation:** ```bash ./target/release/synor contract deploy ./contract.wasm ./target/release/synor contract call transfer --args '...' ``` ### Task 2.7: Governance Commands - [x] `synor gov propose` - Create proposal - [x] `synor gov vote` - Vote on proposal - [x] `synor gov list` - List proposals - [x] `synor gov info` - Governance info **Files:** - `apps/cli/src/commands/governance.rs` **Validation:** ```bash ./target/release/synor gov list ./target/release/synor gov info ``` --- ## Validation ### Validation Commands ```bash # List all commands ./target/release/synor --help # Test each command category ./target/release/synor wallet --help ./target/release/synor mining --help ./target/release/synor contract --help ./target/release/synor gov --help # Run CLI tests cargo test -p synor-cli ``` ### Validation Agents | Agent | Purpose | |-------|---------| | `code-reviewer` | Review command implementations | | `Explore` | Verify all commands exist | ### Command Matrix | Command | Args | Output | RPC Method | |---------|------|--------|------------| | `balance` | - | Amount | `synor_getBalance` | | `send` | addr, amt | TxHash | `synor_submitTransaction` | | `block` | hash/height | Block | `synor_getBlock` | | `tips` | - | Hash[] | `synor_getTips` | | `info` | - | NodeInfo | `synor_getInfo` | | `peers` | - | Peer[] | `synor_getPeerInfo` | | `mempool` | - | Tx[] | `synor_getMempool` | ### Security Checks - [ ] Sensitive data (keys, mnemonic) not logged - [ ] Password input hidden - [ ] RPC connection uses timeout - [ ] Invalid addresses rejected early - [ ] Amount overflow checked ### UX Validation - [ ] Help text for all commands - [ ] Error messages are helpful - [ ] Progress indicators for long operations - [ ] Confirmation prompts for destructive actions --- ## Output Formats All commands support: - Human-readable (default) - JSON (`--format json`) - Compact (`--format compact`) ```bash ./target/release/synor balance --format json ``` --- ## Acceptance Criteria 1. All 23 commands implemented 2. Help text for every command 3. JSON output format supported 4. Error handling complete 5. All commands tested --- *Completed: January 2025*