3 个版本

使用旧的 Rust 2015

0.1.3 2017年8月23日
0.1.2 2017年8月4日
0.1.1 2017年7月31日
0.1.0 2017年7月31日

#13#disassemble

MIT 许可证

15KB
319

evmasm

evmasm 包旨在提供一种简单的方法,用于在 EVM 字节码和人类可读形式之间进行转换。

extern crate evmasm;
use evmasm::{BYTE_INST, instruction, arguments_size};

fn main() {
    for (&bc, _) in BYTE_INST.iter() {
        let inst = instruction(bc).ok().unwrap();
        println!("0x{:2x} - {} - needs {} bytes of arguments",
                 bc,
                 inst,
                 arguments_size(bc).ok().unwrap());
    }
}

lib.rs:

evmasm 包旨在提供一种简单的方法,用于在 EVM 字节码和人类可读形式之间进行转换。

extern crate evmasm;
use evmasm::{assemble, disassemble};

fn main() {
    let bytecode = assemble("PUSH1 2 PUSH1 1 ADD").unwrap();
    println!("{:?}", bytecode);
    let code = disassemble(&bytecode).unwrap();
    for ln in code {
        println!("{}", ln);
    }
}
extern crate evmasm;
use evmasm::{BYTE_INST, instruction, arguments_size};

fn main() {
    for (&bc, _) in BYTE_INST.iter() {
        let inst = instruction(bc).ok().unwrap();
        println!("0x{:2x} - {} - needs {} bytes of arguments",
                 bc,
                 inst,
                 arguments_size(bc).ok().unwrap());
    }
}

依赖项

~280KB