From a1e14b229cef8b17019b273cbd2f65ccd27df62c Mon Sep 17 00:00:00 2001 From: Rob Green Date: Wed, 16 Aug 2023 15:00:13 -0700 Subject: [PATCH] Bugfixes 8/16/2023 (#2) --- src/PatchworkNFTBase.sol | 2 +- test/PatchworkNFTBase.t.sol | 24 ++++++++++++++++++++++++ test/PatchworkProtocol.t.sol | 1 - 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/PatchworkNFTBase.sol b/src/PatchworkNFTBase.sol index a5a3f0e..46a2a5a 100644 --- a/src/PatchworkNFTBase.sol +++ b/src/PatchworkNFTBase.sol @@ -139,7 +139,7 @@ abstract contract PatchworkNFT is ERC721, IPatchworkNFT { function setFrozen(uint256 tokenId, bool frozen_) public virtual { require(msg.sender == ownerOf(tokenId), "not authorized"); - bool _frozen = _locks[tokenId]; + bool _frozen = _freezes[tokenId]; if (!(_frozen && frozen_)) { if (frozen_) { _freezes[tokenId] = true; diff --git a/test/PatchworkNFTBase.t.sol b/test/PatchworkNFTBase.t.sol index 7d8eb5e..1b8a03c 100644 --- a/test/PatchworkNFTBase.t.sol +++ b/test/PatchworkNFTBase.t.sol @@ -91,6 +91,30 @@ contract PatchworkNFTBaseTest is Test { assertEq(user2Address, testPatchworkNFT.ownerOf(1)); } + function testLockFreezeSeparation() public { + testPatchworkNFT.mint(userAddress, 1); + vm.startPrank(userAddress); + assertFalse(testPatchworkNFT.locked(1)); + testPatchworkNFT.setLocked(1, true); + assertTrue(testPatchworkNFT.locked(1)); + assertFalse(testPatchworkNFT.frozen(1)); + testPatchworkNFT.setFrozen(1, true); + assertTrue(testPatchworkNFT.frozen(1)); + assertTrue(testPatchworkNFT.locked(1)); + testPatchworkNFT.setLocked(1, false); + assertTrue(testPatchworkNFT.frozen(1)); + assertFalse(testPatchworkNFT.locked(1)); + testPatchworkNFT.setFrozen(1, false); + assertFalse(testPatchworkNFT.frozen(1)); + assertFalse(testPatchworkNFT.locked(1)); + testPatchworkNFT.setFrozen(1, true); + assertTrue(testPatchworkNFT.frozen(1)); + assertFalse(testPatchworkNFT.locked(1)); + testPatchworkNFT.setLocked(1, true); + assertTrue(testPatchworkNFT.frozen(1)); + assertTrue(testPatchworkNFT.locked(1)); + } + function testTransferFromWithFreezeNonce() public { // TODO make sure these are calling checkTransfer on proto testPatchworkNFT.mint(userAddress, 1); diff --git a/test/PatchworkProtocol.t.sol b/test/PatchworkProtocol.t.sol index 309ccfe..463e1ce 100644 --- a/test/PatchworkProtocol.t.sol +++ b/test/PatchworkProtocol.t.sol @@ -255,7 +255,6 @@ contract PatchworkProtocolTest is Test { vm.expectRevert("not authorized"); prot.assignNFT(address(testFragmentLiteRefNFT), user2FragmentTokenId, address(testPatchLiteRefNFT), patchTokenId); - vm.startPrank(userAddress); prot.assignNFT(address(testFragmentLiteRefNFT), fragmentTokenId, address(testPatchLiteRefNFT), patchTokenId); (address addr, uint256 tokenId) = testFragmentLiteRefNFT.getAssignedTo(fragmentTokenId); assertEq(addr, address(testPatchLiteRefNFT));