Skip to content

Instantly share code, notes, and snippets.

@vector4wang
Created December 25, 2018 10:01
Show Gist options
  • Save vector4wang/8c9cf9e2be54d0ff3c39db8725422911 to your computer and use it in GitHub Desktop.
Save vector4wang/8c9cf9e2be54d0ff3c39db8725422911 to your computer and use it in GitHub Desktop.
智能合约发币测试
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