From 73b278fe037bf94443dacf7885f292b85eb13e90 Mon Sep 17 00:00:00 2001 From: HAPPY Date: Mon, 26 Aug 2024 13:56:30 +0000 Subject: [PATCH] fix gas check order in blake2 precompile --- crates/precompile/src/blake2.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/precompile/src/blake2.rs b/crates/precompile/src/blake2.rs index 1b4ab9256a..6ecf55bebe 100644 --- a/crates/precompile/src/blake2.rs +++ b/crates/precompile/src/blake2.rs @@ -17,12 +17,6 @@ pub fn run(input: &Bytes, gas_limit: u64) -> PrecompileResult { return Err(Error::Blake2WrongLength.into()); } - let f = match input[212] { - 1 => true, - 0 => false, - _ => return Err(Error::Blake2WrongFinalIndicatorFlag.into()), - }; - // rounds 4 bytes let rounds = u32::from_be_bytes(input[..4].try_into().unwrap()) as usize; let gas_used = rounds as u64 * F_ROUND; @@ -30,6 +24,12 @@ pub fn run(input: &Bytes, gas_limit: u64) -> PrecompileResult { return Err(Error::OutOfGas.into()); } + let f = match input[212] { + 1 => true, + 0 => false, + _ => return Err(Error::Blake2WrongFinalIndicatorFlag.into()), + }; + let mut h = [0u64; 8]; let mut m = [0u64; 16];