Implements UBI and other types of income, used to claim currency in other external contracts
when deploy it is need to pass parameters in to init method
Params:
| name | type | description |
|---|---|---|
| token | address | token's address. if token = address(0) then contract will trying to claim ETH |
once installed will be use methods:
adding recipient to contract. Only for Owner
Params:
| name | type | description |
|---|---|---|
| recipient | address | recipient's address |
lockups for recipient. Only for Owner
Params:
| name | type | description |
|---|---|---|
| recipient | address | recipient's address |
| restrictions | tuple[] | array or RestrictParam tuples |
RestrictParam tuple
| name | type | description |
|---|---|---|
| amount | uint256 | amount |
| untilTime | uint256 | time in unixtimestamp |
| gradual | bool | gradual |
adding manager to recipient. Only for Owner
Params:
| name | type | description |
|---|---|---|
| recipient | address | recipient's address |
| manager | address | manager's address |
removing manager from recipient. Only for Owner
Params:
| name | type | description |
|---|---|---|
| recipient | address | recipient's address |
| manager | address | manager's address |
setup allowed amount to recipient claim
Params:
| name | type | description |
|---|---|---|
| recipient | address | recipient's address |
| amount | uint256 | amount |
call by recipient to claim funds
Params:
| name | type | description |
|---|---|---|
| recipient | address | recipient's address |
Returned params:
| name | type | description |
|---|---|---|
| maximum | uint256 | maximum funds that was setup by owner |
| payed | uint256 | already paid funds. mean that recipient already claimed them |
| locked | uint256 | fudns that restricted by owner |
| allowedByManager | uint256 | funds allowed by manager. recipient can claim them |
Create IncomeContract with param 'token' = <0x0000000000000000000000000000000000000000>. That mean that contract will be work with ethers. And send some ethers to IncomeContract.
-
so owner want to pay some recipient 10eth per week for 2 months(8 weeks). Need to do several steps:
- add recipient by invoking method
addRecipient(<recipient address>) - add manager to recipient by invoking method
addManager(<recipient address>,<manager address>) - setup restriction. invoke method
setLockup(<recipient address>, <array or restriction's tuples>). one tuple is [amount,untilTime,gradual]. So it will be smth like this
[ [<10e18>,<time_now + 1week in seconds>, false], [<10e18>,<time_now + 2week in seconds>, false], [<10e18>,<time_now + 3week in seconds>, false], [<10e18>,<time_now + 4week in seconds>, false], [<10e18>,<time_now + 5week in seconds>, false], [<10e18>,<time_now + 6week in seconds>, false], [<10e18>,<time_now + 7week in seconds>, false], [<10e18>,<time_now + 8week in seconds>, false] ]- after this, every week will be available by 10 eth and manager can pay (setup allowed amount to claim) to recipient any funds of available.
- after passing 2 weeks. available by owner 20eth. manager can
paynot more that 20eth. for example he invoking methodpay(<recipient address>,<12e18>). reciepient can claim only 12 eth
- add recipient by invoking method