From a954ce5f2d21ad09460d45006a6ff4f5267a6095 Mon Sep 17 00:00:00 2001 From: Alan Sapede Date: Fri, 9 Oct 2020 17:34:07 -0400 Subject: [PATCH] Fixes evm ripemd160 impl to use 32 bytes (#7296) Co-authored-by: Alan --- substrate/frame/evm/src/precompiles.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/substrate/frame/evm/src/precompiles.rs b/substrate/frame/evm/src/precompiles.rs index 987724285d..440d9bf1c6 100644 --- a/substrate/frame/evm/src/precompiles.rs +++ b/substrate/frame/evm/src/precompiles.rs @@ -145,8 +145,9 @@ impl Precompile for Ripemd160 { ) -> core::result::Result<(ExitSucceed, Vec, usize), ExitError> { let cost = ensure_linear_cost(target_gas, input.len(), 600, 120)?; - let ret = ripemd160::Ripemd160::digest(input).to_vec(); - Ok((ExitSucceed::Returned, ret, cost)) + let mut ret = [0u8; 32]; + ret[12..32].copy_from_slice(&ripemd160::Ripemd160::digest(input)); + Ok((ExitSucceed::Returned, ret.to_vec(), cost)) } }