mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-03 18:43:46 +00:00
* update fee calculation * add missing GPO slots to trace * add placeholder for contract update logic * nit * update fee calculation * update formula * update GPO slots * update L1GPO bytecode * apply Curie in new worker * move bytecode to config * create an empty block for curie hard fork * initialize L1GasPriceOracle storage slots * add comments * add test * add IsCurie to traces and tests * group GPO storage slots into a struct * update unit test * chore: auto version bump [bot] * trigger ci * update bytecode * remove leading 0x * update comments * include rollup fee tests in CI --------- Co-authored-by: Ömer Faruk Irmak <omerfirmak@gmail.com> Co-authored-by: Thegaram <Thegaram@users.noreply.github.com>
23 lines
1 KiB
Go
23 lines
1 KiB
Go
package misc
|
|
|
|
import (
|
|
"github.com/scroll-tech/go-ethereum/common"
|
|
"github.com/scroll-tech/go-ethereum/core/state"
|
|
"github.com/scroll-tech/go-ethereum/log"
|
|
"github.com/scroll-tech/go-ethereum/rollup/rcfg"
|
|
)
|
|
|
|
// ApplyCurieHardFork modifies the state database according to the Curie hard-fork rules,
|
|
// updating the bytecode and storage of the L1GasPriceOracle contract.
|
|
func ApplyCurieHardFork(statedb *state.StateDB) {
|
|
log.Info("Applying Curie hard fork")
|
|
|
|
// update contract byte code
|
|
statedb.SetCode(rcfg.L1GasPriceOracleAddress, rcfg.CurieL1GasPriceOracleBytecode)
|
|
|
|
// initialize new storage slots
|
|
statedb.SetState(rcfg.L1GasPriceOracleAddress, rcfg.IsCurieSlot, common.BytesToHash([]byte{1}))
|
|
statedb.SetState(rcfg.L1GasPriceOracleAddress, rcfg.L1BlobBaseFeeSlot, common.BytesToHash([]byte{1}))
|
|
statedb.SetState(rcfg.L1GasPriceOracleAddress, rcfg.CommitScalarSlot, common.BigToHash(rcfg.InitialCommitScalar))
|
|
statedb.SetState(rcfg.L1GasPriceOracleAddress, rcfg.BlobScalarSlot, common.BigToHash(rcfg.InitialBlobScalar))
|
|
}
|