pub struct Evm {
pub pc: usize,
pub gas: Gas,
pub stack: Vec<Int>,
pub memory: Vec<u8>,
pub code: Vec<u8>,
pub head: Head,
pub ret: Vec<u8>,
pub chain_id: Int,
pub gas_price: Int,
pub blob_hashes: Vec<Int>,
/* private fields */
}Fields§
§pc: usize§gas: Gas§stack: Vec<Int>§memory: Vec<u8>§code: Vec<u8>§head: Head§ret: Vec<u8>§chain_id: Int§gas_price: Int§blob_hashes: Vec<Int>Implementations§
Source§impl Evm
impl Evm
pub const STACK_SIZE_LIMIT: usize = 1024
pub const MEMORY_SIZE_LIMIT: usize
pub fn new( head: Head, code: Vec<u8>, gas: u64, chain_id: Int, gas_price: Int, blob_hashes: Vec<Int>, ) -> Self
pub fn peek_usize<const N: usize>(&mut self) -> EvmResult<[usize; N]>
pub fn peek<const N: usize>(&mut self) -> EvmResult<[Int; N]>
pub fn apply(&mut self, state: &mut impl State)
pub fn reset(&mut self)
pub fn push(&mut self, int: Int) -> EvmResult<()>
pub fn warm_acc(&mut self, acc: &Acc)
pub fn warm_key(&mut self, acc: &Acc, key: &Int)
pub fn gas_remaining(&self) -> i64
pub fn gas_charge(&mut self, gas: i64) -> EvmResult<()>
pub fn gas_refund(&mut self, gas: i64) -> EvmResult<()>
pub fn mem_expand(&mut self, offset: usize, size: usize) -> EvmResult<()>
Sourcepub fn mem_expand_max(&mut self, regions: &[(usize, usize)]) -> EvmResult<()>
pub fn mem_expand_max(&mut self, regions: &[(usize, usize)]) -> EvmResult<()>
Expand memory to cover all given regions and charge gas once for the combined expansion. Per EVM spec, CALL/DELEGATECALL/etc. charge for expansion to max(args, ret) in one step.
pub fn mem_put( &mut self, offset: usize, size: usize, source: &[u8], ) -> EvmResult<()>
pub fn mem_get(&mut self, offset: usize, size: usize) -> EvmResult<Vec<u8>>
pub fn data(&self, pc: usize) -> Vec<u8> ⓘ
pub fn step( &mut self, ctx: &Context, call: &Call, state: &mut impl State, ) -> Result<StepResult>
Auto Trait Implementations§
impl Freeze for Evm
impl RefUnwindSafe for Evm
impl Send for Evm
impl Sync for Evm
impl Unpin for Evm
impl UnsafeUnpin for Evm
impl UnwindSafe for Evm
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more