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

被折叠的 条评论
为什么被折叠?



