@@ -74,6 +74,7 @@ enum class opcodeEnum
74
74
CALLCODE,
75
75
RETURN,
76
76
DELEGATECALL,
77
+ STATICCALL,
77
78
SELFDESTRUCT,
78
79
INVALID,
79
80
bswap_i32,
@@ -266,6 +267,7 @@ static std::map<int, std::tuple<opcodeEnum, int, int, int>> codes = {
266
267
{0xf2 , Opcode{opcodeEnum::CALLCODE, 0 , 7 , 1 }},
267
268
{0xf3 , Opcode{opcodeEnum::RETURN, 0 , 2 , 0 }},
268
269
{0xf4 , Opcode{opcodeEnum::DELEGATECALL, 0 , 6 , 1 }},
270
+ {0xfa , Opcode{opcodeEnum::STATICCALL, 0 , 6 , 1 }},
269
271
270
272
// "0x70", range - other
271
273
{0xff , Opcode{opcodeEnum::SELFDESTRUCT, 0 , 1 , 0 }}};
@@ -313,11 +315,14 @@ static std::map<opcodeEnum, std::vector<opcodeEnum>> depMap = {
313
315
opcodeEnum::check_overflow, opcodeEnum::memset, opcodeEnum::callback_32}},
314
316
{opcodeEnum::DELEGATECALL, {opcodeEnum::callback, opcodeEnum::memusegas,
315
317
opcodeEnum::check_overflow, opcodeEnum::memset,
316
- opcodeEnum::check_overflow_i64}},
318
+ opcodeEnum::check_overflow_i64, opcodeEnum::callback_32 }},
317
319
{opcodeEnum::CALLCODE,
318
320
{opcodeEnum::bswap_m256, opcodeEnum::callback, opcodeEnum::memusegas,
319
321
opcodeEnum::check_overflow, opcodeEnum::memset, opcodeEnum::callback_32,
320
322
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}},
321
326
{opcodeEnum::CREATE, {opcodeEnum::bswap_m256, opcodeEnum::bswap_m160, opcodeEnum::callback_160,
322
327
opcodeEnum::memusegas, opcodeEnum::check_overflow}},
323
328
{opcodeEnum::RETURN, {opcodeEnum::memusegas, opcodeEnum::check_overflow}},
0 commit comments