[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:
parent
d8d7abc848
commit
feb87c901e
@ -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 {
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user