使用vue.js和scatterjs, eosjs2.0开发超级节点投票dapp, 效果图如下: 下面的代码块,是投票的核心代码逻辑: 1.使用eosjs之前,需要先导入scatterjs, eosjs库: import ScatterJS from "@scatterjs/core" import ScatterEOS from "@scatterjs/eosjs2" import { Api } from "eosjs" import {eosApi, network, rpc} from "@/common/nodes" 2.投票之前需要先获取超级节点列表数据: // 获取超级节点列表数据 let result = await eosApi.getProducers({ json: true, limit: 100 }) // 计算投票权重 const total_producer_vote_weight = result.total_producer_vote_weight // 计算投票比例 const onePercent = parseInt(total_producer_vote_weight) / 100 // 超级节点数据在result.rows中,遍历result.rows,过滤掉is_active不等于1的节点(已经注销的节点) let filterBpNodes = [] result.rows.forEach((item)=>{ // 节点投票数 item.votes = parseInt(calculateEosFromVotes(item.total_votes)) //节点投票比例 item.votes_percentage = (item.total_votes / onePercent).toFixed(3) // 有效的节点 if (item.is_active === 1) { filterBpNodes.push(item) } else { // 过滤掉无效的节点 if (this.selectBpNodes.indexOf(item.owner) !== -1) { this.selectBpNodes.remove(item.owner) } } }) 3.选中你想投票的节点,发起投票请求 // 获取用户选中的节点 let voteProducers = this.selectBpNodes // 投票请求的actions数据 let actions = [{ account: "eosio", // 投票合约账号 name: "voteproducer", // 投票合约action authorization: [{ actor: this.currentAccount, // 用户的yas账号 permission: this.currentPermission // 用户的权限active或owner }], data: { voter: this.currentAccount, // 参与投票的账号,也是当前用户的账号 proxy: "", // 投票代理, 这里不投代理,只投超级节点 producers: voteProducers.sort(), // 用户选中的节点列表,这里需要排序一下,否则无法投票 } }] // 发起交易请求 this.getApi().transact({ actions: actions // 请求的actions数据 },{ blocksBehind: 3, expireSeconds: 30 }).then(res => { alert("投票成功!") }).catch(err => { alert("投票失败: " + err) }) 上面就是投票的核心代码,完整源码地址:https://github.com/wangwei123/eos_yas_learn 如何运行上面的源码项目: #首先需要安装nodejs,下载地址:https://nodejs.org/en/ #git拉取源码 git clone https://github.com/wangwei123/eos_yas_learn #进入源码目录 cd eos_yas_learn/yasdapp #安装项目依赖包 npm install #运行项目 npm run serve #运行结果如下 App running at: - Local: http://localhost:8080/ - Network: http://192.168.43.175:8080/ #在麦子钱包的浏览器地址栏打开http://192.168.43.175:8080,就可以访问dapp了 喜欢本文的币友可以转发,我会继续努力编写更多的区块链技术文章,谢谢大家! —- 编译者/作者:老王区块链 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
YAS dapp开发教程: 超级节点投票
2020-06-06 老王区块链 来源:区块链网络
- 上一篇:零基础搭建YAS超级节点
- 下一篇:剧情反转 空单逐渐强势(6.6行情分析)
LOADING...
相关阅读:
- 币操胜券:8.5比特币行情分析震荡下行高空为主2020-08-05
- 叶沐欣:比特币修复整理主流货币区间操作2020-08-05
- 合约黑马XMEX 为何被称为 “合约之王”?2020-08-05
- 硬核技术+节点商业两翼齐飞:公链黑马SEA的未来可期?2020-08-05
- 比特币期货数据显示|尽管150万美元的闪电崩盘市场发烧2020-08-05