misc: updated naming, made ownable initializable

This commit is contained in:
vicnaum
2024-04-18 11:00:21 +02:00
parent 43697817cf
commit 1f5e452b91
3 changed files with 111 additions and 115 deletions

View File

@@ -4,9 +4,8 @@ pragma solidity ^0.8.10;
import {BaseFeeCollectModule} from 'contracts/modules/act/collect/base/BaseFeeCollectModule.sol';
import {BaseFeeCollectModuleInitData, BaseProfilePublicationData} from 'contracts/modules/interfaces/IBaseFeeCollectModule.sol';
import {ICollectModule} from 'contracts/modules/interfaces/ICollectModule.sol';
import {LensModuleMetadata} from 'contracts/modules/LensModuleMetadata.sol';
import {LensModuleMetadataInitializable} from 'contracts/modules/LensModuleMetadataInitializable.sol';
import {LensModule} from 'contracts/modules/LensModule.sol';
import {ImmutableOwnable} from 'contracts/misc/ImmutableOwnable.sol';
import {ModuleTypes} from 'contracts/modules/libraries/constants/ModuleTypes.sol';
import {ILensHub} from 'contracts/interfaces/ILensHub.sol';
import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';
@@ -22,7 +21,7 @@ struct ProtocolSharedRevenueMinFeeMintModuleInitData {
uint16 referralFee;
bool followerOnly;
uint72 endTimestamp;
address creatorFrontend;
address creatorClient;
}
struct ProtocolSharedRevenueMinFeeMintModulePublicationData {
@@ -34,15 +33,15 @@ struct ProtocolSharedRevenueMinFeeMintModulePublicationData {
uint16 referralFee;
bool followerOnly;
uint72 endTimestamp;
address creatorFrontend;
address creatorClient;
}
// Splits (in BPS)
struct ProtocolSharedRevenueDistribution {
uint16 creatorSplit;
uint16 protocolSplit;
uint16 creatorFrontendSplit;
uint16 executorFrontendSplit;
uint16 creatorClientSplit;
uint16 executorClientSplit;
}
/**
@@ -55,22 +54,22 @@ struct ProtocolSharedRevenueDistribution {
* You can build your own collect modules by inheriting from BaseFeeCollectModule and adding your
* functionality along with getPublicationData function.
*/
contract ProtocolSharedRevenueMinFeeMintModule is BaseFeeCollectModule, LensModuleMetadata {
contract ProtocolSharedRevenueMinFeeMintModule is BaseFeeCollectModule, LensModuleMetadataInitializable {
using SafeERC20 for IERC20;
address mintFeeToken;
uint256 mintFeeAmount;
ProtocolSharedRevenueDistribution protocolSharedRevenueDistribution;
mapping(uint256 profileId => mapping(uint256 pubId => address creatorFrontend))
internal _creatorFrontendByPublicationByProfile;
mapping(uint256 profileId => mapping(uint256 pubId => address creatorClient))
internal _creatorClientByPublicationByProfile;
constructor(
address hub,
address actionModule,
address moduleRegistry,
address moduleOwner
) BaseFeeCollectModule(hub, actionModule, moduleRegistry) LensModuleMetadata(moduleOwner) {}
) BaseFeeCollectModule(hub, actionModule, moduleRegistry) LensModuleMetadataInitializable(moduleOwner) {}
/**
* @inheritdoc ICollectModule
@@ -107,8 +106,8 @@ contract ProtocolSharedRevenueMinFeeMintModule is BaseFeeCollectModule, LensModu
recipient: initData.recipient
});
if (initData.creatorFrontend != address(0)) {
_creatorFrontendByPublicationByProfile[profileId][pubId] = initData.creatorFrontend;
if (initData.creatorClient != address(0)) {
_creatorClientByPublicationByProfile[profileId][pubId] = initData.creatorClient;
}
_validateBaseInitData(baseInitData);
@@ -151,36 +150,34 @@ contract ProtocolSharedRevenueMinFeeMintModule is BaseFeeCollectModule, LensModu
address protocol = ILensHub(HUB).getTreasury();
uint256 protocolAmount = (mintFeeAmount * protocolSharedRevenueDistribution.protocolSplit) / 10000;
address creatorFrontend = _creatorFrontendByPublicationByProfile[
address creatorClient = _creatorClientByPublicationByProfile[
processCollectParams.publicationCollectedProfileId
][processCollectParams.publicationCollectedId];
uint256 creatorFrontendAmount = (mintFeeAmount * protocolSharedRevenueDistribution.creatorFrontendSplit) /
10000;
uint256 creatorClientAmount = (mintFeeAmount * protocolSharedRevenueDistribution.creatorClientSplit) / 10000;
if (creatorFrontend != address(0)) {
if (creatorClient != address(0)) {
IERC20(mintFeeToken).safeTransferFrom(
processCollectParams.transactionExecutor,
creatorFrontend,
creatorFrontendAmount
creatorClient,
creatorClientAmount
);
} else {
// If there's no creatorFrontend specified - we give that amount to the publication creator
creatorAmount += creatorFrontendAmount;
// If there's no creatorClient specified - we give that amount to the publication creator
creatorAmount += creatorClientAmount;
}
(, , address executorFrontend) = abi.decode(processCollectParams.data, (address, uint256, address));
uint256 executorFrontendAmount = (mintFeeAmount * protocolSharedRevenueDistribution.executorFrontendSplit) /
10000;
(, , address executorClient) = abi.decode(processCollectParams.data, (address, uint256, address));
uint256 executorClientAmount = (mintFeeAmount * protocolSharedRevenueDistribution.executorClientSplit) / 10000;
if (executorFrontend != address(0)) {
if (executorClient != address(0)) {
IERC20(mintFeeToken).safeTransferFrom(
processCollectParams.transactionExecutor,
executorFrontend,
executorFrontendAmount
executorClient,
executorClientAmount
);
} else {
// If there's no creatorFrontend specified - we give that amount to the publication creator
creatorAmount += executorFrontendAmount;
// If there's no creatorClient specified - we give that amount to the publication creator
creatorAmount += executorClientAmount;
}
IERC20(mintFeeToken).safeTransferFrom(processCollectParams.transactionExecutor, creator, creatorAmount);
@@ -210,8 +207,8 @@ contract ProtocolSharedRevenueMinFeeMintModule is BaseFeeCollectModule, LensModu
if (
distribution.creatorSplit +
distribution.protocolSplit +
distribution.creatorFrontendSplit +
distribution.executorFrontendSplit !=
distribution.creatorClientSplit +
distribution.executorClientSplit !=
BPS_MAX
) {
revert Errors.InvalidParams();
@@ -243,7 +240,7 @@ contract ProtocolSharedRevenueMinFeeMintModule is BaseFeeCollectModule, LensModu
uint256 pubId
) external view returns (ProtocolSharedRevenueMinFeeMintModulePublicationData memory) {
BaseProfilePublicationData memory baseData = getBasePublicationData(profileId, pubId);
address creatorFrontend = _creatorFrontendByPublicationByProfile[profileId][pubId];
address creatorClient = _creatorClientByPublicationByProfile[profileId][pubId];
return
ProtocolSharedRevenueMinFeeMintModulePublicationData({
amount: baseData.amount,
@@ -254,7 +251,7 @@ contract ProtocolSharedRevenueMinFeeMintModule is BaseFeeCollectModule, LensModu
referralFee: baseData.referralFee,
followerOnly: baseData.followerOnly,
endTimestamp: baseData.endTimestamp,
creatorFrontend: creatorFrontend
creatorClient: creatorClient
});
}

View File

@@ -15,8 +15,8 @@ contract ProtocolSharedRevenueMinFeeMintModuleBase is BaseFeeCollectModuleBase {
uint16 constant BPS_MAX = 10000;
address creatorFrontendAddress = makeAddr('CREATOR_FRONTEND');
address executorFrontendAddress = makeAddr('EXECUTOR_FRONTEND');
address creatorClientAddress = makeAddr('CREATOR_CLIENT');
address executorClientAddress = makeAddr('EXECUTOR_CLIENT');
MockCurrency bonsai;
uint256 mintFee = 10 ether;
@@ -55,8 +55,8 @@ contract ProtocolSharedRevenueMinFeeMintModuleBase is BaseFeeCollectModuleBase {
ProtocolSharedRevenueDistribution({
creatorSplit: 5000,
protocolSplit: 2000,
creatorFrontendSplit: 1500,
executorFrontendSplit: 1500
creatorClientSplit: 1500,
executorClientSplit: 1500
})
);
vm.stopPrank();
@@ -70,7 +70,7 @@ contract ProtocolSharedRevenueMinFeeMintModuleBase is BaseFeeCollectModuleBase {
mintFeeModuleExampleInitData.followerOnly = exampleInitData.followerOnly;
mintFeeModuleExampleInitData.endTimestamp = exampleInitData.endTimestamp;
mintFeeModuleExampleInitData.recipient = exampleInitData.recipient;
mintFeeModuleExampleInitData.creatorFrontend = creatorFrontendAddress;
mintFeeModuleExampleInitData.creatorClient = creatorClientAddress;
return abi.encode(mintFeeModuleExampleInitData);
}

View File

@@ -82,7 +82,7 @@ contract ProtocolSharedRevenueMinFeeMintModule_Initialization is
uint72 currentTimestamp,
uint72 endTimestamp,
address recipient,
address creatorFrontend
address creatorClient
) public {
vm.assume(profileId != 0);
vm.assume(pubId != 0);
@@ -102,7 +102,7 @@ contract ProtocolSharedRevenueMinFeeMintModule_Initialization is
mintFeeModuleExampleInitData.followerOnly = followerOnly;
mintFeeModuleExampleInitData.endTimestamp = endTimestamp;
mintFeeModuleExampleInitData.recipient = recipient;
mintFeeModuleExampleInitData.creatorFrontend = creatorFrontend;
mintFeeModuleExampleInitData.creatorClient = creatorClient;
vm.prank(collectPublicationAction);
IBaseFeeCollectModule(baseFeeCollectModule).initializePublicationCollectModule(
@@ -138,9 +138,9 @@ contract ProtocolSharedRevenueMinFeeMintModule_Initialization is
'Collect limit initialization mismatch'
);
assertEq(
fetchedData.creatorFrontend,
mintFeeModuleExampleInitData.creatorFrontend,
'CreatorFrontend initialization mismatch'
fetchedData.creatorClient,
mintFeeModuleExampleInitData.creatorClient,
'CreatorClient initialization mismatch'
);
}
}
@@ -156,7 +156,7 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
// Prevents being counted in Foundry Coverage
}
address exampleExecutorFrontend = executorFrontendAddress;
address exampleExecutorClient = executorClientAddress;
function setUp() public override(ProtocolSharedRevenueMinFeeMintModuleBase, BaseFeeCollectModuleBase) {
ProtocolSharedRevenueMinFeeMintModuleBase.setUp();
@@ -171,7 +171,7 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
}
function _getCollectParamsData(address currency, uint160 amount) internal override returns (bytes memory) {
return abi.encode(currency, amount, exampleExecutorFrontend);
return abi.encode(currency, amount, exampleExecutorClient);
}
// Scenarios
@@ -201,8 +201,8 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
address recipient
) public {
address collectorProfileOwner = makeAddr('COLLECTOR_PROFILE_OWNER');
address executorFrontend = makeAddr('EXECUTOR_FRONTEND');
exampleExecutorFrontend = executorFrontend;
address executorClient = makeAddr('EXECUTOR_CLIENT');
exampleExecutorClient = executorClient;
bonsai.mint(collectorProfileOwner, 10 ether);
@@ -226,8 +226,8 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
struct Balances {
uint256 creator;
uint256 protocol;
uint256 creatorFrontend;
uint256 executorFrontend;
uint256 creatorClient;
uint256 executorClient;
uint256 collector;
}
@@ -246,7 +246,7 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
address recipient
) public {
address collectorProfileOwner = makeAddr('COLLECTOR_PROFILE_OWNER');
address executorFrontend = makeAddr('EXECUTOR_FRONTEND');
address executorClient = makeAddr('EXECUTOR_CLIENT');
bonsai.mint(collectorProfileOwner, 10 ether);
@@ -256,12 +256,12 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
balancesBefore = Balances({
creator: bonsai.balanceOf(defaultAccount.owner),
protocol: bonsai.balanceOf(hub.getTreasury()),
creatorFrontend: bonsai.balanceOf(creatorFrontendAddress),
executorFrontend: bonsai.balanceOf(executorFrontend),
creatorClient: bonsai.balanceOf(creatorClientAddress),
executorClient: bonsai.balanceOf(executorClient),
collector: bonsai.balanceOf(collectorProfileOwner)
});
exampleExecutorFrontend = executorFrontend;
exampleExecutorClient = executorClient;
super.testCanCollectIfAllConditionsAreMet(
pubId,
transactionExecutor,
@@ -278,16 +278,16 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
balancesAfter = Balances({
creator: bonsai.balanceOf(defaultAccount.owner),
protocol: bonsai.balanceOf(hub.getTreasury()),
creatorFrontend: bonsai.balanceOf(creatorFrontendAddress),
executorFrontend: bonsai.balanceOf(executorFrontend),
creatorClient: bonsai.balanceOf(creatorClientAddress),
executorClient: bonsai.balanceOf(executorClient),
collector: bonsai.balanceOf(collectorProfileOwner)
});
balancesChange = Balances({
creator: balancesAfter.creator - balancesBefore.creator,
protocol: balancesAfter.protocol - balancesBefore.protocol,
creatorFrontend: balancesAfter.creatorFrontend - balancesBefore.creatorFrontend,
executorFrontend: balancesAfter.executorFrontend - balancesBefore.executorFrontend,
creatorClient: balancesAfter.creatorClient - balancesBefore.creatorClient,
executorClient: balancesAfter.executorClient - balancesBefore.executorClient,
collector: balancesBefore.collector - balancesAfter.collector
});
@@ -295,19 +295,19 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
BPS_MAX;
uint256 expectedProtocolFee = (mintFee * mintFeeModule.getProtocolSharedRevenueDistribution().protocolSplit) /
BPS_MAX;
uint256 expectedCreatorFrontendFee = (mintFee *
mintFeeModule.getProtocolSharedRevenueDistribution().creatorFrontendSplit) / BPS_MAX;
uint256 expectedExecutorFrontendFee = (mintFee *
mintFeeModule.getProtocolSharedRevenueDistribution().executorFrontendSplit) / BPS_MAX;
uint256 expectedCreatorClientFee = (mintFee *
mintFeeModule.getProtocolSharedRevenueDistribution().creatorClientSplit) / BPS_MAX;
uint256 expectedExecutorClientFee = (mintFee *
mintFeeModule.getProtocolSharedRevenueDistribution().executorClientSplit) / BPS_MAX;
assertEq(balancesChange.creator, expectedCreatorFee, 'Creator balance change wrong');
assertEq(balancesChange.protocol, expectedProtocolFee, 'Protocol balance change wrong');
assertEq(balancesChange.creatorFrontend, expectedCreatorFrontendFee, 'CreatorFrontend balance change wrong');
assertEq(balancesChange.executorFrontend, expectedExecutorFrontendFee, 'ExecutorFrontend balance change wrong');
assertEq(balancesChange.creatorClient, expectedCreatorClientFee, 'CreatorClient balance change wrong');
assertEq(balancesChange.executorClient, expectedExecutorClientFee, 'ExecutorClient balance change wrong');
assertEq(balancesChange.collector, mintFee, 'Collector balance change wrong');
}
function testMintFeeDistribution_FreePost_WithoutFrontends(
function testMintFeeDistribution_FreePost_WithoutClients(
uint256 pubId,
address transactionExecutor,
uint96 collectLimit,
@@ -319,8 +319,8 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
) public {
address collectorProfileOwner = makeAddr('COLLECTOR_PROFILE_OWNER');
address executorFrontend = address(0);
creatorFrontendAddress = address(0);
address executorClient = address(0);
creatorClientAddress = address(0);
bonsai.mint(collectorProfileOwner, 10 ether);
@@ -330,14 +330,14 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
balancesBefore = Balances({
creator: bonsai.balanceOf(defaultAccount.owner),
protocol: bonsai.balanceOf(hub.getTreasury()),
creatorFrontend: bonsai.balanceOf(creatorFrontendAddress),
executorFrontend: bonsai.balanceOf(executorFrontend),
creatorClient: bonsai.balanceOf(creatorClientAddress),
executorClient: bonsai.balanceOf(executorClient),
collector: bonsai.balanceOf(collectorProfileOwner)
});
console.log('creatorFrontend balance before: %s', balancesBefore.creatorFrontend);
console.log('creatorClient balance before: %s', balancesBefore.creatorClient);
exampleExecutorFrontend = executorFrontend;
exampleExecutorClient = executorClient;
super.testCanCollectIfAllConditionsAreMet(
pubId,
transactionExecutor,
@@ -354,16 +354,16 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
balancesAfter = Balances({
creator: bonsai.balanceOf(defaultAccount.owner),
protocol: bonsai.balanceOf(hub.getTreasury()),
creatorFrontend: bonsai.balanceOf(creatorFrontendAddress),
executorFrontend: bonsai.balanceOf(executorFrontend),
creatorClient: bonsai.balanceOf(creatorClientAddress),
executorClient: bonsai.balanceOf(executorClient),
collector: bonsai.balanceOf(collectorProfileOwner)
});
balancesChange = Balances({
creator: balancesAfter.creator - balancesBefore.creator,
protocol: balancesAfter.protocol - balancesBefore.protocol,
creatorFrontend: balancesAfter.creatorFrontend - balancesBefore.creatorFrontend,
executorFrontend: balancesAfter.executorFrontend - balancesBefore.executorFrontend,
creatorClient: balancesAfter.creatorClient - balancesBefore.creatorClient,
executorClient: balancesAfter.executorClient - balancesBefore.executorClient,
collector: balancesBefore.collector - balancesAfter.collector
});
@@ -371,19 +371,19 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
BPS_MAX;
uint256 expectedProtocolFee = (mintFee * mintFeeModule.getProtocolSharedRevenueDistribution().protocolSplit) /
BPS_MAX;
uint256 expectedCreatorFrontendFee = (mintFee *
mintFeeModule.getProtocolSharedRevenueDistribution().creatorFrontendSplit) / BPS_MAX;
uint256 expectedExecutorFrontendFee = (mintFee *
mintFeeModule.getProtocolSharedRevenueDistribution().executorFrontendSplit) / BPS_MAX;
uint256 expectedCreatorClientFee = (mintFee *
mintFeeModule.getProtocolSharedRevenueDistribution().creatorClientSplit) / BPS_MAX;
uint256 expectedExecutorClientFee = (mintFee *
mintFeeModule.getProtocolSharedRevenueDistribution().executorClientSplit) / BPS_MAX;
assertEq(
balancesChange.creator,
expectedCreatorFee + expectedCreatorFrontendFee + expectedExecutorFrontendFee,
expectedCreatorFee + expectedCreatorClientFee + expectedExecutorClientFee,
'Creator balance change wrong'
);
assertEq(balancesChange.protocol, expectedProtocolFee, 'Protocol balance change wrong');
assertEq(balancesChange.creatorFrontend, 0, 'CreatorFrontend balance change wrong');
assertEq(balancesChange.executorFrontend, 0, 'ExecutorFrontend balance change wrong');
assertEq(balancesChange.creatorClient, 0, 'CreatorClient balance change wrong');
assertEq(balancesChange.executorClient, 0, 'ExecutorClient balance change wrong');
assertEq(balancesChange.collector, mintFee, 'Collector balance change wrong');
}
@@ -400,17 +400,17 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
) public {
vm.assume(amount > 0);
address collectorProfileOwner = makeAddr('COLLECTOR_PROFILE_OWNER');
address executorFrontend = makeAddr('EXECUTOR_FRONTEND');
address executorClient = makeAddr('EXECUTOR_CLIENT');
balancesBefore = Balances({
creator: bonsai.balanceOf(defaultAccount.owner),
protocol: bonsai.balanceOf(hub.getTreasury()),
creatorFrontend: bonsai.balanceOf(creatorFrontendAddress),
executorFrontend: bonsai.balanceOf(executorFrontend),
creatorClient: bonsai.balanceOf(creatorClientAddress),
executorClient: bonsai.balanceOf(executorClient),
collector: bonsai.balanceOf(collectorProfileOwner)
});
exampleExecutorFrontend = executorFrontend;
exampleExecutorClient = executorClient;
super.testCanCollectIfAllConditionsAreMet(
pubId,
transactionExecutor,
@@ -427,23 +427,23 @@ contract ProtocolSharedRevenueMinFeeMintModule_ProcessCollect is
balancesAfter = Balances({
creator: bonsai.balanceOf(defaultAccount.owner),
protocol: bonsai.balanceOf(hub.getTreasury()),
creatorFrontend: bonsai.balanceOf(creatorFrontendAddress),
executorFrontend: bonsai.balanceOf(executorFrontend),
creatorClient: bonsai.balanceOf(creatorClientAddress),
executorClient: bonsai.balanceOf(executorClient),
collector: bonsai.balanceOf(collectorProfileOwner)
});
balancesChange = Balances({
creator: balancesAfter.creator - balancesBefore.creator,
protocol: balancesAfter.protocol - balancesBefore.protocol,
creatorFrontend: balancesAfter.creatorFrontend - balancesBefore.creatorFrontend,
executorFrontend: balancesAfter.executorFrontend - balancesBefore.executorFrontend,
creatorClient: balancesAfter.creatorClient - balancesBefore.creatorClient,
executorClient: balancesAfter.executorClient - balancesBefore.executorClient,
collector: balancesBefore.collector - balancesAfter.collector
});
assertEq(balancesChange.creator, 0, 'Creator balance change wrong');
assertEq(balancesChange.protocol, 0, 'Protocol balance change wrong');
assertEq(balancesChange.creatorFrontend, 0, 'CreatorFrontend balance change wrong');
assertEq(balancesChange.executorFrontend, 0, 'ExecutorFrontend balance change wrong');
assertEq(balancesChange.creatorClient, 0, 'CreatorClient balance change wrong');
assertEq(balancesChange.executorClient, 0, 'ExecutorClient balance change wrong');
assertEq(balancesChange.collector, 0, 'Collector balance change wrong');
}
}
@@ -486,14 +486,14 @@ contract ProtocolSharedRevenueMinFeeMintModule_OwnerMethods is ProtocolSharedRev
function testCannotSetProtocolSharedRevenueDistribution_ifNotOwner(
uint16 creatorSplit,
uint16 protocolSplit,
uint16 creatorFrontendSplit,
uint16 creatorClientSplit,
address notOwner
) public {
vm.assume(notOwner != mintFeeModule.owner());
creatorSplit = uint16(bound(uint256(creatorSplit), 0, BPS_MAX));
protocolSplit = uint16(bound(uint256(protocolSplit), 0, BPS_MAX - creatorSplit));
creatorFrontendSplit = uint16(bound(uint256(creatorFrontendSplit), 0, BPS_MAX - creatorSplit - protocolSplit));
uint16 executorFrontendSplit = BPS_MAX - creatorSplit - protocolSplit - creatorFrontendSplit;
creatorClientSplit = uint16(bound(uint256(creatorClientSplit), 0, BPS_MAX - creatorSplit - protocolSplit));
uint16 executorClientSplit = BPS_MAX - creatorSplit - protocolSplit - creatorClientSplit;
vm.expectRevert('Ownable: caller is not the owner');
@@ -502,8 +502,8 @@ contract ProtocolSharedRevenueMinFeeMintModule_OwnerMethods is ProtocolSharedRev
ProtocolSharedRevenueDistribution({
creatorSplit: creatorSplit,
protocolSplit: protocolSplit,
creatorFrontendSplit: creatorFrontendSplit,
executorFrontendSplit: executorFrontendSplit
creatorClientSplit: creatorClientSplit,
executorClientSplit: executorClientSplit
})
);
}
@@ -519,14 +519,14 @@ contract ProtocolSharedRevenueMinFeeMintModule_OwnerMethods is ProtocolSharedRev
function testCannotSetProtocolSharedRevenueDistribution_ifSplitsDontAddUpToBPS_MAX(
uint16 creatorSplit,
uint16 protocolSplit,
uint16 creatorFrontendSplit,
uint16 executorFrontendSplit
uint16 creatorClientSplit,
uint16 executorClientSplit
) public {
vm.assume(
uint256(creatorSplit) +
uint256(protocolSplit) +
uint256(creatorFrontendSplit) +
uint256(executorFrontendSplit) !=
uint256(creatorClientSplit) +
uint256(executorClientSplit) !=
BPS_MAX
);
@@ -534,8 +534,8 @@ contract ProtocolSharedRevenueMinFeeMintModule_OwnerMethods is ProtocolSharedRev
if (
uint256(creatorSplit) +
uint256(protocolSplit) +
uint256(creatorFrontendSplit) +
uint256(executorFrontendSplit) >
uint256(creatorClientSplit) +
uint256(executorClientSplit) >
type(uint16).max
) {
vm.expectRevert(stdError.arithmeticError);
@@ -547,8 +547,8 @@ contract ProtocolSharedRevenueMinFeeMintModule_OwnerMethods is ProtocolSharedRev
ProtocolSharedRevenueDistribution({
creatorSplit: creatorSplit,
protocolSplit: protocolSplit,
creatorFrontendSplit: creatorFrontendSplit,
executorFrontendSplit: executorFrontendSplit
creatorClientSplit: creatorClientSplit,
executorClientSplit: executorClientSplit
})
);
vm.stopPrank();
@@ -575,19 +575,18 @@ contract ProtocolSharedRevenueMinFeeMintModule_OwnerMethods is ProtocolSharedRev
function testSetProtocolSharedRevenueDistribution(
uint16 creatorSplit,
uint16 protocolSplit,
uint16 creatorFrontendSplit,
uint16 executorFrontendSplit
uint16 creatorClientSplit
) public {
creatorSplit = uint16(bound(uint256(creatorSplit), 0, BPS_MAX));
protocolSplit = uint16(bound(uint256(protocolSplit), 0, BPS_MAX - creatorSplit));
creatorFrontendSplit = uint16(bound(uint256(creatorFrontendSplit), 0, BPS_MAX - creatorSplit - protocolSplit));
uint16 executorFrontendSplit = BPS_MAX - creatorSplit - protocolSplit - creatorFrontendSplit;
creatorClientSplit = uint16(bound(uint256(creatorClientSplit), 0, BPS_MAX - creatorSplit - protocolSplit));
uint16 executorClientSplit = BPS_MAX - creatorSplit - protocolSplit - creatorClientSplit;
ProtocolSharedRevenueDistribution memory expectedDistribution = ProtocolSharedRevenueDistribution({
creatorSplit: creatorSplit,
protocolSplit: protocolSplit,
creatorFrontendSplit: creatorFrontendSplit,
executorFrontendSplit: executorFrontendSplit
creatorClientSplit: creatorClientSplit,
executorClientSplit: executorClientSplit
});
vm.prank(mintFeeModule.owner());
@@ -599,14 +598,14 @@ contract ProtocolSharedRevenueMinFeeMintModule_OwnerMethods is ProtocolSharedRev
assertEq(actualDistribution.creatorSplit, expectedDistribution.creatorSplit, 'Creator split mismatch');
assertEq(actualDistribution.protocolSplit, expectedDistribution.protocolSplit, 'Protocol split mismatch');
assertEq(
actualDistribution.creatorFrontendSplit,
expectedDistribution.creatorFrontendSplit,
'CreatorFrontend split mismatch'
actualDistribution.creatorClientSplit,
expectedDistribution.creatorClientSplit,
'CreatorClient split mismatch'
);
assertEq(
actualDistribution.executorFrontendSplit,
expectedDistribution.executorFrontendSplit,
'ExecutorFrontend split mismatch'
actualDistribution.executorClientSplit,
expectedDistribution.executorClientSplit,
'ExecutorClient split mismatch'
);
}
}