合约编写实战实例

本文介绍了如何创建一个简单的加密货币智能合约,强调只有合约创建者能发行货币,任何人都可以转账,无需用户名和密码。合约中的address类型用于存储地址,mappings作为哈希表管理数据。事件(event)在转账时触发,允许用户界面低成本监听交易。合约的主要方法包括mint和send,后者用于发送代币,而mint仅合约创建者可用。区块链浏览器无法直接显示交易,但通过事件监听可以追踪交易和余额。

解析: 上面实现一个简单的加密货币,币在这里可以无中生有,但只有创建合约的人才能做到,且任何人都可以给他人转币,无需注册名和密码。

address类型是一个160位的值,不允许任何算数操作,这种类型适合存储合约地址或外部人员。

mappings可看作是一个哈希表,它会执行虚拟初始化,以使得所有可能存在的键都映射到一个字节表示为全零的值。

event Sent(address from, address to, uint amount);声明了一个所谓的事件,它在send函数最后一行被发出。用户界面可以监听区块链上正在发送的事件,且不会花费太多成本,一旦它被发出,监听该事件的listener都将收到通知,而所有的事件都包含了from,to和amount三个参数,可方便追踪事务。

msg.sender始终是当前函数或者外部函数调用的来源地址。

最后真正被用户和其他合约所调用的,用于完成本合约功能的方法是mintsend。若mint被合约创建者外的其他调用则说明都不会发生。

send函数可被任何人用于向其他人发送代币,前提是发送者拥有这些代币,若使用合约发送代币给一个地址,当在区块链浏览器上查到该地址时时看不到任何相关信息的,因为,实际上发送币和更改余额的信息仅仅存在特定合约的数据存储器中。通过使用事件,可非常简单地为新币创建一个区块链浏览器来追踪交易和余额。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值