[json-spec] make blake2 pricing spec more readable (#11034)

* [json-spec] make blake2 pricing spec more readable

* [ethcore] fix compilation
This commit is contained in:
Andronik Ordian 2019-09-10 17:52:04 +02:00 committed by GitHub
parent d8d7abc848
commit feb87c901e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 7 deletions

View File

@ -218,8 +218,8 @@ impl Builtin {
impl From<ethjson::spec::Builtin> for Builtin { impl From<ethjson::spec::Builtin> for Builtin {
fn from(b: ethjson::spec::Builtin) -> Self { fn from(b: ethjson::spec::Builtin) -> Self {
let pricer: Box<dyn Pricer> = match b.pricing { let pricer: Box<dyn Pricer> = match b.pricing {
ethjson::spec::Pricing::Blake2F(cost_per_round) => { ethjson::spec::Pricing::Blake2F { gas_per_round } => {
Box::new(cost_per_round) Box::new(gas_per_round)
}, },
ethjson::spec::Pricing::Linear(linear) => { ethjson::spec::Pricing::Linear(linear) => {
Box::new(Linear { Box::new(Linear {

View File

@ -18,8 +18,6 @@
use uint::Uint; use uint::Uint;
/// Price per round of Blake2 compression.
pub type Blake2F = u64;
/// Linear pricing. /// Linear pricing.
#[derive(Debug, PartialEq, Deserialize, Clone)] #[derive(Debug, PartialEq, Deserialize, Clone)]
@ -69,7 +67,10 @@ pub struct AltBn128Pairing {
#[serde(rename_all = "snake_case")] #[serde(rename_all = "snake_case")]
pub enum Pricing { pub enum Pricing {
/// Pricing for Blake2 compression function: each call costs the same amount per round. /// Pricing for Blake2 compression function: each call costs the same amount per round.
Blake2F(Blake2F), Blake2F {
/// Price per round of Blake2 compression function.
gas_per_round: u64,
},
/// Linear pricing. /// Linear pricing.
Linear(Linear), Linear(Linear),
/// Pricing for modular exponentiation. /// Pricing for modular exponentiation.
@ -117,11 +118,11 @@ mod tests {
let s = r#"{ let s = r#"{
"name": "blake2_f", "name": "blake2_f",
"activate_at": "0xffffff", "activate_at": "0xffffff",
"pricing": { "blake2_f": 123 } "pricing": { "blake2_f": { "gas_per_round": 123 } }
}"#; }"#;
let deserialized: Builtin = serde_json::from_str(s).unwrap(); let deserialized: Builtin = serde_json::from_str(s).unwrap();
assert_eq!(deserialized.name, "blake2_f"); assert_eq!(deserialized.name, "blake2_f");
assert_eq!(deserialized.pricing, Pricing::Blake2F(123)); assert_eq!(deserialized.pricing, Pricing::Blake2F { gas_per_round: 123 });
assert!(deserialized.activate_at.is_some()); assert!(deserialized.activate_at.is_some());
} }