@@ -74,6 +74,7 @@ enum class opcodeEnum
7474 CALLCODE,
7575 RETURN,
7676 DELEGATECALL,
77+ STATICCALL,
7778 SELFDESTRUCT,
7879 INVALID,
7980 bswap_i32,
@@ -266,6 +267,7 @@ static std::map<int, std::tuple<opcodeEnum, int, int, int>> codes = {
266267 {0xf2 , Opcode{opcodeEnum::CALLCODE, 0 , 7 , 1 }},
267268 {0xf3 , Opcode{opcodeEnum::RETURN, 0 , 2 , 0 }},
268269 {0xf4 , Opcode{opcodeEnum::DELEGATECALL, 0 , 6 , 1 }},
270+ {0xfa , Opcode{opcodeEnum::STATICCALL, 0 , 6 , 1 }},
269271
270272 // "0x70", range - other
271273 {0xff , Opcode{opcodeEnum::SELFDESTRUCT, 0 , 1 , 0 }}};
@@ -313,11 +315,14 @@ static std::map<opcodeEnum, std::vector<opcodeEnum>> depMap = {
313315 opcodeEnum::check_overflow, opcodeEnum::memset, opcodeEnum::callback_32}},
314316 {opcodeEnum::DELEGATECALL, {opcodeEnum::callback, opcodeEnum::memusegas,
315317 opcodeEnum::check_overflow, opcodeEnum::memset,
316- opcodeEnum::check_overflow_i64}},
318+ opcodeEnum::check_overflow_i64, opcodeEnum::callback_32 }},
317319 {opcodeEnum::CALLCODE,
318320 {opcodeEnum::bswap_m256, opcodeEnum::callback, opcodeEnum::memusegas,
319321 opcodeEnum::check_overflow, opcodeEnum::memset, opcodeEnum::callback_32,
320322 opcodeEnum::check_overflow_i64}},
323+ {opcodeEnum::STATICCALL, {opcodeEnum::callback, opcodeEnum::memusegas,
324+ opcodeEnum::check_overflow, opcodeEnum::memset,
325+ opcodeEnum::check_overflow_i64, opcodeEnum::callback_32}},
321326 {opcodeEnum::CREATE, {opcodeEnum::bswap_m256, opcodeEnum::bswap_m160, opcodeEnum::callback_160,
322327 opcodeEnum::memusegas, opcodeEnum::check_overflow}},
323328 {opcodeEnum::RETURN, {opcodeEnum::memusegas, opcodeEnum::check_overflow}},
0 commit comments