diff --git a/.gas-snapshot b/.gas-snapshot index bd1129788d..8bb8c46ed1 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -605,15 +605,15 @@ LibCloneTest:testDeployDeterministicERC1967I() (gas: 127581) LibCloneTest:testDeployDeterministicERC1967I(uint256,bytes32) (runs: 256, μ: 127652, ~: 127652) LibCloneTest:testDeployERC1967() (gas: 99367) LibCloneTest:testDeployERC1967(uint256) (runs: 256, μ: 99418, ~: 99418) -LibCloneTest:testDeployERC1967CodeHashAndLength(address) (runs: 256, μ: 133873, ~: 134029) +LibCloneTest:testDeployERC1967CodeHashAndLength(address) (runs: 256, μ: 133718, ~: 134029) LibCloneTest:testDeployERC1967I() (gas: 103641) LibCloneTest:testDeployERC1967I(uint256) (runs: 256, μ: 103712, ~: 103712) -LibCloneTest:testDeployERC1967ICodeHashAndLength(address) (runs: 256, μ: 142312, ~: 142468) +LibCloneTest:testDeployERC1967ICodeHashAndLength(address) (runs: 256, μ: 142157, ~: 142468) LibCloneTest:testDeployERC1967ISpecialPath() (gas: 71720) LibCloneTest:testDeployERC1967ISpecialPath(address,bytes1) (runs: 256, μ: 72233, ~: 72233) -LibCloneTest:testInitCode(address,uint256,uint256) (runs: 256, μ: 930635, ~: 881089) +LibCloneTest:testInitCode(address,uint256,uint256) (runs: 256, μ: 1033046, ~: 881151) LibCloneTest:testInitialDeposit() (gas: 323928) -LibCloneTest:testStartsWith(uint256) (runs: 256, μ: 29050, ~: 29052) +LibCloneTest:testStartsWith(uint256) (runs: 256, μ: 29038, ~: 29051) LibCloneTest:test__codesize() (gas: 22917) LibMapTest:testFoundStatementDifferential(uint256,uint256,uint256) (runs: 256, μ: 499, ~: 499) LibMapTest:testGeneralMapFunctionsGas() (gas: 3304775) @@ -1115,15 +1115,15 @@ UUPSUpgradeableTest:testUpgradeToAndCallRevertWithUpgradeFailed() (gas: 18264) UUPSUpgradeableTest:testUpgradeToRevertWithUnauthorized() (gas: 16143) UUPSUpgradeableTest:testUpgradeToRevertWithUpgradeFailed() (gas: 18464) UUPSUpgradeableTest:test__codesize() (gas: 7195) -WETHInvariants:invariantTotalSupplyEqualsBalance() (runs: 256, calls: 3840, reverts: 1851) +WETHInvariants:invariantTotalSupplyEqualsBalance() (runs: 256, calls: 3840, reverts: 1876) WETHInvariants:test__codesize() (gas: 6008) WETHTest:testDeposit() (gas: 68090) -WETHTest:testDeposit(uint256) (runs: 256, μ: 65900, ~: 68384) +WETHTest:testDeposit(uint256) (runs: 256, μ: 65719, ~: 68384) WETHTest:testFallbackDeposit() (gas: 67796) -WETHTest:testFallbackDeposit(uint256) (runs: 256, μ: 65561, ~: 68045) +WETHTest:testFallbackDeposit(uint256) (runs: 256, μ: 65380, ~: 68045) WETHTest:testMetadata() (gas: 10098) WETHTest:testPartialWithdraw() (gas: 79566) WETHTest:testWithdraw() (gas: 59332) -WETHTest:testWithdraw(uint256,uint256) (runs: 256, μ: 76808, ~: 80326) +WETHTest:testWithdraw(uint256,uint256) (runs: 256, μ: 76829, ~: 80326) WETHTest:testWithdrawToContractWithoutReceiveReverts() (gas: 93923) WETHTest:test__codesize() (gas: 11080) \ No newline at end of file diff --git a/src/utils/SafeTransferLib.sol b/src/utils/SafeTransferLib.sol index 2fbd82a62d..9e09a004b6 100644 --- a/src/utils/SafeTransferLib.sol +++ b/src/utils/SafeTransferLib.sol @@ -467,8 +467,10 @@ library SafeTransferLib { for {} shl(96, xor(token, WETH9)) {} { mstore(0x00, 0x3644e515) // `DOMAIN_SEPARATOR()`. if iszero( - and( - lt(iszero(mload(0x00)), eq(returndatasize(), 0x20)), + and( // The arguments of `and` are evaluated from right to left. + lt(iszero(mload(0x00)), eq(returndatasize(), 0x20)), // Returns 1 non-zero word. + // Gas stipend to limit gas burn for tokens that don't refund gas when + // an non-existing function is called. 5K should be enough for a SLOAD. staticcall(5000, token, 0x1c, 0x04, 0x00, 0x20) ) ) { break }