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