From 6f74996f39f02bab5b6ebcb2e5f21646614d463c Mon Sep 17 00:00:00 2001 From: Sosthene Date: Thu, 11 Jul 2024 12:39:25 +0200 Subject: [PATCH] Add wallet.rs --- src/api.rs | 28 +--------------------------- src/lib.rs | 1 + src/wallet.rs | 28 ++++++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 27 deletions(-) create mode 100644 src/wallet.rs diff --git a/src/api.rs b/src/api.rs index 1b81be5..83e44cc 100644 --- a/src/api.rs +++ b/src/api.rs @@ -50,6 +50,7 @@ use sdk_common::sp_client::spclient::{ derive_keys_from_seed, OutputList, OutputSpendStatus, OwnedOutput, Recipient, SpClient, }; use sdk_common::sp_client::spclient::{SpWallet, SpendKey}; +use crate::wallet::generate_sp_wallet; use crate::user::{lock_connected_user, User, UserWallets, CONNECTED_USER}; use crate::{images, lock_messages, CACHEDMESSAGES}; @@ -164,33 +165,6 @@ pub fn setup() { wasm_logger::init(wasm_logger::Config::default()); } -// Should be transfered to annother module -pub fn generate_sp_wallet( - label: Option, - birthday: u32, - network: Network, -) -> ApiResult { - let mut seed = [0u8; 64]; - rand::thread_rng().fill(&mut seed); - let (scan_sk, spend_sk) = derive_keys_from_seed(&seed, network)?; - let sp_client = SpClient::new( - label.unwrap_or("default".into()), - scan_sk, - SpendKey::Secret(spend_sk), - None, - network, - )?; - let our_address: SilentPaymentAddress = sp_client.get_receiving_address().try_into()?; - log::info!( - "Created client for sp with address: {}", - our_address.to_string() - ); - - let res = SpWallet::new(sp_client, None)?; - - Ok(res) -} - #[wasm_bindgen] pub fn get_recover_address() -> ApiResult { if let Ok(my_wallets) = lock_connected_user() { diff --git a/src/lib.rs b/src/lib.rs index 1168492..2be2c00 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,6 +13,7 @@ mod images; mod peers; mod process; mod user; +mod wallet; pub static CACHEDMESSAGES: OnceLock>> = OnceLock::new(); diff --git a/src/wallet.rs b/src/wallet.rs new file mode 100644 index 0000000..578861d --- /dev/null +++ b/src/wallet.rs @@ -0,0 +1,28 @@ +use rand::Rng; +use sdk_common::sp_client::{ + bitcoin::Network, + silentpayments::utils::SilentPaymentAddress, + spclient::{derive_keys_from_seed, SpClient, SpWallet, SpendKey}, +}; + +pub fn generate_sp_wallet(label: Option, network: Network) -> anyhow::Result { + let mut seed = [0u8; 64]; + rand::thread_rng().fill(&mut seed); + let (scan_sk, spend_sk) = derive_keys_from_seed(&seed, network)?; + let sp_client = SpClient::new( + label.unwrap_or("default".into()), + scan_sk, + SpendKey::Secret(spend_sk), + None, + network, + )?; + let our_address: SilentPaymentAddress = sp_client.get_receiving_address().try_into()?; + log::info!( + "Created client for sp with address: {}", + our_address.to_string() + ); + + let res = SpWallet::new(sp_client, None)?; + + Ok(res) +}