Skip to content

Commit e33de55

Browse files
Change behavior of unwrap to preserve wrapped token URI (#170)
1 parent ee767f3 commit e33de55

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

contracts/feature/TokenBundle.sol

+4-1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ abstract contract TokenBundle is ITokenBundle {
6666

6767
/// @dev Lets the calling contract delete a particular bundle.
6868
function _deleteBundle(uint256 _bundleId) internal {
69-
delete bundle[_bundleId];
69+
for (uint256 i = 0; i < bundle[_bundleId].count; i += 1) {
70+
delete bundle[_bundleId].tokens[i];
71+
}
72+
bundle[_bundleId].count = 0;
7073
}
7174
}

src/test/Multiwrap.t.sol

+6-3
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,8 @@ contract MultiwrapTest is BaseTest {
489489
vm.expectRevert("ERC721: owner query for nonexistent token");
490490
multiwrap.ownerOf(expectedIdForWrappedToken);
491491

492-
assertEq("", multiwrap.tokenURI(expectedIdForWrappedToken));
492+
assertEq(uriForWrappedToken, multiwrap.tokenURI(expectedIdForWrappedToken));
493+
assertEq(0, multiwrap.getTokenCountOfBundle(expectedIdForWrappedToken));
493494

494495
ITokenBundle.Token[] memory contentsOfWrappedToken = multiwrap.getWrappedContents(expectedIdForWrappedToken);
495496
assertEq(contentsOfWrappedToken.length, 0);
@@ -519,7 +520,8 @@ contract MultiwrapTest is BaseTest {
519520
vm.expectRevert("ERC721: owner query for nonexistent token");
520521
multiwrap.ownerOf(expectedIdForWrappedToken);
521522

522-
assertEq("", multiwrap.tokenURI(expectedIdForWrappedToken));
523+
assertEq(uriForWrappedToken, multiwrap.tokenURI(expectedIdForWrappedToken));
524+
assertEq(0, multiwrap.getTokenCountOfBundle(expectedIdForWrappedToken));
523525

524526
ITokenBundle.Token[] memory contentsOfWrappedToken = multiwrap.getWrappedContents(expectedIdForWrappedToken);
525527
assertEq(contentsOfWrappedToken.length, 0);
@@ -750,7 +752,8 @@ contract MultiwrapTest is BaseTest {
750752
vm.expectRevert("ERC721: owner query for nonexistent token");
751753
multiwrap.ownerOf(expectedIdForWrappedToken);
752754

753-
assertEq("", multiwrap.tokenURI(expectedIdForWrappedToken));
755+
assertEq(uriForWrappedToken, multiwrap.tokenURI(expectedIdForWrappedToken));
756+
assertEq(0, multiwrap.getTokenCountOfBundle(expectedIdForWrappedToken));
754757

755758
ITokenBundle.Token[] memory contentsOfWrappedToken = multiwrap.getWrappedContents(expectedIdForWrappedToken);
756759
assertEq(contentsOfWrappedToken.length, 0);

0 commit comments

Comments
 (0)