casper_rust_wasm_sdk/sdk/
mod.rs

1pub mod binary_port;
2#[allow(hidden_glob_reexports)]
3pub(crate) mod deploy;
4pub mod rpcs;
5#[allow(hidden_glob_reexports)]
6pub(crate) mod transaction;
7pub use deploy::*;
8pub use transaction::*;
9
10pub(crate) mod deploy_utils;
11pub(crate) use deploy_utils::*;
12
13pub(crate) mod transaction_utils;
14pub(crate) use transaction_utils::*;
15
16pub mod watcher;
17
18pub(crate) mod contract;
19pub use contract::*;
20
21use wasm_bindgen::prelude::*;
22
23use crate::types::verbosity::Verbosity;
24
25#[wasm_bindgen]
26pub struct SDK {
27    rpc_address: Option<String>,
28    node_address: Option<String>,
29    verbosity: Option<Verbosity>,
30}
31
32impl Default for SDK {
33    fn default() -> Self {
34        Self::new(None, None, None)
35    }
36}
37
38#[wasm_bindgen]
39impl SDK {
40    #[wasm_bindgen(constructor)]
41    pub fn new(
42        rpc_address: Option<String>,
43        node_address: Option<String>,
44        verbosity: Option<Verbosity>,
45    ) -> Self {
46        SDK {
47            rpc_address,
48            node_address,
49            verbosity,
50        }
51    }
52
53    #[wasm_bindgen(js_name = "getRPCAddress")]
54    pub fn get_rpc_address(&self, rpc_address: Option<String>) -> String {
55        rpc_address
56            .as_ref()
57            .cloned()
58            .or_else(|| self.rpc_address.as_ref().map(String::to_owned))
59            .unwrap_or_default()
60    }
61
62    #[wasm_bindgen(js_name = "setRPCAddress")]
63    pub fn set_rpc_address(&mut self, rpc_address: Option<String>) -> Result<(), String> {
64        self.rpc_address = rpc_address;
65        Ok(())
66    }
67
68    #[wasm_bindgen(js_name = "getNodeAddress")]
69    pub fn get_node_address(&self, node_address: Option<String>) -> String {
70        node_address
71            .as_ref()
72            .cloned()
73            .or_else(|| self.node_address.as_ref().map(String::to_owned))
74            .unwrap_or_default()
75    }
76
77    #[wasm_bindgen(js_name = "setNodeAddress")]
78    pub fn set_node_address(&mut self, node_address: Option<String>) -> Result<(), String> {
79        self.node_address = node_address;
80        Ok(())
81    }
82
83    #[wasm_bindgen(js_name = "getVerbosity")]
84    pub fn get_verbosity(&self, verbosity: Option<Verbosity>) -> Verbosity {
85        verbosity.unwrap_or(self.verbosity.unwrap_or(Verbosity::Low))
86    }
87
88    #[wasm_bindgen(js_name = "setVerbosity")]
89    pub fn set_verbosity(&mut self, verbosity: Option<Verbosity>) -> Result<(), String> {
90        self.verbosity = verbosity;
91        Ok(())
92    }
93}