diff --git a/ethcore-builtin/src/lib.rs b/ethcore-builtin/src/lib.rs index a5e1d73..e073412 100644 --- a/ethcore-builtin/src/lib.rs +++ b/ethcore-builtin/src/lib.rs @@ -845,11 +845,7 @@ impl Implementation for EcRecover { let message = libsecp256k1::Message::parse(&hash); let recovery_id = libsecp256k1::RecoveryId::parse(bit); if let Ok(recovery_id) = recovery_id { - if let Ok(p) = libsecp256k1::recover( - &message, - &signature.unwrap(), - &recovery_id, - ) { + if let Ok(p) = libsecp256k1::recover(&message, &signature.unwrap(), &recovery_id) { let r = keccak(&p.serialize()[1..65]); output.write(0, &[0; 12]); output.write(12, &r.as_bytes()[12..]); diff --git a/evm b/evm index dff73a6..01bcbd2 160000 --- a/evm +++ b/evm @@ -1 +1 @@ -Subproject commit dff73a6aaf60d94751cb1359959573db5254c715 +Subproject commit 01bcbd2205a212c34451d3b4fabc962793b057d3 diff --git a/jsontests/src/state.rs b/jsontests/src/state.rs index db19226..e2d2f5f 100644 --- a/jsontests/src/state.rs +++ b/jsontests/src/state.rs @@ -8,9 +8,9 @@ use evm::executor::stack::{ use evm::{Config, Context, ExitError, ExitSucceed}; use lazy_static::lazy_static; use libsecp256k1::SecretKey; -use sha3::{Digest, Keccak256}; use primitive_types::{H160, H256, U256}; use serde::Deserialize; +use sha3::{Digest, Keccak256}; use std::collections::BTreeMap; use std::convert::TryInto; @@ -30,7 +30,7 @@ impl Test { let public = libsecp256k1::PublicKey::from_secret_key(&secret.unwrap()); let mut res = [0u8; 64]; res.copy_from_slice(&public.serialize()[1..65]); - + H160::from(H256::from_slice(Keccak256::digest(&res).as_slice())) } @@ -97,12 +97,7 @@ lazy_static! { macro_rules! precompile_entry { ($map:expr, $builtins:expr, $index:expr) => { - let x: fn( - &[u8], - Option, - &Context, - bool, - ) -> Result = + let x: PrecompileFn = |input: &[u8], gas_limit: Option, _context: &Context, _is_static: bool| { let builtin = $builtins.get(&H160::from_low_u64_be($index)).unwrap(); Self::exec_as_precompile(builtin, input, gas_limit) @@ -167,7 +162,7 @@ impl JsonPrecompile { builtin: ðcore_builtin::Builtin, input: &[u8], gas_limit: Option, - ) -> Result { + ) -> Result<(PrecompileOutput, u64), PrecompileFailure> { let cost = builtin.cost(input, 0); if let Some(target_gas) = gas_limit { @@ -180,12 +175,13 @@ impl JsonPrecompile { let mut output = Vec::new(); match builtin.execute(input, &mut parity_bytes::BytesRef::Flexible(&mut output)) { - Ok(()) => Ok(PrecompileOutput { - exit_status: ExitSucceed::Stopped, - output, - cost: cost.as_u64(), - logs: Vec::new(), - }), + Ok(()) => Ok(( + PrecompileOutput { + exit_status: ExitSucceed::Stopped, + output, + }, + cost.as_u64(), + )), Err(e) => Err(PrecompileFailure::Error { exit_status: ExitError::Other(e.into()), }),