Executes a new message call immediately without creating a transaction on the block chain. It returns data or an error object of JSON RPC if error occurs.
Supported on Klaytn (mainnet) only.
Parameters
Request
Name | Type | Description |
---|---|---|
callObject | Object | The transaction call object. See the next table for the object's properties. |
blockNumberOrHash | QUANTITY | TAG | HASH | Integer or hexadecimal block number, or the string "earliest" , "latest" or "pending" , or block hash. |
NOTE: In versions earlier than Klaytn v1.7.0, only integer block number, the string "earliest"
and "latest"
are available.
callObject
has the following properties:
Name | Type | Description |
---|---|---|
from | 20-byte DATA | (optional) The address the transaction is sent from. |
to | 20-byte DATA | (optional when testing the deployment of a new contract) The address the transaction is directed to. |
gas | QUANTITY | (optional) Integer of the gas provided for the transaction execution. klay_call consumes zero gas, but this parameter may be needed by some executions. |
gasPrice | QUANTITY | (optional) Integer of the gasPrice used for each paid gas. |
value | QUANTITY | (optional) Integer of the value sent with this transaction. |
input | DATA | (optional) Hash of the method signature and encoded parameters. It replaces data field, but 'data` field is still supported for backward compatibility. |
Result
Type | Description |
---|---|
DATA | The return value of executed contract. |
If you deployed a contract, use klay_getTransactionReceipt to get the contract address.
Error
It returns an error object of JSON RPC if anything goes wrong.
For example, an error object with a message "evm: execution reverted" will be generated if a message call is terminated with REVERT
opcode.
API Endpoint
The format of a Klaytn API endpoint is
https://open-platform.nodereal.io/{{apiKey}}/klaytn/
Here is an example:
https://open-platform.nodereal.io/4c0a1c23661a4e26bcbcwed461e34ea9/klaytn/
Example
// Request
curl https://open-platform.nodereal.io/{{apiKey}}/klaytn/ \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc": "2.0", "method": "klay_call", "params": [{"from": "0x3f71029af4e252b25b9ab999f77182f0cd3bc085", "to": "0x87ac99835e67168d4f9a40580f8f5c33550ba88b", "gas": "0x100000", "gasPrice": "0x5d21dba00", "value": "0x0", "input": "0x8ada066e"}, "latest"], "id": 1}'
// Result
{"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000000a"}