]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blame - splitShares.sol
Merge branch 'dev'
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / splitShares.sol
CommitLineData
e9e2694d
IB
1pragma solidity ^0.4.0;
2contract SplitIncomes {
3 mapping(address => uint256) withdrawn;
4 mapping(address => bool) inShares;
5 uint256 totalWithdrawn;
6 uint256 SharesCount;
7
8 function SplitIncomes(address[] addresses) public {
9 SharesCount = addresses.length;
10
11 for (uint i = 0; i < SharesCount; i++) {
12 inShares[addresses[i]] = true;
13 }
14 }
15
16 function () public payable {}
17
18 function balance() public view returns (uint256) {
19 if (!inShares[msg.sender]) {
20 return 0;
21 }
22
23 return (address(this).balance + totalWithdrawn) / SharesCount - withdrawn[msg.sender];
24 }
25
26 function withdraw() public {
27 require(inShares[msg.sender]);
28 uint256 available = balance();
29 if (available > 0) {
30 withdrawn[msg.sender] += available;
31 totalWithdrawn += available;
32 msg.sender.transfer(available);
33 }
34 }
35}