BEP: 227 Title: Add BASEFEE opcode Status: Pre-Draft Type: Standards Created: 2023-04-17
Adds an opcode that gives the EVM access to the block's base fee. This BEP is dependent on BEP-226 (EIP-1559 with base fee of 0).
Add a BASEFEE (0x48)
that returns the value of the base fee of the current block it is executing in.
The code for this BEP has already been merged from upstream go-ethereum codebase into BSC node codebase. The work entails enabling EIP-3198 (this BEP) for BSC network configurations and performing a hard fork.
The intended use case would be for contracts to get the value of the base fee (introduced by EIP-1559 (BEP-226)).
Add a BASEFEE
opcode at (0x48)
, with gas cost G_base
.
Op | Input | Output | Cost |
---|---|---|---|
0x48 | 0 | 1 | 2 |
The value of the base fee is needed to process transactions. That means it's value is already available before running the EVM code.
The opcode does not add extra complexity and additional read/write operations, hence the choice of G_base
gas cost.
There are no known backward compatibility issues with this opcode.
Assuming current block base fee is 7 wei
.
This should push the value 7
(left padded byte32) to the stack.
Bytecode: 0x4800
(BASEFEE, STOP
)
Pc | Op | Cost | Stack | RStack |
---|---|---|---|---|
0 | BASEFEE | 2 | [] | [] |
1 | STOP | 0 | [7] | [] |
Output: 0x
Consumed gas: 2
The value of the base fee is not sensitive and is publicly accessible in the block header. There are no known security implications with this opcode.
The content is licensed under CC0.