Lux EVM activation is gated by a single canonical chain config field:
EVMTimestamp / json:'evmTimestamp'
The legacy 'SubnetEVMTimestamp' / 'subnetEVMTimestamp' field was a duplicate
alias for the same activation. Removed:
- geth/params/config.go: ChainConfig.SubnetEVMTimestamp field
- geth/params/config.go: IsEVM() now checks EVMTimestamp only
- geth/params/config.go: isLuxL2Chain check uses EVMTimestamp only
- all genesis JSON configs (mainnet/testnet/devnet × all chains)
- all helm chart genesis files (charts/lux/genesis/*.json)
- all docs (LLM.md, *.mdx)
One field, one way.
Adds migrate_replayBlocks RPC for importing blocks from SubnetEVM to geth:
- Re-executes transactions with geth's EVM
- Creates new blocks with geth's computed state roots
- Handles trie encoding differences between VMs
- Persists migration state for resumable imports
- Supports both Zoo and Lux block formats
Also includes:
- ResetWithGenesisBlock for chain reinitialization
- Lux/Zoo mainnet chain configs
- EIP-1559 base fee validation bypass for migration
- Block validator adjustments for cross-VM compatibility
Document the Lux C-chain header format system including:
- Format table (15-24 fields) with usage descriptions
- rlpFormat field tracking mechanism
- ExtDataHash value vs pointer type encoding differences
- Format detection logic for new headers
- Step-by-step guide for activating format upgrades
- Block import/export workflow
- Migration mode for disaster recovery
Post-merge fix for verkle tree witness test file that was using
upstream go-ethereum imports instead of luxfi/geth paths.
Changes:
- Fixed 12 import paths from github.com/ethereum/go-ethereum to github.com/luxfi/geth
- Imports fixed: common, consensus/beacon, consensus/ethash, core/rawdb,
core/state, core/tracing, core/types, core/vm, crypto, params, triedb
- Build now succeeds: go build ./core/...
Resolves compilation errors introduced in upstream merge 1cb1948ad.
- Added short mode support for long tests
- Fixed goroutine leaks in snapshot generation
- Disabled sender cacher during tests
- Added proper test cleanup
- All core packages now pass with -short flag