Haqq RPC
How to use it
// yarn add @tatumio/tatum
import { TatumSDK, Haqq, Network } from '@tatumio/tatum'
const tatum = await TatumSDK.init<Haqq>({ network: Network.HAQQ })
const result = await tatum.rpc.getProof(
'0x2C5B9a513bE2240e948a631bAaFB53cc0bEAcfda',
['0x0000000000000000000000000000000000000000000000000000000000000000'],
'latest',
)
await tatum.destroy() // Destroy Tatum SDK - needed for stopping background jobs
Overview
The eth_getProof
is an Haqq JSON-RPC method that retrieves the Merkle-Patricia proof for an account, storage key-value pairs, and account transaction count. It allows developers to verify the state of an account or storage value at a specific block without needing the entire Haqq state trie. This method is particularly useful for light clients or off-chain applications that require proof of an account's state or specific storage values.
Parameters
address
-Data
, 20 Bytes- The address of the account.
- Example:
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
keys
-Array
ofData
- An array of storage keys for which the proof should be generated.
- Example:
["0x0000000000000000000000000000000000000000000000000000000000000000"]
blockNumber
-Quantity
orString
- The block number for which the proof should be generated.
- Example:
"0x1"
or"latest"
Return Object
The method returns an object containing the following fields:
accountProof
-Array
ofData
- The serialized Merkle-Patricia proof for the account.
balance
-Quantity
- The balance of the account at the specified block.
codeHash
-Data
, 32 Bytes- The hash of the code for the account at the specified block.
nonce
-Quantity
- The transaction count of the account at the specified block.
storageProof
-Array
ofObject
- An array of storage proof objects, one for each requested key, containing the following fields:
key
-Data
, 32 Bytes: The storage key.value
-Quantity
: The storage value.proof
-Array
ofData
: The serialized Merkle-Patricia proof for the key-value pair.
- An array of storage proof objects, one for each requested key, containing the following fields:
JSON-RPC Request and Response Examples
Request:
{
"id": 1,
"jsonrpc": "2.0",
"method": "eth_getProof",
"params": [
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
["0x0000000000000000000000000000000000000000000000000000000000000000"],
"latest"
]
}
Response:
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"accountProof": ["0x...", "0x...", "0x..."],
"balance": "0xde0b6b3a7640000",
"codeHash": "0x...",
"nonce": "0x1",
"storageProof": [
{
"key": "0x0000000000000000000000000000000000000000000000000000000000000000",
"value": "0xde0b6b3a7640000",
"proof": ["0x...", "0x...", "0x..."]
}
]
}
}