feat: Add basic project structure and initial crates

- Added basic project structure with workspace and crates:
  `kvstore`, `vault`, `evm_client`, `cli_app`, `web_app`.
- Created initial `Cargo.toml` files for each crate.
- Added placeholder implementations for key components.
- Included initial documentation files (`README.md`, architecture
  docs, repo structure).
- Included initial implementaion for kvstore crate(async API, backend abstraction, separation of concerns, WASM/native support, testability)
- Included native and browser tests for the kvstore crate
This commit is contained in:
2025-05-13 20:24:29 +03:00
commit 9dce815daa
19 changed files with 1213 additions and 0 deletions

15
vault/Cargo.toml Normal file
View File

@@ -0,0 +1,15 @@
[package]
name = "vault"
version = "0.1.0"
edition = "2021"
[lib]
path = "src/lib.rs"
[dependencies]
kvstore = { path = "../kvstore" }
async-trait = "0.1"
chacha20poly1305 = "0.10"
k256 = "0.13"
rand_core = "0.6"
thiserror = "1"

27
vault/src/lib.rs Normal file
View File

@@ -0,0 +1,27 @@
//! vault: Cryptographic keyspace and operations
use kvstore::KVStore;
#[derive(Debug, thiserror::Error)]
pub enum VaultError {
#[error("Storage error: {0}")]
Storage(String),
#[error("Crypto error: {0}")]
Crypto(String),
#[error("Unauthorized")]
Unauthorized,
}
pub struct Vault<S: KVStore + Send + Sync> {
storage: S,
// ... other fields
}
impl<S: KVStore + Send + Sync> Vault<S> {
/// Creates a new keyspace. Implementation pending.
pub async fn create_keyspace(_dummy: ()) -> Result<(), VaultError> {
todo!("Implement create_keyspace")
}
// ... other API stubs
}