Skip to content

Commit 1eb82ec

Browse files
ItsNickBarryAmxx
andauthored
ERC2771Context gas improvements (#5590)
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
1 parent 0a77e54 commit 1eb82ec

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

contracts/metatx/ERC2771Context.sol

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,10 @@ abstract contract ERC2771Context is Context {
5555
function _msgSender() internal view virtual override returns (address) {
5656
uint256 calldataLength = msg.data.length;
5757
uint256 contextSuffixLength = _contextSuffixLength();
58-
if (isTrustedForwarder(msg.sender) && calldataLength >= contextSuffixLength) {
59-
return address(bytes20(msg.data[calldataLength - contextSuffixLength:]));
58+
if (calldataLength >= contextSuffixLength && isTrustedForwarder(msg.sender)) {
59+
unchecked {
60+
return address(bytes20(msg.data[calldataLength - contextSuffixLength:]));
61+
}
6062
} else {
6163
return super._msgSender();
6264
}
@@ -70,8 +72,10 @@ abstract contract ERC2771Context is Context {
7072
function _msgData() internal view virtual override returns (bytes calldata) {
7173
uint256 calldataLength = msg.data.length;
7274
uint256 contextSuffixLength = _contextSuffixLength();
73-
if (isTrustedForwarder(msg.sender) && calldataLength >= contextSuffixLength) {
74-
return msg.data[:calldataLength - contextSuffixLength];
75+
if (calldataLength >= contextSuffixLength && isTrustedForwarder(msg.sender)) {
76+
unchecked {
77+
return msg.data[:calldataLength - contextSuffixLength];
78+
}
7579
} else {
7680
return super._msgData();
7781
}

0 commit comments

Comments
 (0)