1use crate::util::al;
3use ceres_std::Vec;
4use parity_scale_codec::{Decode, Encode};
5
6#[derive(Clone, Encode, Decode, PartialEq, Eq)]
8pub struct Transaction {
9 pub caller: [u8; 32],
10 pub address: [u8; 32],
11 pub balance: u64,
12 pub value_transferred: u64,
13 pub now: [u8; 32],
14 pub minimum_balance: u64,
15}
16
17impl Default for Transaction {
18 fn default() -> Transaction {
19 Transaction {
20 caller: [0; 32],
21 address: [0; 32],
22 balance: 42,
23 value_transferred: 0,
24 now: [0; 32],
25 minimum_balance: 0,
26 }
27 }
28}
29
30impl Transaction {
31 pub fn caller(&self) -> [u8; 32] {
32 self.caller
33 }
34
35 pub fn set_caller(&mut self, caller: [u8; 32]) {
36 self.caller = caller;
37 }
38
39 pub fn address(&self) -> [u8; 32] {
40 self.address
41 }
42
43 pub fn set_address(&mut self, address: [u8; 32]) {
44 self.address = address;
45 }
46
47 pub fn balance(&self) -> Vec<u8> {
48 al(self.balance.encode(), 16)
49 }
50
51 pub fn set_balance(&mut self, balance: u64) {
52 self.balance = balance;
53 }
54
55 pub fn value_transferred(&self) -> Vec<u8> {
56 al(self.value_transferred.encode(), 16)
57 }
58
59 pub fn set_value_transferred(&mut self, value_transferred: u64) {
60 self.value_transferred = value_transferred;
61 }
62
63 pub fn now(&self) -> [u8; 32] {
64 self.now
65 }
66
67 pub fn set_now(&mut self, now: [u8; 32]) {
68 self.now = now;
69 }
70
71 pub fn minimum_balance(&self) -> Vec<u8> {
72 al(self.minimum_balance.encode(), 16)
73 }
74
75 pub fn set_minimum_balance(&mut self, minimum_balance: u64) {
76 self.minimum_balance = minimum_balance;
77 }
78}