forked from rust-ethereum/evm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontext.rs
46 lines (43 loc) · 851 Bytes
/
context.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use primitive_types::{H160, H256, U256};
/// Create scheme.
#[derive(Clone, Copy, Eq, PartialEq, Debug)]
pub enum CreateScheme {
/// Legacy create scheme of `CREATE`.
Legacy {
/// Caller of the create.
caller: H160,
},
/// Create scheme of `CREATE2`.
Create2 {
/// Caller of the create.
caller: H160,
/// Code hash.
code_hash: H256,
/// Salt.
salt: H256,
},
/// Create at a fixed location.
Fixed(H160),
}
/// Call scheme.
#[derive(Clone, Copy, Eq, PartialEq, Debug)]
pub enum CallScheme {
/// `CALL`
Call,
/// `CALLCODE`
CallCode,
/// `DELEGATECALL`
DelegateCall,
/// `STATICCALL`
StaticCall,
}
/// Context of the runtime.
#[derive(Clone, Debug)]
pub struct Context {
/// Execution address.
pub address: H160,
/// Caller of the EVM.
pub caller: H160,
/// Apparent value of the EVM.
pub apparent_value: U256,
}