新手指南
本文档适用于使用 caver-js v1.5.0 或更高版本的开发人员。 如果使用的是旧版本,请参阅 Getting Started (~v1.4.1).
先决条件
依赖关系
使用 caver-js 库需要以下软件包。
注意* caver-js 可在 Node.js 12 和 14 版本上运行。 推荐的版本如下
如果使用不同版本的 Node(例如 Node v15),请使用 Node Version Manager(nvm) 安装并使用 caver-js 支持的版本。
安装
要试用它,请使用以下命令通过 npm 安装 caver-js:
$ npm install caver-js
注意:package.json文件应存在于同一安装路径中。 如果不存在,可通过
npm init生成
package.json`。
要安装特定版本的 caver-js,请尝试执行以下命令:
$ npm install caver-js@X.X.X
从 caver-js 开始
完成 caver-js 安装后,就可以使用 caver-js 连接 kaia 节点了。
要练习下面的示例,首先在工作目录中创建一个测试文件。
$ touch test.js
您可以看到在工作目录中创建的 test.js
文件。
在 test.js 中编写以下代码。
// test.jsconst Caver = require('caver-js')const caver = new Caver('https://public-en-kairos.node.kaia.io/')async function testFunction() { const version = await caver.rpc.klay.getClientVersion() console.log(version)}testFunction()
运行上述代码会得到以下结果。
$ node ./test.jskaia/v1.4.0/linux-amd64/go1.14.1
如果看到如上所示的 console.log 输出,请继续以下步骤。 版本号可能因所连接的 kaia 节点版本不同而不同。
连接 kaia 节点
您可以导入 caver-js 模块,并将其连接到 Kairos 测试网络中 的 kaia 节点,如下图所示:
const Caver = require('caver-js')const caver = new Caver('https://public-en-kairos.node.kaia.io/')
如果运行的是 EN,可以通过更改主机和端口将其连接到自己的节点,如下所示:
const Caver = require('caver-js')const caver = new Caver('https://your.en.url:8651/')
管理 Keyrings
Keyring是一个包含 kaia 账户地址和私钥的结构。
根据所存储密钥的类型,Keyring 可分为三种类型:SingleKeyring 用于存储一个地址和一个私人钥匙,MultipleKeyring 用于存储一个地址和多个私人钥匙,RoleBasedKeyring 用于存储一个地址和每个角色的一个或多个私人钥匙。
SingleKeyring在内部定义了 "key "属性,该 "key "存储一个私人密钥。
MultipleKeyring在内部定义了 "keys "属性,该 "keys "以数组形式实现,用于存储多个私钥。
RoleBasedKeyring](api/caver-wallet/keyring.md#rolebasedkeyring)中定义的keys
属性是以二维数组的形式实现的(空keys
看起来像[ [], [], [] ]
),每个role可以包含多个键。 数组的第一个元素填入用于 roleTransactionKey
的私钥,第二个元素填入用于 roleAccountUpdateKey
的私钥,第三个元素填入用于 roleFeePayerKey
的私钥。
创建Keyring
生成 SingleKeyring
如下图所示,您可以随机生成一个keyring。
// test.jsconst Caver = require('caver-js')const caver = new Caver('https://public-en-kairos.node.kaia.io/')async function testFunction() { const keyring = caver.wallet.keyring.generate() console.log(keyring)}testFunction()
运行上述代码会得到以下结果。
$ node ./test.jsSingleKeyring { _address: '0x3d263c3c0df60c5516f932d244531742f45eed5c', _key: PrivateKey { _privateKey: '0x{private key}' }}
执行结果如上图所示。 可以通过 keyring.address
和 keyring.key
访问实例内部定义的成员变量。