Skip to content

Latest commit

 

History

History
624 lines (438 loc) · 19.8 KB

SUPPORTED_APIS.md

File metadata and controls

624 lines (438 loc) · 19.8 KB

🔧 Supported APIs for In-Memory Node 🔧

⚠️ WORK IN PROGRESS: This list is non-comprehensive and being updated

Supported APIs Table

Namespace API Status Description
CONFIG config_getShowCalls SUPPORTED Gets the current value of show_calls that's originally set with --show-calls option
CONFIG config_setShowCalls SUPPORTED Updates show_calls to print more detailed call traces
CONFIG config_setResolveHashes SUPPORTED Updates resolve-hashes to call OpenChain for human-readable ABI names in call traces
NETWORK net_version SUPPORTED Returns the current network id
NETWORK net_peerCount SUPPORTED Returns the number of peers currently connected to the client
NETWORK net_listening SUPPORTED Returns true if the client is actively listening for network connections
DEBUG debug_storageRangeAt NOT IMPLEMENTED Attempts to replay the transaction as it was executed on the network and return storage data
DEBUG debug_traceTransaction NOT IMPLEMENTED Attempt to run the transaction in the exact same manner as it was executed on the network
HARDHAT hardhat_addCompilationResult NOT IMPLEMENTED Add information about compiled contracts
HARDHAT hardhat_dropTransaction NOT IMPLEMENTED Remove a transaction from the mempool
HARDHAT hardhat_impersonateAccount NOT IMPLEMENTED Impersonate an account
HARDHAT hardhat_getAutomine NOT IMPLEMENTED Returns true if automatic mining is enabled, and false otherwise
HARDHAT hardhat_metadata NOT IMPLEMENTED Returns the metadata of the current hardhat network
HARDHAT hardhat_mine NOT IMPLEMENTED Can mine any number of blocks at once, in constant time
HARDHAT hardhat_reset NOT IMPLEMENTED Resets the state of the network
HARDHAT hardhat_setBalance NOT IMPLEMENTED Enables or disables automatic mining
HARDHAT hardhat_setCode NOT IMPLEMENTED Sets the bytecode of a given account
HARDHAT hardhat_setCoinbase NOT IMPLEMENTED Sets the coinbase address
HARDHAT hardhat_setLoggingEnabled NOT IMPLEMENTED Enables or disables logging
HARDHAT hardhat_setMinGasPrice NOT IMPLEMENTED Sets the minimum gas price
HARDHAT hardhat_setNextBlockBaseFeePerGas NOT IMPLEMENTED Sets the base fee per gas for the next block
HARDHAT hardhat_setPrevRandao NOT IMPLEMENTED Sets the RANDAO value of the next block
HARDHAT hardhat_setNonce NOT IMPLEMENTED Sets the nonce of a given account
HARDHAT hardhat_setStorageAt NOT IMPLEMENTED Sets the storage value at a given key for a given account
HARDHAT hardhat_stopImpersonatingAccount Stop impersonating an account after having previously used
EVM evm_addAccount NOT IMPLEMENTED Adds any arbitrary to the namespace
EVM evm_increaseTime NOT IMPLEMENTED Jump forward in time by the given amount of time
EVM evm_mine NOT IMPLEMENTED Force a single block to be mined
EVM evm_removeAccount NOT IMPLEMENTED Removes an account from the namespace
EVM evm_revert NOT IMPLEMENTED Revert the state of the blockchain to a previous snapshot
EVM evm_setAccountBalance NOT IMPLEMENTED Sets the given account's balance to the specified WEI value
EVM evm_setAccountCode NOT IMPLEMENTED Sets the given account's code to the specified data
EVM evm_setAccountNonce NOT IMPLEMENTED Sets the given account's nonce to the specified value
EVM evm_setAccountStorageAt NOT IMPLEMENTED Sets the given account's storage slot to the specified data
EVM evm_setTime NOT IMPLEMENTED Sets the internal clock time to the given timestamp
EVM evm_snapshot NOT IMPLEMENTED Snapshot the state of the blockchain at the current block
ETH eth_chainId SUPPORTED Returns the currently configured chain id
ETH eth_estimateGas SUPPORTED Generates and returns an estimate of how much gas is necessary for the transaction to complete
ETH eth_gasPrice SUPPORTED Returns the current price per gas in wei
ETH eth_getBalance SUPPORTED Returns the balance of the account of given address
ETH eth_getBlockByNumber PARTIALLY Returns information about a block by block number
ETH eth_getTransactionByHash SUPPORTED Returns the information about a transaction requested by transaction hash
ETH eth_getTransactionCount SUPPORTED Returns the number of transactions sent from an address
ETH eth_blockNumber SUPPORTED Returns the number of the most recent block
ETH eth_call SUPPORTED Executes a new message call immediately without creating a transaction on the block chain
ETH eth_sendRawTransaction SUPPORTED Creates new message call transaction or a contract creation for signed transactions
ETH eth_getBlockByHash NOT IMPLEMENTED Returns information about a block by block hash
ETH eth_accounts NOT IMPLEMENTED Returns a list of addresses owned by client
ETH eth_coinbase NOT IMPLEMENTED Returns the client coinbase address
ETH eth_feeHistory NOT IMPLEMENTED Returns a collection of historical block gas data
ETH eth_getBlockTransactionCountByHash NOT IMPLEMENTED Number of transactions in a block from a block matching the given block hash
ETH eth_getBlockTransactionCountByNumber NOT IMPLEMENTED Number of transactions in a block from a block matching the given block number
ETH eth_getCode NOT IMPLEMENTED Returns code at a given address
ETH eth_getCompilers NOT IMPLEMENTED Returns a list of available compilers
ETH eth_getFilterChanges NOT IMPLEMENTED Polling method for a filter, which returns an array of logs, block hashes, or transaction hashes, depending on the filter type, which occurred since last poll
ETH eth_getFilterLogs NOT IMPLEMENTED Returns an array of all logs matching filter with given id
ETH eth_getLogs NOT IMPLEMENTED Returns an array of all logs matching a given filter object
ETH eth_getProof NOT IMPLEMENTED Returns the details for the account at the specified address and block number, the account's Merkle proof, and the storage values for the specified storage keys with their Merkle-proofs
ETH eth_getStorageAt NOT IMPLEMENTED Returns the value from a storage position at a given address
ETH eth_getTransactionByBlockHashAndIndex NOT IMPLEMENTED Returns information about a transaction by block hash and transaction index position
ETH eth_getTransactionByBlockNumberAndIndex NOT IMPLEMENTED Returns information about a transaction by block number and transaction index position
ETH eth_getTransactionReceipt NOT IMPLEMENTED Returns the receipt of a transaction by transaction hash
ETH eth_getUncleByBlockHashAndIndex NOT IMPLEMENTED Returns information about a uncle of a block by hash and uncle index position
ETH eth_getUncleByBlockNumberAndIndex NOT IMPLEMENTED Returns information about a uncle of a block by hash and uncle index position
ETH eth_getUncleCountByBlockHash NOT IMPLEMENTED Returns the number of uncles in a block from a block matching the given block hash
ETH eth_getUncleCountByBlockNumber NOT IMPLEMENTED Returns the number of uncles in a block from a block matching the given block hash
ETH eth_getWork NOT IMPLEMENTED Returns: An Array with the following elements 1: DATA, 32 Bytes - current block header pow-hash 2: DATA, 32 Bytes - the seed hash used for the DAG. 3: DATA, 32 Bytes - the boundary condition ("target"), 2^256 / difficulty
ETH eth_hashrate NOT IMPLEMENTED Returns the number of hashes per second that the node is mining with
ETH eth_maxPriorityFeePerGas NOT IMPLEMENTED Returns a maxPriorityFeePerGas value suitable for quick transaction inclusion
ETH eth_mining NOT IMPLEMENTED Returns true if client is actively mining new blocks
ETH eth_newBlockFilter NOT IMPLEMENTED Creates a filter in the node, to notify when a new block arrives
ETH eth_newFilter NOT IMPLEMENTED Creates a filter object, based on filter options, to notify when the state changes (logs)
ETH eth_newPendingTransactionFilter NOT IMPLEMENTED Creates a filter in the node, to notify when new pending transactions arrive
ETH eth_protocolVersion NOT IMPLEMENTED Returns the current ethereum protocol version
ETH eth_sendTransaction NOT IMPLEMENTED Creates new message call transaction or a contract creation, if the data field contains code
ETH eth_sign NOT IMPLEMENTED The sign method calculates an Ethereum specific signature with: sign(keccak256("\x19Ethereum Signed Message:\n" + message.length + message)))
ETH eth_signTransaction NOT IMPLEMENTED Signs a transaction that can be submitted to the network at a later time using eth_sendRawTransaction
ETH eth_signTypedData NOT IMPLEMENTED Identical to eth_signTypedData_v4
ETH eth_signTypedData_v4 NOT IMPLEMENTED Returns Promise<string>: Signature. As in eth_sign, it is a hex encoded 129 byte array starting with 0x.
ETH eth_submitHashrate NOT IMPLEMENTED Used for submitting mining hashrate
ETH eth_submitWork NOT IMPLEMENTED Used for submitting a proof-of-work solution
ETH eth_subscribe NOT IMPLEMENTED Starts a subscription to a particular event
ETH eth_syncing NOT IMPLEMENTED Returns an object containing data about the sync status or false when not syncing
ETH eth_uninstallFilter NOT IMPLEMENTED Uninstalls a filter with given id
ETH eth_accounts NOT IMPLEMENTED Returns a list of addresses owned by client
ETH eth_unsubscribe NOT IMPLEMENTED Cancel a subscription to a particular event
ZKS zks_estimateFee SUPPORTED Gets the Fee estimation data for a given Request
ZKS zks_getTokenPrice SUPPORTED Gets the USD price of a token

Key

The status options are:

  • SUPPORTED - Basic support is complete
  • PARTIALLY - Partial support and a description including more specific details
  • NOT IMPLEMENTED - Currently not supported/implemented

CONFIG NAMESPACE

config_getShowCalls

source

Gets the current value of show_calls that's originally set with --show-calls option

Arguments

  • NONE

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{"jsonrpc": "2.0","id": "1","method": "config_getShowCalls","params": []}'

config_setShowCalls

source

Updates show_calls to print more detailed call traces

Arguments

  • value: String ('None', 'User', 'System', 'All')

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{"jsonrpc": "2.0","id": "1","method": "config_setShowCalls","params": ["all"]}'

config_setResolveHashes

source

Updates resolve-hashes to call OpenChain for human-readable ABI names in call traces

Arguments

  • value: boolean

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{"jsonrpc": "2.0","id": "1","method": "config_setResolveHashes","params": [true]}'

NETWORK NAMESPACE

net_version

source

Returns the current network id

Arguments

  • NONE

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{"jsonrpc": "2.0","id": "1","method": "net_version","params": []}'

net_peerCount

source

Returns the number of connected peers

Arguments

  • NONE

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{"jsonrpc": "2.0","id": "1","method": "net_peerCount","params": []}'

net_listening

source

Returns true if the node is listening for connections

Arguments

  • NONE

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{"jsonrpc": "2.0","id": "1","method": "net_listening","params": []}'

ETH NAMESPACE

eth_chainId

source

Returns the current chain id

Arguments

  • NONE

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{"jsonrpc": "2.0","id": "1","method": "eth_chainId","params": []}'

eth_estimateGas

source

Generates and returns an estimate of how much gas is necessary to allow the transaction to complete

Arguments

  • transaction: Transaction

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{
    "jsonrpc": "2.0",
      "id": "2",
      "method": "eth_estimateGas",
      "params": [{
          "to": "0x36615Cf349d7F6344891B1e7CA7C72883F5dc049",
          "data": "0x0000",
          "from": "0xa61464658AfeAf65CccaaFD3a512b69A83B77618",
          "gas": "0x0000",
          "gasPrice": "0x0000",
          "value": "0x0000",
          "nonce": "0x0000"
      }, "latest"]
  }'

eth_gasPrice

source

Returns the current price per gas in wei

Arguments

  • NONE

Status

PARTIALLY

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{"jsonrpc": "2.0","id": "1","method": "eth_gasPrice","params": []}'

eth_getBalance

source

Returns the balance of the account of given address

Arguments

  • address: Address

  • block: BlockNumber

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "eth_getBalance",
    "params": ["0x0000000000000000000000000000000000000000", "latest"]
}'

eth_getBlockByNumber

source

Returns information about a block by block number

Arguments

  • block: BlockNumber

  • full: boolean

Status

PARTIALLY

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "eth_getBlockByNumber",
    "params": ["latest", true]
}'

eth_getCode

source

Returns code at a given address

Arguments

  • address: Address

  • block: BlockNumber

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "eth_getCode",
    "params": ["0x0000000000000000000000000000000000000000", "latest"]
}'

eth_getTransactionByHash

source

Returns the information about a transaction requested by transaction hash

Arguments

  • hash: Hash

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "eth_getTransactionByHash",
    "params": ["0x0000000000000000000000000000000000000000000000000000000000000000"]
}'

eth_getTransactionCount

source

Returns the number of transactions sent from an address

Arguments

  • address: Address

  • block: BlockNumber

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "eth_getTransactionCount",
    "params": ["0x0000000000000000000000000000000000000000", "latest"]
}'

eth_blockNumber

source

Returns the number of most recent block

Arguments

  • NONE

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{"jsonrpc": "2.0","id": "1","method": "eth_blockNumber","params": []}'

eth_call

source

Executes a new message call immediately without creating a transaction on the block chain

Arguments

  • transaction: Transaction

  • block: BlockNumber

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{
    "jsonrpc": "2.0",
      "id": "2",
      "method": "eth_call",
      "params": [{
          "to": "0x36615Cf349d7F6344891B1e7CA7C72883F5dc049",
          "data": "0x0000",
          "from": "0xa61464658AfeAf65CccaaFD3a512b69A83B77618",
          "gas": "0x0000",
          "gasPrice": "0x0000",
          "value": "0x0000",
          "nonce": "0x0000"
      }, "latest"]
  }'

eth_sendRawTransaction

source

Creates new message call transaction or a contract creation for signed transactions

Arguments

  • transaction: Transaction

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{"jsonrpc": "2.0","id": "1","method": "eth_sendRawTransaction","params": ["0x0000"]
}'

ZKS NAMESPACE

zks_estimateFee

source

Generates and returns an estimate of how much gas is necessary to allow the transaction to complete

Arguments

  • transaction: Transaction

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{
    "jsonrpc": "2.0",
      "id": "2",
      "method": "zks_estimateFee",
      "params": [{
          "to": "0x36615Cf349d7F6344891B1e7CA7C72883F5dc049",
          "data": "0x0000",
          "from": "0xa61464658AfeAf65CccaaFD3a512b69A83B77618",
          "gas": "0x0000",
          "gasPrice": "0x0000",
          "value": "0x0000",
          "nonce": "0x0000"
      }]
  }'

zks_getTokenPrice

source

Returns the token price given an Address

Arguments

  • address: Address

Status

SUPPORTED

Example

curl --request POST \
  --url http://localhost:8011/ \
  --header 'content-type: application/json' \
  --data '{"jsonrpc": "2.0","id": "1","method": "zks_getTokenPrice","params": ["0x0000000000000000000000000000000000000000"]}'