diff --git a/.gas-snapshot b/.gas-snapshot index ca3fa02b..131b2f3a 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -1,53 +1,53 @@ -AccessControlInvariants:statefulFuzzGetRoleAdmin() (runs: 256, calls: 3840, reverts: 3839) -AccessControlInvariants:statefulFuzzHasRole() (runs: 256, calls: 3840, reverts: 3839) -AccessControlTest:testFuzzGrantRoleAdminRoleSuccess(address) (runs: 256, μ: 44071, ~: 44071) -AccessControlTest:testFuzzGrantRoleMultipleTimesSuccess(address) (runs: 256, μ: 49948, ~: 49948) -AccessControlTest:testFuzzGrantRoleNonAdmin(address,address) (runs: 256, μ: 16545, ~: 16545) -AccessControlTest:testFuzzGrantRoleSuccess(address) (runs: 256, μ: 44137, ~: 44137) -AccessControlTest:testFuzzRenounceRoleMultipleTimesSuccess(address) (runs: 256, μ: 45995, ~: 45980) -AccessControlTest:testFuzzRenounceRoleNonMsgSender(address) (runs: 256, μ: 9556, ~: 9556) -AccessControlTest:testFuzzRenounceRoleSuccess(address) (runs: 256, μ: 41949, ~: 41934) -AccessControlTest:testFuzzRevokeRoleMultipleTimesSuccess(address) (runs: 256, μ: 41722, ~: 41707) -AccessControlTest:testFuzzRevokeRoleNonAdmin(address,address) (runs: 256, μ: 16499, ~: 16499) -AccessControlTest:testFuzzRevokeRoleSuccess(address) (runs: 256, μ: 40565, ~: 40549) -AccessControlTest:testFuzzSetRoleAdminPreviousAdminCallsGrantRole(address,address) (runs: 256, μ: 76066, ~: 76066) -AccessControlTest:testFuzzSetRoleAdminPreviousAdminCallsRevokeRole(address,address) (runs: 256, μ: 101598, ~: 101598) -AccessControlTest:testFuzzSetRoleAdminSuccess(address,address) (runs: 256, μ: 91014, ~: 91014) -AccessControlTest:testGrantRoleAdminRoleSuccess() (gas: 45045) -AccessControlTest:testGrantRoleMultipleTimesSuccess() (gas: 50966) -AccessControlTest:testGrantRoleNonAdmin() (gas: 14999) -AccessControlTest:testGrantRoleSuccess() (gas: 45264) -AccessControlTest:testInitialSetup() (gas: 471093) +AccessControlInvariants:statefulFuzzGetRoleAdmin() (runs: 256, calls: 3840, reverts: 3840) +AccessControlInvariants:statefulFuzzHasRole() (runs: 256, calls: 3840, reverts: 3840) +AccessControlTest:testFuzzGrantRoleAdminRoleSuccess(address) (runs: 257, μ: 44086, ~: 44086) +AccessControlTest:testFuzzGrantRoleMultipleTimesSuccess(address) (runs: 257, μ: 49993, ~: 49993) +AccessControlTest:testFuzzGrantRoleNonAdmin(address,address) (runs: 257, μ: 16763, ~: 16763) +AccessControlTest:testFuzzGrantRoleSuccess(address) (runs: 257, μ: 44152, ~: 44152) +AccessControlTest:testFuzzRenounceRoleMultipleTimesSuccess(address) (runs: 257, μ: 46007, ~: 45992) +AccessControlTest:testFuzzRenounceRoleNonMsgSender(address) (runs: 257, μ: 9774, ~: 9774) +AccessControlTest:testFuzzRenounceRoleSuccess(address) (runs: 257, μ: 41961, ~: 41946) +AccessControlTest:testFuzzRevokeRoleMultipleTimesSuccess(address) (runs: 257, μ: 41770, ~: 41755) +AccessControlTest:testFuzzRevokeRoleNonAdmin(address,address) (runs: 257, μ: 16717, ~: 16717) +AccessControlTest:testFuzzRevokeRoleSuccess(address) (runs: 257, μ: 40600, ~: 40585) +AccessControlTest:testFuzzSetRoleAdminPreviousAdminCallsGrantRole(address,address) (runs: 257, μ: 76299, ~: 76299) +AccessControlTest:testFuzzSetRoleAdminPreviousAdminCallsRevokeRole(address,address) (runs: 257, μ: 101846, ~: 101846) +AccessControlTest:testFuzzSetRoleAdminSuccess(address,address) (runs: 257, μ: 91059, ~: 91059) +AccessControlTest:testGrantRoleAdminRoleSuccess() (gas: 45060) +AccessControlTest:testGrantRoleMultipleTimesSuccess() (gas: 51011) +AccessControlTest:testGrantRoleNonAdmin() (gas: 15217) +AccessControlTest:testGrantRoleSuccess() (gas: 45279) +AccessControlTest:testInitialSetup() (gas: 485845) AccessControlTest:testRenounceRoleAdminRoleSuccess() (gas: 20941) -AccessControlTest:testRenounceRoleMultipleTimesSuccess() (gas: 46830) -AccessControlTest:testRenounceRoleNonMsgSender() (gas: 10644) -AccessControlTest:testRenounceRoleSuccess() (gas: 42856) -AccessControlTest:testRevokeRoleAdminRoleSuccess() (gas: 24976) -AccessControlTest:testRevokeRoleMultipleTimesSuccess() (gas: 42593) -AccessControlTest:testRevokeRoleNonAdmin() (gas: 15087) -AccessControlTest:testRevokeRoleSuccess() (gas: 41436) -AccessControlTest:testSetRoleAdminPreviousAdminCallsGrantRole() (gas: 78663) -AccessControlTest:testSetRoleAdminPreviousAdminCallsRevokeRole() (gas: 104127) -AccessControlTest:testSetRoleAdminSuccess() (gas: 93440) +AccessControlTest:testRenounceRoleMultipleTimesSuccess() (gas: 46842) +AccessControlTest:testRenounceRoleNonMsgSender() (gas: 10862) +AccessControlTest:testRenounceRoleSuccess() (gas: 42868) +AccessControlTest:testRevokeRoleAdminRoleSuccess() (gas: 25209) +AccessControlTest:testRevokeRoleMultipleTimesSuccess() (gas: 42641) +AccessControlTest:testRevokeRoleNonAdmin() (gas: 15305) +AccessControlTest:testRevokeRoleSuccess() (gas: 41472) +AccessControlTest:testSetRoleAdminPreviousAdminCallsGrantRole() (gas: 78896) +AccessControlTest:testSetRoleAdminPreviousAdminCallsRevokeRole() (gas: 104375) +AccessControlTest:testSetRoleAdminSuccess() (gas: 93485) AccessControlTest:testSupportsInterfaceInvalidInterfaceId() (gas: 8378) AccessControlTest:testSupportsInterfaceInvalidInterfaceIdGasCost() (gas: 9211) AccessControlTest:testSupportsInterfaceSuccess() (gas: 9527) AccessControlTest:testSupportsInterfaceSuccessGasCost() (gas: 9167) -Base64Test:testDataLengthMismatch() (gas: 15844) +Base64Test:testDataLengthMismatch() (gas: 16034) Base64Test:testDecodeEmptyString() (gas: 7914) -Base64Test:testDecodeSafeUrl() (gas: 323497) -Base64Test:testDecodeSentence() (gas: 814929) -Base64Test:testDecodeSingleCharacter() (gas: 153799) -Base64Test:testDecodeWithDoublePadding() (gas: 226496) -Base64Test:testDecodeWithNoPadding() (gas: 179505) -Base64Test:testDecodeWithSinglePadding() (gas: 189803) +Base64Test:testDecodeSafeUrl() (gas: 337923) +Base64Test:testDecodeSentence() (gas: 853899) +Base64Test:testDecodeSingleCharacter() (gas: 159523) +Base64Test:testDecodeWithDoublePadding() (gas: 235836) +Base64Test:testDecodeWithNoPadding() (gas: 186431) +Base64Test:testDecodeWithSinglePadding() (gas: 197205) Base64Test:testEncodeEmptyString() (gas: 9100) -Base64Test:testEncodeSafeUrl() (gas: 83255) -Base64Test:testEncodeSentence() (gas: 110711) -Base64Test:testEncodeSingleCharacter() (gas: 65647) -Base64Test:testEncodeWithDoublePadding() (gas: 71290) -Base64Test:testEncodeWithNoPadding() (gas: 70021) -Base64Test:testEncodeWithSinglePadding() (gas: 71393) +Base64Test:testEncodeSafeUrl() (gas: 83941) +Base64Test:testEncodeSentence() (gas: 112247) +Base64Test:testEncodeSingleCharacter() (gas: 65823) +Base64Test:testEncodeWithDoublePadding() (gas: 71636) +Base64Test:testEncodeWithNoPadding() (gas: 70361) +Base64Test:testEncodeWithSinglePadding() (gas: 71739) BatchDistributorInvariants:invariantNoEtherBalance() (runs: 256, calls: 3840, reverts: 3825) BatchDistributorInvariants:invariantNoTokenBalance() (runs: 256, calls: 3840, reverts: 3825) BatchDistributorTest:testDistributeEtherMultipleAddressesSuccess() (gas: 153468) @@ -60,515 +60,515 @@ BatchDistributorTest:testDistributeTokenMultipleAddressesSuccess() (gas: 617661) BatchDistributorTest:testDistributeTokenOneAddressSuccess() (gas: 579248) BatchDistributorTest:testDistributeTokenRevertWithInsufficientAllowance() (gas: 574620) BatchDistributorTest:testDistributeTokenRevertWithInsufficientBalance() (gas: 575406) -BatchDistributorTest:testFuzzDistributeEtherMultipleAddressesSuccess(((address,uint256)[]),uint256) (runs: 256, μ: 1784063, ~: 1658219) -BatchDistributorTest:testFuzzDistributeTokenMultipleAddressesSuccess(((address,uint256)[]),address,uint256) (runs: 256, μ: 1321254, ~: 1295314) +BatchDistributorTest:testFuzzDistributeEtherMultipleAddressesSuccess(((address,uint256)[]),uint256) (runs: 257, μ: 1786322, ~: 1658189) +BatchDistributorTest:testFuzzDistributeTokenMultipleAddressesSuccess(((address,uint256)[]),address,uint256) (runs: 257, μ: 1320613, ~: 1281002) Create2AddressTest:testComputeAddress() (gas: 550587) -Create2AddressTest:testComputeAddressSelf() (gas: 559227) -Create2AddressTest:testFuzzComputeAddress(bytes32,address) (runs: 256, μ: 551182, ~: 551182) -Create2AddressTest:testFuzzComputeAddressSelf(bytes32) (runs: 256, μ: 559248, ~: 559248) -CreateAddressTest:testComputeAddressNonce0x00() (gas: 16533) -CreateAddressTest:testComputeAddressNonce0x7f() (gas: 535250) -CreateAddressTest:testComputeAddressNonceUint16() (gas: 535302) -CreateAddressTest:testComputeAddressNonceUint24() (gas: 535397) -CreateAddressTest:testComputeAddressNonceUint32() (gas: 535359) -CreateAddressTest:testComputeAddressNonceUint40() (gas: 535431) -CreateAddressTest:testComputeAddressNonceUint48() (gas: 535459) -CreateAddressTest:testComputeAddressNonceUint56() (gas: 535487) -CreateAddressTest:testComputeAddressNonceUint64() (gas: 535624) -CreateAddressTest:testComputeAddressNonceUint8() (gas: 535342) -CreateAddressTest:testComputeAddressRevertTooHighNonce() (gas: 10616) -CreateAddressTest:testComputeAddressSelfNonce0x7f() (gas: 539482) -CreateAddressTest:testComputeAddressSelfNonceUint16() (gas: 539703) -CreateAddressTest:testComputeAddressSelfNonceUint24() (gas: 539732) -CreateAddressTest:testComputeAddressSelfNonceUint32() (gas: 539828) -CreateAddressTest:testComputeAddressSelfNonceUint40() (gas: 539857) -CreateAddressTest:testComputeAddressSelfNonceUint48() (gas: 539885) -CreateAddressTest:testComputeAddressSelfNonceUint56() (gas: 539914) -CreateAddressTest:testComputeAddressSelfNonceUint64() (gas: 540031) -CreateAddressTest:testComputeAddressSelfNonceUint8() (gas: 539637) -CreateAddressTest:testComputeAddressSelfRevertTooHighNonce() (gas: 8836) -CreateAddressTest:testFuzzComputeAddressNonce0x7f(uint64,address) (runs: 256, μ: 538237, ~: 538390) -CreateAddressTest:testFuzzComputeAddressNonceUint16(uint64,address) (runs: 256, μ: 537734, ~: 537855) -CreateAddressTest:testFuzzComputeAddressNonceUint24(uint64,address) (runs: 256, μ: 537873, ~: 537981) -CreateAddressTest:testFuzzComputeAddressNonceUint32(uint64,address) (runs: 256, μ: 537854, ~: 537988) -CreateAddressTest:testFuzzComputeAddressNonceUint40(uint64,address) (runs: 256, μ: 537981, ~: 538080) -CreateAddressTest:testFuzzComputeAddressNonceUint48(uint64,address) (runs: 256, μ: 537962, ~: 538064) -CreateAddressTest:testFuzzComputeAddressNonceUint56(uint64,address) (runs: 256, μ: 537983, ~: 538093) -CreateAddressTest:testFuzzComputeAddressNonceUint64(uint64,address) (runs: 256, μ: 537980, ~: 538197) -CreateAddressTest:testFuzzComputeAddressNonceUint8(uint64,address) (runs: 256, μ: 537752, ~: 537855) -CreateAddressTest:testFuzzComputeAddressRevertTooHighNonce(uint256,address) (runs: 256, μ: 12891, ~: 12848) -CreateAddressTest:testFuzzComputeAddressSelfNonce0x7f(uint64) (runs: 256, μ: 544477, ~: 544579) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint16(uint64) (runs: 256, μ: 543693, ~: 543615) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint24(uint64) (runs: 256, μ: 543977, ~: 544069) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint32(uint64) (runs: 256, μ: 544059, ~: 544165) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint40(uint64) (runs: 256, μ: 544067, ~: 544149) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint48(uint64) (runs: 256, μ: 544114, ~: 544223) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint56(uint64) (runs: 256, μ: 544203, ~: 544293) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint64(uint64) (runs: 256, μ: 544266, ~: 544423) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint8(uint64) (runs: 256, μ: 543784, ~: 543860) -CreateAddressTest:testFuzzComputeAddressSelfRevertTooHighNonce(uint256) (runs: 256, μ: 12724, ~: 12684) +Create2AddressTest:testComputeAddressSelf() (gas: 559245) +Create2AddressTest:testFuzzComputeAddress(bytes32,address) (runs: 257, μ: 551182, ~: 551182) +Create2AddressTest:testFuzzComputeAddressSelf(bytes32) (runs: 257, μ: 559266, ~: 559266) +CreateAddressTest:testComputeAddressNonce0x00() (gas: 16539) +CreateAddressTest:testComputeAddressNonce0x7f() (gas: 535256) +CreateAddressTest:testComputeAddressNonceUint16() (gas: 535308) +CreateAddressTest:testComputeAddressNonceUint24() (gas: 535403) +CreateAddressTest:testComputeAddressNonceUint32() (gas: 535365) +CreateAddressTest:testComputeAddressNonceUint40() (gas: 535437) +CreateAddressTest:testComputeAddressNonceUint48() (gas: 535465) +CreateAddressTest:testComputeAddressNonceUint56() (gas: 535493) +CreateAddressTest:testComputeAddressNonceUint64() (gas: 535630) +CreateAddressTest:testComputeAddressNonceUint8() (gas: 535348) +CreateAddressTest:testComputeAddressRevertTooHighNonce() (gas: 10704) +CreateAddressTest:testComputeAddressSelfNonce0x7f() (gas: 539488) +CreateAddressTest:testComputeAddressSelfNonceUint16() (gas: 539709) +CreateAddressTest:testComputeAddressSelfNonceUint24() (gas: 539738) +CreateAddressTest:testComputeAddressSelfNonceUint32() (gas: 539834) +CreateAddressTest:testComputeAddressSelfNonceUint40() (gas: 539863) +CreateAddressTest:testComputeAddressSelfNonceUint48() (gas: 539891) +CreateAddressTest:testComputeAddressSelfNonceUint56() (gas: 539920) +CreateAddressTest:testComputeAddressSelfNonceUint64() (gas: 540037) +CreateAddressTest:testComputeAddressSelfNonceUint8() (gas: 539643) +CreateAddressTest:testComputeAddressSelfRevertTooHighNonce() (gas: 8930) +CreateAddressTest:testFuzzComputeAddressNonce0x7f(uint64,address) (runs: 257, μ: 538245, ~: 538396) +CreateAddressTest:testFuzzComputeAddressNonceUint16(uint64,address) (runs: 257, μ: 537717, ~: 537861) +CreateAddressTest:testFuzzComputeAddressNonceUint24(uint64,address) (runs: 257, μ: 537870, ~: 537987) +CreateAddressTest:testFuzzComputeAddressNonceUint32(uint64,address) (runs: 257, μ: 537851, ~: 537994) +CreateAddressTest:testFuzzComputeAddressNonceUint40(uint64,address) (runs: 257, μ: 537982, ~: 538086) +CreateAddressTest:testFuzzComputeAddressNonceUint48(uint64,address) (runs: 257, μ: 537966, ~: 538070) +CreateAddressTest:testFuzzComputeAddressNonceUint56(uint64,address) (runs: 257, μ: 537987, ~: 538099) +CreateAddressTest:testFuzzComputeAddressNonceUint64(uint64,address) (runs: 257, μ: 537991, ~: 538203) +CreateAddressTest:testFuzzComputeAddressNonceUint8(uint64,address) (runs: 257, μ: 537762, ~: 537861) +CreateAddressTest:testFuzzComputeAddressRevertTooHighNonce(uint256,address) (runs: 257, μ: 12961, ~: 12936) +CreateAddressTest:testFuzzComputeAddressSelfNonce0x7f(uint64) (runs: 257, μ: 544478, ~: 544585) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint16(uint64) (runs: 257, μ: 543720, ~: 543874) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint24(uint64) (runs: 257, μ: 543979, ~: 544075) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint32(uint64) (runs: 257, μ: 544065, ~: 544171) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint40(uint64) (runs: 257, μ: 544074, ~: 544155) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint48(uint64) (runs: 257, μ: 544116, ~: 544229) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint56(uint64) (runs: 257, μ: 544208, ~: 544299) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint64(uint64) (runs: 257, μ: 544261, ~: 544429) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint8(uint64) (runs: 257, μ: 543793, ~: 543866) +CreateAddressTest:testFuzzComputeAddressSelfRevertTooHighNonce(uint256) (runs: 257, μ: 12809, ~: 12778) ECDSATest:testEthSignedMessageHash() (gas: 8735) -ECDSATest:testFuzzEthSignedMessageHash(string) (runs: 256, μ: 9321, ~: 9315) -ECDSATest:testFuzzRecoverWithInvalidSignature(bytes,string) (runs: 256, μ: 15516, ~: 15518) +ECDSATest:testFuzzEthSignedMessageHash(string) (runs: 257, μ: 9321, ~: 9315) +ECDSATest:testFuzzRecoverWithInvalidSignature(bytes,string) (runs: 257, μ: 15522, ~: 15524) ECDSATest:testFuzzRecoverWithTooLongSignature(bytes,string) (runs: 256, μ: 13999, ~: 14002) -ECDSATest:testFuzzRecoverWithValidSignature(string,string) (runs: 256, μ: 22416, ~: 22477) -ECDSATest:testFuzzRecoverWithWrongMessage(string,string,bytes32) (runs: 256, μ: 22437, ~: 22493) -ECDSATest:testFuzzToDataWithIntendedValidatorHash(address,bytes) (runs: 256, μ: 10188, ~: 10173) -ECDSATest:testFuzzToDataWithIntendedValidatorHashSelf(bytes) (runs: 256, μ: 12216, ~: 12199) -ECDSATest:testFuzzToTypedDataHash(string,string) (runs: 256, μ: 9939, ~: 9940) -ECDSATest:testRecoverWith0x00Value() (gas: 15622) -ECDSATest:testRecoverWithArbitraryMessage() (gas: 21344) -ECDSATest:testRecoverWithCorrectVersion() (gas: 22086) -ECDSATest:testRecoverWithInvalidSignature() (gas: 15211) -ECDSATest:testRecoverWithTooHighSValue() (gas: 16537) +ECDSATest:testFuzzRecoverWithValidSignature(string,string) (runs: 257, μ: 22430, ~: 22492) +ECDSATest:testFuzzRecoverWithWrongMessage(string,string,bytes32) (runs: 257, μ: 22451, ~: 22508) +ECDSATest:testFuzzToDataWithIntendedValidatorHash(address,bytes) (runs: 257, μ: 10188, ~: 10173) +ECDSATest:testFuzzToDataWithIntendedValidatorHashSelf(bytes) (runs: 257, μ: 12216, ~: 12199) +ECDSATest:testFuzzToTypedDataHash(string,string) (runs: 257, μ: 9939, ~: 9940) +ECDSATest:testRecoverWith0x00Value() (gas: 15713) +ECDSATest:testRecoverWithArbitraryMessage() (gas: 21359) +ECDSATest:testRecoverWithCorrectVersion() (gas: 22101) +ECDSATest:testRecoverWithInvalidSignature() (gas: 15302) +ECDSATest:testRecoverWithTooHighSValue() (gas: 16749) ECDSATest:testRecoverWithTooLongSignature() (gas: 13109) -ECDSATest:testRecoverWithTooShortSignature() (gas: 14304) -ECDSATest:testRecoverWithValidSignature() (gas: 21337) -ECDSATest:testRecoverWithWrongMessage() (gas: 21414) -ECDSATest:testRecoverWithWrongVersion() (gas: 15651) +ECDSATest:testRecoverWithTooShortSignature() (gas: 14310) +ECDSATest:testRecoverWithValidSignature() (gas: 21352) +ECDSATest:testRecoverWithWrongMessage() (gas: 21429) +ECDSATest:testRecoverWithWrongVersion() (gas: 15742) ECDSATest:testToDataWithIntendedValidatorHash() (gas: 11982) ECDSATest:testToDataWithIntendedValidatorHashSelf() (gas: 12371) ECDSATest:testToTypedDataHash() (gas: 8826) EIP712DomainSeparatorTest:testCachedDomainSeparatorV4() (gas: 10440) EIP712DomainSeparatorTest:testDomainSeparatorV4() (gas: 11715) EIP712DomainSeparatorTest:testEIP712Domain() (gas: 18648) -EIP712DomainSeparatorTest:testFuzzDomainSeparatorV4(uint8) (runs: 256, μ: 11870, ~: 11890) -EIP712DomainSeparatorTest:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 256, μ: 22030, ~: 22034) -EIP712DomainSeparatorTest:testFuzzHashTypedDataV4(address,address,uint256,uint256,uint64) (runs: 256, μ: 10577, ~: 10577) +EIP712DomainSeparatorTest:testFuzzDomainSeparatorV4(uint8) (runs: 257, μ: 11870, ~: 11890) +EIP712DomainSeparatorTest:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 257, μ: 22031, ~: 22053) +EIP712DomainSeparatorTest:testFuzzHashTypedDataV4(address,address,uint256,uint256,uint64) (runs: 257, μ: 10577, ~: 10577) EIP712DomainSeparatorTest:testHashTypedDataV4() (gas: 13523) ERC1155Invariants:invariantOwner() (runs: 256, calls: 3840, reverts: 3429) -ERC1155Test:testBalanceOfBatchCase1() (gas: 281340) -ERC1155Test:testBalanceOfBatchCase2() (gas: 235910) -ERC1155Test:testBalanceOfBatchCase3() (gas: 38322) -ERC1155Test:testBalanceOfBatchLengthsMismatch() (gas: 26717) -ERC1155Test:testBalanceOfBatchZeroAddress() (gas: 17875) -ERC1155Test:testBalanceOfCase1() (gas: 146733) -ERC1155Test:testBalanceOfCase2() (gas: 22617) -ERC1155Test:testBalanceOfZeroAddress() (gas: 11061) -ERC1155Test:testBurnAmountExceedsBalance() (gas: 129937) -ERC1155Test:testBurnBatchAmountExceedsBalance() (gas: 197353) -ERC1155Test:testBurnBatchByApprovedOperator() (gas: 251644) -ERC1155Test:testBurnBatchByNotApprovedOperator() (gas: 31836) -ERC1155Test:testBurnBatchFromZeroAddress() (gas: 25983) -ERC1155Test:testBurnBatchLengthsMismatch() (gas: 41694) -ERC1155Test:testBurnBatchNonExistentTokenIds() (gas: 28292) -ERC1155Test:testBurnBatchSuccess() (gas: 216328) -ERC1155Test:testBurnByApprovedOperator() (gas: 199118) -ERC1155Test:testBurnByNotApprovedOperator() (gas: 148345) -ERC1155Test:testBurnFromZeroAddress() (gas: 17362) -ERC1155Test:testBurnNonExistentTokenId() (gas: 21540) -ERC1155Test:testBurnSuccess() (gas: 143251) -ERC1155Test:testExistsAfterBatchBurn() (gas: 132403) +ERC1155Test:testBalanceOfBatchCase1() (gas: 281522) +ERC1155Test:testBalanceOfBatchCase2() (gas: 236092) +ERC1155Test:testBalanceOfBatchCase3() (gas: 38352) +ERC1155Test:testBalanceOfBatchLengthsMismatch() (gas: 27223) +ERC1155Test:testBalanceOfBatchZeroAddress() (gas: 18108) +ERC1155Test:testBalanceOfCase1() (gas: 146854) +ERC1155Test:testBalanceOfCase2() (gas: 22662) +ERC1155Test:testBalanceOfZeroAddress() (gas: 11279) +ERC1155Test:testBurnAmountExceedsBalance() (gas: 130253) +ERC1155Test:testBurnBatchAmountExceedsBalance() (gas: 197556) +ERC1155Test:testBurnBatchByApprovedOperator() (gas: 251793) +ERC1155Test:testBurnBatchByNotApprovedOperator() (gas: 32151) +ERC1155Test:testBurnBatchFromZeroAddress() (gas: 26237) +ERC1155Test:testBurnBatchLengthsMismatch() (gas: 42202) +ERC1155Test:testBurnBatchNonExistentTokenIds() (gas: 28546) +ERC1155Test:testBurnBatchSuccess() (gas: 216417) +ERC1155Test:testBurnByApprovedOperator() (gas: 199306) +ERC1155Test:testBurnByNotApprovedOperator() (gas: 148698) +ERC1155Test:testBurnFromZeroAddress() (gas: 17602) +ERC1155Test:testBurnNonExistentTokenId() (gas: 21780) +ERC1155Test:testBurnSuccess() (gas: 143394) +ERC1155Test:testExistsAfterBatchBurn() (gas: 132444) ERC1155Test:testExistsAfterBatchMint() (gas: 143983) -ERC1155Test:testExistsAfterSingleBurn() (gas: 138439) -ERC1155Test:testExistsAfterSingleMint() (gas: 119687) +ERC1155Test:testExistsAfterSingleBurn() (gas: 138552) +ERC1155Test:testExistsAfterSingleMint() (gas: 119763) ERC1155Test:testExistsBeforeMint() (gas: 10481) -ERC1155Test:testFuzzBurnBatchSuccess(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 133538, ~: 133544) -ERC1155Test:testFuzzBurnSuccess(address,address,uint256) (runs: 256, μ: 141208, ~: 141218) -ERC1155Test:testFuzzRenounceOwnershipNonOwner(address) (runs: 256, μ: 13977, ~: 13977) -ERC1155Test:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 48746, ~: 48730) -ERC1155Test:testFuzzSafeBatchTransferFromByApprovedOperator(address,address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 227426, ~: 227398) -ERC1155Test:testFuzzSafeBatchTransferFromEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 191806, ~: 191771) -ERC1155Test:testFuzzSafeBatchTransferFromNoData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 565631, ~: 565631) -ERC1155Test:testFuzzSafeBatchTransferFromWithData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 566202, ~: 565788) -ERC1155Test:testFuzzSafeMintBatchEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 153733, ~: 153735) -ERC1155Test:testFuzzSafeMintBatchNoData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 521444, ~: 521464) -ERC1155Test:testFuzzSafeMintBatchNonMinter(address) (runs: 256, μ: 40926, ~: 40926) -ERC1155Test:testFuzzSafeMintBatchWithData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 521783, ~: 521579) -ERC1155Test:testFuzzSafeMintEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 152769, ~: 152741) -ERC1155Test:testFuzzSafeMintNoData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 521580, ~: 521600) -ERC1155Test:testFuzzSafeMintNonMinter(address) (runs: 256, μ: 33086, ~: 33086) -ERC1155Test:testFuzzSafeMintWithData(address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 522904, ~: 522470) -ERC1155Test:testFuzzSafeTransferFromByApprovedOperator(address,address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 206398, ~: 206361) -ERC1155Test:testFuzzSafeTransferFromEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 170863, ~: 170821) -ERC1155Test:testFuzzSafeTransferFromNoData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 610029, ~: 610029) -ERC1155Test:testFuzzSafeTransferFromWithData(address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 612089, ~: 611291) -ERC1155Test:testFuzzSetApprovalForAllRevoke(address,address) (runs: 256, μ: 31974, ~: 31945) -ERC1155Test:testFuzzSetApprovalForAllSuccess(address,address) (runs: 256, μ: 45332, ~: 45332) -ERC1155Test:testFuzzSetMinterNonOwner(address,string) (runs: 256, μ: 15773, ~: 15772) -ERC1155Test:testFuzzSetMinterSuccess(string) (runs: 256, μ: 33755, ~: 33755) -ERC1155Test:testFuzzSetUriNonMinter(address) (runs: 256, μ: 14455, ~: 14455) -ERC1155Test:testFuzzTotalSupplyAfterBatchBurn(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 126988, ~: 126993) -ERC1155Test:testFuzzTotalSupplyAfterBatchMint(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 141752, ~: 141697) -ERC1155Test:testFuzzTotalSupplyAfterSingleBurn(address,uint256,bytes) (runs: 256, μ: 138381, ~: 138353) -ERC1155Test:testFuzzTotalSupplyAfterSingleMint(uint256,uint256,bytes) (runs: 256, μ: 89667, ~: 60593) -ERC1155Test:testFuzzTransferOwnershipNonOwner(address,address) (runs: 256, μ: 14086, ~: 14086) -ERC1155Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 256, μ: 75733, ~: 75706) +ERC1155Test:testFuzzBurnBatchSuccess(address,uint256,uint256,uint256,uint256) (runs: 257, μ: 133612, ~: 133610) +ERC1155Test:testFuzzBurnSuccess(address,address,uint256) (runs: 257, μ: 141351, ~: 141361) +ERC1155Test:testFuzzRenounceOwnershipNonOwner(address) (runs: 257, μ: 14072, ~: 14072) +ERC1155Test:testFuzzRenounceOwnershipSuccess(address) (runs: 257, μ: 48765, ~: 48749) +ERC1155Test:testFuzzSafeBatchTransferFromByApprovedOperator(address,address,address,uint256,uint256,uint256,uint256,bytes) (runs: 257, μ: 227521, ~: 227503) +ERC1155Test:testFuzzSafeBatchTransferFromEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 257, μ: 191856, ~: 191831) +ERC1155Test:testFuzzSafeBatchTransferFromNoData(address,uint256,uint256,uint256,uint256) (runs: 257, μ: 565661, ~: 565691) +ERC1155Test:testFuzzSafeBatchTransferFromWithData(address,uint256,uint256,uint256,uint256) (runs: 257, μ: 566256, ~: 565848) +ERC1155Test:testFuzzSafeMintBatchEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 257, μ: 153753, ~: 153765) +ERC1155Test:testFuzzSafeMintBatchNoData(address,uint256,uint256,uint256,uint256) (runs: 257, μ: 521494, ~: 521494) +ERC1155Test:testFuzzSafeMintBatchNonMinter(address) (runs: 257, μ: 41062, ~: 41062) +ERC1155Test:testFuzzSafeMintBatchWithData(address,uint256,uint256,uint256,uint256) (runs: 257, μ: 521824, ~: 521609) +ERC1155Test:testFuzzSafeMintEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 257, μ: 152854, ~: 152845) +ERC1155Test:testFuzzSafeMintNoData(address,uint256,uint256,uint256,uint256) (runs: 257, μ: 521696, ~: 521706) +ERC1155Test:testFuzzSafeMintNonMinter(address) (runs: 257, μ: 33388, ~: 33388) +ERC1155Test:testFuzzSafeMintWithData(address,uint256,uint256,uint256,uint256,bytes) (runs: 257, μ: 523007, ~: 522574) +ERC1155Test:testFuzzSafeTransferFromByApprovedOperator(address,address,address,uint256,uint256,uint256,uint256,bytes) (runs: 257, μ: 206616, ~: 206578) +ERC1155Test:testFuzzSafeTransferFromEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 257, μ: 171026, ~: 170993) +ERC1155Test:testFuzzSafeTransferFromNoData(address,uint256,uint256,uint256,uint256) (runs: 257, μ: 610344, ~: 610344) +ERC1155Test:testFuzzSafeTransferFromWithData(address,uint256,uint256,uint256,uint256,bytes) (runs: 257, μ: 612416, ~: 611606) +ERC1155Test:testFuzzSetApprovalForAllRevoke(address,address) (runs: 257, μ: 31998, ~: 31969) +ERC1155Test:testFuzzSetApprovalForAllSuccess(address,address) (runs: 257, μ: 45362, ~: 45362) +ERC1155Test:testFuzzSetMinterNonOwner(address,string) (runs: 257, μ: 15868, ~: 15940) +ERC1155Test:testFuzzSetMinterSuccess(string) (runs: 257, μ: 33774, ~: 33774) +ERC1155Test:testFuzzSetUriNonMinter(address) (runs: 257, μ: 14551, ~: 14551) +ERC1155Test:testFuzzTotalSupplyAfterBatchBurn(address,uint256,uint256,uint256,uint256) (runs: 257, μ: 127037, ~: 127036) +ERC1155Test:testFuzzTotalSupplyAfterBatchMint(address,uint256,uint256,uint256,uint256) (runs: 257, μ: 141754, ~: 141697) +ERC1155Test:testFuzzTotalSupplyAfterSingleBurn(address,uint256,bytes) (runs: 257, μ: 138493, ~: 138464) +ERC1155Test:testFuzzTotalSupplyAfterSingleMint(uint256,uint256,bytes) (runs: 257, μ: 90093, ~: 60719) +ERC1155Test:testFuzzTransferOwnershipNonOwner(address,address) (runs: 257, μ: 14181, ~: 14181) +ERC1155Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 257, μ: 75753, ~: 75725) ERC1155Test:testHasOwner() (gas: 12615) -ERC1155Test:testInitialSetup() (gas: 2799169) -ERC1155Test:testRenounceOwnershipNonOwner() (gas: 10918) -ERC1155Test:testRenounceOwnershipSuccess() (gas: 22915) -ERC1155Test:testSafeBatchTransferFromByApprovedOperator() (gas: 342147) -ERC1155Test:testSafeBatchTransferFromByNotApprovedOperator() (gas: 261057) -ERC1155Test:testSafeBatchTransferFromEOAReceiver() (gas: 298206) -ERC1155Test:testSafeBatchTransferFromInsufficientBalance() (gas: 267873) -ERC1155Test:testSafeBatchTransferFromLengthsMismatch() (gas: 64116) -ERC1155Test:testSafeBatchTransferFromNoData() (gas: 674269) +ERC1155Test:testInitialSetup() (gas: 3013335) +ERC1155Test:testRenounceOwnershipNonOwner() (gas: 11013) +ERC1155Test:testRenounceOwnershipSuccess() (gas: 22927) +ERC1155Test:testSafeBatchTransferFromByApprovedOperator() (gas: 342342) +ERC1155Test:testSafeBatchTransferFromByNotApprovedOperator() (gas: 261328) +ERC1155Test:testSafeBatchTransferFromEOAReceiver() (gas: 298326) +ERC1155Test:testSafeBatchTransferFromInsufficientBalance() (gas: 268076) +ERC1155Test:testSafeBatchTransferFromLengthsMismatch() (gas: 64522) +ERC1155Test:testSafeBatchTransferFromNoData() (gas: 674389) ERC1155Test:testSafeBatchTransferFromReceiverFunctionNotImplemented() (gas: 280997) -ERC1155Test:testSafeBatchTransferFromReceiverInvalidReturnIdentifier() (gas: 649199) +ERC1155Test:testSafeBatchTransferFromReceiverInvalidReturnIdentifier() (gas: 649402) ERC1155Test:testSafeBatchTransferFromReceiverReverts() (gas: 642559) -ERC1155Test:testSafeBatchTransferFromReceiverRevertsOnlySingle() (gas: 674332) -ERC1155Test:testSafeBatchTransferFromToZeroAddress() (gas: 257753) -ERC1155Test:testSafeBatchTransferFromWithData() (gas: 676038) -ERC1155Test:testSafeMintBatchEOAReceiver() (gas: 249613) -ERC1155Test:testSafeMintBatchLengthsMismatch() (gas: 66500) -ERC1155Test:testSafeMintBatchNoData() (gas: 618820) -ERC1155Test:testSafeMintBatchNonMinter() (gas: 39827) +ERC1155Test:testSafeBatchTransferFromReceiverRevertsOnlySingle() (gas: 674452) +ERC1155Test:testSafeBatchTransferFromToZeroAddress() (gas: 257956) +ERC1155Test:testSafeBatchTransferFromWithData() (gas: 676158) +ERC1155Test:testSafeMintBatchEOAReceiver() (gas: 249673) +ERC1155Test:testSafeMintBatchLengthsMismatch() (gas: 66906) +ERC1155Test:testSafeMintBatchNoData() (gas: 618880) +ERC1155Test:testSafeMintBatchNonMinter() (gas: 39963) ERC1155Test:testSafeMintBatchOverflow() (gas: 265262) ERC1155Test:testSafeMintBatchReceiverFunctionNotImplemented() (gas: 226871) -ERC1155Test:testSafeMintBatchReceiverInvalidReturnIdentifier() (gas: 599182) +ERC1155Test:testSafeMintBatchReceiverInvalidReturnIdentifier() (gas: 599385) ERC1155Test:testSafeMintBatchReceiverReverts() (gas: 592518) -ERC1155Test:testSafeMintBatchReceiverRevertsOnlySingle() (gas: 618797) -ERC1155Test:testSafeMintBatchToZeroAddress() (gas: 40894) -ERC1155Test:testSafeMintBatchWithData() (gas: 619670) -ERC1155Test:testSafeMintEOAReceiver() (gas: 149958) -ERC1155Test:testSafeMintNoData() (gas: 518170) -ERC1155Test:testSafeMintNonMinter() (gas: 32033) -ERC1155Test:testSafeMintOverflow() (gas: 92058) -ERC1155Test:testSafeMintReceiverFunctionNotImplemented() (gas: 136302) -ERC1155Test:testSafeMintReceiverInvalidReturnIdentifier() (gas: 508102) -ERC1155Test:testSafeMintReceiverReverts() (gas: 501861) -ERC1155Test:testSafeMintToZeroAddress() (gas: 33018) -ERC1155Test:testSafeMintWithData() (gas: 519971) -ERC1155Test:testSafeTransferFromByApprovedOperator() (gas: 206858) -ERC1155Test:testSafeTransferFromByNotApprovedOperator() (gas: 150934) -ERC1155Test:testSafeTransferFromEOAReceiver() (gas: 170079) -ERC1155Test:testSafeTransferFromInsufficientBalance() (gas: 89854) -ERC1155Test:testSafeTransferFromNoData() (gas: 607810) -ERC1155Test:testSafeTransferFromReceiverFunctionNotImplemented() (gas: 206150) -ERC1155Test:testSafeTransferFromReceiverInvalidReturnIdentifier() (gas: 577985) -ERC1155Test:testSafeTransferFromReceiverReverts() (gas: 571701) -ERC1155Test:testSafeTransferFromToZeroAddress() (gas: 87462) -ERC1155Test:testSafeTransferFromWithData() (gas: 611239) -ERC1155Test:testSetApprovalForAllRevoke() (gas: 34196) -ERC1155Test:testSetApprovalForAllSuccess() (gas: 48050) -ERC1155Test:testSetApprovalForAllToSelf() (gas: 11116) -ERC1155Test:testSetMinterNonOwner() (gas: 12717) -ERC1155Test:testSetMinterRemoveOwnerAddress() (gas: 13770) -ERC1155Test:testSetMinterSuccess() (gas: 33587) -ERC1155Test:testSetMinterToZeroAddress() (gas: 15768) +ERC1155Test:testSafeMintBatchReceiverRevertsOnlySingle() (gas: 618857) +ERC1155Test:testSafeMintBatchToZeroAddress() (gas: 41097) +ERC1155Test:testSafeMintBatchWithData() (gas: 619730) +ERC1155Test:testSafeMintEOAReceiver() (gas: 150064) +ERC1155Test:testSafeMintNoData() (gas: 518276) +ERC1155Test:testSafeMintNonMinter() (gas: 32335) +ERC1155Test:testSafeMintOverflow() (gas: 92134) +ERC1155Test:testSafeMintReceiverFunctionNotImplemented() (gas: 136378) +ERC1155Test:testSafeMintReceiverInvalidReturnIdentifier() (gas: 508584) +ERC1155Test:testSafeMintReceiverReverts() (gas: 501937) +ERC1155Test:testSafeMintToZeroAddress() (gas: 33500) +ERC1155Test:testSafeMintWithData() (gas: 520077) +ERC1155Test:testSafeTransferFromByApprovedOperator() (gas: 207076) +ERC1155Test:testSafeTransferFromByNotApprovedOperator() (gas: 151289) +ERC1155Test:testSafeTransferFromEOAReceiver() (gas: 170252) +ERC1155Test:testSafeTransferFromInsufficientBalance() (gas: 90132) +ERC1155Test:testSafeTransferFromNoData() (gas: 608125) +ERC1155Test:testSafeTransferFromReceiverFunctionNotImplemented() (gas: 206315) +ERC1155Test:testSafeTransferFromReceiverInvalidReturnIdentifier() (gas: 578556) +ERC1155Test:testSafeTransferFromReceiverReverts() (gas: 571866) +ERC1155Test:testSafeTransferFromToZeroAddress() (gas: 87740) +ERC1155Test:testSafeTransferFromWithData() (gas: 611554) +ERC1155Test:testSetApprovalForAllRevoke() (gas: 34220) +ERC1155Test:testSetApprovalForAllSuccess() (gas: 48080) +ERC1155Test:testSetApprovalForAllToSelf() (gas: 11334) +ERC1155Test:testSetMinterNonOwner() (gas: 12812) +ERC1155Test:testSetMinterRemoveOwnerAddress() (gas: 14000) +ERC1155Test:testSetMinterSuccess() (gas: 33606) +ERC1155Test:testSetMinterToZeroAddress() (gas: 15998) ERC1155Test:testSetUri() (gas: 69238) ERC1155Test:testSetUriEmpty() (gas: 27508) -ERC1155Test:testSetUriNonMinter() (gas: 13459) +ERC1155Test:testSetUriNonMinter() (gas: 13555) ERC1155Test:testSupportsInterfaceInvalidInterfaceId() (gas: 8402) ERC1155Test:testSupportsInterfaceInvalidInterfaceIdGasCost() (gas: 9280) ERC1155Test:testSupportsInterfaceSuccess() (gas: 10924) ERC1155Test:testSupportsInterfaceSuccessGasCost() (gas: 9387) -ERC1155Test:testTotalSupplyAfterBatchBurn() (gas: 132372) +ERC1155Test:testTotalSupplyAfterBatchBurn() (gas: 132412) ERC1155Test:testTotalSupplyAfterBatchMint() (gas: 143944) -ERC1155Test:testTotalSupplyAfterSingleBurn() (gas: 135264) -ERC1155Test:testTotalSupplyAfterSingleMint() (gas: 119631) +ERC1155Test:testTotalSupplyAfterSingleBurn() (gas: 135377) +ERC1155Test:testTotalSupplyAfterSingleMint() (gas: 119707) ERC1155Test:testTotalSupplyBeforeMint() (gas: 10460) -ERC1155Test:testTransferOwnershipNonOwner() (gas: 12652) -ERC1155Test:testTransferOwnershipSuccess() (gas: 54040) -ERC1155Test:testTransferOwnershipToZeroAddress() (gas: 15672) -ERC1155Test:testUriBaseAndTokenUriNotSet() (gas: 2754895) +ERC1155Test:testTransferOwnershipNonOwner() (gas: 12747) +ERC1155Test:testTransferOwnershipSuccess() (gas: 54052) +ERC1155Test:testTransferOwnershipToZeroAddress() (gas: 15902) +ERC1155Test:testUriBaseAndTokenUriNotSet() (gas: 2969060) ERC1155Test:testUriBaseAndTokenUriSet() (gas: 65810) -ERC1155Test:testUriNoBaseURI() (gas: 2804957) +ERC1155Test:testUriNoBaseURI() (gas: 3019122) ERC1155Test:testUriNoTokenUri() (gas: 20507) -ERC20Invariants:invariantOwner() (runs: 256, calls: 3840, reverts: 3387) -ERC20Invariants:invariantTotalSupply() (runs: 256, calls: 3840, reverts: 3387) -ERC20Test:testApproveExceedingBalanceCase1() (gas: 40968) -ERC20Test:testApproveExceedingBalanceCase2() (gas: 47974) -ERC20Test:testApproveFromZeroAddress() (gas: 13220) -ERC20Test:testApproveSuccessCase1() (gas: 43671) -ERC20Test:testApproveSuccessCase2() (gas: 50759) -ERC20Test:testApproveToZeroAddress() (gas: 16513) +ERC20Invariants:invariantOwner() (runs: 256, calls: 3840, reverts: 3385) +ERC20Invariants:invariantTotalSupply() (runs: 256, calls: 3840, reverts: 3385) +ERC20Test:testApproveExceedingBalanceCase1() (gas: 40983) +ERC20Test:testApproveExceedingBalanceCase2() (gas: 48004) +ERC20Test:testApproveFromZeroAddress() (gas: 13438) +ERC20Test:testApproveSuccessCase1() (gas: 43686) +ERC20Test:testApproveSuccessCase2() (gas: 50789) +ERC20Test:testApproveToZeroAddress() (gas: 16731) ERC20Test:testBalanceOf() (gas: 18668) -ERC20Test:testBurnFromExceedingBalance() (gas: 31146) -ERC20Test:testBurnFromFromZeroAddress() (gas: 15581) -ERC20Test:testBurnFromInsufficientAllowanceCase1() (gas: 41615) -ERC20Test:testBurnFromInsufficientAllowanceCase2() (gas: 41646) -ERC20Test:testBurnFromSuccessCase1() (gas: 40267) -ERC20Test:testBurnFromSuccessCase2() (gas: 65820) -ERC20Test:testBurnFromUnlimitedAllowance() (gas: 50620) -ERC20Test:testBurnFromZeroAddress() (gas: 11324) -ERC20Test:testBurnInvalidAmount() (gas: 14500) +ERC20Test:testBurnFromExceedingBalance() (gas: 31343) +ERC20Test:testBurnFromFromZeroAddress() (gas: 15812) +ERC20Test:testBurnFromInsufficientAllowanceCase1() (gas: 41740) +ERC20Test:testBurnFromInsufficientAllowanceCase2() (gas: 41771) +ERC20Test:testBurnFromSuccessCase1() (gas: 40310) +ERC20Test:testBurnFromSuccessCase2() (gas: 65863) +ERC20Test:testBurnFromUnlimitedAllowance() (gas: 50663) +ERC20Test:testBurnFromZeroAddress() (gas: 11542) +ERC20Test:testBurnInvalidAmount() (gas: 14718) ERC20Test:testBurnSuccessCase1() (gas: 25797) ERC20Test:testBurnSuccessCase2() (gas: 31362) ERC20Test:testCachedDomainSeparator() (gas: 10588) ERC20Test:testDomainSeparator() (gas: 11838) ERC20Test:testEIP712Domain() (gas: 18802) -ERC20Test:testFuzzApproveSuccess(address,uint256) (runs: 256, μ: 40332, ~: 41188) -ERC20Test:testFuzzBurnFromInsufficientAllowance(address,uint256,uint8) (runs: 256, μ: 207267, ~: 207396) -ERC20Test:testFuzzBurnFromSuccess(address,uint256) (runs: 256, μ: 340861, ~: 341736) -ERC20Test:testFuzzBurnInvalidAmount(address,uint256) (runs: 256, μ: 16455, ~: 16455) -ERC20Test:testFuzzBurnSuccessCase(uint256) (runs: 256, μ: 316122, ~: 315924) -ERC20Test:testFuzzDomainSeparator(uint8) (runs: 256, μ: 12051, ~: 12074) -ERC20Test:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 256, μ: 22283, ~: 22287) -ERC20Test:testFuzzMintNonMinter(string,uint256) (runs: 256, μ: 13152, ~: 13080) -ERC20Test:testFuzzMintSuccess(string,uint256) (runs: 256, μ: 54789, ~: 55936) -ERC20Test:testFuzzPermitInvalid(string,string,uint16) (runs: 256, μ: 45302, ~: 45300) -ERC20Test:testFuzzPermitSuccess(string,string,uint16) (runs: 256, μ: 71106, ~: 71102) -ERC20Test:testFuzzRenounceOwnershipNonOwner(address) (runs: 256, μ: 13956, ~: 13956) -ERC20Test:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 48655, ~: 48640) -ERC20Test:testFuzzSetMinterNonOwner(address,string) (runs: 256, μ: 15778, ~: 15777) -ERC20Test:testFuzzSetMinterSuccess(string) (runs: 256, μ: 33773, ~: 33772) -ERC20Test:testFuzzTransferFromInsufficientAllowance(address,address,uint256,uint8) (runs: 256, μ: 205500, ~: 205907) -ERC20Test:testFuzzTransferFromSuccess(address,address,uint256) (runs: 256, μ: 234414, ~: 235496) -ERC20Test:testFuzzTransferInvalidAmount(address,address,uint256) (runs: 256, μ: 16850, ~: 16850) -ERC20Test:testFuzzTransferOwnershipNonOwner(address,address) (runs: 256, μ: 14068, ~: 14068) -ERC20Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 256, μ: 75677, ~: 75652) -ERC20Test:testFuzzTransferSuccess(address,uint256) (runs: 256, μ: 206226, ~: 206912) +ERC20Test:testFuzzApproveSuccess(address,uint256) (runs: 257, μ: 40351, ~: 41203) +ERC20Test:testFuzzBurnFromInsufficientAllowance(address,uint256,uint8) (runs: 257, μ: 207188, ~: 207496) +ERC20Test:testFuzzBurnFromSuccess(address,uint256) (runs: 257, μ: 340889, ~: 341770) +ERC20Test:testFuzzBurnInvalidAmount(address,uint256) (runs: 257, μ: 16673, ~: 16673) +ERC20Test:testFuzzBurnSuccessCase(uint256) (runs: 257, μ: 316124, ~: 315924) +ERC20Test:testFuzzDomainSeparator(uint8) (runs: 257, μ: 12054, ~: 12074) +ERC20Test:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 257, μ: 22283, ~: 22306) +ERC20Test:testFuzzMintNonMinter(string,uint256) (runs: 257, μ: 13258, ~: 13185) +ERC20Test:testFuzzMintSuccess(string,uint256) (runs: 257, μ: 54991, ~: 55948) +ERC20Test:testFuzzPermitInvalid(string,string,uint16) (runs: 257, μ: 45393, ~: 45392) +ERC20Test:testFuzzPermitSuccess(string,string,uint16) (runs: 257, μ: 71112, ~: 71108) +ERC20Test:testFuzzRenounceOwnershipNonOwner(address) (runs: 257, μ: 14051, ~: 14051) +ERC20Test:testFuzzRenounceOwnershipSuccess(address) (runs: 257, μ: 48675, ~: 48660) +ERC20Test:testFuzzSetMinterNonOwner(address,string) (runs: 257, μ: 15873, ~: 15945) +ERC20Test:testFuzzSetMinterSuccess(string) (runs: 257, μ: 33792, ~: 33792) +ERC20Test:testFuzzTransferFromInsufficientAllowance(address,address,uint256,uint8) (runs: 257, μ: 205592, ~: 206007) +ERC20Test:testFuzzTransferFromSuccess(address,address,uint256) (runs: 257, μ: 234698, ~: 235531) +ERC20Test:testFuzzTransferInvalidAmount(address,address,uint256) (runs: 257, μ: 17068, ~: 17068) +ERC20Test:testFuzzTransferOwnershipNonOwner(address,address) (runs: 257, μ: 14163, ~: 14163) +ERC20Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 257, μ: 75698, ~: 75672) +ERC20Test:testFuzzTransferSuccess(address,uint256) (runs: 257, μ: 206241, ~: 206924) ERC20Test:testHasOwner() (gas: 12659) -ERC20Test:testInitialSetup() (gas: 1459670) -ERC20Test:testMintNonMinter() (gas: 12639) -ERC20Test:testMintOverflow() (gas: 16962) -ERC20Test:testMintSuccess() (gas: 51986) -ERC20Test:testMintToZeroAddress() (gas: 15617) -ERC20Test:testPermitBadChainId() (gas: 43827) -ERC20Test:testPermitBadNonce() (gas: 40932) -ERC20Test:testPermitExpiredDeadline() (gas: 17408) -ERC20Test:testPermitOtherSignature() (gas: 41896) -ERC20Test:testPermitReplaySignature() (gas: 73771) -ERC20Test:testPermitSuccess() (gas: 70072) -ERC20Test:testRenounceOwnershipNonOwner() (gas: 10833) -ERC20Test:testRenounceOwnershipSuccess() (gas: 22913) -ERC20Test:testSetMinterNonOwner() (gas: 12721) -ERC20Test:testSetMinterRemoveOwnerAddress() (gas: 13709) -ERC20Test:testSetMinterSuccess() (gas: 33516) -ERC20Test:testSetMinterToZeroAddress() (gas: 15706) +ERC20Test:testInitialSetup() (gas: 1585065) +ERC20Test:testMintNonMinter() (gas: 12745) +ERC20Test:testMintOverflow() (gas: 16974) +ERC20Test:testMintSuccess() (gas: 51998) +ERC20Test:testMintToZeroAddress() (gas: 15711) +ERC20Test:testPermitBadChainId() (gas: 43919) +ERC20Test:testPermitBadNonce() (gas: 41024) +ERC20Test:testPermitExpiredDeadline() (gas: 17509) +ERC20Test:testPermitOtherSignature() (gas: 41988) +ERC20Test:testPermitReplaySignature() (gas: 73869) +ERC20Test:testPermitSuccess() (gas: 70078) +ERC20Test:testRenounceOwnershipNonOwner() (gas: 10928) +ERC20Test:testRenounceOwnershipSuccess() (gas: 22925) +ERC20Test:testSetMinterNonOwner() (gas: 12816) +ERC20Test:testSetMinterRemoveOwnerAddress() (gas: 13939) +ERC20Test:testSetMinterSuccess() (gas: 33536) +ERC20Test:testSetMinterToZeroAddress() (gas: 15936) ERC20Test:testTotalSupply() (gas: 11555) -ERC20Test:testTransferFromExceedingBalance() (gas: 32557) -ERC20Test:testTransferFromFromZeroAddress() (gas: 17778) -ERC20Test:testTransferFromInsufficientAllowanceCase1() (gas: 43430) -ERC20Test:testTransferFromInsufficientAllowanceCase2() (gas: 43439) -ERC20Test:testTransferFromSuccess() (gas: 61766) -ERC20Test:testTransferFromToZeroAddress() (gas: 32620) -ERC20Test:testTransferFromUnlimitedAllowance() (gas: 72104) -ERC20Test:testTransferFromZeroAddress() (gas: 19692) -ERC20Test:testTransferInvalidAmount() (gas: 15474) -ERC20Test:testTransferOwnershipNonOwner() (gas: 12611) -ERC20Test:testTransferOwnershipSuccess() (gas: 54038) -ERC20Test:testTransferOwnershipToZeroAddress() (gas: 15586) -ERC20Test:testTransferSuccess() (gas: 43252) -ERC20Test:testTransferToZeroAddress() (gas: 16458) -ERC20Test:testTransferZeroTokens() (gas: 25425) +ERC20Test:testTransferFromExceedingBalance() (gas: 32754) +ERC20Test:testTransferFromFromZeroAddress() (gas: 18009) +ERC20Test:testTransferFromInsufficientAllowanceCase1() (gas: 43555) +ERC20Test:testTransferFromInsufficientAllowanceCase2() (gas: 43564) +ERC20Test:testTransferFromSuccess() (gas: 61800) +ERC20Test:testTransferFromToZeroAddress() (gas: 32817) +ERC20Test:testTransferFromUnlimitedAllowance() (gas: 72147) +ERC20Test:testTransferFromZeroAddress() (gas: 19910) +ERC20Test:testTransferInvalidAmount() (gas: 15692) +ERC20Test:testTransferOwnershipNonOwner() (gas: 12706) +ERC20Test:testTransferOwnershipSuccess() (gas: 54050) +ERC20Test:testTransferOwnershipToZeroAddress() (gas: 15816) +ERC20Test:testTransferSuccess() (gas: 43267) +ERC20Test:testTransferToZeroAddress() (gas: 16676) +ERC20Test:testTransferZeroTokens() (gas: 25440) ERC2981Invariants:invariantOwner() (runs: 256, calls: 3840, reverts: 3840) -ERC2981Test:testDeleteDefaultRoyaltyNonOwner() (gas: 10538) -ERC2981Test:testFuzzDeleteDefaultRoyaltyNonOwner(address) (runs: 256, μ: 13272, ~: 13272) -ERC2981Test:testFuzzRenounceOwnershipNonOwner(address) (runs: 256, μ: 13973, ~: 13973) -ERC2981Test:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 25308, ~: 25308) -ERC2981Test:testFuzzResetTokenRoyalty(address,address,uint256,uint256,uint96,uint256) (runs: 256, μ: 95830, ~: 97944) -ERC2981Test:testFuzzResetTokenRoyaltyNonOwner(address) (runs: 256, μ: 13247, ~: 13247) -ERC2981Test:testFuzzRoyaltyInfoDefaultRoyalty(address,uint256,uint256,uint96,uint256) (runs: 256, μ: 80048, ~: 81404) -ERC2981Test:testFuzzRoyaltyInfoDeleteDefaultRoyalty(address,uint256,uint256,uint96,uint256) (runs: 256, μ: 65049, ~: 66111) -ERC2981Test:testFuzzRoyaltyInfoSetTokenRoyalty(address,address,uint256,uint256,uint96,uint256) (runs: 256, μ: 119350, ~: 122880) -ERC2981Test:testFuzzRoyaltyInfoSetTokenRoyaltyUpdate(address,address,uint256,uint256,uint96,uint256) (runs: 256, μ: 164319, ~: 169575) -ERC2981Test:testFuzzRoyaltyInfoUpdateDefaultRoyalty(address,address,uint256,uint256,uint96,uint256) (runs: 256, μ: 87276, ~: 89093) -ERC2981Test:testFuzzSetDefaultRoyaltyNonOwner(address) (runs: 256, μ: 15526, ~: 15526) -ERC2981Test:testFuzzSetDefaultRoyaltyTooHighFeeNumerator(uint96) (runs: 256, μ: 21329, ~: 21138) -ERC2981Test:testFuzzSetTokenRoyaltyInvalidReceiver(address) (runs: 256, μ: 18627, ~: 18627) -ERC2981Test:testFuzzSetTokenRoyaltyNonOwner(address) (runs: 256, μ: 15566, ~: 15566) -ERC2981Test:testFuzzSetTokenRoyaltyTooHighFeeNumerator(uint96) (runs: 256, μ: 21370, ~: 21179) -ERC2981Test:testFuzzTransferOwnershipNonOwner(address,address) (runs: 256, μ: 14040, ~: 14040) -ERC2981Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 256, μ: 30287, ~: 30287) +ERC2981Test:testDeleteDefaultRoyaltyNonOwner() (gas: 10633) +ERC2981Test:testFuzzDeleteDefaultRoyaltyNonOwner(address) (runs: 257, μ: 13367, ~: 13367) +ERC2981Test:testFuzzRenounceOwnershipNonOwner(address) (runs: 257, μ: 14068, ~: 14068) +ERC2981Test:testFuzzRenounceOwnershipSuccess(address) (runs: 257, μ: 25320, ~: 25320) +ERC2981Test:testFuzzResetTokenRoyalty(address,address,uint256,uint256,uint96,uint256) (runs: 257, μ: 95866, ~: 97975) +ERC2981Test:testFuzzResetTokenRoyaltyNonOwner(address) (runs: 257, μ: 13342, ~: 13342) +ERC2981Test:testFuzzRoyaltyInfoDefaultRoyalty(address,uint256,uint256,uint96,uint256) (runs: 257, μ: 80060, ~: 81419) +ERC2981Test:testFuzzRoyaltyInfoDeleteDefaultRoyalty(address,uint256,uint256,uint96,uint256) (runs: 257, μ: 64861, ~: 66112) +ERC2981Test:testFuzzRoyaltyInfoSetTokenRoyalty(address,address,uint256,uint256,uint96,uint256) (runs: 257, μ: 119994, ~: 122910) +ERC2981Test:testFuzzRoyaltyInfoSetTokenRoyaltyUpdate(address,address,uint256,uint256,uint96,uint256) (runs: 257, μ: 165084, ~: 169620) +ERC2981Test:testFuzzRoyaltyInfoUpdateDefaultRoyalty(address,address,uint256,uint256,uint96,uint256) (runs: 257, μ: 87625, ~: 89123) +ERC2981Test:testFuzzSetDefaultRoyaltyNonOwner(address) (runs: 257, μ: 15624, ~: 15624) +ERC2981Test:testFuzzSetDefaultRoyaltyTooHighFeeNumerator(uint96) (runs: 257, μ: 21551, ~: 21356) +ERC2981Test:testFuzzSetTokenRoyaltyInvalidReceiver(address) (runs: 257, μ: 18724, ~: 18724) +ERC2981Test:testFuzzSetTokenRoyaltyNonOwner(address) (runs: 257, μ: 15664, ~: 15664) +ERC2981Test:testFuzzSetTokenRoyaltyTooHighFeeNumerator(uint96) (runs: 257, μ: 21592, ~: 21397) +ERC2981Test:testFuzzTransferOwnershipNonOwner(address,address) (runs: 257, μ: 14135, ~: 14135) +ERC2981Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 257, μ: 30311, ~: 30311) ERC2981Test:testHasOwner() (gas: 12549) -ERC2981Test:testInitialSetup() (gas: 467859) -ERC2981Test:testRenounceOwnershipNonOwner() (gas: 10872) +ERC2981Test:testInitialSetup() (gas: 510280) +ERC2981Test:testRenounceOwnershipNonOwner() (gas: 10967) ERC2981Test:testRenounceOwnershipSuccess() (gas: 18048) -ERC2981Test:testResetTokenRoyalty() (gas: 94647) -ERC2981Test:testResetTokenRoyaltyNonOwner() (gas: 10598) -ERC2981Test:testRoyaltyInfoDefaultRoyalty() (gas: 75064) -ERC2981Test:testRoyaltyInfoDeleteDefaultRoyalty() (gas: 62940) -ERC2981Test:testRoyaltyInfoRoyaltyAmountOverflow() (gas: 67696) -ERC2981Test:testRoyaltyInfoSetTokenRoyalty() (gas: 118352) -ERC2981Test:testRoyaltyInfoSetTokenRoyaltyUpdate() (gas: 165003) -ERC2981Test:testRoyaltyInfoUpdateDefaultRoyalty() (gas: 84106) -ERC2981Test:testSetDefaultRoyaltyInvalidReceiver() (gas: 17950) -ERC2981Test:testSetDefaultRoyaltyNonOwner() (gas: 12879) -ERC2981Test:testSetDefaultRoyaltyTooHighFeeNumerator() (gas: 17467) -ERC2981Test:testSetTokenRoyaltyInvalidReceiver() (gas: 17959) -ERC2981Test:testSetTokenRoyaltyNonOwner() (gas: 12853) -ERC2981Test:testSetTokenRoyaltyTooHighFeeNumerator() (gas: 17530) +ERC2981Test:testResetTokenRoyalty() (gas: 94671) +ERC2981Test:testResetTokenRoyaltyNonOwner() (gas: 10693) +ERC2981Test:testRoyaltyInfoDefaultRoyalty() (gas: 75079) +ERC2981Test:testRoyaltyInfoDeleteDefaultRoyalty() (gas: 62952) +ERC2981Test:testRoyaltyInfoRoyaltyAmountOverflow() (gas: 67711) +ERC2981Test:testRoyaltyInfoSetTokenRoyalty() (gas: 118382) +ERC2981Test:testRoyaltyInfoSetTokenRoyaltyUpdate() (gas: 165048) +ERC2981Test:testRoyaltyInfoUpdateDefaultRoyalty() (gas: 84136) +ERC2981Test:testSetDefaultRoyaltyInvalidReceiver() (gas: 18047) +ERC2981Test:testSetDefaultRoyaltyNonOwner() (gas: 12977) +ERC2981Test:testSetDefaultRoyaltyTooHighFeeNumerator() (gas: 17685) +ERC2981Test:testSetTokenRoyaltyInvalidReceiver() (gas: 18056) +ERC2981Test:testSetTokenRoyaltyNonOwner() (gas: 12951) +ERC2981Test:testSetTokenRoyaltyTooHighFeeNumerator() (gas: 17748) ERC2981Test:testSupportsInterfaceInvalidInterfaceId() (gas: 8354) ERC2981Test:testSupportsInterfaceInvalidInterfaceIdGasCost() (gas: 9241) ERC2981Test:testSupportsInterfaceSuccess() (gas: 9501) ERC2981Test:testSupportsInterfaceSuccessGasCost() (gas: 9207) -ERC2981Test:testTransferOwnershipNonOwner() (gas: 12650) -ERC2981Test:testTransferOwnershipSuccess() (gas: 22446) -ERC2981Test:testTransferOwnershipToZeroAddress() (gas: 15558) +ERC2981Test:testTransferOwnershipNonOwner() (gas: 12745) +ERC2981Test:testTransferOwnershipSuccess() (gas: 22458) +ERC2981Test:testTransferOwnershipToZeroAddress() (gas: 15788) ERC4626VaultInvariants:invariantTotalAssets() (runs: 256, calls: 3840, reverts: 3265) ERC4626VaultInvariants:invariantTotalSupply() (runs: 256, calls: 3840, reverts: 3265) ERC4626VaultTest:testCachedDomainSeparator() (gas: 10565) -ERC4626VaultTest:testDepositInsufficientAllowance() (gas: 82791) -ERC4626VaultTest:testDepositWithNoApproval() (gas: 24726) -ERC4626VaultTest:testDepositZero() (gas: 41123) +ERC4626VaultTest:testDepositInsufficientAllowance() (gas: 82810) +ERC4626VaultTest:testDepositWithNoApproval() (gas: 24745) +ERC4626VaultTest:testDepositZero() (gas: 41145) ERC4626VaultTest:testDomainSeparator() (gas: 11928) ERC4626VaultTest:testEIP712Domain() (gas: 18807) -ERC4626VaultTest:testEmptyVaultDeposit() (gas: 567828) -ERC4626VaultTest:testEmptyVaultMint() (gas: 568645) -ERC4626VaultTest:testEmptyVaultRedeem() (gas: 203127) -ERC4626VaultTest:testEmptyVaultwithdraw() (gas: 215972) -ERC4626VaultTest:testFail_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 555471, ~: 557671) -ERC4626VaultTest:testFail_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 557328, ~: 560079) -ERC4626VaultTest:testFuzzDomainSeparator(uint8) (runs: 256, μ: 11946, ~: 11966) -ERC4626VaultTest:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 256, μ: 22209, ~: 22213) -ERC4626VaultTest:testFuzzPermitInvalid(string,string,uint16) (runs: 256, μ: 45214, ~: 45212) -ERC4626VaultTest:testFuzzPermitSuccess(string,string,uint16) (runs: 256, μ: 70960, ~: 70956) -ERC4626VaultTest:testInitialSetup() (gas: 5691876) -ERC4626VaultTest:testMintWithNoApproval() (gas: 24778) -ERC4626VaultTest:testMintZero() (gas: 41252) -ERC4626VaultTest:testMultipleMintDepositRedeemWithdraw() (gas: 377875) -ERC4626VaultTest:testPermitBadChainId() (gas: 43863) -ERC4626VaultTest:testPermitBadNonce() (gas: 40918) -ERC4626VaultTest:testPermitExpiredDeadline() (gas: 17373) -ERC4626VaultTest:testPermitOtherSignature() (gas: 41884) -ERC4626VaultTest:testPermitReplaySignature() (gas: 73728) -ERC4626VaultTest:testPermitSuccess() (gas: 70029) -ERC4626VaultTest:testRedeemInsufficientShares() (gas: 131080) -ERC4626VaultTest:testRedeemWithNoShares() (gas: 13376) -ERC4626VaultTest:testSingleDepositWithdraw() (gas: 178137) -ERC4626VaultTest:testSingleMintRedeem() (gas: 176968) -ERC4626VaultTest:testVaultInteractionsForSomeoneElse() (gas: 224457) -ERC4626VaultTest:testWithdrawInsufficientAllowance() (gas: 122541) -ERC4626VaultTest:testWithdrawInsufficientAssets() (gas: 117821) -ERC4626VaultTest:testWithdrawWithNoAssets() (gas: 21337) -ERC4626VaultTest:test_RT_deposit_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 471948, ~: 476180) -ERC4626VaultTest:test_RT_deposit_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 474619, ~: 477648) -ERC4626VaultTest:test_RT_mint_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 472700, ~: 476390) -ERC4626VaultTest:test_RT_mint_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 474298, ~: 478039) -ERC4626VaultTest:test_RT_redeem_deposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 473389, ~: 476644) -ERC4626VaultTest:test_RT_redeem_mint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 472901, ~: 476502) -ERC4626VaultTest:test_RT_withdraw_deposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 474035, ~: 478059) -ERC4626VaultTest:test_RT_withdraw_mint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 474629, ~: 478512) -ERC4626VaultTest:test_asset((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423612, ~: 427737) -ERC4626VaultTest:test_convertToAssets((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 430189, ~: 433118) -ERC4626VaultTest:test_convertToShares((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 428704, ~: 432764) -ERC4626VaultTest:test_deposit((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 471356, ~: 473829) -ERC4626VaultTest:test_maxDeposit((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423606, ~: 427731) -ERC4626VaultTest:test_maxMint((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423631, ~: 427756) -ERC4626VaultTest:test_maxRedeem((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423747, ~: 427871) -ERC4626VaultTest:test_maxWithdraw((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 425282, ~: 429274) -ERC4626VaultTest:test_mint((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 471845, ~: 474042) -ERC4626VaultTest:test_previewDeposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 465429, ~: 468740) -ERC4626VaultTest:test_previewMint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 465656, ~: 469062) -ERC4626VaultTest:test_previewRedeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 467629, ~: 470521) -ERC4626VaultTest:test_previewWithdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 470582, ~: 472075) -ERC4626VaultTest:test_redeem((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 474584, ~: 476960) -ERC4626VaultTest:test_totalAssets((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 424197, ~: 428320) -ERC4626VaultTest:test_withdraw((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 476497, ~: 478329) +ERC4626VaultTest:testEmptyVaultDeposit() (gas: 567916) +ERC4626VaultTest:testEmptyVaultMint() (gas: 568733) +ERC4626VaultTest:testEmptyVaultRedeem() (gas: 203315) +ERC4626VaultTest:testEmptyVaultwithdraw() (gas: 216172) +ERC4626VaultTest:testFail_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 556169, ~: 558607) +ERC4626VaultTest:testFail_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 558040, ~: 560311) +ERC4626VaultTest:testFuzzDomainSeparator(uint8) (runs: 257, μ: 11946, ~: 11966) +ERC4626VaultTest:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 257, μ: 22206, ~: 22194) +ERC4626VaultTest:testFuzzPermitInvalid(string,string,uint16) (runs: 257, μ: 45305, ~: 45304) +ERC4626VaultTest:testFuzzPermitSuccess(string,string,uint16) (runs: 257, μ: 70966, ~: 70962) +ERC4626VaultTest:testInitialSetup() (gas: 6097320) +ERC4626VaultTest:testMintWithNoApproval() (gas: 24797) +ERC4626VaultTest:testMintZero() (gas: 41274) +ERC4626VaultTest:testMultipleMintDepositRedeemWithdraw() (gas: 378193) +ERC4626VaultTest:testPermitBadChainId() (gas: 43955) +ERC4626VaultTest:testPermitBadNonce() (gas: 41010) +ERC4626VaultTest:testPermitExpiredDeadline() (gas: 17474) +ERC4626VaultTest:testPermitOtherSignature() (gas: 41976) +ERC4626VaultTest:testPermitReplaySignature() (gas: 73826) +ERC4626VaultTest:testPermitSuccess() (gas: 70035) +ERC4626VaultTest:testRedeemInsufficientShares() (gas: 131362) +ERC4626VaultTest:testRedeemWithNoShares() (gas: 13639) +ERC4626VaultTest:testSingleDepositWithdraw() (gas: 178197) +ERC4626VaultTest:testSingleMintRedeem() (gas: 177028) +ERC4626VaultTest:testVaultInteractionsForSomeoneElse() (gas: 224733) +ERC4626VaultTest:testWithdrawInsufficientAllowance() (gas: 122657) +ERC4626VaultTest:testWithdrawInsufficientAssets() (gas: 118047) +ERC4626VaultTest:testWithdrawWithNoAssets() (gas: 21600) +ERC4626VaultTest:test_RT_deposit_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 473014, ~: 476347) +ERC4626VaultTest:test_RT_deposit_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 474556, ~: 477617) +ERC4626VaultTest:test_RT_mint_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 472822, ~: 476257) +ERC4626VaultTest:test_RT_mint_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 474581, ~: 478494) +ERC4626VaultTest:test_RT_redeem_deposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 473092, ~: 476532) +ERC4626VaultTest:test_RT_redeem_mint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 473519, ~: 476902) +ERC4626VaultTest:test_RT_withdraw_deposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 474983, ~: 478397) +ERC4626VaultTest:test_RT_withdraw_mint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 474761, ~: 478632) +ERC4626VaultTest:test_asset((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423097, ~: 427682) +ERC4626VaultTest:test_convertToAssets((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 430199, ~: 433066) +ERC4626VaultTest:test_convertToShares((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 429711, ~: 432996) +ERC4626VaultTest:test_deposit((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 471547, ~: 473854) +ERC4626VaultTest:test_maxDeposit((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423091, ~: 427676) +ERC4626VaultTest:test_maxMint((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423116, ~: 427701) +ERC4626VaultTest:test_maxRedeem((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423232, ~: 427816) +ERC4626VaultTest:test_maxWithdraw((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 424754, ~: 429306) +ERC4626VaultTest:test_mint((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 471942, ~: 474003) +ERC4626VaultTest:test_previewDeposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 464929, ~: 468781) +ERC4626VaultTest:test_previewMint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 465643, ~: 469091) +ERC4626VaultTest:test_previewRedeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 468438, ~: 470680) +ERC4626VaultTest:test_previewWithdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 470577, ~: 472121) +ERC4626VaultTest:test_redeem((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 474933, ~: 477076) +ERC4626VaultTest:test_totalAssets((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423682, ~: 428265) +ERC4626VaultTest:test_withdraw((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 476820, ~: 478466) ERC721Invariants:invariantOwner() (runs: 256, calls: 3840, reverts: 3439) ERC721Invariants:invariantTotalSupply() (runs: 256, calls: 3840, reverts: 3439) -ERC721Test:testApproveClearingApprovalWithNoPriorApproval() (gas: 177662) -ERC721Test:testApproveClearingApprovalWithPriorApproval() (gas: 186718) -ERC721Test:testApproveFromApprovedAddress() (gas: 199708) -ERC721Test:testApproveFromNonOwner() (gas: 173501) -ERC721Test:testApproveFromOperatorAddress() (gas: 224596) -ERC721Test:testApproveInvalidTokenId() (gas: 171496) -ERC721Test:testApproveToOwner() (gas: 167882) -ERC721Test:testApproveToZeroAddress() (gas: 186761) -ERC721Test:testApproveWithNoPriorApproval() (gas: 197063) -ERC721Test:testApproveWithPriorApprovalToDifferentAddress() (gas: 206235) -ERC721Test:testApproveWithPriorApprovalToSameAddress() (gas: 204597) -ERC721Test:testBalanceOfCase1() (gas: 329217) -ERC721Test:testBalanceOfCase2() (gas: 12241) -ERC721Test:testBalanceOfZeroAddress() (gas: 11015) -ERC721Test:testBurnSuccess() (gas: 306577) -ERC721Test:testBurnSuccessViaApproveAndSetApprovalForAll() (gas: 372299) +ERC721Test:testApproveClearingApprovalWithNoPriorApproval() (gas: 177703) +ERC721Test:testApproveClearingApprovalWithPriorApproval() (gas: 186783) +ERC721Test:testApproveFromApprovedAddress() (gas: 199968) +ERC721Test:testApproveFromNonOwner() (gas: 173749) +ERC721Test:testApproveFromOperatorAddress() (gas: 224649) +ERC721Test:testApproveInvalidTokenId() (gas: 171607) +ERC721Test:testApproveToOwner() (gas: 168130) +ERC721Test:testApproveToZeroAddress() (gas: 186826) +ERC721Test:testApproveWithNoPriorApproval() (gas: 197104) +ERC721Test:testApproveWithPriorApprovalToDifferentAddress() (gas: 206300) +ERC721Test:testApproveWithPriorApprovalToSameAddress() (gas: 204662) +ERC721Test:testBalanceOfCase1() (gas: 329266) +ERC721Test:testBalanceOfCase2() (gas: 12256) +ERC721Test:testBalanceOfZeroAddress() (gas: 11233) +ERC721Test:testBurnSuccess() (gas: 306780) +ERC721Test:testBurnSuccessViaApproveAndSetApprovalForAll() (gas: 372708) ERC721Test:testCachedDomainSeparator() (gas: 10588) ERC721Test:testDomainSeparator() (gas: 11839) ERC721Test:testEIP712Domain() (gas: 18910) -ERC721Test:testFuzzApproveClearingApprovalWithNoPriorApproval(address,address) (runs: 256, μ: 197151, ~: 197161) -ERC721Test:testFuzzApproveClearingApprovalWithPriorApproval(address,address) (runs: 256, μ: 184786, ~: 184796) -ERC721Test:testFuzzApproveFromNonOwner(address) (runs: 256, μ: 172896, ~: 172896) -ERC721Test:testFuzzApproveFromOperatorAddress(address,address,address) (runs: 256, μ: 223299, ~: 223299) -ERC721Test:testFuzzApproveWithNoPriorApproval(address,address) (runs: 256, μ: 197106, ~: 197116) -ERC721Test:testFuzzApproveWithPriorApproval(address,address) (runs: 256, μ: 204598, ~: 204608) -ERC721Test:testFuzzBurnSuccess(address) (runs: 256, μ: 305908, ~: 305902) -ERC721Test:testFuzzDomainSeparator(uint8) (runs: 256, μ: 12030, ~: 12052) -ERC721Test:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 256, μ: 22387, ~: 22390) -ERC721Test:testFuzzGetApprovedApprovedTokenId(address,address) (runs: 256, μ: 194737, ~: 194747) -ERC721Test:testFuzzPermitInvalid(string,string,uint16) (runs: 256, μ: 201644, ~: 201642) -ERC721Test:testFuzzPermitSuccess(string,string,uint16) (runs: 256, μ: 227845, ~: 227841) -ERC721Test:testFuzzRenounceOwnershipNonOwner(address) (runs: 256, μ: 13938, ~: 13938) -ERC721Test:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 48669, ~: 48653) -ERC721Test:testFuzzSafeMintNonMinter(address) (runs: 256, μ: 15894, ~: 15894) -ERC721Test:testFuzzSafeMintSuccess(address[]) (runs: 256, μ: 21415679, ~: 21358067) -ERC721Test:testFuzzSafeTransferFromWithData(address,address,address,bytes) (runs: 256, μ: 1457652, ~: 1458782) -ERC721Test:testFuzzSetApprovalForAllSuccess(address,address) (runs: 256, μ: 189633, ~: 189633) -ERC721Test:testFuzzSetMinterNonOwner(address,string) (runs: 256, μ: 15823, ~: 15822) -ERC721Test:testFuzzSetMinterSuccess(string) (runs: 256, μ: 33828, ~: 33828) -ERC721Test:testFuzzTokenByIndex(address,string[]) (runs: 256, μ: 22553151, ~: 23256393) -ERC721Test:testFuzzTotalSupply(address,string[]) (runs: 256, μ: 22369579, ~: 23065792) -ERC721Test:testFuzzTransferFrom(address,address,address) (runs: 256, μ: 568388, ~: 568369) -ERC721Test:testFuzzTransferOwnershipNonOwner(address,address) (runs: 256, μ: 14090, ~: 14090) -ERC721Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 256, μ: 75722, ~: 75696) -ERC721Test:testGetApprovedApprovedTokenId() (gas: 194649) -ERC721Test:testGetApprovedInvalidTokenId() (gas: 11097) -ERC721Test:testGetApprovedNotApprovedTokenId() (gas: 170887) +ERC721Test:testFuzzApproveClearingApprovalWithNoPriorApproval(address,address) (runs: 257, μ: 197202, ~: 197202) +ERC721Test:testFuzzApproveClearingApprovalWithPriorApproval(address,address) (runs: 257, μ: 184851, ~: 184861) +ERC721Test:testFuzzApproveFromNonOwner(address) (runs: 257, μ: 173144, ~: 173144) +ERC721Test:testFuzzApproveFromOperatorAddress(address,address,address) (runs: 257, μ: 223352, ~: 223352) +ERC721Test:testFuzzApproveWithNoPriorApproval(address,address) (runs: 257, μ: 197157, ~: 197157) +ERC721Test:testFuzzApproveWithPriorApproval(address,address) (runs: 257, μ: 204673, ~: 204673) +ERC721Test:testFuzzBurnSuccess(address) (runs: 257, μ: 306118, ~: 306104) +ERC721Test:testFuzzDomainSeparator(uint8) (runs: 257, μ: 12030, ~: 12052) +ERC721Test:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 257, μ: 22385, ~: 22409) +ERC721Test:testFuzzGetApprovedApprovedTokenId(address,address) (runs: 257, μ: 194788, ~: 194788) +ERC721Test:testFuzzPermitInvalid(string,string,uint16) (runs: 257, μ: 201755, ~: 201754) +ERC721Test:testFuzzPermitSuccess(string,string,uint16) (runs: 257, μ: 227880, ~: 227876) +ERC721Test:testFuzzRenounceOwnershipNonOwner(address) (runs: 257, μ: 14033, ~: 14033) +ERC721Test:testFuzzRenounceOwnershipSuccess(address) (runs: 257, μ: 48687, ~: 48672) +ERC721Test:testFuzzSafeMintNonMinter(address) (runs: 257, μ: 16008, ~: 16008) +ERC721Test:testFuzzSafeMintSuccess(address[]) (runs: 257, μ: 21693775, ~: 22146717) +ERC721Test:testFuzzSafeTransferFromWithData(address,address,address,bytes) (runs: 257, μ: 1461101, ~: 1462200) +ERC721Test:testFuzzSetApprovalForAllSuccess(address,address) (runs: 257, μ: 189686, ~: 189686) +ERC721Test:testFuzzSetMinterNonOwner(address,string) (runs: 257, μ: 15918, ~: 15990) +ERC721Test:testFuzzSetMinterSuccess(string) (runs: 257, μ: 33847, ~: 33847) +ERC721Test:testFuzzTokenByIndex(address,string[]) (runs: 257, μ: 22569043, ~: 23460737) +ERC721Test:testFuzzTotalSupply(address,string[]) (runs: 257, μ: 22385367, ~: 23268712) +ERC721Test:testFuzzTransferFrom(address,address,address) (runs: 257, μ: 569551, ~: 569538) +ERC721Test:testFuzzTransferOwnershipNonOwner(address,address) (runs: 257, μ: 14185, ~: 14185) +ERC721Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 257, μ: 75742, ~: 75715) +ERC721Test:testGetApprovedApprovedTokenId() (gas: 194690) +ERC721Test:testGetApprovedInvalidTokenId() (gas: 11191) +ERC721Test:testGetApprovedNotApprovedTokenId() (gas: 170916) ERC721Test:testHasOwner() (gas: 12585) -ERC721Test:testInitialSetup() (gas: 2390885) -ERC721Test:testOwnerOf() (gas: 166528) -ERC721Test:testOwnerOfInvalidTokenId() (gas: 11052) -ERC721Test:testPermitBadChainId() (gas: 200137) -ERC721Test:testPermitBadNonce() (gas: 197307) -ERC721Test:testPermitExpiredDeadline() (gas: 170669) -ERC721Test:testPermitOtherSignature() (gas: 198184) -ERC721Test:testPermitReplaySignature() (gas: 230527) -ERC721Test:testPermitSuccess() (gas: 226877) -ERC721Test:testRenounceOwnershipNonOwner() (gas: 10944) -ERC721Test:testRenounceOwnershipSuccess() (gas: 22887) -ERC721Test:testSafeMintNonMinter() (gas: 13225) -ERC721Test:testSafeMintOverflow() (gas: 15488) -ERC721Test:testSafeMintReceiverContract() (gas: 389351) -ERC721Test:testSafeMintReceiverContractFunctionNotImplemented() (gas: 116165) -ERC721Test:testSafeMintReceiverContractInvalidReturnIdentifier() (gas: 340401) -ERC721Test:testSafeMintReceiverContractRevertsWithMessage() (gas: 337695) -ERC721Test:testSafeMintReceiverContractRevertsWithPanic() (gas: 337938) -ERC721Test:testSafeMintReceiverContractRevertsWithoutMessage() (gas: 337325) -ERC721Test:testSafeMintSuccess() (gas: 526049) -ERC721Test:testSafeMintToZeroAddress() (gas: 38430) -ERC721Test:testSafeMintTokenAlreadyMinted() (gas: 363393) -ERC721Test:testSafeTransferFromNoData() (gas: 1458298) -ERC721Test:testSafeTransferFromReceiverFunctionNotImplemented() (gas: 181184) -ERC721Test:testSafeTransferFromReceiverInvalidReturnIdentifier() (gas: 405451) -ERC721Test:testSafeTransferFromReceiverRevertsWithMessage() (gas: 402725) -ERC721Test:testSafeTransferFromReceiverRevertsWithPanic() (gas: 402991) -ERC721Test:testSafeTransferFromReceiverRevertsWithoutMessage() (gas: 402355) -ERC721Test:testSafeTransferFromWithData() (gas: 1215104) -ERC721Test:testSetApprovalForAllOperatorIsOwner() (gas: 167640) -ERC721Test:testSetApprovalForAllSuccessCase1() (gas: 196271) -ERC721Test:testSetApprovalForAllSuccessCase2() (gas: 189564) -ERC721Test:testSetApprovalForAllSuccessCase3() (gas: 202836) -ERC721Test:testSetMinterNonOwner() (gas: 12700) -ERC721Test:testSetMinterRemoveOwnerAddress() (gas: 13798) -ERC721Test:testSetMinterSuccess() (gas: 33608) -ERC721Test:testSetMinterToZeroAddress() (gas: 15752) +ERC721Test:testInitialSetup() (gas: 2593253) +ERC721Test:testOwnerOf() (gas: 166557) +ERC721Test:testOwnerOfInvalidTokenId() (gas: 11146) +ERC721Test:testPermitBadChainId() (gas: 200249) +ERC721Test:testPermitBadNonce() (gas: 197419) +ERC721Test:testPermitExpiredDeadline() (gas: 170787) +ERC721Test:testPermitOtherSignature() (gas: 198296) +ERC721Test:testPermitReplaySignature() (gas: 230645) +ERC721Test:testPermitSuccess() (gas: 226912) +ERC721Test:testRenounceOwnershipNonOwner() (gas: 11039) +ERC721Test:testRenounceOwnershipSuccess() (gas: 22899) +ERC721Test:testSafeMintNonMinter() (gas: 13339) +ERC721Test:testSafeMintOverflow() (gas: 15505) +ERC721Test:testSafeMintReceiverContract() (gas: 389395) +ERC721Test:testSafeMintReceiverContractFunctionNotImplemented() (gas: 116182) +ERC721Test:testSafeMintReceiverContractInvalidReturnIdentifier() (gas: 340621) +ERC721Test:testSafeMintReceiverContractRevertsWithMessage() (gas: 337712) +ERC721Test:testSafeMintReceiverContractRevertsWithPanic() (gas: 337955) +ERC721Test:testSafeMintReceiverContractRevertsWithoutMessage() (gas: 337342) +ERC721Test:testSafeMintSuccess() (gas: 526184) +ERC721Test:testSafeMintToZeroAddress() (gas: 38529) +ERC721Test:testSafeMintTokenAlreadyMinted() (gas: 363526) +ERC721Test:testSafeTransferFromNoData() (gas: 1461700) +ERC721Test:testSafeTransferFromReceiverFunctionNotImplemented() (gas: 181220) +ERC721Test:testSafeTransferFromReceiverInvalidReturnIdentifier() (gas: 405690) +ERC721Test:testSafeTransferFromReceiverRevertsWithMessage() (gas: 402761) +ERC721Test:testSafeTransferFromReceiverRevertsWithPanic() (gas: 403027) +ERC721Test:testSafeTransferFromReceiverRevertsWithoutMessage() (gas: 402391) +ERC721Test:testSafeTransferFromWithData() (gas: 1217469) +ERC721Test:testSetApprovalForAllOperatorIsOwner() (gas: 167751) +ERC721Test:testSetApprovalForAllSuccessCase1() (gas: 196300) +ERC721Test:testSetApprovalForAllSuccessCase2() (gas: 189617) +ERC721Test:testSetApprovalForAllSuccessCase3() (gas: 202877) +ERC721Test:testSetMinterNonOwner() (gas: 12795) +ERC721Test:testSetMinterRemoveOwnerAddress() (gas: 14028) +ERC721Test:testSetMinterSuccess() (gas: 33628) +ERC721Test:testSetMinterToZeroAddress() (gas: 15982) ERC721Test:testSupportsInterfaceInvalidInterfaceId() (gas: 8567) ERC721Test:testSupportsInterfaceInvalidInterfaceIdGasCost() (gas: 9598) ERC721Test:testSupportsInterfaceSuccess() (gas: 14714) ERC721Test:testSupportsInterfaceSuccessGasCost() (gas: 9365) -ERC721Test:testTokenByIndex() (gas: 556529) -ERC721Test:testTokenByIndexOutOfBounds() (gas: 330859) -ERC721Test:testTokenOfOwnerByIndex() (gas: 576222) -ERC721Test:testTokenOfOwnerByIndexReverts() (gas: 547900) -ERC721Test:testTokenURIAfterBurning() (gas: 138977) -ERC721Test:testTokenURIDefault() (gas: 169550) -ERC721Test:testTokenURIInvalidTokenId() (gas: 13172) -ERC721Test:testTokenURINoBaseURI() (gas: 2509889) -ERC721Test:testTokenURINoTokenUri() (gas: 126744) -ERC721Test:testTotalSupply() (gas: 329143) -ERC721Test:testTransferFrom() (gas: 577921) -ERC721Test:testTransferOwnershipNonOwner() (gas: 12612) -ERC721Test:testTransferOwnershipSuccess() (gas: 54098) -ERC721Test:testTransferOwnershipToZeroAddress() (gas: 15608) +ERC721Test:testTokenByIndex() (gas: 556613) +ERC721Test:testTokenByIndexOutOfBounds() (gas: 331111) +ERC721Test:testTokenOfOwnerByIndex() (gas: 576445) +ERC721Test:testTokenOfOwnerByIndexReverts() (gas: 548519) +ERC721Test:testTokenURIAfterBurning() (gas: 139079) +ERC721Test:testTokenURIDefault() (gas: 169580) +ERC721Test:testTokenURIInvalidTokenId() (gas: 13266) +ERC721Test:testTokenURINoBaseURI() (gas: 2712287) +ERC721Test:testTokenURINoTokenUri() (gas: 126774) +ERC721Test:testTotalSupply() (gas: 329177) +ERC721Test:testTransferFrom() (gas: 579090) +ERC721Test:testTransferOwnershipNonOwner() (gas: 12707) +ERC721Test:testTransferOwnershipSuccess() (gas: 54110) +ERC721Test:testTransferOwnershipToZeroAddress() (gas: 15838) MathTest:testCbrtRoundDown() (gas: 49935) MathTest:testCbrtRoundUp() (gas: 50582) -MathTest:testCeilDiv() (gas: 14326) -MathTest:testFuzzCbrt(uint256,bool) (runs: 256, μ: 22270, ~: 22088) -MathTest:testFuzzCeilDiv(uint256,uint256) (runs: 256, μ: 9672, ~: 9699) -MathTest:testFuzzInt256Average(int256,int256) (runs: 256, μ: 8572, ~: 8572) -MathTest:testFuzzLog10(uint256,bool) (runs: 256, μ: 10139, ~: 10152) -MathTest:testFuzzLog2(uint256,bool) (runs: 256, μ: 9981, ~: 9994) -MathTest:testFuzzLog256(uint256,bool) (runs: 256, μ: 10017, ~: 10018) -MathTest:testFuzzMulDiv(uint256,uint256,uint256) (runs: 256, μ: 14136, ~: 13888) -MathTest:testFuzzMulDivDomain(uint256,uint256,uint256) (runs: 256, μ: 10487, ~: 10570) -MathTest:testFuzzSignum(int256) (runs: 256, μ: 8464, ~: 8456) -MathTest:testFuzzUint256Average(uint256,uint256) (runs: 256, μ: 8635, ~: 8635) -MathTest:testFuzzWadCbrt(uint256) (runs: 256, μ: 22232, ~: 21948) -MathTest:testFuzzWadExp(int256) (runs: 256, μ: 15254, ~: 15363) -MathTest:testFuzzWadLn(int256) (runs: 256, μ: 16746, ~: 16483) +MathTest:testCeilDiv() (gas: 14421) +MathTest:testFuzzCbrt(uint256,bool) (runs: 257, μ: 22255, ~: 22010) +MathTest:testFuzzCeilDiv(uint256,uint256) (runs: 257, μ: 9672, ~: 9699) +MathTest:testFuzzInt256Average(int256,int256) (runs: 257, μ: 8572, ~: 8572) +MathTest:testFuzzLog10(uint256,bool) (runs: 257, μ: 10139, ~: 10152) +MathTest:testFuzzLog2(uint256,bool) (runs: 257, μ: 9980, ~: 9985) +MathTest:testFuzzLog256(uint256,bool) (runs: 257, μ: 10015, ~: 10009) +MathTest:testFuzzMulDiv(uint256,uint256,uint256) (runs: 257, μ: 14135, ~: 13888) +MathTest:testFuzzMulDivDomain(uint256,uint256,uint256) (runs: 256, μ: 10676, ~: 10758) +MathTest:testFuzzSignum(int256) (runs: 257, μ: 8464, ~: 8456) +MathTest:testFuzzUint256Average(uint256,uint256) (runs: 257, μ: 8635, ~: 8635) +MathTest:testFuzzWadCbrt(uint256) (runs: 257, μ: 22217, ~: 21921) +MathTest:testFuzzWadExp(int256) (runs: 257, μ: 15254, ~: 15363) +MathTest:testFuzzWadLn(int256) (runs: 257, μ: 16747, ~: 16537) MathTest:testInt256Average() (gas: 18313) MathTest:testLog10RoundDown() (gas: 24985) MathTest:testLog10RoundUp() (gas: 26166) @@ -576,8 +576,8 @@ MathTest:testLog256RoundDown() (gas: 20754) MathTest:testLog256RoundUp() (gas: 20887) MathTest:testLog2RoundDown() (gas: 23913) MathTest:testLog2RoundUp() (gas: 24076) -MathTest:testMulDivDivisionByZero() (gas: 11226) -MathTest:testMulDivOverflow() (gas: 11600) +MathTest:testMulDivDivisionByZero() (gas: 11414) +MathTest:testMulDivOverflow() (gas: 11788) MathTest:testMulDivRoundDownLargeValues() (gas: 17108) MathTest:testMulDivRoundDownSmallValues() (gas: 11331) MathTest:testMulDivRoundUpLargeValues() (gas: 17441) @@ -586,16 +586,16 @@ MathTest:testSignum() (gas: 17356) MathTest:testUint256Average() (gas: 12646) MathTest:testWadCbrt() (gas: 48122) MathTest:testWadExp() (gas: 33776) -MathTest:testWadExpOverflow() (gas: 11127) +MathTest:testWadExpOverflow() (gas: 11315) MathTest:testWadLn() (gas: 30882) -MathTest:testWadLnNegativeValues() (gas: 11130) -MerkleProofVerificationTest:testFuzzMultiProofVerifySingleLeaf(bytes32[],uint256) (runs: 256, μ: 1649985418, ~: 1649982142) -MerkleProofVerificationTest:testFuzzVerify(bytes32[],uint256) (runs: 256, μ: 135979118, ~: 135975813) -MerkleProofVerificationTest:testFuzzVerifyMultiProofMultipleLeaves(bool,bool,bool) (runs: 256, μ: 412477124, ~: 412477119) +MathTest:testWadLnNegativeValues() (gas: 11318) +MerkleProofVerificationTest:testFuzzMultiProofVerifySingleLeaf(bytes32[],uint256) (runs: 257, μ: 1649984985, ~: 1649982138) +MerkleProofVerificationTest:testFuzzVerify(bytes32[],uint256) (runs: 257, μ: 135978699, ~: 135975809) +MerkleProofVerificationTest:testFuzzVerifyMultiProofMultipleLeaves(bool,bool,bool) (runs: 257, μ: 412477124, ~: 412477119) MerkleProofVerificationTest:testInvalidMerkleMultiProof() (gas: 412480569) MerkleProofVerificationTest:testInvalidMerkleProof() (gas: 33971264) MerkleProofVerificationTest:testInvalidMerkleProofLength() (gas: 33973431) -MerkleProofVerificationTest:testInvalidMultiProof() (gas: 909641088) +MerkleProofVerificationTest:testInvalidMultiProof() (gas: 909641334) MerkleProofVerificationTest:testMaliciousMultiProofVerify() (gas: 303219039) MerkleProofVerificationTest:testMultiProofEdgeCase1() (gas: 412462703) MerkleProofVerificationTest:testMultiProofEdgeCase2() (gas: 412462855) @@ -606,146 +606,146 @@ MulticallTest:testMulticallSelfRevert() (gas: 1090186642) MulticallTest:testMulticallSelfSuccess() (gas: 1635537407) MulticallTest:testMulticallSuccess() (gas: 545390333) MulticallTest:testMulticallValueRevertCase1() (gas: 545926302) -MulticallTest:testMulticallValueRevertCase2() (gas: 545933664) +MulticallTest:testMulticallValueRevertCase2() (gas: 545933746) MulticallTest:testMulticallValueSuccess() (gas: 545959264) MulticallTest:testMultistaticcallRevert() (gas: 8937393460525252382) MulticallTest:testMultistaticcallSuccess() (gas: 545354391) -Ownable2StepInvariants:invariantOwner() (runs: 256, calls: 3840, reverts: 3840) -Ownable2StepInvariants:invariantPendingOwner() (runs: 256, calls: 3840, reverts: 3840) -Ownable2StepTest:testAcceptOwnershipNonPendingOwner() (gas: 47657) -Ownable2StepTest:testAcceptOwnershipSuccess() (gas: 40811) -Ownable2StepTest:testFuzzAcceptOwnershipNonPendingOwner(address) (runs: 256, μ: 46867, ~: 46867) -Ownable2StepTest:testFuzzAcceptOwnershipSuccess(address,address) (runs: 256, μ: 67647, ~: 67620) -Ownable2StepTest:testFuzzPendingOwnerResetAfterRenounceOwnership(address) (runs: 256, μ: 40156, ~: 40140) -Ownable2StepTest:testFuzzRenounceOwnershipNonOwner(address) (runs: 256, μ: 13955, ~: 13955) -Ownable2StepTest:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 45372, ~: 45356) -Ownable2StepTest:testFuzzTransferOwnershipNonOwner(address,address) (runs: 256, μ: 14107, ~: 14107) -Ownable2StepTest:testFuzzTransferOwnershipSuccess(address,address) (runs: 256, μ: 52209, ~: 52209) +Ownable2StepInvariants:statefulFuzzOwner() (runs: 256, calls: 3840, reverts: 3840) +Ownable2StepInvariants:statefulFuzzPendingOwner() (runs: 256, calls: 3840, reverts: 3840) +Ownable2StepTest:testAcceptOwnershipNonPendingOwner() (gas: 47887) +Ownable2StepTest:testAcceptOwnershipSuccess() (gas: 40849) +Ownable2StepTest:testFuzzAcceptOwnershipNonPendingOwner(address) (runs: 257, μ: 47097, ~: 47097) +Ownable2StepTest:testFuzzAcceptOwnershipSuccess(address,address) (runs: 257, μ: 67724, ~: 67697) +Ownable2StepTest:testFuzzPendingOwnerResetAfterRenounceOwnership(address) (runs: 257, μ: 40372, ~: 40356) +Ownable2StepTest:testFuzzRenounceOwnershipNonOwner(address) (runs: 257, μ: 13982, ~: 13982) +Ownable2StepTest:testFuzzRenounceOwnershipSuccess(address) (runs: 257, μ: 45441, ~: 45425) +Ownable2StepTest:testFuzzTransferOwnershipNonOwner(address,address) (runs: 257, μ: 14134, ~: 14134) +Ownable2StepTest:testFuzzTransferOwnershipSuccess(address,address) (runs: 257, μ: 52227, ~: 52227) Ownable2StepTest:testHasOwner() (gas: 12528) -Ownable2StepTest:testInitialSetup() (gas: 235725) -Ownable2StepTest:testPendingOwnerResetAfterRenounceOwnership() (gas: 41035) -Ownable2StepTest:testRenounceOwnershipNonOwner() (gas: 10942) -Ownable2StepTest:testRenounceOwnershipSuccess() (gas: 20233) -Ownable2StepTest:testTransferOwnershipNonOwner() (gas: 12619) -Ownable2StepTest:testTransferOwnershipSuccess() (gas: 45969) +Ownable2StepTest:testInitialSetup() (gas: 245834) +Ownable2StepTest:testPendingOwnerResetAfterRenounceOwnership() (gas: 41250) +Ownable2StepTest:testRenounceOwnershipNonOwner() (gas: 10969) +Ownable2StepTest:testRenounceOwnershipSuccess() (gas: 20272) +Ownable2StepTest:testTransferOwnershipNonOwner() (gas: 12646) +Ownable2StepTest:testTransferOwnershipSuccess() (gas: 45978) OwnableInvariants:statefulFuzzOwner() (runs: 256, calls: 3840, reverts: 3840) -OwnableTest:testFuzzRenounceOwnershipNonOwner(address) (runs: 256, μ: 13928, ~: 13928) -OwnableTest:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 25259, ~: 25259) -OwnableTest:testFuzzTransferOwnershipNonOwner(address,address) (runs: 256, μ: 14081, ~: 14081) -OwnableTest:testFuzzTransferOwnershipSuccess(address,address) (runs: 256, μ: 30283, ~: 30283) +OwnableTest:testFuzzRenounceOwnershipNonOwner(address) (runs: 257, μ: 14023, ~: 14023) +OwnableTest:testFuzzRenounceOwnershipSuccess(address) (runs: 257, μ: 25271, ~: 25271) +OwnableTest:testFuzzTransferOwnershipNonOwner(address,address) (runs: 257, μ: 14176, ~: 14176) +OwnableTest:testFuzzTransferOwnershipSuccess(address,address) (runs: 257, μ: 30307, ~: 30307) OwnableTest:testHasOwner() (gas: 12525) -OwnableTest:testInitialSetup() (gas: 200866) -OwnableTest:testRenounceOwnershipNonOwner() (gas: 10848) +OwnableTest:testInitialSetup() (gas: 215816) +OwnableTest:testRenounceOwnershipNonOwner() (gas: 10943) OwnableTest:testRenounceOwnershipSuccess() (gas: 17978) -OwnableTest:testTransferOwnershipNonOwner() (gas: 12560) -OwnableTest:testTransferOwnershipSuccess() (gas: 22376) -OwnableTest:testTransferOwnershipToZeroAddress() (gas: 15512) -SignatureCheckerTest:testEIP1271NoIsValidSignatureFunction() (gas: 23573) -SignatureCheckerTest:testEIP1271WithInvalidSignature(bytes,string) (runs: 256, μ: 24127, ~: 24124) -SignatureCheckerTest:testEIP1271WithInvalidSignature1() (gas: 34535) -SignatureCheckerTest:testEIP1271WithInvalidSignature2() (gas: 30143) -SignatureCheckerTest:testEIP1271WithInvalidSigner() (gas: 34613) -SignatureCheckerTest:testEIP1271WithMaliciousWallet() (gas: 24506) -SignatureCheckerTest:testEIP1271WithValidSignature() (gas: 34522) -SignatureCheckerTest:testEOAWithInvalidSignature1() (gas: 21050) -SignatureCheckerTest:testEOAWithInvalidSignature2() (gas: 21358) -SignatureCheckerTest:testEOAWithInvalidSigner() (gas: 21142) -SignatureCheckerTest:testEOAWithTooHighSValue() (gas: 18404) -SignatureCheckerTest:testEOAWithValidSignature() (gas: 20267) -SignatureCheckerTest:testFuzzEIP1271WithInvalidSigner(string,string) (runs: 256, μ: 36525, ~: 36591) -SignatureCheckerTest:testFuzzEIP1271WithValidSignature(string) (runs: 256, μ: 35101, ~: 35095) -SignatureCheckerTest:testFuzzEOAWithInvalidSignature(bytes,string) (runs: 256, μ: 17532, ~: 17531) -SignatureCheckerTest:testFuzzEOAWithInvalidSigner(string,string) (runs: 256, μ: 22161, ~: 22222) -SignatureCheckerTest:testFuzzEOAWithValidSignature(string,string) (runs: 256, μ: 21280, ~: 21341) +OwnableTest:testTransferOwnershipNonOwner() (gas: 12655) +OwnableTest:testTransferOwnershipSuccess() (gas: 22388) +OwnableTest:testTransferOwnershipToZeroAddress() (gas: 15742) +SignatureCheckerTest:testEIP1271NoIsValidSignatureFunction() (gas: 23582) +SignatureCheckerTest:testEIP1271WithInvalidSignature(bytes,string) (runs: 257, μ: 24133, ~: 24130) +SignatureCheckerTest:testEIP1271WithInvalidSignature1() (gas: 34544) +SignatureCheckerTest:testEIP1271WithInvalidSignature2() (gas: 30234) +SignatureCheckerTest:testEIP1271WithInvalidSigner() (gas: 34622) +SignatureCheckerTest:testEIP1271WithMaliciousWallet() (gas: 24515) +SignatureCheckerTest:testEIP1271WithValidSignature() (gas: 34531) +SignatureCheckerTest:testEOAWithInvalidSignature1() (gas: 21059) +SignatureCheckerTest:testEOAWithInvalidSignature2() (gas: 21449) +SignatureCheckerTest:testEOAWithInvalidSigner() (gas: 21151) +SignatureCheckerTest:testEOAWithTooHighSValue() (gas: 18616) +SignatureCheckerTest:testEOAWithValidSignature() (gas: 20276) +SignatureCheckerTest:testFuzzEIP1271WithInvalidSigner(string,string) (runs: 257, μ: 36534, ~: 36600) +SignatureCheckerTest:testFuzzEIP1271WithValidSignature(string) (runs: 257, μ: 35110, ~: 35104) +SignatureCheckerTest:testFuzzEOAWithInvalidSignature(bytes,string) (runs: 257, μ: 17538, ~: 17537) +SignatureCheckerTest:testFuzzEOAWithInvalidSigner(string,string) (runs: 257, μ: 22170, ~: 22231) +SignatureCheckerTest:testFuzzEOAWithValidSignature(string,string) (runs: 257, μ: 21289, ~: 21350) SignatureCheckerTest:testInitialSetup() (gas: 8315) -TimelockControllerInvariants:invariantExecutedLessThanOrEqualToScheduled() (runs: 256, calls: 3840, reverts: 1225) -TimelockControllerInvariants:invariantExecutedProposalCancellation() (runs: 256, calls: 3840, reverts: 1142) -TimelockControllerInvariants:invariantExecutingCancelledProposal() (runs: 256, calls: 3840, reverts: 1197) -TimelockControllerInvariants:invariantExecutingNotReadyProposal() (runs: 256, calls: 3840, reverts: 1228) -TimelockControllerInvariants:invariantOnceProposalExecution() (runs: 256, calls: 3840, reverts: 1202) -TimelockControllerInvariants:invariantProposalsExecutedMatchCount() (runs: 256, calls: 3840, reverts: 1225) -TimelockControllerInvariants:invariantSumOfProposals() (runs: 256, calls: 3840, reverts: 1225) -TimelockControllerTest:testAdminCannotBatchExecute() (gas: 750573) -TimelockControllerTest:testAdminCannotBatchSchedule() (gas: 748359) -TimelockControllerTest:testAdminCannotCancel() (gas: 13280) -TimelockControllerTest:testAdminCannotExecute() (gas: 18349) -TimelockControllerTest:testAdminCannotSchedule() (gas: 16021) -TimelockControllerTest:testBatchCancelFinished() (gas: 4641395) +TimelockControllerInvariants:invariantExecutedLessThanOrEqualToScheduled() (runs: 256, calls: 3840, reverts: 1228) +TimelockControllerInvariants:invariantExecutedProposalCancellation() (runs: 256, calls: 3840, reverts: 1236) +TimelockControllerInvariants:invariantExecutingCancelledProposal() (runs: 256, calls: 3840, reverts: 1248) +TimelockControllerInvariants:invariantExecutingNotReadyProposal() (runs: 256, calls: 3840, reverts: 1194) +TimelockControllerInvariants:invariantOnceProposalExecution() (runs: 256, calls: 3840, reverts: 1211) +TimelockControllerInvariants:invariantProposalsExecutedMatchCount() (runs: 256, calls: 3840, reverts: 1228) +TimelockControllerInvariants:invariantSumOfProposals() (runs: 256, calls: 3840, reverts: 1228) +TimelockControllerTest:testAdminCannotBatchExecute() (gas: 750776) +TimelockControllerTest:testAdminCannotBatchSchedule() (gas: 748562) +TimelockControllerTest:testAdminCannotCancel() (gas: 13498) +TimelockControllerTest:testAdminCannotExecute() (gas: 18552) +TimelockControllerTest:testAdminCannotSchedule() (gas: 16224) +TimelockControllerTest:testBatchCancelFinished() (gas: 4641628) TimelockControllerTest:testBatchEqualAndGreaterMinimumDelay() (gas: 6145274) TimelockControllerTest:testBatchHasBeenExecuted() (gas: 4639618) TimelockControllerTest:testBatchHasNotBeenExecuted() (gas: 3078886) -TimelockControllerTest:testBatchInsufficientDelay() (gas: 1532720) +TimelockControllerTest:testBatchInsufficientDelay() (gas: 1532923) TimelockControllerTest:testBatchMinimumDelayUpdate() (gas: 3086579) -TimelockControllerTest:testBatchOperationAlreadyScheduled() (gas: 4593358) -TimelockControllerTest:testBatchOperationIsNotReady() (gas: 4598675) +TimelockControllerTest:testBatchOperationAlreadyScheduled() (gas: 4593561) +TimelockControllerTest:testBatchOperationIsNotReady() (gas: 4598878) TimelockControllerTest:testBatchPendingIfExecuted() (gas: 4638232) TimelockControllerTest:testBatchPendingIfNotYetExecuted() (gas: 3078894) -TimelockControllerTest:testBatchPredecessorInvalid() (gas: 4601028) -TimelockControllerTest:testBatchPredecessorMultipleNotExecuted() (gas: 6141714) -TimelockControllerTest:testBatchPredecessorNotExecuted() (gas: 7662985) -TimelockControllerTest:testBatchPredecessorNotScheduled() (gas: 6116888) +TimelockControllerTest:testBatchPredecessorInvalid() (gas: 4601231) +TimelockControllerTest:testBatchPredecessorMultipleNotExecuted() (gas: 6141917) +TimelockControllerTest:testBatchPredecessorNotExecuted() (gas: 7663188) +TimelockControllerTest:testBatchPredecessorNotScheduled() (gas: 6117091) TimelockControllerTest:testBatchReadyAfterTheExecutionTime() (gas: 3079459) TimelockControllerTest:testBatchReadyBeforeTheExecutionTime() (gas: 3079476) TimelockControllerTest:testBatchReadyOnTheExecutionTime() (gas: 3079362) TimelockControllerTest:testBatchScheduleAndExecuteWithEmptySalt() (gas: 4647416) TimelockControllerTest:testBatchScheduleAndExecuteWithNonEmptySalt() (gas: 4650861) -TimelockControllerTest:testBatchTargetRevert() (gas: 9186339) +TimelockControllerTest:testBatchTargetRevert() (gas: 9186542) TimelockControllerTest:testBatchTimestampHasBeenExecuted() (gas: 4638070) TimelockControllerTest:testBatchTimestampHasNotBeenExecuted() (gas: 3078714) TimelockControllerTest:testCanReceiveEther() (gas: 15016) -TimelockControllerTest:testCancellerCanCancelOperation() (gas: 3065178) -TimelockControllerTest:testCompleteOperationWithAssignExecutorRoleToZeroAddress() (gas: 125324) +TimelockControllerTest:testCancellerCanCancelOperation() (gas: 3065193) +TimelockControllerTest:testCompleteOperationWithAssignExecutorRoleToZeroAddress() (gas: 125339) TimelockControllerTest:testCompletePipelineOperationMinimumDelayUpdate() (gas: 73717) TimelockControllerTest:testCompletePipelineOperationSetRoleAdmin() (gas: 101140) -TimelockControllerTest:testExecutorCanBatchExecute() (gas: 3049251) -TimelockControllerTest:testExecutorCanExecute() (gas: 29826) -TimelockControllerTest:testExecutorCannotBatchSchedule() (gas: 1485375) -TimelockControllerTest:testExecutorCannotCancel() (gas: 15281) -TimelockControllerTest:testExecutorCannotSchedule() (gas: 18977) -TimelockControllerTest:testFuzzBatchValue(uint256) (runs: 256, μ: 4653492, ~: 4653589) -TimelockControllerTest:testFuzzHashOperation(address,uint256,bytes,bytes32,bytes32) (runs: 256, μ: 11069, ~: 10967) -TimelockControllerTest:testFuzzHashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32) (runs: 256, μ: 1907207, ~: 1934989) -TimelockControllerTest:testFuzzOperationValue(uint256) (runs: 256, μ: 113851, ~: 113948) -TimelockControllerTest:testHandleERC1155() (gas: 41494156) -TimelockControllerTest:testHandleERC721() (gas: 7039956) +TimelockControllerTest:testExecutorCanBatchExecute() (gas: 3049657) +TimelockControllerTest:testExecutorCanExecute() (gas: 30232) +TimelockControllerTest:testExecutorCannotBatchSchedule() (gas: 1485781) +TimelockControllerTest:testExecutorCannotCancel() (gas: 15717) +TimelockControllerTest:testExecutorCannotSchedule() (gas: 19383) +TimelockControllerTest:testFuzzBatchValue(uint256) (runs: 257, μ: 4653472, ~: 4653589) +TimelockControllerTest:testFuzzHashOperation(address,uint256,bytes,bytes32,bytes32) (runs: 257, μ: 11069, ~: 10967) +TimelockControllerTest:testFuzzHashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32) (runs: 257, μ: 1907784, ~: 1935381) +TimelockControllerTest:testFuzzOperationValue(uint256) (runs: 257, μ: 113831, ~: 113948) +TimelockControllerTest:testHandleERC1155() (gas: 41708457) +TimelockControllerTest:testHandleERC721() (gas: 7242387) TimelockControllerTest:testHashOperation() (gas: 13089) TimelockControllerTest:testHashOperationBatch() (gas: 1526310) -TimelockControllerTest:testInitialSetup() (gas: 4238968) +TimelockControllerTest:testInitialSetup() (gas: 4396244) TimelockControllerTest:testInvalidOperation() (gas: 10719) -TimelockControllerTest:testOperationAlreadyScheduled() (gas: 52263) -TimelockControllerTest:testOperationCancelFinished() (gas: 101839) +TimelockControllerTest:testOperationAlreadyScheduled() (gas: 52466) +TimelockControllerTest:testOperationCancelFinished() (gas: 102072) TimelockControllerTest:testOperationEqualAndGreaterMinimumDelay() (gas: 90672) TimelockControllerTest:testOperationHasBeenExecuted() (gas: 100095) TimelockControllerTest:testOperationHasNotBeenExecuted() (gas: 52687) -TimelockControllerTest:testOperationInsufficientDelay() (gas: 19434) +TimelockControllerTest:testOperationInsufficientDelay() (gas: 19637) TimelockControllerTest:testOperationMinimumDelayUpdate() (gas: 61720) -TimelockControllerTest:testOperationOperationIsNotReady() (gas: 57618) +TimelockControllerTest:testOperationOperationIsNotReady() (gas: 57821) TimelockControllerTest:testOperationPendingIfExecuted() (gas: 98665) TimelockControllerTest:testOperationPendingIfNotYetExecuted() (gas: 52751) -TimelockControllerTest:testOperationPredecessorInvalid() (gas: 62798) -TimelockControllerTest:testOperationPredecessorMultipleNotExecuted() (gas: 92435) -TimelockControllerTest:testOperationPredecessorNotExecuted() (gas: 99196) -TimelockControllerTest:testOperationPredecessorNotScheduled() (gas: 66677) +TimelockControllerTest:testOperationPredecessorInvalid() (gas: 63001) +TimelockControllerTest:testOperationPredecessorMultipleNotExecuted() (gas: 92638) +TimelockControllerTest:testOperationPredecessorNotExecuted() (gas: 99399) +TimelockControllerTest:testOperationPredecessorNotScheduled() (gas: 66880) TimelockControllerTest:testOperationReadyAfterTheExecutionTime() (gas: 53306) TimelockControllerTest:testOperationReadyBeforeTheExecutionTime() (gas: 53249) TimelockControllerTest:testOperationReadyOnTheExecutionTime() (gas: 53143) -TimelockControllerTest:testOperationTargetRevert() (gas: 110054) +TimelockControllerTest:testOperationTargetRevert() (gas: 110257) TimelockControllerTest:testOperationTimestampHasBeenExecuted() (gas: 98439) TimelockControllerTest:testOperationTimestampHasNotBeenExecuted() (gas: 52538) TimelockControllerTest:testProposerCanBatchSchedule() (gas: 3088649) -TimelockControllerTest:testProposerCanCancel() (gas: 20181) +TimelockControllerTest:testProposerCanCancel() (gas: 20647) TimelockControllerTest:testProposerCanSchedule() (gas: 75567) -TimelockControllerTest:testProposerCannotBatchExecute() (gas: 1489786) -TimelockControllerTest:testProposerCannotExecute() (gas: 23503) +TimelockControllerTest:testProposerCannotBatchExecute() (gas: 1490192) +TimelockControllerTest:testProposerCannotExecute() (gas: 23909) TimelockControllerTest:testReturnsLaterMinimumDelayForCalls() (gas: 20780) -TimelockControllerTest:testRevertWhenNotTimelock() (gas: 9030) +TimelockControllerTest:testRevertWhenNotTimelock() (gas: 9249) TimelockControllerTest:testScheduleAndExecuteWithEmptySalt() (gas: 107902) TimelockControllerTest:testScheduleAndExecuteWithNonEmptySalt() (gas: 111259) -TimelockControllerTest:testStrangerCannotBatchExecute() (gas: 748592) -TimelockControllerTest:testStrangerCannotBatchSchedule() (gas: 746399) -TimelockControllerTest:testStrangerCannotCancel() (gas: 11276) -TimelockControllerTest:testStrangerCannotExecute() (gas: 16366) -TimelockControllerTest:testStrangerCannotSchedule() (gas: 14150) +TimelockControllerTest:testStrangerCannotBatchExecute() (gas: 748795) +TimelockControllerTest:testStrangerCannotBatchSchedule() (gas: 746602) +TimelockControllerTest:testStrangerCannotCancel() (gas: 11494) +TimelockControllerTest:testStrangerCannotExecute() (gas: 16569) +TimelockControllerTest:testStrangerCannotSchedule() (gas: 14353) TimelockControllerTest:testSupportsInterfaceInvalidInterfaceId() (gas: 8490) TimelockControllerTest:testSupportsInterfaceInvalidInterfaceIdGasCost() (gas: 9280) TimelockControllerTest:testSupportsInterfaceSuccess() (gas: 10814) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34d99db6..b3d511b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ - **Authentication** - [`AccessControl`](https://github.com/pcaversaccio/snekmate/blob/v0.1.0/src/snekmate/auth/AccessControl.vy): Make `AccessControl` module-friendly. ([#216](https://github.com/pcaversaccio/snekmate/pull/216)) - [`Ownable`](https://github.com/pcaversaccio/snekmate/blob/v0.1.0/src/snekmate/auth/Ownable.vy): Make `Ownable` module-friendly. ([#218](https://github.com/pcaversaccio/snekmate/pull/218)) + - [`Ownable2Step`](https://github.com/pcaversaccio/snekmate/blob/v0.1.0/src/snekmate/auth/Ownable2Step.vy): Make `Ownable2Step` module-friendly. ([#219](https://github.com/pcaversaccio/snekmate/pull/219)) +- **Vyper Contract Deployer** + - [`VyperDeployer`](https://github.com/pcaversaccio/snekmate/blob/v0.1.0/lib/utils/VyperDeployer.sol): Improve error message in the event of a Vyper compilation error. ([#219](https://github.com/pcaversaccio/snekmate/pull/219)) ### 👀 Full Changelog diff --git a/GUIDELINES.md b/GUIDELINES.md index 8f6ca2c8..f6934756 100644 --- a/GUIDELINES.md +++ b/GUIDELINES.md @@ -74,6 +74,7 @@ def _as_singleton_array(element: uint256) -> DynArray[uint256, 1]: - Vyper built-in interface imports - Custom interface imports - Module imports + - Module exports - `public` constants - `internal` constants - `public` immutables diff --git a/lib/utils/VyperDeployer.sol b/lib/utils/VyperDeployer.sol index 80671693..dfd3c492 100644 --- a/lib/utils/VyperDeployer.sol +++ b/lib/utils/VyperDeployer.sol @@ -2,6 +2,13 @@ pragma solidity ^0.8.25; import {Create} from "create-util/Create.sol"; +import {console, StdStyle} from "forge-std/Test.sol"; + +/** + * @dev Error that occurs when compiling a contract has failed. + * @param emitter The contract that emits the error. + */ +error CompilationFailed(address emitter); /** * @dev Error that occurs when deploying a contract has failed. @@ -67,6 +74,20 @@ contract VyperDeployer is Create { */ bytes memory bytecode = cheatCodes.ffi(cmds); + /** + * @dev Revert if the Vyper compilation failed or is a zero-length + * contract creation bytecode. + */ + if (bytecode.length == 0) { + // solhint-disable-next-line no-console + console.log( + StdStyle.red( + "Vyper compilation failed! Please ensure that you have a valid Vyper version installed." + ) + ); + revert CompilationFailed({emitter: self}); + } + /** * @dev Deploy the bytecode with the `CREATE` instruction. */ @@ -110,6 +131,20 @@ contract VyperDeployer is Create { */ bytes memory bytecode = cheatCodes.ffi(cmds); + /** + * @dev Revert if the Vyper compilation failed or is a zero-length + * contract creation bytecode. + */ + if (bytecode.length == 0) { + // solhint-disable-next-line no-console + console.log( + StdStyle.red( + "Vyper compilation failed! Please ensure that you have a valid Vyper version installed." + ) + ); + revert CompilationFailed({emitter: self}); + } + /** * @dev Add the ABI-encoded constructor arguments to the * deployment bytecode. @@ -163,6 +198,20 @@ contract VyperDeployer is Create { */ bytes memory bytecode = cheatCodes.ffi(cmds); + /** + * @dev Revert if the Vyper compilation failed or is a zero-length + * contract creation bytecode. + */ + if (bytecode.length == 0) { + // solhint-disable-next-line no-console + console.log( + StdStyle.red( + "Vyper compilation failed! Please ensure that you have a valid Vyper version installed." + ) + ); + revert CompilationFailed({emitter: self}); + } + /** * @dev Deploy the bytecode with the `CREATE` instruction. */ @@ -214,6 +263,20 @@ contract VyperDeployer is Create { */ bytes memory bytecode = cheatCodes.ffi(cmds); + /** + * @dev Revert if the Vyper compilation failed or is a zero-length + * contract creation bytecode. + */ + if (bytecode.length == 0) { + // solhint-disable-next-line no-console + console.log( + StdStyle.red( + "Vyper compilation failed! Please ensure that you have a valid Vyper version installed." + ) + ); + revert CompilationFailed({emitter: self}); + } + /** * @dev Add the ABI-encoded constructor arguments to the * deployment bytecode. diff --git a/src/snekmate/auth/Ownable2Step.vy b/src/snekmate/auth/Ownable2Step.vy index 1febf20f..c4c58615 100644 --- a/src/snekmate/auth/Ownable2Step.vy +++ b/src/snekmate/auth/Ownable2Step.vy @@ -15,14 +15,26 @@ """ -# @dev Returns the address of the current owner. -# @notice If you declare a variable as `public`, -# Vyper automatically generates an `external` -# getter function for the variable. -owner: public(address) +# @dev We import and use the `Ownable` module. +from . import Ownable as ownable +uses: ownable + + +# @dev We export (i.e. the runtime bytecode exposes these +# functions externally, allowing them to be called using +# the ABI encoding specification) the `external` getter +# function `owner` from the `Ownable` module. +# @notice Please note that you must always also export (if +# required by the contract logic) `public` declared `constant`, +# `immutable`, and state variables, for which Vyper automatically +# generates an `external` getter function for the variable. +exports: ownable.owner # @dev Returns the address of the pending owner. +# @notice If you declare a variable as `public`, +# Vyper automatically generates an `external` +# getter function for the variable. pending_owner: public(address) @@ -33,13 +45,6 @@ event OwnershipTransferStarted: new_owner: indexed(address) -# @dev Emitted when the ownership is transferred -# from `previous_owner` to `new_owner`. -event OwnershipTransferred: - previous_owner: indexed(address) - new_owner: indexed(address) - - @deploy @payable def __init__(): @@ -47,10 +52,12 @@ def __init__(): @dev To omit the opcodes for checking the `msg.value` in the creation-time EVM bytecode, the constructor is declared as `payable`. - @notice The `owner` role will be assigned to - the `msg.sender`. + @notice At initialisation time, the `owner` role will + be assigned to the `msg.sender` since we `uses` + the `Ownable` module, which implements the + aforementioned logic at contract creation time. """ - self._transfer_ownership(msg.sender) + pass @external @@ -68,9 +75,9 @@ def transfer_ownership(new_owner: address): there is one. @param new_owner The 20-byte address of the new owner. """ - self._check_owner() + ownable._check_owner() self.pending_owner = new_owner - log OwnershipTransferStarted(self.owner, new_owner) + log OwnershipTransferStarted(ownable.owner, new_owner) @external @@ -87,22 +94,16 @@ def accept_ownership(): @external def renounce_ownership(): """ - @dev Sourced from {Ownable-renounce_ownership}. - @notice See {Ownable-renounce_ownership} for - the function docstring. + @dev Leaves the contract without an owner. + @notice Renouncing ownership will leave the + contract without an owner, thereby + removing any functionality that is + only available to the owner. """ - self._check_owner() + ownable._check_owner() self._transfer_ownership(empty(address)) -@internal -def _check_owner(): - """ - @dev Throws if the sender is not the owner. - """ - assert msg.sender == self.owner, "Ownable2Step: caller is not the owner" - - @internal def _transfer_ownership(new_owner: address): """ @@ -114,6 +115,4 @@ def _transfer_ownership(new_owner: address): @param new_owner The 20-byte address of the new owner. """ self.pending_owner = empty(address) - old_owner: address = self.owner - self.owner = new_owner - log OwnershipTransferred(old_owner, new_owner) + ownable._transfer_ownership(new_owner) diff --git a/src/snekmate/auth/mocks/Ownable2StepMock.vy b/src/snekmate/auth/mocks/Ownable2StepMock.vy new file mode 100644 index 00000000..45ccf921 --- /dev/null +++ b/src/snekmate/auth/mocks/Ownable2StepMock.vy @@ -0,0 +1,50 @@ +# pragma version ~=0.4.0b5 +""" +@title Ownable2Step Module Reference Implementation +@custom:contract-name Ownable2StepMock +@license GNU Affero General Public License v3.0 only +@author pcaversaccio +""" + + +# @dev We import and initialise the `Ownable` module. +from .. import Ownable as ow +initializes: ow + + +# @dev We import and initialise the `Ownable2Step` module. +from .. import Ownable2Step as o2 +initializes: o2[ownable := ow] + + +# @dev We export (i.e. the runtime bytecode exposes these +# functions externally, allowing them to be called using +# the ABI encoding specification) all `external` functions +# from the `Ownable2Step` module. +# @notice Please note that you must always also export (if +# required by the contract logic) `public` declared `constant`, +# `immutable`, and state variables, for which Vyper automatically +# generates an `external` getter function for the variable. +exports: ( + o2.owner, + o2.pending_owner, + o2.transfer_ownership, + o2.accept_ownership, + o2.renounce_ownership, +) + + +@deploy +@payable +def __init__(): + """ + @dev To omit the opcodes for checking the `msg.value` + in the creation-time EVM bytecode, the constructor + is declared as `payable`. + @notice The `owner` role will be assigned to + the `msg.sender`. + """ + # The following line assigns the `owner` + # to the `msg.sender`. + ow.__init__() + o2.__init__() diff --git a/test/auth/Ownable2Step.t.sol b/test/auth/Ownable2Step.t.sol index 1649d008..2c1a2443 100644 --- a/test/auth/Ownable2Step.t.sol +++ b/test/auth/Ownable2Step.t.sol @@ -17,7 +17,10 @@ contract Ownable2StepTest is Test { function setUp() public { ownable2Step = IOwnable2Step( - vyperDeployer.deployContract("src/snekmate/auth/", "Ownable2Step") + vyperDeployer.deployContract( + "src/snekmate/auth/mocks/", + "Ownable2StepMock" + ) ); } @@ -28,7 +31,10 @@ contract Ownable2StepTest is Test { vm.expectEmit(true, true, false, false); emit IOwnable2Step.OwnershipTransferred(zeroAddress, deployer); ownable2StepInitialEvent = IOwnable2Step( - vyperDeployer.deployContract("src/snekmate/auth/", "Ownable2Step") + vyperDeployer.deployContract( + "src/snekmate/auth/mocks/", + "Ownable2StepMock" + ) ); assertEq(ownable2StepInitialEvent.owner(), deployer); assertEq(ownable2StepInitialEvent.pending_owner(), zeroAddress); @@ -52,7 +58,7 @@ contract Ownable2StepTest is Test { } function testTransferOwnershipNonOwner() public { - vm.expectRevert(bytes("Ownable2Step: caller is not the owner")); + vm.expectRevert(bytes("Ownable: caller is not the owner")); ownable2Step.transfer_ownership(makeAddr("newOwner")); } @@ -104,7 +110,7 @@ contract Ownable2StepTest is Test { } function testRenounceOwnershipNonOwner() public { - vm.expectRevert(bytes("Ownable2Step: caller is not the owner")); + vm.expectRevert(bytes("Ownable: caller is not the owner")); ownable2Step.renounce_ownership(); } @@ -158,7 +164,7 @@ contract Ownable2StepTest is Test { ) public { vm.assume(nonOwner != deployer); vm.prank(nonOwner); - vm.expectRevert(bytes("Ownable2Step: caller is not the owner")); + vm.expectRevert(bytes("Ownable: caller is not the owner")); ownable2Step.transfer_ownership(newOwner); } @@ -245,7 +251,7 @@ contract Ownable2StepTest is Test { function testFuzzRenounceOwnershipNonOwner(address nonOwner) public { vm.assume(nonOwner != deployer); vm.prank(nonOwner); - vm.expectRevert(bytes("Ownable2Step: caller is not the owner")); + vm.expectRevert(bytes("Ownable: caller is not the owner")); ownable2Step.renounce_ownership(); } @@ -285,7 +291,10 @@ contract Ownable2StepInvariants is Test { function setUp() public { ownable2Step = IOwnable2Step( - vyperDeployer.deployContract("src/snekmate/auth/", "Ownable2Step") + vyperDeployer.deployContract( + "src/snekmate/auth/mocks/", + "Ownable2StepMock" + ) ); owner2StepHandler = new Owner2StepHandler( ownable2Step, @@ -295,11 +304,11 @@ contract Ownable2StepInvariants is Test { targetContract(address(owner2StepHandler)); } - function invariantOwner() public view { + function statefulFuzzOwner() public view { assertEq(ownable2Step.owner(), owner2StepHandler.owner()); } - function invariantPendingOwner() public view { + function statefulFuzzPendingOwner() public view { assertEq( ownable2Step.pending_owner(), owner2StepHandler.pending_owner()