Miscellaneous

klay_sha3

Returns Keccak-256 (not the standardized SHA3-256) of the given data.

Parameters

NameTypeDescription

data

DATA

The data to convert into a SHA3 hash.

Return Value

TypeDescription

32-byte DATA

The SHA3 result of the given data.

Example

// Request
curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay_sha3","params":["0x11223344"],"id":1}' https://public-en-baobab.klaytn.net

// Result
{
  "jsonrpc":"2.0",
  "id":1,
  "result":"0x36712aa4d0dd2f64a9ae6ac09555133a157c74ddf7c079a70c33e8b4bf70dd73"
}

klay_recoverFromTransaction

Returns the recovered sender address from RLP encoded transaction bytes. If the sender address of the tx has composite accountKey type, it will return the sender address, not the addresses extracted from signatures. If the recovery failed, it returns 0x0 address.

Parameters

NameTypeDescription

data

DATA

RLP encoded transaction bytes

block number

QUANTITY | TAG

Integer or hexadecimal block number, or the string "earliest", "latest" or "pending" as in the default block parameter.

Return Value

TypeDescription

20-byte DATA

Recovered address.

Example

// Request
curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay_recoverFromTransaction","params":["0x08f88307850ba43b74008366926694000000000000000000000000000000000000dead843b9aca00945bd2fb3c21564c023a4a735935a2b7a238c4cceaf847f8458207f6a09c57511347c7b88c3539a6584b4d57991f6c4665ffcde89da0e9895eb078bef7a0296f4fd2a765567e034f4754cf31a9902c49d6a1d465a2e3fd10b165476cffa8", "latest"],"id":1}' https://public-en-baobab.klaytn.net

// Result
{
  "jsonrpc":"2.0",
  "id":1,
  "result":"0xe15cd70a41dfb05e7214004d7d054801b2a2f06b"
}

klay_recoverFromMessage

Returns signer address from message signature. It validates if the message is signed by the given account. Klaytn has several accountKey types. So if the address(account) argument has a composite accountKey like AccountKeyWeightedMultisig and the signature is generated by a member private key of the account, you will get the paired address with the member's private key, not account address. And you can be sure that the key used for signing the message is a member of the account. Additionally this function has an ability to validate a signature in the two kind of prefix when signing a message, "\x19Ethereum Signed Message:\n" and "\x19Klaytn Signed Message:\n"

Parameters

NameTypeDescription

address

string

The address of the signer account.

message

DATA

Message bytes

signature

65-byte DATA

Signature bytes

block number

QUANTITY | TAG

Integer or hexadecimal block number, or the string "earliest", "latest" or "pending" as in the default block parameter.

Return Value

TypeDescription

20-byte DATA

Recovered address.

Example

// Request
curl -H "Content-Type: application/json" --data '{
  "jsonrpc":"2.0",
  "method":"klay_recoverFromMessage"
  ,"params":[
"0xA2a8854b1802D8Cd5De631E690817c253d6a9153",
"0xdeadbeef", 
"0x1e6338d6e4a8d688a25de78cf2a92efec9a92e52eb8425acaaee8c3957e68cdb3f91bdc483f0ed05a0da26eca3be4c566d087d90dc2ca293be23b2a9de0bcafc1c", 
"latest"
], 
  "Id":1
}
' https://public-en-baobab.klaytn.net

// Result
{
  "jsonrpc":"2.0",
  "id":1,
  "result":"0xa2a8854b1802d8cd5de631e690817c253d6a9153"
}

klay_forkStatus

Returns the whole list of hardforks and their effectiveness at the given block.

Parameters

NameTypeDescription

block number

QUANTITY | TAG

Integer or hexadecimal block number, or the string "earliest", "latest" or "pending" as in the default block parameter.

Return Value

TypeDescription

JSON

List of forks and their effectiveness

Example

// Request
curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay_forkStatus","params":["latest"],"id":1}' https://public-en-baobab.klaytn.net

// Result
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "EthTxType": true,
    "Istanbul": true,
    "KIP103": false,
    "Kore": true,
    "London": true,
    "Magma": true,
    "Shanghai": false
  }
}

klay_createAccessList

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 klay_call. An accessList can be used to unstuck 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

callObject

Object

The transaction call object. Refer to klay_call for the object's properties.

blockNumberOrTag

QUANTITY | TAG

Integer or hexadecimal block number, or the string "earliest", "latest" or "pending" as in default block parameter. The block number is mandatory and defines the context (state) against which the specified transaction should be executed.

Return Value

TypeDescription

Object

Returns list of addresses and storage keys used by the transaction, plus the gas consumed when the access list is added.

Example

// Request
curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay_createAccessList", "params": [{"from": "0x8cd02c6cbd8375b39b06577f8d50c51d86e8d5cd", "data": "0x608060806080608155"}, "latest"], "id":1}' http://localhost:8551

// Result
{
  "jsonrpc": "2.0",
  "id":1,
  "result": {
    "accessList": [{
      "address": "0xa02457e5dfd32bda5fc7e1f1b008aa5979568150",
      "storageKeys": ["0x0000000000000000000000000000000000000000000000000000000000000081"]
    }],
    "gasUsed": "0x128ee"
  }
}

Last updated