INNER CODE UNIT · Rust
get_opcode_type
fuzzland/ityfuzz · src/evm/middlewares/cheatcode/mod.rs:596
fn get_opcode_type(op: u8, interp: &Interpreter) -> OpcodeType {
match op {
opcode::CALL | opcode::CALLCODE | opcode::DELEGATECALL | opcode::STATICCALL => {
let target: B160 = B160(
interp.stack().peek(1).unwrap().to_be_bytes::<{ U256::BYTES }>()[12..]
.try_into()
.unwrap(),
);
if target.as_slice() == CHEATCODE_ADDRESS.as_slice() {
OpcodeType::CheatCall
} else {
OpcodeType::RealCall
}
}
opcode::SLOAD | opcode::SSTORE => OpcodeType::Storage,
opcode::LOG0..=opcode::LOG4 => OpcodeType::Log,
opcode::REVERT => OpcodeType::Revert,