Open mariameda opened 6 years ago
https://github.com/NiluPlatform/NIPs/blob/master/NIP/nip-1.md
7 ... distribute bank account owners’ profit
possibly consider "PullPayment" model, as it may be more simple than "PushPayment". https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/payment/PullPayment.sol
I think it is a good idea for a contract act as second level bank which should settle with so many individual in small amounts. NIP-1 is concentrate on the behavior of meta bank that is something like central bank of countries which just works with big entities like other banks. As explained in NIP, minimum for deposit in meta bank is relatively high, so logically it will lead to establish second level banks (contracts which act like regular bank and collect small entities and individuals NILU), each of them can have their own business model and their own mechanism for minimum of deposits, payments period, interest rate, pull payment or push payment. These second level banks are not limited to the official one and can (and should!) be developed by others.
First version of Metabank contract is available at: https://github.com/NiluPlatform/smart-contracts/blob/master/Metabank.sol Please review and put your comments.
Second version of Metabank contracts is available at: https://github.com/NiluPlatform/smart-contracts/tree/master/Pod
After revising first version of metabank, it seems that metabank needs to handle contract depositors different from regular depositors, adding such handling make contract so complicated. As this contract address should be hard coded in the core, any change in contract need another fork. To prevent such things, we separate concept of balance holder from its manager, so now we have 3 contract: 1.Safebox (store all pod benefits and user deposits, address of this contract should be hardcoded in gilu core) 2.Metabank (manager of safebox who hold all details about user deposits and payments) 3.SafeboxVoteHandler: This contract will be used for voting to change metabank address to another contract, if 0.1 of available balance accept the vote metabank contract which allows to manage safebox will change.)
Please review and put your comments.
Second version of Metabank contracts is available at: https://github.com/NiluPlatform/smart-contracts/tree/master/Pod
After revising first version of metabank, it seems that metabank needs to handle contract depositors different from regular depositors, adding such handling make contract so complicated. As this contract address should be hard coded in the core, any change in contract need another fork. To prevent such things, we separate concept of balance holder from its manager, so now we have 3 contract: 1.Safebox (store all pod benefits and user deposits, address of this contract should be hardcoded in gilu core) 2.Metabank (manager of safebox who hold all details about user deposits and payments) 3.SafeboxVoteHandler: This contract will be used for voting to change metabank address to another contract, if 0.1 of available balance accept the vote metabank contract which allows to manage safebox will change.)
Please review and put your comments.
I have proposal a major source of funding
First NIP is available at https://github.com/NiluPlatform/NIPs/NIP/nip-1.md . NIP-1 is still in draft status, waiting for community 's discussions and edits.