Skip to content
/ evm-rs Public

EVM (Ethereum Virtual Machine) implementation in rust

Notifications You must be signed in to change notification settings

nvnx7/evm-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

evm-rs [WIP]

EVM (Ethereum Virtual Machine) implementation in Rust language acc. to the specs.

Example

// Iterate and sum up to 5

let code =  vec![
            0x60, 0x00, // PUSH1 (initial value 0)
            0x5b, // JUMPDEST    (loop start)
            0x60, 0x01, // PUSH1
            0x01, // ADD         (increment)
            0x80, // DUP1
            0x60, 0x05, // PUSH1
            0x11, // GT          (check sum < 5)
            0x60, 0x02, // PUSH1
            0x57, // JUMPI       (iterate if sum < 5)
            0x60, 0x00, // PUSH1
            0x52, // MSTORE      (store sum in memory)
            0x60, 0x20, // PUSH1
            0x60, 0x00, // PUSH1
            0xf3, // RETURN      (return sum)
        ];

let mut vm = Vm::new(&code);
vm.run().ok();

let sum = vm.get_return_data(); // 0x000..005

About

EVM (Ethereum Virtual Machine) implementation in rust

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages