379 lines
13 KiB
Plaintext
379 lines
13 KiB
Plaintext
import {
|
|
DocBlock,
|
|
DocSideBySide,
|
|
CodeParams,
|
|
Parameter,
|
|
Field,
|
|
Values,
|
|
CodeSnippets,
|
|
} from "../../../components/CodeDocBlock";
|
|
|
|
<DocBlock>
|
|
|
|
## blockSubscribe
|
|
|
|
Subscribe to receive notification anytime a new block is Confirmed or Finalized.
|
|
|
|
:::caution
|
|
This subscription is **unstable** and only available if the validator was started
|
|
with the `--rpc-pubsub-enable-block-subscription` flag.
|
|
|
|
**NOTE: The format of this subscription may change in the future**
|
|
:::
|
|
|
|
<DocSideBySide>
|
|
<CodeParams>
|
|
|
|
### Parameters:
|
|
|
|
<Parameter name="filter" type={"string | object"} required={true}>
|
|
|
|
filter criteria for the logs to receive results by account type; currently supported:
|
|
|
|
<Field type="string" value="all">
|
|
<code>all</code> - include all transactions in block
|
|
</Field>
|
|
|
|
<Field type="object">
|
|
|
|
A JSON object with the following field:
|
|
|
|
- `mentionsAccountOrProgram: <string>` - return only transactions that mention the provided public key (as base-58 encoded string). If no mentions in a given block, then no notification will be sent.
|
|
|
|
</Field>
|
|
|
|
</Parameter>
|
|
|
|
<Parameter type={"object"} optional={true}>
|
|
|
|
Configuration object containing the following fields:
|
|
|
|
<Field
|
|
name="commitment"
|
|
type="string"
|
|
optional={true}
|
|
defaultValue={"finalized"}
|
|
href="/api/http#configuring-state-commitment"
|
|
>
|
|
<li>
|
|
the default is <code>finalized</code>
|
|
</li>
|
|
<li>
|
|
<code>processed</code> is not supported.
|
|
</li>
|
|
</Field>
|
|
|
|
<Field name="encoding" type="string" optional={true} defaultValue={"json"} href="/api/http#parsed-responses">
|
|
|
|
encoding format for each returned Transaction
|
|
|
|
<Values values={["json", "jsonParsed", "base58", "base64"]} />
|
|
|
|
<details>
|
|
|
|
- `jsonParsed` attempts to use program-specific instruction parsers to return
|
|
more human-readable and explicit data in the `transaction.message.instructions` list.
|
|
- If `jsonParsed` is requested but a parser cannot be found, the instruction
|
|
falls back to regular JSON encoding (`accounts`, `data`, and `programIdIndex` fields).
|
|
|
|
</details>
|
|
|
|
</Field>
|
|
|
|
<Field name="transactionDetails" type="string" optional={true} defaultValue={"full"}>
|
|
|
|
level of transaction detail to return
|
|
|
|
<Values values={["full", "accounts", "signatures", "none"]} />
|
|
|
|
<details>
|
|
|
|
- If `accounts` are requested, transaction details only include signatures and
|
|
an annotated list of accounts in each transaction.
|
|
- Transaction metadata is limited to only: fee, err, pre_balances,
|
|
post_balances, pre_token_balances, and post_token_balances.
|
|
|
|
</details>
|
|
|
|
</Field>
|
|
|
|
<Field name="maxSupportedTransactionVersion" type="number" optional={true}>
|
|
|
|
the max transaction version to return in responses.
|
|
|
|
<details>
|
|
|
|
- If the requested block contains a transaction with a higher version, an
|
|
error will be returned.
|
|
- If this parameter is omitted, only legacy transactions will be returned, and
|
|
a block containing any versioned transaction will prompt the error.
|
|
|
|
</details>
|
|
|
|
</Field>
|
|
|
|
<Field name="showRewards" type="bool" optional={true}>
|
|
whether to populate the `rewards` array. If parameter not provided, the
|
|
default includes rewards.
|
|
</Field>
|
|
|
|
</Parameter>
|
|
|
|
### Result:
|
|
|
|
`integer` - subscription id \(needed to unsubscribe\)
|
|
|
|
</CodeParams>
|
|
|
|
<CodeSnippets>
|
|
|
|
### Code sample:
|
|
|
|
```json
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"id": "1",
|
|
"method": "blockSubscribe",
|
|
"params": ["all"]
|
|
}
|
|
```
|
|
|
|
```json
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"id": "1",
|
|
"method": "blockSubscribe",
|
|
"params": [
|
|
{
|
|
"mentionsAccountOrProgram": "LieKvPRE8XeX3Y2xVNHjKlpAScD12lYySBVQ4HqoJ5op"
|
|
},
|
|
{
|
|
"commitment": "confirmed",
|
|
"encoding": "base64",
|
|
"showRewards": true,
|
|
"transactionDetails": "full"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Response:
|
|
|
|
```json
|
|
{ "jsonrpc": "2.0", "result": 0, "id": 1 }
|
|
```
|
|
|
|
</CodeSnippets>
|
|
</DocSideBySide>
|
|
|
|
#### Notification Format:
|
|
|
|
The notification will be an object with the following fields:
|
|
|
|
- `slot: <u64>` - The corresponding slot.
|
|
- `err: <object|null>` - Error if something went wrong publishing the notification otherwise null.
|
|
- `block: <object|null>` - A block object as seen in the [getBlock](/api/http#getblock) RPC HTTP method.
|
|
|
|
```json
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "blockNotification",
|
|
"params": {
|
|
"result": {
|
|
"context": {
|
|
"slot": 112301554
|
|
},
|
|
"value": {
|
|
"slot": 112301554,
|
|
"block": {
|
|
"previousBlockhash": "GJp125YAN4ufCSUvZJVdCyWQJ7RPWMmwxoyUQySydZA",
|
|
"blockhash": "6ojMHjctdqfB55JDpEpqfHnP96fiaHEcvzEQ2NNcxzHP",
|
|
"parentSlot": 112301553,
|
|
"transactions": [
|
|
{
|
|
"transaction": [
|
|
"OpltwoUvWxYi1P2U8vbIdE/aPntjYo5Aa0VQ2JJyeJE2g9Vvxk8dDGgFMruYfDu8/IfUWb0REppTe7IpAuuLRgIBAAkWnj4KHRpEWWW7gvO1c0BHy06wZi2g7/DLqpEtkRsThAXIdBbhXCLvltw50ZnjDx2hzw74NVn49kmpYj2VZHQJoeJoYJqaKcvuxCi/2i4yywedcVNDWkM84Iuw+cEn9/ROCrXY4qBFI9dveEERQ1c4kdU46xjxj9Vi+QXkb2Kx45QFVkG4Y7HHsoS6WNUiw2m4ffnMNnOVdF9tJht7oeuEfDMuUEaO7l9JeUxppCvrGk3CP45saO51gkwVYEgKzhpKjCx3rgsYxNR81fY4hnUQXSbbc2Y55FkwgRBpVvQK7/+clR4Gjhd3L4y+OtPl7QF93Akg1LaU9wRMs5nvfDFlggqI9PqJl+IvVWrNRdBbPS8LIIhcwbRTkSbqlJQWxYg3Bo2CTVbw7rt1ZubuHWWp0mD/UJpLXGm2JprWTePNULzHu67sfqaWF99LwmwjTyYEkqkRt1T0Je5VzHgJs0N5jY4iIU9K3lMqvrKOIn/2zEMZ+ol2gdgjshx+sphIyhw65F3J/Dbzk04LLkK+CULmN571Y+hFlXF2ke0BIuUG6AUF+4214Cu7FXnqo3rkxEHDZAk0lRrAJ8X/Z+iwuwI5cgbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpDLAp8axcEkaQkLDKRoWxqp8XLNZSKial7Rk+ELAVVKWoWLRXRZ+OIggu0OzMExvVLE5VHqy71FNHq4gGitkiKYNFWSLIE4qGfdFLZXy/6hwS+wq9ewjikCpd//C9BcCL7Wl0iQdUslxNVCBZHnCoPYih9JXvGefOb9WWnjGy14sG9j70+RSVx6BlkFELWwFvIlWR/tHn3EhHAuL0inS2pwX7ZQTAU6gDVaoqbR2EiJ47cKoPycBNvHLoKxoY9AZaBjPl6q8SKQJSFyFd9n44opAgI6zMTjYF/8Ok4VpXEESp3QaoUyTI9sOJ6oFP6f4dwnvQelgXS+AEfAsHsKXxGAIUDQENAgMEBQAGBwgIDg8IBJCER3QXl1AVDBADCQoOAAQLERITDAjb7ugh3gOuTy==",
|
|
"base64"
|
|
],
|
|
"meta": {
|
|
"err": null,
|
|
"status": {
|
|
"Ok": null
|
|
},
|
|
"fee": 5000,
|
|
"preBalances": [
|
|
1758510880, 2067120, 1566000, 1461600, 2039280, 2039280,
|
|
1900080, 1865280, 0, 3680844220, 2039280
|
|
],
|
|
"postBalances": [
|
|
1758505880, 2067120, 1566000, 1461600, 2039280, 2039280,
|
|
1900080, 1865280, 0, 3680844220, 2039280
|
|
],
|
|
"innerInstructions": [
|
|
{
|
|
"index": 0,
|
|
"instructions": [
|
|
{
|
|
"programIdIndex": 13,
|
|
"accounts": [1, 15, 3, 4, 2, 14],
|
|
"data": "21TeLgZXNbtHXVBzCaiRmH"
|
|
},
|
|
{
|
|
"programIdIndex": 14,
|
|
"accounts": [3, 4, 1],
|
|
"data": "6qfC8ic7Aq99"
|
|
},
|
|
{
|
|
"programIdIndex": 13,
|
|
"accounts": [1, 15, 3, 5, 2, 14],
|
|
"data": "21TeLgZXNbsn4QEpaSEr3q"
|
|
},
|
|
{
|
|
"programIdIndex": 14,
|
|
"accounts": [3, 5, 1],
|
|
"data": "6LC7BYyxhFRh"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"index": 1,
|
|
"instructions": [
|
|
{
|
|
"programIdIndex": 14,
|
|
"accounts": [4, 3, 0],
|
|
"data": "7aUiLHFjSVdZ"
|
|
},
|
|
{
|
|
"programIdIndex": 19,
|
|
"accounts": [17, 18, 16, 9, 11, 12, 14],
|
|
"data": "8kvZyjATKQWYxaKR1qD53V"
|
|
},
|
|
{
|
|
"programIdIndex": 14,
|
|
"accounts": [9, 11, 18],
|
|
"data": "6qfC8ic7Aq99"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"logMessages": [
|
|
"Program QMNeHCGYnLVDn1icRAfQZpjPLBNkfGbSKRB83G5d8KB invoke [1]",
|
|
"Program QMWoBmAyJLAsA1Lh9ugMTw2gciTihncciphzdNzdZYV invoke [2]"
|
|
],
|
|
"preTokenBalances": [
|
|
{
|
|
"accountIndex": 4,
|
|
"mint": "iouQcQBAiEXe6cKLS85zmZxUqaCqBdeHFpqKoSz615u",
|
|
"uiTokenAmount": {
|
|
"uiAmount": null,
|
|
"decimals": 6,
|
|
"amount": "0",
|
|
"uiAmountString": "0"
|
|
},
|
|
"owner": "LieKvPRE8XeX3Y2xVNHjKlpAScD12lYySBVQ4HqoJ5op",
|
|
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
|
|
},
|
|
{
|
|
"accountIndex": 5,
|
|
"mint": "iouQcQBAiEXe6cKLS85zmZxUqaCqBdeHFpqKoSz615u",
|
|
"uiTokenAmount": {
|
|
"uiAmount": 11513.0679,
|
|
"decimals": 6,
|
|
"amount": "11513067900",
|
|
"uiAmountString": "11513.0679"
|
|
},
|
|
"owner": "rXhAofQCT7NN9TUqigyEAUzV1uLL4boeD8CRkNBSkYk",
|
|
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
|
|
},
|
|
{
|
|
"accountIndex": 10,
|
|
"mint": "Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1",
|
|
"uiTokenAmount": {
|
|
"uiAmount": null,
|
|
"decimals": 6,
|
|
"amount": "0",
|
|
"uiAmountString": "0"
|
|
},
|
|
"owner": "CL9wkGFT3SZRRNa9dgaovuRV7jrVVigBUZ6DjcgySsCU",
|
|
"programId": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
|
},
|
|
{
|
|
"accountIndex": 11,
|
|
"mint": "Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1",
|
|
"uiTokenAmount": {
|
|
"uiAmount": 15138.514093,
|
|
"decimals": 6,
|
|
"amount": "15138514093",
|
|
"uiAmountString": "15138.514093"
|
|
},
|
|
"owner": "LieKvPRE8XeX3Y2xVNHjKlpAScD12lYySBVQ4HqoJ5op",
|
|
"programId": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
|
}
|
|
],
|
|
"postTokenBalances": [
|
|
{
|
|
"accountIndex": 4,
|
|
"mint": "iouQcQBAiEXe6cKLS85zmZxUqaCqBdeHFpqKoSz615u",
|
|
"uiTokenAmount": {
|
|
"uiAmount": null,
|
|
"decimals": 6,
|
|
"amount": "0",
|
|
"uiAmountString": "0"
|
|
},
|
|
"owner": "LieKvPRE8XeX3Y2xVNHjKlpAScD12lYySBVQ4HqoJ5op",
|
|
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
|
|
},
|
|
{
|
|
"accountIndex": 5,
|
|
"mint": "iouQcQBAiEXe6cKLS85zmZxUqaCqBdeHFpqKoSz615u",
|
|
"uiTokenAmount": {
|
|
"uiAmount": 11513.103028,
|
|
"decimals": 6,
|
|
"amount": "11513103028",
|
|
"uiAmountString": "11513.103028"
|
|
},
|
|
"owner": "rXhAofQCT7NN9TUqigyEAUzV1uLL4boeD8CRkNBSkYk",
|
|
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
|
|
},
|
|
{
|
|
"accountIndex": 10,
|
|
"mint": "Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1",
|
|
"uiTokenAmount": {
|
|
"uiAmount": null,
|
|
"decimals": 6,
|
|
"amount": "0",
|
|
"uiAmountString": "0"
|
|
},
|
|
"owner": "CL9wkGFT3SZRRNa9dgaovuRV7jrVVigBUZ6DjcgySsCU",
|
|
"programId": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
|
},
|
|
{
|
|
"accountIndex": 11,
|
|
"mint": "Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1",
|
|
"uiTokenAmount": {
|
|
"uiAmount": 15489.767829,
|
|
"decimals": 6,
|
|
"amount": "15489767829",
|
|
"uiAmountString": "15489.767829"
|
|
},
|
|
"owner": "BeiHVPRE8XeX3Y2xVNrSsTpAScH94nYySBVQ4HqgN9at",
|
|
"programId": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
|
}
|
|
],
|
|
"rewards": []
|
|
}
|
|
}
|
|
],
|
|
"blockTime": 1639926816,
|
|
"blockHeight": 101210751
|
|
},
|
|
"err": null
|
|
}
|
|
},
|
|
"subscription": 14
|
|
}
|
|
}
|
|
```
|
|
|
|
</DocBlock>
|