{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "LogContext",
"description": "This is the structured log format for a Solana Program log message.",
"type": "object",
"properties": {
"log_messages": {
"description": "The log messages produced by the program, via the msg! or emit! macros. These logs being with 'Program log:'",
"type": "array",
"items": {
"type": "string"
}
},
"data_logs": {
"description": "The data messages containing serialized data produced by the program, usually via the emit! or emit_cpi! macros provided by Anchor. These logs begin with 'Program data:'",
"type": "array",
"items": {
"type": "string"
}
},
"raw_logs": {
"description": "This is the raw log output from the program. This will contain all logs, regardless of prefix.",
"type": "array",
"items": {
"type": "string"
}
},
"errors": {
"description": "The errors produced by the program. These logs being with 'Program failed to complete:', for example 'Program failed to complete: Invoked an instruction with data that is too large (12178014311288245306 > 10240)'",
"type": "array",
"items": {
"type": "string"
}
},
"transaction_error": {
"description": "The transaction error produced by the program. This value is not parsed from the raw logs, but is provided by the RPC log subscription response as to why a transaction might be rejected.",
"type": "string"
},
"program_id": {
"description": "The program id of the program that produced the logs.",
"type": "string"
},
"parent_program_id": {
"description": "The program id of the program that invoked the program that produced the logs.",
"type": "string"
},
"depth": {
"description": "The depth of the program invocation. This is 1 for the first program invoked, 2 for the second, and so on.",
"type": "integer"
},
"id": {
"description": "The unique ID of the program invocation. This value is a combination of the program ID, the slot and the instruction index.",
"type": "integer"
},
"instruction_index": {
"description": "This is the index of the instruction that produced the logs. This is used to determine the order of logs produced by a program.",
"type": "integer"
},
"invoke_result": {
"description": "The result of the program invocation from logs prefixed with 'Program return'. Example: 'Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA='",
"type": "string"
},
"slot": {
"description": "The period of time for which each leader ingests transactions and produces a block.",
"type": "integer"
},
"signature": {
"description": "The signature of the transaction that invoked the program.",
"type": "string"
}
}
}