Skip to content
This repository was archived by the owner on Aug 20, 2025. It is now read-only.

Commit 0aaf396

Browse files
authored
Merge pull request #17 from ProjectOpenSea/ryan/mintredemption-offer
add offer item to mintRedemption
2 parents 1bd3b93 + 2511689 commit 0aaf396

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

src/extensions/ERC1155ShipyardRedeemableMintable.sol

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ pragma solidity ^0.8.19;
33

44
import {IERC165} from "openzeppelin-contracts/contracts/interfaces/IERC165.sol";
55
import {ERC721ConduitPreapproved_Solady} from "shipyard-core/src/tokens/erc721/ERC721ConduitPreapproved_Solady.sol";
6-
import {ConsiderationItem} from "seaport-types/src/lib/ConsiderationStructs.sol";
6+
import {ConsiderationItem, OfferItem} from "seaport-types/src/lib/ConsiderationStructs.sol";
77
import {Ownable} from "solady/src/auth/Ownable.sol";
88
import {ERC7498NFTRedeemables} from "../lib/ERC7498NFTRedeemables.sol";
99
import {CampaignParams} from "../lib/RedeemablesStructs.sol";
@@ -24,6 +24,7 @@ contract ERC1155ShipyardRedeemableMintable is ERC1155ShipyardRedeemable, IRedemp
2424
function mintRedemption(
2525
uint256, /* campaignId */
2626
address recipient,
27+
OfferItem calldata, /* offer */
2728
ConsiderationItem[] calldata, /* consideration */
2829
TraitRedemption[] calldata /* traitRedemptions */
2930
) external {

src/extensions/ERC721ShipyardRedeemableMintable.sol

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ pragma solidity ^0.8.19;
33

44
import {IERC165} from "openzeppelin-contracts/contracts/interfaces/IERC165.sol";
55
import {ERC721ConduitPreapproved_Solady} from "shipyard-core/src/tokens/erc721/ERC721ConduitPreapproved_Solady.sol";
6-
import {ConsiderationItem} from "seaport-types/src/lib/ConsiderationStructs.sol";
6+
import {ConsiderationItem, OfferItem} from "seaport-types/src/lib/ConsiderationStructs.sol";
77
import {Ownable} from "solady/src/auth/Ownable.sol";
88
import {ERC7498NFTRedeemables} from "../lib/ERC7498NFTRedeemables.sol";
99
import {CampaignParams} from "../lib/RedeemablesStructs.sol";
@@ -24,6 +24,7 @@ contract ERC721ShipyardRedeemableMintable is ERC721ShipyardRedeemable, IRedempti
2424
function mintRedemption(
2525
uint256, /* campaignId */
2626
address recipient,
27+
OfferItem calldata, /* offer */
2728
ConsiderationItem[] calldata, /* consideration */
2829
TraitRedemption[] calldata /* traitRedemptions */
2930
) external {

src/interfaces/IRedemptionMintable.sol

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
// SPDX-License-Identifier: MIT
22
pragma solidity ^0.8.19;
33

4-
import {ConsiderationItem} from "seaport-types/src/lib/ConsiderationStructs.sol";
4+
import {ConsiderationItem, OfferItem} from "seaport-types/src/lib/ConsiderationStructs.sol";
55
import {TraitRedemption} from "../lib/RedeemablesStructs.sol";
66

77
interface IRedemptionMintable {
88
function mintRedemption(
99
uint256 campaignId,
1010
address recipient,
11+
OfferItem calldata offer,
1112
ConsiderationItem[] calldata consideration,
1213
TraitRedemption[] calldata traitRedemptions
1314
) external;

src/lib/ERC7498NFTRedeemables.sol

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,10 @@ contract ERC7498NFTRedeemables is IERC165, IERC7498, DynamicTraits, RedeemablesE
391391
) internal {
392392
// Mint the new tokens.
393393
for (uint256 i; i < offer.length;) {
394-
IRedemptionMintable(offer[i].token).mintRedemption(campaignId, recipient, consideration, traitRedemptions);
394+
OfferItem memory offerItem = offer[i];
395+
IRedemptionMintable(offerItem.token).mintRedemption(
396+
campaignId, recipient, offerItem, consideration, traitRedemptions
397+
);
395398
unchecked {
396399
++i;
397400
}

0 commit comments

Comments
 (0)