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