新手指南
本文檔適用於使用 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
訪問實例內部定義的成員變量。