BABA智能合约投票DAO模式dapp系统开发|智能合约实现技术分析

简介: BABA智能合约投票DAO模式dapp系统开发|智能合约实现技术分析

合约交互

写完合约代码之后,前端页面实现就不在此赘述,主要介绍如何使用 web3 与合约交互,这里使用到的 web3 版本是 1.0,web3 1.0 和 0.2x.x 的 API 调用方式差别较大,1.0 的 API 支持异步调用。

安装 Metamask 浏览器插件后,会在浏览器页面内注入一个 web3 实例。检测页面中是否存在 web3 实例,如果不存在则连接自己的实例。

import Web3 from 'web3';if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
} else {
web3 = new Web3(new Web3.providers.HttpProvider(NODE_NRL));
}

传入合约 ABI,合约地址,实例化合约对象。


this.contract = new web3.eth.Contract( CONTRACT_ABI, CONTRACT_ADDR,
);

调用合约中的投注方法,通过try catch可以捕获到 Metamask 弹窗取消交易操作。

userBet = async () => { try { await this.contract.methods

 .bet(
   ...
 )
 .send({        from: ACCOUNT,        value: MONEY,
 });

} catch (error) {
...
}
}

查询记录的日志,可以通过指定事件名称、区块高度及过滤条件来进行日志查询,值得注意的是,在合约内不能查询到日志信息。

queryEvent = async () => { const event = await this.contract.getPastEvents( EVENT_NAME,
{ filter: {}, fromBlock: 0, toBlock: 'latest',
}
)
}

功能拓展

比如修改用户投注金额及充值这类敏感操作,就需要管理员的权限来进行操作。同样地,我们也可以拓展赞助商的功能,通过充值奖池的累计金额排名来展示赞助商的广告,这里就不做展开了。

定义修饰器,在构造函数里设置管理员地址,将创建合约的账户设置为管理员。

相关文章
|
存储 JSON 安全
Token验证技术文档
【7月更文挑战第6天】Token验证是现代Web应用中常见的安全措施,用于确保用户身份的合法性和请求的安全性。它基于令牌(Token)的概念,通过在客户端和服务端之间传递一个安全的、有时限的字符串来验证用户身份,替代传统的基于会话的认证机制。本文档旨在介绍一种基本的Token验证流程,并提供一个简单的代码示例,使用JSON Web Tokens (JWT) 实现这一过程。
1653 1
|
消息中间件 存储 API
微服务间的通信机制
【8月更文第29天】随着微服务架构的普及,服务间的通信变得尤为重要。微服务架构强调将单一应用程序拆分为一组小型服务,每个服务运行在其独立的进程中,并使用轻量级机制(通常是HTTP资源API)进行通信。本文将详细介绍几种流行的微服务间通信方式,包括 RESTful API、gRPC 和消息队列,并探讨它们各自的优缺点。
831 0
|
消息中间件 Kubernetes Java
记两个有关线程池的小问题
最近小伙伴们找我查的问题里,有两个与线程池相关的,最终都是花了一些时间才揪出原因所在,做一下记录。
115 1
|
边缘计算 Kubernetes Cloud Native
恭喜我的同事黄玉奇入选开放原子开源基金会TOC
近日,开放原子开源基金会技术监督委员会(TOC)举行第 32 次例会。经过投票,阿里云云原生应用平台高级技术专家黄玉奇正式当选为开放原子开源基金会 TOC 成员。
恭喜我的同事黄玉奇入选开放原子开源基金会TOC
|
缓存 开发框架 前端开发
前端三剑客React框架第一课入门的学习
前端三剑客React框架第一课入门的学习
293 0
|
4天前
|
云安全 监控 安全
|
2天前
|
存储 机器学习/深度学习 人工智能
打破硬件壁垒!煎饺App:强悍AI语音工具,为何是豆包AI手机平替?
直接上干货!3000 字以上长文,细节拉满,把核心功能、使用技巧和实测结论全给大家摆明白,读完你就知道这款 “安卓机通用 AI 语音工具"——煎饺App它为何能打破硬件壁垒?它接下来,咱们就深度拆解煎饺 App—— 先给大家扒清楚它的使用逻辑,附上“操作演示”和“🚀快速上手不踩坑 : 4 条核心操作干货(必看)”,跟着走零基础也能快速上手;后续再用真实实测数据,正面硬刚煎饺 App的语音助手口令效果——创建京东「牛奶自动下单神器」口令 ,从修改口令、识别准确率到场景实用性,逐一测试不掺水,最后,再和豆包 AI 手机语音助手的普通版——豆包App对比测试下,简单地谈谈煎饺App的能力边界在哪?
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1164 7