allo-protocol / allo-contracts

Core Contracts Allo Protocol
32 stars 28 forks source link

Spec: Splits payouts #68

Closed nfrgosselin closed 1 year ago

nfrgosselin commented 1 year ago

Overview Draft a spec for the mechanism, using this template.

Example can be found here.

Details Full list of strategies

0xKurt commented 1 year ago

0xsplits.xyz All of these contracts can only distribute ETH and ERC20s. Do not send NFTs.

Main contract: https://github.com/0xSplits/splits-contracts/blob/main/contracts/SplitMain.sol

needed information:

address[] accounts
uint32[] percentAllocations
uint32 distributorFee (optional?)
address controller

info: controller can be address(0) for uncontrolled split controller can update the splits accounts and percentAllocations and transfer split to a new controller

1: newSplit = SplitMain.createSplit(accounts, percentAllocations, distributorFee, controller)

2: transfer total amount to newSplit

3: distributeETH(newSplit, accounts, percentAllocations, distributorFee, distributorAddress) (or distributeERC20)

info: amounts are added to the users split balance, user withdraws itself Questions: how to avoid reaching blockgas limit, if there are too many accounts?