caver.rpc.klay
caver.rpc.klay
provides JSON-RPC call with klay
name space.
caver.rpc.klay.accountCreated
caver.rpc.klay.accountCreated(address [, blockNumber] [, callback])
Returns true
if the account associated with the address is created in the kaia blockchain platform. It returns false
otherwise.
Parameters
Name | Type | Description |
---|---|---|
address | string | The address of the account you want to query to see if it has been created on the network. |
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns boolean
Type | Description |
---|---|
boolean | The existence of an input address in the kaia. |
Example
> caver.rpc.klay.accountCreated('0x{address in hex}').then(console.log)true
caver.rpc.klay.getAccount
caver.rpc.klay.getAccount(address [, blockNumber] [, callback])
Returns the account information of a given address in the kaia. For more details about the types of an account in kaia, please refer to Kaia Account Types.
NOTE caver.rpc.klay.getAccount
returns the account that exists on the network, so null
is returned if the account matching the address does not exist on the actual blockchain network.
Parameters
Name | Type | Description |
---|---|---|
address | string | The address of the account for which you want to get account information. |
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
Type | Description |
---|---|
object | An object that contains the account information. Each account type has different attributes. |
Example
// Get account with EOA> caver.rpc.klay.getAccount('0x{address in hex}').then(console.log){ accType: 1, account: { nonce: 0, balance: '0x', humanReadable: false, key: { keyType: 1, key: {} } }}// Get account with SCA> caver.rpc.klay.getAccount('0x{address in hex}').then(console.log){ accType: 2, account: { nonce: 1, balance: '0x0', humanReadable: false, key: { keyType: 3, key: {} }, storageRoot: '0xd0ce6b9ba63cf727d48833bcaf69f398bb353e9a5b6235ac5bb3a8e95ff90ecf', codeHash: '7pemrmP8fcguH/ut/SYHJoUSecfUIcUyeCpMf0sBYVI=', codeFormat: 0 }}
caver.rpc.klay.getAccountKey
caver.rpc.klay.getAccountKey(address [, blockNumber] [, callback])
Returns AccountKey of a given address. If the account has AccountKeyLegacy or the account of the given address is a Smart Contract Account, it will return an empty key value. Please refer to Account Key for more details.
NOTE caver.rpc.klay.getAccountKey
returns an object that differs by each AccountKey type. If a kaia account matching the given address does not exist in the network, null
is returned.
Parameters
Name | Type | Description |
---|---|---|
address | string | The address of kaia account from which you want to get an object of AccountKey information. |
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
Type | Description |
---|---|
object | An object that contains AccountKey information. Each AccountKey type has different attributes. |
Example
// AccountKey type: AccountKeyLegacy> caver.rpc.klay.getAccountKey('0x{address in hex}').then(console.log){ keyType: 1, key: {} }// AccountKey type: AccountKeyPublic> caver.rpc.klay.getAccountKey('0x{address in hex}').then(console.log){ keyType: 2, key: { x:'0xb9a4b...', y:'0x7a285...' }}// AccountKey type: AccountKeyFail> caver.rpc.klay.getAccountKey('0x{address in hex}').then(console.log){ keyType: 3, key:{} }// AccountKey type: AccountKeyWeightedMultiSig> caver.rpc.klay.getAccountKey('0x{address in hex}').then(console.log){ keyType: 4, key: { threshold: 2, keys: [ { weight: 1, key: { x: '0xae6b7...', y: '0x79ddf...' } }, { weight: 1, key: { x: '0xd4256...', y: '0xfc5e7...' } }, { weight: 1, key: { x: '0xd653e...', y: '0xe974e...' } } ] }}// AccountKey type: AccountKeyRoleBased> caver.rpc.klay.getAccountKey('0x{address in hex}').then(console.log){ keyType: 5, key: [ { key: { x: '0x81965...', y: '0x18242...' }, keyType: 2 }, { key: { x: '0x73363...', y: '0xfc3e3...' }, keyType: 2 }, { key: { x: '0x95c92...', y: '0xef783...' }, keyType: 2 } ]}
caver.rpc.klay.encodeAccountKey
caver.rpc.klay.encodeAccountKey(accountKey [, callback])
Encodes an object that contains AccountKey information using the Recursive Length Prefix (RLP) encoding scheme. Also you can use account.getRLPEncodingAccountKey to get RLP-encoded AccountKey.
Parameters
Name | Type | Description |
---|---|---|
accountKey | object | An object defines keyType and key inside or an instance of AccountKey (AccountKeyLegacy, AccountKeyPublic, AccountKeyFail, AccountKeyWeightedMultiSig or AccountKeyRoleBased). |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | A RLP-encoded AccountKey. |
Example
// AccountKey type: AccountKeyLegacy> caver.rpc.klay.encodeAccountKey({ keyType: 1, key: {} }).then(console.log)0x01c0// AccountKey type: AccountKeyPublic> caver.rpc.klay.encodeAccountKey({ keyType: 2, key: { x: '0xdbac81e8486d68eac4e6ef9db617f7fbd79a04a3b323c982a09cdfc61f0ae0e8', y: '0x906d7170ba349c86879fb8006134cbf57bda9db9214a90b607b6b4ab57fc026e', }, }).then(console.log)0x02a102dbac81e8486d68eac4e6ef9db617f7fbd79a04a3b323c982a09cdfc61f0ae0e8// AccountKey type: AccountKeyFail> caver.rpc.klay.encodeAccountKey({ keyType: 3, key: {} }).then(console.log)0x03c0// AccountKey type: AccountKeyWeightedMultiSig> caver.rpc.klay.encodeAccountKey({ keyType: 4, key: { threshold: 2, keys: [ { weight: 1, key: { x: '0xc734b50ddb229be5e929fc4aa8080ae8240a802d23d3290e5e6156ce029b110e', y: '0x61a443ac3ffff164d1fb3617875f07641014cf17af6b7dc38e429fe838763712', }, }, { weight: 1, key: { x: '0x12d45f1cc56fbd6cd8fc877ab63b5092ac77db907a8a42c41dad3e98d7c64dfb', y: '0x8ef355a8d524eb444eba507f236309ce08370debaa136cb91b2f445774bff842', }, }, ], }, }).then(console.log)0x04f84b02f848e301a102c734b50ddb229be5e929fc4aa8080ae8240a802d23d3290e5e6156ce029b110ee301a10212d45f1cc56fbd6cd8fc877ab63b5092ac77db907a8a42c41dad3e98d7c64dfb// AccountKey type: AccountKeyRoleBased> caver.rpc.klay.encodeAccountKey({ keyType: 5, key: [ { keyType: 2, key: { x: '0xe4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512d', y: '0xa5735a23ce1654b14680054a993441eae7c261983a56f8e0da61280758b5919', }, }, { keyType: 4, key: { threshold: 2, keys: [ { weight: 1, key: { x: '0xe4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512d', y: '0xa5735a23ce1654b14680054a993441eae7c261983a56f8e0da61280758b5919', }, }, { weight: 1, key: { x: '0x36f6355f5b532c3c1606f18fa2be7a16ae200c5159c8031dd25bfa389a4c9c06', y: '0x6fdf9fc87a16ac359e66d9761445d5ccbb417fb7757a3f5209d713824596a50d', }, }, ], }, }, { keyType: 2, key: { x: '0xc8785266510368d9372badd4c7f4a94b692e82ba74e0b5e26b34558b0f081447', y: '0x94c27901465af0a703859ab47f8ae17e54aaba453b7cde5a6a9e4a32d45d72b2', }, }, ], }).then(console.log)0x05f898a302a103e4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512db84e04f84b02f848e301a103e4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512de301a10336f6355f5b532c3c160// Use an AccountKey instance> const accountKey = caver.account.create('0x{address in hex}', '0xf1d2e...').accountKey> caver.rpc.klay.encodeAccountKey(accountKey).then(console.log)0x02a102f1d2e558cfa07151534cd406b1ac5c25d99e9c1cf925328d14fd15c6fe50df27
caver.rpc.klay.decodeAccountKey
caver.rpc.klay.decodeAccountKey(encodedKey [, callback])
Decodes a RLP-encoded AccountKey. Also you can use caver.account.accountKey.decode to decode a RLP-encoded AccountKey.
Parameters
Name | Type | Description |
---|---|---|
encodedKey | string | A RLP-encoded AccountKey. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
Type | Description |
---|---|
object | An object defines keyType and key inside. |
Example
// AccountKey type: AccountKeyLegacy> caver.rpc.klay.decodeAccountKey('0x01c0').then(console.log){ keyType: 1, key: {} }// AccountKey type: AccountKeyPublic> caver.rpc.klay.decodeAccountKey('0x02a102dbac81e8486d68eac4e6ef9db617f7fbd79a04a3b323c982a09cdfc61f0ae0e8').then(console.log){ keyType: 2, key: { x: '0xdbac81e8486d68eac4e6ef9db617f7fbd79a04a3b323c982a09cdfc61f0ae0e8', y: '0x906d7170ba349c86879fb8006134cbf57bda9db9214a90b607b6b4ab57fc026e', },}// AccountKey type: AccountKeyFail> caver.rpc.klay.decodeAccountKey('0x03c0').then(console.log){ keyType: 3, key: {} }// AccountKey type: AccountKeyWeightedMultiSig> caver.rpc.klay.decodeAccountKey('0x04f84b02f848e301a102c734b50ddb229be5e929fc4aa8080ae8240a802d23d3290e5e6156ce029b110ee301a10212d45f1cc56fbd6cd8fc877ab63b5092ac77db907a8a42c41dad3e98d7c64dfb').then(console.log){ keyType: 4, key: { threshold: 2, keys: [ { weight: 1, key: { x: '0xc734b50ddb229be5e929fc4aa8080ae8240a802d23d3290e5e6156ce029b110e', y: '0x61a443ac3ffff164d1fb3617875f07641014cf17af6b7dc38e429fe838763712', }, }, { weight: 1, key: { x: '0x12d45f1cc56fbd6cd8fc877ab63b5092ac77db907a8a42c41dad3e98d7c64dfb', y: '0x8ef355a8d524eb444eba507f236309ce08370debaa136cb91b2f445774bff842', }, }, ], },}// AccountKey type: AccountKeyRoleBased> caver.rpc.klay.decodeAccountKey('0x05f898a302a103e4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512db84e04f84b02f848e301a103e4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512de301a10336f6355f5b532c3c160').then(console.log){ keyType: 5, key: [ { keyType: 2, key: { x: '0xe4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512d', y: '0xa5735a23ce1654b14680054a993441eae7c261983a56f8e0da61280758b5919', }, }, { keyType: 4, key: { threshold: 2, keys: [ { weight: 1, key: { x: '0xe4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512d', y: '0xa5735a23ce1654b14680054a993441eae7c261983a56f8e0da61280758b5919', }, }, { weight: 1, key: { x: '0x36f6355f5b532c3c1606f18fa2be7a16ae200c5159c8031dd25bfa389a4c9c06', y: '0x6fdf9fc87a16ac359e66d9761445d5ccbb417fb7757a3f5209d713824596a50d', }, }, ], }, }, { keyType: 2, key: { x: '0xc8785266510368d9372badd4c7f4a94b692e82ba74e0b5e26b34558b0f081447', y: '0x94c27901465af0a703859ab47f8ae17e54aaba453b7cde5a6a9e4a32d45d72b2', }, }, ],}
caver.rpc.klay.getBalance
caver.rpc.klay.getBalance(address [, blockNumber] [, callback])
Returns the balance of the account of the given address in kaia.
Parameters
Name | Type | Description |
---|---|---|
address | string | The address of the account for which you want to get balance. |
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The current balance for the given address in peb. |
Example
> caver.rpc.klay.getBalance('0x{address in hex}').then(console.log)0xde0b6b3a7640000
caver.rpc.klay.getCode
caver.rpc.klay.getCode(address [, blockNumber] [, callback])
Returns code at a given address.
Parameters
Name | Type | Description |
---|---|---|
address | string | The address to get the code from. |
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The code from the given address. |
Example
> caver.rpc.klay.getCode('0x{address in hex}').then(console.log)0x60806...
caver.rpc.klay.getTransactionCount
caver.rpc.klay.getTransactionCount(address [, blockNumber] [, callback])
Returns the total number of transactions sent from an address.
Parameters
Name | Type | Description |
---|---|---|
address | string | The address to get the number of transactions from. |
blockNumber | number \ | (optional) A block number, the string pending for the pending nonce, or the string earliest or latest as in the default block parameter. If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The number of transactions sent from the given address in hex. |
Example
> caver.rpc.klay.getTransactionCount('0x{address in hex}').then(console.log)0x5f
caver.rpc.klay.isContractAccount
caver.rpc.klay.isContractAccount(address [, blockNumber] [, callback])
Returns true
if an input account has a non-empty codeHash at the time of a specific block number. It returns false
if the account is an EOA or a smart contract account which doesn't have codeHash. Please refer to Smart Contract Account for more details.
Parameters
Name | Type | Description |
---|---|---|
address | string | The address you want to check for isContractAccount. |
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns boolean
Type | Description |
---|---|
boolean | true means the input parameter is an existing smart contract address. |
Example
> caver.rpc.klay.isContractAccount('0x{address in hex}').then(console.log)false> caver.rpc.klay.isContractAccount('0x{address in hex}').then(console.log)true
caver.rpc.klay.sign
caver.rpc.klay.sign(address, message [, blockNumber] [, callback])
Generates signed data specific to the kaia. Refer to Kaia Platform API - klay_sign to know how the signature is generated.
NOTE: This API provides the function to sign a message using an imported account in your kaia node. The imported account in your node must be unlocked to sign the message. To sign a transaction with imported account in your kaia node, use caver.rpc.klay.signTransaction.
Parameters
Name | Type | Description |
---|---|---|
address | String | The address of the imported account to sign the message. |
message | String | Message to sign. |
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The signature made from an imported account. |
Example
> caver.rpc.klay.sign('0x{address in hex}', '0xdeadbeaf').then(console.log)0x1066e052c4be821daa4d0a0cd1e9e75ccb200bb4001c2e38853ba41b712a5a226da2acd67c86a13b266e0d75d0a6e7d1551c8924af413267615a5948617c746c1c
caver.rpc.klay.getAccounts
caver.rpc.klay.getAccounts([callback])
Returns a list of addresses owned by the kaia Node.
Parameters
Name | Type | Description |
---|---|---|
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns Array
Type | Description |
---|---|
Array | An array of addresses owned by the kaia Node. |
Example
> caver.rpc.klay.getAccounts().then(console.log)[ '0xe1531e916857d1b3a7db92f9187b96a7b43813bf', '0x75331c25535052157ff5110ba7d0cf940d3a9ca6']
caver.rpc.klay.getBlockNumber
caver.rpc.klay.getBlockNumber([callback])
Returns the number of the most recent block.
Parameters
Name | Type | Description |
---|---|---|
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The number of the most recent block in hex. |
Example
> caver.rpc.klay.getBlockNumber().then(console.log)0x5d39
caver.rpc.klay.getHeader
caver.rpc.klay.getHeader(blockNumberOrHash [, callback])
Returns a block header by block hash or block number. If the user passes the block hash as a parameter, caver.rpc.klay.getHeaderByHash is called, and if the block number is called as a parameter, caver.rpc.klay.getHeaderByNumber is called.
Parameters
Name | Type | Description |
---|---|---|
blockNumberOrHash | number \ | The block hash, number or the block tag string. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
Type | Description |
---|---|
object | A block header object. For a detailed description of the return value, please refer to caver.rpc.klay.getHeaderByHash. |
Example
> caver.rpc.klay.getHeader(1).then(console.log){ baseFeePerGas: '0x0', blockScore: '0x1', extraData: '0xd8830...', gasUsed: '0x0', governanceData: '0x', hash: '0x1b6582f0908add2221317288482aada596551e9f9d779a2aebc55d81d3149ba3', logsBloom: '0x00000...', number: '0xbacd3', parentHash: '0xd6e36611a6722b94b8e4bb4d164755445409cf43aa5db0a5d4ae01e621c81ce7', receiptsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', reward: '0x30be91c80566da777d30e659b6746174ecc61576', stateRoot: '0xe75d808889451b1dac3d209e8cfbb2159ea6b2a080ce6081be775fb426f047a8', timestamp: '0x62201975', timestampFoS: '0x0', transactionsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'}
caver.rpc.klay.getHeaderByNumber
caver.rpc.klay.getHeaderByNumber(blockNumber [, returnTransactionObjects] [, callback])
Returns a block header by block number.
Parameters
Name | Type | Description |
---|---|---|
blockNumber | number \ | The block number or the block tag string. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
Type | Description |
---|---|
object | A block header object. For a detailed description of the return value, please refer to caver.rpc.klay.getHeaderByHash. |
Example
> caver.rpc.klay.getHeaderByNumber(765139).then(console.log){ baseFeePerGas: '0x0', blockScore: '0x1', extraData: '0xd8830...', gasUsed: '0x0', governanceData: '0x', hash: '0x1b6582f0908add2221317288482aada596551e9f9d779a2aebc55d81d3149ba3', logsBloom: '0x00000...', number: '0xbacd3', parentHash: '0xd6e36611a6722b94b8e4bb4d164755445409cf43aa5db0a5d4ae01e621c81ce7', receiptsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', reward: '0x30be91c80566da777d30e659b6746174ecc61576', stateRoot: '0xe75d808889451b1dac3d209e8cfbb2159ea6b2a080ce6081be775fb426f047a8', timestamp: '0x62201975', timestampFoS: '0x0', transactionsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'}
caver.rpc.klay.getHeaderByHash
caver.rpc.klay.getHeaderByHash(blockHash [, returnTransactionObjects] [, callback])
Returns the block number of the most recent block by using blockHash
.
Parameters
Name | Type | Description |
---|---|---|
blockHash | string | The block hash. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
- An object includes the block header:
Name | Type | Description |
---|---|---|
baseFeePerGas | string | The base fee per gas. This value is returned only when EthTxTypeCompatibleBlock is activated for that block number. |
blockScore | string | The difficulty of mining in the blockchain network. The use of blockScore differs from the consensus of the network. Always 1 in the BFT consensus engine. |
extraData | string | The "extra data" field of this block. |
gasUsed | string | The gas in total that was used by all transactions in this block. |
governanceData | string | RLP encoded governance configuration |
hash | string | Hash of the block. null when it is a pending block. |
logsBloom | string | The bloom filter for the logs of the block. null when it is a pending block. |
number | string | The block number. null when it is a pending block. |
parentHash | string | Hash of the parent block. |
receiptsRoot | string | The root of the receipts trie of the block. |
reward | string | The address of the beneficiary to whom the block rewards were given. |
stateRoot | string | The root of the final state trie of the block. |
timestamp | string | The unix timestamp for when the block was collated. |
timestampFoS | string | The fraction of a second of the timestamp for when the block was collated. |
transactionsRoot | string | The root of the transaction trie of the block. |
Example
> caver.rpc.klay.getHeaderByHash('0x1b6582f0908add2221317288482aada596551e9f9d779a2aebc55d81d3149ba3').then(console.log){ baseFeePerGas: '0x0', blockScore: '0x1', extraData: '0xd8830...', gasUsed: '0x0', governanceData: '0x', hash: '0x1b6582f0908add2221317288482aada596551e9f9d779a2aebc55d81d3149ba3', logsBloom: '0x00000...', number: '0xbacd3', parentHash: '0xd6e36611a6722b94b8e4bb4d164755445409cf43aa5db0a5d4ae01e621c81ce7', receiptsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', reward: '0x30be91c80566da777d30e659b6746174ecc61576', stateRoot: '0xe75d808889451b1dac3d209e8cfbb2159ea6b2a080ce6081be775fb426f047a8', timestamp: '0x62201975', timestampFoS: '0x0', transactionsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'}
caver.rpc.klay.getBlock
caver.rpc.klay.getBlock(blockNumberOrHash [, returnTransactionObjects] [, callback])
Returns information about a block by block hash or block number. If the user passes the block hash as a parameter, caver.rpc.klay.getBlockByHash is called, and if the block number is called as a parameter, caver.rpc.klay.getBlockByNumber is called.
Parameters
Name | Type | Description |
---|---|---|
blockNumberOrHash | number \ | The block hash, number or the block tag string. |
returnTransactionObjects | boolean | (optional, default false ) If true , the returned block will contain all transactions as objects, and if false , it will only contain the transaction hashes. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
Type | Description |
---|---|
object | A block object. For a detailed description of the return value, please refer to caver.rpc.klay.getBlockByHash. |
Example
> caver.rpc.klay.getBlock(1).then(console.log){ baseFeePerGas: '0x0', blockscore: '0x1', extraData: '0xd8830...', gasUsed: '0x0', governanceData: '0x', hash: '0x58482921af951cf42a069436ac9338de50fd963bdbea40e396f416f9ac96a08b', logsBloom: '0x00000...', number: '0x1', parentHash: '0x6b7c0a49f445d39b6d7dc9ba5b593b326f3a953e75ff1fcf64b9a5fa51c2725b', receiptsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', reward: '0xddc2002b729676dfd906484d35bb02a8634d7040', size: '0x285', stateRoot: '0xb88b6110e6f73b732714bb346e6ff24beb480c0dc901a55be24e38ad1c6d5fa9', timestamp: '0x5ee7fe9f', timestampFoS: '0xd', totalBlockScore: '0x2', transactions: [], transactionsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', voteData: '0x',}
caver.rpc.klay.getBlockByNumber
caver.rpc.klay.getBlockByNumber(blockNumber [, returnTransactionObjects] [, callback])
Returns information about a block by block number.
Parameters
Name | Type | Description |
---|---|---|
blockNumber | number \ | The block number or the block which is tagged with a string (genesis or latest ). |
returnTransactionObjects | boolean | (optional, default false ) If true , the returned block will contain all transactions as objects, and if false , it will only contain the transaction hashes. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
Type | Description |
---|---|
object | A block object. For detailed description of return value, please refer to caver.rpc.klay.getBlockByHash. |
Example
> caver.rpc.klay.getBlockByNumber(1).then(console.log){ baseFeePerGas: '0x0', blockscore: '0x1', extraData: '0xd8830...', gasUsed: '0x0', governanceData: '0x', hash: '0x58482921af951cf42a069436ac9338de50fd963bdbea40e396f416f9ac96a08b', logsBloom: '0x00000...', number: '0x1', parentHash: '0x6b7c0a49f445d39b6d7dc9ba5b593b326f3a953e75ff1fcf64b9a5fa51c2725b', receiptsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', reward: '0xddc2002b729676dfd906484d35bb02a8634d7040', size: '0x285', stateRoot: '0xb88b6110e6f73b732714bb346e6ff24beb480c0dc901a55be24e38ad1c6d5fa9', timestamp: '0x5ee7fe9f', timestampFoS: '0xd', totalBlockScore: '0x2', transactions: [], transactionsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', voteData: '0x'}
caver.rpc.klay.getBlockByHash
caver.rpc.klay.getBlockByHash(blockHash [, returnTransactionObjects] [, callback])
Returns the block number of the most recent block by using blockHash
.
Parameters
Name | Type | Description |
---|---|---|
blockHash | string | The block hash. |
returnTransactionObjects | boolean | (optional, default false ) If true , the returned block will contain all transactions as objects, and if false , it will only contain the transaction hashes. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
- An object includes block:
Name | Type | Description |
---|---|---|
baseFeePerGas | string | The base fee per gas. This value is returned only when EthTxTypeCompatibleBlock is activated for that block number. |
blockScore | string | The difficulty of mining in the blockchain network. The use of blockScore differs from the consensus of the network. Always 1 in the BFT consensus engine. |
extraData | string | The "extra data" field of this block. |
gasUsed | string | The gas in total that was used by all transactions in this block. |
governanceData | string | RLP encoded governance configuration |
hash | string | Hash of the block. null when it is a pending block. |
logsBloom | string | The bloom filter for the logs of the block. null when it is a pending block. |
number | string | The block number. null when it is a pending block. |
parentHash | string | Hash of the parent block. |
receiptsRoot | string | The root of the receipts trie of the block. |
reward | string | The address of the beneficiary to whom the block rewards were given. |
size | string | Integer the size of this block in bytes. |
stateRoot | string | The root of the final state trie of the block. |
timestamp | string | The unix timestamp for when the block was collated. |
timestampFoS | string | The fraction of a second of the timestamp for when the block was collated. |
totalBlockScore | string | Integer of the total blockScore of the chain until this block. |
transactions | Array | Array of transaction objects, or 32-byte transaction hashes depending on the returnTransactionObjects parameter. |
transactionsRoot | string | The root of the transaction trie of the block. |
voteData | string | RLP encoded governance vote of the proposer. |
Example
> caver.rpc.klay.getBlockByHash('0x58482921af951cf42a069436ac9338de50fd963bdbea40e396f416f9ac96a08b').then(console.log){ baseFeePerGas: '0x0', blockscore: '0x1', extraData: '0xd8830...', gasUsed: '0x0', governanceData: '0x', hash: '0x58482921af951cf42a069436ac9338de50fd963bdbea40e396f416f9ac96a08b', logsBloom: '0x00000...', number: '0x1', parentHash: '0x6b7c0a49f445d39b6d7dc9ba5b593b326f3a953e75ff1fcf64b9a5fa51c2725b', receiptsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', reward: '0xddc2002b729676dfd906484d35bb02a8634d7040', size: '0x285', stateRoot: '0xb88b6110e6f73b732714bb346e6ff24beb480c0dc901a55be24e38ad1c6d5fa9', timestamp: '0x5ee7fe9f', timestampFoS: '0xd', totalBlockScore: '0x2', transactions: [], transactionsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', voteData: '0x'}
caver.rpc.klay.getBlockReceipts
caver.rpc.klay.getBlockReceipts(blockHash [, callback])
Returns receipts included in a block identified by block hash.
Parameters
Name | Type | Description |
---|---|---|
blockHash | string | The block hash. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns Array
Type | Description |
---|---|
Array | The transaction receipts included in a block. If the target block contains no transaction, an empty array [] is returned. For detailed description of transaction receipt, please refer to caver.rpc.klay.getTransactionReceipt. |
Example
> caver.rpc.klay.getBlockReceipts('0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0').then(console.log)[ { blockHash: '0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0', blockNumber: '0x5301', contractAddress: null, from: '0xddc2002b729676dfd906484d35bb02a8634d7040', gas: '0x61a8', gasPrice: '0x5d21dba00', gasUsed: '0x5208', logs: [], logsBloom: '0x00000...', nonce: '0x5e', senderTxHash: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c', signatures: [ { V: '0x4e44', R: '0x98583ffa8d9a6d5f9e60e4daebb33f18e8ad4d32653c4a2fa7f12ce025af763d', S: '0x9b9e5257293e3b986842b6a203dd16ce46f16ed42dd3e9592fcaab9ea2696cb' } ], status: '0x1', to: '0xc0aabc441129991dd3a9363a9a43b745527ea4e7', transactionHash: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c', transactionIndex: '0x0', type: 'TxTypeValueTransfer', typeInt: 8, value: '0xde0b6b3a7640000' }]
caver.rpc.klay.getBlockTransactionCountByNumber
caver.rpc.klay.getBlockTransactionCountByNumber(blockNumber [, callback])
Returns the number of transactions in a block matching the given block number.
Parameters
Name | Type | Description |
---|---|---|
blockNumber | number \ | The block number or the block tag string (genesis or latest ). |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The number of transactions in the given block in hex. |
Example
> caver.rpc.klay.getBlockTransactionCountByNumber(21249).then(console.log)0x1
caver.rpc.klay.getBlockTransactionCountByHash
caver.rpc.klay.getBlockTransactionCountByHash(blockHash [, callback])
Returns the number of transactions in a block matching the given block hash.
Parameters
Name | Type | Description |
---|---|---|
blockHash | string | The block hash. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The number of transactions in the given block in hex. |
Example
> caver.rpc.klay.getBlockTransactionCountByHash('0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0').then(console.log)0x1
caver.rpc.klay.getBlockWithConsensusInfoByNumber
caver.rpc.klay.getBlockWithConsensusInfoByNumber(blockNumber [, callback])
Returns a block with consensus information matched by the given block number.
Parameters
Name | Type | Description |
---|---|---|
blockNumber | number \ | The block number or the block tag string (genesis or latest ). |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
Type | Description |
---|---|
string | An object includes block with consensus information. For detailed description of return value, please refer to caver.rpc.klay.getBlockWithConsensusInfoByHash. |
Example
> caver.rpc.klay.getBlockWithConsensusInfoByNumber(21249).then(console.log){ blockscore: '0x1', committee: ['0xddc2002b729676dfd906484d35bb02a8634d7040', '0xa1d2665c4c9f77410844dd4c22ed11aabbd4033e'], extraData: '0xd8830...', gasUsed: '0x5208', governanceData: '0x', hash: '0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0', logsBloom: '0x00000...', number: '0x5301', parentHash: '0x024f05c0e7428e33331104bedbfc453d481ce6a2f5e57f7fd68a4391ba6c2619', proposer: '0xa1d2665c4c9f77410844dd4c22ed11aabbd4033e', receiptsRoot: '0xe38e5532717f12f769b07ea016014bd39b74fb72def4de8442114cc2728609f2', reward: '0xb74837f495060f3f794dcae8fa3e0c5d3cf99d9f', size: '0x313', stateRoot: '0x9964b2d8f23da7383a32ec33c9700a76ebf4a36315c9067c2fef7568d97e1d55', timestamp: '0x5ee851dd', timestampFoS: '0x0', totalBlockScore: '0x5302', transactions: [ { blockHash: '0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0', blockNumber: '0x5301', contractAddress: null, from: '0xddc2002b729676dfd906484d35bb02a8634d7040', gas: '0x61a8', gasPrice: '0x5d21dba00', gasUsed: '0x5208', logs: [], logsBloom: '0x00000...', nonce: '0x5e', senderTxHash: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c', signatures: { V: '0x4e44', R: '0x98583ffa8d9a6d5f9e60e4daebb33f18e8ad4d32653c4a2fa7f12ce025af763d', S: '0x9b9e5257293e3b986842b6a203dd16ce46f16ed42dd3e9592fcaab9ea2696cb' }, status: '0x1', to: '0xc0aabc441129991dd3a9363a9a43b745527ea4e7', transactionHash: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c', transactionIndex: '0x0', type: 'TxTypeValueTransfer', typeInt: 8, value: '0xde0b6b3a7640000', }, ], transactionsRoot: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c', voteData: '0x',}
caver.rpc.klay.getBlockWithConsensusInfoByHash
caver.rpc.klay.getBlockWithConsensusInfoByHash(blockHash [, callback])
Returns a block with consensus information matched by the given hash.
Parameters
Name | Type | Description |
---|---|---|
blockHash | string | The block hash. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
- A block object with consensus information (a proposer and a list of committee members), or null when no block was found:
Name | Type | Description |
---|---|---|
blockScore | string | Former difficulty. Always 1 in the BFT consensus engine |
committee | Array | Array of addresses of committee members of this block. The committee is a subset of validators who participated in the consensus protocol for this block. |
extraData | string | The "extra data" field of this block. |
gasUsed | string | The gas in total that was used by all transactions in this block. |
governanceData | string | RLP encoded governance configuration |
hash | string | Hash of the block. null when it is a pending block. |
logsBloom | string | The bloom filter for the logs of the block. null when it is a pending block. |
number | string | The block number. null when it is a pending block. |
originProposer | string | The proposal of 0 round at the same block number. |
parentHash | string | Hash of the parent block. |
proposer | string | The address of the block proposer. |
receiptsRoot | string | The root of the receipts trie of the block. |
reward | string | The address of the beneficiary to whom the block rewards were given. |
round | number | The round number. |
size | string | Integer the size of this block in bytes. |
stateRoot | string | The root of the final state trie of the block. |
timestamp | string | The unix timestamp for when the block was collated. |
timestampFoS | string | The fraction of a second of the timestamp for when the block was collated. |
totalBlockScore | string | Integer of the total blockScore of the chain until this block. |
transactions | Array | Array of transaction objects. |
transactionsRoot | string | The root of the transaction trie of the block. |
voteData | string | RLP encoded governance vote of the proposer |
Example
> caver.rpc.klay.getBlockWithConsensusInfoByHash('0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0').then(console.log){ blockscore: '0x1', committee: [ '0x571e5...', '0x5cb1a...', '0x99fb1...', '0xb74ff...' ], extraData: '0xd8830...', gasUsed: '0x3ea49', governanceData: '0x', hash: '0x188d4531d668ae3da20d70d4cb4c5d96a0cc5190771f0920c56b461c4d356566', logsBloom: '0x00000...', number: '0x3f79aa7', originProposer: '0x99fb17d324fa0e07f23b49d09028ac0919414db6', parentHash: '0x777d344c8c59c4d8d0041bb4c2ee66e95ec110303fb59d3e329f80e7a9c9c617', proposer: '0x99fb17d324fa0e07f23b49d09028ac0919414db6', receiptsRoot: '0xffbae3190f858531ff785bcbdc70278d91c3d9becdd8b134b0ab7974b9ef3641', reward: '0xb2bd3178affccd9f9f5189457f1cad7d17a01c9d', round: 0, size: '0x507', stateRoot: '0xa60d0868bd41b63b4fd67e5a8f801c5949e89a8994a13426747890b77d6bc0c4', timestamp: '0x610b3164', timestampFoS: '0xc', totalBlockScore: '0x3f79aa8', transactions: [ { blockHash: '0x188d4531d668ae3da20d70d4cb4c5d96a0cc5190771f0920c56b461c4d356566', blockNumber: '0x3f79aa7', contractAddress: null, feePayer: '0xfee998d423d5bd2bf5b5c0f0acb4e3aae2bd2286', feePayerSignatures: [ { V: '0x7f5', R: '0xf9aff6f39feb7a18d3e1b8ab9f590f0227e465c72cfe05e8d7c9e390cbf1d349', S: '0x6e7317d121a3951a8cbca110be8cc86c5314349f8fb1c37f9af4cadf72fe89ec', }, ], from: '0x11eb23f57151a88d4bb53cc9c27355437138c278', gas: '0x2dc6c0', gasPrice: '0x5d21dba00', gasUsed: '0x3ea49', input: '0x850ba...', logs: [ { address: '0x78ca9a1105c3392b56625f3fcfd149b29322c56f', topics: [ '0xddf25...', '0x00000...', '0x00000...', '0x00000...' ], data: '0x', blockNumber: '0x3f79aa7', transactionHash: '0x109d2836d9fde9d8081a27dd6ac545fd7a53530a56bdc40f2a11e5d6dbc2a09f', transactionIndex: '0x0', blockHash: '0x188d4531d668ae3da20d70d4cb4c5d96a0cc5190771f0920c56b461c4d356566', logIndex: '0x0', removed: false, }, ], logsBloom: '0x00000...', nonce: '0x0', senderTxHash: '0xeca2d3650403a1e27af0bbe9878dcbb248d764fc88751f35a6e05636d2ad9e78', signatures: [ { V: '0x7f6', R: '0x9ea78985b004afa86acd455c017da374ec1aec885f963ec8134a38f7ede451b0', S: '0xfac0e417f7f7b15023e3f5ac95f1fb5b3280746a2eff04394ddedbdd259fc1', }, ], status: '0x1', to: '0x78ca9a1105c3392b56625f3fcfd149b29322c56f', transactionHash: '0x109d2836d9fde9d8081a27dd6ac545fd7a53530a56bdc40f2a11e5d6dbc2a09f', transactionIndex: '0x0', type: 'TxTypeFeeDelegatedSmartContractExecution', typeInt: 49, value: '0x0', }, ], transactionsRoot: '0x109d2836d9fde9d8081a27dd6ac545fd7a53530a56bdc40f2a11e5d6dbc2a09f', voteData: '0x',}
caver.rpc.klay.getCommittee
caver.rpc.klay.getCommittee([blockNumber] [, callback])
Returns a list of all validators in the committee at the specified block.
Parameters
Name | Type | Description |
---|---|---|
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns Array
Type | Description |
---|---|
Array | Addresses of all validators in the committee at the given block. |
Example
> caver.rpc.klay.getCommittee().then(console.log)[ '0xddc2002b729676dfd906484d35bb02a8634d7040', '0xa1d2665c4c9f77410844dd4c22ed11aabbd4033e']
caver.rpc.klay.getCommitteeSize
caver.rpc.klay.getCommitteeSize([blockNumber] [, callback])
Returns the size of the committee at the specified block.
Parameters
Name | Type | Description |
---|---|---|
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns number
Type | Description |
---|---|
number | The size of the committee at the given block. |
Example
> caver.rpc.klay.getCommitteeSize().then(console.log)2
caver.rpc.klay.getCouncil
caver.rpc.klay.getCouncil([blockNumber] [, callback])
Returns a list of all validators of the council at the specified block.
Parameters
Name | Type | Description |
---|---|---|
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns Array
Type | Description |
---|---|
Array | An array of validator addresses of the council at the given block, or null when no council was found. |
Example
> caver.rpc.klay.getCouncil().then(console.log)[ '0xa1d2665c4c9f77410844dd4c22ed11aabbd4033e', '0xddc2002b729676dfd906484d35bb02a8634d7040']
caver.rpc.klay.getCouncilSize
caver.rpc.klay.getCouncilSize([blockNumber] [, callback])
Returns the size of the council at the specified block.
Parameters
Name | Type | Description |
---|---|---|
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns number
Type | Description |
---|---|
number | The size of the council at the given block. |
Example
> caver.rpc.klay.getCouncilSize().then(console.log)2
caver.rpc.klay.getStorageAt
caver.rpc.klay.getStorageAt(address, position [, blockNumber] [, callback])
Returns the value from a storage position at a given address.
Parameters
Name | Type | Description |
---|---|---|
address | string | The address to get the storage from. |
position | number | The index position of the storage. For more information on calculating the position , refer to klay_getStorageAt. |
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The value at this storage position. |
Example
> caver.rpc.klay.getStorageAt('0x407d73d8a49eeb85d32cf465507dd71d507100c1', 0).then(console.log)0x033456732123ffff2342342dd12342434324234234fd234fd23fd4f23d4234
caver.rpc.klay.isMinting
caver.rpc.klay.isMinting([callback])
Returns true
if client is actively mining new blocks.
Parameters
Name | Type | Description |
---|---|---|
callback | function | (optional) Optional callback, which returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns boolean
- true
if the client is mining, otherwise false
.
Example
> caver.rpc.klay.isMinting().then(console.log)true
caver.rpc.klay.isSyncing
caver.rpc.klay.isSyncing([callback])
Returns an object with data about the sync status or false.
Parameters
Name | Type | Description |
---|---|---|
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object|boolean
- false
if the kaia Node is not syncing. Otherwise, a sync object is returned:
Name | Type | Description |
---|---|---|
startingBlock | string | The block number in hex where the sync started. |
currentBlock | string | The block number in hex where the node currently synced to. |
highestBlock | string | The estimated block number in hex to sync to. |
knownStates | string | The estimated states in hex to download. |
pulledStates | string | The already downloaded states in hex. |
Example
> caver.rpc.klay.isSyncing().then(console.log){ startingBlock: 100, currentBlock: 312, highestBlock: 512, knownStates: 234566, pulledStates: 123455}> caver.rpc.klay.isSyncing().then(console.log)false
caver.rpc.klay.call
caver.rpc.klay.call(callObject [, blockNumber] [, callback])
Executes a new message call immediately without sending a transaction on the blockchain. It returns data or an error object of JSON RPC if an error occurs.
Parameters
Name | Type | Description |
---|---|---|
callObject | object | A transaction call object. See the next table for the object's properties. |
blockNumber | number \ | (optional) A block number, or the string latest or earliest . If omitted, latest will be used. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
callObject
has the following properties:
Name | Type | Description |
---|---|---|
to | string | (optional when testing the deployment of a new contract) The address the transaction is directed to. |
input | string | (optional) The hash of the method signature and encoded parameters. You can use caver.abi.encodeFunctionCall. |
from | string | (optional) The address the transaction is sent from. |
gas | string | (optional) The gas provided for the transaction execution. klay_call consumes zero gas, but this parameter may be needed by some executions. |
gasPrice | string | (optional) The gasPrice used for each paid gas. |
value | string | (optional) The value sent with this transaction in peb . |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The returned data of the call. e.g., the return value of a smart contract function. |
Example
> caver.rpc.klay.call({ to: '0x5481a10a47C74f800BDF4955BD77550881bde91C', // contract address input: '0x70a08231000000000000000000000000ddc2002b729676dfd906484d35bb02a8634d7040' }).then(console.log)0x0000000000000000000000000000000000000000000000000de0b6b3a7640000
caver.rpc.klay.estimateGas
caver.rpc.klay.estimateGas(callObject [, blockNumber] [, callback])
Generates and returns an estimate of how much gas
is necessary to allow a transaction to complete. The transaction from this method will not be added to the blockchain.
Parameters
See caver.rpc.klay.call parameters, expect that all properties are optional.
Return Value
Promise
returns string
Type | Description |
---|---|
string | The amount of gas used. |
Example
> caver.rpc.klay.estimateGas({ to: '0x5481a10a47C74f800BDF4955BD77550881bde91C', // contract address input: '0x095ea7b300000000000000000000000028e4e077686d1aeaf54a1313ff4841181056fe32000000000000000000000000000000000000000000000000000000000000000a' }).then(console.log)0xb2a0
caver.rpc.klay.estimateComputationCost
caver.rpc.klay.estimateComputationCost(callObject [, blockNumber] [, callback])
Generates and returns an estimate of how much computation cost
will be spent to execute the transaction. kaia limits the computation cost of a transaction to 100000000
currently not to take too much time by a single transaction. The transaction will not be added to the blockchain like caver.rpc.klay.estimateGas.
Parameters
See caver.rpc.klay.call parameters, expect that all properties are optional.
Return Value
Promise
returns string
Type | Description |
---|---|
string | The amount of computation cost used. |
Example
> caver.rpc.klay.estimateComputationCost({ to: '0x5481a10a47C74f800BDF4955BD77550881bde91C', // contract address input: '0x095ea7b300000000000000000000000028e4e077686d1aeaf54a1313ff4841181056fe32000000000000000000000000000000000000000000000000000000000000000a' }).then(console.log)0xd761
caver.rpc.klay.getTransactionByBlockHashAndIndex
caver.rpc.klay.getTransactionByBlockHashAndIndex(blockHash, index [, callback])
Returns information about a transaction by block hash
and transaction index
position.
Parameters
Name | Type | Description |
---|---|---|
blockHash | string | The block hash. |
index | number | A transaction index position inside the block. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
Type | Description |
---|---|
object | A transaction object, see caver.rpc.klay.getTransactionByHash for more detail. |
Example
> caver.rpc.klay.getTransactionByBlockHashAndIndex('0xc9f643c0ebe84932c10695cbc9eb75228af09516931b58952de3e12c21a50576', 0).then(console.log){ blockHash: '0xc9f643c0ebe84932c10695cbc9eb75228af09516931b58952de3e12c21a50576', blockNumber: '0xb7', from: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', gas: '0x61a8', gasPrice: '0x5d21dba00', hash: '0xdb63fb385e51fbfd84a98873c994aef622c5f1c72c5760a9ff95c55bbfd99898', nonce: '0x0', senderTxHash: '0xdb63fb385e51fbfd84a98873c994aef622c5f1c72c5760a9ff95c55bbfd99898', signatures: [ { V: '0x4e44', R: '0xf1a9a...', S: '0x9116c...' } ], to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', transactionIndex: '0x0', type: 'TxTypeValueTransfer', typeInt: 8, value: '0x8ac7230489e80000'}
caver.rpc.klay.getTransactionByBlockNumberAndIndex
caver.rpc.klay.getTransactionByBlockNumberAndIndex(blockNumber, index [, callback])
Returns information about a transaction by block number
and transaction index
position.
Parameters
Name | Type | Description |
---|---|---|
blockNumber | number \ | The block number or the block tag string (genesis or latest ). |
index | number | A transaction index position inside the block. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
Type | Description |
---|---|
object | A transaction object, see caver.rpc.klay.getTransactionByHash for more detail. |
Example
> caver.rpc.klay.getTransactionByBlockNumberAndIndex(183, 0).then(console.log){ blockHash: '0xc9f643c0ebe84932c10695cbc9eb75228af09516931b58952de3e12c21a50576', blockNumber: '0xb7', from: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', gas: '0x61a8', gasPrice: '0x5d21dba00', hash: '0xdb63fb385e51fbfd84a98873c994aef622c5f1c72c5760a9ff95c55bbfd99898', nonce: '0x0', senderTxHash: '0xdb63fb385e51fbfd84a98873c994aef622c5f1c72c5760a9ff95c55bbfd99898', signatures: [ { V: '0x4e44', R: '0xf1a9a...', S: '0x9116c...' } ], to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', transactionIndex: '0x0', type: 'TxTypeValueTransfer', typeInt: 8, value: '0x8ac7230489e80000'}
caver.rpc.klay.getTransactionByHash
caver.rpc.klay.getTransactionByHash(transactionHash [, callback])
Returns the information about a transaction requested by transaction hash.
Parameters
Name | Type | Description |
---|---|---|
transactionHash | string | A transaction hash. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
- A transaction object, or null
when no transaction was found:
Name | Type | Description |
---|---|---|
blockHash | string | Hash of the block where this transaction was in. |
blockNumber | string | Block number where this transaction was in. |
codeFormat | string | (optional) The code format of smart contract code. |
feePayer | string | (optional) Address of the fee payer. |
feePayerSignatures | Array | (optional) An array of fee payer's signature objects. A signature object contains three fields (V, R, and S). V contains ECDSA recovery id. R contains ECDSA signature r while S contains ECDSA signature s. |
feeRatio | string | (optional) Fee ratio of the fee payer. If it is 30, 30% of the fee will be paid by the fee payer. 70% will be paid by the sender. |
from | string | Address of the sender. |
gas | string | Gas provided by the sender. |
gasPrice | string | Gas price provided by the sender in peb. |
hash | string | Hash of the transaction. |
humanReadable | Boolean | (optional) true if the address is humanReadable, false if the address is not humanReadable. |
key | string | (optional) The RLP-encoded AccountKey used to update AccountKey of an kaia account. See AccountKey for more details. |
input | string | (optional) The data sent along with the transaction. |
nonce | string | The number of transactions made by the sender prior to this one. |
senderTxHash | string | (optional) Hash of the tx without the fee payer's address and signature. This value is always the same as the value of hash for non-fee-delegated transactions. |
signatures | Array | An array of signature objects. A signature object contains three fields (V, R, and S). V contains ECDSA recovery id. R contains ECDSA signature r while S contains ECDSA signature s. |
to | string | Address of the receiver. null when it is a contract deploying transaction. |
transactionIndex | string | Integer of the transaction index position in the block. |
type | string | A string representing the type of the transaction. |
typeInt | number | An integer representing the type of the transaction. |
value | string | Value transferred in peb. |
If the transaction is in pending
status that has not yet been processed, default values for blockHash
, blockNumber
and transactionIndex
are returned. See the example below.
Example
> caver.rpc.klay.getTransactionByHash('0x991d2e63b91104264d2886fb2ae2ccdf90551377af4e334b313abe123a5406aa').then(console.log){ blockHash: '0xb273976bad5f3d40ba46839c020f61b1629e2362d351e3c9cb32268afc7cb477', blockNumber: '0x74c', codeFormat: '0x0', from: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', gas: '0x3d0900', gasPrice: '0x5d21dba00', hash: '0x991d2e63b91104264d2886fb2ae2ccdf90551377af4e334b313abe123a5406aa', humanReadable: false, input: '0x60806...', nonce: '0xa', senderTxHash: '0x991d2e63b91104264d2886fb2ae2ccdf90551377af4e334b313abe123a5406aa', signatures: [ { V: '0x4e44', R: '0xe4ac3...', S: '0x5374f...' } ], to: null, transactionIndex: '0x0', type: 'TxTypeSmartContractDeploy', typeInt: 40, value: '0x0',}// When transaction is in pending, default values for `blockHash`, `blockNumber` and `trasnactionIndex` are returned.> caver.rpc.klay.getTransactionByHash('0x72e3838a42fbe75724a685ca03e50ff25ebc564e32d06dadf41be2190e5b11d1').then(console.log){ blockHash: '0x0000000000000000000000000000000000000000000000000000000000000000', blockNumber: '0x0', from: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', gas: '0x61a8', gasPrice: '0x5d21dba00', hash: '0x72e3838a42fbe75724a685ca03e50ff25ebc564e32d06dadf41be2190e5b11d1', nonce: '0xd', senderTxHash: '0x72e3838a42fbe75724a685ca03e50ff25ebc564e32d06dadf41be2190e5b11d1', signatures: [ { V: '0x4e44', R: '0x73634...', S: '0x479be...' } ], to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', transactionIndex: '0x0', type: 'TxTypeValueTransfer', typeInt: 8, value: '0x8ac7230489e80000',}
caver.rpc.klay.getTransactionBySenderTxHash
caver.rpc.klay.getTransactionBySenderTxHash(senderTxHash [, callback])
Returns the information about a transaction requested by the sender transaction hash.
Please note that this API returns the correct result only if the indexing feature is enabled in the node by --sendertxhashindexing
. Use caver.rpc.klay.isSenderTxHashIndexingEnabled to check if the indexing feature is enabled or not.
Parameters
Name | Type | Description |
---|---|---|
senderTxHash | string | The sender transaction hash. See SenderTxHash for more detail. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
Type | Description |
---|---|
object | A transaction object, see caver.rpc.klay.getTransactionByHash for more details. |
Example
> caver.rpc.klay.getTransactionBySenderTxHash('0x991d2e63b91104264d2886fb2ae2ccdf90551377af4e334b313abe123a5406aa').then(console.log){ blockHash: '0xb273976bad5f3d40ba46839c020f61b1629e2362d351e3c9cb32268afc7cb477', blockNumber: '0x74c', codeFormat: '0x0', from: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', gas: '0x3d0900', gasPrice: '0x5d21dba00', hash: '0x991d2e63b91104264d2886fb2ae2ccdf90551377af4e334b313abe123a5406aa', humanReadable: false, input: '0x60806...', nonce: '0xa', senderTxHash: '0x991d2e63b91104264d2886fb2ae2ccdf90551377af4e334b313abe123a5406aa', signatures: [ { V: '0x4e44', R: '0xe4ac3...', S: '0x5374f...' } ], to: null, transactionIndex: '0x0', type: 'TxTypeSmartContractDeploy', typeInt: 40, value: '0x0',}
caver.rpc.klay.getTransactionReceipt
caver.rpc.klay.getTransactionReceipt(transactionHash [, callback])
Returns the receipt of a transaction by transaction hash.
NOTE Receipt is not available for pending
transactions whose transactions have not yet been processed.
Parameters
Name | Type | Description |
---|---|---|
transactionHash | string | A transaction hash. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
- A transaction receipt object, or null
when no receipt was found:
Name | Type | Description |
---|---|---|
blockHash | string | Hash of the block where this transaction was in. |
blockNumber | string | Block number where this transaction was in. |
codeFormat | string | (optional) The code format of smart contract code. |
contractAddress | string | The contract address created, if the transaction was a contract creation, otherwise null . |
effectiveGasPrice | string | The actual value per gas deducted from the sender. Before the Magma hard fork, this value was equal to the transaction’s gas price. After the Magma hard fork, it is equal to the value of baseFee in the block header. |
feePayer | string | (optional) Address of the fee payer. |
feePayerSignatures | Array | (optional) An array of fee payer's signature objects. A signature object contains three fields (V, R, and S). V contains ECDSA recovery id. R contains ECDSA signature r while S contains ECDSA signature s. |
feeRatio | string | (optional) Fee ratio of the fee payer. If it is 30, 30% of the fee will be paid by the fee payer. 70% will be paid by the sender. |
from | string | Address of the sender. |
gas | string | Gas provided by the sender. |
gasPrice | string | Gas price provided by the sender in peb. |
gasUsed | string | The amount of gas used by this specific transaction alone. |
humanReadable | Boolean | (optional) true if the address is humanReadable, false if the address is not humanReadable. |
key | string | (optional) The RLP-encoded AccountKey used to update AccountKey of a kaia account. |
input | string | (optional) The data sent along with the transaction. |
logs | Array | Array of log objects, which this transaction generated. |
logsBloom | string | Bloom filter for light clients to quickly retrieve related logs. |
nonce | string | The number of transactions made by the sender prior to this one. |
senderTxHash | string | (optional) Hash of a transaction that is signed only by the sender. See SenderTxHash. This value is always the same as transactionHash for non-fee-delegated transactions. |
signatures | Array | An array of signature objects. A signature object contains three fields (V, R, and S). V contains ECDSA recovery id. R contains ECDSA signature r while S contains ECDSA signature s. |
status | string | 0x1 if the transaction was successful, 0x0 if the kaia Virtual Machine reverted the transaction. |
txError | string | (optional) detailed error code if status is equal to 0x0 . |
to | string | Address of the receiver. null when it is a contract creation transaction. |
transactionHash | string | Hash of the transaction. |
transactionIndex | string | Integer of the transaction index position in the block. |
type | string | A string representing the type of the transaction. |
typeInt | number | An integer representing the type of the transaction. |
value | string | Value transferred in peb. |
NOTE effectiveGasPrice
is supported since caver-js v1.9.0.
Example
// Before the Magma hard fork> caver.rpc.klay.getTransactionReceipt('0xdb63fb385e51fbfd84a98873c994aef622c5f1c72c5760a9ff95c55bbfd99898').then(console.log){ blockHash: '0xc9f643c0ebe84932c10695cbc9eb75228af09516931b58952de3e12c21a50576', blockNumber: '0xb7', contractAddress: null, effectiveGasPrice: '0x5d21dba00', from: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', gas: '0x61a8', gasPrice: '0x5d21dba00', gasUsed: '0x5208', logs: [], logsBloom: '0x00000...', nonce: '0x0', senderTxHash: '0xdb63fb385e51fbfd84a98873c994aef622c5f1c72c5760a9ff95c55bbfd99898', signatures: [ { V: '0x4e44', R: '0xf1a9a...', S: '0x9116c...' } ], status: '0x1', to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', transactionHash: '0xdb63fb385e51fbfd84a98873c994aef622c5f1c72c5760a9ff95c55bbfd99898', transactionIndex: '0x0', type: 'TxTypeValueTransfer', typeInt: 8, value: '0x8ac7230489e80000',}// After the Magma hard fork> caver.rpc.klay.getTransactionReceipt('0xf0554493c273352eac667eb30a1b70fffa8e8a0f682928b31baaceccc17c64b9').then(console.log){ blockHash: '0xaa358681023db9d967ff44577a34aea487c37433ebf6ef349baee50f9d1d2f03', blockNumber: '0x99', contractAddress: null, effectiveGasPrice: '0x5d21dba00', from: '0xca7a99380131e6c76cfa622396347107aeedca2d', gas: '0x61a8', gasPrice: '0xba43b7400', gasUsed: '0x5208', logs: [], logsBloom: '0x00000...', nonce: '0x2', senderTxHash: '0xf0554493c273352eac667eb30a1b70fffa8e8a0f682928b31baaceccc17c64b9', signatures: [ { V: '0x1cb4c6', R: '0x1605e...', S: '0x459cf...' } ], status: '0x1', to: '0x08ef5d2def29ff4384dd93a73e076d959abbd2f4', transactionHash: '0xf0554493c273352eac667eb30a1b70fffa8e8a0f682928b31baaceccc17c64b9', transactionIndex: '0x0', type: 'TxTypeValueTransfer', typeInt: 8, value: '0xde0b6b3a7640000'}
caver.rpc.klay.getTransactionReceiptBySenderTxHash
caver.rpc.klay.getTransactionReceiptBySenderTxHash(senderTxHash [, callback])
Returns the receipt of a transaction by sender transaction hash.
Please note that this API returns the correct result only if the indexing feature is enabled in the node by --sendertxhashindexing
. Use caver.rpc.klay.isSenderTxHashIndexingEnabled to check if the indexing feature is enabled or not.
NOTE Receipt is not available for pending
transactions whose transactions have not yet been processed.
Parameters
Name | Type | Description |
---|---|---|
senderTxHash | string | The sender transaction hash. See SenderTxHash for more detail. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
Type | Description |
---|---|
object | A transaction receipt object, see caver.rpc.klay.getTransactionReceipt for more detail. |
Example
> caver.rpc.klay.getTransactionReceiptBySenderTxHash('0xdb63fb385e51fbfd84a98873c994aef622c5f1c72c5760a9ff95c55bbfd99898').then(console.log){ blockHash: '0xc9f643c0ebe84932c10695cbc9eb75228af09516931b58952de3e12c21a50576', blockNumber: '0xb7', contractAddress: null, effectiveGasPrice: '0x5d21dba00', from: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', gas: '0x61a8', gasPrice: '0x5d21dba00', gasUsed: '0x5208', logs: [], logsBloom: '0x00000...', nonce: '0x0', senderTxHash: '0xdb63fb385e51fbfd84a98873c994aef622c5f1c72c5760a9ff95c55bbfd99898', signatures: [ { V: '0x4e44', R: '0xf1a9a...', S: '0x9116c...' } ], status: '0x1', to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', transactionHash: '0xdb63fb385e51fbfd84a98873c994aef622c5f1c72c5760a9ff95c55bbfd99898', transactionIndex: '0x0', type: 'TxTypeValueTransfer', typeInt: 8, value: '0x8ac7230489e80000',}
caver.rpc.klay.sendRawTransaction
caver.rpc.klay.sendRawTransaction(signedTransaction [, callback])
Sends a signed transaction
to the kaia.
The signedTransaction
parameter can be a "RLP-encoded signed transaction." You can get the RLP-encoded transaction of a signed transaction using transaction.getRLPEncoding
. For convenience, caver.rpc.klay.sendRawTransaction
also accepts a "signed transaction instance" as parameter.
Parameters
Name | Type | Description |
---|---|---|
signedTransaction | string \ | A RLP-encoded signed transaction or an instance of signed transaction. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Type | Description |
---|---|
PromiEvent | A promise combined event emitter. It will be resolved when a transaction receipt is available. |
For PromiEvent, the following events are available:
transactionHash
returnsstring
: Is fired right after a transaction is sent and a transaction hash is available.receipt
returnsobject
: Is fired when a transaction receipt is available. See caver.rpc.klay.getTransactionReceipt for more detail.error
returnsError
: Is fired if an error occurs during sending. On an out-of-gas error, the second parameter is the receipt.
Example
// Using promise> caver.rpc.klay.sendRawTransaction('0x08f88...').then(console.log){ blockHash: '0x8bff3eb5444711f53707c1c006dac54164af6f873c0f012aff98479155de3c46', blockNumber: '0x18a6', contractAddress: null, from: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', gas: '0x61a8', gasPrice: '0x5d21dba00', gasUsed: '0x5208', logs: [], logsBloom: '0x00000...', nonce: '0xc', senderTxHash: '0x72ea9179350cf2943e966eaf1e1e651d4e1b50ead4b6e6a574a4297c9f0f7017', signatures: [ { V: '0x4e43', R: '0x3bee4...', S: '0x101a1...' } ], status: '0x1', to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', transactionHash: '0x72ea9179350cf2943e966eaf1e1e651d4e1b50ead4b6e6a574a4297c9f0f7017', transactionIndex: '0x0', type: 'TxTypeValueTransfer', typeInt: 8, value: '0x8ac7230489e80000',}// Using event emitter> caver.rpc.klay.sendRawTransaction('0x08f88...').on('transactionHash', h => {...}).on('receipt', r => {...}).on('error', console.error)
caver.rpc.klay.sendTransaction
caver.rpc.klay.sendTransaction(transaction [, callback])
Signs a transaction as a transaction sender
with an "imported account's private key" in your kaia Node and propagates the transaction to the kaia.
For more information about each transaction type, refer to Transaction.
NOTE: This API provides the function to sign a transaction using an imported account in your kaia node. The imported account in your node must be unlocked to sign a transaction.
Parameters
Name | Type | Description |
---|---|---|
transaction | object | An instance of a transaction to be sent to the kaia. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Type | Description |
---|---|
PromiEvent | A promise combined event emitter. It will be resolved when a transaction receipt is available. |
For PromiEvent, the following events are available:
transactionHash
returnsstring
: Is fired right after a transaction is sent and a transaction hash is available.receipt
returnsobject
: Is fired when a transaction receipt is available. See caver.rpc.klay.getTransactionReceipt for more detail.error
returnsError
: Is fired if an error occurs during sending. On an out-of-gas error, the second parameter is the receipt.
Example
> const tx = caver.transaction.valueTransfer.create({ from: '0x{address in hex}', // The address of imported account in kaia Node to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', value: caver.utils.convertToPeb(10, 'KLAY'), gas: 25000})// Using promise> caver.rpc.klay.sendTransaction(tx).then(console.log){ blockHash: '0xbfce3abcad0204e363ee9e3b94d15a20c1a4b86ac6cf51dd74db2226ab5b9e99', blockNumber: '0x1d18', contractAddress: null, from: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', gas: '0x61a8', gasPrice: '0x5d21dba00', gasUsed: '0x5208', logs: [], logsBloom: '0x00000...', nonce: '0x13', senderTxHash: '0x2c001a776290ac55ac53a82a70a0b71e07c985fe57fd9d8e422b919d4317002e', signatures: [ { V: '0x4e43', R: '0xeac91...', S: '0xa0aa4...' } ], status: '0x1', to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', transactionHash: '0x2c001a776290ac55ac53a82a70a0b71e07c985fe57fd9d8e422b919d4317002e', transactionIndex: '0x0', type: 'TxTypeValueTransfer', typeInt: 8, value: '0x8ac7230489e80000',}// Using event emitter> caver.rpc.klay.sendTransaction(tx).on('transactionHash', h => {...}).on('receipt', r => {...}).on('error', console.error)
caver.rpc.klay.sendTransactionAsFeePayer
caver.rpc.klay.sendTransactionAsFeePayer(transaction [, callback])
Signs a fee delegated transaction as a transaction fee payer
with an imported account's private key
in your kaia Node and propagates the transaction to the kaia.
Before using sendTransaction
as a fee payer, the transaction sender must have signed with valid signature(s) and the nonce
must have been defined.
For more information about each transaction type, refer to Transaction.
NOTE: This API provides the function to sign a transaction using an imported account in your kaia node. The imported account in your node must be unlocked to sign a transaction.
Parameters
Name | Type | Description |
---|---|---|
transaction | object | An instance of fee delegated transaction to send to the kaia. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Type | Description |
---|---|
PromiEvent | A promise combined event emitter. It will be resolved when a transaction receipt is available. |
For PromiEvent, the following events are available:
transactionHash
returnsstring
: Is fired right after a transaction is sent and a transaction hash is available.receipt
returnsobject
: Is fired when a transaction receipt is available. See caver.rpc.klay.getTransactionReceipt for more detail.error
returnsError
: Is fired if an error occurs during sending. On an out-of-gas error, the second parameter is the receipt.
Example
> const tx = caver.transaction.feeDelegatedValueTransfer.create({ from: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', value: caver.utils.toPeb(1, 'KLAY'), gas: 50000, nonce: 1, signatures: [ [ '0x4e43', '0x873e9db6d055596a8f79a6a2761bfb464cbc1b352ac1ce53770fc23bb16d929c', '0x15d206781cc8ac9ffb02c08545cb832e1f1700b46b886d72bb0cfeb4a230871e', ], ], feePayer: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', // The address of imported account in kaia Node})// Using promise> caver.rpc.klay.signTransaction(tx).then(console.log){ blockHash: '0x3be2f5b17eb35d0cf83b493ddfaa96d44cba40d1839778b4a8267f4c0aa61449', blockNumber: '0x23ef', contractAddress: null, feePayer: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', feePayerSignatures: [ { V: '0x4e43', R: '0x7a9ec...', S: '0x22be3...' } ], from: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', gas: '0xc350', gasPrice: '0x5d21dba00', gasUsed: '0x7918', logs: [], logsBloom: '0x00000...', nonce: '0x1', senderTxHash: '0x71ca2e169a9c6c7b5bfdfa68e584314978f2abef955f8a2666325b860e2c9df5', signatures: [ { V: '0x4e43', R: '0x873e9...', S: '0x15d20...' } ], status: '0x1', to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', transactionHash: '0x04fa82ce10168e05db04a235f025e5b8bc004ab36710798a512fab75a95bfc52', transactionIndex: '0x0', type: 'TxTypeFeeDelegatedValueTransfer', typeInt: 9, value: '0xde0b6b3a7640000',}// Using event emitter> caver.rpc.klay.sendTransactionAsFeePayer(tx).on('transactionHash', h => {...}).on('receipt', r => {...}).on('error', console.error)
caver.rpc.klay.signTransaction
caver.rpc.klay.signTransaction(transaction [, callback])
Signs a transaction as a transaction sender with an "imported account's private key" in your kaia Node.
For more information about each transaction type, refer to Transaction.
NOTE: This API provides the function to sign a transaction using an imported account in your kaia node. The imported account in your node must be unlocked to sign a transaction.
Parameters
Name | Type | Description |
---|---|---|
transaction | object | An instance of a transaction to sign. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
- An object includes signed transaction:
Name | Type | Description |
---|---|---|
raw | string | A RLP-encoded signed transaction. |
tx | object | The transaction object including the sender's signature. |
Example
> const tx = caver.transaction.valueTransfer.create({ from: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', // The address of imported account in kaia Node to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', value: caver.utils.toPeb(10, 'KLAY'), gas: 25000})> caver.rpc.klay.signTransaction(tx).then(console.log){ raw: '0x08f88...', tx: { typeInt: 8, type: 'TxTypeValueTransfer', nonce: '0x16', gasPrice: '0x5d21dba00', gas: '0x61a8', to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', value: '0x8ac7230489e80000', from: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e', signatures: [ { V: '0x4e43', R: '0x52d64...', S: '0x1371e...' } ], hash: '0xe816952761caccf86ab281a00e10a36da6579c425041906a235f10959b2960b1' }}
caver.rpc.klay.signTransactionAsFeePayer
caver.rpc.klay.signTransactionAsFeePayer(transaction [, callback])
Signs a transaction as a transaction fee payer with an "imported account's private key" in your kaia Node.
For more information about each transaction type, refer to Transaction.
NOTE: This API provides the function to sign a transaction using an imported account in your kaia node. The imported account in your node must be unlocked to sign a transaction.
Parameters
Name | Type | Description |
---|---|---|
transaction | object | An instance of a transaction to sign. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
- An object includes signed transaction:
Name | Type | Description |
---|---|---|
raw | string | A RLP-encoded signed transaction. |
tx | object | The transaction object to sign as fee payer. |
Example
> const tx = caver.transaction.feeDelegatedValueTransfer.craete({ from: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', value: caver.utils.toPeb(1, 'KLAY'), gas: 50000, nonce: 0, signatures: [ [ '0x4e43', '0xe87291c7311534c3e451c6f6b8cafdf7454970f98504e9af6cfdeb29757ba458', '0x26dcf6f3702110230b806628165e28771e1152ea864ee4c69557faccd4d3dae8', ], ], feePayer: '0xe8b3a6ef12f9506e1df9fd445f9bb4488a482122', // The address of imported account in kaia Node})> caver.rpc.klay.signTransactionAsFeePayer(tx).then(console.log){ raw: '0x09f8e...', tx: { typeInt: 9, type: 'TxTypeFeeDelegatedValueTransfer', nonce: '0x0', gasPrice: '0x5d21dba00', gas: '0xc350', to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', value: '0xde0b6b3a7640000', from: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc', signatures: [ { V: '0x4e43', R: '0xe8729...', S: '0x26dcf...' } ], feePayer: '0xe8b3a6ef12f9506e1df9fd445f9bb4488a482122', feePayerSignatures: [ { V: '0x4e43', R: '0x5cce8...', S: '0x32907...' } ], hash: '0xdb89281f3a44a2370d73b389bbcfb9a597f558219145cf269a0b1480f8e778cc', },}
caver.rpc.klay.getDecodedAnchoringTransactionByHash
caver.rpc.klay.getDecodedAnchoringTransactionByHash(transactionHash [, callback])
Returns the decoded anchored data in the transaction for the given transaction hash.
Parameters
Name | Type | Description |
---|---|---|
transactionHash | string | A transaction hash. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns object
- An object includes decoded anchored data:
Name | Type | Description |
---|---|---|
BlockHash | string | Hash of the child chain block that this anchoring transaction was performed. |
BlockNumber | number | The child chain block number that this anchoring transaction was performed. |
ParentHash | string | Hash of the parent block. |
TxHash | string | The root of the transaction trie of the block. |
StateRootHash | string | The root of the final state trie of the block. |
ReceiptHash | string | The root of the receipts trie of the block. |
BlockCount | number | The number of blocks generated during this anchoring period. In most cases, this number is equal to the child chain's SC_TX_PERIOD , except the case that this transaction was the first anchoring tx after turning on the anchoring. |
TxCount | number | The number of transactions generated in the child chain during this anchoring period. |
Example
> caver.rpc.klay.getDecodedAnchoringTransactionByHash('0x59831a092a9f0b48018848f5dd88a457efdbfabec13ea07cd769686741a1cd13').then(console.log){ BlockCount: 86400, BlockHash: '0x3c44b2ed491be7264b9f6819c67427642447716576b6702a72f6fdc40c41abde', BlockNumber: 23414400, ParentHash: '0x735468bb091a296c45553c8f67a8d0d39ac428cbe692b1b6c494d336351477f3', ReceiptHash: '0x6a908d319b6f6ab4414da1afd6763d70ecc8037ec167aa8a942bc0c2af12b4ab', StateRootHash: '0x4a664227fb2508a2952a4695cabb88b433522af2a5dee50cc6dd4036d85bf1d3', TxCount: 50895, TxHash: '0x753a85d2c53fc34cb9108301f1cf8ff8d78dde13d42d80958e47e388008319cd',}
caver.rpc.klay.getChainId
caver.rpc.klay.getChainId([callback])
Returns the chain ID of the chain.
Parameters
Name | Type | Description |
---|---|---|
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The chain ID of the chain. |
Example
> caver.rpc.klay.getChainId().then(console.log)0x2710
caver.rpc.klay.getClientVersion
caver.rpc.klay.getClientVersion([callback])
Returns the current client version of a kaia node.
Parameters
Name | Type | Description |
---|---|---|
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The current client version of a kaia node. |
Example
> caver.rpc.klay.getClientVersion().then(console.log)kaia/v1.3.0+144494d2aa/linux-amd64/go1.13.1
caver.rpc.klay.getGasPrice
caver.rpc.klay.getGasPrice([callback])
Returns the current price per gas in peb.
Parameters
Name | Type | Description |
---|---|---|
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The current gas price in peb. |
Example
> caver.rpc.klay.getGasPrice().then(console.log)0x5d21dba00
caver.rpc.klay.getGasPriceAt
caver.rpc.klay.getGasPriceAt([blockNumber] [, callback])
Returns the current price per gas in peb for the given block.
Parameters
Name | Type | Description |
---|---|---|
blockNumber | number | (optional) The block number. If omitted, the latest unit price will be returned. |
callback | function | (optional) Optional callback, returns an error object as the first parameter and the result as the second. |
Return Value
Promise
returns string
Type | Description |
---|---|
string | The current gas price in peb. |
Example
> caver.rpc.klay.getGasPriceAt().then(console.log)0x5d21dba00