Security (Desktop Wallet): - Implement BIP39 mnemonic generation with cryptographic RNG - Add Argon2id password-based key derivation (64MB, 3 iterations) - Add ChaCha20-Poly1305 authenticated encryption for seed storage - Add mnemonic auto-clear (60s timeout) and clipboard auto-clear (30s) - Add sanitized error logging to prevent credential leaks - Strengthen CSP with object-src, base-uri, form-action, frame-ancestors - Clear sensitive state on component unmount Explorer (Gas Estimator): - Add Gas Estimation page with from/to/amount/data inputs - Add bech32 address validation (synor1/tsynor1 prefix) - Add BigInt-based amount parsing to avoid floating point errors - Add production guard for mock mode (cannot enable in prod builds) Monitoring (30-day Testnet): - Add Prometheus config with 30-day retention - Add comprehensive alert rules for node health, consensus, network, mempool - Add Alertmanager with severity-based routing and inhibition rules - Add Grafana with auto-provisioned datasource and dashboard - Add Synor testnet dashboard with uptime SLA tracking Docker: - Update docker-compose.testnet.yml with monitoring profile - Fix node-exporter for macOS Docker Desktop compatibility - Change Grafana port to 3001 to avoid conflict
52 lines
1.2 KiB
TOML
52 lines
1.2 KiB
TOML
[package]
|
|
name = "synor-wallet"
|
|
version = "0.1.0"
|
|
description = "Secure Synor blockchain wallet with post-quantum cryptography"
|
|
authors = ["Synor Team"]
|
|
edition = "2021"
|
|
license = "MIT"
|
|
|
|
[lib]
|
|
name = "synor_wallet_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
[dependencies]
|
|
tauri = { version = "2", features = ["tray-icon"] }
|
|
tauri-plugin-fs = "2"
|
|
tauri-plugin-store = "2"
|
|
tauri-plugin-shell = "2"
|
|
tauri-plugin-dialog = "2"
|
|
tauri-plugin-clipboard-manager = "2"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
tokio = { version = "1", features = ["full"] }
|
|
thiserror = "1"
|
|
|
|
# Cryptography
|
|
bip39 = "2"
|
|
argon2 = "0.5"
|
|
chacha20poly1305 = "0.10"
|
|
rand = "0.8"
|
|
sha2 = "0.10"
|
|
hmac = "0.12"
|
|
hex = "0.4"
|
|
zeroize = { version = "1", features = ["derive"] }
|
|
bech32 = "0.11"
|
|
|
|
# Local crates from the monorepo
|
|
synor-crypto = { path = "../../../crates/synor-crypto", optional = true }
|
|
synor-primitives = { path = "../../../crates/synor-primitives", optional = true }
|
|
synor-rpc = { path = "../../../crates/synor-rpc", optional = true }
|
|
|
|
[features]
|
|
default = ["custom-protocol"]
|
|
custom-protocol = ["tauri/custom-protocol"]
|
|
|
|
[profile.release]
|
|
lto = true
|
|
opt-level = "z"
|
|
codegen-units = 1
|
|
strip = true
|