interface IJBPayoutRedemptionPaymentTerminal is
IJBPaymentTerminal,
IJBPayoutTerminal,
IJBAllowanceTerminal,
IJBRedemptionTerminal
{
event AddToBalance(
uint256 indexed projectId,
uint256 amount,
uint256 refundedFees,
string memo,
bytes metadata,
address caller
);
event Migrate(
uint256 indexed projectId,
IJBPaymentTerminal indexed to,
uint256 amount,
address caller
);
event DistributePayouts(
uint256 indexed fundingCycleConfiguration,
uint256 indexed fundingCycleNumber,
uint256 indexed projectId,
address beneficiary,
uint256 amount,
uint256 distributedAmount,
uint256 fee,
uint256 beneficiaryDistributionAmount,
string memo,
address caller
);
event UseAllowance(
uint256 indexed fundingCycleConfiguration,
uint256 indexed fundingCycleNumber,
uint256 indexed projectId,
address beneficiary,
uint256 amount,
uint256 distributedAmount,
uint256 netDistributedamount,
string memo,
address caller
);
event HoldFee(
uint256 indexed projectId,
uint256 indexed amount,
uint256 indexed fee,
uint256 feeDiscount,
address beneficiary,
address caller
);
event ProcessFee(
uint256 indexed projectId,
uint256 indexed amount,
address beneficiary,
address caller
);
event RefundHeldFees(
uint256 indexed projectId,
uint256 indexed amount,
uint256 indexed refundedFees,
uint256 leftoverAmount,
address caller
);
event Pay(
uint256 indexed fundingCycleConfiguration,
uint256 indexed fundingCycleNumber,
uint256 indexed projectId,
address payer,
address beneficiary,
uint256 amount,
uint256 beneficiaryTokenCount,
string memo,
bytes metadata,
address caller
);
event DelegateDidPay(
IJBPayDelegate indexed delegate,
JBDidPayData data,
uint256 delegatedAmount,
address caller
);
event RedeemTokens(
uint256 indexed fundingCycleConfiguration,
uint256 indexed fundingCycleNumber,
uint256 indexed projectId,
address holder,
address beneficiary,
uint256 tokenCount,
uint256 reclaimedAmount,
string memo,
address caller
);
event DelegateDidRedeem(
IJBRedemptionDelegate indexed delegate,
JBDidRedeemData data,
uint256 delegatedAmount,
address caller
);
event DistributeToPayoutSplit(
uint256 indexed projectId,
uint256 indexed domain,
uint256 indexed group,
JBSplit split,
uint256 amount,
address caller
);
event SetFee(uint256 fee, address caller);
event SetFeeGauge(IJBFeeGauge indexed feeGauge, address caller);
event SetFeelessAddress(address indexed addrs, bool indexed flag, address caller);
function projects() external view returns (IJBProjects);
function splitsStore() external view returns (IJBSplitsStore);
function directory() external view returns (IJBDirectory);
function prices() external view returns (IJBPrices);
function store() external view returns (IJBSingleTokenPaymentTerminalStore);
function baseWeightCurrency() external view returns (uint256);
function payoutSplitsGroup() external view returns (uint256);
function heldFeesOf(uint256 _projectId) external view returns (JBFee[] memory);
function fee() external view returns (uint256);
function feeGauge() external view returns (IJBFeeGauge);
function isFeelessTerminal(IJBPaymentTerminal _terminal) external view returns (bool);
function migrate(uint256 _projectId, IJBPaymentTerminal _to) external returns (uint256 balance);
function processFees(uint256 _projectId) external;
function setFee(uint256 _fee) external;
function setFeeGauge(IJBFeeGauge _feeGauge) external;
function setFeelessAddress(address _address, bool _flag) external;
}