1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use crate::imports::*;
use crate::result::Result;
use crate::runtime;
use crate::storage::keydata;

#[wasm_bindgen]
pub struct PrvKeyDataInfo {
    inner: Arc<keydata::PrvKeyDataInfo>,
    #[allow(dead_code)]
    wallet: Arc<runtime::Wallet>,
}

impl PrvKeyDataInfo {
    pub fn new(wallet: Arc<runtime::Wallet>, inner: Arc<keydata::PrvKeyDataInfo>) -> PrvKeyDataInfo {
        PrvKeyDataInfo { wallet, inner }
    }
}

#[wasm_bindgen]
impl PrvKeyDataInfo {
    #[wasm_bindgen(getter)]
    pub fn id(&self) -> String {
        self.inner.id.to_hex()
    }

    #[wasm_bindgen(getter)]
    pub fn name(&self) -> JsValue {
        self.inner.name.clone().map(JsValue::from).unwrap_or(JsValue::UNDEFINED)
    }

    #[wasm_bindgen(getter, js_name = "isEncrypted")]
    pub fn is_encrypted(&self) -> JsValue {
        self.inner.is_encrypted.into()
    }

    #[wasm_bindgen(js_name = "setName")]
    pub fn set_name(&mut self, _name: String) -> Result<()> {
        todo!()
    }
}