diff --git a/.gas-snapshot b/.gas-snapshot index 3b0a1bf8..a83ddbc6 100644 --- a/.gas-snapshot +++ b/.gas-snapshot @@ -17,7 +17,7 @@ AccessControlTest:testGrantRoleAdminRoleSuccess() (gas: 44705) AccessControlTest:testGrantRoleMultipleTimesSuccess() (gas: 49948) AccessControlTest:testGrantRoleNonAdmin() (gas: 14998) AccessControlTest:testGrantRoleSuccess() (gas: 44924) -AccessControlTest:testInitialSetup() (gas: 468063) +AccessControlTest:testInitialSetup() (gas: 468134) AccessControlTest:testRenounceRoleAdminRoleSuccess() (gas: 19927) AccessControlTest:testRenounceRoleMultipleTimesSuccess() (gas: 45206) AccessControlTest:testRenounceRoleNonMsgSender() (gas: 10644) @@ -60,8 +60,8 @@ BatchDistributorTest:testDistributeTokenMultipleAddressesSuccess() (gas: 616202) BatchDistributorTest:testDistributeTokenOneAddressSuccess() (gas: 578527) BatchDistributorTest:testDistributeTokenRevertWithInsufficientAllowance() (gas: 574268) BatchDistributorTest:testDistributeTokenRevertWithInsufficientBalance() (gas: 575054) -BatchDistributorTest:testFuzzDistributeEtherMultipleAddressesSuccess(((address,uint256)[]),uint256) (runs: 256, μ: 1841554, ~: 1861320) -BatchDistributorTest:testFuzzDistributeTokenMultipleAddressesSuccess(((address,uint256)[]),address,uint256) (runs: 256, μ: 1334694, ~: 1308136) +BatchDistributorTest:testFuzzDistributeEtherMultipleAddressesSuccess(((address,uint256)[]),uint256) (runs: 256, μ: 1847732, ~: 1861320) +BatchDistributorTest:testFuzzDistributeTokenMultipleAddressesSuccess(((address,uint256)[]),address,uint256) (runs: 256, μ: 1338225, ~: 1332404) Create2AddressTest:testComputeAddress() (gas: 550599) Create2AddressTest:testComputeAddressSelf() (gas: 558922) Create2AddressTest:testFuzzComputeAddress(bytes32,address) (runs: 256, μ: 551194, ~: 551194) @@ -87,26 +87,26 @@ CreateAddressTest:testComputeAddressSelfNonceUint56() (gas: 539228) CreateAddressTest:testComputeAddressSelfNonceUint64() (gas: 539345) CreateAddressTest:testComputeAddressSelfNonceUint8() (gas: 538951) CreateAddressTest:testComputeAddressSelfRevertTooHighNonce() (gas: 8836) -CreateAddressTest:testFuzzComputeAddressNonce0x7f(uint64,address) (runs: 256, μ: 537944, ~: 538066) -CreateAddressTest:testFuzzComputeAddressNonceUint16(uint64,address) (runs: 256, μ: 537412, ~: 537680) -CreateAddressTest:testFuzzComputeAddressNonceUint24(uint64,address) (runs: 256, μ: 537536, ~: 537657) -CreateAddressTest:testFuzzComputeAddressNonceUint32(uint64,address) (runs: 256, μ: 537547, ~: 537664) -CreateAddressTest:testFuzzComputeAddressNonceUint40(uint64,address) (runs: 256, μ: 537662, ~: 537756) +CreateAddressTest:testFuzzComputeAddressNonce0x7f(uint64,address) (runs: 256, μ: 537952, ~: 538066) +CreateAddressTest:testFuzzComputeAddressNonceUint16(uint64,address) (runs: 256, μ: 537400, ~: 537680) +CreateAddressTest:testFuzzComputeAddressNonceUint24(uint64,address) (runs: 256, μ: 537534, ~: 537657) +CreateAddressTest:testFuzzComputeAddressNonceUint32(uint64,address) (runs: 256, μ: 537550, ~: 537664) +CreateAddressTest:testFuzzComputeAddressNonceUint40(uint64,address) (runs: 256, μ: 537661, ~: 537756) CreateAddressTest:testFuzzComputeAddressNonceUint48(uint64,address) (runs: 256, μ: 537642, ~: 537740) -CreateAddressTest:testFuzzComputeAddressNonceUint56(uint64,address) (runs: 256, μ: 537690, ~: 537769) -CreateAddressTest:testFuzzComputeAddressNonceUint64(uint64,address) (runs: 256, μ: 537674, ~: 537873) -CreateAddressTest:testFuzzComputeAddressNonceUint8(uint64,address) (runs: 256, μ: 537454, ~: 537531) +CreateAddressTest:testFuzzComputeAddressNonceUint56(uint64,address) (runs: 256, μ: 537682, ~: 537769) +CreateAddressTest:testFuzzComputeAddressNonceUint64(uint64,address) (runs: 256, μ: 537665, ~: 537873) +CreateAddressTest:testFuzzComputeAddressNonceUint8(uint64,address) (runs: 256, μ: 537461, ~: 537531) CreateAddressTest:testFuzzComputeAddressRevertTooHighNonce(uint256,address) (runs: 256, μ: 12923, ~: 12857) CreateAddressTest:testFuzzComputeAddressSelfNonce0x7f(uint64) (runs: 256, μ: 543801, ~: 543905) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint16(uint64) (runs: 256, μ: 543032, ~: 542941) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint24(uint64) (runs: 256, μ: 543305, ~: 543395) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint32(uint64) (runs: 256, μ: 543383, ~: 543491) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint40(uint64) (runs: 256, μ: 543388, ~: 543475) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint48(uint64) (runs: 256, μ: 543440, ~: 543549) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint56(uint64) (runs: 256, μ: 543529, ~: 543619) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint64(uint64) (runs: 256, μ: 543576, ~: 543749) -CreateAddressTest:testFuzzComputeAddressSelfNonceUint8(uint64) (runs: 256, μ: 543105, ~: 543186) -CreateAddressTest:testFuzzComputeAddressSelfRevertTooHighNonce(uint256) (runs: 256, μ: 12727, ~: 12696) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint16(uint64) (runs: 256, μ: 543047, ~: 543194) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint24(uint64) (runs: 256, μ: 543298, ~: 543395) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint32(uint64) (runs: 256, μ: 543384, ~: 543491) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint40(uint64) (runs: 256, μ: 543390, ~: 543475) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint48(uint64) (runs: 256, μ: 543439, ~: 543549) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint56(uint64) (runs: 256, μ: 543530, ~: 543619) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint64(uint64) (runs: 256, μ: 543571, ~: 543749) +CreateAddressTest:testFuzzComputeAddressSelfNonceUint8(uint64) (runs: 256, μ: 543110, ~: 543186) +CreateAddressTest:testFuzzComputeAddressSelfRevertTooHighNonce(uint256) (runs: 256, μ: 12730, ~: 12696) ECDSATest:testEthSignedMessageHash() (gas: 5846) ECDSATest:testFuzzEthSignedMessageHash(string) (runs: 256, μ: 6432, ~: 6426) ECDSATest:testFuzzRecoverWithInvalidSignature(bytes,string) (runs: 256, μ: 15159, ~: 15161) @@ -132,8 +132,8 @@ ECDSATest:testToTypedDataHash() (gas: 5937) EIP712DomainSeparatorTest:testCachedDomainSeparatorV4() (gas: 7562) EIP712DomainSeparatorTest:testDomainSeparatorV4() (gas: 11305) EIP712DomainSeparatorTest:testEIP712Domain() (gas: 13629) -EIP712DomainSeparatorTest:testFuzzDomainSeparatorV4(uint8) (runs: 256, μ: 11460, ~: 11480) -EIP712DomainSeparatorTest:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 256, μ: 19157, ~: 19122) +EIP712DomainSeparatorTest:testFuzzDomainSeparatorV4(uint8) (runs: 256, μ: 11459, ~: 11480) +EIP712DomainSeparatorTest:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 256, μ: 19158, ~: 19122) EIP712DomainSeparatorTest:testFuzzHashTypedDataV4(address,address,uint256,uint256,uint64) (runs: 256, μ: 7698, ~: 7698) EIP712DomainSeparatorTest:testHashTypedDataV4() (gas: 13017) ERC1155Invariants:invariantOwner() (runs: 256, calls: 3840, reverts: 3437) @@ -163,39 +163,39 @@ ERC1155Test:testExistsAfterBatchMint() (gas: 143320) ERC1155Test:testExistsAfterSingleBurn() (gas: 137816) ERC1155Test:testExistsAfterSingleMint() (gas: 119400) ERC1155Test:testExistsBeforeMint() (gas: 7642) -ERC1155Test:testFuzzBurnBatchSuccess(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 132322, ~: 132330) +ERC1155Test:testFuzzBurnBatchSuccess(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 132340, ~: 132344) ERC1155Test:testFuzzBurnSuccess(address,address,uint256) (runs: 256, μ: 140124, ~: 140134) ERC1155Test:testFuzzRenounceOwnershipNonOwner(address) (runs: 256, μ: 13977, ~: 13977) -ERC1155Test:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 48433, ~: 48416) +ERC1155Test:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 48432, ~: 48416) ERC1155Test:testFuzzSafeBatchTransferFromByApprovedOperator(address,address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 225230, ~: 225191) ERC1155Test:testFuzzSafeBatchTransferFromEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 190337, ~: 190304) ERC1155Test:testFuzzSafeBatchTransferFromNoData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 564154, ~: 564164) -ERC1155Test:testFuzzSafeBatchTransferFromWithData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 564743, ~: 564321) -ERC1155Test:testFuzzSafeMintBatchEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 152244, ~: 152222) -ERC1155Test:testFuzzSafeMintBatchNoData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 519951, ~: 519951) +ERC1155Test:testFuzzSafeBatchTransferFromWithData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 564789, ~: 565221) +ERC1155Test:testFuzzSafeMintBatchEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 152243, ~: 152222) +ERC1155Test:testFuzzSafeMintBatchNoData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 519941, ~: 519951) ERC1155Test:testFuzzSafeMintBatchNonMinter(address) (runs: 256, μ: 40926, ~: 40926) -ERC1155Test:testFuzzSafeMintBatchWithData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 520293, ~: 520066) +ERC1155Test:testFuzzSafeMintBatchWithData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 520268, ~: 520066) ERC1155Test:testFuzzSafeMintEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 151294, ~: 151259) -ERC1155Test:testFuzzSafeMintNoData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 520118, ~: 520118) +ERC1155Test:testFuzzSafeMintNoData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 520108, ~: 520118) ERC1155Test:testFuzzSafeMintNonMinter(address) (runs: 256, μ: 33132, ~: 33132) -ERC1155Test:testFuzzSafeMintWithData(address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 521416, ~: 521009) +ERC1155Test:testFuzzSafeMintWithData(address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 521406, ~: 521009) ERC1155Test:testFuzzSafeTransferFromByApprovedOperator(address,address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 204239, ~: 204191) ERC1155Test:testFuzzSafeTransferFromEOAReceiver(address,address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 169433, ~: 169391) -ERC1155Test:testFuzzSafeTransferFromNoData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 606373, ~: 606383) -ERC1155Test:testFuzzSafeTransferFromWithData(address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 608355, ~: 607645) -ERC1155Test:testFuzzSetApprovalForAllRevoke(address,address) (runs: 256, μ: 31053, ~: 31022) +ERC1155Test:testFuzzSafeTransferFromNoData(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 606383, ~: 606383) +ERC1155Test:testFuzzSafeTransferFromWithData(address,uint256,uint256,uint256,uint256,bytes) (runs: 256, μ: 608365, ~: 607645) +ERC1155Test:testFuzzSetApprovalForAllRevoke(address,address) (runs: 256, μ: 31054, ~: 31022) ERC1155Test:testFuzzSetApprovalForAllSuccess(address,address) (runs: 256, μ: 44181, ~: 44181) ERC1155Test:testFuzzSetMinterNonOwner(address,string) (runs: 256, μ: 15772, ~: 15699) ERC1155Test:testFuzzSetMinterSuccess(string) (runs: 256, μ: 33178, ~: 33178) ERC1155Test:testFuzzSetUriNonMinter(address) (runs: 256, μ: 14452, ~: 14452) -ERC1155Test:testFuzzTotalSupplyAfterBatchBurn(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 126362, ~: 126370) -ERC1155Test:testFuzzTotalSupplyAfterBatchMint(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 140985, ~: 140922) -ERC1155Test:testFuzzTotalSupplyAfterSingleBurn(address,uint256,bytes) (runs: 256, μ: 138017, ~: 138007) -ERC1155Test:testFuzzTotalSupplyAfterSingleMint(uint256,uint256,bytes) (runs: 256, μ: 92819, ~: 119839) +ERC1155Test:testFuzzTotalSupplyAfterBatchBurn(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 126380, ~: 126384) +ERC1155Test:testFuzzTotalSupplyAfterBatchMint(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 140990, ~: 141055) +ERC1155Test:testFuzzTotalSupplyAfterSingleBurn(address,uint256,bytes) (runs: 256, μ: 138036, ~: 138007) +ERC1155Test:testFuzzTotalSupplyAfterSingleMint(uint256,uint256,bytes) (runs: 256, μ: 93519, ~: 119839) ERC1155Test:testFuzzTransferOwnershipNonOwner(address,address) (runs: 256, μ: 14086, ~: 14086) -ERC1155Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 256, μ: 73956, ~: 73928) +ERC1155Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 256, μ: 73958, ~: 73928) ERC1155Test:testHasOwner() (gas: 9714) -ERC1155Test:testInitialSetup() (gas: 2810217) +ERC1155Test:testInitialSetup() (gas: 2810225) ERC1155Test:testRenounceOwnershipNonOwner() (gas: 10918) ERC1155Test:testRenounceOwnershipSuccess() (gas: 22164) ERC1155Test:testSafeBatchTransferFromByApprovedOperator() (gas: 337726) @@ -262,12 +262,12 @@ ERC1155Test:testTotalSupplyBeforeMint() (gas: 7562) ERC1155Test:testTransferOwnershipNonOwner() (gas: 12652) ERC1155Test:testTransferOwnershipSuccess() (gas: 52936) ERC1155Test:testTransferOwnershipToZeroAddress() (gas: 15672) -ERC1155Test:testUriBaseAndTokenUriNotSet() (gas: 2768301) +ERC1155Test:testUriBaseAndTokenUriNotSet() (gas: 2768309) ERC1155Test:testUriBaseAndTokenUriSet() (gas: 65517) -ERC1155Test:testUriNoBaseURI() (gas: 2818373) +ERC1155Test:testUriNoBaseURI() (gas: 2818381) ERC1155Test:testUriNoTokenUri() (gas: 17407) -ERC20Invariants:invariantOwner() (runs: 256, calls: 3840, reverts: 3393) -ERC20Invariants:invariantTotalSupply() (runs: 256, calls: 3840, reverts: 3393) +ERC20Invariants:invariantOwner() (runs: 256, calls: 3840, reverts: 3392) +ERC20Invariants:invariantTotalSupply() (runs: 256, calls: 3840, reverts: 3392) ERC20Test:testApproveExceedingBalanceCase1() (gas: 40223) ERC20Test:testApproveExceedingBalanceCase2() (gas: 46478) ERC20Test:testApproveFromZeroAddress() (gas: 13220) @@ -290,26 +290,26 @@ ERC20Test:testCachedDomainSeparator() (gas: 7699) ERC20Test:testDomainSeparator() (gas: 11449) ERC20Test:testEIP712Domain() (gas: 13739) ERC20Test:testFuzzApproveSuccess(address,uint256) (runs: 256, μ: 39193, ~: 40437) -ERC20Test:testFuzzBurnFromInsufficientAllowance(address,uint256,uint8) (runs: 256, μ: 175100, ~: 175281) -ERC20Test:testFuzzBurnFromSuccess(address,uint256) (runs: 256, μ: 280076, ~: 281323) +ERC20Test:testFuzzBurnFromInsufficientAllowance(address,uint256,uint8) (runs: 256, μ: 175159, ~: 175281) +ERC20Test:testFuzzBurnFromSuccess(address,uint256) (runs: 256, μ: 280149, ~: 281323) ERC20Test:testFuzzBurnInvalidAmount(address,uint256) (runs: 256, μ: 16454, ~: 16454) -ERC20Test:testFuzzBurnSuccessCase(uint256) (runs: 256, μ: 256020, ~: 255800) -ERC20Test:testFuzzDomainSeparator(uint8) (runs: 256, μ: 11665, ~: 11685) -ERC20Test:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 256, μ: 19448, ~: 19409) +ERC20Test:testFuzzBurnSuccessCase(uint256) (runs: 256, μ: 256023, ~: 255800) +ERC20Test:testFuzzDomainSeparator(uint8) (runs: 256, μ: 11663, ~: 11685) +ERC20Test:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 256, μ: 19449, ~: 19409) ERC20Test:testFuzzMintNonMinter(string,uint256) (runs: 256, μ: 13152, ~: 13080) -ERC20Test:testFuzzMintSuccess(string,uint256) (runs: 256, μ: 53787, ~: 55192) +ERC20Test:testFuzzMintSuccess(string,uint256) (runs: 256, μ: 54123, ~: 55192) ERC20Test:testFuzzPermitInvalid(string,string,uint16) (runs: 256, μ: 45279, ~: 45277) ERC20Test:testFuzzPermitSuccess(string,string,uint16) (runs: 256, μ: 70299, ~: 70295) ERC20Test:testFuzzRenounceOwnershipNonOwner(address) (runs: 256, μ: 13979, ~: 13979) -ERC20Test:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 48360, ~: 48345) +ERC20Test:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 48362, ~: 48345) ERC20Test:testFuzzSetMinterNonOwner(address,string) (runs: 256, μ: 15777, ~: 15704) ERC20Test:testFuzzSetMinterSuccess(string) (runs: 256, μ: 33196, ~: 33196) -ERC20Test:testFuzzTransferFromInsufficientAllowance(address,address,uint256,uint8) (runs: 256, μ: 173539, ~: 173761) -ERC20Test:testFuzzTransferFromSuccess(address,address,uint256) (runs: 256, μ: 200205, ~: 202299) +ERC20Test:testFuzzTransferFromInsufficientAllowance(address,address,uint256,uint8) (runs: 256, μ: 173301, ~: 173761) +ERC20Test:testFuzzTransferFromSuccess(address,address,uint256) (runs: 256, μ: 200320, ~: 202152) ERC20Test:testFuzzTransferInvalidAmount(address,address,uint256) (runs: 256, μ: 16849, ~: 16849) ERC20Test:testFuzzTransferOwnershipNonOwner(address,address) (runs: 256, μ: 14068, ~: 14068) ERC20Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 256, μ: 73901, ~: 73874) -ERC20Test:testFuzzTransferSuccess(address,uint256) (runs: 256, μ: 172888, ~: 173876) +ERC20Test:testFuzzTransferSuccess(address,uint256) (runs: 256, μ: 172888, ~: 173883) ERC20Test:testHasOwner() (gas: 9758) ERC20Test:testInitialSetup() (gas: 1467701) ERC20Test:testMintNonMinter() (gas: 12639) @@ -349,22 +349,22 @@ ERC2981Test:testDeleteDefaultRoyaltyNonOwner() (gas: 10537) ERC2981Test:testFuzzDeleteDefaultRoyaltyNonOwner(address) (runs: 256, μ: 13271, ~: 13271) ERC2981Test:testFuzzRenounceOwnershipNonOwner(address) (runs: 256, μ: 13972, ~: 13972) ERC2981Test:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 24598, ~: 24598) -ERC2981Test:testFuzzResetTokenRoyalty(address,address,uint256,uint256,uint96,uint256) (runs: 256, μ: 93351, ~: 94709) +ERC2981Test:testFuzzResetTokenRoyalty(address,address,uint256,uint256,uint96,uint256) (runs: 256, μ: 93828, ~: 94709) ERC2981Test:testFuzzResetTokenRoyaltyNonOwner(address) (runs: 256, μ: 13246, ~: 13246) -ERC2981Test:testFuzzRoyaltyInfoDefaultRoyalty(address,uint256,uint256,uint96,uint256) (runs: 256, μ: 78058, ~: 79183) -ERC2981Test:testFuzzRoyaltyInfoDeleteDefaultRoyalty(address,uint256,uint256,uint96,uint256) (runs: 256, μ: 61668, ~: 62595) -ERC2981Test:testFuzzRoyaltyInfoSetTokenRoyalty(address,address,uint256,uint256,uint96,uint256) (runs: 256, μ: 119508, ~: 121030) -ERC2981Test:testFuzzRoyaltyInfoSetTokenRoyaltyUpdate(address,address,uint256,uint256,uint96,uint256) (runs: 256, μ: 163562, ~: 165531) -ERC2981Test:testFuzzRoyaltyInfoUpdateDefaultRoyalty(address,address,uint256,uint256,uint96,uint256) (runs: 256, μ: 83802, ~: 84678) +ERC2981Test:testFuzzRoyaltyInfoDefaultRoyalty(address,uint256,uint256,uint96,uint256) (runs: 256, μ: 77838, ~: 79183) +ERC2981Test:testFuzzRoyaltyInfoDeleteDefaultRoyalty(address,uint256,uint256,uint96,uint256) (runs: 256, μ: 61787, ~: 62578) +ERC2981Test:testFuzzRoyaltyInfoSetTokenRoyalty(address,address,uint256,uint256,uint96,uint256) (runs: 256, μ: 119683, ~: 121030) +ERC2981Test:testFuzzRoyaltyInfoSetTokenRoyaltyUpdate(address,address,uint256,uint256,uint96,uint256) (runs: 256, μ: 163331, ~: 165531) +ERC2981Test:testFuzzRoyaltyInfoUpdateDefaultRoyalty(address,address,uint256,uint256,uint96,uint256) (runs: 256, μ: 83706, ~: 84678) ERC2981Test:testFuzzSetDefaultRoyaltyNonOwner(address) (runs: 256, μ: 15525, ~: 15525) -ERC2981Test:testFuzzSetDefaultRoyaltyTooHighFeeNumerator(uint96) (runs: 256, μ: 21337, ~: 21125) +ERC2981Test:testFuzzSetDefaultRoyaltyTooHighFeeNumerator(uint96) (runs: 256, μ: 21332, ~: 21125) ERC2981Test:testFuzzSetTokenRoyaltyInvalidReceiver(address) (runs: 256, μ: 18626, ~: 18626) ERC2981Test:testFuzzSetTokenRoyaltyNonOwner(address) (runs: 256, μ: 15565, ~: 15565) -ERC2981Test:testFuzzSetTokenRoyaltyTooHighFeeNumerator(uint96) (runs: 256, μ: 21378, ~: 21166) +ERC2981Test:testFuzzSetTokenRoyaltyTooHighFeeNumerator(uint96) (runs: 256, μ: 21373, ~: 21166) ERC2981Test:testFuzzTransferOwnershipNonOwner(address,address) (runs: 256, μ: 14039, ~: 14039) ERC2981Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 256, μ: 29577, ~: 29577) ERC2981Test:testHasOwner() (gas: 9688) -ERC2981Test:testInitialSetup() (gas: 468824) +ERC2981Test:testInitialSetup() (gas: 468889) ERC2981Test:testRenounceOwnershipNonOwner() (gas: 10871) ERC2981Test:testRenounceOwnershipSuccess() (gas: 17693) ERC2981Test:testResetTokenRoyalty() (gas: 91144) @@ -388,8 +388,8 @@ ERC2981Test:testSupportsInterfaceSuccessGasCost() (gas: 6345) ERC2981Test:testTransferOwnershipNonOwner() (gas: 12649) ERC2981Test:testTransferOwnershipSuccess() (gas: 22091) ERC2981Test:testTransferOwnershipToZeroAddress() (gas: 15557) -ERC4626VaultInvariants:invariantTotalAssets() (runs: 256, calls: 3840, reverts: 3244) -ERC4626VaultInvariants:invariantTotalSupply() (runs: 256, calls: 3840, reverts: 3244) +ERC4626VaultInvariants:invariantTotalAssets() (runs: 256, calls: 3840, reverts: 3242) +ERC4626VaultInvariants:invariantTotalSupply() (runs: 256, calls: 3840, reverts: 3242) ERC4626VaultTest:testCachedDomainSeparator() (gas: 7676) ERC4626VaultTest:testDepositInsufficientAllowance() (gas: 82425) ERC4626VaultTest:testDepositWithNoApproval() (gas: 24740) @@ -400,13 +400,13 @@ ERC4626VaultTest:testEmptyVaultDeposit() (gas: 556789) ERC4626VaultTest:testEmptyVaultMint() (gas: 557600) ERC4626VaultTest:testEmptyVaultRedeem() (gas: 191988) ERC4626VaultTest:testEmptyVaultwithdraw() (gas: 204833) -ERC4626VaultTest:testFail_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 554108, ~: 557131) -ERC4626VaultTest:testFail_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 556124, ~: 560088) -ERC4626VaultTest:testFuzzDomainSeparator(uint8) (runs: 256, μ: 11555, ~: 11577) +ERC4626VaultTest:testFail_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 554494, ~: 558288) +ERC4626VaultTest:testFail_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 556236, ~: 560088) +ERC4626VaultTest:testFuzzDomainSeparator(uint8) (runs: 256, μ: 11556, ~: 11577) ERC4626VaultTest:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 256, μ: 19366, ~: 19328) ERC4626VaultTest:testFuzzPermitInvalid(string,string,uint16) (runs: 256, μ: 45211, ~: 45209) ERC4626VaultTest:testFuzzPermitSuccess(string,string,uint16) (runs: 256, μ: 70194, ~: 70190) -ERC4626VaultTest:testInitialSetup() (gas: 5784605) +ERC4626VaultTest:testInitialSetup() (gas: 5784849) ERC4626VaultTest:testMintWithNoApproval() (gas: 24769) ERC4626VaultTest:testMintZero() (gas: 37196) ERC4626VaultTest:testMultipleMintDepositRedeemWithdraw() (gas: 356426) @@ -424,30 +424,30 @@ ERC4626VaultTest:testVaultInteractionsForSomeoneElse() (gas: 221714) ERC4626VaultTest:testWithdrawInsufficientAllowance() (gas: 122543) ERC4626VaultTest:testWithdrawInsufficientAssets() (gas: 117830) ERC4626VaultTest:testWithdrawWithNoAssets() (gas: 21327) -ERC4626VaultTest:test_RT_deposit_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 473526, ~: 476185) -ERC4626VaultTest:test_RT_deposit_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 475160, ~: 477653) -ERC4626VaultTest:test_RT_mint_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 474813, ~: 476581) -ERC4626VaultTest:test_RT_mint_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 476634, ~: 478214) -ERC4626VaultTest:test_RT_redeem_deposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 473604, ~: 476586) -ERC4626VaultTest:test_RT_redeem_mint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 474039, ~: 476816) -ERC4626VaultTest:test_RT_withdraw_deposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 475286, ~: 478384) -ERC4626VaultTest:test_RT_withdraw_mint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 476468, ~: 478675) -ERC4626VaultTest:test_asset((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423394, ~: 427770) -ERC4626VaultTest:test_convertToAssets((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 429102, ~: 432564) -ERC4626VaultTest:test_convertToShares((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 429207, ~: 432461) -ERC4626VaultTest:test_deposit((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 468538, ~: 472319) -ERC4626VaultTest:test_maxDeposit((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423407, ~: 427783) -ERC4626VaultTest:test_maxMint((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423432, ~: 427808) -ERC4626VaultTest:test_maxRedeem((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423546, ~: 427922) -ERC4626VaultTest:test_maxWithdraw((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 425118, ~: 429612) -ERC4626VaultTest:test_mint((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 469734, ~: 472550) -ERC4626VaultTest:test_previewDeposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 465833, ~: 468641) -ERC4626VaultTest:test_previewMint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 467426, ~: 468887) -ERC4626VaultTest:test_previewRedeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 468054, ~: 470493) -ERC4626VaultTest:test_previewWithdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 470461, ~: 472090) -ERC4626VaultTest:test_redeem((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 472207, ~: 475074) -ERC4626VaultTest:test_totalAssets((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423996, ~: 428372) -ERC4626VaultTest:test_withdraw((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 473588, ~: 475995) +ERC4626VaultTest:test_RT_deposit_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 473282, ~: 475685) +ERC4626VaultTest:test_RT_deposit_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 475436, ~: 477510) +ERC4626VaultTest:test_RT_mint_redeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 474446, ~: 476378) +ERC4626VaultTest:test_RT_mint_withdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 476578, ~: 478011) +ERC4626VaultTest:test_RT_redeem_deposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 473524, ~: 476596) +ERC4626VaultTest:test_RT_redeem_mint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 473988, ~: 476755) +ERC4626VaultTest:test_RT_withdraw_deposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 475296, ~: 478274) +ERC4626VaultTest:test_RT_withdraw_mint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 476226, ~: 478233) +ERC4626VaultTest:test_asset((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423587, ~: 427672) +ERC4626VaultTest:test_convertToAssets((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 429491, ~: 432688) +ERC4626VaultTest:test_convertToShares((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 428755, ~: 432626) +ERC4626VaultTest:test_deposit((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 469025, ~: 472398) +ERC4626VaultTest:test_maxDeposit((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423600, ~: 427685) +ERC4626VaultTest:test_maxMint((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423625, ~: 427710) +ERC4626VaultTest:test_maxRedeem((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 423740, ~: 427824) +ERC4626VaultTest:test_maxWithdraw((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 425277, ~: 429363) +ERC4626VaultTest:test_mint((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 469801, ~: 472593) +ERC4626VaultTest:test_previewDeposit((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 466022, ~: 468277) +ERC4626VaultTest:test_previewMint((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 467287, ~: 468997) +ERC4626VaultTest:test_previewRedeem((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 468183, ~: 470717) +ERC4626VaultTest:test_previewWithdraw((address[4],uint256[4],uint256[4],int256),uint256) (runs: 256, μ: 470682, ~: 472156) +ERC4626VaultTest:test_redeem((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 472239, ~: 475113) +ERC4626VaultTest:test_totalAssets((address[4],uint256[4],uint256[4],int256)) (runs: 256, μ: 424190, ~: 428274) +ERC4626VaultTest:test_withdraw((address[4],uint256[4],uint256[4],int256),uint256,uint256) (runs: 256, μ: 473616, ~: 476610) ERC721Invariants:invariantOwner() (runs: 256, calls: 3840, reverts: 3469) ERC721Invariants:invariantTotalSupply() (runs: 256, calls: 3840, reverts: 3469) ERC721Test:testApproveClearingApprovalWithNoPriorApproval() (gas: 177294) @@ -469,29 +469,29 @@ ERC721Test:testBurnSuccessViaApproveAndSetApprovalForAll() (gas: 371421) ERC721Test:testCachedDomainSeparator() (gas: 7699) ERC721Test:testDomainSeparator() (gas: 11450) ERC721Test:testEIP712Domain() (gas: 13877) -ERC721Test:testFuzzApproveClearingApprovalWithNoPriorApproval(address,address) (runs: 256, μ: 196799, ~: 196799) +ERC721Test:testFuzzApproveClearingApprovalWithNoPriorApproval(address,address) (runs: 256, μ: 196789, ~: 196799) ERC721Test:testFuzzApproveClearingApprovalWithPriorApproval(address,address) (runs: 256, μ: 184072, ~: 184072) ERC721Test:testFuzzApproveFromNonOwner(address) (runs: 256, μ: 172895, ~: 172895) ERC721Test:testFuzzApproveFromOperatorAddress(address,address,address) (runs: 256, μ: 222958, ~: 222958) -ERC721Test:testFuzzApproveWithNoPriorApproval(address,address) (runs: 256, μ: 196754, ~: 196754) -ERC721Test:testFuzzApproveWithPriorApproval(address,address) (runs: 256, μ: 203884, ~: 203884) -ERC721Test:testFuzzBurnSuccess(address) (runs: 256, μ: 305607, ~: 305600) +ERC721Test:testFuzzApproveWithNoPriorApproval(address,address) (runs: 256, μ: 196744, ~: 196754) +ERC721Test:testFuzzApproveWithPriorApproval(address,address) (runs: 256, μ: 203874, ~: 203884) +ERC721Test:testFuzzBurnSuccess(address) (runs: 256, μ: 305615, ~: 305600) ERC721Test:testFuzzDomainSeparator(uint8) (runs: 256, μ: 11643, ~: 11663) -ERC721Test:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 256, μ: 19582, ~: 19542) -ERC721Test:testFuzzGetApprovedApprovedTokenId(address,address) (runs: 256, μ: 194385, ~: 194385) +ERC721Test:testFuzzEIP712Domain(bytes1,uint8,bytes32,uint256[]) (runs: 256, μ: 19581, ~: 19542) +ERC721Test:testFuzzGetApprovedApprovedTokenId(address,address) (runs: 256, μ: 194375, ~: 194385) ERC721Test:testFuzzPermitInvalid(string,string,uint16) (runs: 256, μ: 201667, ~: 201665) ERC721Test:testFuzzPermitSuccess(string,string,uint16) (runs: 256, μ: 227137, ~: 227133) ERC721Test:testFuzzRenounceOwnershipNonOwner(address) (runs: 256, μ: 13938, ~: 13938) ERC721Test:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 48380, ~: 48364) ERC721Test:testFuzzSafeMintNonMinter(address) (runs: 256, μ: 15894, ~: 15894) -ERC721Test:testFuzzSafeMintSuccess(address[]) (runs: 256, μ: 21093782, ~: 20702624) -ERC721Test:testFuzzSafeTransferFromWithData(address,address,address,bytes) (runs: 256, μ: 1428999, ~: 1429883) +ERC721Test:testFuzzSafeMintSuccess(address[]) (runs: 256, μ: 20866394, ~: 20267685) +ERC721Test:testFuzzSafeTransferFromWithData(address,address,address,bytes) (runs: 256, μ: 1429057, ~: 1429893) ERC721Test:testFuzzSetApprovalForAllSuccess(address,address) (runs: 256, μ: 188481, ~: 188481) ERC721Test:testFuzzSetMinterNonOwner(address,string) (runs: 256, μ: 15822, ~: 15749) ERC721Test:testFuzzSetMinterSuccess(string) (runs: 256, μ: 33217, ~: 33216) -ERC721Test:testFuzzTokenByIndex(address,string[]) (runs: 256, μ: 21137630, ~: 21161157) -ERC721Test:testFuzzTotalSupply(address,string[]) (runs: 256, μ: 21009881, ~: 21033698) -ERC721Test:testFuzzTransferFrom(address,address,address) (runs: 256, μ: 560097, ~: 560080) +ERC721Test:testFuzzTokenByIndex(address,string[]) (runs: 256, μ: 21262289, ~: 21172166) +ERC721Test:testFuzzTotalSupply(address,string[]) (runs: 256, μ: 21133787, ~: 21043655) +ERC721Test:testFuzzTransferFrom(address,address,address) (runs: 256, μ: 560096, ~: 560080) ERC721Test:testFuzzTransferOwnershipNonOwner(address,address) (runs: 256, μ: 14090, ~: 14090) ERC721Test:testFuzzTransferOwnershipSuccess(address,address) (runs: 256, μ: 73920, ~: 73892) ERC721Test:testGetApprovedApprovedTokenId() (gas: 194287) @@ -556,19 +556,19 @@ ERC721Test:testTransferOwnershipToZeroAddress() (gas: 15608) MathTest:testCbrtRoundDown() (gas: 41159) MathTest:testCbrtRoundUp() (gas: 41806) MathTest:testCeilDiv() (gas: 12481) -MathTest:testFuzzCbrt(uint256,bool) (runs: 256, μ: 19434, ~: 19245) +MathTest:testFuzzCbrt(uint256,bool) (runs: 256, μ: 19445, ~: 19333) MathTest:testFuzzCeilDiv(uint256,uint256) (runs: 256, μ: 8962, ~: 8979) MathTest:testFuzzInt256Average(int256,int256) (runs: 256, μ: 5683, ~: 5683) -MathTest:testFuzzLog10(uint256,bool) (runs: 256, μ: 6972, ~: 6961) +MathTest:testFuzzLog10(uint256,bool) (runs: 256, μ: 6966, ~: 6961) MathTest:testFuzzLog2(uint256,bool) (runs: 256, μ: 6825, ~: 6803) -MathTest:testFuzzLog256(uint256,bool) (runs: 256, μ: 6854, ~: 6836) +MathTest:testFuzzLog256(uint256,bool) (runs: 256, μ: 6845, ~: 6822) MathTest:testFuzzMulDiv(uint256,uint256,uint256) (runs: 256, μ: 13038, ~: 12781) -MathTest:testFuzzMulDivDomain(uint256,uint256,uint256) (runs: 256, μ: 10488, ~: 10570) +MathTest:testFuzzMulDivDomain(uint256,uint256,uint256) (runs: 256, μ: 10485, ~: 10570) MathTest:testFuzzSignum(int256) (runs: 256, μ: 5578, ~: 5570) MathTest:testFuzzUint256Average(uint256,uint256) (runs: 256, μ: 5763, ~: 5763) -MathTest:testFuzzWadCbrt(uint256) (runs: 256, μ: 18989, ~: 18681) -MathTest:testFuzzWadExp(int256) (runs: 256, μ: 14490, ~: 14597) -MathTest:testFuzzWadLn(int256) (runs: 256, μ: 15994, ~: 15784) +MathTest:testFuzzWadCbrt(uint256) (runs: 256, μ: 18982, ~: 18686) +MathTest:testFuzzWadExp(int256) (runs: 256, μ: 14487, ~: 14597) +MathTest:testFuzzWadLn(int256) (runs: 256, μ: 15983, ~: 15735) MathTest:testInt256Average() (gas: 12010) MathTest:testLog10RoundDown() (gas: 17685) MathTest:testLog10RoundUp() (gas: 18866) @@ -589,8 +589,8 @@ MathTest:testWadExp() (gas: 24809) MathTest:testWadExpOverflow() (gas: 11127) MathTest:testWadLn() (gas: 24196) MathTest:testWadLnNegativeValues() (gas: 11130) -MerkleProofVerificationTest:testFuzzMultiProofVerifySingleLeaf(bytes32[],uint256) (runs: 256, μ: 1649976162, ~: 1649972673) -MerkleProofVerificationTest:testFuzzVerify(bytes32[],uint256) (runs: 256, μ: 135974873, ~: 135971461) +MerkleProofVerificationTest:testFuzzMultiProofVerifySingleLeaf(bytes32[],uint256) (runs: 256, μ: 1649976167, ~: 1649972653) +MerkleProofVerificationTest:testFuzzVerify(bytes32[],uint256) (runs: 256, μ: 135974879, ~: 135971441) MerkleProofVerificationTest:testFuzzVerifyMultiProofMultipleLeaves(bool,bool,bool) (runs: 256, μ: 412472467, ~: 412472462) MerkleProofVerificationTest:testInvalidMerkleMultiProof() (gas: 412478415) MerkleProofVerificationTest:testInvalidMerkleProof() (gas: 33970390) @@ -615,14 +615,14 @@ Ownable2StepInvariants:invariantPendingOwner() (runs: 256, calls: 3840, reverts: Ownable2StepTest:testAcceptOwnershipNonPendingOwner() (gas: 46604) Ownable2StepTest:testAcceptOwnershipSuccess() (gas: 39404) Ownable2StepTest:testFuzzAcceptOwnershipNonPendingOwner(address) (runs: 256, μ: 45814, ~: 45814) -Ownable2StepTest:testFuzzAcceptOwnershipSuccess(address,address) (runs: 256, μ: 65113, ~: 65084) +Ownable2StepTest:testFuzzAcceptOwnershipSuccess(address,address) (runs: 256, μ: 65114, ~: 65084) Ownable2StepTest:testFuzzPendingOwnerResetAfterRenounceOwnership(address) (runs: 256, μ: 38751, ~: 38735) Ownable2StepTest:testFuzzRenounceOwnershipNonOwner(address) (runs: 256, μ: 13954, ~: 13954) Ownable2StepTest:testFuzzRenounceOwnershipSuccess(address) (runs: 256, μ: 43684, ~: 43668) Ownable2StepTest:testFuzzTransferOwnershipNonOwner(address,address) (runs: 256, μ: 14106, ~: 14106) Ownable2StepTest:testFuzzTransferOwnershipSuccess(address,address) (runs: 256, μ: 50453, ~: 50453) Ownable2StepTest:testHasOwner() (gas: 9668) -Ownable2StepTest:testInitialSetup() (gas: 235652) +Ownable2StepTest:testInitialSetup() (gas: 235722) Ownable2StepTest:testPendingOwnerResetAfterRenounceOwnership() (gas: 39629) Ownable2StepTest:testRenounceOwnershipNonOwner() (gas: 10941) Ownable2StepTest:testRenounceOwnershipSuccess() (gas: 19879) @@ -658,13 +658,13 @@ SignatureCheckerTest:testFuzzEOAWithInvalidSignature(bytes,string) (runs: 256, SignatureCheckerTest:testFuzzEOAWithInvalidSigner(string,string) (runs: 256, μ: 21466, ~: 21527) SignatureCheckerTest:testFuzzEOAWithValidSignature(string,string) (runs: 256, μ: 20585, ~: 20646) SignatureCheckerTest:testInitialSetup() (gas: 5415) -TimelockControllerInvariants:invariantExecutedLessThanOrEqualToScheduled() (runs: 256, calls: 3840, reverts: 1343) -TimelockControllerInvariants:invariantExecutedProposalCancellation() (runs: 256, calls: 3840, reverts: 1312) -TimelockControllerInvariants:invariantExecutingCancelledProposal() (runs: 256, calls: 3840, reverts: 1305) -TimelockControllerInvariants:invariantExecutingNotReadyProposal() (runs: 256, calls: 3840, reverts: 1341) -TimelockControllerInvariants:invariantOnceProposalExecution() (runs: 256, calls: 3840, reverts: 1343) -TimelockControllerInvariants:invariantProposalsExecutedMatchCount() (runs: 256, calls: 3840, reverts: 1343) -TimelockControllerInvariants:invariantSumOfProposals() (runs: 256, calls: 3840, reverts: 1343) +TimelockControllerInvariants:invariantExecutedLessThanOrEqualToScheduled() (runs: 256, calls: 3840, reverts: 1308) +TimelockControllerInvariants:invariantExecutedProposalCancellation() (runs: 256, calls: 3840, reverts: 1319) +TimelockControllerInvariants:invariantExecutingCancelledProposal() (runs: 256, calls: 3840, reverts: 1304) +TimelockControllerInvariants:invariantExecutingNotReadyProposal() (runs: 256, calls: 3840, reverts: 1277) +TimelockControllerInvariants:invariantOnceProposalExecution() (runs: 256, calls: 3840, reverts: 1309) +TimelockControllerInvariants:invariantProposalsExecutedMatchCount() (runs: 256, calls: 3840, reverts: 1308) +TimelockControllerInvariants:invariantSumOfProposals() (runs: 256, calls: 3840, reverts: 1308) TimelockControllerTest:testAdminCannotBatchExecute() (gas: 750573) TimelockControllerTest:testAdminCannotBatchSchedule() (gas: 748359) TimelockControllerTest:testAdminCannotCancel() (gas: 13280) @@ -705,12 +705,12 @@ TimelockControllerTest:testExecutorCannotSchedule() (gas: 19073) TimelockControllerTest:testFuzzBatchValue(uint256) (runs: 256, μ: 4652716, ~: 4652826) TimelockControllerTest:testFuzzHashOperation(address,uint256,bytes,bytes32,bytes32) (runs: 256, μ: 8261, ~: 8159) TimelockControllerTest:testFuzzHashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32) (runs: 256, μ: 1881454, ~: 1889945) -TimelockControllerTest:testFuzzOperationValue(uint256) (runs: 256, μ: 113179, ~: 113263) -TimelockControllerTest:testHandleERC1155() (gas: 41505969) +TimelockControllerTest:testFuzzOperationValue(uint256) (runs: 256, μ: 113104, ~: 113263) +TimelockControllerTest:testHandleERC1155() (gas: 41505977) TimelockControllerTest:testHandleERC721() (gas: 7056837) TimelockControllerTest:testHashOperation() (gas: 10233) TimelockControllerTest:testHashOperationBatch() (gas: 1523421) -TimelockControllerTest:testInitialSetup() (gas: 4245443) +TimelockControllerTest:testInitialSetup() (gas: 4245431) TimelockControllerTest:testInvalidOperation() (gas: 7856) TimelockControllerTest:testOperationAlreadyScheduled() (gas: 52465) TimelockControllerTest:testOperationCancelFinished() (gas: 101892) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index c3c28b4c..11c765e0 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -107,8 +107,8 @@ jobs: - name: Validate URLs run: | - awesome_bot ./*.md src/**/*.vy src/**/interfaces/*.vy \ + awesome_bot ./*.md src/snekmate/**/*.vy src/snekmate/**/interfaces/*.vy \ test/**/*.sol test/**/interfaces/*.sol test/**/mocks/*.sol \ test/**/scripts/*.js scripts/*.py --allow-dupe --allow-redirect \ --request-delay 0.4 \ - --white-list https://www.wagmi.xyz,https://twitter.com,https://github.com/pcaversaccio/snekmate/releases/tag/v0.0.5,https://github.com/pcaversaccio/snekmate/blob/v0.0.5,https://github.com/pcaversaccio/snekmate/compare/v0.0.4...v0.0.5 + --white-list https://www.wagmi.xyz,https://twitter.com,https://github.com/pcaversaccio/snekmate.git@,https://github.com/pcaversaccio/snekmate/releases/tag/v0.0.5,https://github.com/pcaversaccio/snekmate/blob/v0.0.5,https://github.com/pcaversaccio/snekmate/compare/v0.0.4...v0.0.5 diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index b61cd334..c1e3ff89 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -40,7 +40,7 @@ jobs: --user - name: Build a binary wheel and a source tarball - run: python scripts/build.py + run: python -m build - name: Store the distribution packages uses: actions/upload-artifact@v4 diff --git a/.github/workflows/publish-test-pypi.yml b/.github/workflows/publish-test-pypi.yml index 20070bf5..5718e4ca 100644 --- a/.github/workflows/publish-test-pypi.yml +++ b/.github/workflows/publish-test-pypi.yml @@ -37,7 +37,7 @@ jobs: --user - name: Build a binary wheel and a source tarball - run: python scripts/build.py + run: python -m build - name: Store the distribution packages uses: actions/upload-artifact@v4 diff --git a/CHANGELOG.md b/CHANGELOG.md index 272a302c..b578abe9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ ### 🔖 Release Management - Implement `snekmate`-namespaced distribution package building for TestPyPI and PyPI. ([#204](https://github.com/pcaversaccio/snekmate/pull/204)) +- Implement [`src` layout](https://setuptools.pypa.io/en/latest/userguide/package_discovery.html#src-layout) to enable an enhanced local `pip install git+https://github.com/pcaversaccio/snekmate.git@` building. ([#206](https://github.com/pcaversaccio/snekmate/pull/206)) ### 👀 Full Changelog diff --git a/README.md b/README.md index 72d02b0b..1f4d4af0 100644 --- a/README.md +++ b/README.md @@ -15,46 +15,47 @@ ```ml src -├── auth -│ ├── Ownable — "Owner-Based Access Control Functions" -│ ├── Ownable2Step — "2-Step Ownership Transfer Functions" -│ ├── AccessControl — "Multi-Role-Based Access Control Functions" -│ └── interfaces -│ └── IAccessControl — "AccessControl Interface Definition" -├── extensions -│ ├── ERC2981 — "ERC-721 and ERC-1155 Compatible ERC-2981 Reference Implementation" -│ ├── ERC4626 — "Modern and Gas-Efficient ERC-4626 Tokenised Vault Implementation" -│ └── interfaces -│ └── IERC2981 — "EIP-2981 Interface Definition" -├── governance -│ └── TimelockController — "Multi-Role-Based Timelock Controller Reference Implementation" -├── tokens -│ ├── ERC20 — "Modern and Gas-Efficient ERC-20 + EIP-2612 Implementation" -│ ├── ERC721 — "Modern and Gas-Efficient ERC-721 + EIP-4494 Implementation" -│ ├── ERC1155 — "Modern and Gas-Efficient ERC-1155 Implementation" -│ └── interfaces -│ ├── IERC20Permit — "EIP-2612 Interface Definition" -│ ├── IERC721Enumerable — "EIP-721 Optional Enumeration Interface Definition" -│ ├── IERC721Metadata — "EIP-721 Optional Metadata Interface Definition" -│ ├── IERC721Permit — "EIP-4494 Interface Definition" -│ ├── IERC721Receiver — "EIP-721 Token Receiver Interface Definition" -│ ├── IERC1155 — "EIP-1155 Interface Definition" -│ ├── IERC1155MetadataURI — "EIP-1155 Optional Metadata Interface Definition" -│ ├── IERC1155Receiver — "EIP-1155 Token Receiver Interface Definition" -│ └── IERC4906 — "EIP-4906 Interface Definition" -└── utils - ├── Base64 — "Base64 Encoding and Decoding Functions" - ├── BatchDistributor — "Batch Sending Both Native and ERC-20 Tokens" - ├── CreateAddress — "`CREATE` EVM Opcode Utility Function for Address Calculation" - ├── Create2Address — "`CREATE2` EVM Opcode Utility Functions for Address Calculations" - ├── ECDSA — "Elliptic Curve Digital Signature Algorithm (ECDSA) Functions" - ├── SignatureChecker — "ECDSA and EIP-1271 Signature Verification Functions" - ├── EIP712DomainSeparator — "EIP-712 Domain Separator" - ├── Math — "Standard Mathematical Utility Functions" - ├── MerkleProofVerification — "Merkle Tree Proof Verification Functions" - ├── Multicall — "Multicall Functions" - └── interfaces - └── IERC5267 — "EIP-5267 Interface Definition" +└── snekmate + ├── auth + │ ├── Ownable — "Owner-Based Access Control Functions" + │ ├── Ownable2Step — "2-Step Ownership Transfer Functions" + │ ├── AccessControl — "Multi-Role-Based Access Control Functions" + │ └── interfaces + │ └── IAccessControl — "AccessControl Interface Definition" + ├── extensions + │ ├── ERC2981 — "ERC-721 and ERC-1155 Compatible ERC-2981 Reference Implementation" + │ ├── ERC4626 — "Modern and Gas-Efficient ERC-4626 Tokenised Vault Implementation" + │ └── interfaces + │ └── IERC2981 — "EIP-2981 Interface Definition" + ├── governance + │ └── TimelockController — "Multi-Role-Based Timelock Controller Reference Implementation" + ├── tokens + │ ├── ERC20 — "Modern and Gas-Efficient ERC-20 + EIP-2612 Implementation" + │ ├── ERC721 — "Modern and Gas-Efficient ERC-721 + EIP-4494 Implementation" + │ ├── ERC1155 — "Modern and Gas-Efficient ERC-1155 Implementation" + │ └── interfaces + │ ├── IERC20Permit — "EIP-2612 Interface Definition" + │ ├── IERC721Enumerable — "EIP-721 Optional Enumeration Interface Definition" + │ ├── IERC721Metadata — "EIP-721 Optional Metadata Interface Definition" + │ ├── IERC721Permit — "EIP-4494 Interface Definition" + │ ├── IERC721Receiver — "EIP-721 Token Receiver Interface Definition" + │ ├── IERC1155 — "EIP-1155 Interface Definition" + │ ├── IERC1155MetadataURI — "EIP-1155 Optional Metadata Interface Definition" + │ ├── IERC1155Receiver — "EIP-1155 Token Receiver Interface Definition" + │ └── IERC4906 — "EIP-4906 Interface Definition" + └── utils + ├── Base64 — "Base64 Encoding and Decoding Functions" + ├── BatchDistributor — "Batch Sending Both Native and ERC-20 Tokens" + ├── CreateAddress — "`CREATE` EVM Opcode Utility Function for Address Calculation" + ├── Create2Address — "`CREATE2` EVM Opcode Utility Functions for Address Calculations" + ├── ECDSA — "Elliptic Curve Digital Signature Algorithm (ECDSA) Functions" + ├── SignatureChecker — "ECDSA and EIP-1271 Signature Verification Functions" + ├── EIP712DomainSeparator — "EIP-712 Domain Separator" + ├── Math — "Standard Mathematical Utility Functions" + ├── MerkleProofVerification — "Merkle Tree Proof Verification Functions" + ├── Multicall — "Multicall Functions" + └── interfaces + └── IERC5267 — "EIP-5267 Interface Definition" ``` ## 🎛 Installation @@ -101,6 +102,9 @@ In case you are using [pnpm](https://pnpm.io), invoke: pnpm add --save-dev snekmate ``` +> [!CAUTION] +> It is possible to install the latest versions of `main` or any other branch locally via `pip install git+https://github.com/pcaversaccio/snekmate.git@` or `forge install pcaversaccio/snekmate && forge update`. Each branch, **including the `main` branch**, must be understood as a development branch that should be avoided in favour of tagged releases. The release process includes security measures that the repository branches do not guarantee. + ## 👩🏼‍⚖️ Tests This repository contains [Foundry](https://github.com/foundry-rs/foundry)-based unit tests, property-based tests (i.e. fuzzing), and invariant tests for all contracts, if applicable. All tests are run as part of the CI pipeline [`test-contracts`](./.github/workflows/test-contracts.yml). diff --git a/package.json b/package.json index ac59e95b..d913d129 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "lint:fix": "pnpm prettier:fix && pnpm solhint:fix && npx eslint . --fix" }, "files": [ - "src/**/*.vy", + "src/snekmate/**/*.vy", "LICENSE", "README.md", "CHANGELOG.md" diff --git a/scripts/build.py b/scripts/build.py deleted file mode 100644 index 99bdc57e..00000000 --- a/scripts/build.py +++ /dev/null @@ -1,28 +0,0 @@ -import os, subprocess, shutil - -base_path = os.path.join(os.getcwd(), "src") -dir_list = ["auth", "extensions", "governance", "tokens", "utils"] -dest_build = os.path.join(base_path, "snekmate") - -# Create a dedicated `snekmate` directory. -os.mkdir(dest_build) - -# Before generating the distribution package, move all -# contracts to a dedicated `snekmate` directory. -for dir in dir_list: - source = os.path.join(base_path, dir) - if os.path.isdir(source): - shutil.move(source, dest_build) - -# Build a binary wheel and a source tarball. -subprocess.run(["python3", "-m", "build"]) - -# After generating the distribution package, move all -# contracts back to the original destination. -for dir in dir_list: - source = os.path.join(base_path, "snekmate", dir) - if os.path.isdir(source): - shutil.move(source, base_path) - -# Delete the dedicated `snekmate` directory. -shutil.rmtree(dest_build) diff --git a/src/auth/AccessControl.vy b/src/snekmate/auth/AccessControl.vy similarity index 100% rename from src/auth/AccessControl.vy rename to src/snekmate/auth/AccessControl.vy diff --git a/src/auth/Ownable.vy b/src/snekmate/auth/Ownable.vy similarity index 100% rename from src/auth/Ownable.vy rename to src/snekmate/auth/Ownable.vy diff --git a/src/auth/Ownable2Step.vy b/src/snekmate/auth/Ownable2Step.vy similarity index 100% rename from src/auth/Ownable2Step.vy rename to src/snekmate/auth/Ownable2Step.vy diff --git a/src/auth/interfaces/IAccessControl.vy b/src/snekmate/auth/interfaces/IAccessControl.vy similarity index 100% rename from src/auth/interfaces/IAccessControl.vy rename to src/snekmate/auth/interfaces/IAccessControl.vy diff --git a/src/extensions/ERC2981.vy b/src/snekmate/extensions/ERC2981.vy similarity index 100% rename from src/extensions/ERC2981.vy rename to src/snekmate/extensions/ERC2981.vy diff --git a/src/extensions/ERC4626.vy b/src/snekmate/extensions/ERC4626.vy similarity index 100% rename from src/extensions/ERC4626.vy rename to src/snekmate/extensions/ERC4626.vy diff --git a/src/extensions/interfaces/IERC2981.vy b/src/snekmate/extensions/interfaces/IERC2981.vy similarity index 100% rename from src/extensions/interfaces/IERC2981.vy rename to src/snekmate/extensions/interfaces/IERC2981.vy diff --git a/src/governance/TimelockController.vy b/src/snekmate/governance/TimelockController.vy similarity index 100% rename from src/governance/TimelockController.vy rename to src/snekmate/governance/TimelockController.vy diff --git a/src/tokens/ERC1155.vy b/src/snekmate/tokens/ERC1155.vy similarity index 100% rename from src/tokens/ERC1155.vy rename to src/snekmate/tokens/ERC1155.vy diff --git a/src/tokens/ERC20.vy b/src/snekmate/tokens/ERC20.vy similarity index 100% rename from src/tokens/ERC20.vy rename to src/snekmate/tokens/ERC20.vy diff --git a/src/tokens/ERC721.vy b/src/snekmate/tokens/ERC721.vy similarity index 100% rename from src/tokens/ERC721.vy rename to src/snekmate/tokens/ERC721.vy diff --git a/src/tokens/interfaces/IERC1155.vy b/src/snekmate/tokens/interfaces/IERC1155.vy similarity index 100% rename from src/tokens/interfaces/IERC1155.vy rename to src/snekmate/tokens/interfaces/IERC1155.vy diff --git a/src/tokens/interfaces/IERC1155MetadataURI.vy b/src/snekmate/tokens/interfaces/IERC1155MetadataURI.vy similarity index 100% rename from src/tokens/interfaces/IERC1155MetadataURI.vy rename to src/snekmate/tokens/interfaces/IERC1155MetadataURI.vy diff --git a/src/tokens/interfaces/IERC1155Receiver.vy b/src/snekmate/tokens/interfaces/IERC1155Receiver.vy similarity index 100% rename from src/tokens/interfaces/IERC1155Receiver.vy rename to src/snekmate/tokens/interfaces/IERC1155Receiver.vy diff --git a/src/tokens/interfaces/IERC20Permit.vy b/src/snekmate/tokens/interfaces/IERC20Permit.vy similarity index 100% rename from src/tokens/interfaces/IERC20Permit.vy rename to src/snekmate/tokens/interfaces/IERC20Permit.vy diff --git a/src/tokens/interfaces/IERC4906.vy b/src/snekmate/tokens/interfaces/IERC4906.vy similarity index 100% rename from src/tokens/interfaces/IERC4906.vy rename to src/snekmate/tokens/interfaces/IERC4906.vy diff --git a/src/tokens/interfaces/IERC721Enumerable.vy b/src/snekmate/tokens/interfaces/IERC721Enumerable.vy similarity index 100% rename from src/tokens/interfaces/IERC721Enumerable.vy rename to src/snekmate/tokens/interfaces/IERC721Enumerable.vy diff --git a/src/tokens/interfaces/IERC721Metadata.vy b/src/snekmate/tokens/interfaces/IERC721Metadata.vy similarity index 100% rename from src/tokens/interfaces/IERC721Metadata.vy rename to src/snekmate/tokens/interfaces/IERC721Metadata.vy diff --git a/src/tokens/interfaces/IERC721Permit.vy b/src/snekmate/tokens/interfaces/IERC721Permit.vy similarity index 100% rename from src/tokens/interfaces/IERC721Permit.vy rename to src/snekmate/tokens/interfaces/IERC721Permit.vy diff --git a/src/tokens/interfaces/IERC721Receiver.vy b/src/snekmate/tokens/interfaces/IERC721Receiver.vy similarity index 100% rename from src/tokens/interfaces/IERC721Receiver.vy rename to src/snekmate/tokens/interfaces/IERC721Receiver.vy diff --git a/src/utils/Base64.vy b/src/snekmate/utils/Base64.vy similarity index 100% rename from src/utils/Base64.vy rename to src/snekmate/utils/Base64.vy diff --git a/src/utils/BatchDistributor.vy b/src/snekmate/utils/BatchDistributor.vy similarity index 100% rename from src/utils/BatchDistributor.vy rename to src/snekmate/utils/BatchDistributor.vy diff --git a/src/utils/Create2Address.vy b/src/snekmate/utils/Create2Address.vy similarity index 100% rename from src/utils/Create2Address.vy rename to src/snekmate/utils/Create2Address.vy diff --git a/src/utils/CreateAddress.vy b/src/snekmate/utils/CreateAddress.vy similarity index 100% rename from src/utils/CreateAddress.vy rename to src/snekmate/utils/CreateAddress.vy diff --git a/src/utils/ECDSA.vy b/src/snekmate/utils/ECDSA.vy similarity index 100% rename from src/utils/ECDSA.vy rename to src/snekmate/utils/ECDSA.vy diff --git a/src/utils/EIP712DomainSeparator.vy b/src/snekmate/utils/EIP712DomainSeparator.vy similarity index 100% rename from src/utils/EIP712DomainSeparator.vy rename to src/snekmate/utils/EIP712DomainSeparator.vy diff --git a/src/utils/Math.vy b/src/snekmate/utils/Math.vy similarity index 100% rename from src/utils/Math.vy rename to src/snekmate/utils/Math.vy diff --git a/src/utils/MerkleProofVerification.vy b/src/snekmate/utils/MerkleProofVerification.vy similarity index 100% rename from src/utils/MerkleProofVerification.vy rename to src/snekmate/utils/MerkleProofVerification.vy diff --git a/src/utils/Multicall.vy b/src/snekmate/utils/Multicall.vy similarity index 100% rename from src/utils/Multicall.vy rename to src/snekmate/utils/Multicall.vy diff --git a/src/utils/SignatureChecker.vy b/src/snekmate/utils/SignatureChecker.vy similarity index 100% rename from src/utils/SignatureChecker.vy rename to src/snekmate/utils/SignatureChecker.vy diff --git a/src/utils/interfaces/IERC5267.vy b/src/snekmate/utils/interfaces/IERC5267.vy similarity index 100% rename from src/utils/interfaces/IERC5267.vy rename to src/snekmate/utils/interfaces/IERC5267.vy diff --git a/test/auth/AccessControl.t.sol b/test/auth/AccessControl.t.sol index a4bd9582..13579221 100644 --- a/test/auth/AccessControl.t.sol +++ b/test/auth/AccessControl.t.sol @@ -23,7 +23,7 @@ contract AccessControlTest is Test { function setUp() public { accessControl = IAccessControlExtended( - vyperDeployer.deployContract("src/auth/", "AccessControl") + vyperDeployer.deployContract("src/snekmate/auth/", "AccessControl") ); } @@ -54,7 +54,7 @@ contract AccessControlTest is Test { vm.expectEmit(true, true, true, false); emit IAccessControl.RoleGranted(ADDITIONAL_ROLE_2, deployer, deployer); accessControlInitialEvent = IAccessControlExtended( - vyperDeployer.deployContract("src/auth/", "AccessControl") + vyperDeployer.deployContract("src/snekmate/auth/", "AccessControl") ); assertEq( accessControlInitialEvent.DEFAULT_ADMIN_ROLE(), @@ -645,7 +645,7 @@ contract AccessControlInvariants is Test { function setUp() public { accessControl = IAccessControlExtended( - vyperDeployer.deployContract("src/auth/", "AccessControl") + vyperDeployer.deployContract("src/snekmate/auth/", "AccessControl") ); accessControlHandler = new AccessControlHandler( accessControl, diff --git a/test/auth/Ownable.t.sol b/test/auth/Ownable.t.sol index aff574f1..12194b36 100644 --- a/test/auth/Ownable.t.sol +++ b/test/auth/Ownable.t.sol @@ -17,7 +17,7 @@ contract OwnableTest is Test { function setUp() public { ownable = IOwnable( - vyperDeployer.deployContract("src/auth/", "Ownable") + vyperDeployer.deployContract("src/snekmate/auth/", "Ownable") ); } @@ -27,7 +27,7 @@ contract OwnableTest is Test { vm.expectEmit(true, true, false, false); emit IOwnable.OwnershipTransferred(zeroAddress, deployer); ownableInitialEvent = IOwnable( - vyperDeployer.deployContract("src/auth/", "Ownable") + vyperDeployer.deployContract("src/snekmate/auth/", "Ownable") ); assertEq(ownableInitialEvent.owner(), deployer); } @@ -142,7 +142,7 @@ contract OwnableInvariants is Test { function setUp() public { ownable = IOwnable( - vyperDeployer.deployContract("src/auth/", "Ownable") + vyperDeployer.deployContract("src/snekmate/auth/", "Ownable") ); ownerHandler = new OwnerHandler(ownable, deployer); targetContract(address(ownerHandler)); diff --git a/test/auth/Ownable2Step.t.sol b/test/auth/Ownable2Step.t.sol index 727604a9..a4be1852 100644 --- a/test/auth/Ownable2Step.t.sol +++ b/test/auth/Ownable2Step.t.sol @@ -17,7 +17,7 @@ contract Ownable2StepTest is Test { function setUp() public { ownable2Step = IOwnable2Step( - vyperDeployer.deployContract("src/auth/", "Ownable2Step") + vyperDeployer.deployContract("src/snekmate/auth/", "Ownable2Step") ); } @@ -28,7 +28,7 @@ contract Ownable2StepTest is Test { vm.expectEmit(true, true, false, false); emit IOwnable2Step.OwnershipTransferred(zeroAddress, deployer); ownable2StepInitialEvent = IOwnable2Step( - vyperDeployer.deployContract("src/auth/", "Ownable2Step") + vyperDeployer.deployContract("src/snekmate/auth/", "Ownable2Step") ); assertEq(ownable2StepInitialEvent.owner(), deployer); assertEq(ownable2StepInitialEvent.pending_owner(), zeroAddress); @@ -285,7 +285,7 @@ contract Ownable2StepInvariants is Test { function setUp() public { ownable2Step = IOwnable2Step( - vyperDeployer.deployContract("src/auth/", "Ownable2Step") + vyperDeployer.deployContract("src/snekmate/auth/", "Ownable2Step") ); owner2StepHandler = new Owner2StepHandler( ownable2Step, diff --git a/test/extensions/ERC2981.t.sol b/test/extensions/ERC2981.t.sol index ae8525ab..8588c516 100644 --- a/test/extensions/ERC2981.t.sol +++ b/test/extensions/ERC2981.t.sol @@ -22,7 +22,7 @@ contract ERC2981Test is Test { function setUp() public { ERC2981Extended = IERC2981Extended( - vyperDeployer.deployContract("src/extensions/", "ERC2981") + vyperDeployer.deployContract("src/snekmate/extensions/", "ERC2981") ); } @@ -40,7 +40,7 @@ contract ERC2981Test is Test { vm.expectEmit(true, true, false, false); emit IERC2981Extended.OwnershipTransferred(zeroAddress, deployer); ERC2981ExtendedInitialEvent = IERC2981Extended( - vyperDeployer.deployContract("src/extensions/", "ERC2981") + vyperDeployer.deployContract("src/snekmate/extensions/", "ERC2981") ); ( address receiverInitialSetup, @@ -775,7 +775,7 @@ contract ERC2981Invariants is Test { function setUp() public { ERC2981Extended = IERC2981Extended( - vyperDeployer.deployContract("src/extensions/", "ERC2981") + vyperDeployer.deployContract("src/snekmate/extensions/", "ERC2981") ); erc2981Handler = new ERC2981Handler(ERC2981Extended, deployer); targetContract(address(erc2981Handler)); diff --git a/test/extensions/ERC4626.t.sol b/test/extensions/ERC4626.t.sol index 1d317620..c654c786 100644 --- a/test/extensions/ERC4626.t.sol +++ b/test/extensions/ERC4626.t.sol @@ -76,7 +76,7 @@ contract ERC4626VaultTest is ERC4626Test { ); ERC4626ExtendedDecimalsOffset0 = IERC4626Extended( vyperDeployer.deployContract( - "src/extensions/", + "src/snekmate/extensions/", "ERC4626", argsDecimalsOffset0 ) @@ -104,7 +104,7 @@ contract ERC4626VaultTest is ERC4626Test { ); ERC4626ExtendedDecimalsOffset6 = IERC4626Extended( vyperDeployer.deployContract( - "src/extensions/", + "src/snekmate/extensions/", "ERC4626", argsDecimalsOffset6 ) @@ -123,7 +123,7 @@ contract ERC4626VaultTest is ERC4626Test { ); ERC4626ExtendedDecimalsOffset12 = IERC4626Extended( vyperDeployer.deployContract( - "src/extensions/", + "src/snekmate/extensions/", "ERC4626", argsDecimalsOffset12 ) @@ -142,7 +142,7 @@ contract ERC4626VaultTest is ERC4626Test { ); ERC4626ExtendedDecimalsOffset18 = IERC4626Extended( vyperDeployer.deployContract( - "src/extensions/", + "src/snekmate/extensions/", "ERC4626", argsDecimalsOffset18 ) @@ -196,7 +196,7 @@ contract ERC4626VaultTest is ERC4626Test { // solhint-disable-next-line var-name-mixedcase IERC4626Extended ERC4626ExtendedDecimalsOffsetEOA = IERC4626Extended( vyperDeployer.deployContract( - "src/extensions/", + "src/snekmate/extensions/", "ERC4626", argsDecimalsOffsetEOA ) @@ -223,7 +223,7 @@ contract ERC4626VaultTest is ERC4626Test { // solhint-disable-next-line var-name-mixedcase IERC4626Extended ERC4626ExtendedDecimalsOffsetNoDecimals = IERC4626Extended( vyperDeployer.deployContract( - "src/extensions/", + "src/snekmate/extensions/", "ERC4626", argsDecimalsOffsetNoDecimals ) @@ -251,7 +251,7 @@ contract ERC4626VaultTest is ERC4626Test { // solhint-disable-next-line var-name-mixedcase IERC4626Extended ERC4626ExtendedDecimalsOffsetTooHighDecimals = IERC4626Extended( vyperDeployer.deployContract( - "src/extensions/", + "src/snekmate/extensions/", "ERC4626", argsDecimalsOffsetTooHighDecimals ) @@ -285,7 +285,7 @@ contract ERC4626VaultTest is ERC4626Test { vm.expectRevert(); IERC4626Extended( vyperDeployer.deployContract( - "src/extensions/", + "src/snekmate/extensions/", "ERC4626", argsDecimalsOffsetOverflow ) @@ -2089,7 +2089,11 @@ contract ERC4626VaultInvariants is Test { _VERSION_EIP712 ); ERC4626Extended = IERC4626Extended( - vyperDeployer.deployContract("src/extensions/", "ERC4626", args) + vyperDeployer.deployContract( + "src/snekmate/extensions/", + "ERC4626", + args + ) ); erc4626VaultHandler = new ERC4626VaultHandler(ERC4626Extended); targetContract(address(erc4626VaultHandler)); diff --git a/test/governance/TimelockController.t.sol b/test/governance/TimelockController.t.sol index 751ec78f..ae18246c 100644 --- a/test/governance/TimelockController.t.sol +++ b/test/governance/TimelockController.t.sol @@ -102,7 +102,7 @@ contract TimelockControllerTest is Test { bytes memory args = abi.encode(MIN_DELAY, proposers_, executors_, self); timelockController = ITimelockController( vyperDeployer.deployContract( - "src/governance/", + "src/snekmate/governance/", "TimelockController", args ) @@ -272,7 +272,7 @@ contract TimelockControllerTest is Test { emit ITimelockController.MinimumDelayChange(0, MIN_DELAY); timelockControllerInitialEventEmptyAdmin = ITimelockController( vyperDeployer.deployContract( - "src/governance/", + "src/snekmate/governance/", "TimelockController", argsEmptyAdmin ) @@ -455,7 +455,7 @@ contract TimelockControllerTest is Test { emit ITimelockController.MinimumDelayChange(0, MIN_DELAY); timelockControllerInitialEventNonEmptyAdmin = ITimelockController( vyperDeployer.deployContract( - "src/governance/", + "src/snekmate/governance/", "TimelockController", argsNonEmptyAdmin ) @@ -3858,7 +3858,7 @@ contract TimelockControllerTest is Test { "1" ); erc721Mock = IERC721Extended( - vyperDeployer.deployContract("src/tokens/", "ERC721", args) + vyperDeployer.deployContract("src/snekmate/tokens/", "ERC721", args) ); vm.startPrank(deployer); erc721Mock.safe_mint(timelockControllerAddr, "my_awesome_nft_uri_1"); @@ -3932,7 +3932,11 @@ contract TimelockControllerTest is Test { function testHandleERC1155() public { bytes memory args = abi.encode("https://www.wagmi.xyz/"); erc1155Mock = IERC1155Extended( - vyperDeployer.deployContract("src/tokens/", "ERC1155", args) + vyperDeployer.deployContract( + "src/snekmate/tokens/", + "ERC1155", + args + ) ); uint256[] memory ids = new uint256[](2); uint256[] memory tokenAmounts = new uint256[](2); @@ -4218,7 +4222,7 @@ contract TimelockControllerInvariants is Test { bytes memory args = abi.encode(minDelay, proposers, executors, self); timelockController = ITimelockController( vyperDeployer.deployContract( - "src/governance/", + "src/snekmate/governance/", "TimelockController", args ) diff --git a/test/tokens/ERC1155.t.sol b/test/tokens/ERC1155.t.sol index 021067f6..ea37cce9 100644 --- a/test/tokens/ERC1155.t.sol +++ b/test/tokens/ERC1155.t.sol @@ -31,7 +31,11 @@ contract ERC1155Test is Test { function setUp() public { bytes memory args = abi.encode(_BASE_URI); ERC1155Extended = IERC1155Extended( - vyperDeployer.deployContract("src/tokens/", "ERC1155", args) + vyperDeployer.deployContract( + "src/snekmate/tokens/", + "ERC1155", + args + ) ); } @@ -53,7 +57,11 @@ contract ERC1155Test is Test { emit IERC1155Extended.RoleMinterChanged(deployer, true); bytes memory args = abi.encode(_BASE_URI); ERC1155ExtendedInitialEvent = IERC1155Extended( - vyperDeployer.deployContract("src/tokens/", "ERC1155", args) + vyperDeployer.deployContract( + "src/snekmate/tokens/", + "ERC1155", + args + ) ); assertEq(ERC1155ExtendedInitialEvent.owner(), deployer); assertTrue(ERC1155ExtendedInitialEvent.is_minter(deployer)); @@ -1197,7 +1205,11 @@ contract ERC1155Test is Test { function testUriNoBaseURI() public { bytes memory args = abi.encode(""); ERC1155ExtendedNoBaseURI = IERC1155Extended( - vyperDeployer.deployContract("src/tokens/", "ERC1155", args) + vyperDeployer.deployContract( + "src/snekmate/tokens/", + "ERC1155", + args + ) ); string memory uri = "my_awesome_uri"; uint256 id = 1; @@ -1217,7 +1229,11 @@ contract ERC1155Test is Test { function testUriBaseAndTokenUriNotSet() public { bytes memory args = abi.encode(""); ERC1155ExtendedNoBaseURI = IERC1155Extended( - vyperDeployer.deployContract("src/tokens/", "ERC1155", args) + vyperDeployer.deployContract( + "src/snekmate/tokens/", + "ERC1155", + args + ) ); uint256 id = 1; assertEq(ERC1155ExtendedNoBaseURI.uri(id), ""); @@ -3569,7 +3585,11 @@ contract ERC1155Invariants is Test { function setUp() public { bytes memory args = abi.encode(_BASE_URI); ERC1155Extended = IERC1155Extended( - vyperDeployer.deployContract("src/tokens/", "ERC1155", args) + vyperDeployer.deployContract( + "src/snekmate/tokens/", + "ERC1155", + args + ) ); erc1155Handler = new ERC1155Handler(ERC1155Extended, deployer); targetContract(address(erc1155Handler)); diff --git a/test/tokens/ERC20.t.sol b/test/tokens/ERC20.t.sol index 340e1da2..9e24ab90 100644 --- a/test/tokens/ERC20.t.sol +++ b/test/tokens/ERC20.t.sol @@ -50,7 +50,7 @@ contract ERC20Test is Test { _VERSION_EIP712 ); ERC20Extended = IERC20Extended( - vyperDeployer.deployContract("src/tokens/", "ERC20", args) + vyperDeployer.deployContract("src/snekmate/tokens/", "ERC20", args) ); ERC20ExtendedAddr = address(ERC20Extended); _CACHED_DOMAIN_SEPARATOR = keccak256( @@ -95,7 +95,7 @@ contract ERC20Test is Test { _VERSION_EIP712 ); ERC20ExtendedInitialEvent = IERC20Extended( - vyperDeployer.deployContract("src/tokens/", "ERC20", args) + vyperDeployer.deployContract("src/snekmate/tokens/", "ERC20", args) ); assertEq(ERC20ExtendedInitialEvent.decimals(), 18); assertEq(ERC20ExtendedInitialEvent.name(), _NAME); @@ -1299,7 +1299,7 @@ contract ERC20Invariants is Test { _VERSION_EIP712 ); ERC20Extended = IERC20Extended( - vyperDeployer.deployContract("src/tokens/", "ERC20", args) + vyperDeployer.deployContract("src/snekmate/tokens/", "ERC20", args) ); erc20Handler = new ERC20Handler( ERC20Extended, diff --git a/test/tokens/ERC721.t.sol b/test/tokens/ERC721.t.sol index 4237e91f..621f9f4d 100644 --- a/test/tokens/ERC721.t.sol +++ b/test/tokens/ERC721.t.sol @@ -494,7 +494,7 @@ contract ERC721Test is Test { _VERSION_EIP712 ); ERC721Extended = IERC721Extended( - vyperDeployer.deployContract("src/tokens/", "ERC721", args) + vyperDeployer.deployContract("src/snekmate/tokens/", "ERC721", args) ); ERC721ExtendedAddr = address(ERC721Extended); _CACHED_DOMAIN_SEPARATOR = keccak256( @@ -527,7 +527,7 @@ contract ERC721Test is Test { _VERSION_EIP712 ); ERC721ExtendedInitialEvent = IERC721Extended( - vyperDeployer.deployContract("src/tokens/", "ERC721", args) + vyperDeployer.deployContract("src/snekmate/tokens/", "ERC721", args) ); assertEq(ERC721ExtendedInitialEvent.name(), _NAME); assertEq(ERC721ExtendedInitialEvent.symbol(), _SYMBOL); @@ -1154,7 +1154,7 @@ contract ERC721Test is Test { _VERSION_EIP712 ); ERC721ExtendedNoBaseURI = IERC721Extended( - vyperDeployer.deployContract("src/tokens/", "ERC721", args) + vyperDeployer.deployContract("src/snekmate/tokens/", "ERC721", args) ); address owner = makeAddr("owner"); string memory uri = "my_awesome_nft_uri"; @@ -2579,7 +2579,7 @@ contract ERC721Invariants is Test { _VERSION_EIP712 ); ERC721Extended = IERC721Extended( - vyperDeployer.deployContract("src/tokens/", "ERC721", args) + vyperDeployer.deployContract("src/snekmate/tokens/", "ERC721", args) ); erc721Handler = new ERC721Handler(ERC721Extended, deployer); targetContract(address(erc721Handler)); diff --git a/test/utils/Base64.t.sol b/test/utils/Base64.t.sol index 10668f36..b881f5d8 100644 --- a/test/utils/Base64.t.sol +++ b/test/utils/Base64.t.sol @@ -20,7 +20,9 @@ contract Base64Test is PRBTest { IBase64 private base64; function setUp() public { - base64 = IBase64(vyperDeployer.deployContract("src/utils/", "Base64")); + base64 = IBase64( + vyperDeployer.deployContract("src/snekmate/utils/", "Base64") + ); } function testEncodeEmptyString() public { diff --git a/test/utils/BatchDistributor.t.sol b/test/utils/BatchDistributor.t.sol index 89596ddf..69e089a3 100644 --- a/test/utils/BatchDistributor.t.sol +++ b/test/utils/BatchDistributor.t.sol @@ -20,7 +20,10 @@ contract BatchDistributorTest is Test { function setUp() public { batchDistributor = IBatchDistributor( - vyperDeployer.deployContract("src/utils/", "BatchDistributor") + vyperDeployer.deployContract( + "src/snekmate/utils/", + "BatchDistributor" + ) ); batchDistributorAddr = address(batchDistributor); } @@ -440,7 +443,10 @@ contract BatchDistributorInvariants is Test { function setUp() public { batchDistributor = IBatchDistributor( - vyperDeployer.deployContract("src/utils/", "BatchDistributor") + vyperDeployer.deployContract( + "src/snekmate/utils/", + "BatchDistributor" + ) ); batchDistributorAddr = address(batchDistributor); address msgSender = makeAddr("msgSender"); diff --git a/test/utils/Create2Address.t.sol b/test/utils/Create2Address.t.sol index 43281524..30b717ee 100644 --- a/test/utils/Create2Address.t.sol +++ b/test/utils/Create2Address.t.sol @@ -19,7 +19,10 @@ contract Create2AddressTest is Test { function setUp() public { create2Address = ICreate2Address( - vyperDeployer.deployContract("src/utils/", "Create2Address") + vyperDeployer.deployContract( + "src/snekmate/utils/", + "Create2Address" + ) ); create2AddressAddr = address(create2Address); } diff --git a/test/utils/CreateAddress.t.sol b/test/utils/CreateAddress.t.sol index ab6a8fc9..497d897e 100644 --- a/test/utils/CreateAddress.t.sol +++ b/test/utils/CreateAddress.t.sol @@ -21,7 +21,7 @@ contract CreateAddressTest is Test { function setUp() public { createAddress = ICreateAddress( - vyperDeployer.deployContract("src/utils/", "CreateAddress") + vyperDeployer.deployContract("src/snekmate/utils/", "CreateAddress") ); createAddressAddr = address(createAddress); } diff --git a/test/utils/ECDSA.t.sol b/test/utils/ECDSA.t.sol index 28a62b92..586d8750 100644 --- a/test/utils/ECDSA.t.sol +++ b/test/utils/ECDSA.t.sol @@ -51,7 +51,9 @@ contract ECDSATest is Test { } function setUp() public { - ECDSA = IECDSA(vyperDeployer.deployContract("src/utils/", "ECDSA")); + ECDSA = IECDSA( + vyperDeployer.deployContract("src/snekmate/utils/", "ECDSA") + ); ECDSAAddr = address(ECDSA); } diff --git a/test/utils/EIP712DomainSeparator.t.sol b/test/utils/EIP712DomainSeparator.t.sol index 3621b1c8..51246a9b 100644 --- a/test/utils/EIP712DomainSeparator.t.sol +++ b/test/utils/EIP712DomainSeparator.t.sol @@ -36,7 +36,7 @@ contract EIP712DomainSeparatorTest is Test { bytes memory args = abi.encode(_NAME, _VERSION); EIP712domainSeparator = IEIP712DomainSeparator( vyperDeployer.deployContract( - "src/utils/", + "src/snekmate/utils/", "EIP712DomainSeparator", args ) diff --git a/test/utils/Math.t.sol b/test/utils/Math.t.sol index 11af7648..2c722fb3 100644 --- a/test/utils/Math.t.sol +++ b/test/utils/Math.t.sol @@ -110,7 +110,9 @@ contract MathTest is Test { } function setUp() public { - math = IMath(vyperDeployer.deployContract("src/utils/", "Math")); + math = IMath( + vyperDeployer.deployContract("src/snekmate/utils/", "Math") + ); } function testUint256Average() public { diff --git a/test/utils/MerkleProofVerification.t.sol b/test/utils/MerkleProofVerification.t.sol index 667180e5..e3833a66 100644 --- a/test/utils/MerkleProofVerification.t.sol +++ b/test/utils/MerkleProofVerification.t.sol @@ -277,7 +277,7 @@ contract MerkleProofVerificationTest is Test { function setUp() public { merkleProofVerification = IMerkleProofVerification( vyperDeployer.deployContract( - "src/utils/", + "src/snekmate/utils/", "MerkleProofVerification" ) ); diff --git a/test/utils/Multicall.t.sol b/test/utils/Multicall.t.sol index 07e9fbd4..4441749f 100644 --- a/test/utils/Multicall.t.sol +++ b/test/utils/Multicall.t.sol @@ -21,7 +21,7 @@ contract MulticallTest is Test { function setUp() public { multicall = IMulticall( - vyperDeployer.deployContract("src/utils/", "Multicall") + vyperDeployer.deployContract("src/snekmate/utils/", "Multicall") ); } diff --git a/test/utils/SignatureChecker.t.sol b/test/utils/SignatureChecker.t.sol index 9fd89602..8e0a8122 100644 --- a/test/utils/SignatureChecker.t.sol +++ b/test/utils/SignatureChecker.t.sol @@ -22,7 +22,10 @@ contract SignatureCheckerTest is Test { function setUp() public { signatureChecker = ISignatureChecker( - vyperDeployer.deployContract("src/utils/", "SignatureChecker") + vyperDeployer.deployContract( + "src/snekmate/utils/", + "SignatureChecker" + ) ); }