fixed od builting parsing

This commit is contained in:
debris 2016-03-18 19:31:31 +01:00
parent 1c9cc6167d
commit 839cecd2da

View File

@ -19,7 +19,7 @@ use crypto::sha2::Sha256;
use crypto::ripemd160::Ripemd160; use crypto::ripemd160::Ripemd160;
use crypto::digest::Digest; use crypto::digest::Digest;
/// Definition of a contract whose implementation is built-in. /// Definition of a contract whose implementation is built-in.
pub struct Builtin { pub struct Builtin {
/// The gas cost of running this built-in for the given size of input data. /// The gas cost of running this built-in for the given size of input data.
pub cost: Box<Fn(usize) -> U256>, // TODO: U256 should be bignum. pub cost: Box<Fn(usize) -> U256>, // TODO: U256 should be bignum.
@ -63,11 +63,11 @@ impl Builtin {
/// Create a builtin from JSON. /// Create a builtin from JSON.
/// ///
/// JSON must be of the form `{ "name": "identity", "linear": {"base": 10, "word": 20} }`. /// JSON must be of the form `{ "name": "identity", "pricing": {"base": 10, "word": 20} }`.
pub fn from_json(json: &Json) -> Option<Builtin> { pub fn from_json(json: &Json) -> Option<Builtin> {
// NICE: figure out a more convenient means of handing errors here. // NICE: figure out a more convenient means of handing errors here.
if let Json::String(ref name) = json["name"] { if let Json::String(ref name) = json["name"] {
if let Json::Object(ref o) = json["linear"] { if let Json::Object(ref o) = json["pricing"] {
if let Json::U64(ref word) = o["word"] { if let Json::U64(ref word) = o["word"] {
if let Json::U64(ref base) = o["base"] { if let Json::U64(ref base) = o["base"] {
return Self::from_named_linear(&name[..], *base as usize, *word as usize); return Self::from_named_linear(&name[..], *base as usize, *word as usize);