casper_rust_wasm_sdk/sdk/
mod.rs1#[cfg(feature = "binary-port")]
2pub mod binary_port;
3
4#[cfg(feature = "deploy")]
5#[allow(hidden_glob_reexports)]
6pub(crate) mod deploy;
7#[cfg(feature = "deploy")]
8pub use deploy::*;
9
10pub mod rpcs;
11
12#[cfg(feature = "transaction")]
13#[allow(hidden_glob_reexports)]
14pub(crate) mod transaction;
15#[cfg(feature = "transaction")]
16pub use transaction::*;
17
18#[cfg(feature = "deploy")]
19pub(crate) mod deploy_utils;
20#[cfg(feature = "deploy")]
21pub(crate) use deploy_utils::*;
22
23#[cfg(feature = "transaction")]
24pub(crate) mod transaction_utils;
25#[cfg(feature = "transaction")]
26pub(crate) use transaction_utils::*;
27
28#[cfg(feature = "watcher")]
30#[path = "sse/mod.rs"]
31pub(crate) mod sse;
32
33#[cfg(feature = "watcher")]
34pub mod watcher {
35 pub use crate::sdk::sse::watcher::*;
36}
37
38#[cfg(feature = "SSE")]
40#[allow(non_snake_case)]
41pub mod SSE {
42 pub use crate::sdk::sse::ces::*;
43 pub use crate::sdk::sse::client::*;
44 pub use crate::sdk::sse::event::*;
45 pub use crate::sdk::sse::framing::*;
46}
47
48#[cfg(feature = "contract")]
49pub(crate) mod contract;
50#[cfg(feature = "contract")]
51pub use contract::*;
52
53#[cfg(feature = "js")]
54use wasm_bindgen::prelude::*;
55
56use crate::types::verbosity::Verbosity;
57
58#[cfg_attr(feature = "js", wasm_bindgen)]
59pub struct SDK {
60 rpc_address: Option<String>,
61 node_address: Option<String>,
62 verbosity: Option<Verbosity>,
63}
64
65impl Default for SDK {
66 fn default() -> Self {
67 Self::new(None, None, None)
68 }
69}
70
71#[cfg_attr(feature = "js", wasm_bindgen)]
72impl SDK {
73 #[cfg_attr(feature = "js", wasm_bindgen(constructor))]
74 pub fn new(
75 rpc_address: Option<String>,
76 node_address: Option<String>,
77 verbosity: Option<Verbosity>,
78 ) -> Self {
79 SDK {
80 rpc_address,
81 node_address,
82 verbosity,
83 }
84 }
85
86 #[cfg_attr(feature = "js", wasm_bindgen(js_name = "getRPCAddress"))]
87 pub fn get_rpc_address(&self, rpc_address: Option<String>) -> String {
88 rpc_address
89 .as_ref()
90 .cloned()
91 .or_else(|| self.rpc_address.as_ref().map(String::to_owned))
92 .unwrap_or_default()
93 }
94
95 #[cfg_attr(feature = "js", wasm_bindgen(js_name = "setRPCAddress"))]
96 pub fn set_rpc_address(&mut self, rpc_address: Option<String>) -> Result<(), String> {
97 self.rpc_address = rpc_address;
98 Ok(())
99 }
100
101 #[cfg_attr(feature = "js", wasm_bindgen(js_name = "getNodeAddress"))]
102 pub fn get_node_address(&self, node_address: Option<String>) -> String {
103 node_address
104 .as_ref()
105 .cloned()
106 .or_else(|| self.node_address.as_ref().map(String::to_owned))
107 .unwrap_or_default()
108 }
109
110 #[cfg_attr(feature = "js", wasm_bindgen(js_name = "setNodeAddress"))]
111 pub fn set_node_address(&mut self, node_address: Option<String>) -> Result<(), String> {
112 self.node_address = node_address;
113 Ok(())
114 }
115
116 #[cfg_attr(feature = "js", wasm_bindgen(js_name = "getVerbosity"))]
117 pub fn get_verbosity(&self, verbosity: Option<Verbosity>) -> Verbosity {
118 verbosity.unwrap_or(self.verbosity.unwrap_or(Verbosity::Low))
119 }
120
121 #[cfg_attr(feature = "js", wasm_bindgen(js_name = "setVerbosity"))]
122 pub fn set_verbosity(&mut self, verbosity: Option<Verbosity>) -> Result<(), String> {
123 self.verbosity = verbosity;
124 Ok(())
125 }
126}