casper_rust_wasm_sdk/sdk/
mod.rs1pub 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}