Skip to content

Commit

Permalink
⚡️ Optimize ECDSA (#483)
Browse files Browse the repository at this point in the history
  • Loading branch information
Vectorized committed Jun 21, 2023
1 parent 96c3e21 commit 9a64938
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
14 changes: 7 additions & 7 deletions .gas-snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -72,16 +72,16 @@ ECDSATest:testBytesToEthSignedMessageHashLong() (gas: 682)
ECDSATest:testBytesToEthSignedMessageHashLongZeroBytes() (gas: 2872362)
ECDSATest:testBytesToEthSignedMessageHashShort() (gas: 598)
ECDSATest:testEmptyCalldataHelpers() (gas: 3271)
ECDSATest:testRecoverAndTryRecover(bytes32) (runs: 256, μ: 43928, ~: 37759)
ECDSATest:testRecoverAndTryRecover(bytes32) (runs: 256, μ: 43461, ~: 37610)
ECDSATest:testRecoverWithInvalidLongSignatureReverts() (gas: 7410)
ECDSATest:testRecoverWithInvalidShortSignatureReturnsZero() (gas: 7226)
ECDSATest:testRecoverWithInvalidSignatureReverts() (gas: 7967)
ECDSATest:testRecoverWithV0SignatureWithShortEIP2098Format() (gas: 4527)
ECDSATest:testRecoverWithV0SignatureWithShortEIP2098Format() (gas: 4521)
ECDSATest:testRecoverWithV0SignatureWithShortEIP2098FormatAsCalldataReverts() (gas: 7338)
ECDSATest:testRecoverWithV0SignatureWithVersion00Reverts() (gas: 7911)
ECDSATest:testRecoverWithV0SignatureWithVersion27() (gas: 8778)
ECDSATest:testRecoverWithV0SignatureWithWrongVersionReverts() (gas: 7867)
ECDSATest:testRecoverWithV1SignatureWithShortEIP2098Format() (gas: 4504)
ECDSATest:testRecoverWithV1SignatureWithShortEIP2098Format() (gas: 4498)
ECDSATest:testRecoverWithV1SignatureWithShortEIP2098FormatAsCalldataReverts() (gas: 7338)
ECDSATest:testRecoverWithV1SignatureWithVersion01Reverts() (gas: 7901)
ECDSATest:testRecoverWithV1SignatureWithVersion28() (gas: 8779)
Expand All @@ -91,19 +91,19 @@ ECDSATest:testRecoverWithWrongSigner() (gas: 8795)
ECDSATest:testTryRecoverWithInvalidLongSignatureReturnsZero() (gas: 5242)
ECDSATest:testTryRecoverWithInvalidShortSignatureReturnsZero() (gas: 5050)
ECDSATest:testTryRecoverWithInvalidSignature() (gas: 8834)
ECDSATest:testTryRecoverWithV0SignatureWithShortEIP2098Format() (gas: 4554)
ECDSATest:testTryRecoverWithV0SignatureWithShortEIP2098Format() (gas: 4548)
ECDSATest:testTryRecoverWithV0SignatureWithShortEIP2098FormatAsCalldataReturnsZero() (gas: 5142)
ECDSATest:testTryRecoverWithV0SignatureWithVersion00ReturnsZero() (gas: 8742)
ECDSATest:testTryRecoverWithV0SignatureWithVersion27() (gas: 8720)
ECDSATest:testTryRecoverWithV0SignatureWithWrongVersionReturnsZero() (gas: 8765)
ECDSATest:testTryRecoverWithV1SignatureWithShortEIP2098Format() (gas: 4541)
ECDSATest:testTryRecoverWithV1SignatureWithShortEIP2098Format() (gas: 4535)
ECDSATest:testTryRecoverWithV1SignatureWithShortEIP2098FormatAsCalldataReturnsZero() (gas: 5184)
ECDSATest:testTryRecoverWithV1SignatureWithVersion01ReturnsZero() (gas: 8742)
ECDSATest:testTryRecoverWithV1SignatureWithVersion28() (gas: 8765)
ECDSATest:testTryRecoverWithV1SignatureWithWrongVersionReturnsZero() (gas: 8764)
ECDSATest:testTryRecoverWithValidSignature() (gas: 8812)
ECDSATest:testTryRecoverWithWrongSigner() (gas: 8760)
ECDSATest:test__codesize() (gas: 13237)
ECDSATest:test__codesize() (gas: 13231)
EIP712Test:testDomainSeparator() (gas: 5787)
EIP712Test:testDomainSeparatorOnClone() (gas: 8537)
EIP712Test:testDomainSeparatorOnCloneWithChainIdChange() (gas: 12791)
Expand Down Expand Up @@ -802,7 +802,7 @@ SafeTransferLibTest:testTryTransferETHWithNoGrief() (gas: 537110)
SafeTransferLibTest:testTryTransferETHWithNoStorageWrites() (gas: 192502)
SafeTransferLibTest:test__codesize() (gas: 32510)
SignatureCheckerLibTest:testEmptyCalldataHelpers() (gas: 3829)
SignatureCheckerLibTest:testSignatureChecker(bytes32) (runs: 256, μ: 55692, ~: 50039)
SignatureCheckerLibTest:testSignatureChecker(bytes32) (runs: 256, μ: 55545, ~: 47178)
SignatureCheckerLibTest:testSignatureCheckerOnEOAWithInvalidSignature() (gas: 21438)
SignatureCheckerLibTest:testSignatureCheckerOnEOAWithInvalidSigner() (gas: 30938)
SignatureCheckerLibTest:testSignatureCheckerOnEOAWithMatchingSignerAndSignature() (gas: 17860)
Expand Down
4 changes: 2 additions & 2 deletions src/utils/ECDSA.sol
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ library ECDSA {
assembly {
let m := mload(0x40) // Cache the free memory pointer.
mstore(0x00, hash)
mstore(0x20, and(add(shr(255, vs), 27), 0xff)) // `v`.
mstore(0x20, add(shr(255, vs), 27)) // `v`.
mstore(0x40, r)
mstore(0x60, shr(1, shl(1, vs))) // `s`.
pop(
Expand Down Expand Up @@ -286,7 +286,7 @@ library ECDSA {
assembly {
let m := mload(0x40) // Cache the free memory pointer.
mstore(0x00, hash)
mstore(0x20, and(add(shr(255, vs), 27), 0xff)) // `v`.
mstore(0x20, add(shr(255, vs), 27)) // `v`.
mstore(0x40, r)
mstore(0x60, shr(1, shl(1, vs))) // `s`.
pop(
Expand Down

0 comments on commit 9a64938

Please sign in to comment.