diff --git a/.gas-report b/.gas-report index 4eade3e..393e21f 100644 --- a/.gas-report +++ b/.gas-report @@ -186,7 +186,7 @@ |--------------------------------------------+-----------------+--------+--------+--------+---------| | getAccountVaults | 5230 | 5230 | 5230 | 5230 | 4 | |--------------------------------------------+-----------------+--------+--------+--------+---------| -| getVault | 13653 | 13653 | 13653 | 13653 | 4181 | +| getVault | 13653 | 13653 | 13653 | 13653 | 4182 | |--------------------------------------------+-----------------+--------+--------+--------+---------| | initialize | 92752 | 92752 | 92752 | 92752 | 95 | |--------------------------------------------+-----------------+--------+--------+--------+---------| @@ -194,7 +194,7 @@ |--------------------------------------------+-----------------+--------+--------+--------+---------| | leave | 66348 | 66348 | 66348 | 66348 | 2 | |--------------------------------------------+-----------------+--------+--------+--------+---------| -| lock | 7040 | 43473 | 46713 | 87673 | 1034 | +| lock | 7040 | 43591 | 46713 | 87964 | 1034 | |--------------------------------------------+-----------------+--------+--------+--------+---------| | migrateToVault | 9294 | 53513 | 17021 | 170715 | 4 | |--------------------------------------------+-----------------+--------+--------+--------+---------| @@ -212,7 +212,7 @@ |--------------------------------------------+-----------------+--------+--------+--------+---------| | rewardStartTime | 2364 | 2364 | 2364 | 2364 | 2 | |--------------------------------------------+-----------------+--------+--------+--------+---------| -| rewardsBalanceOf | 20295 | 24409 | 25908 | 26129 | 268 | +| rewardsBalanceOf | 20295 | 24430 | 25908 | 26129 | 268 | |--------------------------------------------+-----------------+--------+--------+--------+---------| | rewardsBalanceOfAccount | 62220 | 62220 | 62220 | 62220 | 1 | |--------------------------------------------+-----------------+--------+--------+--------+---------| @@ -222,33 +222,33 @@ |--------------------------------------------+-----------------+--------+--------+--------+---------| | setTrustedCodehash | 24238 | 24238 | 24238 | 24238 | 95 | |--------------------------------------------+-----------------+--------+--------+--------+---------| -| stake | 2639 | 132481 | 60725 | 228623 | 2670 | +| stake | 2639 | 131862 | 60725 | 228623 | 2670 | |--------------------------------------------+-----------------+--------+--------+--------+---------| | stakedBalanceOf | 2622 | 2622 | 2622 | 2622 | 1 | |--------------------------------------------+-----------------+--------+--------+--------+---------| | totalMP | 6805 | 8257 | 8257 | 9710 | 6 | |--------------------------------------------+-----------------+--------+--------+--------+---------| -| totalMPAccrued | 2385 | 2385 | 2385 | 2385 | 4161 | +| totalMPAccrued | 2385 | 2385 | 2385 | 2385 | 4162 | |--------------------------------------------+-----------------+--------+--------+--------+---------| -| totalMPStaked | 2429 | 2429 | 2429 | 2429 | 4164 | +| totalMPStaked | 2429 | 2429 | 2429 | 2429 | 4165 | |--------------------------------------------+-----------------+--------+--------+--------+---------| -| totalMaxMP | 2407 | 2407 | 2407 | 2407 | 4161 | +| totalMaxMP | 2407 | 2407 | 2407 | 2407 | 4162 | |--------------------------------------------+-----------------+--------+--------+--------+---------| | totalRewardsAccrued | 2407 | 2407 | 2407 | 2407 | 3 | |--------------------------------------------+-----------------+--------+--------+--------+---------| -| totalRewardsSupply | 6737 | 11058 | 11792 | 11903 | 290 | +| totalRewardsSupply | 6737 | 11068 | 11792 | 11903 | 290 | |--------------------------------------------+-----------------+--------+--------+--------+---------| | totalShares | 4597 | 4597 | 4597 | 4597 | 6 | |--------------------------------------------+-----------------+--------+--------+--------+---------| -| totalStaked | 2408 | 2408 | 2408 | 2408 | 4168 | +| totalStaked | 2408 | 2408 | 2408 | 2408 | 4169 | |--------------------------------------------+-----------------+--------+--------+--------+---------| -| unstake | 9886 | 41170 | 39781 | 79550 | 271 | +| unstake | 9886 | 41391 | 39781 | 79550 | 271 | |--------------------------------------------+-----------------+--------+--------+--------+---------| | updateAccount | 347677 | 347677 | 347677 | 347677 | 1 | |--------------------------------------------+-----------------+--------+--------+--------+---------| | updateGlobalState | 15820 | 25876 | 29230 | 29230 | 8 | |--------------------------------------------+-----------------+--------+--------+--------+---------| -| updateVault | 31948 | 34668 | 31948 | 110579 | 1023 | +| updateVault | 31948 | 34543 | 31948 | 110579 | 1024 | |--------------------------------------------+-----------------+--------+--------+--------+---------| | upgradeTo | 10279 | 10772 | 10279 | 12745 | 5 | |--------------------------------------------+-----------------+--------+--------+--------+---------| @@ -276,9 +276,9 @@ |----------------------------------------+-----------------+--------+--------+--------+---------| | leave | 12223 | 113137 | 84120 | 356508 | 5 | |----------------------------------------+-----------------+--------+--------+--------+---------| -| lock | 12151 | 58965 | 62251 | 103208 | 1035 | +| lock | 12151 | 59083 | 62251 | 103499 | 1035 | |----------------------------------------+-----------------+--------+--------+--------+---------| -| lockUntil | 2363 | 2363 | 2363 | 2363 | 7766 | +| lockUntil | 2363 | 2363 | 2363 | 2363 | 7769 | |----------------------------------------+-----------------+--------+--------+--------+---------| | migrateToVault | 24910 | 77530 | 32637 | 219937 | 4 | |----------------------------------------+-----------------+--------+--------+--------+---------| @@ -286,15 +286,15 @@ |----------------------------------------+-----------------+--------+--------+--------+---------| | register | 12742 | 78218 | 78761 | 78761 | 374 | |----------------------------------------+-----------------+--------+--------+--------+---------| -| stake | 12131 | 167018 | 76290 | 284275 | 2671 | +| stake | 12131 | 166249 | 76290 | 284275 | 2671 | |----------------------------------------+-----------------+--------+--------+--------+---------| | stakeManager | 393 | 393 | 393 | 393 | 373 | |----------------------------------------+-----------------+--------+--------+--------+---------| | trustStakeManager | 7650 | 7650 | 7650 | 7650 | 1 | |----------------------------------------+-----------------+--------+--------+--------+---------| -| unstake | 12108 | 57840 | 55296 | 110656 | 272 | +| unstake | 12108 | 58059 | 55296 | 110656 | 272 | |----------------------------------------+-----------------+--------+--------+--------+---------| -| updateLockUntil | 4432 | 20702 | 21532 | 21532 | 532 | +| updateLockUntil | 4432 | 20722 | 21532 | 21532 | 524 | |----------------------------------------+-----------------+--------+--------+--------+---------| | withdraw | 20817 | 20817 | 20817 | 20817 | 1 | |----------------------------------------+-----------------+--------+--------+--------+---------| @@ -312,9 +312,9 @@ |----------------------------------------------------+-----------------+-------+--------+--------+---------| | Function Name | Min | Avg | Median | Max | # Calls | |----------------------------------------------------+-----------------+-------+--------+--------+---------| -| fallback | 5208 | 12845 | 7353 | 374054 | 23161 | +| fallback | 5208 | 12842 | 7353 | 374054 | 23167 | |----------------------------------------------------+-----------------+-------+--------+--------+---------| -| implementation | 346 | 2128 | 2346 | 2346 | 4894 | +| implementation | 346 | 2131 | 2346 | 2346 | 4886 | ╰----------------------------------------------------+-----------------+-------+--------+--------+---------╯ ╭--------------------------------------------+-----------------+--------+--------+--------+---------╮ @@ -494,11 +494,11 @@ |---------------------------------------------+-----------------+-------+--------+-------+---------| | Function Name | Min | Avg | Median | Max | # Calls | |---------------------------------------------+-----------------+-------+--------+-------+---------| -| approve | 29075 | 31546 | 29183 | 46259 | 2676 | +| approve | 29075 | 31544 | 29183 | 46259 | 2676 | |---------------------------------------------+-----------------+-------+--------+-------+---------| -| balanceOf | 2561 | 2561 | 2561 | 2561 | 4959 | +| balanceOf | 2561 | 2561 | 2561 | 2561 | 4960 | |---------------------------------------------+-----------------+-------+--------+-------+---------| -| mint | 33964 | 37192 | 34072 | 68248 | 2685 | +| mint | 33964 | 37189 | 34072 | 68248 | 2685 | ╰---------------------------------------------+-----------------+-------+--------+-------+---------╯ ╭-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╮ diff --git a/.gas-snapshot b/.gas-snapshot index 508e628..8deb227 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -16,15 +16,15 @@ EmergencyExitTest:test_EmergencyExitToAlternateAddress() (gas: 479110) EmergencyExitTest:test_EmergencyExitWithLock() (gas: 452444) EmergencyExitTest:test_EmergencyExitWithRewards() (gas: 484810) EmergencyExitTest:test_OnlyOwnerCanEnableEmergencyMode() (gas: 39176) -FuzzTests:testFuzz_AccrueMP(uint128,uint64,uint64) (runs: 1024, μ: 587151, ~: 549070) -FuzzTests:testFuzz_AccrueMP_Relock(uint128,uint64,uint64,uint64) (runs: 1024, μ: 812396, ~: 777234) -FuzzTests:testFuzz_EmergencyExit(uint256,uint256) (runs: 1007, μ: 588350, ~: 578267) -FuzzTests:testFuzz_Lock(uint256,uint64) (runs: 1025, μ: 961806, ~: 961235) -FuzzTests:testFuzz_Relock(uint256,uint64,uint64) (runs: 1025, μ: 599078, ~: 574234) -FuzzTests:testFuzz_Rewards(uint256,uint256,uint256,uint16,uint16) (runs: 1001, μ: 650369, ~: 653205) -FuzzTests:testFuzz_Stake(uint256,uint64) (runs: 1025, μ: 376001, ~: 346086) -FuzzTests:testFuzz_Unstake(uint128,uint64,uint16,uint128) (runs: 1024, μ: 806573, ~: 780622) -FuzzTests:testFuzz_UpdateVault(uint128,uint64,uint64) (runs: 1024, μ: 587174, ~: 549093) +FuzzTests:testFuzz_AccrueMP(uint128,uint64,uint64) (runs: 1009, μ: 586777, ~: 549070) +FuzzTests:testFuzz_AccrueMP_Relock(uint128,uint64,uint64,uint64) (runs: 1009, μ: 811994, ~: 777237) +FuzzTests:testFuzz_EmergencyExit(uint256,uint256) (runs: 1001, μ: 588323, ~: 578267) +FuzzTests:testFuzz_Lock(uint256,uint64) (runs: 1008, μ: 961825, ~: 961235) +FuzzTests:testFuzz_Relock(uint256,uint64,uint64) (runs: 1008, μ: 598425, ~: 574225) +FuzzTests:testFuzz_Rewards(uint256,uint256,uint256,uint16,uint16) (runs: 1001, μ: 650378, ~: 653205) +FuzzTests:testFuzz_Stake(uint256,uint64) (runs: 1008, μ: 375317, ~: 346086) +FuzzTests:testFuzz_Unstake(uint128,uint64,uint16,uint128) (runs: 1009, μ: 806735, ~: 780622) +FuzzTests:testFuzz_UpdateVault(uint128,uint64,uint64) (runs: 1009, μ: 586800, ~: 549093) IntegrationTest:testStakeFoo() (gas: 2348931) KarmaNFTTest:testApproveNotAllowed() (gas: 10507) KarmaNFTTest:testGetApproved() (gas: 10531) @@ -58,7 +58,7 @@ LeaveTest:test_LeaveShouldKeepFundsLockedInStakeVault() (gas: 9938411) LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 10011059) LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 333238) LeaveTest:test_TrustNewStakeManager() (gas: 9944491) -LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1025, μ: 384562, ~: 384588) +LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1008, μ: 384561, ~: 384588) LockTest:test_LockFailsWithNoStake() (gas: 89700) LockTest:test_LockFailsWithZero() (gas: 343310) LockTest:test_LockMultipleTimesExceedMaxLock() (gas: 746921) diff --git a/script/RLN.s.sol b/script/RLN.s.sol index 2603092..35b9e2e 100644 --- a/script/RLN.s.sol +++ b/script/RLN.s.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 OR MIT -pragma solidity ^0.8.17; +pragma solidity ^0.8.26; import "forge-std/Script.sol"; import "../src/rln/RLN.sol"; diff --git a/src/rln/IVerifier.sol b/src/rln/IVerifier.sol index 3b8a459..13864b7 100644 --- a/src/rln/IVerifier.sol +++ b/src/rln/IVerifier.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 OR MIT -pragma solidity ^0.8.17; +pragma solidity ^0.8.26; interface IVerifier { function verifyProof( diff --git a/src/rln/RLN.sol b/src/rln/RLN.sol index ed673cd..bb4db09 100644 --- a/src/rln/RLN.sol +++ b/src/rln/RLN.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 OR MIT -pragma solidity ^0.8.17; +pragma solidity ^0.8.26; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; diff --git a/src/rln/Verifier.sol b/src/rln/Verifier.sol index 4a1fc79..fc19083 100644 --- a/src/rln/Verifier.sol +++ b/src/rln/Verifier.sol @@ -18,7 +18,7 @@ along with snarkJS. If not, see . */ -pragma solidity >=0.7.0 <0.9.0; +pragma solidity ^0.8.26; contract Groth16Verifier { // Scalar field size diff --git a/test/RLN.t.sol b/test/RLN.t.sol index aecb48e..f5f559e 100644 --- a/test/RLN.t.sol +++ b/test/RLN.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 OR MIT -pragma solidity ^0.8.17; +pragma solidity ^0.8.26; import "@openzeppelin/contracts/token/ERC20/ERC20.sol";