Moonbeam入门开发|第11课:NominationDAO DApp(四)

Moonbeam是Polkadot网络上的以太坊兼容智能合约平台,为原生互操作应用程序的开发提供便利。通过其以太坊兼容性,开发者能够以最低程度的代码调整在Moonbeam上部署现有的Solidity智能合约和Dapp前端。

作为在Polkadot网络上的平行链,Moonbeam也将受益于Polkadot中继链的共享安全性以及与其它Polkadot相关链的连接性。

为了使更多对Moonbeam技术充满热情和好奇的开发者能够参与进来,OneBlock+与Moonbeam共同推出了《Moonbeam入门 - 轻松开始跨链Solidity开发》课程,已于8月26日正式开课。上次我们介绍什么是Moonbeam平台跟它的一些特性,这节课就让我们来动手学习Moonbeam入门开发。以下是第十一课文字版内容回顾。

本节课课程内容: 

1. 完成编写NominationDAO.sol

2. 添加质押提名功能

3. 交互测试 + 使用Subscan确认质押状态

添加质押提名功能

质押我们是通过预编译来实现的

本期程序文件和脚本地址

https://github.com/hyd628/OneBlockCourseScripts/tree/main/Week11

用remix打开NominationDAO.sol

Minimum nomination stake =5 ether Moonbeam上最小的提名量是5个Dev

初始化:

Target = 我们要提名的收集人节点, Constructor 添加了target 

Staking 预编译地址,可在开发者文档里找到

add_stake()

检查:我们的合约是否已经对某一个收集人节点在提名

通过: staking接口来检查= staking.is_nominator 

如已有提名用:nomination_bond_more 给现有提名加一个数额

如还没有提名:检查智能合约余额是否高于5, 大于5可以开始提名

cash_out()

先把会员Dev解除质押,然后在把Dev DAO 转到会员指定钱包地址

提名总质押额-会员提名额 >/= 5: 使用staking.nominator_bond_less 解除质押。不需要取消现有提名。无延迟打回到DAO钱包。 

提名总质押额-会员提名额 <5: 使用staking.revoke_nominator 完全取消提名。需等到下一轮提名才能打回到钱包。

部署和功能测试

Subscan 浏览器地址 - Moonbase Alpha

https://moonbase.subscan.io/

测试准备工作

- 需要两个测试钱包

- 第一个钱包需要有 > 5.1 DEV

- 第二个钱包需要有 > 1 DEV 

获取方式:测试Dev水龙头

1. 加入Moonbeam Discord:

https://discord.com/invite/ssvKu6Un8v

2. 在Miscellaneous/moonbase-faucet频道里输入:

!faucet send <钱包地址>

3. 水龙头里一次只能领5枚,若需要更多Dev请在Discord社群联系管理员

常见错误

图片

  • 没有通过一个Assert或Require,所以会耗掉所有Gas上限

  • 有可能是权限问题,注意只有部署合约的账户有管理员权限

  • 也有可能是质押数额小于最小额之类的

图片

  • 在调用一个非“payable”的方法时,Remix的“Value”数据字段不是“0”

相关资料

第十一课课程视频链接:https://jhp.h5.xeknow.com/s/1R8rna

第十一课课程作业链接:https://wj.qq.com/s2/9210622/2712/

GitHubFAQ:https://github.com/hyd628/OneBlockCourseScripts

Moonbeam网站:moonbeam.network

MoonbeamGitHub:github.com/PureStake/moonbeam

Moonbeam中文开发者文档:https://docs.moonbeam.network/cn/

MoonbeamDiscord:https://discord.gg/PfpUATX

课程回顾

第一课:课程导读
第二课:环境配置与安装运行 Moonbeam 节点
第三课:Truffle和连接MetaMask
第四课:使用Truffle在Moonbeam部署智能合约
第五课:介绍使用Remix IDE部署ERC-721(NFT)合约
第六课:介绍和使用web3.js与Moonbeam交互(上)
第七课:介绍和使用web3.js与Moonbeam交互(下)
第八课:NominationDAO DApp(一)
第九课:NominationDAO DApp(二)
第十课:NominationDAO DApp(三)


关于Moonbeam
Moonbeam是波卡(Polkadot)网络上的以太坊兼容智能合约平台,为原生互操作应用程序的开发提供便利。通过其以太坊兼容性,开发者能够以最低程度的代码调整在Moonbeam上部署现有的Solidity智能合约和Dapp前端。作为在波卡(Polkadot)网络上的平行链,Moonbeam也将受益于波卡(Polkadot)中继链的共享安全性以及与其它波卡(Polkadot)相关链的连接性。Moonbeam由PureStake团队开发,目前正在预上线阶段,主网计划于2022年第一季度上线。

如需了解更多信息,请访问:Moonbeam | Polkadot Smart Contract Platform

关于Moonriver
Moonriver是Moonbeam的同行网络,旨在为激励实验提供永久性的测试环境。新上线项目的代码将优先部署到Moonriver,在其真实的经济环境下经历一系列的测试与实验验证。当验证完成并通过测试之后,项目代码才可正式部署至波卡上的Moonbeam。

如需了解更多信息,请访问:Moonriver - Solidity Smart Contracts on Kusama

更多 Moonbeam 信息 
官网: Moonbeam | Polkadot Smart Contract Platform
微博:Sina Visitor System
twitter: https://twitter.com/MoonbeamNetwork
Telegram: https://t.me/moonbeam_CN
Discord: https://discord.gg/skPfXvJWG7
中文电报群助手:@MoonbeamSister

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值