From 0032f358184169aa6b4836562daf1e3202923077 Mon Sep 17 00:00:00 2001 From: Vectorized Date: Sun, 23 Jun 2024 05:55:38 +0000 Subject: [PATCH] EfficientHashLib --- .gas-snapshot | 1076 ++++++++++++++++---------------- src/utils/EfficientHashLib.sol | 150 +++++ test/EfficientHashLib.t.sol | 36 ++ 3 files changed, 725 insertions(+), 537 deletions(-) create mode 100644 src/utils/EfficientHashLib.sol create mode 100644 test/EfficientHashLib.t.sol diff --git a/.gas-snapshot b/.gas-snapshot index a4c2767c15..d17224c50b 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -1,9 +1,9 @@ Base64Test:testBase64DecodeSentenceGas() (gas: 3663) Base64Test:testBase64DecodeShortStringGas() (gas: 896) -Base64Test:testBase64EncodeDecode(bytes) (runs: 257, μ: 5981, ~: 4968) -Base64Test:testBase64EncodeDecodeAltModes(bytes) (runs: 257, μ: 850017, ~: 735759) +Base64Test:testBase64EncodeDecode(bytes) (runs: 294, μ: 6020, ~: 4968) +Base64Test:testBase64EncodeDecodeAltModes(bytes) (runs: 294, μ: 856946, ~: 736527) Base64Test:testBase64EncodeEmptyString() (gas: 902) -Base64Test:testBase64EncodeFileSafeAndNoPadding(bytes,bool,bool) (runs: 257, μ: 15361, ~: 14264) +Base64Test:testBase64EncodeFileSafeAndNoPadding(bytes,bool,bool) (runs: 294, μ: 15203, ~: 13228) Base64Test:testBase64EncodeSentence() (gas: 4333) Base64Test:testBase64EncodeShortStrings() (gas: 7610) Base64Test:testBase64EncodeToStringWithDoublePadding() (gas: 1553) @@ -12,66 +12,66 @@ Base64Test:testBase64EncodeToStringWithSinglePadding() (gas: 1487) Base64Test:testBase64WordBoundary() (gas: 11624) Base64Test:test__codesize() (gas: 6613) CREATE3Test:testDeployERC20() (gas: 833214) -CREATE3Test:testDeployERC20(bytes32,string,string,uint8) (runs: 257, μ: 880493, ~: 879298) +CREATE3Test:testDeployERC20(bytes32,string,string,uint8) (runs: 294, μ: 879156, ~: 879292) CREATE3Test:testDeployedUpperBitsSafeForPlainSolidity() (gas: 657) CREATE3Test:testDoubleDeployDifferentBytecodeReverts() (gas: 96898737) -CREATE3Test:testDoubleDeployDifferentBytecodeReverts(bytes32,bytes,bytes) (runs: 257, μ: 96880354, ~: 96880365) +CREATE3Test:testDoubleDeployDifferentBytecodeReverts(bytes32,bytes,bytes) (runs: 294, μ: 96880377, ~: 96880406) CREATE3Test:testDoubleDeploySameBytecodeReverts() (gas: 96889195) -CREATE3Test:testDoubleDeploySameBytecodeReverts(bytes32,bytes) (runs: 257, μ: 96881063, ~: 96881000) +CREATE3Test:testDoubleDeploySameBytecodeReverts(bytes32,bytes) (runs: 294, μ: 96881081, ~: 96881018) CREATE3Test:test__codesize() (gas: 14017) -DateTimeLibTest:testAddSubDiffDays(uint256,uint256) (runs: 257, μ: 4203, ~: 4216) -DateTimeLibTest:testAddSubDiffHours(uint256,uint256) (runs: 257, μ: 4147, ~: 4162) -DateTimeLibTest:testAddSubDiffMinutes(uint256,uint256) (runs: 257, μ: 4144, ~: 4136) -DateTimeLibTest:testAddSubDiffMonths(uint256,uint256) (runs: 257, μ: 7248, ~: 7264) -DateTimeLibTest:testAddSubDiffSeconds(uint256,uint256) (runs: 257, μ: 3763, ~: 3728) -DateTimeLibTest:testAddSubDiffYears(uint256,uint256) (runs: 257, μ: 6812, ~: 6829) +DateTimeLibTest:testAddSubDiffDays(uint256,uint256) (runs: 294, μ: 4197, ~: 4216) +DateTimeLibTest:testAddSubDiffHours(uint256,uint256) (runs: 294, μ: 4142, ~: 4162) +DateTimeLibTest:testAddSubDiffMinutes(uint256,uint256) (runs: 294, μ: 4139, ~: 4136) +DateTimeLibTest:testAddSubDiffMonths(uint256,uint256) (runs: 294, μ: 7242, ~: 7264) +DateTimeLibTest:testAddSubDiffSeconds(uint256,uint256) (runs: 294, μ: 3759, ~: 3728) +DateTimeLibTest:testAddSubDiffYears(uint256,uint256) (runs: 294, μ: 6806, ~: 6829) DateTimeLibTest:testDateTimeArithmeticReverts() (gas: 4495) DateTimeLibTest:testDateTimeMaxSupported() (gas: 2823) -DateTimeLibTest:testDateTimeToAndFroTimestamp((uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 257, μ: 4181, ~: 4124) -DateTimeLibTest:testDateToAndFroEpochDay((uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 257, μ: 2581, ~: 2567) +DateTimeLibTest:testDateTimeToAndFroTimestamp((uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 294, μ: 4182, ~: 4124) +DateTimeLibTest:testDateToAndFroEpochDay((uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 294, μ: 2581, ~: 2567) DateTimeLibTest:testDateToAndFroEpochDay() (gas: 866444) DateTimeLibTest:testDateToAndFroTimestamp() (gas: 908693) DateTimeLibTest:testDateToEpochDay() (gas: 1559) -DateTimeLibTest:testDateToEpochDayDifferential((uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 257, μ: 2319, ~: 2316) -DateTimeLibTest:testDateToEpochDayDifferential2((uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 257, μ: 2242, ~: 2228) +DateTimeLibTest:testDateToEpochDayDifferential((uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 294, μ: 2319, ~: 2316) +DateTimeLibTest:testDateToEpochDayDifferential2((uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 294, μ: 2242, ~: 2228) DateTimeLibTest:testDateToEpochDayGas() (gas: 756479) DateTimeLibTest:testDateToEpochDayGas2() (gas: 759345) DateTimeLibTest:testDayOfWeek() (gas: 175255) DateTimeLibTest:testDaysInMonth() (gas: 1226) -DateTimeLibTest:testDaysInMonth(uint256,uint256) (runs: 257, μ: 1077, ~: 1093) +DateTimeLibTest:testDaysInMonth(uint256,uint256) (runs: 294, μ: 1075, ~: 1093) DateTimeLibTest:testDaysToDate() (gas: 8377) -DateTimeLibTest:testEpochDayToDate(uint256) (runs: 257, μ: 1045, ~: 1045) -DateTimeLibTest:testEpochDayToDateDifferential(uint256) (runs: 257, μ: 1777, ~: 1721) -DateTimeLibTest:testEpochDayToDateDifferential2(uint256) (runs: 257, μ: 1785, ~: 1709) +DateTimeLibTest:testEpochDayToDate(uint256) (runs: 294, μ: 1045, ~: 1045) +DateTimeLibTest:testEpochDayToDateDifferential(uint256) (runs: 294, μ: 1774, ~: 1721) +DateTimeLibTest:testEpochDayToDateDifferential2(uint256) (runs: 294, μ: 1781, ~: 1709) DateTimeLibTest:testEpochDayToDateGas() (gas: 340769) DateTimeLibTest:testEpochDayToDateGas2() (gas: 357399) DateTimeLibTest:testIsLeapYear() (gas: 741) -DateTimeLibTest:testIsLeapYear(uint256) (runs: 257, μ: 538, ~: 517) +DateTimeLibTest:testIsLeapYear(uint256) (runs: 294, μ: 539, ~: 517) DateTimeLibTest:testIsSupportedDateFalse() (gas: 1180) -DateTimeLibTest:testIsSupportedDateTime((uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 257, μ: 3007, ~: 2984) +DateTimeLibTest:testIsSupportedDateTime((uint256,uint256,uint256,uint256,uint256,uint256)) (runs: 294, μ: 3002, ~: 2984) DateTimeLibTest:testIsSupportedDateTrue() (gas: 626) DateTimeLibTest:testIsSupportedEpochDayFalse() (gas: 494) DateTimeLibTest:testIsSupportedEpochDayTrue() (gas: 305) DateTimeLibTest:testIsSupportedTimestampFalse() (gas: 541) DateTimeLibTest:testIsSupportedTimestampTrue() (gas: 326) -DateTimeLibTest:testIsWeekEnd(uint256) (runs: 257, μ: 691, ~: 617) +DateTimeLibTest:testIsWeekEnd(uint256) (runs: 294, μ: 688, ~: 617) DateTimeLibTest:testMondayTimestamp() (gas: 1106) -DateTimeLibTest:testMondayTimestamp(uint256) (runs: 257, μ: 766, ~: 836) +DateTimeLibTest:testMondayTimestamp(uint256) (runs: 294, μ: 761, ~: 836) DateTimeLibTest:testNthWeekdayInMonthOfYearTimestamp() (gas: 12053) -DateTimeLibTest:testNthWeekdayInMonthOfYearTimestamp(uint256,uint256,uint256,uint256) (runs: 257, μ: 3587, ~: 3622) +DateTimeLibTest:testNthWeekdayInMonthOfYearTimestamp(uint256,uint256,uint256,uint256) (runs: 294, μ: 3572, ~: 3609) DateTimeLibTest:testWeekday() (gas: 682) DateTimeLibTest:test__codesize() (gas: 19095) -DeploylessPredeployQueryerTest:testPredeployQueryer(bytes32) (runs: 257, μ: 230714, ~: 222904) +DeploylessPredeployQueryerTest:testPredeployQueryer(bytes32) (runs: 294, μ: 230697, ~: 224833) DeploylessPredeployQueryerTest:test__codesize() (gas: 6732) -DynamicBufferLibTest:testClear(uint256) (runs: 257, μ: 34539, ~: 34588) -DynamicBufferLibTest:testDynamicBuffer(bytes[],uint256) (runs: 257, μ: 1001449, ~: 802067) -DynamicBufferLibTest:testDynamicBuffer(uint256) (runs: 257, μ: 872564, ~: 680350) +DynamicBufferLibTest:testClear(uint256) (runs: 294, μ: 34540, ~: 34589) +DynamicBufferLibTest:testDynamicBuffer(bytes[],uint256) (runs: 294, μ: 987059, ~: 800724) +DynamicBufferLibTest:testDynamicBuffer(uint256) (runs: 294, μ: 868746, ~: 680490) DynamicBufferLibTest:testDynamicBufferChaining() (gas: 12661) -DynamicBufferLibTest:testDynamicBufferPushSingles(uint256,uint256,uint256) (runs: 257, μ: 359998, ~: 42307) +DynamicBufferLibTest:testDynamicBufferPushSingles(uint256,uint256,uint256) (runs: 294, μ: 364686, ~: 42677) DynamicBufferLibTest:testDynamicBufferPushSinglesReinterpretCast() (gas: 21959) DynamicBufferLibTest:testDynamicBufferReserveFromEmpty() (gas: 2754) DynamicBufferLibTest:testDynamicBufferReserveFromEmpty2() (gas: 2463) -DynamicBufferLibTest:testDynamicBufferReserveFromEmpty3(bytes,uint256) (runs: 257, μ: 2763, ~: 2063) +DynamicBufferLibTest:testDynamicBufferReserveFromEmpty3(bytes,uint256) (runs: 294, μ: 2831, ~: 2066) DynamicBufferLibTest:testJoinWithConcat() (gas: 31429) DynamicBufferLibTest:testJoinWithDynamicBuffer() (gas: 10830) DynamicBufferLibTest:test__codesize() (gas: 12781) @@ -82,7 +82,7 @@ ECDSATest:testBytesToEthSignedMessageHashExceedsMaxLengthReverts() (gas: 614955) ECDSATest:testBytesToEthSignedMessageHashLong() (gas: 681) ECDSATest:testBytesToEthSignedMessageHashShort() (gas: 620) ECDSATest:testEmptyCalldataHelpers() (gas: 3224) -ECDSATest:testRecoverAndTryRecover(bytes32) (runs: 257, μ: 2743755, ~: 2532319) +ECDSATest:testRecoverAndTryRecover(bytes32) (runs: 294, μ: 2688968, ~: 2532125) ECDSATest:testRecoverWithInvalidLongSignatureReverts() (gas: 7363) ECDSATest:testRecoverWithInvalidShortSignatureReturnsZero() (gas: 7176) ECDSATest:testRecoverWithInvalidSignatureReverts() (gas: 7963) @@ -132,60 +132,60 @@ EIP712Test:testHashTypedDataWithChaindIdChange() (gas: 45775) EIP712Test:test__codesize() (gas: 11765) ERC1155HooksTest:testERC1155Hooks() (gas: 4614597) ERC1155HooksTest:test__codesize() (gas: 12638) -ERC1155Test:testApproveAll(address,bool) (runs: 257, μ: 49332, ~: 58598) -ERC1155Test:testAuthorizedEquivalence(address,address,bool) (runs: 257, μ: 715, ~: 715) -ERC1155Test:testBalanceOfBatchWithArrayMismatchReverts(uint256) (runs: 257, μ: 31649, ~: 34799) -ERC1155Test:testBatchBalanceOf(uint256) (runs: 257, μ: 124215, ~: 150136) -ERC1155Test:testBatchBurn(uint256) (runs: 257, μ: 183029, ~: 199965) -ERC1155Test:testBatchBurnInsufficientBalanceReverts(uint256) (runs: 257, μ: 175639, ~: 174037) -ERC1155Test:testBatchBurnWithArrayLengthMismatchReverts(uint256) (runs: 257, μ: 44727, ~: 43805) -ERC1155Test:testBatchMintToEOA(uint256) (runs: 257, μ: 130149, ~: 150407) -ERC1155Test:testBatchMintToERC1155Recipient(uint256) (runs: 257, μ: 777559, ~: 819927) -ERC1155Test:testBatchMintToNonERC1155RecipientReverts(uint256) (runs: 257, μ: 162297, ~: 185405) -ERC1155Test:testBatchMintToRevertingERC1155RecipientReverts(uint256) (runs: 257, μ: 343922, ~: 366192) -ERC1155Test:testBatchMintToWrongReturnDataERC1155RecipientReverts(uint256) (runs: 257, μ: 292451, ~: 273051) -ERC1155Test:testBatchMintToZeroReverts(uint256) (runs: 257, μ: 76106, ~: 65375) -ERC1155Test:testBatchMintWithArrayMismatchReverts(uint256) (runs: 257, μ: 33787, ~: 35716) -ERC1155Test:testBurn(uint256) (runs: 257, μ: 91814, ~: 84179) -ERC1155Test:testBurnInsufficientBalanceReverts(uint256) (runs: 257, μ: 97074, ~: 96658) -ERC1155Test:testDirectSetApprovalForAll(address,address,bool) (runs: 257, μ: 25369, ~: 15691) -ERC1155Test:testMintToEOA(uint256) (runs: 257, μ: 72538, ~: 72055) -ERC1155Test:testMintToERC1155Recipient(uint256) (runs: 257, μ: 669415, ~: 652808) -ERC1155Test:testMintToNonERC155RecipientReverts(uint256) (runs: 257, μ: 103348, ~: 103333) -ERC1155Test:testMintToRevertingERC155RecipientReverts(uint256) (runs: 257, μ: 283810, ~: 283848) -ERC1155Test:testMintToWrongReturnDataERC155RecipientReverts(uint256) (runs: 257, μ: 238386, ~: 238439) -ERC1155Test:testMintToZeroReverts(uint256) (runs: 257, μ: 33229, ~: 33252) +ERC1155Test:testApproveAll(address,bool) (runs: 294, μ: 48978, ~: 58598) +ERC1155Test:testAuthorizedEquivalence(address,address,bool) (runs: 294, μ: 715, ~: 715) +ERC1155Test:testBalanceOfBatchWithArrayMismatchReverts(uint256) (runs: 294, μ: 31712, ~: 34798) +ERC1155Test:testBatchBalanceOf(uint256) (runs: 294, μ: 123611, ~: 148525) +ERC1155Test:testBatchBurn(uint256) (runs: 294, μ: 180933, ~: 162886) +ERC1155Test:testBatchBurnInsufficientBalanceReverts(uint256) (runs: 294, μ: 175385, ~: 174037) +ERC1155Test:testBatchBurnWithArrayLengthMismatchReverts(uint256) (runs: 294, μ: 44831, ~: 44016) +ERC1155Test:testBatchMintToEOA(uint256) (runs: 294, μ: 129120, ~: 150272) +ERC1155Test:testBatchMintToERC1155Recipient(uint256) (runs: 294, μ: 775637, ~: 819899) +ERC1155Test:testBatchMintToNonERC1155RecipientReverts(uint256) (runs: 294, μ: 163286, ~: 185347) +ERC1155Test:testBatchMintToRevertingERC1155RecipientReverts(uint256) (runs: 294, μ: 345491, ~: 366291) +ERC1155Test:testBatchMintToWrongReturnDataERC1155RecipientReverts(uint256) (runs: 294, μ: 292293, ~: 273043) +ERC1155Test:testBatchMintToZeroReverts(uint256) (runs: 294, μ: 76757, ~: 65420) +ERC1155Test:testBatchMintWithArrayMismatchReverts(uint256) (runs: 294, μ: 33832, ~: 35717) +ERC1155Test:testBurn(uint256) (runs: 294, μ: 91275, ~: 82595) +ERC1155Test:testBurnInsufficientBalanceReverts(uint256) (runs: 294, μ: 97126, ~: 96749) +ERC1155Test:testDirectSetApprovalForAll(address,address,bool) (runs: 294, μ: 25167, ~: 15691) +ERC1155Test:testMintToEOA(uint256) (runs: 294, μ: 72562, ~: 72051) +ERC1155Test:testMintToERC1155Recipient(uint256) (runs: 294, μ: 668655, ~: 652552) +ERC1155Test:testMintToNonERC155RecipientReverts(uint256) (runs: 294, μ: 103350, ~: 103379) +ERC1155Test:testMintToRevertingERC155RecipientReverts(uint256) (runs: 294, μ: 283810, ~: 283848) +ERC1155Test:testMintToWrongReturnDataERC155RecipientReverts(uint256) (runs: 294, μ: 238396, ~: 238439) +ERC1155Test:testMintToZeroReverts(uint256) (runs: 294, μ: 33229, ~: 33251) ERC1155Test:testSafeBatchTransfer() (gas: 8294532) -ERC1155Test:testSafeBatchTransferFromToEOA(uint256) (runs: 257, μ: 222606, ~: 249974) -ERC1155Test:testSafeBatchTransferFromToERC1155Recipient(uint256) (runs: 257, μ: 909462, ~: 878217) -ERC1155Test:testSafeBatchTransferFromToNonERC1155RecipientReverts(uint256) (runs: 257, μ: 232578, ~: 210443) -ERC1155Test:testSafeBatchTransferFromToRevertingERC1155RecipientReverts(uint256) (runs: 257, μ: 411777, ~: 378760) -ERC1155Test:testSafeBatchTransferFromToWrongReturnDataERC1155RecipientReverts(uint256) (runs: 257, μ: 364097, ~: 333458) -ERC1155Test:testSafeBatchTransferFromToZeroReverts(uint256) (runs: 257, μ: 153570, ~: 173069) -ERC1155Test:testSafeBatchTransferFromWithArrayLengthMismatchReverts(uint256) (runs: 257, μ: 50034, ~: 66908) -ERC1155Test:testSafeBatchTransferInsufficientBalanceReverts(uint256) (runs: 257, μ: 176678, ~: 175055) -ERC1155Test:testSafeTransferFromInsufficientBalanceReverts(uint256) (runs: 257, μ: 98732, ~: 99202) -ERC1155Test:testSafeTransferFromSelf(uint256) (runs: 257, μ: 106452, ~: 106146) -ERC1155Test:testSafeTransferFromSelfInsufficientBalanceReverts(uint256) (runs: 257, μ: 71620, ~: 72301) -ERC1155Test:testSafeTransferFromToEOA(uint256) (runs: 257, μ: 120204, ~: 112055) -ERC1155Test:testSafeTransferFromToERC1155Recipient(uint256) (runs: 257, μ: 749321, ~: 733892) -ERC1155Test:testSafeTransferFromToNonERC155RecipientReverts(uint256) (runs: 257, μ: 141081, ~: 140866) -ERC1155Test:testSafeTransferFromToRevertingERC1155RecipientReverts(uint256) (runs: 257, μ: 321155, ~: 321201) -ERC1155Test:testSafeTransferFromToWrongReturnDataERC1155RecipientReverts(uint256) (runs: 257, μ: 275732, ~: 275494) -ERC1155Test:testSafeTransferFromToZeroReverts(uint256) (runs: 257, μ: 71046, ~: 71653) +ERC1155Test:testSafeBatchTransferFromToEOA(uint256) (runs: 294, μ: 222822, ~: 229165) +ERC1155Test:testSafeBatchTransferFromToERC1155Recipient(uint256) (runs: 294, μ: 907777, ~: 877954) +ERC1155Test:testSafeBatchTransferFromToNonERC1155RecipientReverts(uint256) (runs: 294, μ: 233359, ~: 249281) +ERC1155Test:testSafeBatchTransferFromToRevertingERC1155RecipientReverts(uint256) (runs: 294, μ: 415078, ~: 378936) +ERC1155Test:testSafeBatchTransferFromToWrongReturnDataERC1155RecipientReverts(uint256) (runs: 294, μ: 363790, ~: 333461) +ERC1155Test:testSafeBatchTransferFromToZeroReverts(uint256) (runs: 294, μ: 151923, ~: 171733) +ERC1155Test:testSafeBatchTransferFromWithArrayLengthMismatchReverts(uint256) (runs: 294, μ: 50570, ~: 66918) +ERC1155Test:testSafeBatchTransferInsufficientBalanceReverts(uint256) (runs: 294, μ: 177892, ~: 175178) +ERC1155Test:testSafeTransferFromInsufficientBalanceReverts(uint256) (runs: 294, μ: 98629, ~: 98332) +ERC1155Test:testSafeTransferFromSelf(uint256) (runs: 294, μ: 106460, ~: 106138) +ERC1155Test:testSafeTransferFromSelfInsufficientBalanceReverts(uint256) (runs: 294, μ: 71595, ~: 72264) +ERC1155Test:testSafeTransferFromToEOA(uint256) (runs: 294, μ: 119255, ~: 111946) +ERC1155Test:testSafeTransferFromToERC1155Recipient(uint256) (runs: 294, μ: 749070, ~: 733906) +ERC1155Test:testSafeTransferFromToNonERC155RecipientReverts(uint256) (runs: 294, μ: 141142, ~: 141013) +ERC1155Test:testSafeTransferFromToRevertingERC1155RecipientReverts(uint256) (runs: 294, μ: 321168, ~: 321140) +ERC1155Test:testSafeTransferFromToWrongReturnDataERC1155RecipientReverts(uint256) (runs: 294, μ: 275766, ~: 275491) +ERC1155Test:testSafeTransferFromToZeroReverts(uint256) (runs: 294, μ: 71060, ~: 71690) ERC1155Test:test__codesize() (gas: 42341) ERC1271Test:testBasefeeBytecodeContract() (gas: 45430) ERC1271Test:testIsValidSignature() (gas: 2464331) -ERC1271Test:testIsValidSignature(uint256) (runs: 257, μ: 249527, ~: 213450) +ERC1271Test:testIsValidSignature(uint256) (runs: 294, μ: 244859, ~: 213624) ERC1271Test:testSupportsNestedTypedDataSign() (gas: 165491) ERC1271Test:test__codesize() (gas: 30784) ERC1967FactoryTest:testChangeAdmin() (gas: 266356) ERC1967FactoryTest:testChangeAdminUnauthorized() (gas: 257653) ERC1967FactoryTest:testDeploy() (gas: 257202) -ERC1967FactoryTest:testDeployAndCall(uint256) (runs: 257, μ: 339513, ~: 340946) +ERC1967FactoryTest:testDeployAndCall(uint256) (runs: 294, μ: 339641, ~: 340945) ERC1967FactoryTest:testDeployAndCallWithRevert() (gas: 211730) -ERC1967FactoryTest:testDeployBrutalized(uint256) (runs: 257, μ: 94803, ~: 44118) -ERC1967FactoryTest:testDeployDeterministicAndCall(uint256) (runs: 257, μ: 303444, ~: 350126) +ERC1967FactoryTest:testDeployBrutalized(uint256) (runs: 294, μ: 94049, ~: 44117) +ERC1967FactoryTest:testDeployDeterministicAndCall(uint256) (runs: 294, μ: 303570, ~: 350118) ERC1967FactoryTest:testFactoryDeployment() (gas: 494435) ERC1967FactoryTest:testProxyFails() (gas: 259028) ERC1967FactoryTest:testProxySucceeds() (gas: 255707) @@ -198,45 +198,45 @@ ERC1967FactoryTest:test__codesize() (gas: 32011) ERC20Invariants:invariantBalanceSum() (runs: 10, calls: 150, reverts: 93) ERC20Invariants:test__codesize() (gas: 7532) ERC20Test:testApprove() (gas: 35730) -ERC20Test:testApprove(address,uint256) (runs: 257, μ: 31103, ~: 31181) +ERC20Test:testApprove(address,uint256) (runs: 294, μ: 31113, ~: 31181) ERC20Test:testBurn() (gas: 62048) -ERC20Test:testBurn(address,uint256,uint256) (runs: 257, μ: 62113, ~: 62663) -ERC20Test:testBurnInsufficientBalanceReverts(address,uint256,uint256) (runs: 257, μ: 56286, ~: 56581) -ERC20Test:testDirectSpendAllowance(uint256) (runs: 257, μ: 61702, ~: 61795) -ERC20Test:testDirectTransfer(uint256) (runs: 257, μ: 98445, ~: 86520) +ERC20Test:testBurn(address,uint256,uint256) (runs: 294, μ: 62079, ~: 62663) +ERC20Test:testBurnInsufficientBalanceReverts(address,uint256,uint256) (runs: 294, μ: 56324, ~: 56517) +ERC20Test:testDirectSpendAllowance(uint256) (runs: 294, μ: 61642, ~: 61795) +ERC20Test:testDirectTransfer(uint256) (runs: 294, μ: 98389, ~: 86639) ERC20Test:testInfiniteApproveTransferFrom() (gas: 90288) ERC20Test:testMetadata() (gas: 16516) ERC20Test:testMint() (gas: 58700) -ERC20Test:testMint(address,uint256) (runs: 257, μ: 58788, ~: 58943) +ERC20Test:testMint(address,uint256) (runs: 294, μ: 58807, ~: 58943) ERC20Test:testMintOverMaxUintReverts() (gas: 55969) ERC20Test:testPermit() (gas: 89767) -ERC20Test:testPermit(uint256) (runs: 257, μ: 89727, ~: 89709) -ERC20Test:testPermitBadDeadlineReverts(uint256) (runs: 257, μ: 41501, ~: 41471) -ERC20Test:testPermitBadNonceReverts(uint256) (runs: 257, μ: 41906, ~: 41939) -ERC20Test:testPermitPastDeadlineReverts(uint256) (runs: 257, μ: 36050, ~: 36014) -ERC20Test:testPermitReplayReverts(uint256) (runs: 257, μ: 92356, ~: 92415) +ERC20Test:testPermit(uint256) (runs: 294, μ: 89724, ~: 89709) +ERC20Test:testPermitBadDeadlineReverts(uint256) (runs: 294, μ: 41496, ~: 41470) +ERC20Test:testPermitBadNonceReverts(uint256) (runs: 294, μ: 41904, ~: 41939) +ERC20Test:testPermitPastDeadlineReverts(uint256) (runs: 294, μ: 36043, ~: 36014) +ERC20Test:testPermitReplayReverts(uint256) (runs: 294, μ: 92371, ~: 92415) ERC20Test:testTransfer() (gas: 65514) -ERC20Test:testTransfer(address,uint256) (runs: 257, μ: 65575, ~: 65730) +ERC20Test:testTransfer(address,uint256) (runs: 294, μ: 65594, ~: 65730) ERC20Test:testTransferFrom() (gas: 85869) -ERC20Test:testTransferFrom(address,address,address,uint256,uint256) (runs: 257, μ: 92836, ~: 95053) +ERC20Test:testTransferFrom(address,address,address,uint256,uint256) (runs: 294, μ: 92921, ~: 95053) ERC20Test:testTransferFromInsufficientAllowanceReverts() (gas: 81760) -ERC20Test:testTransferFromInsufficientAllowanceReverts(address,uint256,uint256) (runs: 257, μ: 82137, ~: 82278) +ERC20Test:testTransferFromInsufficientAllowanceReverts(address,uint256,uint256) (runs: 294, μ: 82157, ~: 82214) ERC20Test:testTransferFromInsufficientBalanceReverts() (gas: 62108) -ERC20Test:testTransferFromInsufficientBalanceReverts(address,uint256,uint256) (runs: 257, μ: 62779, ~: 62713) +ERC20Test:testTransferFromInsufficientBalanceReverts(address,uint256,uint256) (runs: 294, μ: 62907, ~: 62681) ERC20Test:testTransferInsufficientBalanceReverts() (gas: 56113) -ERC20Test:testTransferInsufficientBalanceReverts(address,uint256,uint256) (runs: 257, μ: 56345, ~: 56640) +ERC20Test:testTransferInsufficientBalanceReverts(address,uint256,uint256) (runs: 294, μ: 56383, ~: 56576) ERC20Test:test__codesize() (gas: 22620) -ERC2981Test:testRoyaltyOverflowCheckDifferential(uint256,uint256) (runs: 257, μ: 480, ~: 480) -ERC2981Test:testSetAndGetRoyaltyInfo(uint256) (runs: 257, μ: 110195, ~: 105376) +ERC2981Test:testRoyaltyOverflowCheckDifferential(uint256,uint256) (runs: 294, μ: 479, ~: 480) +ERC2981Test:testSetAndGetRoyaltyInfo(uint256) (runs: 294, μ: 110122, ~: 105375) ERC2981Test:test__codesize() (gas: 7113) ERC4337FactoryTest:testCreateAccountRepeatedDeployment() (gas: 149735) -ERC4337FactoryTest:testCreateAccountRepeatedDeployment(uint256) (runs: 257, μ: 171672, ~: 171572) -ERC4337FactoryTest:testDeployDeterministic(uint256) (runs: 257, μ: 130587, ~: 139916) +ERC4337FactoryTest:testCreateAccountRepeatedDeployment(uint256) (runs: 294, μ: 171686, ~: 171698) +ERC4337FactoryTest:testDeployDeterministic(uint256) (runs: 294, μ: 126995, ~: 139916) ERC4337FactoryTest:test__codesize() (gas: 12848) ERC4337Test:testCdFallback() (gas: 438041) ERC4337Test:testCdFallback2() (gas: 1135303) ERC4337Test:testDelegateExecute() (gas: 366407) -ERC4337Test:testDelegateExecute(uint256) (runs: 257, μ: 353939, ~: 345250) +ERC4337Test:testDelegateExecute(uint256) (runs: 294, μ: 353744, ~: 345250) ERC4337Test:testDelegateExecuteRevertsIfOwnerSlotValueChanged() (gas: 320067) ERC4337Test:testDepositFunctions() (gas: 497140) ERC4337Test:testDirectStorage() (gas: 70503) @@ -244,7 +244,7 @@ ERC4337Test:testDisableInitializerForImplementation() (gas: 1333448) ERC4337Test:testETHReceived() (gas: 16584) ERC4337Test:testExecute() (gas: 383712) ERC4337Test:testExecuteBatch() (gas: 694187) -ERC4337Test:testExecuteBatch(uint256) (runs: 257, μ: 551148, ~: 670426) +ERC4337Test:testExecuteBatch(uint256) (runs: 294, μ: 536031, ~: 670355) ERC4337Test:testInitializer() (gas: 285656) ERC4337Test:testIsValidSignature() (gas: 120020) ERC4337Test:testIsValidSignaturePersonalSign() (gas: 103292) @@ -258,15 +258,15 @@ ERC4337Test:testValidateUserOp() (gas: 484912) ERC4337Test:test__codesize() (gas: 57416) ERC4626Test:testDepositWithNoApprovalReverts() (gas: 16569) ERC4626Test:testDepositWithNotEnoughApprovalReverts() (gas: 90179) -ERC4626Test:testDifferentialFullMulDiv(uint256,uint256,uint256) (runs: 257, μ: 3311, ~: 3107) +ERC4626Test:testDifferentialFullMulDiv(uint256,uint256,uint256) (runs: 294, μ: 3309, ~: 3107) ERC4626Test:testMetadata() (gas: 14354) ERC4626Test:testMintWithNoApprovalReverts() (gas: 16543) ERC4626Test:testMintZero() (gas: 53551) ERC4626Test:testMultipleMintDepositRedeemWithdraw() (gas: 410466) ERC4626Test:testRedeemWithNoShareAmountReverts() (gas: 10918) ERC4626Test:testRedeemWithNotEnoughShareAmountReverts() (gas: 143210) -ERC4626Test:testSingleDepositWithdraw(uint128) (runs: 257, μ: 201956, ~: 201960) -ERC4626Test:testSingleMintRedeem(uint128) (runs: 257, μ: 200921, ~: 200926) +ERC4626Test:testSingleDepositWithdraw(uint128) (runs: 294, μ: 201956, ~: 201960) +ERC4626Test:testSingleMintRedeem(uint128) (runs: 294, μ: 200921, ~: 200926) ERC4626Test:testTryGetAssetDecimals() (gas: 31508026) ERC4626Test:testUseVirtualShares() (gas: 2428448) ERC4626Test:testVaultInteractionsForSomeoneElse() (gas: 296637) @@ -277,180 +277,182 @@ ERC4626Test:testWithdrawZero() (gas: 51874) ERC4626Test:test__codesize() (gas: 37159) ERC6551Test:testBaseFeeMini() (gas: 39514) ERC6551Test:testCdFallback() (gas: 895572) -ERC6551Test:testDeployERC6551(uint256) (runs: 257, μ: 170803, ~: 168943) +ERC6551Test:testDeployERC6551(uint256) (runs: 294, μ: 170310, ~: 168934) ERC6551Test:testDeployERC6551Proxy() (gas: 80395) ERC6551Test:testExecute() (gas: 507633) ERC6551Test:testExecuteBatch() (gas: 817562) -ERC6551Test:testExecuteBatch(uint256) (runs: 257, μ: 674684, ~: 768963) +ERC6551Test:testExecuteBatch(uint256) (runs: 294, μ: 630259, ~: 558978) ERC6551Test:testInitializeERC6551ProxyImplementation() (gas: 189914) -ERC6551Test:testIsValidSigner(address) (runs: 257, μ: 167475, ~: 167453) +ERC6551Test:testIsValidSigner(address) (runs: 294, μ: 167453, ~: 167452) ERC6551Test:testOnERC1155BatchReceived() (gas: 1702519) ERC6551Test:testOnERC1155Received() (gas: 1699882) ERC6551Test:testOnERC721Received() (gas: 1738866) ERC6551Test:testOnERC721ReceivedCycles() (gas: 2914176) -ERC6551Test:testOnERC721ReceivedCyclesWithDifferentChainIds(uint256) (runs: 257, μ: 451035, ~: 455763) -ERC6551Test:testOwnerWorksWithChainIdChange(uint256,uint256) (runs: 257, μ: 1384390, ~: 1384397) +ERC6551Test:testOnERC721ReceivedCyclesWithDifferentChainIds(uint256) (runs: 294, μ: 450812, ~: 455571) +ERC6551Test:testOwnerWorksWithChainIdChange(uint256,uint256) (runs: 294, μ: 1384391, ~: 1384397) ERC6551Test:testSupportsInterface() (gas: 169450) -ERC6551Test:testUpdateState(uint256) (runs: 257, μ: 235277, ~: 235225) +ERC6551Test:testUpdateState(uint256) (runs: 294, μ: 235242, ~: 235196) ERC6551Test:testUpgrade() (gas: 248478) ERC6551Test:test__codesize() (gas: 52510) ERC6909Test:testApprove() (gas: 36872) -ERC6909Test:testApprove(address,uint256,uint256) (runs: 257, μ: 37436, ~: 37514) +ERC6909Test:testApprove(address,uint256,uint256) (runs: 294, μ: 37378, ~: 37514) ERC6909Test:testBurn() (gas: 40870) -ERC6909Test:testBurn(address,uint256,uint256,uint256) (runs: 257, μ: 40656, ~: 41381) -ERC6909Test:testBurnInsufficientBalanceReverts(address,uint256,uint256,uint256) (runs: 257, μ: 35088, ~: 35166) +ERC6909Test:testBurn(address,uint256,uint256,uint256) (runs: 294, μ: 40690, ~: 41381) +ERC6909Test:testBurnInsufficientBalanceReverts(address,uint256,uint256,uint256) (runs: 294, μ: 35108, ~: 35166) ERC6909Test:testDecimals() (gas: 5676) ERC6909Test:testDirectApprove() (gas: 36737) -ERC6909Test:testDirectFunctions(uint256) (runs: 257, μ: 201576, ~: 201838) +ERC6909Test:testDirectFunctions(uint256) (runs: 294, μ: 201449, ~: 201880) ERC6909Test:testDirectSetOperator() (gas: 35937) ERC6909Test:testDirectTransfer() (gas: 66221) ERC6909Test:testInfiniteApproveTransferFrom() (gas: 78590) -ERC6909Test:testMetadata(uint256) (runs: 257, μ: 8257, ~: 8257) +ERC6909Test:testMetadata(uint256) (runs: 294, μ: 8257, ~: 8257) ERC6909Test:testMint() (gas: 37035) -ERC6909Test:testMint(address,uint256,uint256) (runs: 257, μ: 37193, ~: 37271) +ERC6909Test:testMint(address,uint256,uint256) (runs: 294, μ: 37135, ~: 37271) ERC6909Test:testMintOverMaxUintReverts() (gas: 34604) -ERC6909Test:testMintOverMaxUintReverts(address,uint256,uint256,uint256) (runs: 257, μ: 35525, ~: 35542) +ERC6909Test:testMintOverMaxUintReverts(address,uint256,uint256,uint256) (runs: 294, μ: 35526, ~: 35542) ERC6909Test:testOperatorTransferFrom() (gas: 74112) ERC6909Test:testSetOperator() (gas: 37139) -ERC6909Test:testSetOperator(address,address,bool) (runs: 257, μ: 26445, ~: 16767) +ERC6909Test:testSetOperator(address,address,bool) (runs: 294, μ: 26243, ~: 16767) ERC6909Test:testTokenURI() (gas: 32671) ERC6909Test:testTransfer() (gas: 48262) -ERC6909Test:testTransfer(address,uint256,uint256) (runs: 257, μ: 47318, ~: 47395) +ERC6909Test:testTransfer(address,uint256,uint256) (runs: 294, μ: 47244, ~: 47397) ERC6909Test:testTransferFrom() (gas: 74676) -ERC6909Test:testTransferFrom(address,address,address,uint256,uint256,uint256) (runs: 257, μ: 79942, ~: 81173) -ERC6909Test:testTransferFromCallerIsNotOperator(address,uint256,uint256) (runs: 257, μ: 39606, ~: 39606) -ERC6909Test:testTransferFromInsufficientAllowanceReverts(address,uint256,uint256,uint256) (runs: 257, μ: 67231, ~: 67771) +ERC6909Test:testTransferFrom(address,address,address,uint256,uint256,uint256) (runs: 294, μ: 80092, ~: 81173) +ERC6909Test:testTransferFromCallerIsNotOperator(address,uint256,uint256) (runs: 294, μ: 39606, ~: 39606) +ERC6909Test:testTransferFromInsufficientAllowanceReverts(address,uint256,uint256,uint256) (runs: 294, μ: 67242, ~: 67803) ERC6909Test:testTransferFromInsufficientBalanceReverts() (gas: 49861) -ERC6909Test:testTransferFromInsufficientBalanceReverts(address,uint256,uint256,uint256) (runs: 257, μ: 50562, ~: 50100) +ERC6909Test:testTransferFromInsufficientBalanceReverts(address,uint256,uint256,uint256) (runs: 294, μ: 50574, ~: 50105) ERC6909Test:testTransferFromInsufficientPermission() (gas: 67246) ERC6909Test:testTransferFromOverMaxUintReverts() (gas: 90493) -ERC6909Test:testTransferFromOverMaxUintReverts(address,uint256,uint256,uint256) (runs: 257, μ: 113365, ~: 113604) +ERC6909Test:testTransferFromOverMaxUintReverts(address,uint256,uint256,uint256) (runs: 294, μ: 113345, ~: 113608) ERC6909Test:testTransferInsufficientBalanceReverts() (gas: 34728) -ERC6909Test:testTransferInsufficientBalanceReverts(address,uint256,uint256,uint256) (runs: 257, μ: 34885, ~: 35334) +ERC6909Test:testTransferInsufficientBalanceReverts(address,uint256,uint256,uint256) (runs: 294, μ: 34877, ~: 35334) ERC6909Test:testTransferOverMaxUintReverts() (gas: 63748) -ERC6909Test:testTransferOverMaxUintReverts(address,uint256,uint256,uint256) (runs: 257, μ: 64314, ~: 64303) +ERC6909Test:testTransferOverMaxUintReverts(address,uint256,uint256,uint256) (runs: 294, μ: 64318, ~: 64308) ERC6909Test:test__codesize() (gas: 25821) ERC721HooksTest:testERC721Hooks() (gas: 3195690) ERC721HooksTest:test__codesize() (gas: 10893) -ERC721Test:testApprove(uint256) (runs: 257, μ: 108287, ~: 108244) -ERC721Test:testApproveAll(uint256) (runs: 257, μ: 49869, ~: 40680) -ERC721Test:testApproveBurn(uint256) (runs: 257, μ: 86930, ~: 86973) -ERC721Test:testApproveNonExistentReverts(uint256,address) (runs: 257, μ: 33699, ~: 33624) -ERC721Test:testApproveUnauthorizedReverts(uint256) (runs: 257, μ: 83501, ~: 82713) -ERC721Test:testAuthorizedEquivalence(address,bool,bool) (runs: 257, μ: 684, ~: 678) -ERC721Test:testAux(uint256) (runs: 257, μ: 192667, ~: 191642) -ERC721Test:testBurn(uint256) (runs: 257, μ: 82240, ~: 69700) -ERC721Test:testBurnNonExistentReverts(uint256) (runs: 257, μ: 10805, ~: 10805) +ERC721Test:testApprove(uint256) (runs: 294, μ: 108292, ~: 108244) +ERC721Test:testApproveAll(uint256) (runs: 294, μ: 49544, ~: 40663) +ERC721Test:testApproveBurn(uint256) (runs: 294, μ: 86932, ~: 86973) +ERC721Test:testApproveNonExistentReverts(uint256,address) (runs: 294, μ: 33697, ~: 33624) +ERC721Test:testApproveUnauthorizedReverts(uint256) (runs: 294, μ: 83530, ~: 82797) +ERC721Test:testAuthorizedEquivalence(address,bool,bool) (runs: 294, μ: 684, ~: 691) +ERC721Test:testAux(uint256) (runs: 294, μ: 192685, ~: 192983) +ERC721Test:testBurn(uint256) (runs: 294, μ: 83020, ~: 94039) +ERC721Test:testBurnNonExistentReverts(uint256) (runs: 294, μ: 10805, ~: 10805) ERC721Test:testCannotExceedMaxBalance() (gas: 170165) -ERC721Test:testDoubleBurnReverts(uint256) (runs: 257, μ: 63600, ~: 63548) -ERC721Test:testDoubleMintReverts(uint256) (runs: 257, μ: 79279, ~: 79319) -ERC721Test:testEverything(uint256) (runs: 257, μ: 298176, ~: 302512) -ERC721Test:testExtraData(uint256) (runs: 257, μ: 99552, ~: 99472) -ERC721Test:testExtraData2(uint256,uint256) (runs: 257, μ: 53889, ~: 53889) -ERC721Test:testIsApprovedOrOwner(uint256) (runs: 257, μ: 136243, ~: 136254) -ERC721Test:testMint(uint256) (runs: 257, μ: 82913, ~: 82837) -ERC721Test:testMintAndSetExtraDataUnchecked(uint256) (runs: 257, μ: 84538, ~: 84583) -ERC721Test:testMintAndSetExtraDataUncheckedWithOverwrite(uint256,uint96) (runs: 257, μ: 83817, ~: 83731) -ERC721Test:testMintToZeroReverts(uint256) (runs: 257, μ: 39510, ~: 39510) -ERC721Test:testOwnerOfNonExistent(uint256) (runs: 257, μ: 33410, ~: 33338) -ERC721Test:testSafeMintToEOA(uint256) (runs: 257, μ: 83453, ~: 83488) -ERC721Test:testSafeMintToERC721Recipient(uint256) (runs: 257, μ: 409736, ~: 410055) -ERC721Test:testSafeMintToERC721RecipientWithData(uint256,bytes) (runs: 257, μ: 460516, ~: 453822) -ERC721Test:testSafeMintToERC721RecipientWithWrongReturnData(uint256) (runs: 257, μ: 170407, ~: 170407) -ERC721Test:testSafeMintToERC721RecipientWithWrongReturnDataWithData(uint256,bytes) (runs: 257, μ: 171613, ~: 171569) -ERC721Test:testSafeMintToNonERC721RecipientReverts(uint256) (runs: 257, μ: 100507, ~: 100507) -ERC721Test:testSafeMintToNonERC721RecipientWithDataReverts(uint256,bytes) (runs: 257, μ: 101745, ~: 101701) -ERC721Test:testSafeMintToRevertingERC721RecipientReverts(uint256) (runs: 257, μ: 203343, ~: 203343) -ERC721Test:testSafeMintToRevertingERC721RecipientWithDataReverts(uint256,bytes) (runs: 257, μ: 204570, ~: 204526) -ERC721Test:testSafeTransferFromToEOA(uint256) (runs: 257, μ: 122382, ~: 122569) -ERC721Test:testSafeTransferFromToERC721Recipient(uint256) (runs: 257, μ: 471831, ~: 472123) -ERC721Test:testSafeTransferFromToERC721RecipientWithData(uint256,bytes) (runs: 257, μ: 522609, ~: 516020) -ERC721Test:testSafeTransferFromToERC721RecipientWithWrongReturnDataReverts(uint256) (runs: 257, μ: 201615, ~: 201573) -ERC721Test:testSafeTransferFromToERC721RecipientWithWrongReturnDataWithDataReverts(uint256,bytes) (runs: 257, μ: 202921, ~: 202903) -ERC721Test:testSafeTransferFromToNonERC721RecipientReverts(uint256) (runs: 257, μ: 131731, ~: 131764) -ERC721Test:testSafeTransferFromToNonERC721RecipientWithDataReverts(uint256,bytes) (runs: 257, μ: 133026, ~: 132996) -ERC721Test:testSafeTransferFromToRevertingERC721RecipientReverts(uint256) (runs: 257, μ: 234592, ~: 234627) -ERC721Test:testSafeTransferFromToRevertingERC721RecipientWithDataReverts(uint256,bytes) (runs: 257, μ: 235820, ~: 235802) -ERC721Test:testSafetyOfCustomStorage(uint256,uint256) (runs: 257, μ: 713, ~: 713) +ERC721Test:testDoubleBurnReverts(uint256) (runs: 294, μ: 63602, ~: 63548) +ERC721Test:testDoubleMintReverts(uint256) (runs: 294, μ: 79280, ~: 79319) +ERC721Test:testEverything(uint256) (runs: 294, μ: 299462, ~: 302654) +ERC721Test:testExtraData(uint256) (runs: 294, μ: 99533, ~: 99434) +ERC721Test:testExtraData2(uint256,uint256) (runs: 294, μ: 53889, ~: 53889) +ERC721Test:testIsApprovedOrOwner(uint256) (runs: 294, μ: 136244, ~: 136255) +ERC721Test:testMint(uint256) (runs: 294, μ: 82908, ~: 82837) +ERC721Test:testMintAndSetExtraDataUnchecked(uint256) (runs: 294, μ: 84537, ~: 84522) +ERC721Test:testMintAndSetExtraDataUncheckedWithOverwrite(uint256,uint96) (runs: 294, μ: 83820, ~: 83731) +ERC721Test:testMintToZeroReverts(uint256) (runs: 294, μ: 39510, ~: 39510) +ERC721Test:testOwnerOfNonExistent(uint256) (runs: 294, μ: 33411, ~: 33405) +ERC721Test:testSafeMintToEOA(uint256) (runs: 294, μ: 83457, ~: 83497) +ERC721Test:testSafeMintToERC721Recipient(uint256) (runs: 294, μ: 409706, ~: 410054) +ERC721Test:testSafeMintToERC721RecipientWithData(uint256,bytes) (runs: 294, μ: 460149, ~: 453822) +ERC721Test:testSafeMintToERC721RecipientWithWrongReturnData(uint256) (runs: 294, μ: 170407, ~: 170407) +ERC721Test:testSafeMintToERC721RecipientWithWrongReturnDataWithData(uint256,bytes) (runs: 294, μ: 171612, ~: 171569) +ERC721Test:testSafeMintToNonERC721RecipientReverts(uint256) (runs: 294, μ: 100507, ~: 100507) +ERC721Test:testSafeMintToNonERC721RecipientWithDataReverts(uint256,bytes) (runs: 294, μ: 101744, ~: 101701) +ERC721Test:testSafeMintToRevertingERC721RecipientReverts(uint256) (runs: 294, μ: 203343, ~: 203343) +ERC721Test:testSafeMintToRevertingERC721RecipientWithDataReverts(uint256,bytes) (runs: 294, μ: 204569, ~: 204526) +ERC721Test:testSafeTransferFromToEOA(uint256) (runs: 294, μ: 122368, ~: 122568) +ERC721Test:testSafeTransferFromToERC721Recipient(uint256) (runs: 294, μ: 471803, ~: 472119) +ERC721Test:testSafeTransferFromToERC721RecipientWithData(uint256,bytes) (runs: 294, μ: 522243, ~: 516015) +ERC721Test:testSafeTransferFromToERC721RecipientWithWrongReturnDataReverts(uint256) (runs: 294, μ: 201616, ~: 201573) +ERC721Test:testSafeTransferFromToERC721RecipientWithWrongReturnDataWithDataReverts(uint256,bytes) (runs: 294, μ: 202922, ~: 202903) +ERC721Test:testSafeTransferFromToNonERC721RecipientReverts(uint256) (runs: 294, μ: 131731, ~: 131764) +ERC721Test:testSafeTransferFromToNonERC721RecipientWithDataReverts(uint256,bytes) (runs: 294, μ: 133024, ~: 132995) +ERC721Test:testSafeTransferFromToRevertingERC721RecipientReverts(uint256) (runs: 294, μ: 234589, ~: 234627) +ERC721Test:testSafeTransferFromToRevertingERC721RecipientWithDataReverts(uint256,bytes) (runs: 294, μ: 235814, ~: 235802) +ERC721Test:testSafetyOfCustomStorage(uint256,uint256) (runs: 294, μ: 713, ~: 713) ERC721Test:testTransferFrom() (gas: 86013) -ERC721Test:testTransferFrom(uint256) (runs: 257, μ: 114554, ~: 113120) -ERC721Test:testTransferFromApproveAll(uint256) (runs: 257, μ: 119783, ~: 119780) -ERC721Test:testTransferFromNotExistentReverts(address,address,uint256) (runs: 257, μ: 34289, ~: 34302) -ERC721Test:testTransferFromNotOwner(uint256) (runs: 257, μ: 85067, ~: 85056) -ERC721Test:testTransferFromSelf(uint256) (runs: 257, μ: 93030, ~: 93049) -ERC721Test:testTransferFromToZeroReverts(uint256) (runs: 257, μ: 63092, ~: 63088) -ERC721Test:testTransferFromWrongFromReverts(address,uint256) (runs: 257, μ: 80771, ~: 80758) +ERC721Test:testTransferFrom(uint256) (runs: 294, μ: 114511, ~: 113096) +ERC721Test:testTransferFromApproveAll(uint256) (runs: 294, μ: 119778, ~: 119780) +ERC721Test:testTransferFromNotExistentReverts(address,address,uint256) (runs: 294, μ: 34287, ~: 34302) +ERC721Test:testTransferFromNotOwner(uint256) (runs: 294, μ: 85069, ~: 85056) +ERC721Test:testTransferFromSelf(uint256) (runs: 294, μ: 93024, ~: 93022) +ERC721Test:testTransferFromToZeroReverts(uint256) (runs: 294, μ: 63093, ~: 63088) +ERC721Test:testTransferFromWrongFromReverts(address,uint256) (runs: 294, μ: 80766, ~: 80758) ERC721Test:test__codesize() (gas: 43024) +EfficientHashLibTest:testEfficientHash(uint256) (runs: 294, μ: 6045, ~: 6045) +EfficientHashLibTest:test__codesize() (gas: 2647) EnumerableSetLibTest:testEnumerableAddressSetBasic() (gas: 248436) EnumerableSetLibTest:testEnumerableAddressSetBasic2() (gas: 175344) EnumerableSetLibTest:testEnumerableAddressSetNoStorageCollision() (gas: 98950) -EnumerableSetLibTest:testEnumerableAddressSetRevertsOnSentinel(uint256) (runs: 257, μ: 47658, ~: 47407) +EnumerableSetLibTest:testEnumerableAddressSetRevertsOnSentinel(uint256) (runs: 294, μ: 47982, ~: 47407) EnumerableSetLibTest:testEnumerableBytes32SetBasic() (gas: 271282) EnumerableSetLibTest:testEnumerableBytes32SetBasic2() (gas: 178471) EnumerableSetLibTest:testEnumerableBytes32SetNoStorageCollision() (gas: 103477) -EnumerableSetLibTest:testEnumerableBytes32SetRevertsOnSentinel(uint256) (runs: 257, μ: 49509, ~: 41264) -EnumerableSetLibTest:testEnumerableSetFuzz(uint256) (runs: 257, μ: 680043, ~: 552723) +EnumerableSetLibTest:testEnumerableBytes32SetRevertsOnSentinel(uint256) (runs: 294, μ: 50032, ~: 41242) +EnumerableSetLibTest:testEnumerableSetFuzz(uint256) (runs: 294, μ: 679608, ~: 556204) EnumerableSetLibTest:test__codesize() (gas: 14493) FixedPointMathLibTest:testAbs() (gas: 702) -FixedPointMathLibTest:testAbs(int256) (runs: 257, μ: 489, ~: 457) +FixedPointMathLibTest:testAbs(int256) (runs: 294, μ: 488, ~: 457) FixedPointMathLibTest:testAbsEdgeCases() (gas: 513) FixedPointMathLibTest:testAvg() (gas: 443) FixedPointMathLibTest:testAvgEdgeCase() (gas: 470) FixedPointMathLibTest:testAvgSigned() (gas: 900) FixedPointMathLibTest:testCbrt() (gas: 10306) -FixedPointMathLibTest:testCbrt(uint256) (runs: 257, μ: 1521, ~: 1535) -FixedPointMathLibTest:testCbrtBack(uint256) (runs: 257, μ: 33908, ~: 42245) +FixedPointMathLibTest:testCbrt(uint256) (runs: 294, μ: 1521, ~: 1535) +FixedPointMathLibTest:testCbrtBack(uint256) (runs: 294, μ: 33187, ~: 41282) FixedPointMathLibTest:testCbrtWad() (gas: 12349) -FixedPointMathLibTest:testCbrtWad(uint256) (runs: 257, μ: 2205, ~: 1951) +FixedPointMathLibTest:testCbrtWad(uint256) (runs: 294, μ: 2202, ~: 1951) FixedPointMathLibTest:testCbrtWadConverged() (gas: 2664) -FixedPointMathLibTest:testCbrtWadConverged(uint256) (runs: 257, μ: 2196, ~: 2250) +FixedPointMathLibTest:testCbrtWadConverged(uint256) (runs: 294, μ: 2197, ~: 2250) FixedPointMathLibTest:testCbrtWadDebug() (gas: 7360) FixedPointMathLibTest:testCbrtWadMonotonicallyIncreasing() (gas: 4700) -FixedPointMathLibTest:testCbrtWadMonotonicallyIncreasing(uint256,uint256) (runs: 257, μ: 3246, ~: 2381) -FixedPointMathLibTest:testClamp(uint256,uint256,uint256) (runs: 257, μ: 592, ~: 591) -FixedPointMathLibTest:testClampSigned(int256,int256,int256) (runs: 257, μ: 611, ~: 611) +FixedPointMathLibTest:testCbrtWadMonotonicallyIncreasing(uint256,uint256) (runs: 294, μ: 3220, ~: 2381) +FixedPointMathLibTest:testClamp(uint256,uint256,uint256) (runs: 294, μ: 592, ~: 591) +FixedPointMathLibTest:testClampSigned(int256,int256,int256) (runs: 294, μ: 611, ~: 611) FixedPointMathLibTest:testDist() (gas: 615) -FixedPointMathLibTest:testDist(int256,int256) (runs: 257, μ: 519, ~: 515) +FixedPointMathLibTest:testDist(int256,int256) (runs: 294, μ: 519, ~: 515) FixedPointMathLibTest:testDistEdgeCases() (gas: 570) FixedPointMathLibTest:testDivWad() (gas: 769) -FixedPointMathLibTest:testDivWad(uint256,uint256) (runs: 257, μ: 803, ~: 891) +FixedPointMathLibTest:testDivWad(uint256,uint256) (runs: 294, μ: 806, ~: 891) FixedPointMathLibTest:testDivWadEdgeCases() (gas: 414) -FixedPointMathLibTest:testDivWadOverflowReverts(uint256,uint256) (runs: 256, μ: 3815, ~: 3815) +FixedPointMathLibTest:testDivWadOverflowReverts(uint256,uint256) (runs: 259, μ: 3815, ~: 3815) FixedPointMathLibTest:testDivWadUp() (gas: 3129) -FixedPointMathLibTest:testDivWadUp(uint256,uint256) (runs: 257, μ: 901, ~: 1009) +FixedPointMathLibTest:testDivWadUp(uint256,uint256) (runs: 294, μ: 904, ~: 1009) FixedPointMathLibTest:testDivWadUpEdgeCases() (gas: 439) -FixedPointMathLibTest:testDivWadUpOverflowReverts(uint256,uint256) (runs: 256, μ: 3792, ~: 3792) +FixedPointMathLibTest:testDivWadUpOverflowReverts(uint256,uint256) (runs: 259, μ: 3792, ~: 3792) FixedPointMathLibTest:testDivWadUpZeroDenominatorReverts() (gas: 3261) -FixedPointMathLibTest:testDivWadUpZeroDenominatorReverts(uint256) (runs: 257, μ: 3295, ~: 3295) +FixedPointMathLibTest:testDivWadUpZeroDenominatorReverts(uint256) (runs: 294, μ: 3295, ~: 3295) FixedPointMathLibTest:testDivWadZeroDenominatorReverts() (gas: 3240) -FixedPointMathLibTest:testDivWadZeroDenominatorReverts(uint256) (runs: 257, μ: 3315, ~: 3315) +FixedPointMathLibTest:testDivWadZeroDenominatorReverts(uint256) (runs: 294, μ: 3315, ~: 3315) FixedPointMathLibTest:testExpWad() (gas: 8047) FixedPointMathLibTest:testFactorial() (gas: 98491) FixedPointMathLibTest:testFactorialOriginal() (gas: 94187) FixedPointMathLibTest:testFullMulDiv() (gas: 1128) -FixedPointMathLibTest:testFullMulDiv(uint256,uint256,uint256) (runs: 257, μ: 1369, ~: 983) -FixedPointMathLibTest:testFullMulDivAlwaysRevertsIfDivisorIsZero(uint256,uint256) (runs: 257, μ: 3455, ~: 3455) +FixedPointMathLibTest:testFullMulDiv(uint256,uint256,uint256) (runs: 294, μ: 1350, ~: 983) +FixedPointMathLibTest:testFullMulDivAlwaysRevertsIfDivisorIsZero(uint256,uint256) (runs: 294, μ: 3455, ~: 3455) FixedPointMathLibTest:testFullMulDivUnchecked() (gas: 1591) -FixedPointMathLibTest:testFullMulDivUnchecked(uint256,uint256,uint256) (runs: 257, μ: 1669, ~: 1565) -FixedPointMathLibTest:testFullMulDivUp(uint256,uint256,uint256) (runs: 257, μ: 1749, ~: 1449) +FixedPointMathLibTest:testFullMulDivUnchecked(uint256,uint256,uint256) (runs: 294, μ: 1669, ~: 1565) +FixedPointMathLibTest:testFullMulDivUp(uint256,uint256,uint256) (runs: 294, μ: 1737, ~: 1449) FixedPointMathLibTest:testFullMulDivUpRevertsIfRoundedUpResultOverflowsCase1() (gas: 3717) FixedPointMathLibTest:testFullMulDivUpRevertsIfRoundedUpResultOverflowsCase2() (gas: 3727) FixedPointMathLibTest:testGcd() (gas: 4206) -FixedPointMathLibTest:testGcd(uint256,uint256) (runs: 257, μ: 6559, ~: 2778) +FixedPointMathLibTest:testGcd(uint256,uint256) (runs: 294, μ: 6308, ~: 2593) FixedPointMathLibTest:testLambertW0WadAccuracy() (gas: 7160) -FixedPointMathLibTest:testLambertW0WadAccuracy(uint184) (runs: 257, μ: 2287, ~: 408) +FixedPointMathLibTest:testLambertW0WadAccuracy(uint184) (runs: 294, μ: 2292, ~: 408) FixedPointMathLibTest:testLambertW0WadKnownValues() (gas: 1685570) FixedPointMathLibTest:testLambertW0WadMonoDebug() (gas: 770645) FixedPointMathLibTest:testLambertW0WadMonotonicallyIncreasing() (gas: 18416553) -FixedPointMathLibTest:testLambertW0WadMonotonicallyIncreasing(int256,int256) (runs: 257, μ: 7073, ~: 6955) +FixedPointMathLibTest:testLambertW0WadMonotonicallyIncreasing(int256,int256) (runs: 294, μ: 7005, ~: 6952) FixedPointMathLibTest:testLambertW0WadMonotonicallyIncreasing2() (gas: 4035346) -FixedPointMathLibTest:testLambertW0WadMonotonicallyIncreasingAround(int256) (runs: 257, μ: 29134, ~: 35428) -FixedPointMathLibTest:testLambertW0WadMonotonicallyIncreasingAround2(uint96) (runs: 257, μ: 24890, ~: 17640) +FixedPointMathLibTest:testLambertW0WadMonotonicallyIncreasingAround(int256) (runs: 294, μ: 28569, ~: 35428) +FixedPointMathLibTest:testLambertW0WadMonotonicallyIncreasingAround2(uint96) (runs: 294, μ: 24736, ~: 17640) FixedPointMathLibTest:testLambertW0WadRevertsForOutOfDomain() (gas: 16608) FixedPointMathLibTest:testLambertW0WadWithinBounds() (gas: 122061) -FixedPointMathLibTest:testLambertW0WadWithinBounds(int256) (runs: 257, μ: 3697, ~: 4984) -FixedPointMathLibTest:testLerp(int256,int256,int256,int256,int256) (runs: 257, μ: 1593, ~: 1148) -FixedPointMathLibTest:testLerp(uint256,uint256,uint256,uint256,uint256) (runs: 257, μ: 1067, ~: 816) +FixedPointMathLibTest:testLambertW0WadWithinBounds(int256) (runs: 294, μ: 3583, ~: 4984) +FixedPointMathLibTest:testLerp(int256,int256,int256,int256,int256) (runs: 294, μ: 1605, ~: 1148) +FixedPointMathLibTest:testLerp(uint256,uint256,uint256,uint256,uint256) (runs: 294, μ: 1064, ~: 816) FixedPointMathLibTest:testLerpOriginal() (gas: 12483) FixedPointMathLibTest:testLnWad() (gas: 2054) FixedPointMathLibTest:testLnWadBig() (gas: 2087) @@ -458,94 +460,94 @@ FixedPointMathLibTest:testLnWadNegativeReverts() (gas: 3340) FixedPointMathLibTest:testLnWadOverflowReverts() (gas: 3338) FixedPointMathLibTest:testLnWadSmall() (gas: 2644) FixedPointMathLibTest:testLog10() (gas: 76168) -FixedPointMathLibTest:testLog10(uint256,uint256) (runs: 257, μ: 2209, ~: 2233) +FixedPointMathLibTest:testLog10(uint256,uint256) (runs: 294, μ: 2204, ~: 2232) FixedPointMathLibTest:testLog10Up() (gas: 4369) FixedPointMathLibTest:testLog2() (gas: 243209) FixedPointMathLibTest:testLog256() (gas: 22831) -FixedPointMathLibTest:testLog256(uint256,uint256) (runs: 257, μ: 2073, ~: 2129) +FixedPointMathLibTest:testLog256(uint256,uint256) (runs: 294, μ: 2073, ~: 2129) FixedPointMathLibTest:testLog256Up() (gas: 1249) -FixedPointMathLibTest:testLog2Differential(uint256) (runs: 257, μ: 890, ~: 886) +FixedPointMathLibTest:testLog2Differential(uint256) (runs: 294, μ: 890, ~: 886) FixedPointMathLibTest:testLog2Up() (gas: 297325) -FixedPointMathLibTest:testMax(uint256,uint256) (runs: 257, μ: 498, ~: 494) -FixedPointMathLibTest:testMaxCasted(uint32,uint32,uint256) (runs: 257, μ: 846, ~: 842) -FixedPointMathLibTest:testMaxSigned(int256,int256) (runs: 257, μ: 498, ~: 503) -FixedPointMathLibTest:testMin(uint256,uint256) (runs: 257, μ: 542, ~: 547) -FixedPointMathLibTest:testMinBrutalized(uint256,uint256) (runs: 257, μ: 873, ~: 883) -FixedPointMathLibTest:testMinSigned(int256,int256) (runs: 257, μ: 518, ~: 514) +FixedPointMathLibTest:testMax(uint256,uint256) (runs: 294, μ: 498, ~: 494) +FixedPointMathLibTest:testMaxCasted(uint32,uint32,uint256) (runs: 294, μ: 846, ~: 842) +FixedPointMathLibTest:testMaxSigned(int256,int256) (runs: 294, μ: 498, ~: 503) +FixedPointMathLibTest:testMin(uint256,uint256) (runs: 294, μ: 542, ~: 547) +FixedPointMathLibTest:testMinBrutalized(uint256,uint256) (runs: 294, μ: 873, ~: 873) +FixedPointMathLibTest:testMinSigned(int256,int256) (runs: 294, μ: 518, ~: 514) FixedPointMathLibTest:testMulDiv() (gas: 1890) -FixedPointMathLibTest:testMulDiv(uint256,uint256,uint256) (runs: 257, μ: 1633, ~: 858) +FixedPointMathLibTest:testMulDiv(uint256,uint256,uint256) (runs: 294, μ: 1643, ~: 858) FixedPointMathLibTest:testMulDivEdgeCases() (gas: 784) -FixedPointMathLibTest:testMulDivOverflowReverts(uint256,uint256,uint256) (runs: 256, μ: 3913, ~: 3913) +FixedPointMathLibTest:testMulDivOverflowReverts(uint256,uint256,uint256) (runs: 267, μ: 3913, ~: 3913) FixedPointMathLibTest:testMulDivUp() (gas: 2148) -FixedPointMathLibTest:testMulDivUp(uint256,uint256,uint256) (runs: 257, μ: 1809, ~: 1121) +FixedPointMathLibTest:testMulDivUp(uint256,uint256,uint256) (runs: 294, μ: 1815, ~: 1121) FixedPointMathLibTest:testMulDivUpEdgeCases() (gas: 817) -FixedPointMathLibTest:testMulDivUpOverflowReverts(uint256,uint256,uint256) (runs: 256, μ: 3858, ~: 3858) +FixedPointMathLibTest:testMulDivUpOverflowReverts(uint256,uint256,uint256) (runs: 267, μ: 3858, ~: 3858) FixedPointMathLibTest:testMulDivUpZeroDenominator() (gas: 3212) -FixedPointMathLibTest:testMulDivUpZeroDenominatorReverts(uint256,uint256) (runs: 257, μ: 3357, ~: 3357) +FixedPointMathLibTest:testMulDivUpZeroDenominatorReverts(uint256,uint256) (runs: 294, μ: 3357, ~: 3357) FixedPointMathLibTest:testMulDivZeroDenominatorReverts() (gas: 3256) -FixedPointMathLibTest:testMulDivZeroDenominatorReverts(uint256,uint256) (runs: 257, μ: 3358, ~: 3358) +FixedPointMathLibTest:testMulDivZeroDenominatorReverts(uint256,uint256) (runs: 294, μ: 3358, ~: 3358) FixedPointMathLibTest:testMulWad() (gas: 714) -FixedPointMathLibTest:testMulWad(uint256,uint256) (runs: 257, μ: 729, ~: 855) +FixedPointMathLibTest:testMulWad(uint256,uint256) (runs: 294, μ: 730, ~: 855) FixedPointMathLibTest:testMulWadEdgeCases() (gas: 736) -FixedPointMathLibTest:testMulWadOverflowReverts(uint256,uint256) (runs: 256, μ: 3813, ~: 3813) +FixedPointMathLibTest:testMulWadOverflowReverts(uint256,uint256) (runs: 267, μ: 3813, ~: 3813) FixedPointMathLibTest:testMulWadUp() (gas: 815) -FixedPointMathLibTest:testMulWadUp(uint256,uint256) (runs: 257, μ: 873, ~: 1066) +FixedPointMathLibTest:testMulWadUp(uint256,uint256) (runs: 294, μ: 872, ~: 1066) FixedPointMathLibTest:testMulWadUpEdgeCases() (gas: 793) -FixedPointMathLibTest:testMulWadUpOverflowReverts(uint256,uint256) (runs: 256, μ: 3812, ~: 3812) +FixedPointMathLibTest:testMulWadUpOverflowReverts(uint256,uint256) (runs: 267, μ: 3812, ~: 3812) FixedPointMathLibTest:testPackUnpackSci() (gas: 129327) -FixedPointMathLibTest:testPackUnpackSci(uint256) (runs: 257, μ: 30151, ~: 30141) +FixedPointMathLibTest:testPackUnpackSci(uint256) (runs: 294, μ: 30162, ~: 30160) FixedPointMathLibTest:testRPow() (gas: 3320) FixedPointMathLibTest:testRPowOverflowReverts() (gas: 5018) -FixedPointMathLibTest:testRawAdd(int256,int256) (runs: 257, μ: 462, ~: 462) -FixedPointMathLibTest:testRawAdd(uint256,uint256) (runs: 257, μ: 441, ~: 441) -FixedPointMathLibTest:testRawAddMod(uint256,uint256,uint256) (runs: 257, μ: 512, ~: 512) -FixedPointMathLibTest:testRawDiv(uint256,uint256) (runs: 257, μ: 443, ~: 443) -FixedPointMathLibTest:testRawMod(uint256,uint256) (runs: 257, μ: 464, ~: 464) -FixedPointMathLibTest:testRawMul(int256,int256) (runs: 257, μ: 412, ~: 412) -FixedPointMathLibTest:testRawMul(uint256,uint256) (runs: 257, μ: 485, ~: 485) -FixedPointMathLibTest:testRawMulMod(uint256,uint256,uint256) (runs: 257, μ: 557, ~: 557) -FixedPointMathLibTest:testRawSDiv(int256,int256) (runs: 257, μ: 465, ~: 465) -FixedPointMathLibTest:testRawSMod(int256,int256) (runs: 257, μ: 466, ~: 466) -FixedPointMathLibTest:testRawSub(int256,int256) (runs: 257, μ: 441, ~: 441) -FixedPointMathLibTest:testRawSub(uint256,uint256) (runs: 257, μ: 441, ~: 441) +FixedPointMathLibTest:testRawAdd(int256,int256) (runs: 294, μ: 462, ~: 462) +FixedPointMathLibTest:testRawAdd(uint256,uint256) (runs: 294, μ: 441, ~: 441) +FixedPointMathLibTest:testRawAddMod(uint256,uint256,uint256) (runs: 294, μ: 512, ~: 512) +FixedPointMathLibTest:testRawDiv(uint256,uint256) (runs: 294, μ: 443, ~: 443) +FixedPointMathLibTest:testRawMod(uint256,uint256) (runs: 294, μ: 464, ~: 464) +FixedPointMathLibTest:testRawMul(int256,int256) (runs: 294, μ: 412, ~: 412) +FixedPointMathLibTest:testRawMul(uint256,uint256) (runs: 294, μ: 485, ~: 485) +FixedPointMathLibTest:testRawMulMod(uint256,uint256,uint256) (runs: 294, μ: 557, ~: 557) +FixedPointMathLibTest:testRawSDiv(int256,int256) (runs: 294, μ: 465, ~: 465) +FixedPointMathLibTest:testRawSMod(int256,int256) (runs: 294, μ: 466, ~: 466) +FixedPointMathLibTest:testRawSub(int256,int256) (runs: 294, μ: 441, ~: 441) +FixedPointMathLibTest:testRawSub(uint256,uint256) (runs: 294, μ: 441, ~: 441) FixedPointMathLibTest:testSDivWad() (gas: 894) -FixedPointMathLibTest:testSDivWad(int256,int256) (runs: 257, μ: 857, ~: 971) +FixedPointMathLibTest:testSDivWad(int256,int256) (runs: 294, μ: 866, ~: 971) FixedPointMathLibTest:testSDivWadEdgeCases() (gas: 422) -FixedPointMathLibTest:testSDivWadOverflowReverts(int256,int256) (runs: 257, μ: 3803, ~: 3803) -FixedPointMathLibTest:testSDivWadZeroDenominatorReverts(int256) (runs: 257, μ: 3308, ~: 3308) +FixedPointMathLibTest:testSDivWadOverflowReverts(int256,int256) (runs: 259, μ: 3803, ~: 3803) +FixedPointMathLibTest:testSDivWadZeroDenominatorReverts(int256) (runs: 294, μ: 3308, ~: 3308) FixedPointMathLibTest:testSMulWad() (gas: 1032) -FixedPointMathLibTest:testSMulWad(int256,int256) (runs: 257, μ: 912, ~: 1069) +FixedPointMathLibTest:testSMulWad(int256,int256) (runs: 294, μ: 920, ~: 1069) FixedPointMathLibTest:testSMulWadEdgeCases() (gas: 1309) -FixedPointMathLibTest:testSMulWadOverflowRevertsOnCondition1(int256,int256) (runs: 257, μ: 3842, ~: 3842) -FixedPointMathLibTest:testSMulWadOverflowRevertsOnCondition2(int256) (runs: 257, μ: 3706, ~: 3706) -FixedPointMathLibTest:testSMulWadOverflowTrickDifferential(int256,int256) (runs: 257, μ: 622, ~: 632) +FixedPointMathLibTest:testSMulWadOverflowRevertsOnCondition1(int256,int256) (runs: 263, μ: 3842, ~: 3842) +FixedPointMathLibTest:testSMulWadOverflowRevertsOnCondition2(int256) (runs: 265, μ: 3706, ~: 3706) +FixedPointMathLibTest:testSMulWadOverflowTrickDifferential(int256,int256) (runs: 294, μ: 623, ~: 632) FixedPointMathLibTest:testSci() (gas: 1838614) -FixedPointMathLibTest:testSci(uint256) (runs: 257, μ: 34626, ~: 38606) -FixedPointMathLibTest:testSci2(uint256) (runs: 257, μ: 958, ~: 955) +FixedPointMathLibTest:testSci(uint256) (runs: 294, μ: 35029, ~: 40023) +FixedPointMathLibTest:testSci2(uint256) (runs: 294, μ: 959, ~: 955) FixedPointMathLibTest:testSqrt() (gas: 43798) -FixedPointMathLibTest:testSqrt(uint256) (runs: 257, μ: 1046, ~: 1054) -FixedPointMathLibTest:testSqrtBack(uint256) (runs: 257, μ: 10011, ~: 341) -FixedPointMathLibTest:testSqrtHashed(uint256) (runs: 257, μ: 54714, ~: 55107) +FixedPointMathLibTest:testSqrt(uint256) (runs: 294, μ: 1046, ~: 1054) +FixedPointMathLibTest:testSqrtBack(uint256) (runs: 294, μ: 9691, ~: 341) +FixedPointMathLibTest:testSqrtHashed(uint256) (runs: 294, μ: 54724, ~: 55107) FixedPointMathLibTest:testSqrtHashedSingle() (gas: 54587) FixedPointMathLibTest:testSqrtWad() (gas: 7959) -FixedPointMathLibTest:testSqrtWad(uint256) (runs: 257, μ: 1655, ~: 1580) -FixedPointMathLibTest:testSqrtWadConverged(uint256) (runs: 257, μ: 1974, ~: 2006) -FixedPointMathLibTest:testSqrtWadMonotonicallyIncreasing(uint256,uint256) (runs: 257, μ: 2213, ~: 1868) -FixedPointMathLibTest:testTernary(bool,uint256,uint256) (runs: 257, μ: 496, ~: 492) -FixedPointMathLibTest:testZeroFloorSub(uint256,uint256) (runs: 257, μ: 573, ~: 601) -FixedPointMathLibTest:testZeroFloorSubCasted(uint32,uint32,uint256) (runs: 257, μ: 929, ~: 966) +FixedPointMathLibTest:testSqrtWad(uint256) (runs: 294, μ: 1650, ~: 1580) +FixedPointMathLibTest:testSqrtWadConverged(uint256) (runs: 294, μ: 1976, ~: 2006) +FixedPointMathLibTest:testSqrtWadMonotonicallyIncreasing(uint256,uint256) (runs: 294, μ: 2189, ~: 1868) +FixedPointMathLibTest:testTernary(bool,uint256,uint256) (runs: 294, μ: 496, ~: 492) +FixedPointMathLibTest:testZeroFloorSub(uint256,uint256) (runs: 294, μ: 572, ~: 601) +FixedPointMathLibTest:testZeroFloorSubCasted(uint32,uint32,uint256) (runs: 294, μ: 929, ~: 966) FixedPointMathLibTest:test__codesize() (gas: 45586) GasBurnerLibTest:testBurnGas() (gas: 1700805) GasBurnerLibTest:test__codesize() (gas: 1189) InitializableTest:testDisableInitializers() (gas: 42010) InitializableTest:testInitializableConstructor() (gas: 691882) InitializableTest:testInitialize() (gas: 54688) -InitializableTest:testInitializeInititalizerTrick(bool,uint64,uint16) (runs: 257, μ: 791, ~: 791) -InitializableTest:testInitializeReinititalize(uint256) (runs: 257, μ: 95155, ~: 95605) -InitializableTest:testInitializeReinititalizerTrick(bool,uint64,uint64) (runs: 257, μ: 675, ~: 687) +InitializableTest:testInitializeInititalizerTrick(bool,uint64,uint16) (runs: 294, μ: 791, ~: 791) +InitializableTest:testInitializeReinititalize(uint256) (runs: 294, μ: 95016, ~: 95132) +InitializableTest:testInitializeReinititalizerTrick(bool,uint64,uint64) (runs: 294, μ: 674, ~: 687) InitializableTest:testOnlyInitializing() (gas: 10420) InitializableTest:test__codesize() (gas: 10406) -JSONParserLibTest:testDecodeEncodedStringDoesNotRevert(string) (runs: 257, μ: 57501, ~: 56354) +JSONParserLibTest:testDecodeEncodedStringDoesNotRevert(string) (runs: 294, μ: 57506, ~: 56354) JSONParserLibTest:testDecodeInvalidStringReverts() (gas: 172692) JSONParserLibTest:testDecodeString() (gas: 192954) JSONParserLibTest:testEmptyItem() (gas: 2913) @@ -553,9 +555,9 @@ JSONParserLibTest:testParseEmptyArrays() (gas: 499245) JSONParserLibTest:testParseEmptyObjects() (gas: 500206) JSONParserLibTest:testParseGas() (gas: 151909) JSONParserLibTest:testParseInt() (gas: 203956) -JSONParserLibTest:testParseInt(int256) (runs: 257, μ: 18784, ~: 17507) -JSONParserLibTest:testParseIntReverts(uint256) (runs: 257, μ: 55906, ~: 55896) -JSONParserLibTest:testParseIntTrick(uint256,bool) (runs: 257, μ: 528, ~: 532) +JSONParserLibTest:testParseInt(int256) (runs: 294, μ: 18477, ~: 16886) +JSONParserLibTest:testParseIntReverts(uint256) (runs: 294, μ: 55906, ~: 55896) +JSONParserLibTest:testParseIntTrick(uint256,bool) (runs: 294, μ: 528, ~: 532) JSONParserLibTest:testParseInvalidIntReverts() (gas: 210407) JSONParserLibTest:testParseInvalidNumberReverts() (gas: 4066057) JSONParserLibTest:testParseInvalidReverts() (gas: 8584964) @@ -571,146 +573,146 @@ JSONParserLibTest:testParseSimpleUintArray() (gas: 1175003) JSONParserLibTest:testParseSpecials() (gas: 260178) JSONParserLibTest:testParseString() (gas: 1236853) JSONParserLibTest:testParseUint() (gas: 95512) -JSONParserLibTest:testParseUint(uint256) (runs: 257, μ: 35389, ~: 31602) +JSONParserLibTest:testParseUint(uint256) (runs: 294, μ: 35104, ~: 31182) JSONParserLibTest:testParseUintFromHex() (gas: 1381018) -JSONParserLibTest:testParseValidObjectDoesNotRevert(string,string) (runs: 257, μ: 49757, ~: 48725) +JSONParserLibTest:testParseValidObjectDoesNotRevert(string,string) (runs: 294, μ: 49795, ~: 48725) JSONParserLibTest:test__codesize() (gas: 38015) LibBitTest:testAnd() (gas: 185887) -LibBitTest:testAnd(bool,bool) (runs: 257, μ: 632, ~: 634) -LibBitTest:testAutoClean(uint256,uint256) (runs: 257, μ: 468, ~: 468) -LibBitTest:testBoolToUint(bool) (runs: 257, μ: 485, ~: 485) +LibBitTest:testAnd(bool,bool) (runs: 294, μ: 632, ~: 634) +LibBitTest:testAutoClean(uint256,uint256) (runs: 294, μ: 468, ~: 468) +LibBitTest:testBoolToUint(bool) (runs: 294, μ: 485, ~: 485) LibBitTest:testCLZ() (gas: 297260) LibBitTest:testFFS() (gas: 152877) LibBitTest:testFLS() (gas: 245237) LibBitTest:testIsPo2() (gas: 57663) -LibBitTest:testIsPo2(uint256) (runs: 257, μ: 3492, ~: 2002) -LibBitTest:testIsPo2(uint8,uint8) (runs: 257, μ: 623, ~: 624) +LibBitTest:testIsPo2(uint256) (runs: 294, μ: 3391, ~: 1682) +LibBitTest:testIsPo2(uint8,uint8) (runs: 294, μ: 623, ~: 624) LibBitTest:testOr() (gas: 188733) -LibBitTest:testOr(bool,bool) (runs: 257, μ: 649, ~: 648) +LibBitTest:testOr(bool,bool) (runs: 294, μ: 649, ~: 648) LibBitTest:testPassInBool() (gas: 830) LibBitTest:testPopCount() (gas: 63738) -LibBitTest:testPopCount(uint256) (runs: 257, μ: 3634, ~: 2144) +LibBitTest:testPopCount(uint256) (runs: 294, μ: 3533, ~: 1824) LibBitTest:testReturnsBool() (gas: 779) LibBitTest:testReverseBits() (gas: 131521) -LibBitTest:testReverseBitsDifferential(uint256) (runs: 257, μ: 18724, ~: 18724) +LibBitTest:testReverseBitsDifferential(uint256) (runs: 294, μ: 18724, ~: 18724) LibBitTest:testReverseBytes() (gas: 12492) -LibBitTest:testReverseBytesDifferential(uint256) (runs: 257, μ: 2675, ~: 2675) +LibBitTest:testReverseBytesDifferential(uint256) (runs: 294, μ: 2675, ~: 2675) LibBitTest:test__codesize() (gas: 5767) LibBitmapTest:testBitmapClaimWithGetSet() (gas: 27155) LibBitmapTest:testBitmapClaimWithToggle() (gas: 17392) LibBitmapTest:testBitmapFindLastSet() (gas: 1300541) -LibBitmapTest:testBitmapFindLastSet(uint256,uint256) (runs: 257, μ: 76118, ~: 76094) +LibBitmapTest:testBitmapFindLastSet(uint256,uint256) (runs: 294, μ: 76129, ~: 76094) LibBitmapTest:testBitmapFindLastSet2() (gas: 23882) LibBitmapTest:testBitmapGet() (gas: 2513) -LibBitmapTest:testBitmapGet(uint256) (runs: 257, μ: 2586, ~: 2586) +LibBitmapTest:testBitmapGet(uint256) (runs: 294, μ: 2586, ~: 2586) LibBitmapTest:testBitmapPopCount() (gas: 750426) -LibBitmapTest:testBitmapPopCount(uint256,uint256,uint256) (runs: 257, μ: 208569, ~: 171183) +LibBitmapTest:testBitmapPopCount(uint256,uint256,uint256) (runs: 294, μ: 207590, ~: 171200) LibBitmapTest:testBitmapPopCountAcrossMultipleBuckets() (gas: 73611) LibBitmapTest:testBitmapPopCountWithinSingleBucket() (gas: 34054) LibBitmapTest:testBitmapSet() (gas: 22549) -LibBitmapTest:testBitmapSet(uint256) (runs: 257, μ: 22621, ~: 22621) -LibBitmapTest:testBitmapSetAndGet(uint256) (runs: 257, μ: 22655, ~: 22655) +LibBitmapTest:testBitmapSet(uint256) (runs: 294, μ: 22621, ~: 22621) +LibBitmapTest:testBitmapSetAndGet(uint256) (runs: 294, μ: 22655, ~: 22655) LibBitmapTest:testBitmapSetBatch() (gas: 3009999) LibBitmapTest:testBitmapSetBatchAcrossMultipleBuckets() (gas: 438393) LibBitmapTest:testBitmapSetBatchWithinSingleBucket() (gas: 389011) LibBitmapTest:testBitmapSetTo() (gas: 14292) -LibBitmapTest:testBitmapSetTo(uint256,bool,uint256) (runs: 257, μ: 12651, ~: 2888) -LibBitmapTest:testBitmapSetTo(uint256,uint256) (runs: 257, μ: 44465, ~: 49958) +LibBitmapTest:testBitmapSetTo(uint256,bool,uint256) (runs: 294, μ: 12303, ~: 2888) +LibBitmapTest:testBitmapSetTo(uint256,uint256) (runs: 294, μ: 44389, ~: 49953) LibBitmapTest:testBitmapToggle() (gas: 30828) -LibBitmapTest:testBitmapToggle(uint256,bool) (runs: 257, μ: 18926, ~: 23125) +LibBitmapTest:testBitmapToggle(uint256,bool) (runs: 294, μ: 19060, ~: 23125) LibBitmapTest:testBitmapUnset() (gas: 22528) -LibBitmapTest:testBitmapUnset(uint256) (runs: 257, μ: 14322, ~: 14337) +LibBitmapTest:testBitmapUnset(uint256) (runs: 294, μ: 14323, ~: 14340) LibBitmapTest:testBitmapUnsetBatch() (gas: 2991450) LibBitmapTest:testBitmapUnsetBatchAcrossMultipleBuckets() (gas: 438470) LibBitmapTest:testBitmapUnsetBatchWithinSingleBucket() (gas: 445869) LibBitmapTest:test__codesize() (gas: 7169) LibCloneTest:testClone() (gas: 72955) -LibCloneTest:testClone(uint256) (runs: 257, μ: 73027, ~: 73027) +LibCloneTest:testClone(uint256) (runs: 294, μ: 73027, ~: 73027) LibCloneTest:testCloneDeteministicWithImmutableArgs() (gas: 192023) -LibCloneTest:testCloneDeteministicWithImmutableArgs(address,uint256,uint256[],bytes,uint64,uint8,uint256) (runs: 257, μ: 1108355, ~: 1063747) +LibCloneTest:testCloneDeteministicWithImmutableArgs(address,uint256,uint256[],bytes,uint64,uint8,uint256) (runs: 294, μ: 1112835, ~: 1078758) LibCloneTest:testCloneDeterministic() (gas: 96960) -LibCloneTest:testCloneDeterministic(uint256,bytes32) (runs: 257, μ: 97029, ~: 97029) +LibCloneTest:testCloneDeterministic(uint256,bytes32) (runs: 294, μ: 97029, ~: 97029) LibCloneTest:testCloneDeterministicRevertsIfAddressAlreadyUsed() (gas: 96882842) LibCloneTest:testCloneWithImmutableArgs() (gas: 120864) -LibCloneTest:testCloneWithImmutableArgs(uint256,address,uint256,uint256[],uint64,uint8) (runs: 257, μ: 984257, ~: 968628) +LibCloneTest:testCloneWithImmutableArgs(uint256,address,uint256,uint256[],uint64,uint8) (runs: 294, μ: 984388, ~: 958110) LibCloneTest:testCloneWithImmutableArgsRevertsIfDataTooBig() (gas: 97305794) -LibCloneTest:testCreateDeterministicERC1967(uint256,bytes32) (runs: 257, μ: 125124, ~: 125124) -LibCloneTest:testCreateDeterministicERC1967BeaconProxy(uint256,bytes32) (runs: 257, μ: 327731, ~: 357211) -LibCloneTest:testCreateDeterministicERC1967I(uint256,bytes32) (runs: 257, μ: 129450, ~: 129450) +LibCloneTest:testCreateDeterministicERC1967(uint256,bytes32) (runs: 294, μ: 125124, ~: 125124) +LibCloneTest:testCreateDeterministicERC1967BeaconProxy(uint256,bytes32) (runs: 294, μ: 327852, ~: 357211) +LibCloneTest:testCreateDeterministicERC1967I(uint256,bytes32) (runs: 294, μ: 129450, ~: 129450) LibCloneTest:testDeployDeterministicERC1967() (gas: 123217) -LibCloneTest:testDeployDeterministicERC1967(uint256,bytes32) (runs: 257, μ: 123244, ~: 123244) -LibCloneTest:testDeployDeterministicERC1967BeaconProxy(uint256,bytes32) (runs: 257, μ: 323259, ~: 293312) +LibCloneTest:testDeployDeterministicERC1967(uint256,bytes32) (runs: 294, μ: 123244, ~: 123244) +LibCloneTest:testDeployDeterministicERC1967BeaconProxy(uint256,bytes32) (runs: 294, μ: 323715, ~: 293312) LibCloneTest:testDeployDeterministicERC1967I() (gas: 127555) -LibCloneTest:testDeployDeterministicERC1967I(uint256,bytes32) (runs: 257, μ: 127581, ~: 127581) +LibCloneTest:testDeployDeterministicERC1967I(uint256,bytes32) (runs: 294, μ: 127581, ~: 127581) LibCloneTest:testDeployERC1967() (gas: 99244) -LibCloneTest:testDeployERC1967(uint256) (runs: 257, μ: 99273, ~: 99273) -LibCloneTest:testDeployERC1967BeaconProxy(uint256) (runs: 257, μ: 301114, ~: 331327) -LibCloneTest:testDeployERC1967BeaconProxyCodeHashAndLength(address) (runs: 257, μ: 142512, ~: 142512) -LibCloneTest:testDeployERC1967CodeHashAndLength(address) (runs: 257, μ: 134051, ~: 134051) +LibCloneTest:testDeployERC1967(uint256) (runs: 294, μ: 99273, ~: 99273) +LibCloneTest:testDeployERC1967BeaconProxy(uint256) (runs: 294, μ: 301116, ~: 331327) +LibCloneTest:testDeployERC1967BeaconProxyCodeHashAndLength(address) (runs: 294, μ: 142512, ~: 142512) +LibCloneTest:testDeployERC1967CodeHashAndLength(address) (runs: 294, μ: 134051, ~: 134051) LibCloneTest:testDeployERC1967I() (gas: 103584) -LibCloneTest:testDeployERC1967I(uint256) (runs: 257, μ: 103633, ~: 103633) -LibCloneTest:testDeployERC1967ICodeHashAndLength(address) (runs: 257, μ: 142468, ~: 142468) +LibCloneTest:testDeployERC1967I(uint256) (runs: 294, μ: 103633, ~: 103633) +LibCloneTest:testDeployERC1967ICodeHashAndLength(address) (runs: 294, μ: 142468, ~: 142468) LibCloneTest:testDeployERC1967ISpecialPath() (gas: 71720) -LibCloneTest:testDeployERC1967ISpecialPath(address,bytes1) (runs: 257, μ: 72177, ~: 72255) -LibCloneTest:testERC1967BeaconProxyGasBehavior(uint256,uint256) (runs: 257, μ: 292846, ~: 304412) -LibCloneTest:testERC1967ConstantBootstrap(address,bytes32) (runs: 257, μ: 153601, ~: 142025) -LibCloneTest:testInitCode(address,uint256,uint256) (runs: 257, μ: 1016718, ~: 837815) +LibCloneTest:testDeployERC1967ISpecialPath(address,bytes1) (runs: 294, μ: 72187, ~: 72255) +LibCloneTest:testERC1967BeaconProxyGasBehavior(uint256,uint256) (runs: 294, μ: 294937, ~: 322372) +LibCloneTest:testERC1967ConstantBootstrap(address,bytes32) (runs: 294, μ: 153632, ~: 142030) +LibCloneTest:testInitCode(address,uint256,uint256) (runs: 294, μ: 1020904, ~: 837806) LibCloneTest:testInitialDeposit() (gas: 607508) -LibCloneTest:testStartsWith(uint256) (runs: 257, μ: 29425, ~: 29409) +LibCloneTest:testStartsWith(uint256) (runs: 294, μ: 29430, ~: 29409) LibCloneTest:test__codesize() (gas: 26859) -LibERC6551Test:testComputeAccountAddress(address,bytes32,uint256,address,uint256) (runs: 257, μ: 204407, ~: 29313) -LibERC6551Test:testContext(address,bytes32,uint256,address,uint256) (runs: 257, μ: 101977, ~: 101978) -LibERC6551Test:testInitCodeHash(address,bytes32,uint256,address,uint256) (runs: 257, μ: 176083, ~: 24234) -LibERC6551Test:testIsERC6551Account(address,bytes32,uint256,address,uint256) (runs: 257, μ: 111882, ~: 111961) +LibERC6551Test:testComputeAccountAddress(address,bytes32,uint256,address,uint256) (runs: 294, μ: 205375, ~: 29313) +LibERC6551Test:testContext(address,bytes32,uint256,address,uint256) (runs: 294, μ: 101982, ~: 101978) +LibERC6551Test:testInitCodeHash(address,bytes32,uint256,address,uint256) (runs: 294, μ: 212718, ~: 24235) +LibERC6551Test:testIsERC6551Account(address,bytes32,uint256,address,uint256) (runs: 294, μ: 111863, ~: 111938) LibERC6551Test:test__codesize() (gas: 6400) -LibMapTest:testFoundStatementDifferential(uint256,uint256,uint256) (runs: 257, μ: 499, ~: 499) +LibMapTest:testFoundStatementDifferential(uint256,uint256,uint256) (runs: 294, μ: 499, ~: 499) LibMapTest:testGeneralMapFunctionsGas() (gas: 3304775) -LibMapTest:testGeneralMapFunctionsWithSmallBitWidths(uint256) (runs: 257, μ: 82589, ~: 85833) +LibMapTest:testGeneralMapFunctionsWithSmallBitWidths(uint256) (runs: 294, μ: 82349, ~: 85693) LibMapTest:testGeneralMapFunctionsWithZeroBitWidth() (gas: 12260) -LibMapTest:testGeneralMapSearchSorted(uint256) (runs: 257, μ: 200207, ~: 129886) +LibMapTest:testGeneralMapSearchSorted(uint256) (runs: 294, μ: 201755, ~: 131897) LibMapTest:testMapGetFromBigArray() (gas: 3330) LibMapTest:testMapGetUint8() (gas: 3313) LibMapTest:testMapSetUint8() (gas: 23276) LibMapTest:testMapSetUint8FromBigArray() (gas: 23263) -LibMapTest:testUint128MapSearchSorted(uint256) (runs: 257, μ: 175145, ~: 131248) +LibMapTest:testUint128MapSearchSorted(uint256) (runs: 294, μ: 179838, ~: 131056) LibMapTest:testUint128MapSetAndGet() (gas: 1607245) -LibMapTest:testUint128MapSetAndGet(uint256) (runs: 257, μ: 171730, ~: 169427) -LibMapTest:testUint128MapSetAndGet2(uint256) (runs: 257, μ: 68585, ~: 69420) -LibMapTest:testUint16MapSearchSorted(uint256) (runs: 257, μ: 94504, ~: 86022) +LibMapTest:testUint128MapSetAndGet(uint256) (runs: 294, μ: 171446, ~: 169421) +LibMapTest:testUint128MapSetAndGet2(uint256) (runs: 294, μ: 68476, ~: 69416) +LibMapTest:testUint16MapSearchSorted(uint256) (runs: 294, μ: 95237, ~: 86155) LibMapTest:testUint16MapSetAndGet() (gas: 958193) -LibMapTest:testUint16MapSetAndGet(uint256) (runs: 257, μ: 81168, ~: 81234) -LibMapTest:testUint16MapSetAndGet2(uint256) (runs: 257, μ: 66780, ~: 69185) -LibMapTest:testUint32MapSearchSorted(uint256) (runs: 257, μ: 108460, ~: 86129) +LibMapTest:testUint16MapSetAndGet(uint256) (runs: 294, μ: 81184, ~: 81235) +LibMapTest:testUint16MapSetAndGet2(uint256) (runs: 294, μ: 66820, ~: 69184) +LibMapTest:testUint32MapSearchSorted(uint256) (runs: 294, μ: 109561, ~: 86099) LibMapTest:testUint32MapSetAndGet() (gas: 1067093) -LibMapTest:testUint32MapSetAndGet(uint256) (runs: 257, μ: 109690, ~: 103617) -LibMapTest:testUint32MapSetAndGet2(uint256) (runs: 257, μ: 66591, ~: 69140) -LibMapTest:testUint32Maps(uint256) (runs: 257, μ: 66447, ~: 72264) -LibMapTest:testUint40MapSearchSorted(uint256) (runs: 257, μ: 128247, ~: 108725) +LibMapTest:testUint32MapSetAndGet(uint256) (runs: 294, μ: 109688, ~: 103601) +LibMapTest:testUint32MapSetAndGet2(uint256) (runs: 294, μ: 66445, ~: 69139) +LibMapTest:testUint32Maps(uint256) (runs: 294, μ: 66483, ~: 72256) +LibMapTest:testUint40MapSearchSorted(uint256) (runs: 294, μ: 127104, ~: 108725) LibMapTest:testUint40MapSetAndGet() (gas: 1127344) -LibMapTest:testUint40MapSetAndGet(uint256) (runs: 257, μ: 130124, ~: 125467) -LibMapTest:testUint40MapSetAndGet2(uint256) (runs: 257, μ: 67208, ~: 69214) -LibMapTest:testUint64MapSearchSorted(uint256) (runs: 257, μ: 131468, ~: 108348) +LibMapTest:testUint40MapSetAndGet(uint256) (runs: 294, μ: 130124, ~: 125470) +LibMapTest:testUint40MapSetAndGet2(uint256) (runs: 294, μ: 67466, ~: 69214) +LibMapTest:testUint64MapSearchSorted(uint256) (runs: 294, μ: 132632, ~: 108348) LibMapTest:testUint64MapSetAndGet() (gas: 1220437) -LibMapTest:testUint64MapSetAndGet(uint256) (runs: 257, μ: 139049, ~: 146522) -LibMapTest:testUint64MapSetAndGet2(uint256) (runs: 257, μ: 67734, ~: 69203) -LibMapTest:testUint8MapSearchSorted(uint256) (runs: 257, μ: 96797, ~: 86588) +LibMapTest:testUint64MapSetAndGet(uint256) (runs: 294, μ: 139274, ~: 146521) +LibMapTest:testUint64MapSetAndGet2(uint256) (runs: 294, μ: 67793, ~: 69203) +LibMapTest:testUint8MapSearchSorted(uint256) (runs: 294, μ: 95480, ~: 86115) LibMapTest:testUint8MapSetAndGet() (gas: 883454) -LibMapTest:testUint8MapSetAndGet(uint256) (runs: 257, μ: 59156, ~: 59108) -LibMapTest:testUint8MapSetAndGet2(uint256) (runs: 257, μ: 66802, ~: 69122) +LibMapTest:testUint8MapSetAndGet(uint256) (runs: 294, μ: 59159, ~: 59108) +LibMapTest:testUint8MapSetAndGet2(uint256) (runs: 294, μ: 66767, ~: 69122) LibMapTest:test__codesize() (gas: 12035) LibPRNGTest:testExponentialWad() (gas: 4394348) LibPRNGTest:testLCGGas() (gas: 20803) LibPRNGTest:testLazyShufflerGet() (gas: 298238) -LibPRNGTest:testLazyShufflerGetOutOfBoundsReverts(uint256,uint256) (runs: 257, μ: 26643, ~: 26667) +LibPRNGTest:testLazyShufflerGetOutOfBoundsReverts(uint256,uint256) (runs: 294, μ: 26625, ~: 26667) LibPRNGTest:testLazyShufflerNoStorageCollisions() (gas: 266115) -LibPRNGTest:testLazyShufflerProducesShuffledRange(uint256) (runs: 257, μ: 168269, ~: 91030) +LibPRNGTest:testLazyShufflerProducesShuffledRange(uint256) (runs: 294, μ: 161271, ~: 91414) LibPRNGTest:testLazyShufflerProducesShuffledRange2() (gas: 8974962) -LibPRNGTest:testLazyShufflerProducesShuffledRangeWithGrow(uint256,uint256) (runs: 257, μ: 187870, ~: 174665) +LibPRNGTest:testLazyShufflerProducesShuffledRangeWithGrow(uint256,uint256) (runs: 294, μ: 186438, ~: 176951) LibPRNGTest:testLazyShufflerRestart() (gas: 274850) LibPRNGTest:testLazyShufflerRevertsOnDoubleInit() (gas: 26824) -LibPRNGTest:testLazyShufflerRevertsOnFinshedNext(uint256) (runs: 257, μ: 62620, ~: 56431) -LibPRNGTest:testLazyShufflerRevertsOnGrowWithInvalidLength(uint256,uint256) (runs: 257, μ: 24688, ~: 24600) -LibPRNGTest:testLazyShufflerRevertsOnInitWithInvalidLength(uint256) (runs: 257, μ: 23060, ~: 23497) +LibPRNGTest:testLazyShufflerRevertsOnFinshedNext(uint256) (runs: 294, μ: 62899, ~: 55713) +LibPRNGTest:testLazyShufflerRevertsOnGrowWithInvalidLength(uint256,uint256) (runs: 294, μ: 24684, ~: 24600) +LibPRNGTest:testLazyShufflerRevertsOnInitWithInvalidLength(uint256) (runs: 294, μ: 22990, ~: 23497) LibPRNGTest:testLazyShufflerRevertsOnZeroLengthNext() (gas: 27776) LibPRNGTest:testPRNGGas() (gas: 25667) LibPRNGTest:testPRNGNext() (gas: 16162) @@ -724,309 +726,309 @@ LibPRNGTest:testPRNGShuffleGas() (gas: 1610927) LibPRNGTest:testPRNGUniform() (gas: 559430) LibPRNGTest:testStandardNormalWad() (gas: 4425913) LibPRNGTest:test__codesize() (gas: 14289) -LibRLPTest:testComputeAddressDifferential(address,uint256) (runs: 257, μ: 1941, ~: 1808) +LibRLPTest:testComputeAddressDifferential(address,uint256) (runs: 294, μ: 1940, ~: 1808) LibRLPTest:testComputeAddressForLargeNonces() (gas: 1727) LibRLPTest:testComputeAddressForSmallNonces() (gas: 989) LibRLPTest:testComputeAddressOriginalForLargeNonces() (gas: 1909) LibRLPTest:testComputeAddressOriginalForSmallNonces() (gas: 1454) LibRLPTest:test__codesize() (gas: 7397) -LibSortTest:testCopy(uint256) (runs: 257, μ: 135544, ~: 26969) -LibSortTest:testInsertionSortAddressesDifferential(uint256) (runs: 257, μ: 80992, ~: 25190) +LibSortTest:testCopy(uint256) (runs: 294, μ: 138265, ~: 26967) +LibSortTest:testInsertionSortAddressesDifferential(uint256) (runs: 294, μ: 74072, ~: 25190) LibSortTest:testInsertionSortInts() (gas: 112151) LibSortTest:testInsertionSortPsuedorandom() (gas: 62807) -LibSortTest:testInsertionSortPsuedorandom(uint256) (runs: 257, μ: 61601, ~: 61500) -LibSortTest:testIsSortedAddressesDifferential(uint256) (runs: 257, μ: 39059, ~: 28862) -LibSortTest:testIsSortedAndUniquifiedAddressesDifferential(uint256) (runs: 257, μ: 35332, ~: 28770) -LibSortTest:testIsSortedAndUniquifiedDifferential(uint256) (runs: 257, μ: 34905, ~: 27789) -LibSortTest:testIsSortedAndUniquifiedIntsDifferential(uint256) (runs: 257, μ: 52523, ~: 30215) -LibSortTest:testIsSortedDifferential(uint256) (runs: 257, μ: 34649, ~: 28702) -LibSortTest:testIsSortedIntsDifferential(uint256) (runs: 257, μ: 53842, ~: 30411) +LibSortTest:testInsertionSortPsuedorandom(uint256) (runs: 294, μ: 61613, ~: 61506) +LibSortTest:testIsSortedAddressesDifferential(uint256) (runs: 294, μ: 42466, ~: 29021) +LibSortTest:testIsSortedAndUniquifiedAddressesDifferential(uint256) (runs: 294, μ: 34787, ~: 28817) +LibSortTest:testIsSortedAndUniquifiedDifferential(uint256) (runs: 294, μ: 34281, ~: 27867) +LibSortTest:testIsSortedAndUniquifiedIntsDifferential(uint256) (runs: 294, μ: 56197, ~: 30199) +LibSortTest:testIsSortedDifferential(uint256) (runs: 294, μ: 34768, ~: 28739) +LibSortTest:testIsSortedIntsDifferential(uint256) (runs: 294, μ: 52356, ~: 30385) LibSortTest:testReverse() (gas: 114805) LibSortTest:testSearchSorted() (gas: 118972) LibSortTest:testSearchSortedAddresses() (gas: 251950) LibSortTest:testSearchSortedBasicCases() (gas: 2244) -LibSortTest:testSearchSortedDifferential(uint256) (runs: 257, μ: 41589, ~: 29174) +LibSortTest:testSearchSortedDifferential(uint256) (runs: 294, μ: 42250, ~: 29239) LibSortTest:testSearchSortedEdgeCases() (gas: 1617) -LibSortTest:testSearchSortedElementInArray(uint256) (runs: 257, μ: 57870, ~: 31549) +LibSortTest:testSearchSortedElementInArray(uint256) (runs: 294, μ: 60615, ~: 31627) LibSortTest:testSearchSortedElementNotInArray() (gas: 6135) -LibSortTest:testSearchSortedElementNotInArray(uint256) (runs: 257, μ: 56863, ~: 33401) +LibSortTest:testSearchSortedElementNotInArray(uint256) (runs: 294, μ: 54921, ~: 33456) LibSortTest:testSearchSortedInts() (gas: 120794) -LibSortTest:testSearchSortedInts(int256[],int256) (runs: 257, μ: 12001, ~: 11602) +LibSortTest:testSearchSortedInts(int256[],int256) (runs: 294, μ: 12118, ~: 12141) LibSortTest:testSearchSortedWithEmptyArray() (gas: 709) -LibSortTest:testSort(uint256) (runs: 257, μ: 45023, ~: 28215) -LibSortTest:testSortAddressesDifferential(uint256) (runs: 257, μ: 69108, ~: 30063) +LibSortTest:testSort(uint256) (runs: 294, μ: 47964, ~: 28705) +LibSortTest:testSortAddressesDifferential(uint256) (runs: 294, μ: 70165, ~: 30332) LibSortTest:testSortAddressesPsuedorandom() (gas: 144832) -LibSortTest:testSortAddressesPsuedorandom(uint256) (runs: 257, μ: 146327, ~: 146263) +LibSortTest:testSortAddressesPsuedorandom(uint256) (runs: 294, μ: 146304, ~: 146214) LibSortTest:testSortAddressesPsuedorandomBrutalizeUpperBits() (gas: 195855) LibSortTest:testSortAddressesReversed() (gas: 45400) LibSortTest:testSortAddressesSorted() (gas: 42376) LibSortTest:testSortBasicCase() (gas: 1210) -LibSortTest:testSortChecksumed(uint256) (runs: 257, μ: 52911, ~: 28901) -LibSortTest:testSortDifferential(uint256) (runs: 257, μ: 65355, ~: 27714) +LibSortTest:testSortChecksumed(uint256) (runs: 294, μ: 53448, ~: 28581) +LibSortTest:testSortDifferential(uint256) (runs: 294, μ: 64089, ~: 28059) LibSortTest:testSortInts() (gas: 612213) LibSortTest:testSortMostlySame() (gas: 67374) LibSortTest:testSortOriginalMostlySame() (gas: 207985) LibSortTest:testSortOriginalPsuedorandom() (gas: 284071) -LibSortTest:testSortOriginalPsuedorandom(uint256) (runs: 257, μ: 285916, ~: 285100) +LibSortTest:testSortOriginalPsuedorandom(uint256) (runs: 294, μ: 285573, ~: 284923) LibSortTest:testSortOriginalReversed() (gas: 156282) LibSortTest:testSortOriginalSorted() (gas: 142263) LibSortTest:testSortPsuedorandom() (gas: 138552) -LibSortTest:testSortPsuedorandom(uint256) (runs: 257, μ: 139932, ~: 139951) +LibSortTest:testSortPsuedorandom(uint256) (runs: 294, μ: 139939, ~: 140010) LibSortTest:testSortPsuedorandomNonuniform() (gas: 145689) -LibSortTest:testSortPsuedorandomNonuniform(uint256) (runs: 257, μ: 145397, ~: 145504) +LibSortTest:testSortPsuedorandomNonuniform(uint256) (runs: 294, μ: 145439, ~: 145539) LibSortTest:testSortReversed() (gas: 38827) LibSortTest:testSortSorted() (gas: 35785) LibSortTest:testSortTestOverhead() (gas: 102190) LibSortTest:testSortedDifferenceDifferential() (gas: 174078) -LibSortTest:testSortedDifferenceDifferential(uint256) (runs: 257, μ: 35076, ~: 35047) -LibSortTest:testSortedDifferenceDifferentialInt(uint256) (runs: 257, μ: 36662, ~: 36288) -LibSortTest:testSortedDifferenceUnionIntersection(uint256) (runs: 257, μ: 62695, ~: 60919) +LibSortTest:testSortedDifferenceDifferential(uint256) (runs: 294, μ: 34961, ~: 34978) +LibSortTest:testSortedDifferenceDifferentialInt(uint256) (runs: 294, μ: 36642, ~: 36268) +LibSortTest:testSortedDifferenceUnionIntersection(uint256) (runs: 294, μ: 62494, ~: 60769) LibSortTest:testSortedIntersectionDifferential() (gas: 208213) -LibSortTest:testSortedIntersectionDifferential(uint256) (runs: 257, μ: 33003, ~: 32193) -LibSortTest:testSortedIntersectionDifferentialInt(uint256) (runs: 257, μ: 34325, ~: 33597) +LibSortTest:testSortedIntersectionDifferential(uint256) (runs: 294, μ: 32915, ~: 32176) +LibSortTest:testSortedIntersectionDifferentialInt(uint256) (runs: 294, μ: 34391, ~: 33594) LibSortTest:testSortedUnionDifferential() (gas: 212667) -LibSortTest:testSortedUnionDifferential(uint256) (runs: 257, μ: 34956, ~: 34475) -LibSortTest:testSortedUnionDifferentialInt(uint256) (runs: 257, μ: 38208, ~: 37811) -LibSortTest:testTwoComplementConversionSort(int256,int256) (runs: 257, μ: 515, ~: 517) +LibSortTest:testSortedUnionDifferential(uint256) (runs: 294, μ: 35012, ~: 34431) +LibSortTest:testSortedUnionDifferentialInt(uint256) (runs: 294, μ: 38400, ~: 38827) +LibSortTest:testTwoComplementConversionSort(int256,int256) (runs: 294, μ: 515, ~: 517) LibSortTest:testUniquifySorted() (gas: 1710) -LibSortTest:testUniquifySorted(uint256) (runs: 257, μ: 47190, ~: 28132) +LibSortTest:testUniquifySorted(uint256) (runs: 294, μ: 49144, ~: 28006) LibSortTest:testUniquifySortedAddress() (gas: 4039) -LibSortTest:testUniquifySortedAddress(uint256) (runs: 257, μ: 58345, ~: 29882) -LibSortTest:testUniquifySortedDifferential(uint256) (runs: 257, μ: 64896, ~: 32646) +LibSortTest:testUniquifySortedAddress(uint256) (runs: 294, μ: 58844, ~: 30421) +LibSortTest:testUniquifySortedDifferential(uint256) (runs: 294, μ: 62358, ~: 32444) LibSortTest:testUniquifySortedWithEmptyArray() (gas: 506) LibSortTest:test__codesize() (gas: 21807) -LibStringTest:testAddressToHexStringZeroRightPadded(address) (runs: 257, μ: 3414, ~: 3414) +LibStringTest:testAddressToHexStringZeroRightPadded(address) (runs: 294, μ: 3414, ~: 3414) LibStringTest:testBytesToHexString() (gas: 4801) -LibStringTest:testBytesToHexString(bytes) (runs: 257, μ: 745682, ~: 596713) +LibStringTest:testBytesToHexString(bytes) (runs: 294, μ: 750940, ~: 596713) LibStringTest:testBytesToHexStringNoPrefix() (gas: 4467) -LibStringTest:testBytesToHexStringNoPrefix(bytes) (runs: 257, μ: 741039, ~: 596381) +LibStringTest:testBytesToHexStringNoPrefix(bytes) (runs: 294, μ: 730148, ~: 596381) LibStringTest:testContains() (gas: 43966) LibStringTest:testFromAddressToHexString() (gas: 3137) LibStringTest:testFromAddressToHexStringChecksummed() (gas: 35217) -LibStringTest:testFromAddressToHexStringChecksummedDifferential(uint256) (runs: 257, μ: 720689, ~: 585406) +LibStringTest:testFromAddressToHexStringChecksummedDifferential(uint256) (runs: 294, μ: 725568, ~: 585400) LibStringTest:testFromAddressToHexStringWithLeadingZeros() (gas: 3113) -LibStringTest:testHexStringNoPrefixVariants(uint256,uint256) (runs: 257, μ: 753264, ~: 594695) +LibStringTest:testHexStringNoPrefixVariants(uint256,uint256) (runs: 294, μ: 755693, ~: 594399) LibStringTest:testNormalizeSmallString() (gas: 1387) -LibStringTest:testNormalizeSmallString(bytes32) (runs: 257, μ: 2936, ~: 3955) +LibStringTest:testNormalizeSmallString(bytes32) (runs: 294, μ: 2928, ~: 3912) LibStringTest:testStringConcat() (gas: 3967) -LibStringTest:testStringConcat(string,string) (runs: 257, μ: 625306, ~: 576903) +LibStringTest:testStringConcat(string,string) (runs: 294, μ: 641660, ~: 576904) LibStringTest:testStringConcatOriginal() (gas: 4654) LibStringTest:testStringDirectReturn() (gas: 6741) -LibStringTest:testStringDirectReturn(string) (runs: 257, μ: 3003, ~: 2916) +LibStringTest:testStringDirectReturn(string) (runs: 294, μ: 3002, ~: 2916) LibStringTest:testStringEndsWith() (gas: 2829) -LibStringTest:testStringEndsWith(uint256) (runs: 257, μ: 668977, ~: 607078) -LibStringTest:testStringEq(string,string) (runs: 257, μ: 1544, ~: 1545) +LibStringTest:testStringEndsWith(uint256) (runs: 294, μ: 662589, ~: 607404) +LibStringTest:testStringEq(string,string) (runs: 294, μ: 1544, ~: 1545) LibStringTest:testStringEqs() (gas: 2013) LibStringTest:testStringEscapeHTML() (gas: 8427) -LibStringTest:testStringEscapeHTML(uint256) (runs: 257, μ: 757687, ~: 615814) +LibStringTest:testStringEscapeHTML(uint256) (runs: 294, μ: 766291, ~: 617076) LibStringTest:testStringEscapeJSON() (gas: 39797) LibStringTest:testStringEscapeJSONHexEncode() (gas: 700117) LibStringTest:testStringIndexOf() (gas: 17375) -LibStringTest:testStringIndexOf(uint256) (runs: 257, μ: 719078, ~: 617846) +LibStringTest:testStringIndexOf(uint256) (runs: 294, μ: 711867, ~: 617969) LibStringTest:testStringIndicesOf() (gas: 11700) -LibStringTest:testStringIndicesOf(uint256) (runs: 257, μ: 785586, ~: 620500) +LibStringTest:testStringIndicesOf(uint256) (runs: 294, μ: 778466, ~: 620114) LibStringTest:testStringIs7BitASCII() (gas: 205346) -LibStringTest:testStringIs7BitASCIIDifferential(bytes) (runs: 257, μ: 713114, ~: 576615) +LibStringTest:testStringIs7BitASCIIDifferential(bytes) (runs: 294, μ: 716388, ~: 576699) LibStringTest:testStringIs7BitASCIIWithAllowedLookup() (gas: 4939) -LibStringTest:testStringIs7BitASCIIWithAllowedLookupDifferential(bytes,uint128) (runs: 257, μ: 676477, ~: 576382) +LibStringTest:testStringIs7BitASCIIWithAllowedLookupDifferential(bytes,uint128) (runs: 294, μ: 678262, ~: 576364) LibStringTest:testStringLastIndexOf() (gas: 24042) -LibStringTest:testStringLastIndexOf(uint256) (runs: 257, μ: 704856, ~: 620973) +LibStringTest:testStringLastIndexOf(uint256) (runs: 294, μ: 733473, ~: 621482) LibStringTest:testStringLowerDifferential() (gas: 3051885) -LibStringTest:testStringLowerDifferential(string) (runs: 257, μ: 8267, ~: 7991) +LibStringTest:testStringLowerDifferential(string) (runs: 294, μ: 8324, ~: 8153) LibStringTest:testStringLowerOriginal() (gas: 1219) LibStringTest:testStringPackAndUnpackOne() (gas: 725086) -LibStringTest:testStringPackAndUnpackOne(string) (runs: 257, μ: 672445, ~: 575680) -LibStringTest:testStringPackAndUnpackOneDifferential(string) (runs: 257, μ: 716306, ~: 575496) +LibStringTest:testStringPackAndUnpackOne(string) (runs: 294, μ: 674530, ~: 575649) +LibStringTest:testStringPackAndUnpackOneDifferential(string) (runs: 294, μ: 736574, ~: 575496) LibStringTest:testStringPackAndUnpackTwo() (gas: 880925) -LibStringTest:testStringPackAndUnpackTwo(string,string) (runs: 257, μ: 659624, ~: 576953) -LibStringTest:testStringPackAndUnpackTwoDifferential(string,string) (runs: 257, μ: 628161, ~: 576482) +LibStringTest:testStringPackAndUnpackTwo(string,string) (runs: 294, μ: 653604, ~: 576955) +LibStringTest:testStringPackAndUnpackTwoDifferential(string,string) (runs: 294, μ: 625341, ~: 576470) LibStringTest:testStringRepeat() (gas: 4926) -LibStringTest:testStringRepeat(string,uint256) (runs: 257, μ: 694127, ~: 578160) +LibStringTest:testStringRepeat(string,uint256) (runs: 294, μ: 727848, ~: 578385) LibStringTest:testStringRepeatOriginal() (gas: 9598) -LibStringTest:testStringReplace(uint256) (runs: 257, μ: 703414, ~: 623596) +LibStringTest:testStringReplace(uint256) (runs: 294, μ: 706646, ~: 622481) LibStringTest:testStringReplaceLong() (gas: 8551) LibStringTest:testStringReplaceMedium() (gas: 7559) LibStringTest:testStringReplaceShort() (gas: 12307) LibStringTest:testStringRuneCount() (gas: 2973849) -LibStringTest:testStringRuneCountDifferential(string) (runs: 257, μ: 6083, ~: 5868) +LibStringTest:testStringRuneCountDifferential(string) (runs: 294, μ: 6125, ~: 5941) LibStringTest:testStringSlice() (gas: 9262) -LibStringTest:testStringSlice(uint256) (runs: 257, μ: 743606, ~: 616151) +LibStringTest:testStringSlice(uint256) (runs: 294, μ: 758977, ~: 616481) LibStringTest:testStringSplit() (gas: 20287) -LibStringTest:testStringSplit(uint256) (runs: 257, μ: 734070, ~: 624521) +LibStringTest:testStringSplit(uint256) (runs: 294, μ: 728372, ~: 624005) LibStringTest:testStringStartsWith() (gas: 2544) -LibStringTest:testStringStartsWith(uint256) (runs: 257, μ: 726398, ~: 609669) +LibStringTest:testStringStartsWith(uint256) (runs: 294, μ: 711896, ~: 609294) LibStringTest:testStringUpperDifferential() (gas: 3599376) -LibStringTest:testStringUpperDifferential(string) (runs: 257, μ: 8266, ~: 7990) +LibStringTest:testStringUpperDifferential(string) (runs: 294, μ: 8323, ~: 8152) LibStringTest:testStringUpperOriginal() (gas: 1218) LibStringTest:testTo7BitASCIIAllowedLookup() (gas: 3113) LibStringTest:testToHexStringFixedLengthInsufficientLength() (gas: 3395) LibStringTest:testToHexStringFixedLengthPositiveNumberLong() (gas: 3699) LibStringTest:testToHexStringFixedLengthPositiveNumberShort() (gas: 940) LibStringTest:testToHexStringFixedLengthUint256Max() (gas: 3656) -LibStringTest:testToHexStringFixedLengthZeroRightPadded(uint256,uint256) (runs: 257, μ: 8191, ~: 5873) +LibStringTest:testToHexStringFixedLengthZeroRightPadded(uint256,uint256) (runs: 294, μ: 8069, ~: 5547) LibStringTest:testToHexStringPositiveNumber() (gas: 865) LibStringTest:testToHexStringUint256Max() (gas: 3442) LibStringTest:testToHexStringZero() (gas: 805) -LibStringTest:testToHexStringZeroRightPadded(uint256) (runs: 257, μ: 1909, ~: 1382) +LibStringTest:testToHexStringZeroRightPadded(uint256) (runs: 294, μ: 1888, ~: 1299) LibStringTest:testToMinimalHexStringNoPrefixPositiveNumber() (gas: 3426) LibStringTest:testToMinimalHexStringNoPrefixUint256Max() (gas: 3424) LibStringTest:testToMinimalHexStringNoPrefixZero() (gas: 809) -LibStringTest:testToMinimalHexStringNoPrefixZeroRightPadded(uint256) (runs: 257, μ: 1930, ~: 1404) +LibStringTest:testToMinimalHexStringNoPrefixZeroRightPadded(uint256) (runs: 294, μ: 1909, ~: 1321) LibStringTest:testToMinimalHexStringPositiveNumber() (gas: 3556) LibStringTest:testToMinimalHexStringUint256Max() (gas: 3470) LibStringTest:testToMinimalHexStringZero() (gas: 829) -LibStringTest:testToMinimalHexStringZeroRightPadded(uint256) (runs: 257, μ: 2002, ~: 1474) +LibStringTest:testToMinimalHexStringZeroRightPadded(uint256) (runs: 294, μ: 1981, ~: 1391) LibStringTest:testToSmallString() (gas: 4448) LibStringTest:testToStringPositiveNumber() (gas: 910) LibStringTest:testToStringPositiveNumberBrutalized() (gas: 752723) -LibStringTest:testToStringSignedDifferential(int256) (runs: 257, μ: 678312, ~: 578803) +LibStringTest:testToStringSignedDifferential(int256) (runs: 294, μ: 657562, ~: 578204) LibStringTest:testToStringSignedGas() (gas: 7305) -LibStringTest:testToStringSignedMemory(int256) (runs: 257, μ: 769531, ~: 576998) +LibStringTest:testToStringSignedMemory(int256) (runs: 294, μ: 770755, ~: 576761) LibStringTest:testToStringSignedOriginalGas() (gas: 9817) LibStringTest:testToStringUint256Max() (gas: 6687) LibStringTest:testToStringUint256MaxBrutalized() (gas: 587176) LibStringTest:testToStringZero() (gas: 699) LibStringTest:testToStringZeroBrutalized() (gas: 575091) -LibStringTest:testToStringZeroRightPadded(uint256) (runs: 257, μ: 703122, ~: 576034) +LibStringTest:testToStringZeroRightPadded(uint256) (runs: 294, μ: 687294, ~: 575833) LibStringTest:test__codesize() (gas: 42048) LibZipTest:testCdCompress() (gas: 126842) -LibZipTest:testCdCompressDecompress(bytes) (runs: 257, μ: 787930, ~: 653505) -LibZipTest:testCdCompressDecompress(uint256) (runs: 257, μ: 851419, ~: 676295) +LibZipTest:testCdCompressDecompress(bytes) (runs: 294, μ: 775547, ~: 654210) +LibZipTest:testCdCompressDecompress(uint256) (runs: 294, μ: 834032, ~: 676434) LibZipTest:testCdDecompressOnInvalidInput() (gas: 1397) LibZipTest:testCdFallback() (gas: 5636018) -LibZipTest:testCdFallback(bytes,uint256) (runs: 257, μ: 1178312, ~: 1060844) -LibZipTest:testCdFallbackDecompressor(bytes) (runs: 257, μ: 121080, ~: 117191) -LibZipTest:testCdFallbackDecompressor(uint256) (runs: 257, μ: 169306, ~: 161595) -LibZipTest:testCdFallbackMaskTrick(uint256,uint256) (runs: 257, μ: 594, ~: 585) -LibZipTest:testDecompressWontRevert(bytes) (runs: 257, μ: 689949, ~: 633023) +LibZipTest:testCdFallback(bytes,uint256) (runs: 294, μ: 1179796, ~: 1061033) +LibZipTest:testCdFallbackDecompressor(bytes) (runs: 294, μ: 121092, ~: 117229) +LibZipTest:testCdFallbackDecompressor(uint256) (runs: 294, μ: 168154, ~: 160558) +LibZipTest:testCdFallbackMaskTrick(uint256,uint256) (runs: 294, μ: 594, ~: 585) +LibZipTest:testDecompressWontRevert(bytes) (runs: 294, μ: 697428, ~: 634002) LibZipTest:testFlzCompressDecompress() (gas: 1250953) -LibZipTest:testFlzCompressDecompress(bytes) (runs: 257, μ: 737797, ~: 666982) +LibZipTest:testFlzCompressDecompress(bytes) (runs: 294, μ: 762669, ~: 670209) LibZipTest:testFlzCompressDecompress2() (gas: 760133) LibZipTest:test__codesize() (gas: 20369) -LifebuoyTest:testLifebuoyCreateDeployment(address) (runs: 257, μ: 481528, ~: 514835) -LifebuoyTest:testLifebuoyOwnedCloneRescuePermissions(bytes32) (runs: 257, μ: 941433, ~: 941338) -LifebuoyTest:testLifebuoyOwnedRescuePermissions(bytes32) (runs: 257, μ: 947118, ~: 938639) -LifebuoyTest:testLifebuoyRescuePermissions(bytes32) (runs: 257, μ: 930651, ~: 935966) +LifebuoyTest:testLifebuoyCreateDeployment(address) (runs: 294, μ: 483873, ~: 514835) +LifebuoyTest:testLifebuoyOwnedCloneRescuePermissions(bytes32) (runs: 294, μ: 941443, ~: 941336) +LifebuoyTest:testLifebuoyOwnedRescuePermissions(bytes32) (runs: 294, μ: 946763, ~: 938504) +LifebuoyTest:testLifebuoyRescuePermissions(bytes32) (runs: 294, μ: 930786, ~: 935975) LifebuoyTest:testLockEverything() (gas: 662030) LifebuoyTest:testLockRescue() (gas: 687523) LifebuoyTest:testLockRescueETH() (gas: 699025) -LifebuoyTest:testRescueERC20(uint256) (runs: 257, μ: 655581, ~: 657353) -LifebuoyTest:testRescueERC721(bytes32) (runs: 257, μ: 651638, ~: 651760) -LifebuoyTest:testRescueETH(uint256) (runs: 257, μ: 664152, ~: 664766) +LifebuoyTest:testRescueERC20(uint256) (runs: 294, μ: 655557, ~: 657352) +LifebuoyTest:testRescueERC721(bytes32) (runs: 294, μ: 651656, ~: 651802) +LifebuoyTest:testRescueETH(uint256) (runs: 294, μ: 664131, ~: 664767) LifebuoyTest:test__codesize() (gas: 30222) MerkleProofLibTest:testEmptyCalldataHelpers() (gas: 985) -MerkleProofLibTest:testVerifyMultiProof(bool,bool,bool,bool,bytes32) (runs: 257, μ: 759392, ~: 622863) -MerkleProofLibTest:testVerifyMultiProofForHeightOneTree(bool,bool,bool,bool,bool,bool[]) (runs: 257, μ: 37799, ~: 38119) -MerkleProofLibTest:testVerifyMultiProofForHeightTwoTree(bool,bool,bool,bool,bool,bytes32) (runs: 257, μ: 6510, ~: 6467) -MerkleProofLibTest:testVerifyMultiProofForSingleLeaf(bytes32[],uint256) (runs: 257, μ: 873679, ~: 796853) +MerkleProofLibTest:testVerifyMultiProof(bool,bool,bool,bool,bytes32) (runs: 294, μ: 749749, ~: 622783) +MerkleProofLibTest:testVerifyMultiProofForHeightOneTree(bool,bool,bool,bool,bool,bool[]) (runs: 294, μ: 37593, ~: 37295) +MerkleProofLibTest:testVerifyMultiProofForHeightTwoTree(bool,bool,bool,bool,bool,bytes32) (runs: 294, μ: 6498, ~: 6465) +MerkleProofLibTest:testVerifyMultiProofForSingleLeaf(bytes32[],uint256) (runs: 293, μ: 881651, ~: 800195) MerkleProofLibTest:testVerifyMultiProofIsInvalid() (gas: 621637) MerkleProofLibTest:testVerifyMultiProofIsValid() (gas: 623052) MerkleProofLibTest:testVerifyMultiProofMalicious() (gas: 7918) -MerkleProofLibTest:testVerifyProof(bytes32[],uint256) (runs: 257, μ: 828515, ~: 772208) -MerkleProofLibTest:testVerifyProofBasicCase(bool,bool,bool,bytes32) (runs: 257, μ: 4039, ~: 3906) +MerkleProofLibTest:testVerifyProof(bytes32[],uint256) (runs: 293, μ: 851084, ~: 774560) +MerkleProofLibTest:testVerifyProofBasicCase(bool,bool,bool,bytes32) (runs: 294, μ: 4045, ~: 3906) MerkleProofLibTest:testVerifyProofBasicCaseIsInvalid() (gas: 3626) MerkleProofLibTest:testVerifyProofBasicCaseIsValid() (gas: 3590) -MerkleProofLibTest:testVerifyProofForHeightOneTree(bool,bool,bool,bool) (runs: 257, μ: 2691, ~: 2968) +MerkleProofLibTest:testVerifyProofForHeightOneTree(bool,bool,bool,bool) (runs: 294, μ: 2699, ~: 2968) MerkleProofLibTest:test__codesize() (gas: 11089) -MetadataReaderLibTest:testBoundsCheckDifferential(uint256) (runs: 257, μ: 25601, ~: 25583) +MetadataReaderLibTest:testBoundsCheckDifferential(uint256) (runs: 294, μ: 25605, ~: 25582) MetadataReaderLibTest:testReadBytes32String() (gas: 661236) MetadataReaderLibTest:testReadBytes32StringTruncated() (gas: 777425) -MetadataReaderLibTest:testReadString(uint256) (runs: 257, μ: 832939, ~: 718035) +MetadataReaderLibTest:testReadString(uint256) (runs: 294, μ: 821356, ~: 718333) MetadataReaderLibTest:testReadStringChopped() (gas: 269520) -MetadataReaderLibTest:testReadStringTruncated(uint256) (runs: 257, μ: 843468, ~: 706127) +MetadataReaderLibTest:testReadStringTruncated(uint256) (runs: 294, μ: 839456, ~: 706202) MetadataReaderLibTest:testReadUint() (gas: 911216) -MetadataReaderLibTest:testReadUint(uint256) (runs: 257, μ: 46791, ~: 47092) +MetadataReaderLibTest:testReadUint(uint256) (runs: 294, μ: 46761, ~: 47092) MetadataReaderLibTest:test__codesize() (gas: 7891) -MinHeapLibTest:testHeapEnqueue(uint256) (runs: 257, μ: 177619, ~: 168125) -MinHeapLibTest:testHeapEnqueue2(uint256) (runs: 257, μ: 611453, ~: 392673) +MinHeapLibTest:testHeapEnqueue(uint256) (runs: 294, μ: 175148, ~: 167554) +MinHeapLibTest:testHeapEnqueue2(uint256) (runs: 294, μ: 630542, ~: 391440) MinHeapLibTest:testHeapEnqueueGas() (gas: 854823) -MinHeapLibTest:testHeapEnqueueZeroMaxLengthReverts(uint256) (runs: 257, μ: 49379, ~: 67805) -MinHeapLibTest:testHeapPSiftTrick(uint256,uint256,uint256) (runs: 257, μ: 729, ~: 561) -MinHeapLibTest:testHeapPushAndPop(uint256) (runs: 257, μ: 105081, ~: 99476) -MinHeapLibTest:testHeapPushPop(uint256) (runs: 257, μ: 249545, ~: 239560) -MinHeapLibTest:testHeapPushPopLength(uint256) (runs: 257, μ: 916288, ~: 793613) -MinHeapLibTest:testHeapReplace(uint256) (runs: 257, μ: 291466, ~: 287820) -MinHeapLibTest:testHeapReplaceOrPopEmptyHeapReverts(uint256) (runs: 257, μ: 43435, ~: 29129) -MinHeapLibTest:testHeapRoot(uint256) (runs: 257, μ: 48258, ~: 67493) -MinHeapLibTest:testHeapSmallest(uint256) (runs: 257, μ: 1491508, ~: 1184575) +MinHeapLibTest:testHeapEnqueueZeroMaxLengthReverts(uint256) (runs: 294, μ: 47826, ~: 28676) +MinHeapLibTest:testHeapPSiftTrick(uint256,uint256,uint256) (runs: 294, μ: 734, ~: 899) +MinHeapLibTest:testHeapPushAndPop(uint256) (runs: 294, μ: 111330, ~: 99664) +MinHeapLibTest:testHeapPushPop(uint256) (runs: 294, μ: 256493, ~: 266138) +MinHeapLibTest:testHeapPushPopLength(uint256) (runs: 294, μ: 886722, ~: 791247) +MinHeapLibTest:testHeapReplace(uint256) (runs: 294, μ: 290106, ~: 289643) +MinHeapLibTest:testHeapReplaceOrPopEmptyHeapReverts(uint256) (runs: 294, μ: 44597, ~: 29260) +MinHeapLibTest:testHeapRoot(uint256) (runs: 294, μ: 48194, ~: 67493) +MinHeapLibTest:testHeapSmallest(uint256) (runs: 294, μ: 1432030, ~: 1163853) MinHeapLibTest:testHeapSmallestGas() (gas: 50027291) -MinHeapLibTest:testMemHeapEnqueue(uint256) (runs: 257, μ: 915843, ~: 819030) -MinHeapLibTest:testMemHeapEnqueue2(uint256) (runs: 257, μ: 767465, ~: 714801) +MinHeapLibTest:testMemHeapEnqueue(uint256) (runs: 294, μ: 920725, ~: 802228) +MinHeapLibTest:testMemHeapEnqueue2(uint256) (runs: 294, μ: 812254, ~: 718652) MinHeapLibTest:testMemHeapEnqueueGas() (gas: 233998) -MinHeapLibTest:testMemHeapEnqueueZeroMaxLengthReverts(uint256) (runs: 257, μ: 25355, ~: 26429) -MinHeapLibTest:testMemHeapPushAndPop(uint256) (runs: 257, μ: 1098912, ~: 989569) +MinHeapLibTest:testMemHeapEnqueueZeroMaxLengthReverts(uint256) (runs: 294, μ: 25329, ~: 25328) +MinHeapLibTest:testMemHeapPushAndPop(uint256) (runs: 294, μ: 1038353, ~: 909001) MinHeapLibTest:testMemHeapPushGas() (gas: 32075) -MinHeapLibTest:testMemHeapPushPop(uint256) (runs: 257, μ: 1396615, ~: 1256080) -MinHeapLibTest:testMemHeapPushPopLength(uint256) (runs: 257, μ: 809773, ~: 680769) -MinHeapLibTest:testMemHeapReplace(uint256) (runs: 257, μ: 913572, ~: 781601) -MinHeapLibTest:testMemHeapReplaceOrPopEmptyHeapReverts(uint256) (runs: 257, μ: 26041, ~: 25716) -MinHeapLibTest:testMemHeapRoot(uint256) (runs: 257, μ: 720664, ~: 634663) -MinHeapLibTest:testMemHeapSmallest(uint256) (runs: 257, μ: 859105, ~: 734846) +MinHeapLibTest:testMemHeapPushPop(uint256) (runs: 294, μ: 1371187, ~: 1272290) +MinHeapLibTest:testMemHeapPushPopLength(uint256) (runs: 294, μ: 773608, ~: 676244) +MinHeapLibTest:testMemHeapReplace(uint256) (runs: 294, μ: 896718, ~: 791580) +MinHeapLibTest:testMemHeapReplaceOrPopEmptyHeapReverts(uint256) (runs: 294, μ: 25987, ~: 25579) +MinHeapLibTest:testMemHeapRoot(uint256) (runs: 294, μ: 758544, ~: 634641) +MinHeapLibTest:testMemHeapSmallest(uint256) (runs: 294, μ: 877796, ~: 730255) MinHeapLibTest:testMemHeapSmallestGas() (gas: 2874313) MinHeapLibTest:test__codesize() (gas: 13872) MulticallableTest:testMulticallableBenchmark() (gas: 29642) MulticallableTest:testMulticallableOriginalBenchmark() (gas: 38935) MulticallableTest:testMulticallablePreservesMsgSender() (gas: 11166) MulticallableTest:testMulticallableReturnDataIsProperlyEncoded() (gas: 11665) -MulticallableTest:testMulticallableReturnDataIsProperlyEncoded(string,string,uint256) (runs: 257, μ: 9403, ~: 7431) -MulticallableTest:testMulticallableReturnDataIsProperlyEncoded(uint256,uint256,uint256,uint256) (runs: 257, μ: 11811, ~: 11811) +MulticallableTest:testMulticallableReturnDataIsProperlyEncoded(string,string,uint256) (runs: 294, μ: 9380, ~: 7431) +MulticallableTest:testMulticallableReturnDataIsProperlyEncoded(uint256,uint256,uint256,uint256) (runs: 294, μ: 11811, ~: 11811) MulticallableTest:testMulticallableRevertWithCustomError() (gas: 11811) MulticallableTest:testMulticallableRevertWithMessage() (gas: 13483) -MulticallableTest:testMulticallableRevertWithMessage(string) (runs: 257, μ: 14096, ~: 13944) +MulticallableTest:testMulticallableRevertWithMessage(string) (runs: 294, μ: 14095, ~: 13944) MulticallableTest:testMulticallableRevertWithNothing() (gas: 11673) MulticallableTest:testMulticallableWithNoData() (gas: 6286) MulticallableTest:test__codesize() (gas: 8562) OwnableRolesTest:testBytecodeSize() (gas: 350635) -OwnableRolesTest:testGrantAndRemoveRolesDirect(address,uint256,uint256) (runs: 257, μ: 40107, ~: 40750) -OwnableRolesTest:testGrantAndRevokeOrRenounceRoles(address,bool,bool,bool,uint256,uint256) (runs: 257, μ: 27785, ~: 20598) +OwnableRolesTest:testGrantAndRemoveRolesDirect(address,uint256,uint256) (runs: 294, μ: 40145, ~: 40750) +OwnableRolesTest:testGrantAndRevokeOrRenounceRoles(address,bool,bool,bool,uint256,uint256) (runs: 294, μ: 27353, ~: 12212) OwnableRolesTest:testGrantRoles() (gas: 36136) OwnableRolesTest:testHandoverOwnership() (gas: 32394) -OwnableRolesTest:testHandoverOwnership(address) (runs: 257, μ: 32435, ~: 32420) +OwnableRolesTest:testHandoverOwnership(address) (runs: 294, μ: 32436, ~: 32420) OwnableRolesTest:testHandoverOwnershipAfterExpiration() (gas: 36947) OwnableRolesTest:testHandoverOwnershipBeforeExpiration() (gas: 28733) OwnableRolesTest:testHandoverOwnershipRevertsIfCompleteIsNotOwner() (gas: 35621) OwnableRolesTest:testHandoverOwnershipWithCancellation() (gas: 30772) -OwnableRolesTest:testHasAllRoles(address,uint256,uint256,uint256,bool) (runs: 257, μ: 33584, ~: 33588) -OwnableRolesTest:testHasAnyRole(address,uint256,uint256) (runs: 257, μ: 33220, ~: 33375) +OwnableRolesTest:testHasAllRoles(address,uint256,uint256,uint256,bool) (runs: 294, μ: 33584, ~: 33588) +OwnableRolesTest:testHasAnyRole(address,uint256,uint256) (runs: 294, μ: 33239, ~: 33375) OwnableRolesTest:testInitializeOwnerDirect() (gas: 16738) -OwnableRolesTest:testOnlyOwnerModifier(address,bool) (runs: 257, μ: 22663, ~: 32884) +OwnableRolesTest:testOnlyOwnerModifier(address,bool) (runs: 294, μ: 22279, ~: 32884) OwnableRolesTest:testOnlyOwnerOrRolesModifier() (gas: 36596) -OwnableRolesTest:testOnlyOwnerOrRolesModifier(address,bool,uint256,uint256) (runs: 257, μ: 56774, ~: 57968) -OwnableRolesTest:testOnlyRolesModifier(address,uint256,uint256) (runs: 257, μ: 55716, ~: 57903) -OwnableRolesTest:testOnlyRolesOrOwnerModifier(address,bool,uint256,uint256) (runs: 257, μ: 57703, ~: 58396) +OwnableRolesTest:testOnlyOwnerOrRolesModifier(address,bool,uint256,uint256) (runs: 294, μ: 56537, ~: 57968) +OwnableRolesTest:testOnlyRolesModifier(address,uint256,uint256) (runs: 294, μ: 55621, ~: 57903) +OwnableRolesTest:testOnlyRolesOrOwnerModifier(address,bool,uint256,uint256) (runs: 294, μ: 57443, ~: 58396) OwnableRolesTest:testOrdinalsFromRoles() (gas: 3631629) -OwnableRolesTest:testOrdinalsFromRoles(uint256) (runs: 257, μ: 59028, ~: 39974) +OwnableRolesTest:testOrdinalsFromRoles(uint256) (runs: 294, μ: 57798, ~: 39056) OwnableRolesTest:testOwnershipHandoverValidForDefaultValue() (gas: 5825) OwnableRolesTest:testRenounceOwnership() (gas: 12921) OwnableRolesTest:testRolesFromOrdinals() (gas: 648931) -OwnableRolesTest:testRolesFromOrdinals(uint8[]) (runs: 257, μ: 80969, ~: 85017) +OwnableRolesTest:testRolesFromOrdinals(uint8[]) (runs: 294, μ: 81358, ~: 85587) OwnableRolesTest:testSetOwnerDirect() (gas: 17790) -OwnableRolesTest:testSetOwnerDirect(address) (runs: 257, μ: 17858, ~: 17915) -OwnableRolesTest:testSetRolesDirect(uint256) (runs: 257, μ: 100033, ~: 100167) +OwnableRolesTest:testSetOwnerDirect(address) (runs: 294, μ: 17866, ~: 17915) +OwnableRolesTest:testSetRolesDirect(uint256) (runs: 294, μ: 100055, ~: 100167) OwnableRolesTest:testTransferOwnership() (gas: 19671) -OwnableRolesTest:testTransferOwnership(address,bool,bool) (runs: 257, μ: 14582, ~: 12735) +OwnableRolesTest:testTransferOwnership(address,bool,bool) (runs: 294, μ: 14566, ~: 13109) OwnableRolesTest:test__codesize() (gas: 21847) OwnableTest:testBytecodeSize() (gas: 235158) OwnableTest:testHandoverOwnership() (gas: 32127) -OwnableTest:testHandoverOwnership(address) (runs: 257, μ: 32142, ~: 32136) +OwnableTest:testHandoverOwnership(address) (runs: 294, μ: 32143, ~: 32136) OwnableTest:testHandoverOwnershipAfterExpiration() (gas: 36725) OwnableTest:testHandoverOwnershipBeforeExpiration() (gas: 28582) OwnableTest:testHandoverOwnershipRevertsIfCompleteIsNotOwner() (gas: 35355) OwnableTest:testHandoverOwnershipWithCancellation() (gas: 30416) OwnableTest:testInitializeOwnerDirect() (gas: 16613) -OwnableTest:testOnlyOwnerModifier(address,bool) (runs: 257, μ: 22577, ~: 32829) +OwnableTest:testOnlyOwnerModifier(address,bool) (runs: 294, μ: 22191, ~: 32829) OwnableTest:testOwnershipHandoverValidForDefaultValue() (gas: 5737) OwnableTest:testRenounceOwnership() (gas: 12755) OwnableTest:testSetOwnerDirect() (gas: 17700) -OwnableTest:testSetOwnerDirect(address) (runs: 257, μ: 17777, ~: 17826) +OwnableTest:testSetOwnerDirect(address) (runs: 294, μ: 17783, ~: 17826) OwnableTest:testTransferOwnership() (gas: 19481) -OwnableTest:testTransferOwnership(address,bool,bool) (runs: 257, μ: 14335, ~: 12508) +OwnableTest:testTransferOwnership(address,bool,bool) (runs: 294, μ: 14319, ~: 12849) OwnableTest:test__codesize() (gas: 11007) P256Test:testP256VerifyMalleableRIPPrecompile() (gas: 672328) P256Test:testP256VerifyMalleableVerifier() (gas: 675142) P256Test:testP256VerifyNonMalleableRIPPrecompile() (gas: 670259) P256Test:testP256VerifyNonMalleableVerifier() (gas: 673054) -P256Test:testP256VerifyNotDeployedReverts(bytes32,uint256,uint256,uint256,uint256,bool) (runs: 257, μ: 9599, ~: 9595) +P256Test:testP256VerifyNotDeployedReverts(bytes32,uint256,uint256,uint256,uint256,bool) (runs: 294, μ: 9599, ~: 9595) P256Test:test__codesize() (gas: 6938) ReceiverTest:testETHReceived() (gas: 9643) ReceiverTest:testOnERC1155BatchReceived() (gas: 49183) @@ -1035,8 +1037,8 @@ ReceiverTest:testOnERC721Received() (gas: 64593) ReceiverTest:test__codesize() (gas: 3053) RedBlackTreeLibTest:testRedBlackTreeBenchUint160() (gas: 3428194) RedBlackTreeLibTest:testRedBlackTreeBenchUint256() (gas: 5841865) -RedBlackTreeLibTest:testRedBlackTreeInsertAndRemove(uint256) (runs: 257, μ: 660702, ~: 535412) -RedBlackTreeLibTest:testRedBlackTreeInsertAndRemove2(uint256) (runs: 257, μ: 395938, ~: 369972) +RedBlackTreeLibTest:testRedBlackTreeInsertAndRemove(uint256) (runs: 294, μ: 655323, ~: 534895) +RedBlackTreeLibTest:testRedBlackTreeInsertAndRemove2(uint256) (runs: 294, μ: 401614, ~: 383237) RedBlackTreeLibTest:testRedBlackTreeInsertAndRemove3() (gas: 21527899) RedBlackTreeLibTest:testRedBlackTreeInsertBenchStep() (gas: 3702908) RedBlackTreeLibTest:testRedBlackTreeInsertBenchUint160() (gas: 3468526) @@ -1045,16 +1047,16 @@ RedBlackTreeLibTest:testRedBlackTreeInsertOneGas() (gas: 45558) RedBlackTreeLibTest:testRedBlackTreeInsertTenGas() (gas: 282691) RedBlackTreeLibTest:testRedBlackTreeInsertThreeGas() (gas: 96175) RedBlackTreeLibTest:testRedBlackTreeInsertTwoGas() (gas: 69785) -RedBlackTreeLibTest:testRedBlackTreeNearest(uint256) (runs: 257, μ: 251890, ~: 250434) -RedBlackTreeLibTest:testRedBlackTreeNearestAfter(uint256) (runs: 257, μ: 260762, ~: 248696) -RedBlackTreeLibTest:testRedBlackTreeNearestBefore(uint256) (runs: 257, μ: 269859, ~: 253138) +RedBlackTreeLibTest:testRedBlackTreeNearest(uint256) (runs: 294, μ: 255503, ~: 250328) +RedBlackTreeLibTest:testRedBlackTreeNearestAfter(uint256) (runs: 294, μ: 261445, ~: 248696) +RedBlackTreeLibTest:testRedBlackTreeNearestBefore(uint256) (runs: 294, μ: 263615, ~: 248895) RedBlackTreeLibTest:testRedBlackTreePointers() (gas: 91643) RedBlackTreeLibTest:testRedBlackTreeRejectsEmptyValue() (gas: 3232) RedBlackTreeLibTest:testRedBlackTreeRemoveViaPointer() (gas: 58157) RedBlackTreeLibTest:testRedBlackTreeTreeFullReverts() (gas: 50317) RedBlackTreeLibTest:testRedBlackTreeTryInsertAndRemove() (gas: 56062) RedBlackTreeLibTest:testRedBlackTreeValues() (gas: 191605) -RedBlackTreeLibTest:testRedBlackTreeValues(uint256) (runs: 257, μ: 424813, ~: 272439) +RedBlackTreeLibTest:testRedBlackTreeValues(uint256) (runs: 294, μ: 428831, ~: 273986) RedBlackTreeLibTest:test__codesize() (gas: 13068) ReentrancyGuardTest:testRecursiveDirectUnguardedCall() (gas: 34276) ReentrancyGuardTest:testRecursiveIndirectUnguardedCall() (gas: 47727) @@ -1065,20 +1067,20 @@ ReentrancyGuardTest:testRevertRecursiveIndirectGuardedCall() (gas: 56529) ReentrancyGuardTest:testRevertRemoteCallback() (gas: 56230) ReentrancyGuardTest:test__codesize() (gas: 4403) SSTORE2Test:testReadInvalidPointerCustomBoundsReverts() (gas: 3197) -SSTORE2Test:testReadInvalidPointerCustomBoundsReverts(address,uint256,uint256) (runs: 257, μ: 736336, ~: 634990) +SSTORE2Test:testReadInvalidPointerCustomBoundsReverts(address,uint256,uint256) (runs: 294, μ: 736370, ~: 634990) SSTORE2Test:testReadInvalidPointerCustomStartBoundReverts() (gas: 3241) -SSTORE2Test:testReadInvalidPointerCustomStartBoundReverts(address,uint256) (runs: 257, μ: 731811, ~: 634669) -SSTORE2Test:testReadInvalidPointerRevert(address) (runs: 257, μ: 765239, ~: 634567) +SSTORE2Test:testReadInvalidPointerCustomStartBoundReverts(address,uint256) (runs: 294, μ: 732573, ~: 634611) +SSTORE2Test:testReadInvalidPointerRevert(address) (runs: 294, μ: 757652, ~: 634567) SSTORE2Test:testReadInvalidPointerReverts() (gas: 3237) SSTORE2Test:testWriteRead() (gas: 52494) -SSTORE2Test:testWriteRead(bytes) (runs: 257, μ: 768959, ~: 670155) +SSTORE2Test:testWriteRead(bytes) (runs: 294, μ: 760415, ~: 670200) SSTORE2Test:testWriteReadCustomBounds() (gas: 34094) -SSTORE2Test:testWriteReadCustomBounds(bytes,uint256,uint256) (runs: 257, μ: 744317, ~: 667987) -SSTORE2Test:testWriteReadCustomBoundsOutOfRangeReverts(bytes,uint256,uint256) (runs: 257, μ: 768083, ~: 673056) +SSTORE2Test:testWriteReadCustomBounds(bytes,uint256,uint256) (runs: 294, μ: 738501, ~: 668146) +SSTORE2Test:testWriteReadCustomBoundsOutOfRangeReverts(bytes,uint256,uint256) (runs: 294, μ: 774005, ~: 673069) SSTORE2Test:testWriteReadCustomStartBound() (gas: 34104) -SSTORE2Test:testWriteReadCustomStartBound(bytes,uint256) (runs: 257, μ: 718800, ~: 670796) -SSTORE2Test:testWriteReadCustomStartBoundOutOfRangeReverts(bytes,uint256) (runs: 257, μ: 792710, ~: 672732) -SSTORE2Test:testWriteReadDeterministic(bytes) (runs: 257, μ: 855273, ~: 736455) +SSTORE2Test:testWriteReadCustomStartBound(bytes,uint256) (runs: 294, μ: 730522, ~: 670904) +SSTORE2Test:testWriteReadCustomStartBoundOutOfRangeReverts(bytes,uint256) (runs: 294, μ: 782147, ~: 672702) +SSTORE2Test:testWriteReadDeterministic(bytes) (runs: 294, μ: 850707, ~: 736524) SSTORE2Test:testWriteReadEmptyBound() (gas: 33847) SSTORE2Test:testWriteReadEmptyOutOfBoundsReverts() (gas: 36507) SSTORE2Test:testWriteReadFullBoundedRead() (gas: 52534) @@ -1087,95 +1089,95 @@ SSTORE2Test:testWriteReadOutOfBoundsReverts() (gas: 36485) SSTORE2Test:testWriteReadOutOfStartBoundReverts() (gas: 36489) SSTORE2Test:testWriteWithTooBigDataReverts() (gas: 97302814) SSTORE2Test:test__codesize() (gas: 8492) -SafeCastLibTest:testSafeCastInt256ToInt(int256,uint256) (runs: 257, μ: 19085, ~: 24957) +SafeCastLibTest:testSafeCastInt256ToInt(int256,uint256) (runs: 294, μ: 19267, ~: 24965) SafeCastLibTest:testSafeCastInt256ToIntBench() (gas: 341694) -SafeCastLibTest:testSafeCastInt256ToIntTrickEquivalence(int256) (runs: 257, μ: 406, ~: 406) -SafeCastLibTest:testSafeCastToInt256(uint256) (runs: 257, μ: 504, ~: 405) -SafeCastLibTest:testSafeCastToUint256(int256) (runs: 257, μ: 1323, ~: 428) -SafeCastLibTest:testSafeCastUint256ToInt(uint256,uint256) (runs: 257, μ: 27200, ~: 26186) +SafeCastLibTest:testSafeCastInt256ToIntTrickEquivalence(int256) (runs: 294, μ: 406, ~: 406) +SafeCastLibTest:testSafeCastToInt256(uint256) (runs: 294, μ: 502, ~: 405) +SafeCastLibTest:testSafeCastToUint256(int256) (runs: 294, μ: 1288, ~: 428) +SafeCastLibTest:testSafeCastUint256ToInt(uint256,uint256) (runs: 294, μ: 27148, ~: 26170) SafeCastLibTest:testSafeCastUint256ToInt256Bench() (gas: 29380) SafeCastLibTest:testSafeCastUint256ToIntBench() (gas: 330222) SafeCastLibTest:testSafeCastUint256ToUintBench() (gas: 326262) -SafeCastLibTest:testSafeCastUintToUint(uint256,uint256) (runs: 257, μ: 19061, ~: 24917) +SafeCastLibTest:testSafeCastUintToUint(uint256,uint256) (runs: 294, μ: 19139, ~: 24927) SafeCastLibTest:test__codesize() (gas: 23270) -SafeTransferLibTest:testApproveWithGarbageReverts(address,uint256) (runs: 257, μ: 111996, ~: 123642) +SafeTransferLibTest:testApproveWithGarbageReverts(address,uint256) (runs: 294, μ: 111319, ~: 123477) SafeTransferLibTest:testApproveWithMissingReturn() (gas: 32065) -SafeTransferLibTest:testApproveWithMissingReturn(address,uint256) (runs: 257, μ: 32207, ~: 32285) +SafeTransferLibTest:testApproveWithMissingReturn(address,uint256) (runs: 294, μ: 32217, ~: 32285) SafeTransferLibTest:testApproveWithNonContract() (gas: 2967) -SafeTransferLibTest:testApproveWithNonContract(address,address,uint256) (runs: 257, μ: 3530, ~: 3613) -SafeTransferLibTest:testApproveWithNonGarbage(address,uint256) (runs: 257, μ: 79351, ~: 59342) +SafeTransferLibTest:testApproveWithNonContract(address,address,uint256) (runs: 294, μ: 3541, ~: 3613) +SafeTransferLibTest:testApproveWithNonGarbage(address,uint256) (runs: 294, μ: 79572, ~: 59342) SafeTransferLibTest:testApproveWithRetry() (gas: 839894) -SafeTransferLibTest:testApproveWithRetry(address,uint256,uint256) (runs: 257, μ: 839830, ~: 840010) +SafeTransferLibTest:testApproveWithRetry(address,uint256,uint256) (runs: 294, μ: 839756, ~: 840010) SafeTransferLibTest:testApproveWithRetryWithNonContract() (gas: 2990) -SafeTransferLibTest:testApproveWithRetryWithNonContract(address,address,uint256) (runs: 257, μ: 3549, ~: 3632) +SafeTransferLibTest:testApproveWithRetryWithNonContract(address,address,uint256) (runs: 294, μ: 3560, ~: 3632) SafeTransferLibTest:testApproveWithReturnsFalseReverts() (gas: 9713) -SafeTransferLibTest:testApproveWithReturnsFalseReverts(address,uint256) (runs: 257, μ: 9866, ~: 9866) +SafeTransferLibTest:testApproveWithReturnsFalseReverts(address,uint256) (runs: 294, μ: 9866, ~: 9866) SafeTransferLibTest:testApproveWithReturnsTooLittleReverts() (gas: 9617) -SafeTransferLibTest:testApproveWithReturnsTooLittleReverts(address,uint256) (runs: 257, μ: 9795, ~: 9795) +SafeTransferLibTest:testApproveWithReturnsTooLittleReverts(address,uint256) (runs: 294, μ: 9795, ~: 9795) SafeTransferLibTest:testApproveWithReturnsTooMuch() (gas: 32511) -SafeTransferLibTest:testApproveWithReturnsTooMuch(address,uint256) (runs: 257, μ: 32591, ~: 32669) -SafeTransferLibTest:testApproveWithReturnsTwoReverts(address,uint256) (runs: 257, μ: 9823, ~: 9823) +SafeTransferLibTest:testApproveWithReturnsTooMuch(address,uint256) (runs: 294, μ: 32601, ~: 32669) +SafeTransferLibTest:testApproveWithReturnsTwoReverts(address,uint256) (runs: 294, μ: 9823, ~: 9823) SafeTransferLibTest:testApproveWithRevertingReverts() (gas: 9574) -SafeTransferLibTest:testApproveWithRevertingReverts(address,uint256) (runs: 257, μ: 9784, ~: 9784) +SafeTransferLibTest:testApproveWithRevertingReverts(address,uint256) (runs: 294, μ: 9784, ~: 9784) SafeTransferLibTest:testApproveWithStandardERC20() (gas: 31951) -SafeTransferLibTest:testApproveWithStandardERC20(address,uint256) (runs: 257, μ: 32095, ~: 32173) +SafeTransferLibTest:testApproveWithStandardERC20(address,uint256) (runs: 294, μ: 32105, ~: 32173) SafeTransferLibTest:testBalanceOfStandardERC20() (gas: 7852) -SafeTransferLibTest:testBalanceOfStandardERC20(address,uint256) (runs: 257, μ: 40347, ~: 40719) +SafeTransferLibTest:testBalanceOfStandardERC20(address,uint256) (runs: 294, μ: 40316, ~: 40719) SafeTransferLibTest:testForceTransferETHToGriever() (gas: 1511587) -SafeTransferLibTest:testForceTransferETHToGriever(uint256,uint256) (runs: 257, μ: 536343, ~: 570885) +SafeTransferLibTest:testForceTransferETHToGriever(uint256,uint256) (runs: 294, μ: 536988, ~: 570885) SafeTransferLibTest:testPermit2() (gas: 89501) -SafeTransferLibTest:testPermit2InvalidAmount(uint256) (runs: 257, μ: 102425, ~: 102489) +SafeTransferLibTest:testPermit2InvalidAmount(uint256) (runs: 294, μ: 102427, ~: 102489) SafeTransferLibTest:testPermit2OnDAI() (gas: 89523) -SafeTransferLibTest:testPermit2TransferFromInvalidAmount(uint256) (runs: 257, μ: 136161, ~: 136448) +SafeTransferLibTest:testPermit2TransferFromInvalidAmount(uint256) (runs: 294, μ: 136203, ~: 136450) SafeTransferLibTest:testSimplePermit2AndPermit2TransferFrom() (gas: 1127105) SafeTransferLibTest:testSimplePermit2AndPermit2TransferFromGas() (gas: 139845) SafeTransferLibTest:testTransferAllETH() (gas: 34643) -SafeTransferLibTest:testTransferAllETH(bytes32) (runs: 257, μ: 57238, ~: 57158) +SafeTransferLibTest:testTransferAllETH(bytes32) (runs: 294, μ: 57237, ~: 57158) SafeTransferLibTest:testTransferAllETHToContractWithoutFallbackReverts() (gas: 10782) -SafeTransferLibTest:testTransferAllETHToContractWithoutFallbackReverts(uint256) (runs: 257, μ: 10869, ~: 10869) +SafeTransferLibTest:testTransferAllETHToContractWithoutFallbackReverts(uint256) (runs: 294, μ: 10869, ~: 10869) SafeTransferLibTest:testTransferAllFromWithStandardERC20() (gas: 33323) -SafeTransferLibTest:testTransferAllFromWithStandardERC20(address,address,uint256) (runs: 257, μ: 57346, ~: 57331) +SafeTransferLibTest:testTransferAllFromWithStandardERC20(address,address,uint256) (runs: 294, μ: 57347, ~: 57332) SafeTransferLibTest:testTransferAllWithStandardERC20() (gas: 30832) -SafeTransferLibTest:testTransferAllWithStandardERC20(address,uint256) (runs: 257, μ: 42560, ~: 42560) +SafeTransferLibTest:testTransferAllWithStandardERC20(address,uint256) (runs: 294, μ: 42560, ~: 42560) SafeTransferLibTest:testTransferETH() (gas: 34622) -SafeTransferLibTest:testTransferETH(bytes32,uint256) (runs: 257, μ: 57462, ~: 57598) +SafeTransferLibTest:testTransferETH(bytes32,uint256) (runs: 294, μ: 57368, ~: 57598) SafeTransferLibTest:testTransferETHToContractWithoutFallbackReverts() (gas: 10851) -SafeTransferLibTest:testTransferETHToContractWithoutFallbackReverts(uint256) (runs: 257, μ: 10766, ~: 10888) -SafeTransferLibTest:testTransferFromWithGarbageReverts(address,address,uint256) (runs: 257, μ: 803243, ~: 702102) +SafeTransferLibTest:testTransferETHToContractWithoutFallbackReverts(uint256) (runs: 294, μ: 10757, ~: 10888) +SafeTransferLibTest:testTransferFromWithGarbageReverts(address,address,uint256) (runs: 294, μ: 788176, ~: 702153) SafeTransferLibTest:testTransferFromWithMissingReturn() (gas: 568086) -SafeTransferLibTest:testTransferFromWithMissingReturn(address,address,uint256) (runs: 257, μ: 692179, ~: 567926) +SafeTransferLibTest:testTransferFromWithMissingReturn(address,address,uint256) (runs: 294, μ: 700241, ~: 567926) SafeTransferLibTest:testTransferFromWithNonContract() (gas: 3066) -SafeTransferLibTest:testTransferFromWithNonContract(address,address,address,uint256) (runs: 257, μ: 3836, ~: 3861) -SafeTransferLibTest:testTransferFromWithNonGarbage(address,address,uint256) (runs: 257, μ: 755131, ~: 618018) +SafeTransferLibTest:testTransferFromWithNonContract(address,address,address,uint256) (runs: 294, μ: 3839, ~: 3861) +SafeTransferLibTest:testTransferFromWithNonGarbage(address,address,uint256) (runs: 294, μ: 735311, ~: 618033) SafeTransferLibTest:testTransferFromWithReturnsFalseReverts() (gas: 533170) -SafeTransferLibTest:testTransferFromWithReturnsFalseReverts(address,address,uint256) (runs: 257, μ: 641625, ~: 533611) +SafeTransferLibTest:testTransferFromWithReturnsFalseReverts(address,address,uint256) (runs: 294, μ: 634842, ~: 533611) SafeTransferLibTest:testTransferFromWithReturnsTooLittleReverts() (gas: 533168) -SafeTransferLibTest:testTransferFromWithReturnsTooLittleReverts(address,address,uint256) (runs: 257, μ: 703720, ~: 533386) +SafeTransferLibTest:testTransferFromWithReturnsTooLittleReverts(address,address,uint256) (runs: 294, μ: 684324, ~: 533386) SafeTransferLibTest:testTransferFromWithReturnsTooMuch() (gas: 568000) -SafeTransferLibTest:testTransferFromWithReturnsTooMuch(address,address,uint256) (runs: 257, μ: 705249, ~: 568472) -SafeTransferLibTest:testTransferFromWithReturnsTwoReverts(address,address,uint256) (runs: 257, μ: 603788, ~: 533491) +SafeTransferLibTest:testTransferFromWithReturnsTooMuch(address,address,uint256) (runs: 294, μ: 702108, ~: 568496) +SafeTransferLibTest:testTransferFromWithReturnsTwoReverts(address,address,uint256) (runs: 294, μ: 637227, ~: 533491) SafeTransferLibTest:testTransferFromWithRevertingReverts() (gas: 526455) -SafeTransferLibTest:testTransferFromWithRevertingReverts(address,address,uint256) (runs: 257, μ: 598640, ~: 526592) +SafeTransferLibTest:testTransferFromWithRevertingReverts(address,address,uint256) (runs: 294, μ: 616495, ~: 526592) SafeTransferLibTest:testTransferFromWithStandardERC20() (gas: 565871) -SafeTransferLibTest:testTransferFromWithStandardERC20(address,address,uint256) (runs: 257, μ: 728464, ~: 565806) -SafeTransferLibTest:testTransferWithGarbageReverts(address,uint256) (runs: 257, μ: 746513, ~: 647553) +SafeTransferLibTest:testTransferFromWithStandardERC20(address,address,uint256) (runs: 294, μ: 715149, ~: 565806) +SafeTransferLibTest:testTransferWithGarbageReverts(address,uint256) (runs: 294, μ: 752749, ~: 647512) SafeTransferLibTest:testTransferWithMissingReturn() (gas: 553732) -SafeTransferLibTest:testTransferWithMissingReturn(address,uint256) (runs: 257, μ: 637884, ~: 554080) +SafeTransferLibTest:testTransferWithMissingReturn(address,uint256) (runs: 294, μ: 633311, ~: 554080) SafeTransferLibTest:testTransferWithNonContract() (gas: 3010) -SafeTransferLibTest:testTransferWithNonContract(bytes32,address,uint256) (runs: 257, μ: 26111, ~: 26180) -SafeTransferLibTest:testTransferWithNonGarbage(address,uint256) (runs: 257, μ: 706126, ~: 581317) +SafeTransferLibTest:testTransferWithNonContract(bytes32,address,uint256) (runs: 294, μ: 26113, ~: 26180) +SafeTransferLibTest:testTransferWithNonGarbage(address,uint256) (runs: 294, μ: 702146, ~: 621628) SafeTransferLibTest:testTransferWithReturnsFalseReverts() (gas: 530240) -SafeTransferLibTest:testTransferWithReturnsFalseReverts(address,uint256) (runs: 257, μ: 576671, ~: 530497) +SafeTransferLibTest:testTransferWithReturnsFalseReverts(address,uint256) (runs: 294, μ: 582664, ~: 530497) SafeTransferLibTest:testTransferWithReturnsTooLittleReverts() (gas: 530427) -SafeTransferLibTest:testTransferWithReturnsTooLittleReverts(address,uint256) (runs: 257, μ: 577804, ~: 530421) +SafeTransferLibTest:testTransferWithReturnsTooLittleReverts(address,uint256) (runs: 294, μ: 589705, ~: 530421) SafeTransferLibTest:testTransferWithReturnsTooMuch() (gas: 554173) -SafeTransferLibTest:testTransferWithReturnsTooMuch(address,uint256) (runs: 257, μ: 709676, ~: 554537) -SafeTransferLibTest:testTransferWithReturnsTwoReverts(address,uint256) (runs: 257, μ: 671003, ~: 530497) +SafeTransferLibTest:testTransferWithReturnsTooMuch(address,uint256) (runs: 294, μ: 700761, ~: 554537) +SafeTransferLibTest:testTransferWithReturnsTwoReverts(address,uint256) (runs: 294, μ: 663596, ~: 530497) SafeTransferLibTest:testTransferWithRevertingReverts() (gas: 530155) -SafeTransferLibTest:testTransferWithRevertingReverts(address,uint256) (runs: 257, μ: 604638, ~: 530433) +SafeTransferLibTest:testTransferWithRevertingReverts(address,uint256) (runs: 294, μ: 600362, ~: 530433) SafeTransferLibTest:testTransferWithStandardERC20() (gas: 554400) -SafeTransferLibTest:testTransferWithStandardERC20(address,uint256) (runs: 257, μ: 610738, ~: 554350) -SafeTransferLibTest:testTrySafeTransferFrom(address,address,uint256) (runs: 257, μ: 109033, ~: 111577) +SafeTransferLibTest:testTransferWithStandardERC20(address,uint256) (runs: 294, μ: 633783, ~: 554350) +SafeTransferLibTest:testTrySafeTransferFrom(address,address,uint256) (runs: 294, μ: 108952, ~: 111577) SafeTransferLibTest:testTryTransferAllETH() (gas: 148698) SafeTransferLibTest:testTryTransferETH() (gas: 148701) SafeTransferLibTest:testTryTransferETHWithNoGrief() (gas: 537025) @@ -1188,7 +1190,7 @@ SignatureCheckerLibTest:testERC6492PreDeploy() (gas: 1227387) SignatureCheckerLibTest:testERC6492WithoutRevertingVerifier() (gas: 61898) SignatureCheckerLibTest:testEmptyCalldataHelpers() (gas: 3987) SignatureCheckerLibTest:testEtchERC6492RevertingVerifier() (gas: 56459) -SignatureCheckerLibTest:testSignatureChecker(bytes32) (runs: 257, μ: 57342, ~: 47024) +SignatureCheckerLibTest:testSignatureChecker(bytes32) (runs: 294, μ: 57544, ~: 58068) SignatureCheckerLibTest:testSignatureCheckerOnEOAWithInvalidSignature() (gas: 21288) SignatureCheckerLibTest:testSignatureCheckerOnEOAWithInvalidSigner() (gas: 30788) SignatureCheckerLibTest:testSignatureCheckerOnEOAWithMatchingSignerAndSignature() (gas: 17685) @@ -1199,8 +1201,8 @@ SignatureCheckerLibTest:testSignatureCheckerOnWalletWithInvalidSigner() (gas: 25 SignatureCheckerLibTest:testSignatureCheckerOnWalletWithMatchingSignerAndSignature() (gas: 64494) SignatureCheckerLibTest:testSignatureCheckerOnWalletWithWrongSignedMessageHash() (gas: 64573) SignatureCheckerLibTest:testSignatureCheckerOnWalletWithZeroAddressSigner() (gas: 12340) -SignatureCheckerLibTest:testToEthSignedMessageHashDifferential(bytes) (runs: 257, μ: 1283, ~: 1284) -SignatureCheckerLibTest:testToEthSignedMessageHashDifferential(bytes32) (runs: 257, μ: 481, ~: 481) +SignatureCheckerLibTest:testToEthSignedMessageHashDifferential(bytes) (runs: 294, μ: 1284, ~: 1284) +SignatureCheckerLibTest:testToEthSignedMessageHashDifferential(bytes32) (runs: 294, μ: 481, ~: 481) SignatureCheckerLibTest:test__codesize() (gas: 15523) SoladyTest:test__codesize() (gas: 840) TestPlus:test__codesize() (gas: 406) @@ -1216,7 +1218,7 @@ UUPSUpgradeableTest:testUpgradeToRevertWithUpgradeFailed() (gas: 18583) UUPSUpgradeableTest:test__codesize() (gas: 6048) UpgradeableBeaconTest:testInitializeUpgradeableSolidityBeacon() (gas: 296434) UpgradeableBeaconTest:testInitializeUpgradeableYulBeacon() (gas: 335455) -UpgradeableBeaconTest:testUpgradeableBeacon(uint256) (runs: 257, μ: 241521, ~: 246260) +UpgradeableBeaconTest:testUpgradeableBeacon(uint256) (runs: 294, μ: 242271, ~: 246415) UpgradeableBeaconTest:testUpgradeableSolidityBeaconOnlyFnSelectorNotRecognised() (gas: 234560) UpgradeableBeaconTest:testUpgradeableSolidityBeaconOnlyOwnerFunctions() (gas: 260458) UpgradeableBeaconTest:testUpgradeableYulBeaconOnlyFnSelectorNotRecognised() (gas: 172796) @@ -1225,12 +1227,12 @@ UpgradeableBeaconTest:test__codesize() (gas: 8808) WETHInvariants:invariantTotalSupplyEqualsBalance() (runs: 10, calls: 150, reverts: 77) WETHInvariants:test__codesize() (gas: 5178) WETHTest:testDeposit() (gas: 62272) -WETHTest:testDeposit(uint256) (runs: 257, μ: 61551, ~: 62566) +WETHTest:testDeposit(uint256) (runs: 294, μ: 61527, ~: 62566) WETHTest:testFallbackDeposit() (gas: 61978) -WETHTest:testFallbackDeposit(uint256) (runs: 257, μ: 61212, ~: 62227) +WETHTest:testFallbackDeposit(uint256) (runs: 294, μ: 61188, ~: 62227) WETHTest:testMetadata() (gas: 9013) WETHTest:testPartialWithdraw() (gas: 70422) WETHTest:testWithdraw() (gas: 52047) -WETHTest:testWithdraw(uint256,uint256) (runs: 257, μ: 70450, ~: 71182) +WETHTest:testWithdraw(uint256,uint256) (runs: 294, μ: 70250, ~: 71182) WETHTest:testWithdrawToContractWithoutReceiveReverts() (gas: 90164) WETHTest:test__codesize() (gas: 9417) \ No newline at end of file diff --git a/src/utils/EfficientHashLib.sol b/src/utils/EfficientHashLib.sol new file mode 100644 index 0000000000..1ba17d98aa --- /dev/null +++ b/src/utils/EfficientHashLib.sol @@ -0,0 +1,150 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.4; + +/// @notice Library for efficiently performing keccak256 hashes. +/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/EfficientHashLib.sol) +library EfficientHashLib { + function hash(bytes32 value0) internal pure returns (bytes32 result) { + /// @solidity memory-safe-assembly + assembly { + mstore(0x00, value0) + result := keccak256(0x00, 0x20) + } + } + + function hash(bytes32 value0, bytes32 value1) internal pure returns (bytes32 result) { + /// @solidity memory-safe-assembly + assembly { + mstore(0x00, value0) + mstore(0x20, value1) + result := keccak256(0x00, 0x40) + } + } + + function hash(bytes32 value0, bytes32 value1, bytes32 value2) + internal + pure + returns (bytes32 result) + { + /// @solidity memory-safe-assembly + assembly { + let m := mload(0x40) + mstore(0x00, value0) + mstore(0x20, value1) + mstore(0x40, value2) + result := keccak256(0x00, 0x60) + mstore(0x40, m) + } + } + + function hash(bytes32 value0, bytes32 value1, bytes32 value2, bytes32 value3) + internal + pure + returns (bytes32 result) + { + /// @solidity memory-safe-assembly + assembly { + let m := mload(0x40) + mstore(0x00, value0) + mstore(0x20, value1) + mstore(0x40, value2) + mstore(0x60, value3) + result := keccak256(0x00, 0x80) + mstore(0x40, m) + mstore(0x60, 0) + } + } + + function hash(bytes32 value0, bytes32 value1, bytes32 value2, bytes32 value3, bytes32 value4) + internal + pure + returns (bytes32 result) + { + /// @solidity memory-safe-assembly + assembly { + let m := mload(0x40) + mstore(m, value0) + mstore(add(m, 0x20), value1) + mstore(add(m, 0x40), value2) + mstore(add(m, 0x60), value3) + mstore(add(m, 0x80), value4) + result := keccak256(m, 0xa0) + } + } + + function hash( + bytes32 value0, + bytes32 value1, + bytes32 value2, + bytes32 value3, + bytes32 value4, + bytes32 value5 + ) internal pure returns (bytes32 result) { + /// @solidity memory-safe-assembly + assembly { + let m := mload(0x40) + mstore(m, value0) + mstore(add(m, 0x20), value1) + mstore(add(m, 0x40), value2) + mstore(add(m, 0x60), value3) + mstore(add(m, 0x80), value4) + mstore(add(m, 0xa0), value5) + result := keccak256(m, 0xc0) + } + } + + function hash( + bytes32 value0, + bytes32 value1, + bytes32 value2, + bytes32 value3, + bytes32 value4, + bytes32 value5, + bytes32 value6 + ) internal pure returns (bytes32 result) { + /// @solidity memory-safe-assembly + assembly { + let m := mload(0x40) + mstore(m, value0) + mstore(add(m, 0x20), value1) + mstore(add(m, 0x40), value2) + mstore(add(m, 0x60), value3) + mstore(add(m, 0x80), value4) + mstore(add(m, 0xa0), value5) + mstore(add(m, 0xc0), value6) + result := keccak256(m, 0xe0) + } + } + + function hash(bytes32[] memory buffer, uint256 n) internal pure returns (bytes32 result) { + /// @solidity memory-safe-assembly + assembly { + result := keccak256(add(buffer, 0x20), shl(5, n)) + } + } + + function set(bytes32[] memory buffer, uint256 i, bytes32 value) internal pure { + /// @solidity memory-safe-assembly + assembly { + mstore(add(add(buffer, 0x20), shl(5, i)), value) + } + } + + function malloc(uint256 n) internal pure returns (bytes32[] memory buffer) { + /// @solidity memory-safe-assembly + assembly { + buffer := mload(0x40) + mstore(buffer, n) + mstore(0x40, add(add(buffer, 0x20), shl(5, n))) + } + } + + function free(bytes32[] memory buffer) internal pure { + /// @solidity memory-safe-assembly + assembly { + if eq(add(add(buffer, 0x20), shl(5, mload(buffer))), mload(0x40)) { + mstore(0x40, buffer) + } + } + } +} diff --git a/test/EfficientHashLib.t.sol b/test/EfficientHashLib.t.sol new file mode 100644 index 0000000000..2ff122245c --- /dev/null +++ b/test/EfficientHashLib.t.sol @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.4; + +import "./utils/SoladyTest.sol"; +import {EfficientHashLib} from "../src/utils/EfficientHashLib.sol"; + +contract EfficientHashLibTest is SoladyTest { + function testEfficientHash(uint256 x) public { + bytes32[] memory a = EfficientHashLib.malloc(8); + _checkMemory(); + unchecked { + for (uint256 i; i < 8; ++i) { + EfficientHashLib.set(a, i, bytes32(x ^ (i << 128))); + } + } + bytes memory encoded = abi.encodePacked(a); + assertEq(EfficientHashLib.hash(a[0]), _hash(encoded, 1)); + assertEq(EfficientHashLib.hash(a, 1), _hash(encoded, 1)); + assertEq(EfficientHashLib.hash(a[0], a[1]), _hash(encoded, 2)); + assertEq(EfficientHashLib.hash(a[0], a[1], a[2]), _hash(encoded, 3)); + assertEq(EfficientHashLib.hash(a[0], a[1], a[2], a[3]), _hash(encoded, 4)); + assertEq(EfficientHashLib.hash(a[0], a[1], a[2], a[3], a[4]), _hash(encoded, 5)); + assertEq(EfficientHashLib.hash(a[0], a[1], a[2], a[3], a[4], a[5]), _hash(encoded, 6)); + assertEq(EfficientHashLib.hash(a[0], a[1], a[2], a[3], a[4], a[5], a[6]), _hash(encoded, 7)); + assertEq(EfficientHashLib.hash(a, 7), _hash(encoded, 7)); + _checkMemory(); + EfficientHashLib.free(a); + _checkMemory(); + } + + function _hash(bytes memory encoded, uint256 n) internal pure returns (bytes32 result) { + assembly { + result := keccak256(add(encoded, 0x20), shl(5, n)) + } + } +}