火星链 火星链
Ctrl+D收藏火星链
首页 > BTC > 正文

FLUX:Conflux开发教程:使用IDE开发DApp的实战操作指南-ODAILY

作者:

时间:1900/1/1 0:00:00

一、简介

ConfluxStudio是一个帮助开发者快速开发Conflux智能合约的集成化开发环境。ConfluxDApp开发教程将使用ConfluxStudio在Oceanus网络下开发一个简单的代币应用Coin。

通过这个开发教程,你将会学习到如何进行Conflux智能合约的编写、调用,配置智能合约的代付以及如何使用Web前端项目与智能合约进行交互,从而实现一个包含前端和智能合约的完整的DApp。

二、准备工作

2.1安装IDE

请在GitHub的下载页面

(github.com/ObsidianLabs/ConfluxStudio/releases)下载ConfluxStudio。目前ConfluxStudio支持macOS和Linux系统,请根据系统下载对应的版本。

正确安装ConfluxStudio并初次启动后,ConfluxStudio将显示欢迎页面,根据提示完成Docker,ConfluxNode以及ConfluxTruffle的下载、安装及启动。

2.2创建钱包

完成所有的安装步骤后,首先需要创建钥匙对来完成后续的合约部署以及调用。

在ConfluxStudio的任意界面,点击应用左下?的钥匙图标,打开密钥管理器。点击Create按钮打开新钥匙对弹窗,输入钥匙对的名字并点击Save按钮。完成后将在密钥管理器中看到刚刚生成的钥匙对的地址。钥匙对由私钥和公钥组成,公钥在智能合约中也常被称作地址。

导出私钥可以通过点击每个地址后面的眼睛按钮打开查看私钥弹窗,弹窗显示地址以及私钥。后续教程中会需要通过管理器导出私钥。

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

·minter_key用于Coin合约部署时的签名,是这个教程中最常使用的钥匙对

·receiver_key用于Coin合约接收转账,将在后文中介绍转账时用到

·sponsor_key用于Coin合约代付功能,将在后文中介绍代付功能时用到

2.3连接Conflux网络

教程将在Oceanus网络进行合约的部署以及合约的调用。点击顶部Network标签的倒三角打开下拉菜单,点击选择Oceanus网络进行切换。

切换完成后,可以在主页面中看到当前网络为oceanus。页面左边包括了当前网络的节点URL,ChainID,TPS信息,页面右边包含了当前网络区块的信息。

2.4申请测试CFX

点击顶部Explorer标签打开区块浏览器,并在地址栏粘贴钥匙对地址,可以在左边看到当前地址的CFX余额信息。

Phala Network将Phat Contract引入SaaS3,以构建高度可扩展的预言机:据官方消息,波卡生态 DeFi 协议 Parallel Finance 宣布已与 SaaS3 合作,使用 Phat Contract 为 Web3 行业构建一个去信任、去中心化、无许可和低延迟的预言机解决方案。Phat Contract 是 Phala 创新的链下计算编程模型,Phat Contract 将允许 SaaS3 使用 Intel SGX Secure Enclaves(也称为可信执行环境或 TEE)进行计算。使得代码的执行具有确定性,并确保中间状态不被泄露,从而抵御对操作系统和硬件层的攻击。[2023/1/13 11:09:28]

在区块链的世界中,大家通常将申请测试Token的方式称为faucet,目前在Oceanus网络下每次faucet申请到的Token为100CFX。

获取CFX的方式有两种方式:

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

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

使用上述方法在ConfluxStudio中为minter_key和sponsor_key申请CFXToken。完成申请后,这两个账户上的余额将会从0CFX更新为100CFX。

目前余额信息为:

·minter_key余额100CFX

·receiver_key余额0CFX

·sponsor_key余额100CFX

三、智能合约创建项目

3.1创建项目

点击顶部左边的Project标签切换至项目列表页面,点击页面中的New按钮打开项目创建窗口,输入项目的名称并选择coin模版,点击CreateProject完成项目的创建。

3.2合约代码

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

·通过mint方法可以增发代币数量

·通过send方法可以将一定数量的代币转账给别的用户,同时会在事件中记录下这笔转账的信息

·通过balanceOf方法可以查询到指定账户地址的代币余额

·通过add_privilege方法可以为合约添加代付白名单

·通过remove_privilege方法可以为合约移除代付白名单

Conflux智能合约使用Solidity语言进行开发,打开目录下的contracts/Coin.sol文件,这个是本项目的核心代码:

HyperPay新版本发布,自管钱包EVM全系兼容Wallet Connect:据官方消息,HyperPay钱包发布V5.0.5版本,在该版本中,HyperPay自管钱包新增支持EVM全系兼容Wallet Connect链接功能;新增自管身份钱包在创建/导入助记词时支持EVM系生成相同地址,提供整个生态中相对较低的手续费消耗,同时,HyperPay自管钱包新增空投版块和DApp浏览器支持钱包切换功能,托管钱包优化了HyperCard申请流程,申请更便捷,帮助用户获得更好的钱包使用体验。

HyperPay钱包成立于2017年,是集托管理财钱包、去中心化自管钱包、HyperMate硬件钱包、共管钱包于一体的多生态数字资产钱包,为用户提供资产存管、理财增值、消费支付等一站式服务。迄今,HyperPay钱包用户逾百万,资管规模超10亿美元,转账超3.1亿次,托管钱包公链支持57+,自管钱包公链支持33+,HyperMate硬件钱包支持公链17+。[2022/7/15 2:15:40]

3.3编译及部署合约点击工具栏的Build按钮进行合约的编译,编译的结果将会保存在build/Coin.json文件中。

在部署合约前,首先需要确认在Explorer中选择合约部署所使用的地址,ConfluxStudio会使用这个地址将部署合约这笔交易进行签名。在合约代码的constructor中,minter被赋值为msg.sender,这个msg.sender就是Explorer所选择的地址。

在此我们选择minter_key作为部署合约的签名者。

点击工具栏的部署按钮进行部署,部署完成后,部署结果会在deploys的JSON文件中,在这个文件中可以在contractCreated中找到当前合约部署的地址,后文中使用contract_addr来代表这个合约地址。

四、调用合约

点击顶部的Contract标签切换至合约页面,在地址栏输入contract_addr地址并加载合约。

合约页面由三个部分组成:

·左边为合约调用区域

·中间为合约数据查询区域

·右边为事件查询区域

4.1合约调用及查询

4.1.1增发代币

点击合约调用的下拉菜单中选择mint方法,在下方的参数区域分别填入以下信息:

·receiver接收代币的地址。填入minter_key地址

·amount发行的代币总数。填入整数1000

Convex Finance锁仓量突破200亿美元,创历史新高:金色财经报道,据DeFi Llama数据显示,收益聚合器项目Convex Finance总锁仓量突破200亿美元,创历史新高,现为201.2亿美元,位居所有DeFi应用第二名。[2022/1/2 8:19:27]

·Value选填项,具体可查看Value详解。填0或者不填

·Signer这笔交易的签名地址,如果没有开通代付功能,交易手续费将在这个账户地址中扣除,在合约代码中通过msg.sender获取到这个地址。填入minter_key地址

填写完成后点击执行按钮,ConfluxStudio将自动构造交易并推送到网络中。成功执行后可以在下方Result中看到这笔成功的交易。

4.1.2查询代币余额

点击查询区域的下拉菜单并且选择balanceOf方法,这是在代码中定义的查询方法。在下方的tokenOwner填入minter_key地址并点击执行,就可以在下方的Result中看到minter_key账户的Coin代币的余额信息为1000。使用同样方法可以查询到receiver_key账户的代币余额为0。

4.1.3转账代币

在合约调用区域选择send方法,在Parameters中分别填入:

·receiver收款人地址。填入receiver_key地址

·amount转账的代币数量。填入整数200

·Signer这笔交易的签名地址,代币转出的数量将会在这个账户中扣除。填入minter_key地址,

点击执行完成转账,再次查询代币余额可以看到minter_key账户只剩下800代币,而receiver_key账户则从0变成了200代币。

五、代付功能

ConfluxStudio支持Conflux系统合约提供的代付功能。

通过系统合约可以为别的合约设置代付功能,系统合约提供给了四个方法:

·add_privilege添加合约代付白名单,在代付白名单中的地址调用该合约的方法时不需要付手续费,费用由代付账户支付。其中添加特殊地址0x0000000000000000000000000000000000000000代表为所有调用该合约的地址代付费用

·remove_privilege移除合约代付白名单

·set_sponsor_for_collateral设置合约储存费(collateralforstorage)的代付账户及代付金额

·set_sponsor_for_gas设置合约手续费(gasfee)的代付账户、代付金额及每笔交易代付金额上限

启用一个合约的代付需要设置代付的账户、代付金额及代付白名单。教程将会使用ConfluxStudio通过系统合约设置代付账户及代付金额,通过Coin合约添加代付白名单。设置完成后,minter_key账户调用Coin合约的方法时将不会被扣除手续费,手续费由sponsor_key账户代付。

ConsenSys突然禁止伊朗学生参加以太坊编程课程:金色财经报道,以太坊软件巨头ConsenSys从其在线编程课程中删除了约50名伊朗学生。ConsenSys学院告诉这50名学生:“我们很遗憾地告诉你,我们将立即暂停你在ConsenSys学院的注册和对平台的访问。根据美国法律,你们所在的国家或地区禁止我们向其提供商品或服务。”[2021/11/25 7:09:21]

5.1设置代付账户及代付金额

在ConfluxStudio中访问系统合约地址

0x0888000000000000000000000000000000000001,在合约调用区域能看到前文中提及的四个设置代付的方法。

选择set_sponsor_for_collateral方法,该方法有三个参数:

·contract_addr设置代付的合约地址。填入contract_addr

·Value设置代付金额。填入整数40

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

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

选择set_sponsor_for_gas方法,该方法有四个参数:

·contract_addr设置代付的合约地址。填入contract_addr

·upper_bound设置每笔交易代付的上限。填入1000000000000

·Value设置代付金额。填入整数40

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

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

完成这两个方法的调用后Coin合约代付账户便设置好了,sponsor_key账户将为Coin合约的手续费和储存费各提供为40CFXToken的代付服务。由于目前代付白名单中并没有账户地址,因此还需要添加白名单地址才能完成代付设置。

5.2添加代付白名单

在Coin合约中集成了设置代付白名单的方法,通过调用此方法可以添加或删除代付白名单。

在ConfluxStudio中访问contract_addr合约,选择add_privilege方法:

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

·Value不填

·Signer这笔交易的签名地址。填入minter_key地址

运行后就成功设置了代付白名单了,至此Coin合约的代付功能设置好了。

5.3代付测试

BigONE战略投资加拿大合规交易所Biconomy:据币格官方消息,BigONE今日宣布战略投资加拿大合规交易所Biconomy,携手开展全球化业务。BigONE作为全球化的数字资产交易平台,为500万用户提供安全、高效、稳定的数字资产服务。BigONE通过三年的研发和运营,积累了丰富的数字资产交易产品和衍生品服务。

据悉,Biconomy总部位于加拿大,并拥有加拿大交易所金融牌照,已开通加元、欧元、信用卡等法币入金通道,在韩国、日本、俄罗斯、英国均设有办事处。此次战略投资后,BigONE将整合Biconomy的全球资源,继续推动合规工作、全球化运营和海外市场开拓。[2020/6/8]

在进行代付测试前,先查询并记录下minter_key账户的CFX余额。例如本教程中,minter_key的初始余额为97.6210937497093952CFX。

回到Coin合约调用页面,再次调用mint方法并使用minter_key地址增发代币1000,完成代币增发后再次查询minter_key的余额,仍然为97.6210937497093952CFX。

可以看到增发代币的这笔交易,原本应该由minter_key账户支付的手续费,变成了由sponsor_key账户支付。

六、前端项目

前端项目源码可以前往Conflux前端。

6.1预备

6.1.1下载项目并安装依赖

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

·使用npminstall或者yarn进行项目依赖安装

6.1.2ConfluxPortal的安装及配置

ConfluxPortal是由Conflux提供的浏览器插件,目前提供了Chrome及Firefox的支持,用户可以使用ConfluxPortal进行私钥的管理以及交易签名。

前往ConfluxPortalGitHub下载安装。项目的源代码在GitHub中可以找到。

在这里需要将ConfluxStudio中生成的地址导入到ConfluxPortal中。完成插件安装后,在ConfluxPortal的页面中选择Import,将ConfluxStudio中的minter_key的私钥粘贴到输入框中,点击Import按钮完成私钥导入。

6.2运行前端项目

在运行项目之前,需要修改一些默认的环境变量。

在前面的教程中部署合约后会生成一个contractCreated,这个值便是部署在网络中智能合约的地址。打开项目根目录并找到.env文件,这个文件提供了项目的环境变量,将REACT_APP_CONFLUX_COIN_ADDRESS的值修改为contract_addr。

使用yarnstart启动前端项目,开发服务器运行起来后会在浏览器中打开前端页面。

项目运行起来后,页面将显示四个卡片信息,分别为:

·左上角Conflux网络信息模块

·右上角ConfluxPortal模块

·左下角Coin合约模块

·右下角SponsorWhitelistControl合约模块

6.2.1连接ConfluxPortal

点击右上角组件中的ConnecttoConfluxPortal按钮,ConfluxPortal页面将被打开,输入密码和选择账户后完成连接。连接成功后,将会在按钮下看到当前连接的账户地址以及账户中的CFX余额。

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

左下角的组件为Coin合约组件,可以通过这个组件调用代币增发和代币转账功能。

·代币增发:选择mint方法并在receiver中填入增发地址minter_key地址和在amount中填入增发代币的数量100,点击PushTransaction,在弹出的ConfluxPortalNotification窗口中点击Confirm按钮来确认交易。

·代币转账:选择send方法并在receiver中填入收款人地址receiver_key地址和在amount中转账代币的数量20,点击PushTransaction,在弹出的ConfluxPortalNotification窗口中点击Confirm按钮来确认交易。

6.2.3查看Coin合约中的余额

选择balanceOf方法并在tokenOwner输入框中填入查询的地址,点击QueryData按钮可以查询到账户的余额。

6.2.4查看Sent事件

选择Sent事件并点击QueryData可以查询到转账操作所触发的转账事件的记录。

6.3前端项目解析

项目使用React进行开发。主要由三大部分组成:视图组件、js-conflux-sdk以及ConfluxPortal。

项目根目录下的.env环境变量,在这里定义了两个环境变量,分别为:

·REACT_APP_CONFLUX_NODE_RPC:Conflux的网络节点地址,目前默认为Oceanus网络的地址

·REACT_APP_CONFLUX_COIN_ADDRESS:已部署的Coin智能合约地址

6.3.1视图组件

视图组件在项目的src/components中,其中App.js为页面的主入口,负责页面的排列及合约信息的读取。

ConfluxNetwork.js

负责渲染Conflux网络信息,NodeURL的值为.env环境变量文件下的REACT_APP_CONFLUX_NODE_RPC设置的值。

ConfluxPortal.js

负责渲染ConfluxPortal的连接信息,并提供了连接ConfluxPortal的交互按钮。

·connectConfluxPortal调用ConfluxPortal的enable方法启用conflux,完成enable后调用getAccount方法获取到Portal中的账户。

·refreshBalance调用ConfluxSDK的getBalance方法来更新账户余额信息

·renderPortalButton根据当前不同的状态,渲染连接Portal的按钮

ConfluxContract.js

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

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

·ConfluxContract负责根据传入的合约abi来渲染合约的信息,包括合约地址、合约方法和事件,合约提交的交互逻辑及显示执行后的结果

·ContractMethods负责渲染合约abi中的方法和事件的表单及相对应的按钮

·ConfluxForm负责根据方法或事件的abi来渲染输入表单

lib

lib在项目的src/lib中,这里的文件主要是为视图提供包括连接网络、构造交易、获取账户、读取合约等服务。

七、总结

在本开发教程中,我们学习了如何使用ConfluxStudio来完成一个完整的CoinDApp开发,其中包括了:

·使用钥匙对管理器创建账户及导出账户私钥

·切换Oceanus网络,查看网络信息

·账户申请CFXToken

·创建、编译并部署项目

·解析Coin合约代码,学习如何编写合约的读写方法及事件

·使用合约浏览器调用Coin合约的代币增发、转账、查询余额及查询事件

·设置并使用智能合约的代付功能

·将私钥导入ConfluxPortal并连接前端项目

·在前端项目中调用Coin合约的代币增发、转账、查询余额及查询事件

·解析前端项目代码,学习如何通过ConfluxPortal和ConfluxJavaScriptSDK连接网络并实现交易

八、关于ConfluxBounty

Conflux基金会为了鼓励用户参与生态建设,提供了ConfluxBounty赏金平台。通过完成Bounty赏金平台发布的各项任务,参与者可以获得FC(FansToken)作为奖励。

8.1FC的价值

FC,全称FansCoin,是由Conflux基金会与社区成员共同研发的生态代币,用于记录和感谢对Conflux生态建设做出贡献的社区成员。FC目前在Oceanus上运行,Conflux基金会承诺,在主网上线后,锁定和未锁定的FC都可以与主网CFX进行1:1承兑,以此保障所有社区成员的劳动成果都可以获得奖励。

FC赏金分配方案会展示在赏金任务详情页中,包括最高奖金数量、奖金分配人数、奖金数量分布、排行名次确定方式等信息。账号余额中的赏金奖励可以随时申请提现至Conflux钱包。Conflux团队会对所有的提现申请进行审核。

对于已经通过的提现申请,Conflux团队会在每周二中午12点进行提币操作。完成提币操作后,您的Conflux钱包将会收到您提现的赏金奖励。

8.2Bounty的价值

ConfluxBounty(bounty.conflux-chain.org)的宗旨是为每一个通证找到价值。Bounty分为几个板块:技术、品牌、社群、资源、其他等。

·技术板块:分为产品、SDK、教程、开发、测试等;主要是奖励社区的一些技术资源贡献者。

·品牌板块:分为文案、设计、视频、媒体、推广等;主要是奖励在各大网络平台分享Conflux的各种最新动态,扩大Conflux的生态影响力的活跃贡献者;

·社群板块:分为活动、推广等;主要是奖励举办各种Conflux相关线上线下活动,帮助解答社群问题,活跃日常气氛等。

·资源板块:分为政务、商务、人力等;主要是奖励为生态中引进企业资源,扩建Conflux生态等。

·其他板块:分为周边、采购等;主要是奖励一些其他的零散任务。

ConfluxStudio下载地址和更新日志:

https://github.com/ObsidianLabs/ConfluxStudio/releases

ConfluxdApp开发教程:

https://github.com/ObsidianLabs/conflux-dapp-tutorial

ConfluxdApp教程相关建议:

https://github.com/ObsidianLabs/conflux-dapp-tutorial/issues

标签:CONNFLConfluxFLUXConcoinconflux币怎么挖conflux币价格变化conflux币可以挖吗

BTC热门资讯
VOS:年少有为的CKB,是否抓住了BSN新机遇?-ODAILY

编者按:本文来自币乎直播,星球日报经授权发布。近日,区块链服务网络BSN宣布集成Nervos、Tezos、NEO、EOS、IRISnet和Ethereum等六大公链已拓展全球业务.

1900/1/1 0:00:00
DAS:行情可能会出现拐点,破位勇于进空-ODAILY

交易之前要有一个对未来市场整体预期。市场预期指对市场未来的方向有一个较为合理目标。弱水三千只取一瓢。实盘操作是交易心理的核心考验阶段。整个交易过程应该是:从容建仓、耐心等待、理性分析和果断操作.

1900/1/1 0:00:00
NFT:ETH分析:日线下轨即将破位,大家请注意瀑布要来了-ODAILY

易天说 昨日易天老师在文章中给出的BTC操作区间在9100-9300,区间不大;昨日比特币行情最高到达9340一线,于晚间10点时抵达最低9046一线;虽然给出的区间上下沿都有所突破.

1900/1/1 0:00:00
OMP:成都链安:流动性挖矿技术浅析-ODAILY

随着Compound及Balancer项目的上线,流动性挖矿热度爆增。在过去的一个月内,以太坊上的流动性挖矿项目锁仓持续增长,截至目前,Compound项目锁仓已超16亿美元.

1900/1/1 0:00:00
KUSA:事后发展:GRANDPA Equivocation和sysinfo进程最终导致Kusama Network大幅惩罚-ODAILY

翻译整理:PolkaBase「代码中的多个错误导致节点从Kusama网络退出,并丢失了存储已验证块区块的数据库。因此,相同的节点在重新启动时对这些块进行了双重签名.

1900/1/1 0:00:00
SDT:行情分析:交易的最高准则,先胜而后败 -ODAILY

市场要闻最近市场没有热点,咱们就吃着粽子看看行情的情况。BTC行情分析 这两天大家都在划水,所以行情没什么说的,玩的时候尽情地玩,该赚钱的时候全心全意地赚钱!别又想玩,又想要贞节牌坊;做投资也一.

1900/1/1 0:00:00