JBPayoutRedemptionPaymentTerminal3_1_2
Inherits: JBSingleTokenPaymentTerminal
, JBOperatable
, Ownable
, IJBPayoutRedemptionPaymentTerminal3_1_1
Generic terminal managing all inflows and outflows of funds into the protocol ecosystem.
State Variables
_FEE_CAP
Maximum fee that can be set for a funding cycle configuration.
Out of MAX_FEE (50_000_000 / 1_000_000_000).
uint256 internal constant _FEE_CAP = 50_000_000;
_FEE_BENEFICIARY_PROJECT_ID
The fee beneficiary project ID is 1, as it should be the first project launched during the deployment process.
uint256 internal constant _FEE_BENEFICIARY_PROJECT_ID = 1;
_heldFeesOf
Fees that are being held to be processed later.
mapping(uint256 => JBFee[]) internal _heldFeesOf;
projects
Mints ERC-721's that represent project ownership and transfers.
IJBProjects public immutable override projects;
directory
The directory of terminals and controllers for projects.
IJBDirectory public immutable override directory;
splitsStore
The contract that stores splits for each project.
IJBSplitsStore public immutable override splitsStore;
prices
The contract that exposes price feeds.
IJBPrices public immutable override prices;
store
The contract that stores and manages the terminal's data.
address public immutable override store;
baseWeightCurrency
The currency to base token issuance on.
If this differs from currency
, there must be a price feed available to convert currency
to baseWeightCurrency
.
uint256 public immutable override baseWeightCurrency;
payoutSplitsGroup
The group that payout splits coming from this terminal are identified by.
uint256 public immutable override payoutSplitsGroup;
fee
The platform fee percent.
Out of MAX_FEE (25_000_000 / 1_000_000_000)
uint256 public override fee = 25_000_000;
feeGauge
The data source that returns a discount to apply to a project's fee.
address public override feeGauge;
isFeelessAddress
Addresses that can be paid towards from this terminal without incurring a fee.
Only addresses that are considered to be contained within the ecosystem can be feeless. Funds sent outside the ecosystem may incur fees despite being stored as feeless.
mapping(address => bool) public override isFeelessAddress;
Functions
currentEthOverflowOf
Gets the current overflowed amount in this terminal for a specified project, in terms of ETH.
The current overflow is represented as a fixed point number with 18 decimals.
function currentEthOverflowOf(uint256 _projectId)
external
view
virtual
override
returns (uint256);
Parameters
Name | Type | Description |
---|---|---|
_projectId | uint256 | The ID of the project to get overflow for. |
Returns
Name | Type | Description |
---|---|---|
<none> | uint256 | The current amount of ETH overflow that project has in this terminal, as a fixed point number with 18 decimals. |
heldFeesOf
The fees that are currently being held to be processed later for each project.
function heldFeesOf(uint256 _projectId) external view override returns (JBFee[] memory);
Parameters
Name | Type | Description |
---|---|---|
_projectId | uint256 | The ID of the project for which fees are being held. |
Returns
Name | Type | Description |
---|---|---|
<none> | JBFee[] | An array of fees that are being held. |
supportsInterface
Indicates if this contract adheres to the specified interface.
See IERC165-supportsInterface.
function supportsInterface(bytes4 _interfaceId)
public
view
virtual
override(JBSingleTokenPaymentTerminal, IERC165)
returns (bool);
Parameters
Name | Type | Description |
---|---|---|
_interfaceId | bytes4 | The ID of the interface to check for adherance to. |
Returns
Name | Type | Description |
---|---|---|
<none> | bool | A flag indicating if the provided interface ID is supported. |