【教程】入门HelloWord和拿到Conflux链上cfx的4.08%年化复利的教程和小程序下载

本教程最新版石墨链接:https://shimo.im/docs/cKvPPXkQ8cCcrRWQ/ 《CFX拿到链上4.08%年化复利的教程和小程序下载》 已开放编辑,欢迎持续完善

(感恩节快乐,追求效率且有基础的朋友可以直接下载准备好的程序,链接是百度网盘: https://pan.baidu.com/s/1RNPaYRAUMKE4RF92de8xcQ 提取码: huxr,下载压缩包解压后,使用vscode打开文件夹,直接修改参数后,即可直接运行,改参数可查看第三步的说明,或者直接看代码里足够清楚的注释 )

关于CFX利息的介绍
Conflux树图区块链提供了cfx质押生息机制,为大家提供了可随时存取的4.08%复利年化。大家的每个钱包账户都拥有普通账户以及内置的4.08%年化复利余额宝账户。可以随时在普通账户和余额宝账户之间转账。利息是以区块来计算,经测试保守估计十几秒之后,就开始有利息了。

详情见:Conflux中文社区微信公众号2020年11月24日文章《烤仔TVのCCW丨Conflux 中质押的基本流程》,查看链接为:https://www.jinse.com/news/blockchain/921888.html 同时官方近期更新了相关教程:《Conflux 内置合约功能介绍》https://juejin.cn/post/6876330619798814728。

官方虽然放出了原理和介绍,但可惜暂时没有放出工具。我们想赶紧拿到CFX的利息,于是尝试了一下,确实可行。本来想尽快给大家做一个方便易用吃利息的小工具,虽然后端已跑通,但由于前端调用Portal一直有bug解决不了,所以暂没有发布。

为了尽快能让大家拿到利息,暂时先弄一个最简单的能跑起来的教程,有一定基础知识的话,按照教程做,就能拿到利息。这对于已经看过社区学院的课程或有一定基础的朋友来说就太简单啦。

第一步、工具准备
有nodejs环境的朋友跳过这一步,没有环境的可以安装nodejs环境(下载地址 http://nodejs.cn/download/和免费开源开发工具vscode(下载地址https://code.visualstudio.com/)下载后默认安装即可。
(附1:nodejs 安装配置教程https://www.liaoxuefeng.com/wiki/1022910821149312/1023025597810528)
(附2:一个nodejs教程,不感兴趣不用看https://www.liaoxuefeng.com/wiki/1022910821149312/1023025597810528)

第二步、运行环境搭建
(注意,追求效率且有基础的朋友可以直接下载准备好的全部程序,链接是百度网盘: https://pan.baidu.com/s/1RNPaYRAUMKE4RF92de8xcQ 提取码: huxr,下载压缩包解压后,使用vscode打开文件夹,直接修改参数后即可运行,改参数可查看第三步的说明,或者直接看代码里足够清楚的注释 )
想自己动手的朋友,可以参照@悠悠的新手教程,跑通一个conflux开发环境。教程链接为:https://juejin.cn/post/6844904110903279623
关于教程中的提示:现在npm墙的很厉害,如果npm install js-conflux-sdk不可用的话,ctrl+c强制关闭npm,然后换成下面这个国内镜像:
npm --registry https://registry.npm.taobao.org install -g js-conflux-sdk
还需要注意,现在主网一些参数有了更新:
节点更新为:
主网:http://main.confluxrpc.org
测试网:http://test.confluxrpc.org
支持http和https,无需端口
js-conflux-sdk版本更新为1.1.4 (2020年11月26日)
(@悠悠如果看到这里,可顺手把你教程的内容更新一下)

第三步、拷贝主要文件,填写参数,运行程序。
image
如果按照悠悠的教程,图片中的文件你已经都有了。然后我们新增一个运行文件index.js,并在launch.json中指定参数为 “program”: “${workspaceFolder}\index.js” 。
index.js的代码在最下方,可以直接复制粘贴,也可以百度网盘链接是: https://pan.baidu.com/s/1RNPaYRAUMKE4RF92de8xcQ 提取码: huxr
代码简单且注释清楚,就不在这里解释了。
其中有几个参数需要你来填入和选择:
1、要进行存取cfx利息的钱包的私钥地址"填入你的账户私钥"
2、存钱函数和取钱函数,建议同时只运行一个,把另一个注释掉。(否则存后马上取没什么意义。)具体说明代码里注释足够清楚。
3、存钱和取现的数额,现在默认指定存款数为全部普通账户余额减去1cfx(留一点gas);取款数为全部余额宝数额。对于懒得计算的朋友来说,这个默认设置足够用了。对于喜欢计算且能算明白的朋友,可以填入想要存取的数额。
填好以上参数后,你可以直接运行工程,然后在下方的输出框内,你可以看到两个账户余额的变化~~就像这样:


恭喜你,成功了,你可以拿到4.08%年化复利了!你也学会了如何使用内置合约,并拥有了Conflux这个聚宝盆。

此外,发现目前版本的Portal不能支持余额宝账户的显示(Portal看不到的话不要担心钱没了,使用取钱的函数就能取回来),估计不久的接下来,Portal会支持的,@lm的社区钱包等也会支持的。本程序只是一个临时应急的办法和一个教程。

在学习和使用过程中有疑问或发现问题可随时在社区学院群或论坛或其他群里提问。此外,如果自己搞不清楚建议不要做大额操作,等等官方的程序。
附上全部代码index.js 代码不多但很有用。单独idnex.js文件的百度网盘下载链接: https://pan.baidu.com/s/1nRkouKjaB3bTWlwF7fEY4w 提取码: nagm

const { Conflux, Drip } = require(‘js-conflux-sdk’);
const PRIVATE_KEY = ‘0x…’; //填入你的账户私钥

async function main() {
//创建conflux实例
const cfx = new Conflux({
url: ‘http://main.confluxrpc.org’,
//defaultGasPrice: 1,
//defaultGas: 1000000,//js-conflux-sdk v1.1.4 移除了defaultGas,虽然填了不会报错,但并不会生效。所以这句以后不需要了。
//logger: console,
});

const account = cfx.wallet.addPrivateKey(PRIVATE_KEY); //创建账户实例
const address = account.toString();
console.log("===============================程序开始了========================================")
console.log("账户地址:"  + address); //打印账户地址

//账户说明:每个账户拥有普通账户余额以及内置的4.08%年化复利余额宝账户。可以随时在普通账户和余额宝账户之间转账。
var balanceNormal = await cfx.getBalance(address); //普通账户余额
var balanceStaking = await cfx.getStakingBalance(address); //余额宝(质押)账户余额
var balanceTotal = balanceNormal + balanceStaking;
console.log("===============================转账前的情况========================================");
console.log("普通账户余额:"  + Drip(balanceNormal).toCFX() + "个CFX。");//打印普通账户余额
console.log("余额宝(质押)账户余额:"  + Drip(balanceStaking).toCFX()  + "个CFX。");//打印余额宝(质押)账户余额
console.log("账户总金额:"  + Drip(balanceTotal).toCFX() + "个CFX。" );//打印账户总金额

const staking_contract = cfx.InternalContract('Staking');//创建Staking质押内置合约

console.log("===============================开始内部转账========================================");
//相关教程:《Conflux 内置合约功能介绍》https://juejin.cn/post/6876330619798814728。
//注意!!以下有两个函数,第一个是存钱,第二个是取钱,请同时只运行一个函数,注释掉另一个函数!!!!取消和增加注释的快捷键是“ctrl+/”

//第一个函数:存钱生利息(这里参数选择了全存,你可以改成你想要的值,注意是以drip为单位,1cfx = 10的18次方的drip)
try {
    //普通账户里留一个1cfx保证有足够的gas
    numberDeposit = balanceNormal - 1000000000000000000n;
    const receiptDeposit = await staking_contract.deposit(numberDeposit).sendTransaction({
        from: account,
    }).executed();
    console.log("成功了,从普通账户转到质押账户:"  + Drip(numberDeposit).toCFX() + "个CFX。");//打印从普通账户转到质押账户的CFX数量
} catch (err) {
    console.log("从普通账户转到质押账户的内部转账失败,原因是:"+err);//打印从普通账户转到质押账户的失败原因
}

//第二个函数:取钱同时得到利息(这里参数选择了全取,你可以改成你想要的值,注意是以drip为单位,1cfx = 10的18次方的drip)
// try {
//     staking_contract.withdraw(balanceStaking).sendTransaction({
//         from: account,
//     }).executed();
//     console.log("成功了,从质押账户转到普通账户:"  + balanceStaking + "个Drip。");//打印从质押账户转到普通账户的CFX数量
// } catch (err) {
//         console.log("从质押账户转到普通账户的内部转账失败,原因是:"+err);//打印从质押账户转到普通账户的失败原因
// }
console.log("===============================内部转账完成========================================");

console.log("===============================转账后的情况========================================");
balanceNormal = await cfx.getBalance(address); //普通账户余额
balanceStaking = await cfx.getStakingBalance(address); //余额宝(质押)账户余额
balanceTotal = balanceNormal + balanceStaking;
console.log("内部转账后的普通账户余额:"  + Drip(balanceNormal).toCFX() + "个CFX。");//打印内部转账后的普通账户余额
console.log("内部转账后的余额宝(质押)账户余额:"  + Drip(balanceStaking).toCFX() + "个CFX。");//打印内部转账后的余额宝(质押)账户余额
console.log("内部转账后的账户总金额:"  + Drip(balanceTotal).toCFX() + "个CFX。");//打印内部转账后的账户总金额

//注意!下面这个投票函数不要用,如果你不知道她是什么意思的话。
//锁仓获得投票权,锁定一些cfx直到某些区块高度。这个方法慎用啊!用了那是真的锁。目标区块前都取不出来的。
//staking_contract.voteLock(your_number_of_tokens, your_unlock_block_number).sendTransaction({
//    from: account,
//}).confirmed();

}
main().catch(e => console.error(e));

Tips: 取现的函数,偶尔有这个情况:因为是异步执行,打印取现结果的时候数额没及时更新,其实已经取现成功。这时可以把存钱和取现两个函数都注释掉在运行,就能看到最新的余额了。

2020年11月28日最新:社区钱包葫芦Gourd已支持拿利息的余额宝功能,以后更方便了!

1 Like

:yum:

1 Like

真香

最新:社区钱包葫芦Gourd已支持拿利息的余额宝功能,以后更方便了!

1 Like

葫芦钱包,要多久看到生息?

看到了,刷新不显示利息。但是取出的时候出来了

1、平时看不到,只有在取的时候才能触发利息结算
2、取后需要点击一下刷新