openethereum/src/evm/params.rs

52 lines
864 B
Rust
Raw Normal View History

2016-01-09 00:51:09 +01:00
use util::hash::*;
use util::uint::*;
use util::bytes::*;
#[derive(Eq, PartialEq, Clone)]
pub enum ParamsKind {
Create,
Call
}
#[derive(Clone)]
pub struct EvmParams {
pub address: Address,
pub sender: Address,
pub origin: Address,
pub gas: U256,
pub gas_price: U256,
pub value: U256,
pub code: Bytes,
pub data: Bytes,
pub kind: ParamsKind
}
impl EvmParams {
pub fn new(kind: ParamsKind) -> EvmParams {
EvmParams {
address: Address::new(),
sender: Address::new(),
origin: Address::new(),
gas: U256::zero(),
gas_price: U256::zero(),
value: U256::zero(),
code: vec![],
data: vec![],
kind: kind
}
}
pub fn new_call() -> EvmParams {
EvmParams::new(ParamsKind::Call)
}
pub fn new_create() -> EvmParams {
EvmParams::new(ParamsKind::Create)
}
pub fn kind(&self) -> ParamsKind {
//TODO
ParamsKind::Create
}
}