//Write your own contracts here. Currently compiles using solc v0.4.15+commit.bbb8e64f. pragma solidity ^0.4.19; import "http://github.com/OpenZeppelin/zeppelin-solidity/contracts/math/SafeMath.sol"; contract Deposit { using SafeMath for uint256; mapping (address => uint256) balances; // callback 함수로서 payable 하여 Account가 ETH 를 전송하면 Contract 에 Deposit 하는 함수 function() public payable { // 전송한 ETH(Wei) 양이 0 보다 커야 하는 조건 require(msg.value > 0); // payable 을 통해 받은 ETH(Wei) 를 balances 에 저장 ( 각 account 별로 따로 ) balances[msg.sender].add(msg.value); } // Doposit 한 Account 가 자신의 Deposit 양을 리턴하는 view 함수 function myBalance() public view returns(uint256) { return balances[msg.sender]; } // 모든 Account 가 Deposit 한 총 ETH(Wei)의 양을 리턴하는 view 함수 // this.balance 사용 function totalDepositAmount() public view returns(uint256) { return this.balance; } // 해당 함수를 호출한 Account 의 Deposit ETH(Wei)를 모두 다시 Account 에게 돌려주는 함수 // address.send(value); 함수 사용 function claim() public { // 해당 Account 가 Deposit 한 양이 0 보다 커야하는 조건 require(balances[msg.sender]>0); msg.sender.send(balances[msg.sender]); balancse[msg.sender] = 0; } }
0.4.19