JBTiered721DelegateProjectDeployer
Inherits: JBOperatable, IJBTiered721DelegateProjectDeployer
Deploys a project with an associated tiered 721 delegate.
State Variables
directory
The directory of terminals and controllers for projects.
IJBDirectory public immutable override directory;
delegateDeployer
The contract responsible for deploying the delegate.
IJBTiered721DelegateDeployer public immutable override delegateDeployer;
Functions
constructor
constructor(IJBDirectory _directory, IJBTiered721DelegateDeployer _delegateDeployer, IJBOperatorStore _operatorStore)
    JBOperatable(_operatorStore);
Parameters
| Name | Type | Description | 
|---|---|---|
_directory | IJBDirectory | The directory of terminals and controllers for projects. | 
_delegateDeployer | IJBTiered721DelegateDeployer | The delegate deployer. | 
_operatorStore | IJBOperatorStore | A contract storing operator assignments. | 
launchProjectFor
Launches a new project with a tiered 721 delegate attached.
function launchProjectFor(
    address _owner,
    JBDeployTiered721DelegateData memory _deployTiered721DelegateData,
    JBLaunchProjectData memory _launchProjectData,
    IJBController3_1 _controller
) external override returns (uint256 projectId);
Parameters
| Name | Type | Description | 
|---|---|---|
_owner | address | The address to set as the owner of the project. The project's ERC-721 will be owned by this address. | 
_deployTiered721DelegateData | JBDeployTiered721DelegateData | Data necessary to deploy the delegate. | 
_launchProjectData | JBLaunchProjectData | Data necessary to launch the project. | 
_controller | IJBController3_1 | The controller with which the funding cycles should be configured. | 
Returns
| Name | Type | Description | 
|---|---|---|
projectId | uint256 | The ID of the newly configured project. | 
launchFundingCyclesFor
Launches funding cycles for a project with an attached delegate.
Only a project's owner or operator can launch its funding cycles.
function launchFundingCyclesFor(
    uint256 _projectId,
    JBDeployTiered721DelegateData memory _deployTiered721DelegateData,
    JBLaunchFundingCyclesData memory _launchFundingCyclesData,
    IJBController3_1 _controller
)
    external
    override
    requirePermission(directory.projects().ownerOf(_projectId), _projectId, JBOperations.RECONFIGURE)
    returns (uint256 configuration);
Parameters
| Name | Type | Description | 
|---|---|---|
_projectId | uint256 | The ID of the project for which the funding cycles will be launched. | 
_deployTiered721DelegateData | JBDeployTiered721DelegateData | Data necessary to deploy a delegate. | 
_launchFundingCyclesData | JBLaunchFundingCyclesData | Data necessary to launch the funding cycles for the project. | 
_controller | IJBController3_1 | The controller with which the funding cycles should be configured. | 
Returns
| Name | Type | Description | 
|---|---|---|
configuration | uint256 | The configuration of the funding cycle that was successfully created. | 
reconfigureFundingCyclesOf
Reconfigures funding cycles for a project with an attached delegate.
Only a project's owner or operator can configure its funding cycles.
function reconfigureFundingCyclesOf(
    uint256 _projectId,
    JBDeployTiered721DelegateData memory _deployTiered721DelegateData,
    JBReconfigureFundingCyclesData memory _reconfigureFundingCyclesData,
    IJBController3_1 _controller
)
    external
    override
    requirePermission(directory.projects().ownerOf(_projectId), _projectId, JBOperations.RECONFIGURE)
    returns (uint256 configuration);
Parameters
| Name | Type | Description | 
|---|---|---|
_projectId | uint256 | The ID of the project for which funding cycles are being reconfigured. | 
_deployTiered721DelegateData | JBDeployTiered721DelegateData | Data necessary to deploy a delegate. | 
_reconfigureFundingCyclesData | JBReconfigureFundingCyclesData | Data necessary to reconfigure the funding cycle. | 
_controller | IJBController3_1 | The controller with which the funding cycles should be configured. | 
Returns
| Name | Type | Description | 
|---|---|---|
configuration | uint256 | The configuration of the successfully reconfigured funding cycle. | 
_launchProjectFor
Launches a project.
function _launchProjectFor(
    address _owner,
    JBLaunchProjectData memory _launchProjectData,
    IJBTiered721Delegate _dataSource,
    IJBController3_1 _controller
) internal;
Parameters
| Name | Type | Description | 
|---|---|---|
_owner | address | The address to set as the project's owner. | 
_launchProjectData | JBLaunchProjectData | Data needed to launch the project. | 
_dataSource | IJBTiered721Delegate | The data source to set for the project. | 
_controller | IJBController3_1 | The controller to be used for configuring the project's funding cycles. | 
_launchFundingCyclesFor
Launches a funding cycle for a project.
function _launchFundingCyclesFor(
    uint256 _projectId,
    JBLaunchFundingCyclesData memory _launchFundingCyclesData,
    IJBTiered721Delegate _dataSource,
    IJBController3_1 _controller
) internal returns (uint256);
Parameters
| Name | Type | Description | 
|---|---|---|
_projectId | uint256 | The project ID to launch a funding cycle for. | 
_launchFundingCyclesData | JBLaunchFundingCyclesData | Data necessary to launch a funding cycle for the project. | 
_dataSource | IJBTiered721Delegate | The data source to be set for the project. | 
_controller | IJBController3_1 | The controller to configure the project's funding cycles with. | 
Returns
| Name | Type | Description | 
|---|---|---|
<none> | uint256 | configuration The configuration of the funding cycle that was successfully created. | 
_reconfigureFundingCyclesOf
Reconfigure funding cycles for a project.
function _reconfigureFundingCyclesOf(
    uint256 _projectId,
    JBReconfigureFundingCyclesData memory _reconfigureFundingCyclesData,
    IJBTiered721Delegate _dataSource,
    IJBController3_1 _controller
) internal returns (uint256);
Parameters
| Name | Type | Description | 
|---|---|---|
_projectId | uint256 | The ID of the project for which the funding cycles are being reconfigured. | 
_reconfigureFundingCyclesData | JBReconfigureFundingCyclesData | Data necessary to reconfigure the project's funding cycles. | 
_dataSource | IJBTiered721Delegate | The data source to be set for the project. | 
_controller | IJBController3_1 | The controller to be used for configuring the project's funding cycles. | 
Returns
| Name | Type | Description | 
|---|---|---|
<none> | uint256 | The configuration of the successfully reconfigured funding cycle. |