docs: add desktop wallet README and update main docs for v0.1.1
Some checks failed
CI / Check (ubuntu-latest) (push) Failing after 2s
CI / Test (ubuntu-latest) (push) Failing after 2s
Security Audit / Vulnerability Scan (push) Failing after 2s
Security Audit / License & Security Policy (push) Failing after 2s
Security Audit / Static Analysis (Clippy) (push) Failing after 2s
Security Audit / Secret Detection (push) Failing after 2s
Security Audit / Check Outdated Dependencies (push) Failing after 2s
Security Audit / Unsafe Code Audit (push) Failing after 2s
Security Audit / Property-Based Testing (push) Failing after 2s
Security Audit / WASM Module Security (push) Failing after 2s
CI / Check (macos-latest) (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Build (ubuntu-latest) (push) Has been cancelled
CI / Build (macos-latest) (push) Has been cancelled
CI / Benchmarks (push) Has been cancelled
CI / CI Success (push) Has been cancelled
Some checks failed
CI / Check (ubuntu-latest) (push) Failing after 2s
CI / Test (ubuntu-latest) (push) Failing after 2s
Security Audit / Vulnerability Scan (push) Failing after 2s
Security Audit / License & Security Policy (push) Failing after 2s
Security Audit / Static Analysis (Clippy) (push) Failing after 2s
Security Audit / Secret Detection (push) Failing after 2s
Security Audit / Check Outdated Dependencies (push) Failing after 2s
Security Audit / Unsafe Code Audit (push) Failing after 2s
Security Audit / Property-Based Testing (push) Failing after 2s
Security Audit / WASM Module Security (push) Failing after 2s
CI / Check (macos-latest) (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Build (ubuntu-latest) (push) Has been cancelled
CI / Build (macos-latest) (push) Has been cancelled
CI / Benchmarks (push) Has been cancelled
CI / CI Success (push) Has been cancelled
- Create comprehensive README for desktop-wallet with features, installation, development guide, project structure, and changelog - Update main README with v0.1.1 version references - Add link to desktop wallet README from main docs - Document QR code feature, browser preview mode, and bug fixes
This commit is contained in:
parent
e572578c8c
commit
563bfa3909
2 changed files with 251 additions and 6 deletions
14
README.md
14
README.md
|
|
@ -11,20 +11,22 @@ Quantum-secure decentralized cloud computing platform built on DAG-based consens
|
|||
|
||||
## Installation
|
||||
|
||||
### Desktop Wallet
|
||||
### Desktop Wallet (v0.1.1)
|
||||
|
||||
Download the latest release for your platform:
|
||||
|
||||
| Platform | Download | Notes |
|
||||
|----------|----------|-------|
|
||||
| **macOS (Apple Silicon)** | `Synor-Wallet_x.x.x_aarch64.dmg` | Drag to Applications |
|
||||
| **macOS (Intel)** | `Synor-Wallet_x.x.x_x64.dmg` | Drag to Applications |
|
||||
| **Windows** | `Synor-Wallet_x.x.x_x64_en-US.msi` | Run installer (recommended) |
|
||||
| **Windows (portable)** | `Synor-Wallet_x.x.x_x64-setup.exe` | Alternative installer |
|
||||
| **Linux** | `Synor-Wallet_x.x.x_amd64.AppImage` | `chmod +x && ./` |
|
||||
| **macOS (Apple Silicon)** | `Synor-Wallet_0.1.1_aarch64.dmg` | Drag to Applications |
|
||||
| **macOS (Intel)** | `Synor-Wallet_0.1.1_x64.dmg` | Drag to Applications |
|
||||
| **Windows** | `Synor-Wallet_0.1.1_x64_en-US.msi` | Run installer (recommended) |
|
||||
| **Windows (portable)** | `Synor-Wallet_0.1.1_x64-setup.exe` | Alternative installer |
|
||||
| **Linux** | `Synor-Wallet_0.1.1_amd64.AppImage` | `chmod +x && ./` |
|
||||
|
||||
**First launch on macOS**: Right-click → Open (to bypass Gatekeeper if not code-signed)
|
||||
|
||||
See [Desktop Wallet README](apps/desktop-wallet/README.md) for detailed features and development guide.
|
||||
|
||||
### Node Daemon (synord)
|
||||
|
||||
Download pre-built binaries:
|
||||
|
|
|
|||
243
apps/desktop-wallet/README.md
Normal file
243
apps/desktop-wallet/README.md
Normal file
|
|
@ -0,0 +1,243 @@
|
|||
# Synor Desktop Wallet
|
||||
|
||||
A secure desktop wallet for the Synor blockchain network with post-quantum cryptography support (Dilithium3).
|
||||
|
||||
## Features
|
||||
|
||||
- **24-word BIP39 Mnemonic**: Industry-standard seed phrase generation
|
||||
- **Post-Quantum Signatures**: Dilithium3 (NIST FIPS 204) for future-proof security
|
||||
- **QR Code Generation**: Easily share receive addresses with scannable QR codes
|
||||
- **OS Keychain Integration**: Secure storage via macOS Keychain, Windows Credential Manager, or Linux Secret Service
|
||||
- **System Tray**: Minimize to tray for background operation
|
||||
- **Auto-Updates**: Built-in updater for seamless version upgrades (when code-signed)
|
||||
- **Multiple Addresses**: Generate and manage multiple receiving addresses
|
||||
|
||||
## Installation
|
||||
|
||||
### Download Pre-built Binaries
|
||||
|
||||
Download the latest release from [GitHub Releases](https://github.com/g1-technologies/synor/releases):
|
||||
|
||||
| Platform | File | Notes |
|
||||
|----------|------|-------|
|
||||
| **macOS (Apple Silicon)** | `Synor-Wallet_x.x.x_aarch64.dmg` | M1/M2/M3 Macs |
|
||||
| **macOS (Intel)** | `Synor-Wallet_x.x.x_x64.dmg` | Intel Macs |
|
||||
| **Windows** | `Synor-Wallet_x.x.x_x64_en-US.msi` | Recommended installer |
|
||||
| **Windows (portable)** | `Synor-Wallet_x.x.x_x64-setup.exe` | Alternative installer |
|
||||
| **Linux** | `Synor-Wallet_x.x.x_amd64.AppImage` | Universal Linux |
|
||||
|
||||
### macOS First Launch
|
||||
|
||||
If the app is not code-signed, macOS Gatekeeper will block it. To bypass:
|
||||
1. Right-click the app → Open
|
||||
2. Click "Open" in the dialog
|
||||
|
||||
Or run from terminal:
|
||||
```bash
|
||||
xattr -cr /Applications/Synor\ Wallet.app
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- **Node.js 20+**
|
||||
- **pnpm** (`npm install -g pnpm`)
|
||||
- **Rust 1.75+** (`curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`)
|
||||
- **Tauri CLI** (`cargo install tauri-cli`)
|
||||
|
||||
**macOS additional:**
|
||||
```bash
|
||||
brew install rocksdb
|
||||
```
|
||||
|
||||
**Linux additional:**
|
||||
```bash
|
||||
sudo apt-get install -y \
|
||||
libgtk-3-dev \
|
||||
libwebkit2gtk-4.1-dev \
|
||||
libsoup-3.0-dev \
|
||||
libjavascriptcoregtk-4.1-dev \
|
||||
libappindicator3-dev \
|
||||
librsvg2-dev \
|
||||
patchelf \
|
||||
libclang-dev \
|
||||
llvm-dev
|
||||
```
|
||||
|
||||
### Development Mode
|
||||
|
||||
#### Full Development (with Rust backend)
|
||||
|
||||
```bash
|
||||
cd apps/desktop-wallet
|
||||
pnpm install
|
||||
pnpm tauri:dev
|
||||
```
|
||||
|
||||
#### Browser Preview Mode (UI only)
|
||||
|
||||
For rapid UI development without compiling Rust:
|
||||
|
||||
```bash
|
||||
cd apps/desktop-wallet
|
||||
pnpm install
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
Then open http://localhost:1420 in your browser.
|
||||
|
||||
> **Note**: Browser preview mode uses mock data. Wallet operations (create, import, sign) are simulated.
|
||||
|
||||
### Build for Production
|
||||
|
||||
```bash
|
||||
cd apps/desktop-wallet
|
||||
pnpm install
|
||||
pnpm tauri:build
|
||||
```
|
||||
|
||||
Output locations:
|
||||
- **macOS**: `src-tauri/target/release/bundle/dmg/`
|
||||
- **Windows**: `src-tauri/target/release/bundle/msi/`
|
||||
- **Linux**: `src-tauri/target/release/bundle/appimage/`
|
||||
|
||||
### Docker Development
|
||||
|
||||
```bash
|
||||
cd apps/desktop-wallet
|
||||
docker-compose -f docker-compose.dev.yml up
|
||||
```
|
||||
|
||||
Runs frontend at http://localhost:19420
|
||||
|
||||
### Testing
|
||||
|
||||
```bash
|
||||
# Run Playwright E2E tests
|
||||
pnpm test
|
||||
|
||||
# Run with UI
|
||||
pnpm test:ui
|
||||
|
||||
# Run headed (visible browser)
|
||||
pnpm test:headed
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
apps/desktop-wallet/
|
||||
├── src/ # React frontend
|
||||
│ ├── components/ # Reusable UI components
|
||||
│ ├── pages/ # Route pages
|
||||
│ │ ├── Welcome.tsx # Create/import wallet
|
||||
│ │ ├── Dashboard.tsx # Balance overview
|
||||
│ │ ├── Send.tsx # Send transactions
|
||||
│ │ ├── Receive.tsx # Receive with QR codes
|
||||
│ │ ├── Transactions.tsx # Transaction history
|
||||
│ │ └── Settings.tsx # App settings
|
||||
│ ├── store/ # Zustand state management
|
||||
│ │ ├── wallet.ts # Wallet state
|
||||
│ │ ├── node.ts # Node connection state
|
||||
│ │ └── mining.ts # Mining state
|
||||
│ ├── lib/ # Utilities
|
||||
│ │ └── tauri.ts # Tauri invoke wrapper
|
||||
│ └── App.tsx # Route definitions
|
||||
├── src-tauri/ # Rust backend
|
||||
│ ├── src/
|
||||
│ │ ├── commands.rs # Tauri command handlers
|
||||
│ │ ├── keychain.rs # OS keychain integration
|
||||
│ │ ├── crypto.rs # Cryptographic operations
|
||||
│ │ └── lib.rs # Main library
|
||||
│ ├── Cargo.toml # Rust dependencies
|
||||
│ ├── tauri.conf.json # Tauri configuration
|
||||
│ └── icons/ # App icons
|
||||
├── e2e/ # Playwright E2E tests
|
||||
├── playwright.config.ts # Test configuration
|
||||
└── package.json # Node.js dependencies
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Tauri Configuration
|
||||
|
||||
Edit `src-tauri/tauri.conf.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"app": {
|
||||
"windows": [{
|
||||
"title": "Synor Wallet",
|
||||
"width": 1024,
|
||||
"height": 768,
|
||||
"minWidth": 800,
|
||||
"minHeight": 600
|
||||
}]
|
||||
},
|
||||
"plugins": {
|
||||
"updater": {
|
||||
"endpoints": ["https://releases.synor.io/wallet/{{target}}/{{arch}}/{{current_version}}"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Security
|
||||
|
||||
The Content Security Policy (CSP) is configured to:
|
||||
- Allow connections to `*.synor.io` and localhost
|
||||
- Block inline scripts (except WASM)
|
||||
- Prevent embedding in iframes
|
||||
|
||||
## Embedded Node (Optional)
|
||||
|
||||
The wallet can optionally include a full node for decentralized operation:
|
||||
|
||||
```bash
|
||||
# Build with embedded node support
|
||||
cargo build --release --features embedded-node
|
||||
```
|
||||
|
||||
This enables:
|
||||
- Running a full node inside the wallet
|
||||
- Mining directly from the wallet
|
||||
- No external RPC dependency
|
||||
|
||||
## Changelog
|
||||
|
||||
### v0.1.1 (2026-02-02)
|
||||
|
||||
**New Features:**
|
||||
- QR code generation on Receive page for easy address sharing
|
||||
- Improved navigation flow on unlock screen
|
||||
|
||||
**Bug Fixes:**
|
||||
- Fixed app crash on macOS after installation (Tauri 2.0 plugin configuration)
|
||||
- Fixed icon bit depth compatibility issue (16-bit to 8-bit RGBA)
|
||||
- Removed deprecated plugin scope configurations
|
||||
|
||||
**Technical:**
|
||||
- Updated to Tauri 2.0 stable plugin APIs
|
||||
- Added missing Rust dependencies (`once_cell`, `md5`)
|
||||
- Removed duplicate imports in commands.rs
|
||||
|
||||
### v0.1.0 (Initial Release)
|
||||
|
||||
- Basic wallet creation and import
|
||||
- Send/receive SYN tokens
|
||||
- Transaction history
|
||||
- Multiple address support
|
||||
- OS keychain integration
|
||||
- System tray support
|
||||
|
||||
## Security Notes
|
||||
|
||||
- **Seed phrases** are encrypted with Argon2id and stored in OS keychain
|
||||
- **Private keys** are derived using BIP32 HD wallet standard
|
||||
- **Transactions** are signed locally; private keys never leave the device
|
||||
- **Post-quantum signatures** use Dilithium3 (NIST FIPS 204)
|
||||
|
||||
## License
|
||||
|
||||
MIT OR Apache-2.0
|
||||
Loading…
Add table
Reference in a new issue