Skip to main content

JBTiered721DelegateProjectDeployer

Deploys a project with a tiered tier delegate.


Git Source

Inherits: JBOperatable, IJBTiered721DelegateProjectDeployer

Adheres to -

  • IJBTiered721DelegateProjectDeployer: General interface for the generic controller methods in this contract that interacts with funding cycles and tokens according to the protocol's rules.*

Inherits from -

  • JBOperatable: Several functions in this contract can only be accessed by a project owner, or an address that has been preconfigured to be an operator of the project.*

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

NameTypeDescription
_directoryIJBDirectoryThe directory of terminals and controllers for projects.
_delegateDeployerIJBTiered721DelegateDeployerThe deployer of delegates.
_operatorStoreIJBOperatorStoreA 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

NameTypeDescription
_owneraddressThe address to set as the owner of the project. The project ERC-721 will be owned by this address.
_deployTiered721DelegateDataJBDeployTiered721DelegateDataData necessary to fulfill the transaction to deploy a delegate.
_launchProjectDataJBLaunchProjectDataData necessary to fulfill the transaction to launch a project.
_controllerIJBController3_1The controller with which the funding cycles should be configured.

Returns

NameTypeDescription
projectIduint256The ID of the newly configured project.

launchFundingCyclesFor

Launches funding cycle's for a project with a delegate attached.

  • Only a project 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

NameTypeDescription
_projectIduint256The ID of the project having funding cycles launched.
_deployTiered721DelegateDataJBDeployTiered721DelegateDataData necessary to fulfill the transaction to deploy a delegate.
_launchFundingCyclesDataJBLaunchFundingCyclesDataData necessary to fulfill the transaction to launch funding cycles for the project.
_controllerIJBController3_1The controller with which the funding cycles should be configured.

Returns

NameTypeDescription
configurationuint256The configuration of the funding cycle that was successfully created.

reconfigureFundingCyclesOf

Reconfigures funding cycles for a project with a delegate attached.

  • Only a project's owner or a designated 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

NameTypeDescription
_projectIduint256The ID of the project having funding cycles reconfigured.
_deployTiered721DelegateDataJBDeployTiered721DelegateDataData necessary to fulfill the transaction to deploy a delegate.
_reconfigureFundingCyclesDataJBReconfigureFundingCyclesDataData necessary to fulfill the transaction to reconfigure funding cycles for the project.
_controllerIJBController3_1The controller with which the funding cycles should be configured.

Returns

NameTypeDescription
configurationuint256The configuration of the funding cycle that was successfully reconfigured.

_launchProjectFor

Launches a project.

function _launchProjectFor(
address _owner,
JBLaunchProjectData memory _launchProjectData,
IJBTiered721Delegate _dataSource,
IJBController3_1 _controller
) internal;

Parameters

NameTypeDescription
_owneraddressThe address to set as the owner of the project.
_launchProjectDataJBLaunchProjectDataData necessary to fulfill the transaction to launch the project.
_dataSourceIJBTiered721DelegateThe data source to set.
_controllerIJBController3_1The controller with which the funding cycles should be configured.

_launchFundingCyclesFor

Launches funding cycles for a project.

function _launchFundingCyclesFor(
uint256 _projectId,
JBLaunchFundingCyclesData memory _launchFundingCyclesData,
IJBTiered721Delegate _dataSource,
IJBController3_1 _controller
) internal returns (uint256);

Parameters

NameTypeDescription
_projectIduint256The ID of the project having funding cycles launched.
_launchFundingCyclesDataJBLaunchFundingCyclesDataData necessary to fulfill the transaction to launch funding cycles for the project.
_dataSourceIJBTiered721DelegateThe data source to set.
_controllerIJBController3_1The controller with which the funding cycles should be configured.

Returns

NameTypeDescription
<none>uint256configuration 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

NameTypeDescription
_projectIduint256The ID of the project having funding cycles launched.
_reconfigureFundingCyclesDataJBReconfigureFundingCyclesDataData necessary to fulfill the transaction to launch funding cycles for the project.
_dataSourceIJBTiered721DelegateThe data source to set.
_controllerIJBController3_1The controller with which the funding cycles should be configured.

Returns

NameTypeDescription
<none>uint256The configuration of the funding cycle that was successfully reconfigured.