solana/docs/src/api/websocket/_logsSubscribe.mdx

147 lines
3.0 KiB
Plaintext

import {
DocBlock,
DocSideBySide,
CodeParams,
Parameter,
Field,
Values,
CodeSnippets,
} from "../../../components/CodeDocBlock";
<DocBlock>
## logsSubscribe
Subscribe to transaction logging
<DocSideBySide>
<CodeParams>
### Parameters:
<Parameter name="filter" type={"string | object"} required={true}>
filter criteria for the logs to receive results by account type. The following filters types are currently supported:
<Field type="string">
A string with one of the following values:
- `all` - subscribe to all transactions except for simple vote transactions
- `allWithVotes` - subscribe to all transactions, including simple vote
transactions
</Field>
<Field type="object">
An object with the following field:
- `mentions: [ <string> ]` - array containing a single Pubkey (as base-58
encoded string); if present, subscribe to only transactions mentioning this address
:::caution
Currently, the `mentions` field
[only supports one](https://github.com/solana-labs/solana/blob/master/rpc/src/rpc_pubsub.rs#L481)
Pubkey string per method call. Listing additional addresses will result in an
error.
:::
</Field>
</Parameter>
<Parameter type={"object"} optional={true}>
Configuration object containing the following fields:
<Field
name="commitment"
type="string"
optional={true}
href="/api/http#configuring-state-commitment"
></Field>
</Parameter>
### Result:
`<integer>` - Subscription id \(needed to unsubscribe\)
</CodeParams>
<CodeSnippets>
### Code sample:
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "logsSubscribe",
"params": [
{
"mentions": [ "11111111111111111111111111111111" ]
},
{
"commitment": "finalized"
}
]
}
{
"jsonrpc": "2.0",
"id": 1,
"method": "logsSubscribe",
"params": [ "all" ]
}
```
### Response:
```json
{ "jsonrpc": "2.0", "result": 24040, "id": 1 }
```
</CodeSnippets>
</DocSideBySide>
#### Notification Format:
The notification will be an RpcResponse JSON object with value equal to:
- `signature: <string>` - The transaction signature base58 encoded.
- `err: <object|null>` - Error if transaction failed, null if transaction
succeeded.
[TransactionError definitions](https://github.com/solana-labs/solana/blob/c0c60386544ec9a9ec7119229f37386d9f070523/sdk/src/transaction/error.rs#L13)
- `logs: <array|null>` - Array of log messages the transaction instructions
output during execution, null if simulation failed before the transaction was
able to execute (for example due to an invalid blockhash or signature
verification failure)
Example:
```json
{
"jsonrpc": "2.0",
"method": "logsNotification",
"params": {
"result": {
"context": {
"slot": 5208469
},
"value": {
"signature": "5h6xBEauJ3PK6SWCZ1PGjBvj8vDdWG3KpwATGy1ARAXFSDwt8GFXM7W5Ncn16wmqokgpiKRLuS83KUxyZyv2sUYv",
"err": null,
"logs": [
"SBF program 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri success"
]
}
},
"subscription": 24040
}
}
```
</DocBlock>