1
1
// SPDX-License-Identifier: MIT
2
2
pragma solidity ^ 0.8.19 ;
3
3
4
- import {BaseRedeemablesTest } from "./utils/BaseRedeemablesTest .sol " ;
4
+ import {Test } from "forge-std/Test .sol " ;
5
5
import {ERC721 } from "solady/src/tokens/ERC721.sol " ;
6
6
import {ERC721ShipyardRedeemableOwnerMintable } from "../src/test/ERC721ShipyardRedeemableOwnerMintable.sol " ;
7
7
8
- contract TestERC721ShipyardRedeemable is BaseRedeemablesTest {
8
+ contract TestERC721ShipyardRedeemable is Test {
9
+ // This Transfer event is different than the one in BaseOrderTest, since `id` is indexed.
10
+ // We don't inherit BaseRedeemablesTest to avoid this conflict.
11
+ // For more details see https://github.com/ethereum/solidity/issues/4168#issuecomment-1819912098
12
+ event Transfer (address indexed from , address indexed to , uint256 indexed id );
13
+
9
14
function testBurn () public {
10
15
uint256 tokenId = 1 ;
11
16
ERC721ShipyardRedeemableOwnerMintable token = new ERC721ShipyardRedeemableOwnerMintable ("Test " , "TEST " );
@@ -15,7 +20,7 @@ contract TestERC721ShipyardRedeemable is BaseRedeemablesTest {
15
20
vm.expectRevert (ERC721 .NotOwnerNorApproved.selector );
16
21
token.burn (tokenId);
17
22
18
- vm.expectEmit (true , true , true , true );
23
+ vm.expectEmit (true , true , false , false );
19
24
emit Transfer (fred, address (0 ), tokenId);
20
25
vm.prank (fred);
21
26
token.burn (tokenId);
@@ -30,8 +35,12 @@ contract TestERC721ShipyardRedeemable is BaseRedeemablesTest {
30
35
vm.prank (fred);
31
36
token.setApprovalForAll (address (this ), true );
32
37
33
- vm.expectEmit (true , true , true , true );
38
+ vm.expectEmit (true , true , false , false );
34
39
emit Transfer (fred, address (0 ), tokenId + 1 );
35
40
token.burn (tokenId + 1 );
36
41
}
42
+
43
+ function _mintToken (address token , uint256 tokenId , address recipient ) internal {
44
+ ERC721ShipyardRedeemableOwnerMintable (address (token)).mint (recipient, tokenId);
45
+ }
37
46
}
0 commit comments