Created
December 25, 2018 10:01
-
-
Save vector4wang/8c9cf9e2be54d0ff3c39db8725422911 to your computer and use it in GitHub Desktop.
智能合约发币测试
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pragma solidity ^0.4.0; | |
contract Coin{ | |
// 声明 一个 address 类型 变量 256 bits, 用于 存储启动该智能合约的账户地址。 | |
address public minter; | |
// 声明 mapping 类型 变量 类似于 java map ,用于存储账户的资产信息 | |
mapping(address => uint) public balances; | |
// 声明 一个事件 ,客户端可以来监听该事件 | |
event Sent(address from, address to , uint value); | |
//构造函数,在合约启动的时候执行一次,因此minter保存的是启动该智能合约的账户地址 | |
function Coin() public{ | |
minter = msg.sender; | |
} | |
//为当前启动合约账号 ,也就是自己发币。每次加20 | |
function go() public{ | |
//如果不是启动合约的账号 则返回,即别人无法给自己发币 | |
if(msg.sender != minter) return; | |
balances[msg.sender] += 20; | |
} | |
//为指定账号发币 | |
function mint(address receiver) public{ | |
//只有自己可以发币 其他账号调用无效 | |
if(msg.sender != minter) return; | |
balances[receiver] += 15; | |
} | |
//账号之间发送货币 | |
function send(address receiver) public{ | |
uint amount = 15; | |
if(balances[msg.sender]<amount) return; | |
balances[msg.sender] -= amount; | |
balances[receiver] += amount; | |
Sent(msg.sender, receiver, amount); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment