From 59432d397ea9b6e4ed6a80bcd48a156caa943ef8 Mon Sep 17 00:00:00 2001 From: Federico Gimenez Date: Fri, 22 Mar 2024 10:29:48 +0100 Subject: [PATCH] use revm_precompile::u64_to_address --- crates/precompile/src/lib.rs | 12 ------------ crates/precompile/src/secp256r1.rs | 8 +++----- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/crates/precompile/src/lib.rs b/crates/precompile/src/lib.rs index bfcda14..418d18c 100644 --- a/crates/precompile/src/lib.rs +++ b/crates/precompile/src/lib.rs @@ -11,15 +11,3 @@ pub mod secp256r1; pub mod bls12_381; mod addresses; - -/// Const function for making an address by concatenating the bytes from two given numbers. -/// -/// Note that 32 + 128 = 160 = 20 bytes (the length of an address). This function is used -/// as a convenience for specifying the addresses of the various precompiles. -#[inline] -const fn u64_to_address(x: u64) -> Address { - let x = x.to_be_bytes(); - Address::new([ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], - ]) -} diff --git a/crates/precompile/src/secp256r1.rs b/crates/precompile/src/secp256r1.rs index d4fdc16..53276b0 100644 --- a/crates/precompile/src/secp256r1.rs +++ b/crates/precompile/src/secp256r1.rs @@ -1,6 +1,6 @@ use crate::addresses::P256VERIFY_ADDRESS; use p256::ecdsa::{signature::hazmat::PrehashVerifier, Signature, VerifyingKey}; -use revm_precompile::{Precompile, PrecompileWithAddress}; +use revm_precompile::{u64_to_address, Precompile, PrecompileWithAddress}; use revm_primitives::{Bytes, PrecompileError, PrecompileResult, B256}; /// secp256r1 precompiles @@ -9,10 +9,8 @@ pub fn precompiles() -> impl Iterator { } /// [EIP-7212](https://eips.ethereum.org/EIPS/eip-7212#specification) secp256r1 precompile. -const P256VERIFY: PrecompileWithAddress = PrecompileWithAddress( - crate::u64_to_address(P256VERIFY_ADDRESS), - Precompile::Standard(p256_verify), -); +const P256VERIFY: PrecompileWithAddress = + PrecompileWithAddress(u64_to_address(P256VERIFY_ADDRESS), Precompile::Standard(p256_verify)); /// The input is encoded as follows: /// | signed msg hash | r | s | pk x | pk y |