iop_sdk_wasm/hydra/
sign.rs1use super::*;
2
3use iop_hydra_sdk::vault::HydraSigner;
4use iop_keyvault::secp256k1::SecpPrivateKey;
5
6#[wasm_bindgen(js_name = HydraSigner)]
8pub struct JsHydraSigner {
9 inner: SecpPrivateKey,
10}
11
12#[wasm_bindgen(js_class = HydraSigner)]
13impl JsHydraSigner {
14 #[wasm_bindgen(constructor)]
16 pub fn new(inner: JsSecpPrivateKey) -> JsHydraSigner {
17 inner.inner().to_owned().into()
18 }
19
20 #[wasm_bindgen(js_name = signHydraTransaction)]
25 pub fn sign_hydra_transaction(&self, transaction: &JsValue) -> Result<JsValue, JsValue> {
26 let mut tx = transaction.into_serde().map_err_to_js()?;
27 self.inner.sign_hydra_transaction(&mut tx).map_err_to_js()?;
28 JsValue::from_serde(&tx).map_err_to_js()
29 }
30}
31
32impl From<SecpPrivateKey> for JsHydraSigner {
33 fn from(inner: SecpPrivateKey) -> Self {
34 Self { inner }
35 }
36}
37
38impl Wraps<SecpPrivateKey> for JsHydraSigner {
39 fn inner(&self) -> &SecpPrivateKey {
40 &self.inner
41 }
42}