ceres_sandbox/
tx.rs

1//! Chain state
2use crate::util::al;
3use ceres_std::Vec;
4use parity_scale_codec::{Decode, Encode};
5
6/// Chain State
7#[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}