Skip to main content

ModStore

Constructor

/**
@param _projects The contract storing project information
@param _operatorStore A contract storing operator assignments.
@param _terminalDirectory A directory of a project's current Juicebox terminal to receive payments in.
*/
constructor(
IProjects _projects,
IOperatorStore _operatorStore,
ITerminalDirectory _terminalDirectory
) Operatable(_operatorStore) TerminalUtility(_terminalDirectory)

Read

/**
@notice
Get all payout mods for the specified project ID.

@param _projectId The ID of the project to get mods for.
@param _configuration The configuration to get mods for.

@return An array of all mods for the project.
*/
function payoutModsOf(uint256 _projectId, uint256 _configuration)
external
view
override
returns (PayoutMod[] memory)
/**
@notice
Get all ticket mods for the specified project ID.

@param _projectId The ID of the project to get mods for.
@param _configuration The configuration to get mods for.

@return An array of all mods for the project.
*/
function ticketModsOf(uint256 _projectId, uint256 _configuration)
external
view
override
returns (TicketMod[] memory)

Write

/**
@notice
Adds a mod to the payout mods list.

@dev
Only the owner or operator of a project can make this call, or the current terminal of the project.

@param _projectId The project to add a mod to.
@param _configuration The configuration to set the mods to be active during.
@param _mods The payout mods to set.
*/
function setPayoutMods(
uint256 _projectId,
uint256 _configuration,
PayoutMod[] memory _mods
)
external
override
requirePermissionAcceptingAlternateAddress(
projects.ownerOf(_projectId),
_projectId,
Operations.SetPayoutMods,
address(terminalDirectory.terminalOf(_projectId))
)
/**
@notice
Adds a mod to the ticket mods list.

@dev
Only the owner or operator of a project can make this call, or the current terminal of the project.

@param _projectId The project to add a mod to.
@param _configuration The configuration to set the mods to be active during.
@param _mods The ticket mods to set.
*/
function setTicketMods(
uint256 _projectId,
uint256 _configuration,
TicketMod[] memory _mods
)
external
override
requirePermissionAcceptingAlternateAddress(
projects.ownerOf(_projectId),
_projectId,
Operations.SetTicketMods,
address(terminalDirectory.terminalOf(_projectId))
)