Update to last sp_backend api
This commit is contained in:
parent
bfad95dd25
commit
59bbfafbb7
@ -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]
|
||||
|
Loading…
x
Reference in New Issue
Block a user