Skip to main content

IJBController

Code​

https://github.com/jbx-protocol/juice-contracts-v3/blob/main/contracts/interfaces/IJBController.sol

Definition​

interface IJBController is IERC165 {
event LaunchProject(uint256 configuration, uint256 projectId, string memo, address caller);

event LaunchFundingCycles(uint256 configuration, uint256 projectId, string memo, address caller);

event ReconfigureFundingCycles(
uint256 configuration,
uint256 projectId,
string memo,
address caller
);

event SetFundAccessConstraints(
uint256 indexed fundingCycleConfiguration,
uint256 indexed fundingCycleNumber,
uint256 indexed projectId,
JBFundAccessConstraints constraints,
address caller
);

event DistributeReservedTokens(
uint256 indexed fundingCycleConfiguration,
uint256 indexed fundingCycleNumber,
uint256 indexed projectId,
address beneficiary,
uint256 tokenCount,
uint256 beneficiaryTokenCount,
string memo,
address caller
);

event DistributeToReservedTokenSplit(
uint256 indexed projectId,
uint256 indexed domain,
uint256 indexed group,
JBSplit split,
uint256 tokenCount,
address caller
);

event MintTokens(
address indexed beneficiary,
uint256 indexed projectId,
uint256 tokenCount,
uint256 beneficiaryTokenCount,
string memo,
uint256 reservedRate,
address caller
);

event BurnTokens(
address indexed holder,
uint256 indexed projectId,
uint256 tokenCount,
string memo,
address caller
);

event Migrate(uint256 indexed projectId, IJBMigratable to, address caller);

event PrepMigration(uint256 indexed projectId, address from, address caller);

function projects() external view returns (IJBProjects);

function fundingCycleStore() external view returns (IJBFundingCycleStore);

function tokenStore() external view returns (IJBTokenStore);

function splitsStore() external view returns (IJBSplitsStore);

function directory() external view returns (IJBDirectory);

function reservedTokenBalanceOf(uint256 _projectId, uint256 _reservedRate)
external
view
returns (uint256);

function distributionLimitOf(
uint256 _projectId,
uint256 _configuration,
IJBPaymentTerminal _terminal,
address _token
) external view returns (uint256 distributionLimit, uint256 distributionLimitCurrency);

function overflowAllowanceOf(
uint256 _projectId,
uint256 _configuration,
IJBPaymentTerminal _terminal,
address _token
) external view returns (uint256 overflowAllowance, uint256 overflowAllowanceCurrency);

function totalOutstandingTokensOf(uint256 _projectId, uint256 _reservedRate)
external
view
returns (uint256);

function latestConfiguredFundingCycleOf(uint256 _projectId)
external
view
returns (
JBFundingCycle memory,
JBFundingCycleMetadata memory metadata,
JBBallotState
);

function currentFundingCycleOf(uint256 _projectId)
external
view
returns (JBFundingCycle memory fundingCycle, JBFundingCycleMetadata memory metadata);

function queuedFundingCycleOf(uint256 _projectId)
external
view
returns (JBFundingCycle memory fundingCycle, JBFundingCycleMetadata memory metadata);

function launchProjectFor(
address _owner,
JBProjectMetadata calldata _projectMetadata,
JBFundingCycleData calldata _data,
JBFundingCycleMetadata calldata _metadata,
uint256 _mustStartAtOrAfter,
JBGroupedSplits[] memory _groupedSplits,
JBFundAccessConstraints[] memory _fundAccessConstraints,
IJBPaymentTerminal[] memory _terminals,
string calldata _memo
) external returns (uint256 projectId);

function launchFundingCyclesFor(
uint256 _projectId,
JBFundingCycleData calldata _data,
JBFundingCycleMetadata calldata _metadata,
uint256 _mustStartAtOrAfter,
JBGroupedSplits[] memory _groupedSplits,
JBFundAccessConstraints[] memory _fundAccessConstraints,
IJBPaymentTerminal[] memory _terminals,
string calldata _memo
) external returns (uint256 configuration);

function reconfigureFundingCyclesOf(
uint256 _projectId,
JBFundingCycleData calldata _data,
JBFundingCycleMetadata calldata _metadata,
uint256 _mustStartAtOrAfter,
JBGroupedSplits[] memory _groupedSplits,
JBFundAccessConstraints[] memory _fundAccessConstraints,
string calldata _memo
) external returns (uint256);

function mintTokensOf(
uint256 _projectId,
uint256 _tokenCount,
address _beneficiary,
string calldata _memo,
bool _preferClaimedTokens,
bool _useReservedRate
) external returns (uint256 beneficiaryTokenCount);

function burnTokensOf(
address _holder,
uint256 _projectId,
uint256 _tokenCount,
string calldata _memo,
bool _preferClaimedTokens
) external;

function distributeReservedTokensOf(uint256 _projectId, string memory _memo)
external
returns (uint256);

function migrate(uint256 _projectId, IJBMigratable _to) external;
}