iop_sdk_wasm/hydra/
plugin.rs1use super::*;
2
3#[wasm_bindgen(js_name = HydraPlugin)]
5pub struct JsHydraPlugin {
6 inner: HydraBoundPlugin,
7}
8
9#[wasm_bindgen(js_class = HydraPlugin)]
10impl JsHydraPlugin {
11 pub fn init(
14 vault: &mut JsVault, unlock_password: &str, parameters: &JsHydraParameters,
15 ) -> Result<(), JsValue> {
16 hd_hydra::Plugin::init(vault.inner_mut(), unlock_password, parameters.inner())
17 .map_err_to_js()?;
18 Ok(())
19 }
20
21 pub fn get(vault: &JsVault, parameters: &JsHydraParameters) -> Result<JsHydraPlugin, JsValue> {
24 let inner = hd_hydra::Plugin::get(vault.inner(), parameters.inner()).map_err_to_js()?;
25 Ok(Self { inner })
26 }
27
28 #[wasm_bindgen(getter = pub)]
30 pub fn public(&self) -> Result<JsHydraPublic, JsValue> {
31 let inner = self.inner.public().map_err_to_js()?;
32 Ok(JsHydraPublic::from(inner))
33 }
34
35 #[wasm_bindgen(js_name = priv)]
39 pub fn private(&self, unlock_password: &str) -> Result<JsHydraPrivate, JsValue> {
40 let inner = self.inner.private(unlock_password).map_err_to_js()?;
41 Ok(JsHydraPrivate::from(inner))
42 }
43}
44
45impl From<HydraBoundPlugin> for JsHydraPlugin {
46 fn from(inner: HydraBoundPlugin) -> Self {
47 Self { inner }
48 }
49}
50
51impl Wraps<HydraBoundPlugin> for JsHydraPlugin {
52 fn inner(&self) -> &HydraBoundPlugin {
53 &self.inner
54 }
55}