Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

Commit

Permalink
refactor: add first minter address param to reward handlers
Browse files Browse the repository at this point in the history
  • Loading branch information
kulkarohan committed Aug 17, 2023
1 parent eb4ffad commit 8b2c8be
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 10 deletions.
7 changes: 4 additions & 3 deletions src/abstract/ERC1155/ERC1155Rewards.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,19 @@ abstract contract ERC1155Rewards is RewardSplits {
uint256 numTokens,
address creator,
address createReferral,
address mintReferral
address mintReferral,
address firstMinter
) internal returns (uint256) {
uint256 totalReward = computeTotalReward(numTokens);

if (msgValue < totalReward) {
revert INVALID_ETH_AMOUNT();
} else if (msgValue == totalReward) {
_depositFreeMintRewards(totalReward, numTokens, creator, createReferral, mintReferral);
_depositFreeMintRewards(totalReward, numTokens, creator, createReferral, mintReferral, firstMinter);

return 0;
} else {
_depositPaidMintRewards(totalReward, numTokens, creator, createReferral, mintReferral);
_depositPaidMintRewards(totalReward, numTokens, createReferral, mintReferral, firstMinter);

unchecked {
return msgValue - totalReward;
Expand Down
14 changes: 11 additions & 3 deletions src/abstract/ERC721/ERC721Rewards.sol
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,31 @@ import {RewardSplits} from "../RewardSplits.sol";
abstract contract ERC721Rewards is RewardSplits {
constructor(address _protocolRewards, address _zoraRewardRecipient) payable RewardSplits(_protocolRewards, _zoraRewardRecipient) {}

function _handleRewards(uint256 msgValue, uint256 numTokens, uint256 salePrice, address creator, address createReferral, address mintReferral) internal {
function _handleRewards(
uint256 msgValue,
uint256 numTokens,
uint256 salePrice,
address creator,
address createReferral,
address mintReferral,
address firstMinter
) internal {
uint256 totalReward = computeTotalReward(numTokens);

if (salePrice == 0) {
if (msgValue != totalReward) {
revert INVALID_ETH_AMOUNT();
}

_depositFreeMintRewards(totalReward, numTokens, creator, createReferral, mintReferral);
_depositFreeMintRewards(totalReward, numTokens, creator, createReferral, mintReferral, firstMinter);
} else {
uint256 totalSale = numTokens * salePrice;

if (msgValue != (totalReward + totalSale)) {
revert INVALID_ETH_AMOUNT();
}

_depositPaidMintRewards(totalReward, numTokens, creator, createReferral, mintReferral);
_depositPaidMintRewards(totalReward, numTokens, createReferral, mintReferral, firstMinter);
}
}
}
15 changes: 11 additions & 4 deletions src/abstract/RewardSplits.sol
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,14 @@ abstract contract RewardSplits {
});
}

function _depositFreeMintRewards(uint256 totalReward, uint256 numTokens, address creator, address createReferral, address mintReferral) internal {
function _depositFreeMintRewards(
uint256 totalReward,
uint256 numTokens,
address creator,
address createReferral,
address mintReferral,
address firstMinter
) internal {
RewardsSettings memory settings = computeFreeMintRewards(numTokens);

if (createReferral == address(0)) {
Expand All @@ -87,14 +94,14 @@ abstract contract RewardSplits {
settings.createReferralReward,
mintReferral,
settings.mintReferralReward,
creator,
firstMinter,
settings.firstMinterReward,
zoraRewardRecipient,
settings.zoraReward
);
}

function _depositPaidMintRewards(uint256 totalReward, uint256 numTokens, address creator, address createReferral, address mintReferral) internal {
function _depositPaidMintRewards(uint256 totalReward, uint256 numTokens, address createReferral, address mintReferral, address firstMinter) internal {
RewardsSettings memory settings = computePaidMintRewards(numTokens);

if (createReferral == address(0)) {
Expand All @@ -112,7 +119,7 @@ abstract contract RewardSplits {
settings.createReferralReward,
mintReferral,
settings.mintReferralReward,
creator,
firstMinter,
settings.firstMinterReward,
zoraRewardRecipient,
settings.zoraReward
Expand Down

0 comments on commit 8b2c8be

Please sign in to comment.