From f6de53b9e3f53ee942e17c66bef124d9c4ddca11 Mon Sep 17 00:00:00 2001 From: itofarina Date: Fri, 26 Jul 2024 16:33:05 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=A5=85=20staking:=20add=20try/catch=20aro?= =?UTF-8?q?und=20permit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gas-snapshot | 44 ++++++++++++++++++++--------------------- contracts/StakedEXA.sol | 3 ++- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/.gas-snapshot b/.gas-snapshot index 4f3320e0..89325ff9 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -461,18 +461,18 @@ StakedEXATest:invariantNoDuplicatedReward() (runs: 10, calls: 5000, reverts: 0) StakedEXATest:invariantRewardsUpOnly() (runs: 10, calls: 5000, reverts: 0) StakedEXATest:invariantShareValueIsOne() (runs: 10, calls: 5000, reverts: 0) StakedEXATest:testAlreadyListedError() (gas: 41653) -StakedEXATest:testAvgIndex(uint256[3],uint256[2]) (runs: 256, μ: 1213306, ~: 1274322) -StakedEXATest:testAvgStartTime(uint256[3],uint256[2]) (runs: 256, μ: 1199679, ~: 1260695) -StakedEXATest:testBalanceOfDeposit(uint80) (runs: 256, μ: 355442, ~: 362487) +StakedEXATest:testAvgIndex(uint256[3],uint256[2]) (runs: 256, μ: 1215911, ~: 1274346) +StakedEXATest:testAvgStartTime(uint256[3],uint256[2]) (runs: 256, μ: 1202284, ~: 1260719) +StakedEXATest:testBalanceOfDeposit(uint80) (runs: 256, μ: 355441, ~: 362487) StakedEXATest:testBalanceOfWithdraw(uint256) (runs: 256, μ: 60547, ~: 60554) StakedEXATest:testCanChangeRewardsDurationWhenDisabled() (gas: 168929) StakedEXATest:testClaimAfterHarvest() (gas: 840855) StakedEXATest:testClaimAndUnstake() (gas: 1486266) StakedEXATest:testClaimAndWithdrawAfterRefTime() (gas: 1091264) StakedEXATest:testClaimBeforeFirstHarvest() (gas: 539902) -StakedEXATest:testDepositEvent(uint256) (runs: 256, μ: 364332, ~: 364035) -StakedEXATest:testDepositShouldClaim(uint256[2],uint32) (runs: 256, μ: 832695, ~: 742204) -StakedEXATest:testDepositWithdrawAvgStartTimeAndIndex(uint256[3],uint256,uint256[5]) (runs: 256, μ: 1751346, ~: 1809626) +StakedEXATest:testDepositEvent(uint256) (runs: 256, μ: 364336, ~: 364035) +StakedEXATest:testDepositShouldClaim(uint256[2],uint32) (runs: 256, μ: 827158, ~: 742160) +StakedEXATest:testDepositWithdrawAvgStartTimeAndIndex(uint256[3],uint256,uint256[5]) (runs: 256, μ: 1751113, ~: 1809540) StakedEXATest:testEarnedWithTime(uint256) (runs: 256, μ: 35420, ~: 35700) StakedEXATest:testEmergencyAdminCanPauseNotUnpause() (gas: 159083) StakedEXATest:testFinishDistributionEmitEvent() (gas: 402739) @@ -483,10 +483,10 @@ StakedEXATest:testFinishDistributionTransfersRemainingToSavings() (gas: 112203) StakedEXATest:testGrantRevokeEmergencyAdmin() (gas: 107238) StakedEXATest:testGrantRevokePauser() (gas: 107257) StakedEXATest:testHandlerClaim(uint8) (runs: 256, μ: 302723, ~: 302723) -StakedEXATest:testHandlerDeposit(uint80) (runs: 256, μ: 798962, ~: 810106) -StakedEXATest:testHandlerHarvest(uint64) (runs: 256, μ: 333417, ~: 332884) -StakedEXATest:testHandlerNotifyRewardAmount(uint64) (runs: 256, μ: 128752, ~: 124435) -StakedEXATest:testHandlerSetDuration(uint32) (runs: 256, μ: 145984, ~: 164510) +StakedEXATest:testHandlerDeposit(uint80) (runs: 256, μ: 799294, ~: 810106) +StakedEXATest:testHandlerHarvest(uint64) (runs: 256, μ: 333505, ~: 332884) +StakedEXATest:testHandlerNotifyRewardAmount(uint64) (runs: 256, μ: 128491, ~: 124447) +StakedEXATest:testHandlerSetDuration(uint32) (runs: 256, μ: 144991, ~: 164510) StakedEXATest:testHandlerWithdraw(uint256) (runs: 256, μ: 70017, ~: 70024) StakedEXATest:testHarvest() (gas: 197934) StakedEXATest:testHarvestAmountWithReducedAllowance() (gas: 215352) @@ -497,9 +497,9 @@ StakedEXATest:testInitialValues() (gas: 89096) StakedEXATest:testInsufficientBalanceError(uint256) (runs: 256, μ: 65339, ~: 65475) StakedEXATest:testMultipleClaimsVsOne() (gas: 26036303) StakedEXATest:testMultipleHarvests() (gas: 461984) -StakedEXATest:testNoRewardsAfterPeriod(uint256) (runs: 256, μ: 1569722, ~: 1576154) +StakedEXATest:testNoRewardsAfterPeriod(uint256) (runs: 256, μ: 1569608, ~: 1576154) StakedEXATest:testNotPausingRoleError() (gas: 39503) -StakedEXATest:testNotifyRewardAmount(uint256,uint256) (runs: 256, μ: 131174, ~: 131110) +StakedEXATest:testNotifyRewardAmount(uint256,uint256) (runs: 256, μ: 131163, ~: 131110) StakedEXATest:testNotifyRewardWithUnderlyingAsset() (gas: 501808) StakedEXATest:testOnlyAdminEnableReward() (gas: 1198763) StakedEXATest:testOnlyAdminFinishDistribution() (gas: 190966) @@ -514,14 +514,14 @@ StakedEXATest:testPausableHarvest() (gas: 344660) StakedEXATest:testPauserCanPauseUnpause() (gas: 157833) StakedEXATest:testPenaltyGrowthRange() (gas: 67211) StakedEXATest:testPenaltyThresholdRange() (gas: 37156) -StakedEXATest:testPermitAndDeposit() (gas: 373084) -StakedEXATest:testResetDepositAfterRefTime(uint256) (runs: 256, μ: 1020699, ~: 1020382) +StakedEXATest:testPermitAndDeposit() (gas: 373089) +StakedEXATest:testResetDepositAfterRefTime(uint256) (runs: 256, μ: 1020704, ~: 1020382) StakedEXATest:testRewardAmountNotifiedEvent(uint256) (runs: 256, μ: 105863, ~: 106687) StakedEXATest:testRewardNotListedError() (gas: 1114684) -StakedEXATest:testRewardPaidEvent(uint256,uint256) (runs: 256, μ: 814120, ~: 862889) -StakedEXATest:testRewardsAmounts(uint256) (runs: 256, μ: 1577071, ~: 1576667) +StakedEXATest:testRewardPaidEvent(uint256,uint256) (runs: 256, μ: 816057, ~: 874723) +StakedEXATest:testRewardsAmounts(uint256) (runs: 256, μ: 1577077, ~: 1576667) StakedEXATest:testRewardsDurationSetEvent(uint40) (runs: 256, μ: 52073, ~: 52056) -StakedEXATest:testSetDuration(uint256,uint40) (runs: 256, μ: 59017, ~: 59260) +StakedEXATest:testSetDuration(uint256,uint40) (runs: 256, μ: 59008, ~: 59260) StakedEXATest:testSetMarketAddressZero() (gas: 37124) StakedEXATest:testSetMarketOnlyAdmin() (gas: 1266966) StakedEXATest:testSetMinTime() (gas: 81993) @@ -530,12 +530,12 @@ StakedEXATest:testSetPenaltyThreshold() (gas: 81958) StakedEXATest:testSetProviderRatioOverOneError() (gas: 37156) StakedEXATest:testSetProviderZeroAddressError() (gas: 37175) StakedEXATest:testSetSavingsZeroAddressError() (gas: 37284) -StakedEXATest:testTotalSupplyDeposit(uint80) (runs: 256, μ: 354935, ~: 361980) +StakedEXATest:testTotalSupplyDeposit(uint80) (runs: 256, μ: 354934, ~: 361980) StakedEXATest:testTotalSupplyWithdraw(uint256) (runs: 256, μ: 61972, ~: 61979) -StakedEXATest:testUntransferable(uint80) (runs: 256, μ: 374600, ~: 382543) -StakedEXATest:testWithdrawEvent(uint256) (runs: 256, μ: 520347, ~: 520040) -StakedEXATest:testWithdrawSameAmountRewardsShouldEqual(uint256,uint256) (runs: 256, μ: 1077908, ~: 1143318) -StakedEXATest:testWithdrawWithRewards(uint256) (runs: 256, μ: 879786, ~: 879479) +StakedEXATest:testUntransferable(uint80) (runs: 256, μ: 374598, ~: 382543) +StakedEXATest:testWithdrawEvent(uint256) (runs: 256, μ: 520351, ~: 520040) +StakedEXATest:testWithdrawSameAmountRewardsShouldEqual(uint256,uint256) (runs: 256, μ: 1079922, ~: 1143318) +StakedEXATest:testWithdrawWithRewards(uint256) (runs: 256, μ: 879790, ~: 879479) StakedEXATest:testZeroRateError() (gas: 59289) StakingPreviewerTest:testAllClaimable() (gas: 431408) StakingPreviewerTest:testAllClaimed() (gas: 632923) diff --git a/contracts/StakedEXA.sol b/contracts/StakedEXA.sol index 04413bd4..55c05da0 100644 --- a/contracts/StakedEXA.sol +++ b/contracts/StakedEXA.sol @@ -172,7 +172,8 @@ contract StakedEXA is /// @param p The permit parameters. /// @return The number of shares received. function permitAndDeposit(uint256 assets, address receiver, Permit calldata p) external returns (uint256) { - IERC20Permit(asset()).permit(msg.sender, address(this), p.value, p.deadline, p.v, p.r, p.s); + // solhint-disable-next-line no-empty-blocks + try IERC20Permit(asset()).permit(msg.sender, address(this), p.value, p.deadline, p.v, p.r, p.s) {} catch {} return deposit(assets, receiver); }