智能合约概述
一、子货币代码
pragma solidity ^0.4.21; //声明solidity版本
contract Coin {
// 关键字“public”让这些变量可以从外部读取
address public minter;
//创建一个公共变量balances,mapping用来匹配地址
mapping (address => uint) public balances;
// 轻客户端可以通过事件针对变化作出高效的反应
监听事件,用于通知所有监控者,一旦它被发出,监听该事件的listener都将收到通知
event Sent(address from, address to, uint amount);
// 这是构造函数,只有当合约创建时运行
//新版本的solidity要求函数名不能和合约名相同,采用新的构造函数写法,
将function Coin 改成 constructor
constructor () public {
minter = msg.sender; //储存
}
//用于查询账户余额
function mint(address receiver, uint amount) public {
if (msg.sender != minter) return;
balances[receiver] += amount;
}
function send(address receiver, uint amount) public {
if (balances[msg.sender] < amount) return;//检查发送者余额是否有钱,有钱才能进行转账
balances[msg.sender] -= amount;
balances[receiver] += amount;
emit Sent(msg.sender, receiver, amount);
}
}