pragma solidity ^0.4.17; contract Coin { // The keyword "public" makes those variables // readable from outside. address public minter; mapping (address => uint) public balances; // This is the constructor whose code is // run only when the contract is created. function Coin() public { minter = msg.sender; } function mint(address receiver, uint amount) public { if (msg.sender != minter) return; balances[receiver] += amount; } function deposit(address customer) public payable returns(uint) { require(balances[customer]+msg.value>balances[customer]); balances[customer]+=msg.value; return balances[customer]; } function withdraw(address customer)public payable returns(uint) { require(balances[customer]>msg.value && customer.send(msg.value)); { balances[customer]-=msg.value; return balances[customer]; } } function send(address sender, address receiver, uint amount) public { if (balances[sender] < amount) return; balances[sender] -= amount; balances[receiver] += amount; } function getBalance(address addr) public constant returns(uint) { return balances[addr]; } }
0.4.18