Update to last sp_backend api

This commit is contained in:
Sosthene00 2024-03-20 14:40:51 +01:00
parent bfad95dd25
commit 59bbfafbb7

View File

@ -1,41 +1,63 @@
use rand::Rng;
use sp_backend::silentpayments::sending::SilentPaymentAddress;
use wasm_bindgen::prelude::*;
use sp_backend::spclient::{derive_keys_from_seed, SpClient};
use sp_backend::spclient::SpendKey;
use sp_backend::spclient::{derive_keys_from_seed, SpClient, OutputList};
const IS_TESTNET: bool = true;
#[wasm_bindgen]
pub struct GenerateSpWalletReturn {
sp_client_json: String,
sp_outputs_json: String,
}
#[wasm_bindgen]
pub fn setup() {
wasm_logger::init(wasm_logger::Config::default());
}
pub fn new_key() -> Vec<u8> {
fn new_key() -> Vec<u8> {
let mut seed = [0u8; 64];
rand::thread_rng().fill(&mut seed);
seed.to_vec()
}
#[wasm_bindgen]
pub fn generate_sp_wallet(birthday: u32, is_testnet: bool) -> Option<String> {
let mut seed = [0u8;64];
pub fn generate_sp_wallet(birthday: u32, is_testnet: bool) -> Option<GenerateSpWalletReturn> {
let mut seed = [0u8; 64];
seed.copy_from_slice(&new_key());
let (scan_sk, spend_sk) = derive_keys_from_seed(&seed, is_testnet).ok()?;
let sp_client = SpClient::new("".to_owned(), scan_sk, SpendKey::Secret(spend_sk), None, birthday, IS_TESTNET).ok()?;
let sp_client = SpClient::new(
"".to_owned(),
scan_sk,
SpendKey::Secret(spend_sk),
None,
IS_TESTNET,
)
.ok()?;
let our_address: SilentPaymentAddress = sp_client.get_receiving_address().try_into().ok()?;
log::info!(
"Created client for sp with address: {}",
sp_client.get_receiving_address()
our_address.to_string()
);
// zero out the seed
for mut b in seed.into_iter() {
b = 0;
assert!(b == 0); // this guarantee that the compiler won't optimize it away
}
let json = serde_json::to_string(&sp_client).ok();
let sp_client_json = serde_json::to_string(&sp_client).ok()?;
json
// Generate an empty outputs
let sp_outputs = OutputList::new(our_address.get_scan_key(), our_address.get_spend_key(), birthday);
let sp_outputs_json = serde_json::to_string(&sp_outputs).ok()?;
Some(GenerateSpWalletReturn {
sp_client_json,
sp_outputs_json,
})
}
#[wasm_bindgen]