feat(bindings): melted getters

This commit is contained in:
thesimplekid
2024-05-09 11:01:59 +01:00
parent 29a9eaa60c
commit e766f3fbb1
4 changed files with 45 additions and 0 deletions

View File

@@ -1,8 +1,11 @@
use std::ops::Deref;
use std::str::FromStr;
use cdk::nuts::Token;
use wasm_bindgen::prelude::*;
use crate::error::{into_err, Result};
#[wasm_bindgen(js_name = Token)]
pub struct JsToken {
inner: Token,
@@ -20,3 +23,13 @@ impl From<Token> for JsToken {
JsToken { inner }
}
}
#[wasm_bindgen(js_class = Token)]
impl JsToken {
#[wasm_bindgen(constructor)]
pub fn new(token: String) -> Result<JsToken> {
Ok(Self {
inner: Token::from_str(&token).map_err(into_err)?,
})
}
}

View File

@@ -44,4 +44,9 @@ impl JsWitness {
pub fn signatures(&self) -> Option<Vec<String>> {
self.inner.signatures()
}
#[wasm_bindgen(getter)]
pub fn preimage(&self) -> Option<String> {
self.inner.preimage()
}
}

View File

@@ -3,6 +3,8 @@ use std::ops::Deref;
use cdk::types::Melted;
use wasm_bindgen::prelude::*;
use crate::error::Result;
#[wasm_bindgen(js_name = Melted)]
pub struct JsMelted {
inner: Melted,
@@ -20,3 +22,21 @@ impl From<Melted> for JsMelted {
JsMelted { inner }
}
}
#[wasm_bindgen(js_class = Melted)]
impl JsMelted {
#[wasm_bindgen(getter)]
pub fn paid(&self) -> bool {
self.inner.paid
}
#[wasm_bindgen(getter)]
pub fn preimage(&self) -> Option<String> {
self.inner.preimage.clone()
}
#[wasm_bindgen(getter)]
pub fn change(&self) -> Result<JsValue> {
Ok(serde_wasm_bindgen::to_value(&self.inner.change)?)
}
}

View File

@@ -159,6 +159,13 @@ impl Witness {
Self::HTLCWitness(witness) => witness.signatures.clone(),
}
}
pub fn preimage(&self) -> Option<String> {
match self {
Self::P2PKWitness(_witness) => None,
Self::HTLCWitness(witness) => Some(witness.preimage.clone()),
}
}
}
/// Proofs