espresso-sequencer
                                
                                 espresso-sequencer copied to clipboard
                                
                                    espresso-sequencer copied to clipboard
                            
                            
                            
                        dynamic versioning
This PR:
- Adds both base and upgrade versions to the genesis.toml file and deserializes them from string format into the Version struct.
- Initializes the base and upgrade versions in binaries from the genesis.toml file.
- separates the API version from the protocol versions. The SequencerApiVersionis currently hardcoded as V0.1 for all APIs.
- Renames the mainfunction torunin binaries that require a protocol version, run() accepts a generic parameter V that implements the Versions trait. This allows matching and initializing versions from the genesis.toml file using the appropriate type. This can be replaced with a macro
- adds message compat test for each version
Files to review: all files mostly but primary focus on genesis.toml config, SequencerVersions type and main functions in all binaries.
test: Run the demo native locally to ensure everything functions as expected.