Expanse compatibility (#2369)
* Add support for Expanse. * Fix build. * Refactor to be able to alter the eth subprotocol name * Fix JSON. * Support exp hardfork. * Fix exp json again. * Fixed test * Fix tests.
This commit is contained in:
@@ -29,6 +29,7 @@ pub enum SpecType {
|
||||
Testnet,
|
||||
Olympic,
|
||||
Classic,
|
||||
Expanse,
|
||||
Custom(String),
|
||||
}
|
||||
|
||||
@@ -47,6 +48,7 @@ impl str::FromStr for SpecType {
|
||||
"frontier-dogmatic" | "homestead-dogmatic" | "classic" => SpecType::Classic,
|
||||
"morden" | "testnet" => SpecType::Testnet,
|
||||
"olympic" => SpecType::Olympic,
|
||||
"expanse" => SpecType::Expanse,
|
||||
other => SpecType::Custom(other.into()),
|
||||
};
|
||||
Ok(spec)
|
||||
@@ -60,6 +62,7 @@ impl SpecType {
|
||||
SpecType::Testnet => Ok(ethereum::new_morden()),
|
||||
SpecType::Olympic => Ok(ethereum::new_olympic()),
|
||||
SpecType::Classic => Ok(ethereum::new_classic()),
|
||||
SpecType::Expanse => Ok(ethereum::new_expanse()),
|
||||
SpecType::Custom(ref filename) => {
|
||||
let file = try!(fs::File::open(filename).map_err(|_| "Could not load specification file."));
|
||||
Spec::load(file)
|
||||
|
||||
@@ -148,6 +148,11 @@ pub fn execute(cmd: RunCmd) -> Result<(), String> {
|
||||
Some(id) => id,
|
||||
None => spec.network_id(),
|
||||
};
|
||||
if spec.subprotocol_name().len() != 3 {
|
||||
warn!("Your chain specification's subprotocol length is not 3. Ignoring.");
|
||||
} else {
|
||||
sync_config.subprotocol_name.clone_from_slice(spec.subprotocol_name().as_bytes());
|
||||
}
|
||||
sync_config.fork_block = spec.fork_block();
|
||||
|
||||
// prepare account provider
|
||||
|
||||
Reference in New Issue
Block a user