开发者快速入门
为了在 Conflux Core Space 上发送交易,您需要使用其特有的 SDK。 本教程将向您展示如何使用 js-conflux-sdk 发送交易。
以太坊的 SDK(如 ethers.js、web3.js、web3.py、web3j)与 Conflux Core Space 并不兼容。 您需要使用 Conflux Core Space 的 SDK。
简介
js-conflux-sdk 是一个基于 JavaScript 开发并用于 Conflux Core Space 的 SDK。 它是大量库的集合,允许您使用 HTTP、WebSocket 与本地或远程的 Conflux 节点进行交互。 您可以用它来发送交易、部署并与智能合约交互等等。
它相当于 Conflux Core Space 中的以太坊 web3.js。 只是 API 不同。
前提条件
- 安装并使用该 SDK 需要 Node.js 环境。
- 您需要连接到任意 Conflux 节点。 您可以使用公共测试网 RPC 端点
https://test.confluxrpc.com
。 - 用于签署交易的账户私钥。 该账户需有一些测试网 CFX 用于支付交易和其产生的费用。 您可以从 Conflux Core Faucet 获取一些测试网 CFX。
注意:私钥可以从 Fluent Wallet 设置页面导出。 请不要在测试网上使用与主网相同的私钥。
安装
您需要在 Node.js 环境下使用它。 您可以通过 npm 安装:
npm install js-conflux-sdk
如何使用?
导入并创建 Conflux 实例
从 js-conflux-sdk
导入 Conflux
类并设置 Conflux 服务提供者。 对于 Conflux Core 测试网,您可以直接使用公共 RPC 端点 https://test.confluxrpc.com
。 这里的“提供者”指的是允许您的应用程序与 Conflux 区块链通信的服务或节点。 它也可以改为任何其他Conflux节点,甚至是你自己的。
const { Conflux } = require('js-conflux-sdk');
const cfxClient = new Conflux({
url: 'https://test.confluxrpc.com',
networkId: 1,
// logger: console, // for debug
});
添加私钥
在发送交易之前,您需要将您的私钥添加到 Conflux 实例中。
const PRIVATE_KEY = '您的私钥';
// const PRIVATE_KEY = '0x5f15f9e52fc5ec6f77115a9f306c120a7e80d83115212d33a843bb6b7989c261';
const account = cfxClient.wallet.addPrivateKey(PRIVATE_KEY); // 创建账户实例
console.log("账户地址: ", account.address);
Conflux Address
Conflux Core Space 的地址与以太坊不同。 它是由 CIP-37 引入的 base32 编码字符串。
不同网络的地址前缀不同。 例如,Conflux Core 测试网的地址前缀为 cfxtest,而主网为 cfx。
例如:
- 主网地址:
cfx:aamjy3abae3j0ud8ys0npt38ggnunk5r4ps2pg8vcc
- 测试网地址:
cfxtest:aamjy3abae3j0ud8ys0npt38ggnunk5r4pex9025gj
您可以点击这里了解更多关于 Conflux Core 地址的信息。
查询账户余额
您可以使用 cfxClient.cfx.getBalance
来查询账户余额:
// Drip 是 CFX 的最小单位,可以用 Drip 工具转换 CFX 单位
const { Drip } = require('js-conflux-sdk');
async function main() {
const balance = await conflux.cfx.getBalance(account.address);
console.log(`账户 ${account.address} 的余额是 ${new Drip(balance).toCFX()} CFX`);
}
main().catch(e => console.error(e));
在 cfx
命名空间下还有很多其他 API 可用于查询区块链数据。 您可以在 SDK API 参考 和 Conflux Core RPC API 参考中找到它们。
发送交易
添加私钥后,您可以使用 cfxClient.cfx.sendTransaction
来发送交易。 步骤如下:
- 组合交易参数。
const receiver = 'cfxtest:aarc9abycue0hhzgyrr53m6cxedgccrmmy8m50bu1p';
let txParams = {
from: account, // 来自账户实例,并将由 account.privateKey 签名
to: receiver, // 可以为地址字符串或账户实例
value: Drip.fromCFX(0.125), // 使用转换工具函数
};