From a58fbba0dba361ef1dd7c310f36c7310c00cb956 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Mon, 27 Jun 2022 01:22:00 +0200 Subject: [PATCH] Simplify precompiles --- solstdlib/src/precompiles.sol | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/solstdlib/src/precompiles.sol b/solstdlib/src/precompiles.sol index a1d6c5985..dd9b4ea4f 100644 --- a/solstdlib/src/precompiles.sol +++ b/solstdlib/src/precompiles.sol @@ -28,17 +28,11 @@ function ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address mstore(add(input, 96), s) // Prepare output - let output := add(input, 128) - mstore(output, 0) + mstore(0, 0) // Call the precompile - let ret := staticcall(gas(), 1, input, 128, output, 32) - switch ret - case 1 { // Success - addr := mload(output) - } - default { // Failure - // Need to do anything? - } + let ret := staticcall(gas(), 1, input, 128, 0, 32) + if iszero(ret) { revert(0, 0) } + addr := mload(0) } }