Expand description
Tempo-specific hardfork definitions and traits.
This module provides the infrastructure for managing hardfork transitions in Tempo.
§Adding a New Hardfork
When a new hardfork is needed (e.g., Vivace):
§In hardfork.rs:
- Append a
Vivacevariant totempo_hardfork!— automatically:- defines the enum variant via [
hardfork!] - implements trait
TempoHardforksby addingis_vivace(),is_vivace_active_at_timestamp(), and updatingtempo_hardfork_at() - adds tests for each of the
TempoHardforkmethods
- defines the enum variant via [
- Update
From<TempoHardfork> for SpecIdif the hardfork requires a different EthereumSpecId
§In spec.rs:
- Add
vivace_time: Option<u64>field toTempoGenesisInfo - Add
TempoHardfork::Vivace => self.vivace_timearm toTempoGenesisInfo::fork_time()
§In genesis files and generator:
- Add
"vivaceTime": 0togenesis/dev.json - Add
vivace_time: Option<u64>arg toxtask/src/genesis_args.rs - Add insertion of
"vivaceTime"to chain_config.extra_fields
Macros§
- tempo_
hardfork 🔒 - Single-source hardfork definition macro. Append a new variant and everything else is generated:
Enums§
- Tempo
Hardfork - Tempo-specific hardforks for network upgrades.
Traits§
- Tempo
Hardforks - Trait for querying Tempo-specific hardfork activations.