@@ -382,6 +382,10 @@ TEST(instructions, shanghai_hard_fork)
382382 {
383383 if (op == OP_PUSH0 )
384384 continue ;
385+ if (op == OP_DUPN )
386+ continue ;
387+ if (op == OP_SWAPN )
388+ continue ;
385389 EXPECT_EQ (s[op], p[op]) << op;
386390 EXPECT_STREQ (sn[op], pn[op]) << op;
387391 }
@@ -393,4 +397,20 @@ TEST(instructions, shanghai_hard_fork)
393397 EXPECT_EQ (p[OP_PUSH0 ].gas_cost , 0 );
394398 EXPECT_EQ (sn[OP_PUSH0 ], std::string{" PUSH0" });
395399 EXPECT_TRUE (pn[OP_PUSH0 ] == nullptr );
400+
401+ // EIP-663: DUPN instruction
402+ EXPECT_EQ (s[OP_DUPN ].gas_cost , 3 );
403+ EXPECT_EQ (s[OP_DUPN ].stack_height_required , 0 );
404+ EXPECT_EQ (s[OP_DUPN ].stack_height_change , 1 );
405+ EXPECT_EQ (p[OP_DUPN ].gas_cost , 0 );
406+ EXPECT_EQ (sn[OP_DUPN ], std::string{" DUPN" });
407+ EXPECT_TRUE (pn[OP_DUPN ] == nullptr );
408+
409+ // EIP-663: SWAPN instruction
410+ EXPECT_EQ (s[OP_SWAPN ].gas_cost , 3 );
411+ EXPECT_EQ (s[OP_SWAPN ].stack_height_required , 0 );
412+ EXPECT_EQ (s[OP_SWAPN ].stack_height_change , 0 );
413+ EXPECT_EQ (p[OP_SWAPN ].gas_cost , 0 );
414+ EXPECT_EQ (sn[OP_SWAPN ], std::string{" SWAPN" });
415+ EXPECT_TRUE (pn[OP_SWAPN ] == nullptr );
396416}
0 commit comments