caver-js (1.4.1 or earlier)
caver-js
is a JavaScript API library that allows developers to interact with a Klaytn node using a HTTP or Websocket connection. It is available on npm.
Features
- Complete implementation of Klaytn’s JSON-RPC client API over HTTP and Websocket
- Support of Klaytn transaction, account, and account key types
- JavaScript smart contract package to deploy and execute a smart contract on the Klaytn network
- In-memory wallet for managing Klaytn accounts
- Support of fee-delegation
- Support of the Klaytn wallet key format
- Encoding/decoding of a transaction object in RLP
- Signing of a transaction object
- Easy to port web3-js application to caver-js
Packages in caver-js
Below are packages provided in caver-js
.
Error Code Improvement
The error messages from Ethereum via web3.js are hardly figuring out where the error occurs. caver-js
improves the interface to catch error messages from Klaytn.
More details can be found in the value of txError
of the transaction receipt like the below:
Error: runtime error occurred in interpreter { "blockHash": "0xe7ec35c9fff1178d52cee1d46d40627d19f828c4b06ad1a5c3807698b99acb20", "blockNumber": 7811, "contractAddress": null, "from": "0xa8a2d37727197cc0eb827f8c5a3a3aceb26cf59e", "gasUsed": 9900000000, "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "status": false, "to": "0xf8425b0f65147969621f9390ca06139c7b439497", "transactionHash": "0x85ce2b307899c90144442d9b3236827ac57375c522be2435093aebfd920b8c58", "transactionIndex": 0, "txError": "0x2", "events": {}}
Caution when Sending a Transaction to Klaytn
Klaytn uses a fixed gas price (25 ston = 25 * 10^9). A transaction with a different price submitted to the Klaytn network will be rejected. For more information about the gas price, see GasPrice Overview The price of gas used in the network can be obtained by using caver.klay.getGasPrice.
If gasPrice
is not defined when you sign or submit a transaction, caver-js uses the caver.klay.getGasPrice RPC call to set the gas price of the transaction.
Links
- caver-js GitHub repository
- caver-js on npm