DelegationsManagercan split the funds in its balance among all Delegations attached to it (and therefore attached to the Organization).
When a Delegation newly attaches itself to the
DelegationsManager, a dedicated
treasuryManageris cloned from the model address stored in the
DelegationsManagerand dedicated to the Delegation.
The implication here is that if the Delegation is attached to multiple Organizations, it will have a dedicated
The DelegationsManager, via the
splitfunction, splits an organization's funds (stored in the
DelegationsManager) and distributes them to attached Delegations. The split can be performed every time the DelegationsManager has an amount of ETH greater than zero.
Anyone can call
split, and receive a reward (which serves as an economic incentive) for doing so.
function split(address executorRewardReceiver) external;
As input, the function takes the address of the receiver (who can be specified as different from the caller) of the
executorRewardamount is calculated as
(the amount to be split across the Delegations * executorReward percentage).
splitfunction internally calls the
getSplitfunction to calculate how much of the funds will be sent to each Delegations' treasury, and the funds are sent accordingly immediately afterwards.
(address memory receivers, uint256 memory values) = getSplit(executorRewardReceiver);
The amount received from a Delegation is calculated as the percentage of governance tokens staked with respect to the total amount of tokens staked by all delegations associated with that specific organization.
Governance token supported by the Organization: $VTB
Delegations linked to an Organization: 3
ETH amount in the Delegations Manager to be split: 10 ETH
Tot. amount of $VTB staked by the three Delegations: 1000
Amounts staked by the three Delegations:
-Delegation 1: 200
-Delegation 2: 500
-Delegation 3: 300
ETH amount received by the three Delegations:
-Delegation 1: 2 ETH
-Delegation 2: 5 ETH
-Delegation 3: 3 ETH
Any remaining amount is automatically sent to the flusher. It can be a specific Component set at the time of Delegations Manager initialization (
flusherKey) or the Organization Treasury Manager if
flusherKeywas set as