Nhảy tới nội dung
This page uses machine translation from English, which may contain errors or unclear language. For the most accurate information, please see the original English version. Some content may be in the original English due to frequent updates. Help us improve this page's translation by joining our effort on Crowdin. (Crowdin translation page, Contributing guide)

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

NameTypeDescription
addressstringThe address of the account you want to query to see if it has been created on the network.
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns boolean

TypeDescription
booleanThe 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

NameTypeDescription
addressstringThe address of the account for which you want to get account information.
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

TypeDescription
objectAn 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

NameTypeDescription
addressstringThe address of kaia account from which you want to get an object of AccountKey information.
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

TypeDescription
objectAn 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

NameTypeDescription
accountKeyobjectAn object defines keyType and key inside or an instance of AccountKey (AccountKeyLegacy, AccountKeyPublic, AccountKeyFail, AccountKeyWeightedMultiSig or AccountKeyRoleBased).
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringA 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

NameTypeDescription
encodedKeystringA RLP-encoded AccountKey.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

TypeDescription
objectAn 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

NameTypeDescription
addressstringThe address of the account for which you want to get balance.
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe 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

NameTypeDescription
addressstringThe address to get the code from.
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe 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

NameTypeDescription
addressstringThe address to get the number of transactions from.
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe 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

NameTypeDescription
addressstringThe address you want to check for isContractAccount.
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns boolean

TypeDescription
booleantrue 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

NameTypeDescription
addressStringThe address of the imported account to sign the message.
messageStringMessage to sign.
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe 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

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns Array

TypeDescription
ArrayAn 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

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe 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

NameTypeDescription
blockNumberOrHashnumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

TypeDescription
objectA 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

NameTypeDescription
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

TypeDescription
objectA 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

NameTypeDescription
blockHashstringThe block hash.
callbackfunction(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:

NameTypeDescription
baseFeePerGasstringThe base fee per gas. This value is returned only when EthTxTypeCompatibleBlock is activated for that block number.
blockScorestringThe 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.
extraDatastringThe "extra data" field of this block.
gasUsedstringThe gas in total that was used by all transactions in this block.
governanceDatastringRLP encoded governance configuration
hashstringHash of the block. null when it is a pending block.
logsBloomstringThe bloom filter for the logs of the block. null when it is a pending block.
numberstringThe block number. null when it is a pending block.
parentHashstringHash of the parent block.
receiptsRootstringThe root of the receipts trie of the block.
rewardstringThe address of the beneficiary to whom the block rewards were given.
stateRootstringThe root of the final state trie of the block.
timestampstringThe unix timestamp for when the block was collated.
timestampFoSstringThe fraction of a second of the timestamp for when the block was collated.
transactionsRootstringThe 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

NameTypeDescription
blockNumberOrHashnumber \string
returnTransactionObjectsboolean(optional, default false) If true, the returned block will contain all transactions as objects, and if false, it will only contain the transaction hashes.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

TypeDescription
objectA 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

NameTypeDescription
blockNumbernumber \string
returnTransactionObjectsboolean(optional, default false) If true, the returned block will contain all transactions as objects, and if false, it will only contain the transaction hashes.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

TypeDescription
objectA 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

NameTypeDescription
blockHashstringThe block hash.
returnTransactionObjectsboolean(optional, default false) If true, the returned block will contain all transactions as objects, and if false, it will only contain the transaction hashes.
callbackfunction(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:

NameTypeDescription
baseFeePerGasstringThe base fee per gas. This value is returned only when EthTxTypeCompatibleBlock is activated for that block number.
blockScorestringThe 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.
extraDatastringThe "extra data" field of this block.
gasUsedstringThe gas in total that was used by all transactions in this block.
governanceDatastringRLP encoded governance configuration
hashstringHash of the block. null when it is a pending block.
logsBloomstringThe bloom filter for the logs of the block. null when it is a pending block.
numberstringThe block number. null when it is a pending block.
parentHashstringHash of the parent block.
receiptsRootstringThe root of the receipts trie of the block.
rewardstringThe address of the beneficiary to whom the block rewards were given.
sizestringInteger the size of this block in bytes.
stateRootstringThe root of the final state trie of the block.
timestampstringThe unix timestamp for when the block was collated.
timestampFoSstringThe fraction of a second of the timestamp for when the block was collated.
totalBlockScorestringInteger of the total blockScore of the chain until this block.
transactionsArrayArray of transaction objects, or 32-byte transaction hashes depending on the returnTransactionObjects parameter.
transactionsRootstringThe root of the transaction trie of the block.
voteDatastringRLP 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

NameTypeDescription
blockHashstringThe block hash.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns Array

TypeDescription
ArrayThe 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

NameTypeDescription
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe 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

NameTypeDescription
blockHashstringThe block hash.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe 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

NameTypeDescription
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

TypeDescription
stringAn 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

NameTypeDescription
blockHashstringThe block hash.
callbackfunction(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:

NameTypeDescription
blockScorestringFormer difficulty. Always 1 in the BFT consensus engine
committeeArrayArray of addresses of committee members of this block. The committee is a subset of validators who participated in the consensus protocol for this block.
extraDatastringThe "extra data" field of this block.
gasUsedstringThe gas in total that was used by all transactions in this block.
governanceDatastringRLP encoded governance configuration
hashstringHash of the block. null when it is a pending block.
logsBloomstringThe bloom filter for the logs of the block. null when it is a pending block.
numberstringThe block number. null when it is a pending block.
originProposerstringThe proposal of 0 round at the same block number.
parentHashstringHash of the parent block.
proposerstringThe address of the block proposer.
receiptsRootstringThe root of the receipts trie of the block.
rewardstringThe address of the beneficiary to whom the block rewards were given.
roundnumberThe round number.
sizestringInteger the size of this block in bytes.
stateRootstringThe root of the final state trie of the block.
timestampstringThe unix timestamp for when the block was collated.
timestampFoSstringThe fraction of a second of the timestamp for when the block was collated.
totalBlockScorestringInteger of the total blockScore of the chain until this block.
transactionsArrayArray of transaction objects.
transactionsRootstringThe root of the transaction trie of the block.
voteDatastringRLP 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

NameTypeDescription
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns Array

TypeDescription
ArrayAddresses 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

NameTypeDescription
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns number

TypeDescription
numberThe 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

NameTypeDescription
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns Array

TypeDescription
ArrayAn 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

NameTypeDescription
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns number

TypeDescription
numberThe 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

NameTypeDescription
addressstringThe address to get the storage from.
positionnumberThe index position of the storage. For more information on calculating the position, refer to klay_getStorageAt.
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe 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

NameTypeDescription
callbackfunction(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

NameTypeDescription
callbackfunction(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:

NameTypeDescription
startingBlockstringThe block number in hex where the sync started.
currentBlockstringThe block number in hex where the node currently synced to.
highestBlockstringThe estimated block number in hex to sync to.
knownStatesstringThe estimated states in hex to download.
pulledStatesstringThe 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

NameTypeDescription
callObjectobjectA transaction call object. See the next table for the object's properties.
blockNumbernumber \string
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

callObject has the following properties:

NameTypeDescription
tostring(optional when testing the deployment of a new contract) The address the transaction is directed to.
inputstring(optional) The hash of the method signature and encoded parameters. You can use caver.abi.encodeFunctionCall.
fromstring(optional) The address the transaction is sent from.
gasstring(optional) The gas provided for the transaction execution. klay_call consumes zero gas, but this parameter may be needed by some executions.
gasPricestring(optional) The gasPrice used for each paid gas.
valuestring(optional) The value sent with this transaction in peb.

Return Value

Promise returns string

TypeDescription
stringThe 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

TypeDescription
stringThe 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

TypeDescription
stringThe 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

NameTypeDescription
blockHashstringThe block hash.
indexnumberA transaction index position inside the block.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

TypeDescription
objectA 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

NameTypeDescription
blockNumbernumber \string
indexnumberA transaction index position inside the block.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

TypeDescription
objectA 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

NameTypeDescription
transactionHashstringA transaction hash.
callbackfunction(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:

NameTypeDescription
blockHashstringHash of the block where this transaction was in.
blockNumberstringBlock number where this transaction was in.
codeFormatstring(optional) The code format of smart contract code.
feePayerstring(optional) Address of the fee payer.
feePayerSignaturesArray(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.
feeRatiostring(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.
fromstringAddress of the sender.
gasstringGas provided by the sender.
gasPricestringGas price provided by the sender in peb.
hashstringHash of the transaction.
humanReadableBoolean(optional) true if the address is humanReadable, false if the address is not humanReadable.
keystring(optional) The RLP-encoded AccountKey used to update AccountKey of an kaia account. See AccountKey for more details.
inputstring(optional) The data sent along with the transaction.
noncestringThe number of transactions made by the sender prior to this one.
senderTxHashstring(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.
signaturesArrayAn 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.
tostringAddress of the receiver. null when it is a contract deploying transaction.
transactionIndexstringInteger of the transaction index position in the block.
typestringA string representing the type of the transaction.
typeIntnumberAn integer representing the type of the transaction.
valuestringValue 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

NameTypeDescription
senderTxHashstringThe sender transaction hash. See SenderTxHash for more detail.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

TypeDescription
objectA 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

NameTypeDescription
transactionHashstringA transaction hash.
callbackfunction(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:

NameTypeDescription
blockHashstringHash of the block where this transaction was in.
blockNumberstringBlock number where this transaction was in.
codeFormatstring(optional) The code format of smart contract code.
contractAddressstringThe contract address created, if the transaction was a contract creation, otherwise null.
effectiveGasPricestringThe 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.
feePayerstring(optional) Address of the fee payer.
feePayerSignaturesArray(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.
feeRatiostring(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.
fromstringAddress of the sender.
gasstringGas provided by the sender.
gasPricestringGas price provided by the sender in peb.
gasUsedstringThe amount of gas used by this specific transaction alone.
humanReadableBoolean(optional) true if the address is humanReadable, false if the address is not humanReadable.
keystring(optional) The RLP-encoded AccountKey used to update AccountKey of a kaia account.
inputstring(optional) The data sent along with the transaction.
logsArrayArray of log objects, which this transaction generated.
logsBloomstringBloom filter for light clients to quickly retrieve related logs.
noncestringThe number of transactions made by the sender prior to this one.
senderTxHashstring(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.
signaturesArrayAn 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.
statusstring0x1 if the transaction was successful, 0x0 if the kaia Virtual Machine reverted the transaction.
txErrorstring(optional) detailed error code if status is equal to 0x0.
tostringAddress of the receiver. null when it is a contract creation transaction.
transactionHashstringHash of the transaction.
transactionIndexstringInteger of the transaction index position in the block.
typestringA string representing the type of the transaction.
typeIntnumberAn integer representing the type of the transaction.
valuestringValue 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

NameTypeDescription
senderTxHashstringThe sender transaction hash. See SenderTxHash for more detail.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

TypeDescription
objectA 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

NameTypeDescription
signedTransactionstring \object
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

TypeDescription
PromiEventA promise combined event emitter. It will be resolved when a transaction receipt is available.

For PromiEvent, the following events are available:

  • transactionHash returns string: Is fired right after a transaction is sent and a transaction hash is available.
  • receipt returns object: Is fired when a transaction receipt is available. See caver.rpc.klay.getTransactionReceipt for more detail.
  • error returns Error: 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

NameTypeDescription
transactionobjectAn instance of a transaction to be sent to the kaia.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

TypeDescription
PromiEventA promise combined event emitter. It will be resolved when a transaction receipt is available.

For PromiEvent, the following events are available:

  • transactionHash returns string: Is fired right after a transaction is sent and a transaction hash is available.
  • receipt returns object: Is fired when a transaction receipt is available. See caver.rpc.klay.getTransactionReceipt for more detail.
  • error returns Error: 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

NameTypeDescription
transactionobjectAn instance of fee delegated transaction to send to the kaia.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

TypeDescription
PromiEventA promise combined event emitter. It will be resolved when a transaction receipt is available.

For PromiEvent, the following events are available:

  • transactionHash returns string: Is fired right after a transaction is sent and a transaction hash is available.
  • receipt returns object: Is fired when a transaction receipt is available. See caver.rpc.klay.getTransactionReceipt for more detail.
  • error returns Error: 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

NameTypeDescription
transactionobjectAn instance of a transaction to sign.
callbackfunction(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:

NameTypeDescription
rawstringA RLP-encoded signed transaction.
txobjectThe 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

NameTypeDescription
transactionobjectAn instance of a transaction to sign.
callbackfunction(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:

NameTypeDescription
rawstringA RLP-encoded signed transaction.
txobjectThe 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

NameTypeDescription
transactionHashstringA transaction hash.
callbackfunction(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:

NameTypeDescription
BlockHashstringHash of the child chain block that this anchoring transaction was performed.
BlockNumbernumberThe child chain block number that this anchoring transaction was performed.
ParentHashstringHash of the parent block.
TxHashstringThe root of the transaction trie of the block.
StateRootHashstringThe root of the final state trie of the block.
ReceiptHashstringThe root of the receipts trie of the block.
BlockCountnumberThe 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.
TxCountnumberThe 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

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe 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

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe 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

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe 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

NameTypeDescription
blockNumbernumber(optional) The block number. If omitted, the latest unit price will be returned.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe current gas price in peb.

Example


> caver.rpc.klay.getGasPriceAt().then(console.log)
0x5d21dba00

caver.rpc.klay.getMaxPriorityFeePerGas


caver.rpc.klay.getMaxPriorityFeePerGas([callback])

Returns a suggested gas tip cap for dynamic fee transactions in peb. Since kaia has a fixed gas price, this returns the gas price set by kaia.

Parameters

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe suggested gas tip cap in peb.

Example


> caver.rpc.klay.getMaxPriorityFeePerGas().then(console.log)
0x5d21dba00

caver.rpc.klay.getLowerBoundGasPrice


caver.rpc.klay.getLowerBoundGasPrice([callback])

Returns the lower bound gas price in peb.

Parameters

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe lower bound gas price in peb.

Example


> caver.rpc.klay.getLowerBoundGasPrice().then(console.log)
0x5d21dba00

caver.rpc.klay.getUpperBoundGasPrice


caver.rpc.klay.getUpperBoundGasPrice([callback])

Returns the upper bound gas price in peb.

Parameters

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe upper bound gas price in peb.

Example


> caver.rpc.klay.getUpperBoundGasPrice().then(console.log)
0xae9f7bcc00

caver.rpc.klay.getFeeHistory


caver.rpc.klay.getFeeHistory(blockCount, lastBlock, rewardPercentiles [, callback])

Returns fee history for the returned block range. This can be a subsection of the requested range if not all blocks are available.

Parameters

NameTypeDescription
blockCountnumber\BigNumber\
lastBlocknumber\BigNumber\
rewardPercentilesArrayA monotonically increasing list of percentile values to sample from each block’s effective priority fees per gas in ascending order, weighted by gas used. (Example: ['0', '25', '50', '75', '100'] or ['0', '0.5', '1', '1.5', '3', '80'])
callbackfunction(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 fee history:

NameTypeDescription
oldestBlockstringLowest number block of returned range.
rewardArrayA two-dimensional array of effective priority fees per gas at the requested block percentiles.
baseFeePerGasArrayAn array of block base fees per gas. This includes the next block after the newest of the returned range, because this value can be derived from the newest block. Zeroes are returned for pre-EIP-1559 blocks.
gasUsedRatioArrayAn array of gasUsed/gasLimit in the block.

Example


> caver.rpc.klay.getFeeHistory(3, 'latest', [0.1, 0.2, 0.3]).then(console.log)
{
oldestBlock: '0xbb701',
reward: [
[ '0x0', '0x0', '0x0' ],
[ '0x5d21dba00', '0x5d21dba00', '0x5d21dba00' ],
[ '0x0', '0x0', '0x0' ]
],
baseFeePerGas: [ '0x0', '0x0', '0x0', '0x0' ],
gasUsedRatio: [ 0, 2.1000000000021e-8, 0 ]
}

caver.rpc.klay.createAccessList


caver.rpc.klay.createAccessList(txCallObject [, callback])

This method creates an accessList based on a given Transaction. The accessList contains all storage slots and addresses read and written by the transaction, except for the sender account and the precompiles. This method uses the same transaction call object and blockNumberOrTag object as caver.rpc.klay.call. An accessList can be used to release stuck contracts that became inaccessible due to gas cost increases. Adding an accessList to your transaction does not necessary result in lower gas usage compared to a transaction without an access list.

Parameters

NameTypeDescription
callObjectobjectA transaction call object. Please see caver.rpc.klay.call parameters.
blockParameternumber\BigNumber\
callbackfunction(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 an access list:

NameTypeDescription
oldestBlockstringLowest number block of returned range.
rewardArrayA two-dimensional array of effective priority fees per gas at the requested block percentiles.
baseFeePerGasArrayAn array of block base fees per gas. This includes the next block after the newest of the returned range, because this value can be derived from the newest block. Zeroes are returned for pre-EIP-1559 blocks.
gasUsedRatioArrayAn array of gasUsed/gasLimit in the block.

Example


> caver.rpc.klay.createAccessList({
from: '0x3bc5885c2941c5cda454bdb4a8c88aa7f248e312',
data: '0x20965255',
gasPrice: '0x3b9aca00',
gas: '0x3d0900',
to: '0x00f5f5f3a25f142fafd0af24a754fafa340f32c7'
}, 'latest').then(console.log)
{ accessList: [], gasUsed: '0x0' }

caver.rpc.klay.isParallelDBWrite


caver.rpc.klay.isParallelDBWrite([callback])

Returns true if the node is writing blockchain data in a parallel manner.

Parameters

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns boolean

TypeDescription
booleantrue means the node is writing blockchain data in a parallel manner. It is false if the node is serially writing the data.

Example


> caver.rpc.klay.isParallelDBWrite().then(console.log)
true

caver.rpc.klay.isSenderTxHashIndexingEnabled


caver.rpc.klay.isSenderTxHashIndexingEnabled([callback])

Returns true if the node is indexing sender transaction hash to transaction hash mapping information.

Parameters

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns boolean

TypeDescription
booleantrue means the node is indexing sender transaction hash to transaction hash mapping information.

Example


> caver.rpc.klay.isSenderTxHashIndexingEnabled().then(console.log)
true

caver.rpc.klay.getProtocolVersion


caver.rpc.klay.getProtocolVersion([callback])

Returns the kaia protocol version of the node. The current version (as of v1.9.0) of Cypress/Baobab is istanbul/65.

Parameters

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe kaia protocol version of the node.

Example


> caver.rpc.klay.getProtocolVersion().then(console.log)
0x40

caver.rpc.klay.getRewardbase


caver.rpc.klay.getRewardbase([callback])

Returns the rewardbase of the current node. Rewardbase is the address of the account where the block rewards go to. It is only required for CNs.

Parameters

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe rewardbase address.

Example


> caver.rpc.klay.getRewardbase().then(console.log)
0xa9b3a93b2a9fa3fdcc31addd240b04bf8db3414c

caver.rpc.klay.getFilterChanges


caver.rpc.klay.getFilterChanges(filterId [, callback])

Polling method for a filter, which returns an array of logs since the last poll.

Parameters

NameTypeDescription
filterIdStringThe filter id.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns Array - Array of log objects, or an empty array if nothing has changed since the last poll.

NameTypeDescription
logIndexstringThe log index position in the block.
transactionIndexstringThe index position of transactions where this log was created from.
transactionHashstringHash of the transactions this log was created from. null when pending.
blockHashstringHash of the block where this log was in. null when pending.
blockNumberstringThe block number where this log was in. null when pending.
addressstringAddress from which this log originated.
datastringContains the non-indexed arguments of the log.
topicsArrayArray of 0 to 4 32-byte DATA of indexed log arguments. (In Solidity: The first topic is the hash of the signature of the event (e.g., Deposit(address,bytes32,uint256)), except you declared the event with the anonymous specifier.).

Example


> caver.rpc.klay.getFilterChanges('0xafb8e49bbcba9d61a3c616a3a312533e').then(console.log)
[
{
address: '0x71e503935b7816757AA0314d4E7354dab9D39162',
topics: [ '0xe8451a9161f9159bc887328b634789768bd596360ef07c5a5cbfb927c44051f9' ],
data: '0x0000000000000000000000000000000000000000000000000000000000000001',
blockNumber: '0xdc5',
transactionHash: '0x1b28e2c723e45a0d8978890598903f36a74397c9cea8531dc9762c39483e417f',
transactionIndex: '0x0',
blockHash: '0xb7f0bdaba93d3baaa01a5c24517da443207f774e0202f02c298e8e997a540b3d',
logIndex: '0x0'
}
]

caver.rpc.klay.getFilterLogs


caver.rpc.klay.getFilterLogs(filterId [, callback])

Returns an array of all logs matching the filter with the given id. The filter object should be obtained by using newFilter.

Note that filter ids returned by other filter creation functions, such as caver.rpc.klay.newBlockFilter or caver.rpc.klay.newPendingTransactionFilter, cannot be used with this function.

Parameters

NameTypeDescription
filterIdstringThe filter id.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

See caver.rpc.klay.getFilterChanges

Example


> caver.rpc.klay.getFilterLogs('0xcac08a7fc32fc625a519644187e9f690').then(console.log);
[
{
address: '0x55384B52a9E5091B6012717197887dd3B5779Df3',
topics: [ '0xe8451a9161f9159bc887328b634789768bd596360ef07c5a5cbfb927c44051f9' ],
data: '0x0000000000000000000000000000000000000000000000000000000000000001',
blockNumber: '0x1c31',
transactionHash: '0xa7436c54e47dafbce696de65f6e890c96ac22c236f50ca1be28b9b568034c3b3',
transactionIndex: '0x0',
blockHash: '0xe4f27c524dacfaaccb36735deccee69b3d6c315e969779784c36bb8e14b89e01',
logIndex: '0x0'
}
]

caver.rpc.klay.getLogs


caver.rpc.klay.getLogs(options [, callback])

Returns an array of all logs matching a given filter object.

Parameters

NameTypeDescription
optionsobjectThe filter options. See the below table to find the description.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

The options object can contain the following:

NameTypeDescription
fromBlocknumber \string
toBlocknumber \string
addressstring \Array
topicsArray(optional) An array of values that must appear in the log entries. The order is important. If you want to leave topics out, use null, e.g., [null, '0x12...']. You can also pass an array for each topic with options for that topic, e.g., [null, ['option1', 'option2']].

Return Value

See caver.rpc.klay.getFilterChanges

Example


> caver.rpc.klay.getLogs({
fromBlock: '0x1',
toBlock: 'latest',
address:'0x87ac99835e67168d4f9a40580f8f5c33550ba88b'
}).then(console.log)
[
{
data: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',
topics: [
'0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7', '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385
]
logIndex: '0x0',
transactionIndex: '0x0',
transactionHash: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',
blockHash: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',
blockNumber: '0x4d2',
address: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
},
{...}
]

caver.rpc.klay.newBlockFilter


caver.rpc.klay.newBlockFilter([callback])

Creates a filter in the node, to notify when a new block arrives. To check if the state has changed, call caver.rpc.klay.getFilterChanges.

Parameters

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringA filter id.

Example


> caver.rpc.klay.newBlockFilter().then(console.log)
0xf90906914486a9c22d620e50022b38d5

caver.rpc.klay.newFilter


caver.rpc.klay.newFilter(options [, callback])

Creates a filter object using the given filter options, to receive the specific state changes (logs).

For detailed information about the topics in the filter object, please see Kaia Platform API - klay_newFilter.

Parameters

NameTypeDescription
optionsobjectThe filter options. See the below table to find the description.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

The options object can contain the following:

NameTypeDescription
fromBlocknumber \string
toBlocknumber \string
addressstring \Array
topicsArray(optional) An array of values that must appear in the log entries. The order is important. If you want to leave topics out, use null, e.g., [null, '0x12...']. You can also pass an array for each topic with options for that topic, e.g., [null, ['option1', 'option2']].

Return Value

Promise returns string

TypeDescription
stringA filter id.

Example


> caver.rpc.klay.newFilter({}).then(console.log)
0x40d40cb9758c6f0d99d9c2ce9c0f823
> caver.rpc.klay.newFilter({ address: '0x55384B52a9E5091B6012717197887dd3B5779Df3' }).then(console.log)
0xd165cbf31b9d60346aada33dbefe01b

caver.rpc.klay.newPendingTransactionFilter


caver.rpc.klay.newPendingTransactionFilter([callback])

Creates a filter in the node, to receive the information about new pending transaction arrival. To check if the state has changed, call caver.rpc.klay.getFilterChanges.

Parameters

NameTypeDescription
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringA filter id.

Example


> caver.rpc.klay.newPendingTransactionFilter().then(console.log)
0xe62da1b2a09efcd4168398bdbf586db0

caver.rpc.klay.uninstallFilter


caver.rpc.klay.uninstallFilter(filterId [, callback])

Uninstalls a filter with a given id. Should always be called when a watch is no longer needed. Additionally, filters time out when they are not being called with caver.rpc.klay.getFilterChanges for a period of time.

Parameters

NameTypeDescription
filterIdstringThe filter id.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns boolean

TypeDescription
booleantrue if the filter was successfully uninstalled, otherwise false.

Example


> caver.rpc.klay.uninstallFilter('0x1426438ffdae5abf43edf4159c5b013b').then(console.log)
true

caver.rpc.klay.sha3


caver.rpc.klay.sha3(data[, callback])

Returns Keccak-256 (not the standardized SHA3-256) of the given data. You can use caver.utils.sha3 instead of this.

Parameters

NameTypeDescription
dataStringThe data to be converted into a SHA3 hash.
callbackfunction(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

TypeDescription
stringThe SHA3 result of the given data.

Example


> caver.rpc.klay.sha3('0x11223344').then(console.log)
0x36712aa4d0dd2f64a9ae6ac09555133a157c74ddf7c079a70c33e8b4bf70dd73

Cải thiện trang này