Skip to content

Commit

Permalink
instructions: add repricing from EIP-1884
Browse files Browse the repository at this point in the history
  • Loading branch information
axic committed Aug 21, 2019
1 parent 9b4fed1 commit 4b5ec92
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
6 changes: 3 additions & 3 deletions lib/instructions/instruction_metrics.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ static struct evmc_instruction_metrics istanbul_metrics[256] = {
/* = 0x2e */ {UNDEFINED, 0, 0},
/* = 0x2f */ {UNDEFINED, 0, 0},
/* ADDRESS = 0x30 */ {BASE, 0, 1},
/* BALANCE = 0x31 */ {400, 1, 1},
/* BALANCE = 0x31 */ {700, 1, 1},
/* ORIGIN = 0x32 */ {BASE, 0, 1},
/* CALLER = 0x33 */ {BASE, 0, 1},
/* CALLVALUE = 0x34 */ {BASE, 0, 1},
Expand All @@ -85,7 +85,7 @@ static struct evmc_instruction_metrics istanbul_metrics[256] = {
/* EXTCODECOPY = 0x3c */ {700, 4, 0},
/* RETURNDATASIZE = 0x3d */ {BASE, 0, 1},
/* RETURNDATACOPY = 0x3e */ {VERYLOW, 3, 0},
/* EXTCODEHASH = 0x3f */ {400, 1, 1},
/* EXTCODEHASH = 0x3f */ {700, 1, 1},
/* BLOCKHASH = 0x40 */ {20, 1, 1},
/* COINBASE = 0x41 */ {BASE, 0, 1},
/* TIMESTAMP = 0x42 */ {BASE, 0, 1},
Expand All @@ -106,7 +106,7 @@ static struct evmc_instruction_metrics istanbul_metrics[256] = {
/* MLOAD = 0x51 */ {VERYLOW, 1, 1},
/* MSTORE = 0x52 */ {VERYLOW, 2, 0},
/* MSTORE8 = 0x53 */ {VERYLOW, 2, 0},
/* SLOAD = 0x54 */ {200, 1, 1},
/* SLOAD = 0x54 */ {800, 1, 1},
/* SSTORE = 0x55 */ {0, 2, 0},
/* JUMP = 0x56 */ {MID, 1, 0},
/* JUMPI = 0x57 */ {HIGH, 2, 0},
Expand Down
6 changes: 6 additions & 0 deletions test/unittests/test_instructions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -253,8 +253,11 @@ TEST(instructions, istanbul_hard_fork)
{
switch (op)
{
case OP_BALANCE:
case OP_EXTCODEHASH:
case OP_CHAINID:
case OP_SELFBALANCE:
case OP_SLOAD:
continue;
default:
EXPECT_EQ(i[op], p[op]) << op;
Expand All @@ -269,4 +272,7 @@ TEST(instructions, istanbul_hard_fork)
EXPECT_EQ(p[OP_CHAINID].gas_cost, -1);
EXPECT_EQ(in[OP_CHAINID], std::string{"CHAINID"});
EXPECT_TRUE(pn[OP_CHAINID] == nullptr);
EXPECT_EQ(i[OP_BALANCE].gas_cost, 700);
EXPECT_EQ(i[OP_EXTCODEHASH].gas_cost, 700);
EXPECT_EQ(i[OP_SLOAD].gas_cost, 800);
}

0 comments on commit 4b5ec92

Please sign in to comment.