This commit is contained in:
@@ -0,0 +1,33 @@
|
|||||||
|
# Rabby Implementation Status
|
||||||
|
|
||||||
|
Current repo: `https://gitea.thetomyou.com/mistercorea/rabby`
|
||||||
|
|
||||||
|
This file records what is now actually wired at runtime versus what is still modeled or UI-only.
|
||||||
|
|
||||||
|
## Runtime implemented slices
|
||||||
|
|
||||||
|
| Slice | Commit | Runtime behavior | Verification |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| Encrypted local wallet vault | `fc17c44` | Saves/loads the demo wallet dashboard through AES-256-GCM envelopes with Argon2id-derived keys; rejects blank/wrong passphrases; avoids plaintext wallet data in the vault file. | `cargo test -p rabby-runtime wallet_vault::tests` |
|
||||||
|
| Local terminal command bridge | `a215d91` | UI can run a local shell command through a Tauri command backed by `rabby-runtime::local_terminal`; captures stdout/stderr/exit code. | `cargo test -p rabby-runtime local_terminal::tests`; `cargo test -p rabby local_command_tauri_bridge_captures_output` |
|
||||||
|
| Customization persistence | `6e08e0e` | UI settings can persist app config/theme through the Rust `JsonFileConfigStore`. | `cargo test -p rabby save_and_load_app_config_round_trips_custom_theme` |
|
||||||
|
| SSH command bridge | `fb5a028` | UI can submit a remote command through system `ssh` using BatchMode and connect timeout. Unit tests verify argument construction/validation without requiring a real server. | `cargo test -p rabby-runtime ssh_runtime::tests`; `cargo test -p rabby ssh_command_bridge_rejects_blank_host` |
|
||||||
|
|
||||||
|
## Still not complete
|
||||||
|
|
||||||
|
These are still **not** full production parity:
|
||||||
|
|
||||||
|
- Real seed/private-key import and key management.
|
||||||
|
- Real transaction signing and broadcast.
|
||||||
|
- Real browser extension `window.ethereum` provider injection.
|
||||||
|
- Real portfolio API sync for balances/NFTs/DeFi positions.
|
||||||
|
- Real swap/bridge API execution.
|
||||||
|
- Interactive PTY terminal streaming with persistent sessions; current local terminal slice runs bounded commands.
|
||||||
|
- Interactive SSH shell with PTY, key selection, known-host management, SFTP, and port forwarding; current SSH slice runs bounded remote commands through system `ssh`.
|
||||||
|
|
||||||
|
## Next order of work
|
||||||
|
|
||||||
|
1. Replace bounded local command execution with an interactive PTY session registry and event stream.
|
||||||
|
2. Add SSH identity/known-host management and an interactive SSH PTY session registry.
|
||||||
|
3. Add settings coverage for language/currency/autolock, not only theme/config persistence.
|
||||||
|
4. Add real wallet import/signing behind a threat-modelled key-management layer.
|
||||||
@@ -8,7 +8,7 @@ This document records the feature/functionality classes Rabby Wallet exposes and
|
|||||||
|
|
||||||
| Feature | RabbyHub/Rabby reference | MVP acceptance in this repo | Current status |
|
| Feature | RabbyHub/Rabby reference | MVP acceptance in this repo | Current status |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| Create/unlock wallet | `Welcome`, `CreatePassword`, `Unlock`, `ForgotPassword` | Password/unlock state model and encrypted local state boundary | Modeled |
|
| Create/unlock wallet | `Welcome`, `CreatePassword`, `Unlock`, `ForgotPassword` | Password/unlock state model and encrypted local state boundary | RuntimeImplemented for encrypted demo vault |
|
||||||
| Import/create accounts | `CreateMnemonics`, `ImportMnemonics`, `ImportPrivateKey`, `ImportJson`, watch address | Seed/private key/JSON/watch-only account records validate and display | Modeled |
|
| Import/create accounts | `CreateMnemonics`, `ImportMnemonics`, `ImportPrivateKey`, `ImportJson`, watch address | Seed/private key/JSON/watch-only account records validate and display | Modeled |
|
||||||
| Hardware/institutional accounts | Ledger, Trezor, Keystone, GridPlus, OneKey, BitBox02, Gnosis Safe, Coinbase, WalletConnect, Cobo Argus | Account source model covers Rabby import surface | Modeled |
|
| Hardware/institutional accounts | Ledger, Trezor, Keystone, GridPlus, OneKey, BitBox02, Gnosis Safe, Coinbase, WalletConnect, Cobo Argus | Account source model covers Rabby import surface | Modeled |
|
||||||
| Multi-chain networks | `ChainList`, `CustomRPC`, `CustomTestnet`, offline chain support | Chain config validates id, RPC URL, custom/testnet/offline flags | Modeled |
|
| Multi-chain networks | `ChainList`, `CustomRPC`, `CustomTestnet`, offline chain support | Chain config validates id, RPC URL, custom/testnet/offline flags | Modeled |
|
||||||
@@ -20,7 +20,7 @@ This document records the feature/functionality classes Rabby Wallet exposes and
|
|||||||
| Signing/security preview | `Approval`, `securityEngine`, `rabby-action`, signing highlighter | Signing request includes message/typed-data/tx preview and risk | Modeled |
|
| Signing/security preview | `Approval`, `securityEngine`, `rabby-action`, signing highlighter | Signing request includes message/typed-data/tx preview and risk | Modeled |
|
||||||
| Activity/history | `Activities`, `History`, `TransactionHistory`, `SignedTextHistory` | History entries track account, chain, status, tx/signature identity | Modeled |
|
| Activity/history | `Activities`, `History`, `TransactionHistory`, `SignedTextHistory` | History entries track account, chain, status, tx/signature identity | Modeled |
|
||||||
| Contacts/whitelist | `contactBook`, `WhitelistInput`, send recipient selection | Contacts validate name/address and whitelist state | Modeled |
|
| Contacts/whitelist | `contactBook`, `WhitelistInput`, send recipient selection | Contacts validate name/address and whitelist state | Modeled |
|
||||||
| Settings/customization | `AdvanceSettings`, `SwitchLang`, currency, auto-lock, metamask mode | Theme, language, currency, auto-lock, default-wallet mode | UI Prototype |
|
| Settings/customization | `AdvanceSettings`, `SwitchLang`, currency, auto-lock, metamask mode | Theme, language, currency, auto-lock, default-wallet mode | RuntimeImplemented for theme/config persistence; UI Prototype for full settings |
|
||||||
| Notifications/guides/points | `notification`, `newUserGuide`, `RabbyPoints`, feedback | Dashboard can list notifications and points summary | UI Prototype |
|
| Notifications/guides/points | `notification`, `newUserGuide`, `RabbyPoints`, feedback | Dashboard can list notifications and points summary | UI Prototype |
|
||||||
|
|
||||||
## RabbyHub/Rabby architecture notes
|
## RabbyHub/Rabby architecture notes
|
||||||
@@ -66,3 +66,7 @@ The current app can open but is still a shell. The MVP work should prioritize:
|
|||||||
## Implemented runtime slices
|
## Implemented runtime slices
|
||||||
|
|
||||||
- Encrypted local wallet dashboard vault: `rabby-runtime::wallet_vault::EncryptedWalletVault` writes AES-256-GCM encrypted JSON envelopes using Argon2id-derived keys, rejects blank/wrong passphrases, avoids plaintext wallet fields in storage, and is exposed to Tauri via `save_demo_wallet_vault` / `load_wallet_vault`.
|
- Encrypted local wallet dashboard vault: `rabby-runtime::wallet_vault::EncryptedWalletVault` writes AES-256-GCM encrypted JSON envelopes using Argon2id-derived keys, rejects blank/wrong passphrases, avoids plaintext wallet fields in storage, and is exposed to Tauri via `save_demo_wallet_vault` / `load_wallet_vault`.
|
||||||
|
- Local terminal command runtime: `rabby-runtime::local_terminal::LocalTerminal` executes bounded local shell commands, captures stdout/stderr/exit code, rejects blank commands, and is exposed to Tauri via `run_local_command`.
|
||||||
|
- Settings/customization persistence: `load_app_config` / `save_app_config` round-trip `AppConfig` through `JsonFileConfigStore`, with UI controls for theme persistence.
|
||||||
|
- SSH command runtime: `rabby-runtime::ssh_runtime::SshClient` builds validated BatchMode system-ssh commands and is exposed to Tauri via `run_ssh_command`. This is a bounded remote-command slice, not yet a full interactive SSH terminal.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user