Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
25b3432
Bump ethereum/go-ethereum dependency to v1.16.9
m-Peter May 2, 2026
5c9f0ce
Bump ethereum/go-ethereum dependency to v1.17.0
m-Peter May 2, 2026
1595099
Bump ethereum/go-ethereum dependency to v1.17.1
m-Peter May 2, 2026
0afd18e
Bump ethereum/go-ethereum dependency to v1.17.2
m-Peter May 2, 2026
b8072c2
Add activation timestamps for Glamsterdam hard-fork
m-Peter May 3, 2026
a7025fa
Add E2E tests to verify correctness of EIP-7708 (log emission for ETH…
m-Peter May 5, 2026
d8c4ded
Populate EVM BlockContext with information regarding SLOTNUM opcode
m-Peter May 7, 2026
80ec46c
Update COA deployment logic to match EVM internals
m-Peter May 11, 2026
bfdc0dc
Add more descriptive comments
m-Peter May 11, 2026
9b74654
Set the Amsterdam hard-fork activation date to end of 2026
m-Peter May 12, 2026
263e149
Update calculation of SlotNumber in EVM BlockProposal
m-Peter May 12, 2026
f4854b3
Update ethereum/go-ethereum dependency to v1.17.3 and fix breaking AP…
m-Peter May 12, 2026
b9d7555
Remove MaxTxGas limit cap under the Amsterdam hard-fork
m-Peter May 13, 2026
d4b1684
Record state access read in StateDB's public API
m-Peter May 13, 2026
2458588
Bump OpenTelemetry packages to latest patched version
m-Peter May 14, 2026
d10a1fa
Test improvements and code simplifications
m-Peter May 14, 2026
76bd1bb
Address review comments
m-Peter May 15, 2026
b02a851
Remove redundant sortedAddresses array allocation in LogsForBurnAccou…
m-Peter May 18, 2026
39e9ae8
Add comments in all places where we track per-tx EIP-7928 state access
m-Peter May 20, 2026
46bf1dd
Adjust SlotNumber() calculation for each network
m-Peter May 20, 2026
8b51ead
Move SlotNumber() function to Block type from BlockProposal
m-Peter May 21, 2026
fef1e50
Address review comments
m-Peter May 21, 2026
8ac9bc2
Proper EmptyCodeHash for special EVM system addresses
m-Peter May 22, 2026
4dd5d44
Bump ethereum/go-ethereum dependency to v1.17.4
m-Peter Jun 22, 2026
a31fcdb
Implement EIP-8037 for state creation gas cost increase
m-Peter Jun 22, 2026
a9ebce1
Implement EIP-7928 for Block-Level Access Lists
m-Peter Jun 23, 2026
0dc4bd5
Remove obsolete comment regarding usage of StateDB.Finalise()
m-Peter Jun 25, 2026
a56af31
Update gasLimit in VM Bridge bootstrap to 20M
m-Peter Jun 29, 2026
477e33b
Run make tidy
m-Peter Jul 7, 2026
d735ffa
Bump golang.org/x/net dependency to v0.55.0
m-Peter Jul 7, 2026
6c03274
Bump golang.org/x/crypto dependency to v0.52.0
m-Peter Jul 10, 2026
91938f5
Remove else branch on BaseView.CreateAccount()
m-Peter Jul 15, 2026
86509fd
Fix CI failures
m-Peter Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion fvm/bootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -1123,7 +1123,7 @@ func (b *bootstrapExecutor) setupVMBridge(serviceAddress flow.Address, env *temp

// Arbitrary high gas limit that can be used for all the
// EVM transactions to ensure none of them run out of gas
gasLimit := 15000000
gasLimit := 20_000_000
deploymentValue := 0.0

// Retrieve the factory bytecode from the JSON args
Expand Down
33 changes: 25 additions & 8 deletions fvm/evm/emulator/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
gethVM "github.com/ethereum/go-ethereum/core/vm"
"github.com/ethereum/go-ethereum/eth/tracers"
gethParams "github.com/ethereum/go-ethereum/params"
"github.com/holiman/uint256"

"github.com/onflow/flow-go/fvm/evm/types"
)
Expand All @@ -25,6 +26,10 @@ var (
PreviewnetOsakaActivation = uint64(0) // already on Osaka for PreviewNet
TestnetOsakaActivation = uint64(1763575200) // Wednesday, November 19, 2025 18:00:00 GMT+0000
MainnetOsakaActivation = uint64(1764784800) // Wednesday, December 03, 2025 18:00:00 GMT+0000

PreviewnetAmsterdamActivation = uint64(0) // already on Amsterdam for PreviewNet
TestnetAmsterdamActivation = uint64(1798740000) // Thursday, December 31, 2026 at 18:00:00 GMT+0000

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TestnetAmsterdamActivation & MainnetAmsterdamActivation will be updated accordingly when there's official activation times.

MainnetAmsterdamActivation = uint64(1798740000) // Thursday, December 31, 2026 at 18:00:00 GMT+0000
)

// Config aggregates all the configuration (chain, evm, block, tx, ...)
Expand Down Expand Up @@ -102,22 +107,26 @@ func MakeChainConfig(chainID *big.Int) *gethParams.ChainConfig {
MuirGlacierBlock: bigZero, // already on MuirGlacier

// Fork scheduling based on timestamps
ShanghaiTime: &zero, // already on Shanghai
CancunTime: &zero, // already on Cancun
PragueTime: nil, // this is conditionally set below
OsakaTime: nil, // this is conditionally set below
VerkleTime: nil, // not on Verkle
ShanghaiTime: &zero, // already on Shanghai
CancunTime: &zero, // already on Cancun
PragueTime: nil, // this is conditionally set below
OsakaTime: nil, // this is conditionally set below
AmsterdamTime: nil, // this is conditionally set below
UBTTime: nil, // not on Verkle (a.k.a UBT)
}

if chainID.Cmp(types.FlowEVMPreviewNetChainID) == 0 {
chainConfig.PragueTime = &PreviewnetPragueActivation
chainConfig.OsakaTime = &PreviewnetOsakaActivation
chainConfig.AmsterdamTime = &PreviewnetAmsterdamActivation
} else if chainID.Cmp(types.FlowEVMTestNetChainID) == 0 {
chainConfig.PragueTime = &TestnetPragueActivation
chainConfig.OsakaTime = &TestnetOsakaActivation
chainConfig.AmsterdamTime = &TestnetAmsterdamActivation
} else if chainID.Cmp(types.FlowEVMMainNetChainID) == 0 {
chainConfig.PragueTime = &MainnetPragueActivation
chainConfig.OsakaTime = &MainnetOsakaActivation
chainConfig.AmsterdamTime = &MainnetAmsterdamActivation
}

return chainConfig
Expand All @@ -135,8 +144,7 @@ func defaultConfig() *Config {
NoBaseFee: true,
},
TxContext: &gethVM.TxContext{
GasPrice: new(big.Int),
BlobFeeCap: new(big.Int),
GasPrice: new(uint256.Int),
},
BlockContext: &gethVM.BlockContext{
CanTransfer: gethCore.CanTransfer,
Expand All @@ -146,6 +154,7 @@ func defaultConfig() *Config {
GetHash: func(n uint64) gethCommon.Hash {
return gethCommon.Hash{}
},
CostPerStateByte: gethParams.CostPerStateByte,
},
PCTracker: NewCallTracker(),
}
Expand Down Expand Up @@ -188,7 +197,7 @@ func WithOrigin(origin gethCommon.Address) Option {
// WithGasPrice sets the gas price for the transaction (usually the one sets by the sender)
func WithGasPrice(gasPrice *big.Int) Option {

@m-Peter m-Peter May 11, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WithGasPrice seems to be not used in flow-go or flow-evm-gateway. Seems like a relic that we could remove entirely.

return func(c *Config) *Config {
c.TxContext.GasPrice = gasPrice
c.TxContext.GasPrice = uint256.MustFromBig(gasPrice)
return c
Comment thread
m-Peter marked this conversation as resolved.
}
}
Expand Down Expand Up @@ -264,6 +273,14 @@ func WithRandom(rand *gethCommon.Hash) Option {
}
}

// WithSlotNum sets the slot number in the block context
func WithSlotNum(slotNum uint64) Option {
return func(c *Config) *Config {
c.BlockContext.SlotNum = slotNum
return c
}
}

// WithTransactionTracer sets a transaction tracer
func WithTransactionTracer(tracer *tracers.Tracer) Option {
return func(c *Config) *Config {
Expand Down
Loading
Loading