diff --git a/src/ledger.rs b/src/ledger.rs index 77aba59..b2081be 100644 --- a/src/ledger.rs +++ b/src/ledger.rs @@ -3,6 +3,8 @@ //! # Ledger management +use std::sync::Arc; + use chacha20poly1305::{ aead::{rand_core::RngCore, OsRng}, Key, @@ -33,7 +35,7 @@ use crate::{errors::LedgerError, utils}; /// Initialize and test the ledger and returns a MemoryDbKeyManager pub(crate) async fn initialize_ledger(account: u64, network: Network) -> Result { - let ledger_wallet = create_ledger_wallet(account, network)?; + let ledger_wallet = Arc::new(create_ledger_wallet(account, network)?); let key_manager_service = create_memory_db_key_manager(ledger_wallet)?; test_ledger_build_feature(&key_manager_service).await?; Ok(key_manager_service) @@ -52,7 +54,7 @@ fn create_ledger_wallet(account: u64, network: Network) -> Result Result { +fn create_memory_db_key_manager(wallet_type: Arc) -> Result { let connection = DbConnection::connect_url(&DbConnectionUrl::MemoryShared(utils::random_string(8)))?; let cipher = CipherSeed::new(); diff --git a/src/main.rs b/src/main.rs index a8a1e61..35b7643 100644 --- a/src/main.rs +++ b/src/main.rs @@ -108,7 +108,7 @@ pub async fn tui_main(cli: &Cli) -> Result<(), Box> { return Ok(()); }, }; - match key_manager_service.get_wallet_type().await { + match *key_manager_service.get_wallet_type().await { WalletType::Ledger(_) => {}, _ => { eprintln!("\nError: Wallet type must be 'Ledger' to create pre-mine info!\n"); @@ -403,7 +403,7 @@ pub async fn tui_main(cli: &Cli) -> Result<(), Box> { return Ok(()); }, }; - match key_manager_service.get_wallet_type().await { + match *key_manager_service.get_wallet_type().await { WalletType::Ledger(_) => {}, _ => { eprintln!("\nError: Wallet type must be 'Ledger' to create pre-mine info!\n");