//Write your own contracts here. Currently compiles using solc v0.4.15+commit.bbb8e64f. pragma solidity ^0.4.21; library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract Deposit { using SafeMath for uint256; struct sDepositInfo { uint256 deposit_id; uint256 deposit; } sDepositInfo[] depositArray; mapping(address => uint256) balances; function() public payable { require( msg.value > 0); balances[msg.sender] += msg.value; depositArray.push(sDepositInfo(depositArray.length,msg.value)); } function myBalance() public view returns(uint256) { return balances[msg.sender]; } function totalDepositAmount() public view returns(uint256) { return address(this).balance; } function claim(uint256 _deposit_id) public { require(_deposit_id <= depositArray.length - 1 && _deposit_id == depositArray[_deposit_id].deposit_id && depositArray[_deposit_id].deposit > 0 ); uint256 _deposit = depositArray[_deposit_id].deposit; depositArray[_deposit_id].deposit = 0; require(msg.sender.send(_deposit)); } }
0.4.21