_payToSplits
Contract: JBETHERC20SplitsPayer
- Step by step
- Code
- Events
- Bug bounty
Split an amount between all splits.
Definitionβ
function _payToSplits(
uint256 _splitsProjectId,
uint256 _splitsDomain,
uint256 _splitsGroup,
address _token,
uint256 _amount,
uint256 _decimals,
address _defaultBeneficiary
) internal virtual returns (uint256 leftoverAmount) { ... }
- Arguments:
_splitsProjectId
is the ID of the project to which the splits belong._splitsDomain
is the splits domain to which the group belongs._splitsGroup
is the splits group to pay._token
is the token the amonut being split is in._amount
is the amount of tokens being split, as a fixed point number. If the_token
is ETH, this is ignored and msg.value is used in its place._decimals
is the number of decimals in the_amount
fixed point number._defaultBeneficiary
is the address that will benefit from any non-specified beneficiaries in splits.
- The function is private to this contract.
- The function returns the amount leftover after all splits were paid.
Bodyβ
-
Pay the splits of the specified project, domain, and group.
// Pay the splits.
leftoverAmount = _payTo(
splitsStore.splitsOf(_splitsProjectId, _splitsDomain, _splitsGroup),
_token,
_amount,
_decimals,
_defaultBeneficiary
);Internal references:
External references:
-
Emit a
DistributeToSplitGroup
event with the relevant parameters.emit DistributeToSplitGroup(_splitsProjectId, _splitsDomain, _splitsGroup, msg.sender);
Event references:
/**
@notice
Split an amount between all splits.
@param _splitsProjectId The ID of the project to which the splits belong.
@param _splitsDomain The splits domain to which the group belongs.
@param _splitsGroup The splits group to pay.
@param _token The token the amonut being split is in.
@param _amount The amount of tokens being split, as a fixed point number. If the `_token` is ETH, this is ignored and msg.value is used in its place.
@param _decimals The number of decimals in the `_amount` fixed point number.
@param _defaultBeneficiary The address that will benefit from any non-specified beneficiaries in splits.
@return leftoverAmount The amount leftover after all splits were paid.
*/
function _payToSplits(
uint256 _splitsProjectId,
uint256 _splitsDomain,
uint256 _splitsGroup,
address _token,
uint256 _amount,
uint256 _decimals,
address _defaultBeneficiary
) internal virtual returns (uint256 leftoverAmount) {
// Pay the splits.
leftoverAmount = _payTo(
splitsStore.splitsOf(_splitsProjectId, _splitsDomain, _splitsGroup),
_token,
_amount,
_decimals,
_defaultBeneficiary
);
emit DistributeToSplitGroup(_splitsProjectId, _splitsDomain, _splitsGroup, msg.sender);
}
Name | Data |
---|---|
DistributeToSplitGroup |
|
Category | Description | Reward |
---|---|---|
Optimization | Help make this operation more efficient. | 0.5ETH |
Low severity | Identify a vulnerability in this operation that could lead to an inconvenience for a user of the protocol or for a protocol developer. | 1ETH |
High severity | Identify a vulnerability in this operation that could lead to data corruption or loss of funds. | 5+ETH |