Skip to content

Commit

Permalink
Add permit2TransferFrom, trySafeTransferFrom. Optimize
Browse files Browse the repository at this point in the history
  • Loading branch information
Vectorized committed Mar 4, 2024
1 parent 1db1598 commit a6d8e75
Show file tree
Hide file tree
Showing 2 changed files with 112 additions and 109 deletions.
104 changes: 52 additions & 52 deletions .gas-snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -248,15 +248,15 @@ ERC4337Test:testValidateUserOp() (gas: 480078)
ERC4337Test:test__codesize() (gas: 54595)
ERC4626Test:testDepositWithNoApprovalReverts() (gas: 16371)
ERC4626Test:testDepositWithNotEnoughApprovalReverts() (gas: 89884)
ERC4626Test:testDifferentialFullMulDiv(uint256,uint256,uint256) (runs: 256, μ: 3320, ~: 3185)
ERC4626Test:testDifferentialFullMulDiv(uint256,uint256,uint256) (runs: 256, μ: 3325, ~: 3185)
ERC4626Test:testMetadata() (gas: 15439)
ERC4626Test:testMintWithNoApprovalReverts() (gas: 16345)
ERC4626Test:testMintZero() (gas: 54317)
ERC4626Test:testMultipleMintDepositRedeemWithdraw() (gas: 425481)
ERC4626Test:testRedeemWithNoShareAmountReverts() (gas: 10918)
ERC4626Test:testRedeemWithNotEnoughShareAmountReverts() (gas: 142915)
ERC4626Test:testSingleDepositWithdraw(uint128) (runs: 256, μ: 202651, ~: 202660)
ERC4626Test:testSingleMintRedeem(uint128) (runs: 256, μ: 201578, ~: 201587)
ERC4626Test:testSingleDepositWithdraw(uint128) (runs: 256, μ: 202651, ~: 202662)
ERC4626Test:testSingleMintRedeem(uint128) (runs: 256, μ: 201578, ~: 201589)
ERC4626Test:testTryGetAssetDecimals() (gas: 30466616)
ERC4626Test:testUseVirtualShares() (gas: 2439368)
ERC4626Test:testVaultInteractionsForSomeoneElse() (gas: 296164)
Expand Down Expand Up @@ -610,10 +610,10 @@ LibCloneTest:testDeployERC1967I() (gas: 103641)
LibCloneTest:testDeployERC1967I(uint256) (runs: 256, μ: 103712, ~: 103712)
LibCloneTest:testDeployERC1967ICodeHashAndLength(address) (runs: 256, μ: 142312, ~: 142468)
LibCloneTest:testDeployERC1967ISpecialPath() (gas: 71720)
LibCloneTest:testDeployERC1967ISpecialPath(address,bytes1) (runs: 256, μ: 71999, ~: 72233)
LibCloneTest:testInitCode(address,uint256,uint256) (runs: 256, μ: 983108, ~: 880384)
LibCloneTest:testDeployERC1967ISpecialPath(address,bytes1) (runs: 256, μ: 72233, ~: 72233)
LibCloneTest:testInitCode(address,uint256,uint256) (runs: 256, μ: 930635, ~: 881089)
LibCloneTest:testInitialDeposit() (gas: 323928)
LibCloneTest:testStartsWith(uint256) (runs: 256, μ: 29060, ~: 29052)
LibCloneTest:testStartsWith(uint256) (runs: 256, μ: 29050, ~: 29052)
LibCloneTest:test__codesize() (gas: 22917)
LibMapTest:testFoundStatementDifferential(uint256,uint256,uint256) (runs: 256, μ: 499, ~: 499)
LibMapTest:testGeneralMapFunctionsGas() (gas: 3304775)
Expand Down Expand Up @@ -1012,16 +1012,16 @@ SafeCastLibTest:testSafeCastToUint(uint256) (runs: 256, μ: 4150, ~: 3351)
SafeCastLibTest:testSafeCastToUint256(int256) (runs: 256, μ: 1285, ~: 432)
SafeCastLibTest:testSafeCastToUintBench() (gas: 326306)
SafeCastLibTest:test__codesize() (gas: 16001)
SafeTransferLibTest:testApproveWithGarbageReverts(address,uint256) (runs: 256, μ: 111710, ~: 125840)
SafeTransferLibTest:testApproveWithGarbageReverts(address,uint256) (runs: 256, μ: 109753, ~: 123430)
SafeTransferLibTest:testApproveWithMissingReturn() (gas: 31923)
SafeTransferLibTest:testApproveWithMissingReturn(address,uint256) (runs: 256, μ: 30838, ~: 32082)
SafeTransferLibTest:testApproveWithNonContract() (gas: 2967)
SafeTransferLibTest:testApproveWithNonContract(address,address,uint256) (runs: 256, μ: 3536, ~: 3536)
SafeTransferLibTest:testApproveWithNonGarbage(address,uint256) (runs: 256, μ: 77819, ~: 59223)
SafeTransferLibTest:testApproveWithNonContract(address,address,uint256) (runs: 256, μ: 3511, ~: 3536)
SafeTransferLibTest:testApproveWithNonGarbage(address,uint256) (runs: 256, μ: 78149, ~: 59231)
SafeTransferLibTest:testApproveWithRetry() (gas: 768579)
SafeTransferLibTest:testApproveWithRetry(address,uint256,uint256) (runs: 256, μ: 767091, ~: 768723)
SafeTransferLibTest:testApproveWithRetry(address,uint256,uint256) (runs: 256, μ: 767124, ~: 768723)
SafeTransferLibTest:testApproveWithRetryWithNonContract() (gas: 2990)
SafeTransferLibTest:testApproveWithRetryWithNonContract(address,address,uint256) (runs: 256, μ: 3511, ~: 3511)
SafeTransferLibTest:testApproveWithRetryWithNonContract(address,address,uint256) (runs: 256, μ: 3486, ~: 3511)
SafeTransferLibTest:testApproveWithReturnsFalseReverts() (gas: 9471)
SafeTransferLibTest:testApproveWithReturnsFalseReverts(address,uint256) (runs: 256, μ: 9697, ~: 9697)
SafeTransferLibTest:testApproveWithReturnsTooLittleReverts() (gas: 9440)
Expand All @@ -1036,58 +1036,58 @@ SafeTransferLibTest:testApproveWithStandardERC20(address,uint256) (runs: 256, μ
SafeTransferLibTest:testBalanceOfStandardERC20() (gas: 7808)
SafeTransferLibTest:testBalanceOfStandardERC20(address,uint256) (runs: 256, μ: 39472, ~: 40393)
SafeTransferLibTest:testForceTransferETHToGriever() (gas: 1511500)
SafeTransferLibTest:testForceTransferETHToGriever(uint256,uint256) (runs: 256, μ: 529711, ~: 570892)
SafeTransferLibTest:testForceTransferETHToGriever(uint256,uint256) (runs: 256, μ: 537727, ~: 570892)
SafeTransferLibTest:testTransferAllETH() (gas: 34643)
SafeTransferLibTest:testTransferAllETH(address) (runs: 256, μ: 34861, ~: 34996)
SafeTransferLibTest:testTransferAllETHToContractWithoutFallbackReverts() (gas: 10766)
SafeTransferLibTest:testTransferAllETHToContractWithoutFallbackReverts(uint256) (runs: 256, μ: 10876, ~: 10876)
SafeTransferLibTest:testTransferAllFromWithStandardERC20() (gas: 33114)
SafeTransferLibTest:testTransferAllFromWithStandardERC20(address,address,uint256) (runs: 256, μ: 56504, ~: 56507)
SafeTransferLibTest:testTransferAllFromWithStandardERC20(address,address,uint256) (runs: 256, μ: 56507, ~: 56507)
SafeTransferLibTest:testTransferAllWithStandardERC20() (gas: 30691)
SafeTransferLibTest:testTransferAllWithStandardERC20(address,uint256) (runs: 256, μ: 42114, ~: 42114)
SafeTransferLibTest:testTransferETH() (gas: 34600)
SafeTransferLibTest:testTransferETH(address,uint256) (runs: 256, μ: 32939, ~: 35251)
SafeTransferLibTest:testTransferETH(address,uint256) (runs: 256, μ: 33207, ~: 35251)
SafeTransferLibTest:testTransferETHToContractWithoutFallbackReverts() (gas: 10825)
SafeTransferLibTest:testTransferETHToContractWithoutFallbackReverts(uint256) (runs: 256, μ: 10501, ~: 10884)
SafeTransferLibTest:testTransferFromWithGarbageReverts(address,address,uint256) (runs: 256, μ: 848280, ~: 743768)
SafeTransferLibTest:testTransferFromWithMissingReturn() (gas: 620822)
SafeTransferLibTest:testTransferFromWithMissingReturn(address,address,uint256) (runs: 256, μ: 773225, ~: 620486)
SafeTransferLibTest:testTransferETHToContractWithoutFallbackReverts(uint256) (runs: 256, μ: 10502, ~: 10884)
SafeTransferLibTest:testTransferFromWithGarbageReverts(address,address,uint256) (runs: 256, μ: 871131, ~: 735809)
SafeTransferLibTest:testTransferFromWithMissingReturn() (gas: 621730)
SafeTransferLibTest:testTransferFromWithMissingReturn(address,address,uint256) (runs: 256, μ: 742018, ~: 621248)
SafeTransferLibTest:testTransferFromWithNonContract() (gas: 3045)
SafeTransferLibTest:testTransferFromWithNonContract(address,address,address,uint256) (runs: 256, μ: 3686, ~: 3735)
SafeTransferLibTest:testTransferFromWithNonGarbage(address,address,uint256) (runs: 256, μ: 808695, ~: 670343)
SafeTransferLibTest:testTransferFromWithReturnsFalseReverts() (gas: 585718)
SafeTransferLibTest:testTransferFromWithReturnsFalseReverts(address,address,uint256) (runs: 256, μ: 614271, ~: 586105)
SafeTransferLibTest:testTransferFromWithReturnsTooLittleReverts() (gas: 585868)
SafeTransferLibTest:testTransferFromWithReturnsTooLittleReverts(address,address,uint256) (runs: 256, μ: 631380, ~: 585962)
SafeTransferLibTest:testTransferFromWithReturnsTooMuch() (gas: 620646)
SafeTransferLibTest:testTransferFromWithReturnsTooMuch(address,address,uint256) (runs: 256, μ: 726871, ~: 621173)
SafeTransferLibTest:testTransferFromWithReturnsTwoReverts(address,address,uint256) (runs: 256, μ: 702567, ~: 586131)
SafeTransferLibTest:testTransferFromWithRevertingReverts() (gas: 579450)
SafeTransferLibTest:testTransferFromWithRevertingReverts(address,address,uint256) (runs: 256, μ: 679825, ~: 579480)
SafeTransferLibTest:testTransferFromWithStandardERC20() (gas: 618333)
SafeTransferLibTest:testTransferFromWithStandardERC20(address,address,uint256) (runs: 256, μ: 652335, ~: 618029)
SafeTransferLibTest:testTransferWithGarbageReverts(address,uint256) (runs: 256, μ: 794204, ~: 700127)
SafeTransferLibTest:testTransferWithMissingReturn() (gas: 606288)
SafeTransferLibTest:testTransferWithMissingReturn(address,uint256) (runs: 256, μ: 774449, ~: 606819)
SafeTransferLibTest:testTransferFromWithNonContract(address,address,address,uint256) (runs: 256, μ: 3723, ~: 3735)
SafeTransferLibTest:testTransferFromWithNonGarbage(address,address,uint256) (runs: 256, μ: 846957, ~: 671290)
SafeTransferLibTest:testTransferFromWithReturnsFalseReverts() (gas: 586625)
SafeTransferLibTest:testTransferFromWithReturnsFalseReverts(address,address,uint256) (runs: 256, μ: 633721, ~: 586973)
SafeTransferLibTest:testTransferFromWithReturnsTooLittleReverts() (gas: 586672)
SafeTransferLibTest:testTransferFromWithReturnsTooLittleReverts(address,address,uint256) (runs: 256, μ: 682092, ~: 586830)
SafeTransferLibTest:testTransferFromWithReturnsTooMuch() (gas: 621451)
SafeTransferLibTest:testTransferFromWithReturnsTooMuch(address,address,uint256) (runs: 256, μ: 703832, ~: 622037)
SafeTransferLibTest:testTransferFromWithReturnsTwoReverts(address,address,uint256) (runs: 256, μ: 715753, ~: 586967)
SafeTransferLibTest:testTransferFromWithRevertingReverts() (gas: 580255)
SafeTransferLibTest:testTransferFromWithRevertingReverts(address,address,uint256) (runs: 256, μ: 674108, ~: 580284)
SafeTransferLibTest:testTransferFromWithStandardERC20() (gas: 619163)
SafeTransferLibTest:testTransferFromWithStandardERC20(address,address,uint256) (runs: 256, μ: 666735, ~: 618740)
SafeTransferLibTest:testTransferWithGarbageReverts(address,uint256) (runs: 256, μ: 796382, ~: 699237)
SafeTransferLibTest:testTransferWithMissingReturn() (gas: 607092)
SafeTransferLibTest:testTransferWithMissingReturn(address,uint256) (runs: 256, μ: 807221, ~: 607624)
SafeTransferLibTest:testTransferWithNonContract() (gas: 2988)
SafeTransferLibTest:testTransferWithNonContract(address,address,uint256) (runs: 256, μ: 3557, ~: 3557)
SafeTransferLibTest:testTransferWithNonGarbage(address,uint256) (runs: 256, μ: 772523, ~: 674490)
SafeTransferLibTest:testTransferWithReturnsFalseReverts() (gas: 582871)
SafeTransferLibTest:testTransferWithReturnsFalseReverts(address,uint256) (runs: 256, μ: 708608, ~: 583331)
SafeTransferLibTest:testTransferWithReturnsTooLittleReverts() (gas: 583373)
SafeTransferLibTest:testTransferWithReturnsTooLittleReverts(address,uint256) (runs: 256, μ: 674348, ~: 583212)
SafeTransferLibTest:testTransferWithReturnsTooMuch() (gas: 606772)
SafeTransferLibTest:testTransferWithReturnsTooMuch(address,uint256) (runs: 256, μ: 743777, ~: 607318)
SafeTransferLibTest:testTransferWithReturnsTwoReverts(address,uint256) (runs: 256, μ: 678853, ~: 583235)
SafeTransferLibTest:testTransferWithRevertingReverts() (gas: 582741)
SafeTransferLibTest:testTransferWithRevertingReverts(address,uint256) (runs: 256, μ: 767192, ~: 583203)
SafeTransferLibTest:testTransferWithStandardERC20() (gas: 607211)
SafeTransferLibTest:testTransferWithStandardERC20(address,uint256) (runs: 256, μ: 755065, ~: 607118)
SafeTransferLibTest:testTransferWithNonContract(address,address,uint256) (runs: 256, μ: 3532, ~: 3557)
SafeTransferLibTest:testTransferWithNonGarbage(address,uint256) (runs: 256, μ: 802519, ~: 676751)
SafeTransferLibTest:testTransferWithReturnsFalseReverts() (gas: 583675)
SafeTransferLibTest:testTransferWithReturnsFalseReverts(address,uint256) (runs: 256, μ: 671205, ~: 584071)
SafeTransferLibTest:testTransferWithReturnsTooLittleReverts() (gas: 584177)
SafeTransferLibTest:testTransferWithReturnsTooLittleReverts(address,uint256) (runs: 256, μ: 735195, ~: 583953)
SafeTransferLibTest:testTransferWithReturnsTooMuch() (gas: 607576)
SafeTransferLibTest:testTransferWithReturnsTooMuch(address,uint256) (runs: 256, μ: 767231, ~: 608122)
SafeTransferLibTest:testTransferWithReturnsTwoReverts(address,uint256) (runs: 256, μ: 680624, ~: 584008)
SafeTransferLibTest:testTransferWithRevertingReverts() (gas: 583545)
SafeTransferLibTest:testTransferWithRevertingReverts(address,uint256) (runs: 256, μ: 769538, ~: 584007)
SafeTransferLibTest:testTransferWithStandardERC20() (gas: 608079)
SafeTransferLibTest:testTransferWithStandardERC20(address,uint256) (runs: 256, μ: 734364, ~: 607851)
SafeTransferLibTest:testTryTransferAllETH() (gas: 148721)
SafeTransferLibTest:testTryTransferETH() (gas: 148746)
SafeTransferLibTest:testTryTransferETHWithNoGrief() (gas: 537104)
SafeTransferLibTest:testTryTransferETHWithNoStorageWrites() (gas: 192496)
SafeTransferLibTest:test__codesize() (gas: 38650)
SafeTransferLibTest:test__codesize() (gas: 38680)
SignatureCheckerLibTest:testEmptyCalldataHelpers() (gas: 3972)
SignatureCheckerLibTest:testSignatureChecker(bytes32) (runs: 256, μ: 57174, ~: 46824)
SignatureCheckerLibTest:testSignatureCheckerOnEOAWithInvalidSignature() (gas: 21228)
Expand Down Expand Up @@ -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: 1753)
WETHInvariants:invariantTotalSupplyEqualsBalance() (runs: 256, calls: 3840, reverts: 1851)
WETHInvariants:test__codesize() (gas: 6008)
WETHTest:testDeposit() (gas: 68090)
WETHTest:testDeposit(uint256) (runs: 256, μ: 65897, ~: 68384)
WETHTest:testDeposit(uint256) (runs: 256, μ: 65900, ~: 68384)
WETHTest:testFallbackDeposit() (gas: 67796)
WETHTest:testFallbackDeposit(uint256) (runs: 256, μ: 65558, ~: 68045)
WETHTest:testFallbackDeposit(uint256) (runs: 256, μ: 65561, ~: 68045)
WETHTest:testMetadata() (gas: 10098)
WETHTest:testPartialWithdraw() (gas: 79566)
WETHTest:testWithdraw() (gas: 59332)
WETHTest:testWithdraw(uint256,uint256) (runs: 256, μ: 76748, ~: 80326)
WETHTest:testWithdraw(uint256,uint256) (runs: 256, μ: 76808, ~: 80326)
WETHTest:testWithdrawToContractWithoutReceiveReverts() (gas: 93923)
WETHTest:test__codesize() (gas: 11080)
Loading

0 comments on commit a6d8e75

Please sign in to comment.