合约交互
写完合约代码之后,前端页面实现就不在此赘述,主要介绍如何使用 web3 与合约交互,这里使用到的 web3 版本是 1.0,web3 1.0 和 API 调用方式差别较大,1.0 的 API 支持异步调用。
安装 metamask 浏览器插件后,案例I34-合约I633-定制53I9,会在浏览器页面内注入一个 web3 实例。检测页面中是否存在 web3 实例,如果不存在则连接自己的实例。
传入合约 ABI,合约地址,实例化合约对象。
调用合约中的方法,通过try catch可以捕获到 metamask 弹窗取消交易操作。
查询记录的日志,可以通过指定事件名称、区块高度及过滤条件来进行日志查询,值得注意的是,在合约内不能查询到日志信息。
功能拓展
比如修改用户 参与金额及充值这类敏感操作,就需要管理员的权限来进行操作。同样地,我们也可以拓展赞助商的功能,通过充值奖池的累计金额排名来展示赞助商的广告,这里就不做展开了。
定义修饰器,在构造函数里设置管理员地址,将创建合约的账户设置为管理员。