Skip to content

Commit 093deb4

Browse files
author
MhdRahman
committed
Fixed Initial Changes
1 parent 96d19e4 commit 093deb4

10 files changed

Lines changed: 287 additions & 88 deletions

File tree

.gitignore

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,34 @@
11
# Rust
2-
target/
2+
/target/
33
Cargo.lock
4-
5-
# Build artifacts
6-
dist/
7-
coverage/
4+
**/*.rs.bk
5+
*.pdb
86

97
# IDE
108
.vscode/
119
.idea/
1210
*.swp
1311
*.swo
12+
*~
1413

1514
# OS
1615
.DS_Store
1716
Thumbs.db
1817

1918
# Logs
20-
*.log
19+
*.log
20+
21+
# MetaMesh specific
22+
/storage/
23+
/data/
24+
*.db
25+
*.sqlite
26+
27+
# Build artifacts
28+
/dist/
29+
*.tar.gz
30+
*.zip
31+
32+
# Temporary files
33+
/tmp/
34+
.tmp/

Cargo.toml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ serde = { version = "1.0", features = ["derive"] }
1919
tokio = { version = "1.0", features = ["full"] }
2020
anyhow = "1.0"
2121
thiserror = "1.0"
22+
clap = { version = "4.4", features = ["derive"] }
2223

2324
# Crypto dependencies
2425
pqcrypto-dilithium = "0.5"
@@ -41,7 +42,11 @@ rand = "0.8"
4142
# Embedded dependencies
4243
heapless = "0.8"
4344

44-
# Build profiles
45+
[workspace.metadata.docs.rs]
46+
all-features = true
47+
rustdoc-args = ["--cfg", "docsrs"]
48+
49+
# Optimized build profiles
4550
[profile.release]
4651
opt-level = 3
4752
lto = true

cli/Cargo.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22
name = "metamesh-cli"
33
version = "0.1.0"
44
edition = "2021"
5+
description = "MetaMesh command-line interface"
56

67
[[bin]]
78
name = "metamesh"
89
path = "src/main.rs"
910

1011
[dependencies]
11-
metamesh-identity = { path = "../common/identity" }
12+
metamesh-identity = { path = "../common/identity" }
13+
clap = { workspace = true }

cli/src/main.rs

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,49 @@
1+
use clap::Parser;
12
use metamesh_identity::{generate_seed_identity, recover_from_mnemonic};
23

3-
fn main() {
4-
let identity = generate_seed_identity();
4+
#[derive(Parser)]
5+
#[command(name = "metamesh")]
6+
#[command(about = "MetaMesh CLI - Post-quantum cryptographic identity management")]
7+
#[command(version)]
8+
struct Args {
9+
#[command(subcommand)]
10+
command: Commands,
11+
}
512

6-
println!("🌱 Seed ID: {}", identity.seed_id);
7-
println!("📝 Sentence: {}", identity.mnemonic);
8-
println!(
9-
"🔐 Private Key (base64): {}...",
10-
&identity.private_key[..30]
11-
);
12-
println!("🔓 Public Key (base64): {}...", &identity.public_key[..30]);
13+
#[derive(clap::Subcommand)]
14+
enum Commands {
15+
/// Generate a new cryptographic identity
16+
Generate,
17+
/// Recover identity from mnemonic phrase
18+
Recover {
19+
/// Mnemonic phrase to recover from
20+
mnemonic: String
21+
},
22+
}
1323

14-
println!("\n🔁 Recovering from sentence...");
15-
let recovered = recover_from_mnemonic(&identity.mnemonic);
24+
fn main() {
25+
let args = Args::parse();
1626

17-
println!("✅ Recovered Seed ID: {}", recovered.seed_id);
18-
}
27+
match args.command {
28+
Commands::Generate => {
29+
let identity = generate_seed_identity();
30+
31+
println!("🆔 New MetaMesh Identity Generated");
32+
println!("================================");
33+
println!("Seed ID: {}", identity.seed_id);
34+
println!("Mnemonic: {}", identity.mnemonic);
35+
println!("Public Key: {}...", &identity.public_key[..32]);
36+
println!("\n⚠️ Store the mnemonic phrase securely - it's needed for recovery!");
37+
}
38+
Commands::Recover { mnemonic } => {
39+
println!("🔄 Recovering identity from mnemonic...");
40+
41+
let recovered = recover_from_mnemonic(&mnemonic);
42+
43+
println!("✅ Identity Recovered Successfully");
44+
println!("=================================");
45+
println!("Seed ID: {}", recovered.seed_id);
46+
println!("Public Key: {}...", &recovered.public_key[..32]);
47+
}
48+
}
49+
}

daemon/Cargo.toml

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
name = "metamesh-daemon"
33
version = "0.1.0"
44
edition = "2021"
5+
description = "MetaMesh gRPC daemon service"
56

67
[[bin]]
78
name = "metamesh-daemon"
@@ -11,32 +12,37 @@ path = "src/main.rs"
1112
name = "metamesh-client"
1213
path = "src/client.rs"
1314

14-
[[bin]]
15-
name = "metamesh-headless"
16-
path = "src/gui_client.rs"
17-
1815
[dependencies]
19-
metamesh-identity = { path = "../common/identity" }
20-
metamesh-crypto = { path = "../common/crypto" }
21-
metamesh-utils = { path = "../common/utils" }
22-
metamesh-transport = { path = "../common/transport" }
23-
tokio = { version = "1.0", features = ["full"] }
16+
# Core dependencies
17+
tokio = { workspace = true }
18+
anyhow = { workspace = true }
19+
clap = { workspace = true }
20+
serde = { workspace = true }
21+
22+
# gRPC dependencies
2423
tonic = "0.10"
2524
prost = "0.12"
26-
clap = { version = "4.0", features = ["derive"] }
27-
serde = { version = "1.0", features = ["derive"] }
28-
toml = "0.8"
29-
dirs = "5.0"
30-
serde_json = "1.0"
31-
sha2 = "0.10"
25+
26+
# MetaMesh dependencies
27+
metamesh-identity = { path = "../common/identity" }
28+
metamesh-transport = { path = "../common/transport" }
29+
30+
# Crypto dependencies
3231
aes-gcm = "0.10"
33-
rand = "0.8"
34-
hex = "0.4"
32+
sha2 = "0.10"
33+
rand = { workspace = true }
34+
hex = { workspace = true }
35+
36+
# Serialization
3537
postcard = { version = "1.0", features = ["alloc"] }
38+
serde_json = "1.0"
39+
toml = "0.8"
3640

37-
[dev-dependencies]
38-
tempfile = "3.8"
39-
tokio-test = "0.4"
41+
# Storage
42+
rusqlite = { version = "0.30", features = ["bundled"] }
43+
44+
# System
45+
dirs = "5.0"
4046

4147
[build-dependencies]
4248
tonic-build = "0.10"

0 commit comments

Comments
 (0)