xevm

Crates.ioxevm
lib.rsxevm
version0.1.3
created_at2025-01-07 11:30:59.365649+00
updated_at2025-01-07 21:41:55.123083+00
descriptionTiny Ethereum virtual machine written in pure Rust
homepage
repository
max_upload_size
id1506996
size182,222
Keyvan Kambakhsh (keyvank)

documentation

README

xevm

Tests badge

xevm is a tiny implementation of Ethereum Virtual Machine, written in pure Rust!

Sample usage:

use alloy_primitives::primitives::{Address, U256};
use xevm::context::MiniEthereum;
use xevm::machine::{CallInfo, Machine};
use xevm::opcodes::ExecutionResult;

fn main() {
    let code = vec![];
    let mut ctx = MiniEthereum::new();
    let exec_result = Machine::new(Address::ZERO, code.clone())
        .run(
            &mut ctx,
            &CallInfo {
                origin: Address::ZERO,
                caller: Address::ZERO,
                call_value: U256::ZERO,
                calldata: vec![0xd0, 0x9d, 0xe0, 0x8a],
            },
        )
        .unwrap();
    match exec_result {
        ExecutionResult::Returned(ret) => {
            println!("Returned {:?}!", ret);
        }
        ExecutionResult::Halted => {
            println!("Halted!");
        }
    }
}
Commit count: 0

cargo fmt