http://www.7klian.com

Conflux 开拓教程 | 利用 IDE 开拓 DApp 的实战操纵指南

image

// 导入 SponsorWhitelistControl 合约import "./SponsorWhitelistControl.sol";

· 下载前端项目:git clone github.com/ObsidianLabs/conflux-frontend-react

· Signer 代付账户地点。填入 sponsor_key 地点

****·** **建设、编译并陈设项目

· Signer 代付账户地点。填入 sponsor_key 地点

认真渲染 Conflux 合约信息,本项目中提供了 Coin 和 SponsorWhitelistControl 两个合约。

****·** **左下角 Coin 合约模块

在合约挪用区域选择 send 要领,在 Parameters 中别离填入:

4.2 查询事件

5.2 添加代付白名单

****·** **利用合约欣赏器挪用 Coin 合约的代币增发、转账、查询余额及查询事件

2.3 毗连 Conflux 网络

**· **通过 balanceOf 要领可以查询到指定账户地点的代币余额

ConfluxContract.js 由三个组件构成,别离为:

6.2.2 运行 Coin 合约代币增发和代币转账操纵

lib

· 输入地点后点击地点栏右边的水龙头按钮,Conflux Studio 将为地点自动申请 CFX;

3.1 建设项目

一、简介

5.3 代付测试

Conflux Studio 下载地点和更新日志:

****·** **理会 Coin 合约代码,进修如何编写合约的读写要领及事件

}</pre>

8.2 Bounty 的代价

填好以上参数并执行运行,系统合约将为 Coin 合约配置好储存费代付账户,此时 sponsor_key 账户将会被扣除 40 CFX。

为了顺利完成教程,首先需要建设三个钥匙对:

认真渲染 Conflux Portal 的毗连信息,并提供了毗连 Conflux Portal 的交互按钮。

· add_privilege 添加合约代付白名单,在代付白名单中的地点挪用该合约的要领时不需要付手续费,用度由代付账户付出。个中添加非凡地点 0x0000000000000000000000000000000000000000 代表为所有挪用该合约的地点代付用度

****·** **refreshBalance 挪用 Conflux SDK 的 getBalance 要领来更新账户余额信息

6.2 运行前端项目

点击东西栏的 Build 按钮举办合约的编译,编译的功效将会生存在 build/Coin.json 文件中。

选择 set_sponsor_for_gas 要领,该要领有四个参数:

· remove_privilege 移除合约代付白名单

投稿请接洽 :tougao@conflux-chain.org

4.1.1 增发代币

6.3 前端项目理会

0人点赞

**· **通过 remove_privilege 要领可觉得合约移除代付白名单

6.2.4 查察 Sent 事件

二、筹备事情

3.3 编译及陈设合约

在举办代付测试前,先查询并记录下 minter_key 账户的 CFX 余额。譬喻本教程中,minter_key 的初始余额为 97.6210937497093952 CFX。

项目根目次下的 .env 情况变量,在这里界说了两个情况变量,别离为:

Conflux Portal 是由 Conflux 提供的欣赏器插件,今朝提供了 Chrome 及 Firefox 的支持,用户可以利用 Conflux Portal 举办私钥的打点以及生意业务签名。

// 利用 SponsorWhitelistControl 合约毗连络统合约SponsorWhitelistControl constant private SPONSOR = SponsorWhitelistControl(address(0x0888000000000000000000000000000000000001));// 界说了 `Sent` 的事件,界说了 from / to / amount 列event Sent(address from, address to, uint amount);// Coin 合约的 constructor ,在 constructor 中指定了 minter 的地点constructor() public {     // msg.sender 为陈设合约时签名的账户地点,将这个地点赋值给 minter     minter = msg.sender;}// 界说 mint 要领,通过此要领来增发代币function mint(address receiver, uint amount) public {     require(msg.sender == minter);     require(amount < 1e60);     balances[receiver] += amount;}// 界说 send 要领,通过此要领可以给此外账户转账代币function send(address receiver, uint amount) public {     require(amount <= balances[msg.sender], "Insufficient balance.");     balances[msg.sender] -= amount;     balances[receiver] += amount;     // 通过 emit 触发 Sent 事件,记录这笔转账的信息     emit Sent(msg.sender, receiver, amount);}// 界说 balanceOf 要领,这是个 view 范例的要领,用于查询账户余额function balanceOf(address tokenOwner) public view returns(uint balance){   return balances[tokenOwner];}// 界说了 add_privilege 要领,挪用系统合约 add_privilege 要领添加地点到代付白名单function add_privilege(address account) public payable {     address[] memory a = new address[](1);     a[0] = account;     SPONSOR.add_privilege(a);}// 界说了 remove_privilege 要领,挪用系统合约 remove_privilege 从合约代付白名单中移除地点function remove_privilege(address account) public payable {     address[] memory a = new address[](1);     a[0] = account;     SPONSOR.remove_privilege(a);}

· 你也可以直接在欣赏器中输入 wallet.confluxscan.io/faucet/dev/ask?address={address} 来申请 CFX;

"

Coin 合约是一个简朴的代币合约,个中:

2.4 申请测试 CFX

****·** **左上角 Conflux 网络信息模块

项目利用 React 举办开拓。主要由三大部门构成:视图组件、js-conflux-sdk 以及 Conflux Portal。

通过这个开拓教程,你将会进修到如何举办 Conflux 智能合约的编写、挪用,设置智能合约的代付以及如何利用 Web 前端项目与智能合约举办交互,从而实现一个包括前端和智能合约的完整的 DApp

本文转自“黑曜石尝试室”。

****·** **理会前端项目代码,进修如何通过 Conflux Portal 和 Conflux JavaScript SDK 毗连网络并实现生意业务

****·** **右下角 SponsorWhitelistControl 合约模块

· Value 不填

****·** **ContractMethods 认真渲染合约 abi 中的要领和事件的表单及相对应的按钮

利用上述要领在 Conflux Studio 中为 minter_key 和 sponsor_key 申请 CFX Token。完成申请后,这两个账户上的余额将会从 0 CFX 更新为 100 CFX。

· receiver 吸收代币的地点。填入 minter_key 地点

· set_sponsor_for_collateral 配置合约储存费 (collateral for storage) 的代付账户及代付金额

· account 添加白名单的地点。填入 minter_key 地点

<pre style="margin: 0px; padding: 16px 1em; max-width: 100%; box-sizing: border-box; overflow-wrap: break-word !important; letter-spacing: 0.544px; font-size: 13.6px; overflow: auto; line-height: 1.45; background-color: rgb(246, 248, 250); border-radius: 6px; word-break: normal; font-family: SFMono-Regular, Consolas, Menlo, monospace;">// 指定了 Solidity 的版本,通过 Pragmas(https://solidity.readthedocs.io/en/latest/layout-of-source-files.html#pragmas) 汇报编译器本代码可以兼容的版本为 0.5.0 到 0.7.0pragma solidity >=0.5.0 <0.7.0;

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!

相关文章阅读