Explorar o código

`bindings/cashu-js` `nut05`

thesimplekid hai 1 ano
pai
achega
898e98b0d0
Modificáronse 2 ficheiros con 82 adicións e 0 borrados
  1. 1 0
      bindings/cashu-js/src/nuts/mod.rs
  2. 81 0
      bindings/cashu-js/src/nuts/nut05.rs

+ 1 - 0
bindings/cashu-js/src/nuts/mod.rs

@@ -3,3 +3,4 @@ mod nut01;
 mod nut02;
 mod nut03;
 mod nut04;
+mod nut05;

+ 81 - 0
bindings/cashu-js/src/nuts/nut05.rs

@@ -0,0 +1,81 @@
+use std::ops::Deref;
+
+use cashu::nuts::nut05::{CheckFeesRequest, CheckFeesResponse};
+use wasm_bindgen::prelude::*;
+
+use crate::{
+    error::Result,
+    types::{JsAmount, JsBolt11Invoice},
+};
+
+#[wasm_bindgen(js_name = CheckFeesRequest)]
+pub struct JsCheckFeesRequest {
+    inner: CheckFeesRequest,
+}
+
+impl Deref for JsCheckFeesRequest {
+    type Target = CheckFeesRequest;
+    fn deref(&self) -> &Self::Target {
+        &self.inner
+    }
+}
+
+impl From<CheckFeesRequest> for JsCheckFeesRequest {
+    fn from(inner: CheckFeesRequest) -> JsCheckFeesRequest {
+        JsCheckFeesRequest { inner }
+    }
+}
+
+#[wasm_bindgen(js_class = CheckFeesRequest)]
+impl JsCheckFeesRequest {
+    #[wasm_bindgen(constructor)]
+    pub fn new(invoice: JsBolt11Invoice) -> Result<JsCheckFeesRequest> {
+        Ok(JsCheckFeesRequest {
+            inner: CheckFeesRequest {
+                pr: invoice.clone().into(),
+            },
+        })
+    }
+
+    /// Get Amount
+    #[wasm_bindgen(getter)]
+    pub fn invoice(&self) -> JsBolt11Invoice {
+        self.inner.pr.clone().into()
+    }
+}
+
+#[wasm_bindgen(js_name = CheckFeesResponse)]
+pub struct JsCheckFeesResponse {
+    inner: CheckFeesResponse,
+}
+
+impl Deref for JsCheckFeesResponse {
+    type Target = CheckFeesResponse;
+    fn deref(&self) -> &Self::Target {
+        &self.inner
+    }
+}
+
+impl From<CheckFeesResponse> for JsCheckFeesResponse {
+    fn from(inner: CheckFeesResponse) -> JsCheckFeesResponse {
+        JsCheckFeesResponse { inner }
+    }
+}
+
+#[wasm_bindgen(js_class = CheckFeesResponse)]
+impl JsCheckFeesResponse {
+    #[wasm_bindgen(constructor)]
+    pub fn new(amount: JsAmount) -> Result<JsCheckFeesResponse> {
+        Ok(JsCheckFeesResponse {
+            inner: CheckFeesResponse {
+                fee: *amount.deref(),
+            },
+        })
+    }
+
+    /// Get Amount
+    #[wasm_bindgen(getter)]
+    pub fn amount(&self) -> JsAmount {
+        self.inner.fee.into()
+    }
+}