inkpad_sandbox/
transfer.rs

1//! Transfer Entry
2use crate::Sandbox;
3use inkpad_executor::Result;
4use inkpad_std::Vec;
5
6/// Transfer Entry
7#[derive(Default)]
8pub struct TransferEntry {
9    pub to: [u8; 32],
10    pub value: u64,
11    pub data: Vec<u8>,
12}
13
14impl Sandbox {
15    /// Transfer value to account
16    pub fn transfer(&mut self, to: [u8; 32], value: u64) -> Result<()> {
17        self.ext.transfers.push(TransferEntry {
18            to,
19            value,
20            data: Vec::new(),
21        });
22        Ok(())
23    }
24
25    pub fn caller(&self) -> [u8; 32] {
26        self.tx.caller()
27    }
28
29    pub fn address(&self) -> [u8; 32] {
30        self.tx.address()
31    }
32
33    pub fn balance(&self) -> Vec<u8> {
34        self.tx.balance()
35    }
36
37    pub fn value_transferred(&self) -> Vec<u8> {
38        self.tx.value_transferred()
39    }
40
41    pub fn now(&self) -> [u8; 32] {
42        self.tx.now()
43    }
44
45    pub fn minimum_balance(&self) -> Vec<u8> {
46        self.tx.minimum_balance()
47    }
48}