gen_call
Executes a new message call immediately without creating a transaction on the blockchain. This method supports read operations, write operations, and contract deployments.
Method: gen_call
Parameters:
request
(object, required): The contract call request parametersfrom
(string, required): The address making the callto
(string, required): The contract address to callData
(string, required): The encoded function call dataType
(string, required): The type of call ("read"
,"write"
, or"deploy"
)blockNumber
(string, optional): The block number to query at (hex-encoded). If not provided, uses latest blockstatus
(string, optional): The transaction status filter ("finalized"
or"accepted"
). If not provided, uses accepted statevalue
(string, optional): The value to send with the call (hex-encoded)
Returns: Hex-encoded result data
Example - Read Call (Latest Accepted State):
{
"jsonrpc": "2.0",
"method": "gen_call",
"params": [
{
"Type": "read",
"Data": "0xd8960e066d6574686f646c6765745f686176655f636f696e00",
"from": "0xf6A60752C24Cd3BFcAf8d387a5EB62d3746F44EE",
"to": "0xCe5712E63fd5475288aB1B7c0a368B9417357b81",
"gas": "0x5208",
"value": "0x0"
}
],
"id": 1
}
Example - Read Call with Specific Block and Status:
{
"jsonrpc": "2.0",
"method": "gen_call",
"params": [
{
"Type": "read",
"Data": "0xd8960e066d6574686f646c6765745f686176655f636f696e00",
"from": "0xf6A60752C24Cd3BFcAf8d387a5EB62d3746F44EE",
"to": "0xCe5712E63fd5475288aB1B7c0a368B9417357b81",
"blockNumber": "0x151ec5",
"status": "accepted"
}
],
"id": 1
}
Example - Write Call:
{
"jsonrpc": "2.0",
"method": "gen_call",
"params": [
{
"from": "0x742d35Cc6634C0532925a3b8D4C9db96c4b4d8b6",
"to": "0x742d35Cc6634C0532925a3b8D4C9db96c4b4d8b6",
"data": "0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b8d4c9db96c4b4d8b6",
"type": "write",
"gas": "0x5208",
"value":"0x0"
}
],
"id": 1
}
Notes:
- The
blockNumber
parameter can be either hex-encoded with a0x
prefix (e.g.,"0x151ec5"
) or decimal (e.g.,"1384133"
) - Valid
status
values are"accepted"
(default) and"finalized"
- When both parameters are omitted, the call executes against the latest accepted state
- For
read
andwrite
type calls, if the contract doesn't exist at the specified block/status combination, an error will be returned - For
deploy
type calls, thestatus
andblockNumber
parameters are not used for contract state validation since no contract exists yet