cita_tool/client/
transaction_option.rs1use types::U256;
2
3#[derive(Clone, Copy, Debug)]
5pub struct TransactionOptions<'a> {
6 code: &'a str,
7 address: &'a str,
8 current_height: Option<u64>,
9 quota: Option<u64>,
10 value: Option<U256>,
11 version: Option<u32>,
12 sender: Option<&'a str>,
13}
14
15impl<'a> TransactionOptions<'a> {
16 pub fn new() -> Self {
18 TransactionOptions {
19 code: "0x",
20 address: "0x",
21 current_height: None,
22 quota: None,
23 value: None,
24 version: None,
25 sender: None,
26 }
27 }
28
29 pub fn set_code(mut self, code: &'a str) -> Self {
31 self.code = code;
32 self
33 }
34
35 pub fn code(&self) -> &str {
37 self.code
38 }
39
40 pub fn set_address(mut self, address: &'a str) -> Self {
43 self.address = address;
44 self
45 }
46
47 pub fn address(&self) -> &str {
49 self.address
50 }
51
52 pub fn set_current_height(mut self, height: Option<u64>) -> Self {
56 self.current_height = height;
57 self
58 }
59
60 pub fn current_height(&self) -> Option<u64> {
62 self.current_height
63 }
64
65 pub fn set_quota(mut self, quota: Option<u64>) -> Self {
67 self.quota = quota;
68 self
69 }
70
71 pub fn quota(&self) -> Option<u64> {
73 self.quota
74 }
75
76 pub fn set_value(mut self, value: Option<U256>) -> Self {
78 self.value = value;
79 self
80 }
81
82 pub fn value(&self) -> Option<U256> {
84 self.value
85 }
86
87 pub fn set_version(mut self, version: Option<u32>) -> Self {
89 self.version = version;
90 self
91 }
92
93 pub fn version(&self) -> Option<u32> {
95 self.version
96 }
97
98 pub fn clear(&mut self) {
100 self.value = None;
101 self.quota = None;
102 self.current_height = None;
103 self.address = "0x";
104 self.code = "0x";
105 self.version = None
106 }
107
108 pub fn set_sender(mut self, address: &'a str) -> Self {
111 self.sender = Some(address);
112 self
113 }
114
115 pub fn sender(&self) -> Option<&str> {
117 self.sender
118 }
119}
120
121impl Default for TransactionOptions<'static> {
122 fn default() -> Self {
123 TransactionOptions::new()
124 }
125}