Skip to content

Commit

Permalink
Optimize KEYPAIR_DERIVATIONS_PATH
Browse files Browse the repository at this point in the history
  • Loading branch information
s-damian committed Sep 15, 2024
1 parent fc39a39 commit b6f9e7c
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 14 deletions.
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
TEST_MODE=false
NB_DERIVATIONS=3
KEYPAIR_PATH=./storage/keypair/id.json
KEYPAIR_DIR=./storage/keypair/derived
KEYPAIR_DERIVATIONS_PATH=./storage/keypair/derived
# Devnet (for development):
#RPC_URL=https://api.devnet.solana.com
# Testnet (for testing before deployment):
Expand Down
2 changes: 1 addition & 1 deletion .env.testing.example
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
TEST_MODE=true
NB_DERIVATIONS=2
KEYPAIR_PATH=./storage/tests/keypair/id.json
KEYPAIR_DIR=./storage/tests/keypair/derived
KEYPAIR_DERIVATIONS_PATH=./storage/tests/keypair/derived
# Devnet (for development):
RPC_URL=https://api.devnet.solana.com
# Testnet (for testing before deployment):
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ If you want to generate several keypairs and several public keys with a single m

Your non-derived keypair will be created in your `<your-path>/storage/keypair/id.json` file (`KEYPAIR_PATH` env var) JSON file.

The other keypairs (which will be derived from your seed) will be created in JSON files in your `<your-path>/storage/keypair/derived` directory (`KEYPAIR_DIR` env var).
The other keypairs (which will be derived from your seed) will be created in JSON files in your `<your-path>/storage/keypair/derived` directory (`KEYPAIR_DERIVATIONS_PATH` env var).

### 🌐 generate_seed command

Expand Down Expand Up @@ -282,8 +282,8 @@ Environment variables are configured in the `.env` file.
You can configure these environment variables:
- `NB_DERIVATIONS` (default value: `0`).
- `KEYPAIR_PATH` (default value: `./storage/keypair/id.json`).
- `KEYPAIR_DIR` (default value: `./storage/keypair/derived`).
- Note: `KEYPAIR_DIR` is only useful if `NB_DERIVATIONS` is > `0`.
- `KEYPAIR_DERIVATIONS_PATH` (default value: `./storage/keypair/derived`).
- Note: `KEYPAIR_DERIVATIONS_PATH` is only useful if `NB_DERIVATIONS` is > `0`.
- `RPC_URL` (default value: `https://api.devnet.solana.com`).


Expand Down
2 changes: 1 addition & 1 deletion src/app/mnemonic_manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ impl MnemonicManager {
if index == 0 {
self.config.keypair_path.clone()
} else {
format!("{}/keypair-{}.json", self.config.keypair_dir, index)
format!("{}/keypair-{}.json", self.config.keypair_derivations_path, index)
}
}
}
16 changes: 8 additions & 8 deletions src/config/wallet_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use serial_test::serial;
#[derive(Clone)] // Cette ligne est utile pour implémenter automatiquement Clone.
pub struct WalletConfig {
pub keypair_path: String,
pub keypair_dir: String,
pub keypair_derivations_path: String,
pub nb_derivations: usize,
pub rpc_url: String,
}
Expand All @@ -27,8 +27,8 @@ impl Default for WalletConfig {
/// Récupère le chemin d'accès au fichier où la paire de clés principale est stockée à partir de la variable d'environnement `KEYPAIR_PATH`.
/// Retourne un chemin par défaut si la variable d'environnement n'est pas définie.
///
/// - keypair_dir:
/// Récupère le chemin d'accès au dossier où les paires de clés dérivées sont stockées, spécifié par la variable d'environnement `KEYPAIR_DIR`.
/// - keypair_derivations_path:
/// Récupère le chemin d'accès au dossier où les paires de clés dérivées sont stockées, spécifié par la variable d'environnement `KEYPAIR_DERIVATIONS_PATH`.
/// Retourne un chemin par défaut si la variable d'environnement n'est pas définie.
///
/// - rpc_url:
Expand All @@ -45,7 +45,7 @@ impl WalletConfig {
.unwrap_or(0), // Retourne 1 si la conversion échoue ou si la valeur convertie n'est pas un nombre.
keypair_path: env::var("KEYPAIR_PATH")
.unwrap_or_else(|_| "./storage/keypair/id.json".to_string()),
keypair_dir: env::var("KEYPAIR_DIR")
keypair_derivations_path: env::var("KEYPAIR_DERIVATIONS_PATH")
.unwrap_or_else(|_| "./storage/keypair/derived".to_string()),
rpc_url:
env::var("RPC_URL") // Lire l'URL RPC de l'environnement
Expand All @@ -62,7 +62,7 @@ mod tests {
fn setup() {
env::remove_var("NB_DERIVATIONS");
env::remove_var("KEYPAIR_PATH");
env::remove_var("KEYPAIR_DIR");
env::remove_var("KEYPAIR_DERIVATIONS_PATH");
env::remove_var("RPC_URL");
}

Expand All @@ -78,7 +78,7 @@ mod tests {
let config = WalletConfig::new();
assert_eq!(config.nb_derivations, 0);
assert_eq!(config.keypair_path, "./storage/keypair/id.json");
assert_eq!(config.keypair_dir, "./storage/keypair/derived");
assert_eq!(config.keypair_derivations_path, "./storage/keypair/derived");
assert_eq!(config.rpc_url, "https://api.devnet.solana.com");

teardown();
Expand All @@ -91,13 +91,13 @@ mod tests {

env::set_var("NB_DERIVATIONS", "5");
env::set_var("KEYPAIR_PATH", "./storage/custom/keypair/id.json");
env::set_var("KEYPAIR_DIR", "./storage/custom/keypair/derived");
env::set_var("KEYPAIR_DERIVATIONS_PATH", "./storage/custom/keypair/derived");
env::set_var("RPC_URL", "https://custom.rpc.url");

let config = WalletConfig::new();
assert_eq!(config.nb_derivations, 5);
assert_eq!(config.keypair_path, "./storage/custom/keypair/id.json");
assert_eq!(config.keypair_dir, "./storage/custom/keypair/derived");
assert_eq!(config.keypair_derivations_path, "./storage/custom/keypair/derived");
assert_eq!(config.rpc_url, "https://custom.rpc.url");

teardown();
Expand Down

0 comments on commit b6f9e7c

Please sign in to comment.