解析: 上面实现一个简单的加密货币,币在这里可以无中生有,但只有创建合约的人才能做到,且任何人都可以给他人转币,无需注册名和密码。
address
类型是一个160位的值,不允许任何算数操作,这种类型适合存储合约地址或外部人员。
mappings
可看作是一个哈希表,它会执行虚拟初始化,以使得所有可能存在的键都映射到一个字节表示为全零的值。
event Sent(address from, address to, uint amount)
;声明了一个所谓的事件,它在send函数最后一行被发出。用户界面可以监听区块链上正在发送的事件,且不会花费太多成本,一旦它被发出,监听该事件的listener都将收到通知,而所有的事件都包含了from
,t
o和amoun
t三个参数,可方便追踪事务。
msg.sender
始终是当前函数或者外部函数调用的来源地址。
最后真正被用户和其他合约所调用的,用于完成本合约功能的方法是mint
和send
。若mint
被合约创建者外的其他调用则说明都不会发生。
send
函数可被任何人用于向其他人发送代币,前提是发送者拥有这些代币,若使用合约发送代币给一个地址,当在区块链浏览器上查到该地址时时看不到任何相关信息的,因为,实际上发送币和更改余额的信息仅仅存在特定合约的数据存储器中。通过使用事件,可非常简单地为新币创建一个区块链浏览器来追踪交易和余额。