JBController
Stitches together funding cycles and project tokens, making sure all activity is accounted for and correct.
Code
https://github.com/jbx-protocol/juice-contracts-v3/blob/main/contracts/JBController.sol
Addresses
Ethereum mainnet: 0xFFdD70C318915879d5192e8a0dcbFcB0285b3C98
Goerli testnet: 0x7Cb86D43B665196BC719b6974D320bf674AFb395
Interfaces
Name | Description |
---|---|
IJBController | General interface for the generic controller methods in this contract that interacts with funding cycles and tokens according to the protocol's rules. |
IJBMigratable | Allows migrating to this contract, with a hook called to prepare for the migration. |
Inheritance
Contract | Description |
---|---|
JBOperatable | Includes convenience functionality for checking a message sender's permissions before executing certain transactions. |
ERC165 | Introspection on interface adherance. |
Constructor
/**
@param _operatorStore A contract storing operator assignments.
@param _projects A contract which mints ERC-721's that represent project ownership and transfers.
@param _directory A contract storing directories of terminals and controllers for each project.
@param _fundingCycleStore A contract storing all funding cycle configurations.
@param _tokenStore A contract that manages token minting and burning.
@param _splitsStore A contract that stores splits for each project.
*/
constructor(
IJBOperatorStore _operatorStore,
IJBProjects _projects,
IJBDirectory _directory,
IJBFundingCycleStore _fundingCycleStore,
IJBTokenStore _tokenStore,
IJBSplitsStore _splitsStore
) JBOperatable(_operatorStore) {
projects = _projects;
directory = _directory;
fundingCycleStore = _fundingCycleStore;
tokenStore = _tokenStore;
splitsStore = _splitsStore;
}
_operatorStore
is anIJBOperatorStore
contract storing operator assignments._projects
is anIJBProjects
contract which mints ERC-721's that represent project ownership and transfers._directory
is anIJBDirectory
contract storing directories of terminals and controllers for each project._fundingCycleStore
is anIJBFundingCycleStore
contract storing all funding cycle configurations._tokenStore
is anIJBTokenStore
contract that manages token minting and burning._splitsStore
is anIJBSplitsStore
contract that stores splits for each project.
Events
Name | Data |
---|---|
LaunchProject |
|
LaunchFundingCycles |
|
ReconfigureFundingCycles |
|
SetFundAccessConstraints |
|
DistributeReservedTokens |
|
DistributeToReservedTokenSplit |
|
MintTokens |
|
BurnTokens |
|
PrepMigration |
|
Migrate |
|
Properties
Function | Definition |
---|---|
projects | Traits
Returns |
fundingCycleStore | Traits
Returns |
tokenStore | Traits
Returns |
splitsStore | Traits
Returns |
directory | Traits
Returns |
Read
Function | Definition |
---|---|
distributionLimitOf | Params
Returns
|
overflowAllowanceOf | Params
Returns
|
reservedTokenBalanceOf | Params
Returns
|
totalOutstandingTokensOf | Params
Returns
|
getFundingCycleOf | Params
Returns
|
latestConfiguredFundingCycleOf | Params
Returns
|
currentFundingCycleOf | Params
Returns
|
queuedFundingCycleOf | Params
Returns
|
supportsInterface | Params
Returns
|
Write
Function | Definition |
---|---|
launchProjectFor | Traits
Params
Returns
|
launchFundingCyclesFor | Traits
Params
Returns
|
reconfigureFundingCyclesOf | Traits
Params
Returns
|
mintTokensOf | Traits Params
Returns
|
burnTokensOf | Traits Params
|
distributeReservedTokensOf | Traits
Params
Returns
|
prepForMigrationOf | Traits
Params
|
migrate | Traits
Params
|