generate new key, new client, get address
This commit is contained in:
parent
c8d6af32e9
commit
320a2cd5bb
22
Cargo.toml
Normal file
22
Cargo.toml
Normal file
@ -0,0 +1,22 @@
|
||||
[package]
|
||||
name = "sdk_client"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
name = "sdk_client"
|
||||
crate-type = ["cdylib"]
|
||||
|
||||
[dependencies]
|
||||
sp_backend = { git = "https://github.com/Sosthene00/sp-backend", branch = "sp_client" }
|
||||
anyhow = "1.0"
|
||||
serde = { version = "1.0.188", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
wasm-bindgen = "0.2.91"
|
||||
getrandom = { version="0.2.12", features = ["js"] }
|
||||
wasm-logger = "0.2.0"
|
||||
rand = "0.8.5"
|
||||
log = "0.4.6"
|
||||
|
||||
[dev-dependencies]
|
||||
wasm-bindgen-test = "0.3"
|
48
src/api.rs
Normal file
48
src/api.rs
Normal file
@ -0,0 +1,48 @@
|
||||
use rand::Rng;
|
||||
|
||||
use wasm_bindgen::prelude::*;
|
||||
|
||||
use sp_backend::spclient::{derive_keys_from_seed, SpClient};
|
||||
use sp_backend::silentpayments::sending::SilentPaymentAddress;
|
||||
use sp_backend::spclient::SpendKey;
|
||||
|
||||
const IS_TESTNET: bool = true;
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn setup() {
|
||||
wasm_logger::init(wasm_logger::Config::default());
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn new_key() -> Vec<u8> {
|
||||
let mut seed = [0u8; 64];
|
||||
rand::thread_rng().fill(&mut seed);
|
||||
seed.to_vec()
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn clear_key(key: Vec<u8>) {
|
||||
for mut b in key {
|
||||
b = 0;
|
||||
assert!(b == 0u8);
|
||||
}
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn generate_sp_wallet_from_key(birthday: u32, is_testnet: bool) -> Option<String> {
|
||||
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()?;
|
||||
log::info!(
|
||||
"Created client for sp with address: {}",
|
||||
sp_client.get_receiving_address()
|
||||
);
|
||||
serde_json::to_string(&sp_client).ok()
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn get_receiving_address(sp_client: String) -> String {
|
||||
let sp_client: SpClient = serde_json::from_str(&sp_client).unwrap();
|
||||
sp_client.get_receiving_address()
|
||||
}
|
1
src/lib.rs
Normal file
1
src/lib.rs
Normal file
@ -0,0 +1 @@
|
||||
pub mod api;
|
Loading…
x
Reference in New Issue
Block a user