Add tsify fix generate_sp_wallet
This commit is contained in:
parent
92c77c91e0
commit
62bee10166
@ -17,6 +17,7 @@ getrandom = { version="0.2.12", features = ["js"] }
|
||||
wasm-logger = "0.2.0"
|
||||
rand = "0.8.5"
|
||||
log = "0.4.6"
|
||||
tsify = { git = "https://github.com/Sosthene00/tsify", branch = "next" }
|
||||
|
||||
[dev-dependencies]
|
||||
wasm-bindgen-test = "0.3"
|
||||
|
@ -1,17 +1,21 @@
|
||||
use rand::Rng;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use sp_backend::silentpayments::sending::SilentPaymentAddress;
|
||||
use wasm_bindgen::prelude::*;
|
||||
use tsify::Tsify;
|
||||
|
||||
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,
|
||||
#[derive(Tsify, Serialize, Deserialize)]
|
||||
#[tsify(into_wasm_abi)]
|
||||
#[allow(non_camel_case_types)]
|
||||
pub struct generate_sp_wallet_return {
|
||||
pub sp_client_json: String,
|
||||
pub sp_outputs_json: String,
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
@ -19,19 +23,13 @@ pub fn setup() {
|
||||
wasm_logger::init(wasm_logger::Config::default());
|
||||
}
|
||||
|
||||
fn new_key() -> Vec<u8> {
|
||||
#[wasm_bindgen]
|
||||
pub fn generate_sp_wallet(label: Option<String>, birthday: u32, is_testnet: bool) -> Option<generate_sp_wallet_return> {
|
||||
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<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(),
|
||||
label.unwrap_or("default".into()),
|
||||
scan_sk,
|
||||
SpendKey::Secret(spend_sk),
|
||||
None,
|
||||
@ -43,21 +41,19 @@ pub fn generate_sp_wallet(birthday: u32, is_testnet: bool) -> Option<GenerateSpW
|
||||
"Created client for sp with 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 sp_client_json = serde_json::to_string(&sp_client).ok()?;
|
||||
|
||||
// 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 {
|
||||
let res = generate_sp_wallet_return {
|
||||
sp_client_json,
|
||||
sp_outputs_json,
|
||||
})
|
||||
sp_outputs_json
|
||||
};
|
||||
|
||||
Some(res)
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
|
Loading…
x
Reference in New Issue
Block a user