From 84492218518bfd3cdc8ce8cec7152b6d22835500 Mon Sep 17 00:00:00 2001 From: Fern Support <126544928+fern-support@users.noreply.github.com> Date: Tue, 14 Jan 2025 19:54:25 -0500 Subject: [PATCH] feat(openrpc): support environments (#2015) --- packages/parsers/package.json | 2 +- .../src/openrpc/1.x/MethodConverter.node.ts | 18 +- .../1.x/OpenrpcDocumentConverter.node.ts | 28 +- .../openrpc/__test__/OpenrpcConverter.test.ts | 4 - .../__test__/__snapshots__/ethereum.json | 135 +- .../__test__/__snapshots__/petstore.json | 30 +- .../__test__/__snapshots__/solana.json | 7168 +++++++++++++++++ .../__test__/fixtures/solana/openrpc.json | 3147 ++++++++ 8 files changed, 10463 insertions(+), 69 deletions(-) create mode 100644 packages/parsers/src/openrpc/__test__/__snapshots__/solana.json create mode 100644 packages/parsers/src/openrpc/__test__/fixtures/solana/openrpc.json diff --git a/packages/parsers/package.json b/packages/parsers/package.json index f8c09046a2..38b88c1e1e 100644 --- a/packages/parsers/package.json +++ b/packages/parsers/package.json @@ -1,6 +1,6 @@ { "name": "@fern-api/docs-parsers", - "version": "0.0.35", + "version": "0.0.36", "repository": { "type": "git", "url": "https://github.com/fern-api/fern-platform.git", diff --git a/packages/parsers/src/openrpc/1.x/MethodConverter.node.ts b/packages/parsers/src/openrpc/1.x/MethodConverter.node.ts index 8f474cea09..d61a7e377e 100644 --- a/packages/parsers/src/openrpc/1.x/MethodConverter.node.ts +++ b/packages/parsers/src/openrpc/1.x/MethodConverter.node.ts @@ -1,8 +1,9 @@ import { isNonNullish } from "@fern-api/ui-core-utils"; import { MethodObject } from "@open-rpc/meta-schema"; +import { camelCase } from "es-toolkit"; import { UnreachableCaseError } from "ts-essentials"; import { FernRegistry } from "../../client/generated"; -import { SchemaConverterNode } from "../../openapi"; +import { SchemaConverterNode, ServerObjectConverterNode } from "../../openapi"; import { maybeSingleValueToArray } from "../../openapi/utils/maybeSingleValueToArray"; import { BaseOpenrpcConverterNode, @@ -17,10 +18,15 @@ export class MethodConverterNode extends BaseOpenrpcConverterNode< FernRegistry.api.latest.EndpointDefinition > { private method: MethodObject; + private servers: ServerObjectConverterNode[] = []; - constructor(args: BaseOpenrpcConverterNodeConstructorArgs) { + constructor( + args: BaseOpenrpcConverterNodeConstructorArgs, + servers: ServerObjectConverterNode[] + ) { super(args); this.method = args.input; + this.servers = servers; this.safeParse(); } @@ -98,7 +104,7 @@ export class MethodConverterNode extends BaseOpenrpcConverterNode< // This is a basic implementation that needs to be expanded return { id: FernRegistry.EndpointId(this.input.name), - displayName: this.input.summary ?? this.input.name, + displayName: camelCase(this.input.name), method: "POST", path: [{ type: "literal", value: "" }], auth: undefined, @@ -152,10 +158,12 @@ export class MethodConverterNode extends BaseOpenrpcConverterNode< } ) .filter(isNonNullish), - description: this.input.description, + description: this.input.description ?? this.input.summary, operationId: this.input.name, defaultEnvironment: undefined, - environments: [], + environments: this.servers + .map((server) => server.convert()) + .filter(isNonNullish), availability: this.method.deprecated ? "Deprecated" : undefined, requestHeaders: [], responseHeaders: [], diff --git a/packages/parsers/src/openrpc/1.x/OpenrpcDocumentConverter.node.ts b/packages/parsers/src/openrpc/1.x/OpenrpcDocumentConverter.node.ts index 154b0059dc..dc9d40004f 100644 --- a/packages/parsers/src/openrpc/1.x/OpenrpcDocumentConverter.node.ts +++ b/packages/parsers/src/openrpc/1.x/OpenrpcDocumentConverter.node.ts @@ -2,7 +2,9 @@ import { isNonNullish } from "@fern-api/ui-core-utils"; import { OpenrpcDocument } from "@open-rpc/meta-schema"; import { v4 } from "uuid"; import { FernRegistry } from "../../client/generated"; +import { ServerObjectConverterNode } from "../../openapi"; import { ComponentsConverterNode } from "../../openapi/3.1/schemas/ComponentsConverter.node"; +import { coalesceServers } from "../../openapi/utils/3.1/coalesceServers"; import { BaseOpenrpcConverterNode, BaseOpenrpcConverterNodeConstructorArgs, @@ -14,6 +16,7 @@ export class OpenrpcDocumentConverterNode extends BaseOpenrpcConverterNode< OpenrpcDocument, FernRegistry.api.latest.ApiDefinition > { + servers: ServerObjectConverterNode[] = []; methods: MethodConverterNode[] = []; components: ComponentsConverterNode | undefined; @@ -23,6 +26,15 @@ export class OpenrpcDocumentConverterNode extends BaseOpenrpcConverterNode< } parse(): void { + if (this.context.openrpc.servers != null) { + this.servers = coalesceServers( + this.servers, + this.input.servers, + this.context, + this.accessPath + ); + } + if (this.input.methods != null) { for (const method of this.input.methods) { const resolvedMethod = resolveMethodReference( @@ -33,15 +45,19 @@ export class OpenrpcDocumentConverterNode extends BaseOpenrpcConverterNode< continue; } this.methods.push( - new MethodConverterNode({ - input: resolvedMethod, - context: this.context, - accessPath: this.accessPath, - pathId: "methods", - }) + new MethodConverterNode( + { + input: resolvedMethod, + context: this.context, + accessPath: this.accessPath, + pathId: "methods", + }, + this.servers + ) ); } } + if (this.context.openrpc.components != null) { this.components = new ComponentsConverterNode({ input: this.context.openrpc.components, diff --git a/packages/parsers/src/openrpc/__test__/OpenrpcConverter.test.ts b/packages/parsers/src/openrpc/__test__/OpenrpcConverter.test.ts index 08f46b1387..400230383c 100644 --- a/packages/parsers/src/openrpc/__test__/OpenrpcConverter.test.ts +++ b/packages/parsers/src/openrpc/__test__/OpenrpcConverter.test.ts @@ -29,8 +29,6 @@ describe("OpenRPC converter", () => { const errors = []; const warnings = []; - expect(parsed.components?.schemas).toBeDefined(); - if (parsed.components?.schemas) { const converter = new OpenrpcDocumentConverterNode({ input: parsed, @@ -51,8 +49,6 @@ describe("OpenRPC converter", () => { if (warnings.length > 0) { // console.warn("warnings:", warnings); } - - converted.id = "test-uuid-replacement"; await expect( replaceEndpointUUIDs(JSON.stringify(converted, null, 2)) ).toMatchFileSnapshot(`./__snapshots__/${directory}.json`); diff --git a/packages/parsers/src/openrpc/__test__/__snapshots__/ethereum.json b/packages/parsers/src/openrpc/__test__/__snapshots__/ethereum.json index 4943a77350..9f672f2ae9 100644 --- a/packages/parsers/src/openrpc/__test__/__snapshots__/ethereum.json +++ b/packages/parsers/src/openrpc/__test__/__snapshots__/ethereum.json @@ -1242,7 +1242,7 @@ "endpoints": { "web3_clientVersion": { "id": "web3_clientVersion", - "displayName": "current client version", + "displayName": "web3ClientVersion", "method": "POST", "path": [ { @@ -1277,7 +1277,7 @@ }, "web3_sha3": { "id": "web3_sha3", - "displayName": "Hashes data", + "displayName": "web3Sha3", "method": "POST", "path": [ { @@ -1358,7 +1358,7 @@ }, "net_listening": { "id": "net_listening", - "displayName": "returns listening status", + "displayName": "netListening", "method": "POST", "path": [ { @@ -1410,7 +1410,7 @@ }, "net_peerCount": { "id": "net_peerCount", - "displayName": "number of peers", + "displayName": "netPeerCount", "method": "POST", "path": [ { @@ -1445,7 +1445,7 @@ }, "net_version": { "id": "net_version", - "displayName": "Network identifier associated with network", + "displayName": "netVersion", "method": "POST", "path": [ { @@ -1481,7 +1481,7 @@ }, "eth_blockNumber": { "id": "eth_blockNumber", - "displayName": "Returns the number of most recent block.", + "displayName": "ethBlockNumber", "method": "POST", "path": [ { @@ -1504,6 +1504,7 @@ } ], "errors": [], + "description": "Returns the number of most recent block.", "operationId": "eth_blockNumber", "environments": [], "requestHeaders": [], @@ -1512,7 +1513,7 @@ }, "eth_call": { "id": "eth_call", - "displayName": "Executes a new message call (locally) immediately without creating a transaction on the block chain.", + "displayName": "ethCall", "method": "POST", "path": [ { @@ -1566,6 +1567,7 @@ } ], "errors": [], + "description": "Executes a new message call (locally) immediately without creating a transaction on the block chain.", "operationId": "eth_call", "environments": [], "requestHeaders": [], @@ -1574,7 +1576,7 @@ }, "eth_chainId": { "id": "eth_chainId", - "displayName": "Returns the currently configured chain id", + "displayName": "ethChainId", "method": "POST", "path": [ { @@ -1610,7 +1612,7 @@ }, "eth_coinbase": { "id": "eth_coinbase", - "displayName": "Returns the client coinbase address.", + "displayName": "ethCoinbase", "method": "POST", "path": [ { @@ -1633,6 +1635,7 @@ } ], "errors": [], + "description": "Returns the client coinbase address.", "operationId": "eth_coinbase", "environments": [], "requestHeaders": [], @@ -1641,7 +1644,7 @@ }, "eth_estimateGas": { "id": "eth_estimateGas", - "displayName": "Generates and returns an estimate of how much gas is necessary to allow the transaction to complete. The transaction will not be added to the blockchain. Note that the estimate may be significantly more than the amount of gas actually used by the transaction, for a variety of reasons including EVM mechanics and node performance.", + "displayName": "ethEstimateGas", "method": "POST", "path": [ { @@ -1685,6 +1688,7 @@ } ], "errors": [], + "description": "Generates and returns an estimate of how much gas is necessary to allow the transaction to complete. The transaction will not be added to the blockchain. Note that the estimate may be significantly more than the amount of gas actually used by the transaction, for a variety of reasons including EVM mechanics and node performance.", "operationId": "eth_estimateGas", "environments": [], "requestHeaders": [], @@ -1693,7 +1697,7 @@ }, "eth_gasPrice": { "id": "eth_gasPrice", - "displayName": "Returns the current price per gas in wei", + "displayName": "ethGasPrice", "method": "POST", "path": [ { @@ -1716,6 +1720,7 @@ } ], "errors": [], + "description": "Returns the current price per gas in wei", "operationId": "eth_gasPrice", "environments": [], "requestHeaders": [], @@ -1724,7 +1729,7 @@ }, "eth_getBalance": { "id": "eth_getBalance", - "displayName": "Returns Ether balance of a given or account or contract", + "displayName": "ethGetBalance", "method": "POST", "path": [ { @@ -1780,6 +1785,7 @@ } ], "errors": [], + "description": "Returns Ether balance of a given or account or contract", "operationId": "eth_getBalance", "environments": [], "requestHeaders": [], @@ -1788,7 +1794,7 @@ }, "eth_getBlockByHash": { "id": "eth_getBlockByHash", - "displayName": "Gets a block for a given hash", + "displayName": "ethGetBlockByHash", "method": "POST", "path": [ { @@ -1845,6 +1851,7 @@ } ], "errors": [], + "description": "Gets a block for a given hash", "operationId": "eth_getBlockByHash", "environments": [], "requestHeaders": [], @@ -1853,7 +1860,7 @@ }, "eth_getBlockByNumber": { "id": "eth_getBlockByNumber", - "displayName": "Gets a block for a given number", + "displayName": "ethGetBlockByNumber", "method": "POST", "path": [ { @@ -1910,6 +1917,7 @@ } ], "errors": [], + "description": "Gets a block for a given number", "operationId": "eth_getBlockByNumber", "environments": [], "requestHeaders": [], @@ -1918,7 +1926,7 @@ }, "eth_getBlockTransactionCountByHash": { "id": "eth_getBlockTransactionCountByHash", - "displayName": "Returns the number of transactions in a block from a block matching the given block hash.", + "displayName": "ethGetBlockTransactionCountByHash", "method": "POST", "path": [ { @@ -1962,6 +1970,7 @@ } ], "errors": [], + "description": "Returns the number of transactions in a block from a block matching the given block hash.", "operationId": "eth_getBlockTransactionCountByHash", "environments": [], "requestHeaders": [], @@ -1970,7 +1979,7 @@ }, "eth_getBlockTransactionCountByNumber": { "id": "eth_getBlockTransactionCountByNumber", - "displayName": "Returns the number of transactions in a block from a block matching the given block number.", + "displayName": "ethGetBlockTransactionCountByNumber", "method": "POST", "path": [ { @@ -2014,6 +2023,7 @@ } ], "errors": [], + "description": "Returns the number of transactions in a block from a block matching the given block number.", "operationId": "eth_getBlockTransactionCountByNumber", "environments": [], "requestHeaders": [], @@ -2022,7 +2032,7 @@ }, "eth_getCode": { "id": "eth_getCode", - "displayName": "Returns code at a given contract address", + "displayName": "ethGetCode", "method": "POST", "path": [ { @@ -2078,6 +2088,7 @@ } ], "errors": [], + "description": "Returns code at a given contract address", "operationId": "eth_getCode", "environments": [], "requestHeaders": [], @@ -2086,7 +2097,7 @@ }, "eth_getFilterChanges": { "id": "eth_getFilterChanges", - "displayName": "Polling method for a filter, which returns an array of logs which occurred since last poll.", + "displayName": "ethGetFilterChanges", "method": "POST", "path": [ { @@ -2136,6 +2147,7 @@ } ], "errors": [], + "description": "Polling method for a filter, which returns an array of logs which occurred since last poll.", "operationId": "eth_getFilterChanges", "environments": [], "requestHeaders": [], @@ -2144,7 +2156,7 @@ }, "eth_getFilterLogs": { "id": "eth_getFilterLogs", - "displayName": "Returns an array of all logs matching filter with given id.", + "displayName": "ethGetFilterLogs", "method": "POST", "path": [ { @@ -2194,6 +2206,7 @@ } ], "errors": [], + "description": "Returns an array of all logs matching filter with given id.", "operationId": "eth_getFilterLogs", "environments": [], "requestHeaders": [], @@ -2202,7 +2215,7 @@ }, "eth_getRawTransactionByHash": { "id": "eth_getRawTransactionByHash", - "displayName": "Returns raw transaction data of a transaction with the given hash.", + "displayName": "ethGetRawTransactionByHash", "method": "POST", "path": [ { @@ -2246,6 +2259,7 @@ } ], "errors": [], + "description": "Returns raw transaction data of a transaction with the given hash.", "operationId": "eth_getRawTransactionByHash", "environments": [], "requestHeaders": [], @@ -2254,7 +2268,7 @@ }, "eth_getRawTransactionByBlockHashAndIndex": { "id": "eth_getRawTransactionByBlockHashAndIndex", - "displayName": "Returns raw transaction data of a transaction with the block hash and index of which it was mined.", + "displayName": "ethGetRawTransactionByBlockHashAndIndex", "method": "POST", "path": [ { @@ -2309,6 +2323,7 @@ } ], "errors": [], + "description": "Returns raw transaction data of a transaction with the block hash and index of which it was mined.", "operationId": "eth_getRawTransactionByBlockHashAndIndex", "environments": [], "requestHeaders": [], @@ -2317,7 +2332,7 @@ }, "eth_getRawTransactionByBlockNumberAndIndex": { "id": "eth_getRawTransactionByBlockNumberAndIndex", - "displayName": "Returns raw transaction data of a transaction with the block number and index of which it was mined.", + "displayName": "ethGetRawTransactionByBlockNumberAndIndex", "method": "POST", "path": [ { @@ -2372,6 +2387,7 @@ } ], "errors": [], + "description": "Returns raw transaction data of a transaction with the block number and index of which it was mined.", "operationId": "eth_getRawTransactionByBlockNumberAndIndex", "environments": [], "requestHeaders": [], @@ -2380,7 +2396,7 @@ }, "eth_getLogs": { "id": "eth_getLogs", - "displayName": "Returns an array of all logs matching a given filter object.", + "displayName": "ethGetLogs", "method": "POST", "path": [ { @@ -2469,6 +2485,7 @@ } ], "errors": [], + "description": "Returns an array of all logs matching a given filter object.", "operationId": "eth_getLogs", "environments": [], "requestHeaders": [], @@ -2477,7 +2494,7 @@ }, "eth_getStorageAt": { "id": "eth_getStorageAt", - "displayName": "Gets a storage value from a contract address, a position, and an optional blockNumber", + "displayName": "ethGetStorageAt", "method": "POST", "path": [ { @@ -2541,6 +2558,7 @@ } ], "errors": [], + "description": "Gets a storage value from a contract address, a position, and an optional blockNumber", "operationId": "eth_getStorageAt", "environments": [], "requestHeaders": [], @@ -2549,7 +2567,7 @@ }, "eth_getTransactionByBlockHashAndIndex": { "id": "eth_getTransactionByBlockHashAndIndex", - "displayName": "Returns the information about a transaction requested by the block hash and index of which it was mined.", + "displayName": "ethGetTransactionByBlockHashAndIndex", "method": "POST", "path": [ { @@ -2628,6 +2646,7 @@ } } ], + "description": "Returns the information about a transaction requested by the block hash and index of which it was mined.", "operationId": "eth_getTransactionByBlockHashAndIndex", "environments": [], "requestHeaders": [], @@ -2636,7 +2655,7 @@ }, "eth_getTransactionByBlockNumberAndIndex": { "id": "eth_getTransactionByBlockNumberAndIndex", - "displayName": "Returns the information about a transaction requested by the block number and index of which it was mined.", + "displayName": "ethGetTransactionByBlockNumberAndIndex", "method": "POST", "path": [ { @@ -2691,6 +2710,7 @@ } ], "errors": [], + "description": "Returns the information about a transaction requested by the block number and index of which it was mined.", "operationId": "eth_getTransactionByBlockNumberAndIndex", "environments": [], "requestHeaders": [], @@ -2699,7 +2719,7 @@ }, "eth_getTransactionByHash": { "id": "eth_getTransactionByHash", - "displayName": "Returns the information about a transaction requested by transaction hash.", + "displayName": "ethGetTransactionByHash", "method": "POST", "path": [ { @@ -2743,6 +2763,7 @@ } ], "errors": [], + "description": "Returns the information about a transaction requested by transaction hash.", "operationId": "eth_getTransactionByHash", "environments": [], "requestHeaders": [], @@ -2751,7 +2772,7 @@ }, "eth_getTransactionCount": { "id": "eth_getTransactionCount", - "displayName": "Returns the number of transactions sent from an address", + "displayName": "ethGetTransactionCount", "method": "POST", "path": [ { @@ -2805,6 +2826,7 @@ } ], "errors": [], + "description": "Returns the number of transactions sent from an address", "operationId": "eth_getTransactionCount", "environments": [], "requestHeaders": [], @@ -2813,7 +2835,7 @@ }, "eth_getTransactionReceipt": { "id": "eth_getTransactionReceipt", - "displayName": "Returns the receipt information of a transaction by its hash.", + "displayName": "ethGetTransactionReceipt", "method": "POST", "path": [ { @@ -2857,6 +2879,7 @@ } ], "errors": [], + "description": "Returns the receipt information of a transaction by its hash.", "operationId": "eth_getTransactionReceipt", "environments": [], "requestHeaders": [], @@ -2865,7 +2888,7 @@ }, "eth_getUncleByBlockHashAndIndex": { "id": "eth_getUncleByBlockHashAndIndex", - "displayName": "Returns information about a uncle of a block by hash and uncle index position.", + "displayName": "ethGetUncleByBlockHashAndIndex", "method": "POST", "path": [ { @@ -2920,6 +2943,7 @@ } ], "errors": [], + "description": "Returns information about a uncle of a block by hash and uncle index position.", "operationId": "eth_getUncleByBlockHashAndIndex", "environments": [], "requestHeaders": [], @@ -2928,7 +2952,7 @@ }, "eth_getUncleByBlockNumberAndIndex": { "id": "eth_getUncleByBlockNumberAndIndex", - "displayName": "Returns information about a uncle of a block by hash and uncle index position.", + "displayName": "ethGetUncleByBlockNumberAndIndex", "method": "POST", "path": [ { @@ -3008,6 +3032,7 @@ } } ], + "description": "Returns information about a uncle of a block by hash and uncle index position.", "operationId": "eth_getUncleByBlockNumberAndIndex", "environments": [], "requestHeaders": [], @@ -3016,7 +3041,7 @@ }, "eth_getUncleCountByBlockHash": { "id": "eth_getUncleCountByBlockHash", - "displayName": "Returns the number of uncles in a block from a block matching the given block hash.", + "displayName": "ethGetUncleCountByBlockHash", "method": "POST", "path": [ { @@ -3060,6 +3085,7 @@ } ], "errors": [], + "description": "Returns the number of uncles in a block from a block matching the given block hash.", "operationId": "eth_getUncleCountByBlockHash", "environments": [], "requestHeaders": [], @@ -3068,7 +3094,7 @@ }, "eth_getUncleCountByBlockNumber": { "id": "eth_getUncleCountByBlockNumber", - "displayName": "Returns the number of uncles in a block from a block matching the given block number.", + "displayName": "ethGetUncleCountByBlockNumber", "method": "POST", "path": [ { @@ -3112,6 +3138,7 @@ } ], "errors": [], + "description": "Returns the number of uncles in a block from a block matching the given block number.", "operationId": "eth_getUncleCountByBlockNumber", "environments": [], "requestHeaders": [], @@ -3120,7 +3147,7 @@ }, "eth_getProof": { "id": "eth_getProof", - "displayName": "Returns the account- and storage-values of the specified account including the Merkle-proof.", + "displayName": "ethGetProof", "method": "POST", "path": [ { @@ -3249,6 +3276,7 @@ } ], "errors": [], + "description": "Returns the account- and storage-values of the specified account including the Merkle-proof.", "operationId": "eth_getProof", "environments": [], "requestHeaders": [], @@ -3257,7 +3285,7 @@ }, "eth_getWork": { "id": "eth_getWork", - "displayName": "Returns the hash of the current block, the seedHash, and the boundary condition to be met ('target').", + "displayName": "ethGetWork", "method": "POST", "path": [ { @@ -3311,6 +3339,7 @@ } ], "errors": [], + "description": "Returns the hash of the current block, the seedHash, and the boundary condition to be met ('target').", "operationId": "eth_getWork", "environments": [], "requestHeaders": [], @@ -3319,7 +3348,7 @@ }, "eth_hashrate": { "id": "eth_hashrate", - "displayName": "Returns the number of hashes per second that the node is mining with.", + "displayName": "ethHashrate", "method": "POST", "path": [ { @@ -3342,6 +3371,7 @@ } ], "errors": [], + "description": "Returns the number of hashes per second that the node is mining with.", "operationId": "eth_hashrate", "environments": [], "requestHeaders": [], @@ -3350,7 +3380,7 @@ }, "eth_mining": { "id": "eth_mining", - "displayName": "Returns true if client is actively mining new blocks.", + "displayName": "ethMining", "method": "POST", "path": [ { @@ -3375,6 +3405,7 @@ } ], "errors": [], + "description": "Returns true if client is actively mining new blocks.", "operationId": "eth_mining", "environments": [], "requestHeaders": [], @@ -3383,7 +3414,7 @@ }, "eth_newBlockFilter": { "id": "eth_newBlockFilter", - "displayName": "Creates a filter in the node, to notify when a new block arrives. To check if the state has changed, call eth_getFilterChanges.", + "displayName": "ethNewBlockFilter", "method": "POST", "path": [ { @@ -3406,6 +3437,7 @@ } ], "errors": [], + "description": "Creates a filter in the node, to notify when a new block arrives. To check if the state has changed, call eth_getFilterChanges.", "operationId": "eth_newBlockFilter", "environments": [], "requestHeaders": [], @@ -3414,7 +3446,7 @@ }, "eth_newFilter": { "id": "eth_newFilter", - "displayName": "Creates a filter object, based on filter options, to notify when the state changes (logs). To check if the state has changed, call eth_getFilterChanges.", + "displayName": "ethNewFilter", "method": "POST", "path": [ { @@ -3497,6 +3529,7 @@ } ], "errors": [], + "description": "Creates a filter object, based on filter options, to notify when the state changes (logs). To check if the state has changed, call eth_getFilterChanges.", "operationId": "eth_newFilter", "environments": [], "requestHeaders": [], @@ -3505,7 +3538,7 @@ }, "eth_newPendingTransactionFilter": { "id": "eth_newPendingTransactionFilter", - "displayName": "Creates a filter in the node, to notify when new pending transactions arrive. To check if the state has changed, call eth_getFilterChanges.", + "displayName": "ethNewPendingTransactionFilter", "method": "POST", "path": [ { @@ -3528,6 +3561,7 @@ } ], "errors": [], + "description": "Creates a filter in the node, to notify when new pending transactions arrive. To check if the state has changed, call eth_getFilterChanges.", "operationId": "eth_newPendingTransactionFilter", "environments": [], "requestHeaders": [], @@ -3536,7 +3570,7 @@ }, "eth_pendingTransactions": { "id": "eth_pendingTransactions", - "displayName": "Returns the transactions that are pending in the transaction pool and have a from address that is one of the accounts this node manages.", + "displayName": "ethPendingTransactions", "method": "POST", "path": [ { @@ -3559,6 +3593,7 @@ } ], "errors": [], + "description": "Returns the transactions that are pending in the transaction pool and have a from address that is one of the accounts this node manages.", "operationId": "eth_pendingTransactions", "environments": [], "requestHeaders": [], @@ -3567,7 +3602,7 @@ }, "eth_protocolVersion": { "id": "eth_protocolVersion", - "displayName": "Returns the current ethereum protocol version.", + "displayName": "ethProtocolVersion", "method": "POST", "path": [ { @@ -3590,6 +3625,7 @@ } ], "errors": [], + "description": "Returns the current ethereum protocol version.", "operationId": "eth_protocolVersion", "environments": [], "requestHeaders": [], @@ -3598,7 +3634,7 @@ }, "eth_sendRawTransaction": { "id": "eth_sendRawTransaction", - "displayName": "Creates new message call transaction or a contract creation for signed transactions.", + "displayName": "ethSendRawTransaction", "method": "POST", "path": [ { @@ -3643,6 +3679,7 @@ } ], "errors": [], + "description": "Creates new message call transaction or a contract creation for signed transactions.", "operationId": "eth_sendRawTransaction", "environments": [], "requestHeaders": [], @@ -3651,7 +3688,7 @@ }, "eth_submitHashrate": { "id": "eth_submitHashrate", - "displayName": "Used for submitting mining hashrate.", + "displayName": "ethSubmitHashrate", "method": "POST", "path": [ { @@ -3708,6 +3745,7 @@ } ], "errors": [], + "description": "Used for submitting mining hashrate.", "operationId": "eth_submitHashrate", "environments": [], "availability": "Deprecated", @@ -3717,7 +3755,7 @@ }, "eth_submitWork": { "id": "eth_submitWork", - "displayName": "Used for submitting a proof-of-work solution.", + "displayName": "ethSubmitWork", "method": "POST", "path": [ { @@ -3809,6 +3847,7 @@ } } ], + "description": "Used for submitting a proof-of-work solution.", "operationId": "eth_submitWork", "environments": [], "requestHeaders": [], @@ -3817,7 +3856,7 @@ }, "eth_syncing": { "id": "eth_syncing", - "displayName": "Returns an object with data about the sync status or false.", + "displayName": "ethSyncing", "method": "POST", "path": [ { @@ -3894,6 +3933,7 @@ } ], "errors": [], + "description": "Returns an object with data about the sync status or false.", "operationId": "eth_syncing", "environments": [], "requestHeaders": [], @@ -3902,7 +3942,7 @@ }, "eth_uninstallFilter": { "id": "eth_uninstallFilter", - "displayName": "Uninstalls a filter with given id. Should always be called when watch is no longer needed. Additionally Filters timeout when they aren't requested with eth_getFilterChanges for a period of time.", + "displayName": "ethUninstallFilter", "method": "POST", "path": [ { @@ -3948,6 +3988,7 @@ } ], "errors": [], + "description": "Uninstalls a filter with given id. Should always be called when watch is no longer needed. Additionally Filters timeout when they aren't requested with eth_getFilterChanges for a period of time.", "operationId": "eth_uninstallFilter", "environments": [], "requestHeaders": [], diff --git a/packages/parsers/src/openrpc/__test__/__snapshots__/petstore.json b/packages/parsers/src/openrpc/__test__/__snapshots__/petstore.json index 4ce686ce0c..1cf09e700a 100644 --- a/packages/parsers/src/openrpc/__test__/__snapshots__/petstore.json +++ b/packages/parsers/src/openrpc/__test__/__snapshots__/petstore.json @@ -83,7 +83,7 @@ "endpoints": { "list_pets": { "id": "list_pets", - "displayName": "List all pets", + "displayName": "listPets", "method": "POST", "path": [ { @@ -160,15 +160,21 @@ } } ], + "description": "List all pets", "operationId": "list_pets", - "environments": [], + "environments": [ + { + "id": "http://localhost:8080", + "baseUrl": "http://localhost:8080" + } + ], "requestHeaders": [], "responseHeaders": [], "namespace": [] }, "create_pet": { "id": "create_pet", - "displayName": "Create a pet", + "displayName": "createPet", "method": "POST", "path": [ { @@ -252,15 +258,21 @@ } } ], + "description": "Create a pet", "operationId": "create_pet", - "environments": [], + "environments": [ + { + "id": "http://localhost:8080", + "baseUrl": "http://localhost:8080" + } + ], "requestHeaders": [], "responseHeaders": [], "namespace": [] }, "get_pet": { "id": "get_pet", - "displayName": "Info for a specific pet", + "displayName": "getPet", "method": "POST", "path": [ { @@ -332,8 +344,14 @@ } } ], + "description": "Info for a specific pet", "operationId": "get_pet", - "environments": [], + "environments": [ + { + "id": "http://localhost:8080", + "baseUrl": "http://localhost:8080" + } + ], "requestHeaders": [], "responseHeaders": [], "namespace": [] diff --git a/packages/parsers/src/openrpc/__test__/__snapshots__/solana.json b/packages/parsers/src/openrpc/__test__/__snapshots__/solana.json new file mode 100644 index 0000000000..7684a34b69 --- /dev/null +++ b/packages/parsers/src/openrpc/__test__/__snapshots__/solana.json @@ -0,0 +1,7168 @@ +{ + "id": "test-uuid-replacement", + "types": {}, + "endpoints": { + "getAccountInfo": { + "id": "getAccountInfo", + "displayName": "getAccountInfo", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Pubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Pubkey of the account to query." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "encoding", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "base58" + }, + { + "value": "base64" + }, + { + "value": "base64+zstd" + }, + { + "value": "jsonParsed" + } + ] + }, + "description": "Encoding format for account data." + }, + { + "key": "dataSlice", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "length", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of bytes to return." + }, + { + "key": "offset", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Byte offset from which to start reading." + } + ] + } + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + } + ] + }, + "description": "Optional configuration object for additional settings." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "lamports", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of lamports assigned to this account." + }, + { + "key": "owner", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Program owner of this account." + }, + { + "key": "data", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Account data in the specified encoding format." + }, + { + "key": "executable", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + }, + "description": "Indicates if the account contains a program." + }, + { + "key": "rentEpoch", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The epoch at which this account will next owe rent." + }, + { + "key": "size", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The data size of the account." + } + ] + } + } + ], + "errors": [], + "description": "Returns all information associated with the account of provided Pubkey.", + "operationId": "getAccountInfo", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getBalance": { + "id": "getBalance", + "displayName": "getBalance", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Pubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Pubkey of the account to query." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + } + ] + }, + "description": "Optional configuration object containing additional settings." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + ], + "errors": [], + "description": "Returns the lamport balance of the account of the provided Pubkey.", + "operationId": "getBalance", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getBlock": { + "id": "getBlock", + "displayName": "getBlock", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "slot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Slot number as a u64 integer." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ], + "default": "finalized" + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "encoding", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "json" + }, + { + "value": "jsonParsed" + }, + { + "value": "base58" + }, + { + "value": "base64" + } + ], + "default": "json" + }, + "description": "Encoding format for transactions." + }, + { + "key": "transactionDetails", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "full" + }, + { + "value": "accounts" + }, + { + "value": "signatures" + }, + { + "value": "none" + } + ], + "default": "full" + }, + "description": "Level of transaction detail to return." + }, + { + "key": "maxSupportedTransactionVersion", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Max transaction version to return." + }, + { + "key": "rewards", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean", + "default": true + } + } + }, + "description": "Include rewards array if true." + } + ] + }, + "description": "Optional configuration object containing additional settings." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "blockhash", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Blockhash of this block." + }, + { + "key": "previousBlockhash", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Blockhash of the parent block." + }, + { + "key": "parentSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Slot index of the parent block." + }, + { + "key": "transactions", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "slot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The slot this transaction was processed in." + }, + { + "key": "transaction", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "signatures", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "An array of signatures applied to the transaction." + }, + { + "key": "message", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "accountKeys", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "An array of account keys used by the transaction." + }, + { + "key": "header", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "numRequiredSignatures", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The number of signatures required for the transaction." + }, + { + "key": "numReadonlySignedAccounts", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of read-only signed accounts." + }, + { + "key": "numReadonlyUnsignedAccounts", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of read-only unsigned accounts." + } + ] + } + }, + { + "key": "instructions", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "accounts", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "List of account indices to be passed to the program." + }, + { + "key": "data", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The program input data encoded as a base-58 string." + }, + { + "key": "programIdIndex", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Index into the message.accountKeys array indicating the program account." + } + ] + } + } + } + }, + { + "key": "recentBlockhash", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The recent blockhash used by the transaction." + } + ] + } + } + ] + }, + "description": "The transaction details, either in JSON format or encoded binary data, depending on the encoding parameter." + }, + { + "key": "blockTime", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "Estimated production time as a Unix timestamp. Null if not available." + }, + { + "key": "meta", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "err", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "object", + "extends": [], + "properties": [] + } + } + }, + "description": "Error if the transaction failed, null if it succeeded." + }, + { + "key": "fee", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Fee charged for this transaction." + }, + { + "key": "preBalances", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "Array of u64 account balances before the transaction." + }, + { + "key": "postBalances", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "Array of u64 account balances after the transaction." + }, + { + "key": "innerInstructions", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "index", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Index of the instruction in the transaction." + }, + { + "key": "instructions", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "programId", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Program ID invoked by this instruction." + }, + { + "key": "accounts", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Account addresses involved in this instruction." + }, + { + "key": "data", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The program input data encoded as a base-58 string." + } + ] + } + } + } + } + ] + } + } + }, + "description": "List of inner instructions or null if not enabled." + }, + { + "key": "preTokenBalances", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "amount", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The raw balance without decimals, a string representation of u64." + }, + { + "key": "decimals", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of base-10 digits to the right of the decimal place." + }, + { + "key": "uiAmount", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + } + } + }, + "description": "The balance, using mint-prescribed decimals. **DEPRECATED**" + }, + { + "key": "uiAmountString", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The balance as a string, using mint-prescribed decimals." + } + ] + } + } + }, + "description": "Token balances before the transaction, if available." + }, + { + "key": "postTokenBalances", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "amount", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The raw balance without decimals, a string representation of u64." + }, + { + "key": "decimals", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of base-10 digits to the right of the decimal place." + }, + { + "key": "uiAmount", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + } + } + }, + "description": "The balance, using mint-prescribed decimals. **DEPRECATED**" + }, + { + "key": "uiAmountString", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The balance as a string, using mint-prescribed decimals." + } + ] + } + } + }, + "description": "Token balances after the transaction, if available." + }, + { + "key": "logMessages", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Array of string log messages or null if not enabled." + }, + { + "key": "rewards", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "pubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The public key of the rewarded account." + }, + { + "key": "lamports", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The amount of reward in lamports." + }, + { + "key": "postBalance", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The balance of the account after the reward was applied." + }, + { + "key": "rewardType", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "fee" + }, + { + "value": "rent" + }, + { + "value": "voting" + }, + { + "value": "staking" + } + ] + }, + "description": "The type of reward." + }, + { + "key": "commission", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "The vote account commission when the reward was credited, if applicable." + } + ] + } + } + }, + "description": "Transaction-level rewards." + }, + { + "key": "loadedAddresses", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "object", + "extends": [], + "properties": [] + } + } + }, + "description": "Transaction addresses loaded from address lookup tables." + }, + { + "key": "returnData", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "object", + "extends": [], + "properties": [] + } + } + }, + "description": "Return data generated by an instruction in the transaction." + }, + { + "key": "computeUnitsConsumed", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "Number of compute units consumed by the transaction." + } + ] + } + } + }, + "description": "Transaction status metadata." + }, + { + "key": "version", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Transaction version. Undefined if not set." + } + ] + } + } + }, + "description": "Array of transaction objects." + }, + { + "key": "signatures", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Array of transaction signatures." + }, + { + "key": "rewards", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "pubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The public key of the rewarded account." + }, + { + "key": "lamports", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The amount of reward in lamports." + }, + { + "key": "postBalance", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The balance of the account after the reward was applied." + }, + { + "key": "rewardType", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "fee" + }, + { + "value": "rent" + }, + { + "value": "voting" + }, + { + "value": "staking" + } + ] + }, + "description": "The type of reward." + }, + { + "key": "commission", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "The vote account commission when the reward was credited, if applicable." + } + ] + } + } + }, + "description": "Block-level rewards." + }, + { + "key": "blockTime", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Estimated production time as Unix timestamp." + }, + { + "key": "blockHeight", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of blocks beneath this block." + } + ] + } + } + ], + "errors": [], + "description": "Returns identity and transaction information about a confirmed block in the ledger.", + "operationId": "getBlock", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getBlockCommitment": { + "id": "getBlockCommitment", + "displayName": "getBlockCommitment", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "block", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Block number, identified by Slot." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "Cluster stake in lamports voted on the block." + }, + { + "key": "totalStake", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Total active stake in lamports." + } + ] + } + } + ], + "errors": [], + "description": "Returns the commitment for a particular block.", + "operationId": "getBlockCommitment", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getBlockHeight": { + "id": "getBlockHeight", + "displayName": "getBlockHeight", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + } + ] + }, + "description": "Optional configuration object containing additional request parameters." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + ], + "errors": [], + "description": "Returns the current block height of the node.", + "operationId": "getBlockHeight", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getBlockProduction": { + "id": "getBlockProduction", + "displayName": "getBlockProduction", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "identity", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Validator identity to filter results." + }, + { + "key": "range", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "firstSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "First slot to return block production for." + }, + { + "key": "lastSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Last slot to return block production for." + } + ] + } + } + ] + }, + "description": "Optional configuration object containing additional settings." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "byIdentity", + "valueShape": { + "type": "alias", + "value": { + "type": "map", + "keyShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + } + } + }, + "description": "Validator identities with leader slots and blocks produced." + }, + { + "key": "range", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "firstSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "First slot to return block production for." + }, + { + "key": "lastSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Last slot to return block production for." + } + ] + } + } + ] + } + } + ], + "errors": [], + "description": "Returns recent block production information from the current or previous epoch.", + "operationId": "getBlockProduction", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getBlocks": { + "id": "getBlocks", + "displayName": "getBlocks", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "start_slot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The starting slot." + }, + { + "key": "end_slot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The ending slot." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ], + "default": "finalized" + }, + "description": "Configures the state commitment for querying." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + } + } + ], + "errors": [], + "description": "Returns a list of confirmed blocks between two slots.", + "operationId": "getBlocks", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getBlocksWithLimit": { + "id": "getBlocksWithLimit", + "displayName": "getBlocksWithLimit", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "start_slot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The starting slot." + }, + { + "key": "limit", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The limit for the number of blocks to return." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ], + "default": "finalized" + }, + "description": "Configures the state commitment for querying." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + } + } + ], + "errors": [], + "description": "Returns a list of confirmed blocks starting at the given slot.", + "operationId": "getBlocksWithLimit", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getBlockTime": { + "id": "getBlockTime", + "displayName": "getBlockTime", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "block", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "block", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Block number identified by Slot." + } + ] + }, + "description": "Block number, identified by Slot." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + ], + "errors": [], + "description": "Returns the estimated production time of a block.", + "operationId": "getBlockTime", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getClusterNodes": { + "id": "getClusterNodes", + "displayName": "getClusterNodes", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "pubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Node public key." + }, + { + "key": "gossip", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Gossip network address." + }, + { + "key": "tpu", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "TPU network address." + }, + { + "key": "rpc", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "JSON RPC network address." + }, + { + "key": "version", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Software version of the node." + }, + { + "key": "featureSet", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "Unique identifier of the node's feature set." + }, + { + "key": "shredVersion", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "Shred version used by the node." + } + ] + } + } + } + } + ], + "errors": [], + "description": "Returns information about all the nodes participating in the cluster.", + "operationId": "getClusterNodes", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getEpochInfo": { + "id": "getEpochInfo", + "displayName": "getEpochInfo", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "absoluteSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Current slot." + }, + { + "key": "blockHeight", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Current block height." + }, + { + "key": "epoch", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Current epoch." + }, + { + "key": "slotIndex", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Slot index relative to the start of the epoch." + }, + { + "key": "slotsInEpoch", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of slots in this epoch." + }, + { + "key": "transactionCount", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "Total transactions processed without error since genesis." + } + ] + } + } + ], + "errors": [], + "description": "Returns information about the current epoch.", + "operationId": "getEpochInfo", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getEpochSchedule": { + "id": "getEpochSchedule", + "displayName": "getEpochSchedule", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "slotsPerEpoch", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Max number of slots in each epoch." + }, + { + "key": "leaderScheduleSlotOffset", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Slots before epoch to calculate leader schedule." + }, + { + "key": "warmup", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + }, + "description": "Whether epochs start short and grow." + }, + { + "key": "firstNormalEpoch", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "First normal-length epoch." + }, + { + "key": "firstNormalSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "First normal slot." + } + ] + } + } + ], + "errors": [], + "description": "Returns the epoch schedule information from the cluster's genesis config.", + "operationId": "getEpochSchedule", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getFeeForMessage": { + "id": "getFeeForMessage", + "displayName": "getFeeForMessage", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Message", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Message", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Base-64 encoded Message." + } + ] + }, + "description": "Base-64 encoded Message." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + } + } + ], + "errors": [], + "description": "Get the fee the network will charge for a particular Message.", + "operationId": "getFeeForMessage", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getFirstAvailableBlock": { + "id": "getFirstAvailableBlock", + "displayName": "getFirstAvailableBlock", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + ], + "errors": [], + "description": "Returns the slot of the lowest confirmed block that has not been purged from the ledger.", + "operationId": "getFirstAvailableBlock", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getGenesisHash": { + "id": "getGenesisHash", + "displayName": "getGenesisHash", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + ], + "errors": [], + "description": "Returns the genesis hash.", + "operationId": "getGenesisHash", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getHealth": { + "id": "getHealth", + "displayName": "getHealth", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + ], + "errors": [], + "description": "Returns the current health of the node.", + "operationId": "getHealth", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getHighestSnapshotSlot": { + "id": "getHighestSnapshotSlot", + "displayName": "getHighestSnapshotSlot", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "full", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Highest full snapshot slot." + }, + { + "key": "incremental", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "Highest incremental snapshot slot based on the full snapshot." + } + ] + } + } + ], + "errors": [], + "description": "Returns the highest slot information that the node has snapshots for.", + "operationId": "getHighestSnapshotSlot", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getIdentity": { + "id": "getIdentity", + "displayName": "getIdentity", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "identity", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Identity pubkey of the current node." + } + ] + } + } + ], + "errors": [], + "description": "Returns the identity pubkey for the current node.", + "operationId": "getIdentity", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getInflationGovernor": { + "id": "getInflationGovernor", + "displayName": "getInflationGovernor", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "initial", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + }, + "description": "Initial inflation percentage from time 0." + }, + { + "key": "terminal", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + }, + "description": "Terminal inflation percentage." + }, + { + "key": "taper", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + }, + "description": "Rate per year at which inflation is lowered." + }, + { + "key": "foundation", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + }, + "description": "Percentage of total inflation allocated to the foundation." + }, + { + "key": "foundationTerm", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + }, + "description": "Duration of foundation pool inflation in years." + } + ] + } + } + ], + "errors": [], + "description": "Returns the current inflation governor.", + "operationId": "getInflationGovernor", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getInflationRate": { + "id": "getInflationRate", + "displayName": "getInflationRate", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "total", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + }, + "description": "Total inflation rate." + }, + { + "key": "validator", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + }, + "description": "Inflation rate allocated to validators." + }, + { + "key": "foundation", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + }, + "description": "Inflation rate allocated to the foundation." + }, + { + "key": "epoch", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Epoch for which these values are valid." + } + ] + } + } + ], + "errors": [], + "description": "Returns the specific inflation values for the current epoch.", + "operationId": "getInflationRate", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getInflationReward": { + "id": "getInflationReward", + "displayName": "getInflationReward", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Addresses", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Addresses", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Array of addresses to query." + }, + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "epoch", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Epoch for which the reward occurs." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + } + ] + }, + "description": "An array of addresses to query." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "epoch", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Epoch for which the reward occurred." + }, + { + "key": "effectiveSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Slot in which rewards are effective." + }, + { + "key": "amount", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Reward amount in lamports." + }, + { + "key": "postBalance", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Post balance of the account in lamports." + }, + { + "key": "commission", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "Vote account commission when reward was credited." + } + ] + } + } + } + } + } + } + ], + "errors": [], + "description": "Returns the inflation or staking reward for a list of addresses for a specified epoch.", + "operationId": "getInflationReward", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getLargestAccounts": { + "id": "getLargestAccounts", + "displayName": "getLargestAccounts", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "filter", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "circulating" + }, + { + "value": "nonCirculating" + } + ] + }, + "description": "Filter results by account type." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "address", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Address of the account." + }, + { + "key": "lamports", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of lamports in the account." + } + ] + } + } + } + } + ], + "errors": [], + "description": "Returns the 20 largest accounts, by lamport balance.", + "operationId": "getLargestAccounts", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getLatestBlockhash": { + "id": "getLatestBlockhash", + "displayName": "getLatestBlockhash", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + } + ] + }, + "description": "A configuration object with optional fields for specifying commitment and minimum context slot." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "blockhash", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Blockhash as a base-58 encoded string." + }, + { + "key": "lastValidBlockHeight", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Last block height at which the blockhash is valid." + } + ] + } + } + ], + "errors": [], + "description": "Returns the latest blockhash.", + "operationId": "getLatestBlockhash", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getMaxRetransmitSlot": { + "id": "getMaxRetransmitSlot", + "displayName": "getMaxRetransmitSlot", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + ], + "errors": [], + "description": "Get the max slot seen from the retransmit stage.", + "operationId": "getMaxRetransmitSlot", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getMaxShredInsertSlot": { + "id": "getMaxShredInsertSlot", + "displayName": "getMaxShredInsertSlot", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + ], + "errors": [], + "description": "Get the max slot seen from after shred insert.", + "operationId": "getMaxShredInsertSlot", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getMinimumBalanceForRentExemption": { + "id": "getMinimumBalanceForRentExemption", + "displayName": "getMinimumBalanceForRentExemption", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Account data length", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "dataLength", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Account's data length in bytes." + } + ] + }, + "description": "The account's data length in bytes." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + ], + "errors": [], + "description": "Returns the minimum balance required to make an account rent exempt.", + "operationId": "getMinimumBalanceForRentExemption", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getMultipleAccounts": { + "id": "getMultipleAccounts", + "displayName": "getMultipleAccounts", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Pubkeys", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "An array of Pubkeys to query." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + }, + { + "key": "dataSlice", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "length", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of bytes to return." + }, + { + "key": "offset", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Byte offset from which to start reading." + } + ] + } + }, + { + "key": "encoding", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "base58" + }, + { + "value": "base64" + }, + { + "value": "base64+zstd" + }, + { + "value": "jsonParsed" + } + ], + "default": "base64" + }, + "description": "Encoding format for data." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "lamports", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of lamports assigned to this account." + }, + { + "key": "owner", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Program owner of this account." + }, + { + "key": "data", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Account data in the specified encoding format." + }, + { + "key": "executable", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + }, + "description": "Indicates if the account contains a program." + }, + { + "key": "rentEpoch", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The epoch at which this account will next owe rent." + }, + { + "key": "size", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The data size of the account." + } + ] + } + } + } + } + ], + "errors": [], + "description": "Returns the account information for a list of Pubkeys.", + "operationId": "getMultipleAccounts", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getProgramAccounts": { + "id": "getProgramAccounts", + "displayName": "getProgramAccounts", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Pubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The Pubkey of the program." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + }, + { + "key": "withContext", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + }, + "description": "If set, wraps the result in an `RpcResponse` JSON object." + }, + { + "key": "encoding", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "base58" + }, + { + "value": "base64" + }, + { + "value": "base64+zstd" + }, + { + "value": "jsonParsed" + } + ], + "default": "json" + }, + "description": "Encoding format for data." + }, + { + "key": "dataSlice", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "length", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of bytes to return." + }, + { + "key": "offset", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Byte offset from which to start reading." + } + ] + } + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "pubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The account Pubkey as a base-58 encoded string." + }, + { + "key": "account", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "lamports", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of lamports assigned to this account." + }, + { + "key": "owner", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Program owner of this account." + }, + { + "key": "data", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Account data in the specified encoding format." + }, + { + "key": "executable", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + }, + "description": "Indicates if the account contains a program." + }, + { + "key": "rentEpoch", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The epoch at which this account will next owe rent." + }, + { + "key": "size", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The data size of the account." + } + ] + } + } + ] + } + } + } + } + ], + "errors": [], + "description": "Returns all accounts owned by the provided program Pubkey.", + "operationId": "getProgramAccounts", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getRecentPerformanceSamples": { + "id": "getRecentPerformanceSamples", + "displayName": "getRecentPerformanceSamples", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "limit", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The number of samples to return." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "slot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The slot in which the sample was taken." + }, + { + "key": "numTransactions", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The number of transactions processed during the sample period." + }, + { + "key": "numSlots", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The number of slots completed during the sample period." + }, + { + "key": "samplePeriodSecs", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The number of seconds in a sample window." + }, + { + "key": "numNonVoteTransactions", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The number of non-vote transactions processed during the sample period." + } + ] + } + } + } + } + ], + "errors": [], + "description": "Returns a list of recent performance samples, in reverse slot order.", + "operationId": "getRecentPerformanceSamples", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getRecentPrioritizationFees": { + "id": "getRecentPrioritizationFees", + "displayName": "getRecentPrioritizationFees", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Account addresses", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "An array of up to 128 account addresses. If provided, the response will reflect a fee to land a transaction locking all of the provided accounts as writable." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "slot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Slot in which the fee was observed." + }, + { + "key": "prioritizationFee", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The per-compute-unit fee in micro-lamports." + } + ] + } + } + } + } + ], + "errors": [], + "description": "Returns a list of prioritization fees from recent blocks.", + "operationId": "getRecentPrioritizationFees", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getSignaturesForAddress": { + "id": "getSignaturesForAddress", + "displayName": "getSignaturesForAddress", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Account address", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The account address." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + }, + { + "key": "limit", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer", + "default": 1000 + } + } + }, + "description": "The maximum number of transaction signatures to return (between 1 and 1,000)." + }, + { + "key": "before", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Start searching backwards from this transaction signature." + }, + { + "key": "until", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Search until this transaction signature, if found before the limit is reached." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "signature", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The transaction signature as a base-58 encoded string." + }, + { + "key": "slot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The slot that contains the block with the transaction." + }, + { + "key": "err", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "object", + "extends": [], + "properties": [] + } + } + }, + "description": "Error if the transaction failed, null if the transaction succeeded." + }, + { + "key": "memo", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "The memo associated with the transaction, null if no memo is present." + }, + { + "key": "blockTime", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "The estimated production time of the transaction as a Unix timestamp, null if not available." + }, + { + "key": "confirmationStatus", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "The transaction's cluster confirmation status, either `processed`, `confirmed`, or `finalized`." + } + ] + } + } + } + } + ], + "errors": [], + "description": "Returns signatures for confirmed transactions that include the given address.", + "operationId": "getSignaturesForAddress", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getSignatureStatuses": { + "id": "getSignatureStatuses", + "displayName": "getSignatureStatuses", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Signatures", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "An array of transaction signatures to confirm." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "searchTransactionHistory", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + }, + "description": "If true, searches the ledger cache for any signatures not found in the recent status cache." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "slot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The slot in which the transaction was processed." + }, + { + "key": "confirmations", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "The number of blocks since signature confirmation, or null if rooted and finalized." + }, + { + "key": "err", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "object", + "extends": [], + "properties": [] + } + } + }, + "description": "Error if the transaction failed, or null if the transaction succeeded." + }, + { + "key": "confirmationStatus", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "The transaction's cluster confirmation status." + }, + { + "key": "status", + "valueShape": { + "type": "object", + "extends": [], + "properties": [] + }, + "description": "DEPRECATED. The transaction status." + } + ] + } + } + } + } + ], + "errors": [], + "description": "Returns the statuses of a list of transaction signatures.", + "operationId": "getSignatureStatuses", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getSlot": { + "id": "getSlot", + "displayName": "getSlot", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + } + ] + }, + "description": "Optional configuration object containing additional settings." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + ], + "errors": [], + "description": "Returns the slot that has reached the given or default commitment level.", + "operationId": "getSlot", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getSlotLeader": { + "id": "getSlotLeader", + "displayName": "getSlotLeader", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + } + ] + }, + "description": "Optional configuration object containing additional settings." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + ], + "errors": [], + "description": "Returns the current slot leader.", + "operationId": "getSlotLeader", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getSlotLeaders": { + "id": "getSlotLeaders", + "displayName": "getSlotLeaders", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Start slot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The starting slot as a u64 integer." + }, + { + "key": "Limit", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The number of slot leaders to return, between 1 and 5,000." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + } + } + ], + "errors": [], + "description": "Returns the slot leaders for a given slot range.", + "operationId": "getSlotLeaders", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getSupply": { + "id": "getSupply", + "displayName": "getSupply", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "excludeNonCirculatingAccountsList", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + }, + "description": "Exclude non-circulating accounts list from the response." + } + ] + }, + "description": "Optional configuration object containing additional settings." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "total", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The total supply in lamports." + }, + { + "key": "circulating", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The circulating supply in lamports." + }, + { + "key": "nonCirculating", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The non-circulating supply in lamports." + }, + { + "key": "nonCirculatingAccounts", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "An array of account addresses of non-circulating accounts." + } + ] + } + } + ], + "errors": [], + "description": "Returns information about the current supply of lamports.", + "operationId": "getSupply", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getTokenAccountBalance": { + "id": "getTokenAccountBalance", + "displayName": "getTokenAccountBalance", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Token account Pubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The Pubkey of the token account to query." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + } + ] + }, + "description": "Optional configuration object containing additional settings." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "amount", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The raw balance without decimals, a string representation of u64." + }, + { + "key": "decimals", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of base-10 digits to the right of the decimal place." + }, + { + "key": "uiAmount", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + } + } + }, + "description": "The balance, using mint-prescribed decimals. **DEPRECATED**" + }, + { + "key": "uiAmountString", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The balance as a string, using mint-prescribed decimals." + } + ] + } + } + ], + "errors": [], + "description": "Returns the token balance of an SPL Token account.", + "operationId": "getTokenAccountBalance", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getTokenAccountsByOwner": { + "id": "getTokenAccountsByOwner", + "displayName": "getTokenAccountsByOwner", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Token owner Pubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The Pubkey of the account owner to query." + }, + { + "key": "Token filter", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "mint", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The Pubkey of the specific token Mint to limit accounts to." + }, + { + "key": "programId", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The Pubkey of the Token program that owns the accounts." + } + ] + }, + "description": "A filter object containing either the Mint Pubkey or the Token program Pubkey." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + }, + { + "key": "dataSlice", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "length", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of bytes to return." + }, + { + "key": "offset", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Byte offset from which to start reading." + } + ] + } + }, + { + "key": "encoding", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "base58" + }, + { + "value": "base64" + }, + { + "value": "base64+zstd" + }, + { + "value": "jsonParsed" + } + ] + }, + "description": "Encoding format for account data." + } + ] + }, + "description": "Optional configuration object containing additional settings." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "pubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The account Pubkey as a base-58 encoded string." + }, + { + "key": "account", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "lamports", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of lamports assigned to this account." + }, + { + "key": "owner", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Program owner of this account." + }, + { + "key": "data", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Account data in the specified encoding format." + }, + { + "key": "executable", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + }, + "description": "Indicates if the account contains a program." + }, + { + "key": "rentEpoch", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The epoch at which this account will next owe rent." + }, + { + "key": "size", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The data size of the account." + } + ] + } + } + ] + } + } + } + } + ], + "errors": [], + "description": "Returns all SPL Token accounts owned by the specified token owner.", + "operationId": "getTokenAccountsByOwner", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getTokenSupply": { + "id": "getTokenSupply", + "displayName": "getTokenSupply", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Token Mint Pubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The Pubkey of the token Mint to query." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + } + ] + }, + "description": "Optional configuration object containing additional settings." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "amount", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The raw balance without decimals, a string representation of u64." + }, + { + "key": "decimals", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of base-10 digits to the right of the decimal place." + }, + { + "key": "uiAmount", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + } + } + }, + "description": "The balance, using mint-prescribed decimals. **DEPRECATED**" + }, + { + "key": "uiAmountString", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The balance as a string, using mint-prescribed decimals." + } + ] + } + } + ], + "errors": [], + "description": "Returns the total supply of an SPL Token type.", + "operationId": "getTokenSupply", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getTransaction": { + "id": "getTransaction", + "displayName": "getTransaction", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Transaction signature", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Transaction signature as a base-58 encoded string." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Commitment level to use. `Processed` is not supported." + }, + { + "key": "maxSupportedTransactionVersion", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Sets the max transaction version to return." + }, + { + "key": "encoding", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "json" + }, + { + "value": "jsonParsed" + }, + { + "value": "base64" + }, + { + "value": "base58" + } + ] + }, + "description": "Encoding format for the returned transaction." + } + ] + }, + "description": "Optional configuration object containing additional settings." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "slot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The slot this transaction was processed in." + }, + { + "key": "transaction", + "valueShape": { + "type": "object", + "extends": [], + "properties": [] + }, + "description": "The transaction details, either in JSON format or encoded binary data." + }, + { + "key": "blockTime", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + }, + "description": "Estimated production time as a Unix timestamp." + }, + { + "key": "meta", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "object", + "extends": [], + "properties": [] + } + } + }, + "description": "Transaction status metadata." + }, + { + "key": "version", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Transaction version." + } + ] + } + } + ], + "errors": [], + "description": "Returns transaction details for a confirmed transaction.", + "operationId": "getTransaction", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getVersion": { + "id": "getVersion", + "displayName": "getVersion", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "solana-core", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The software version of solana-core." + }, + { + "key": "feature-set", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Unique identifier of the current software's feature set." + } + ] + } + } + ], + "errors": [], + "description": "Returns the current Solana version running on the node.", + "operationId": "getVersion", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "getVoteAccounts": { + "id": "getVoteAccounts", + "displayName": "getVoteAccounts", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "votePubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Return results for this validator vote address." + }, + { + "key": "keepUnstakedDelinquents", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + }, + "description": "Do not filter out delinquent validators with no stake." + }, + { + "key": "delinquentSlotDistance", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of slots behind the tip for a validator to be considered delinquent." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "current", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "votePubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Vote account address." + }, + { + "key": "nodePubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Validator identity." + }, + { + "key": "activatedStake", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Active stake in lamports delegated to this vote account." + }, + { + "key": "epochVoteAccount", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + }, + "description": "Whether the vote account is staked for this epoch." + }, + { + "key": "commission", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + }, + "description": "Percentage of rewards payout owed to the vote account." + }, + { + "key": "lastVote", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Most recent slot voted on by this vote account." + }, + { + "key": "epochCredits", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + } + } + }, + "description": "History of earned credits for up to five epochs." + }, + { + "key": "rootSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Current root slot for this vote account." + } + ] + } + } + }, + "description": "List of current vote accounts." + }, + { + "key": "delinquent", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "votePubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Vote account address." + }, + { + "key": "nodePubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Validator identity." + }, + { + "key": "activatedStake", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Active stake in lamports delegated to this vote account." + }, + { + "key": "epochVoteAccount", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + }, + "description": "Whether the vote account is staked for this epoch." + }, + { + "key": "commission", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "double" + } + } + }, + "description": "Percentage of rewards payout owed to the vote account." + }, + { + "key": "lastVote", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Most recent slot voted on by this vote account." + }, + { + "key": "epochCredits", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + } + } + }, + "description": "History of earned credits for up to five epochs." + }, + { + "key": "rootSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Current root slot for this vote account." + } + ] + } + } + }, + "description": "List of delinquent vote accounts." + } + ] + } + } + ], + "errors": [], + "description": "Returns the account info and associated stake for all voting accounts in the current bank.", + "operationId": "getVoteAccounts", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "isBlockhashValid": { + "id": "isBlockhashValid", + "displayName": "isBlockhashValid", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "blockhash", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The blockhash of the block to evaluate." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "blockhash", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The blockhash to evaluate, as a base-58 encoded string." + }, + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + } + } + ], + "errors": [], + "description": "Returns whether a blockhash is still valid or not.", + "operationId": "isBlockhashValid", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "minimumLedgerSlot": { + "id": "minimumLedgerSlot", + "displayName": "minimumLedgerSlot", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + } + } + ], + "errors": [], + "description": "Returns the lowest slot that the node has information about in its ledger.", + "operationId": "minimumLedgerSlot", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "requestAirdrop": { + "id": "requestAirdrop", + "displayName": "requestAirdrop", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Pubkey", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The Pubkey of the account to receive lamports." + }, + { + "key": "Lamports", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The number of lamports to airdrop, as a \"u64\"." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ] + }, + "description": "Configures the state commitment for querying." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + ], + "errors": [], + "description": "Requests an airdrop of lamports to a Pubkey.", + "operationId": "requestAirdrop", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "sendTransaction": { + "id": "sendTransaction", + "displayName": "sendTransaction", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Transaction", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Fully-signed Transaction, as encoded string." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "encoding", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "base58" + }, + { + "value": "base64" + } + ], + "default": "base58" + }, + "description": "Encoding used for the transaction data." + }, + { + "key": "skipPreflight", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean", + "default": false + } + } + }, + "description": "Skip preflight transaction checks if `true`." + }, + { + "key": "preflightCommitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ], + "default": "finalized" + }, + "description": "Commitment level to use for preflight." + }, + { + "key": "maxRetries", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Maximum retries for the RPC node to send the transaction." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + } + ] + }, + "description": "Optional configuration object." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + ], + "errors": [], + "description": "Submits a signed transaction to the cluster for processing.", + "operationId": "sendTransaction", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + }, + "simulateTransaction": { + "id": "simulateTransaction", + "displayName": "simulateTransaction", + "method": "POST", + "path": [ + { + "type": "literal", + "value": "" + } + ], + "pathParameters": [], + "queryParameters": [], + "requests": [ + { + "contentType": "application/json", + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "Transaction", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "The transaction to simulate, as an encoded string." + }, + { + "key": "Configuration", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "commitment", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "processed" + }, + { + "value": "confirmed" + }, + { + "value": "finalized" + } + ], + "default": "finalized" + }, + "description": "Configures the state commitment for querying." + }, + { + "key": "sigVerify", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean", + "default": false + } + } + }, + "description": "If true, the transaction signatures will be verified." + }, + { + "key": "replaceRecentBlockhash", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean", + "default": false + } + } + }, + "description": "If true, replaces recent blockhash with the most recent one." + }, + { + "key": "minContextSlot", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The minimum slot that the request can be evaluated at." + }, + { + "key": "encoding", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "base58" + }, + { + "value": "base64" + } + ], + "default": "base58" + }, + "description": "Encoding used for the transaction data." + }, + { + "key": "innerInstructions", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean", + "default": false + } + } + }, + "description": "If true, includes inner instructions in the response." + }, + { + "key": "accounts", + "valueShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "addresses", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "An array of account Pubkeys to return." + }, + { + "key": "encoding", + "valueShape": { + "type": "enum", + "values": [ + { + "value": "base58" + }, + { + "value": "base64" + }, + { + "value": "base64+zstd" + }, + { + "value": "jsonParsed" + } + ], + "default": "base64" + }, + "description": "Encoding for returned account data." + } + ] + } + } + ] + }, + "description": "Optional configuration object containing additional options." + } + ] + } + } + ], + "responses": [ + { + "statusCode": 200, + "body": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "err", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Error if the transaction failed, null if succeeded." + }, + { + "key": "logs", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Log messages output during execution." + }, + { + "key": "accounts", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "lamports", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Number of lamports assigned to this account." + }, + { + "key": "owner", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Program owner of this account." + }, + { + "key": "data", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Account data in the specified encoding format." + }, + { + "key": "executable", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "boolean" + } + } + }, + "description": "Indicates if the account contains a program." + }, + { + "key": "rentEpoch", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The epoch at which this account will next owe rent." + }, + { + "key": "size", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "The data size of the account." + } + ] + } + } + }, + "description": "Array of account information." + }, + { + "key": "unitsConsumed", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "integer" + } + } + }, + "description": "Compute budget units consumed." + }, + { + "key": "returnData", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "object", + "extends": [], + "properties": [ + { + "key": "programId", + "valueShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + }, + "description": "Program that generated the return data." + }, + { + "key": "data", + "valueShape": { + "type": "alias", + "value": { + "type": "list", + "itemShape": { + "type": "alias", + "value": { + "type": "primitive", + "value": { + "type": "string" + } + } + } + } + }, + "description": "Return data as base-64 encoded binary data." + } + ] + } + } + } + }, + { + "key": "innerInstructions", + "valueShape": { + "type": "alias", + "value": { + "type": "nullable", + "shape": { + "type": "object", + "extends": [], + "properties": [] + } + } + }, + "description": "Inner instructions if `innerInstructions` is true." + } + ] + } + } + ], + "errors": [], + "description": "Simulates sending a transaction.", + "operationId": "simulateTransaction", + "environments": [], + "requestHeaders": [], + "responseHeaders": [], + "namespace": [] + } + }, + "websockets": {}, + "webhooks": {}, + "subpackages": {}, + "auths": {}, + "globalHeaders": [] +} \ No newline at end of file diff --git a/packages/parsers/src/openrpc/__test__/fixtures/solana/openrpc.json b/packages/parsers/src/openrpc/__test__/fixtures/solana/openrpc.json new file mode 100644 index 0000000000..2b1bb13880 --- /dev/null +++ b/packages/parsers/src/openrpc/__test__/fixtures/solana/openrpc.json @@ -0,0 +1,3147 @@ +{ + "openrpc": "1.2.4", + "info": { + "title": "Alchemy Solana JSON-RPC Specification", + "description": "A specification of the standard JSON-RPC methods for Solana.", + "version": "0.0.0" + }, + "methods": [ + { + "name": "getAccountInfo", + "summary": "Returns all information associated with the account of provided Pubkey.", + "params": [ + { + "name": "Pubkey", + "required": true, + "description": "Pubkey of the account to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object for additional settings.", + "schema": { + "title": "GetAccountInfo Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "encoding": { + "title": "Data Encoding", + "type": "string", + "description": "Encoding format for account data.", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ] + }, + "dataSlice": { + "title": "Data Slice", + "type": "object", + "properties": { + "length": { + "type": "integer", + "description": "Number of bytes to return." + }, + "offset": { + "type": "integer", + "description": "Byte offset from which to start reading." + } + } + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Account information", + "description": "Returns details of the account including balance, ownership, and other relevant data.", + "schema": { + "title": "Account Information", + "type": "object", + "properties": { + "lamports": { + "type": "integer", + "description": "Number of lamports assigned to this account." + }, + "owner": { + "title": "Pubkey", + "type": "string", + "description": "Program owner of this account." + }, + "data": { + "title": "Account Data", + "type": "array", + "description": "Account data in the specified encoding format.", + "items": { + "type": "string" + } + }, + "executable": { + "type": "boolean", + "description": "Indicates if the account contains a program." + }, + "rentEpoch": { + "type": "integer", + "description": "The epoch at which this account will next owe rent." + }, + "size": { + "type": "integer", + "description": "The data size of the account." + } + } + } + } + }, + { + "name": "getBalance", + "summary": "Returns the lamport balance of the account of the provided Pubkey.", + "params": [ + { + "name": "Pubkey", + "required": true, + "description": "Pubkey of the account to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetBalance Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Lamport balance", + "description": "Returns the balance in lamports of the account queried.", + "schema": { + "title": "Lamport Balance", + "type": "integer", + "description": "The balance in lamports of the account." + } + } + }, + { + "name": "getBlock", + "summary": "Returns identity and transaction information about a confirmed block in the ledger.", + "params": [ + { + "name": "slot", + "required": true, + "description": "Slot number as a u64 integer.", + "schema": { + "type": "integer" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetBlock Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" + }, + "encoding": { + "type": "string", + "description": "Encoding format for transactions.", + "enum": [ + "json", + "jsonParsed", + "base58", + "base64" + ], + "default": "json" + }, + "transactionDetails": { + "type": "string", + "description": "Level of transaction detail to return.", + "enum": [ + "full", + "accounts", + "signatures", + "none" + ], + "default": "full" + }, + "maxSupportedTransactionVersion": { + "type": "integer", + "description": "Max transaction version to return." + }, + "rewards": { + "type": "boolean", + "description": "Include rewards array if true.", + "default": true + } + } + } + } + ], + "result": { + "name": "Block information", + "description": "Returns block information or null if the block is not confirmed.", + "schema": { + "title": "Block Information", + "type": "object", + "properties": { + "blockhash": { + "type": "string", + "description": "Blockhash of this block." + }, + "previousBlockhash": { + "type": "string", + "description": "Blockhash of the parent block." + }, + "parentSlot": { + "type": "integer", + "description": "Slot index of the parent block." + }, + "transactions": { + "type": "array", + "description": "Array of transaction objects.", + "items": { + "title": "Transaction", + "type": "object", + "properties": { + "slot": { + "type": "integer", + "description": "The slot this transaction was processed in." + }, + "transaction": { + "type": "object", + "description": "The transaction details, either in JSON format or encoded binary data, depending on the encoding parameter.", + "properties": { + "signatures": { + "type": "array", + "description": "An array of signatures applied to the transaction.", + "items": { + "type": "string" + } + }, + "message": { + "type": "object", + "properties": { + "accountKeys": { + "type": "array", + "description": "An array of account keys used by the transaction.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + "header": { + "type": "object", + "properties": { + "numRequiredSignatures": { + "type": "integer", + "description": "The number of signatures required for the transaction." + }, + "numReadonlySignedAccounts": { + "type": "integer", + "description": "Number of read-only signed accounts." + }, + "numReadonlyUnsignedAccounts": { + "type": "integer", + "description": "Number of read-only unsigned accounts." + } + } + }, + "instructions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "accounts": { + "type": "array", + "description": "List of account indices to be passed to the program.", + "items": { + "type": "integer" + } + }, + "data": { + "type": "string", + "description": "The program input data encoded as a base-58 string." + }, + "programIdIndex": { + "type": "integer", + "description": "Index into the message.accountKeys array indicating the program account." + } + } + } + }, + "recentBlockhash": { + "type": "string", + "description": "The recent blockhash used by the transaction." + } + } + } + } + }, + "blockTime": { + "type": "integer", + "nullable": true, + "description": "Estimated production time as a Unix timestamp. Null if not available." + }, + "meta": { + "type": "object", + "nullable": true, + "description": "Transaction status metadata.", + "properties": { + "err": { + "type": "object", + "nullable": true, + "description": "Error if the transaction failed, null if it succeeded." + }, + "fee": { + "type": "integer", + "description": "Fee charged for this transaction." + }, + "preBalances": { + "type": "array", + "description": "Array of u64 account balances before the transaction.", + "items": { + "type": "integer" + } + }, + "postBalances": { + "type": "array", + "description": "Array of u64 account balances after the transaction.", + "items": { + "type": "integer" + } + }, + "innerInstructions": { + "type": "array", + "nullable": true, + "description": "List of inner instructions or null if not enabled.", + "items": { + "title": "Inner Instruction", + "type": "object", + "properties": { + "index": { + "type": "integer", + "description": "Index of the instruction in the transaction." + }, + "instructions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "programId": { + "title": "Pubkey", + "type": "string", + "description": "Program ID invoked by this instruction." + }, + "accounts": { + "type": "array", + "description": "Account addresses involved in this instruction.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + "data": { + "type": "string", + "description": "The program input data encoded as a base-58 string." + } + } + } + } + } + } + }, + "preTokenBalances": { + "type": "array", + "nullable": true, + "description": "Token balances before the transaction, if available.", + "items": { + "title": "Token Balance", + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "The raw balance without decimals, a string representation of u64." + }, + "decimals": { + "type": "integer", + "description": "Number of base-10 digits to the right of the decimal place." + }, + "uiAmount": { + "type": "number", + "nullable": true, + "description": "The balance, using mint-prescribed decimals. **DEPRECATED**" + }, + "uiAmountString": { + "type": "string", + "description": "The balance as a string, using mint-prescribed decimals." + } + } + } + }, + "postTokenBalances": { + "type": "array", + "nullable": true, + "description": "Token balances after the transaction, if available.", + "items": { + "title": "Token Balance", + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "The raw balance without decimals, a string representation of u64." + }, + "decimals": { + "type": "integer", + "description": "Number of base-10 digits to the right of the decimal place." + }, + "uiAmount": { + "type": "number", + "nullable": true, + "description": "The balance, using mint-prescribed decimals. **DEPRECATED**" + }, + "uiAmountString": { + "type": "string", + "description": "The balance as a string, using mint-prescribed decimals." + } + } + } + }, + "logMessages": { + "type": "array", + "nullable": true, + "description": "Array of string log messages or null if not enabled.", + "items": { + "type": "string" + } + }, + "rewards": { + "type": "array", + "nullable": true, + "description": "Transaction-level rewards.", + "items": { + "title": "Reward", + "type": "object", + "properties": { + "pubkey": { + "title": "Pubkey", + "type": "string", + "description": "The public key of the rewarded account." + }, + "lamports": { + "type": "integer", + "description": "The amount of reward in lamports." + }, + "postBalance": { + "type": "integer", + "description": "The balance of the account after the reward was applied." + }, + "rewardType": { + "type": "string", + "description": "The type of reward.", + "enum": [ + "fee", + "rent", + "voting", + "staking" + ] + }, + "commission": { + "type": "integer", + "nullable": true, + "description": "The vote account commission when the reward was credited, if applicable." + } + } + } + }, + "loadedAddresses": { + "type": "object", + "nullable": true, + "description": "Transaction addresses loaded from address lookup tables." + }, + "returnData": { + "type": "object", + "nullable": true, + "description": "Return data generated by an instruction in the transaction." + }, + "computeUnitsConsumed": { + "type": "integer", + "nullable": true, + "description": "Number of compute units consumed by the transaction." + } + } + }, + "version": { + "type": "string", + "nullable": true, + "description": "Transaction version. Undefined if not set." + } + } + } + }, + "signatures": { + "type": "array", + "description": "Array of transaction signatures.", + "items": { + "type": "string" + } + }, + "rewards": { + "type": "array", + "description": "Block-level rewards.", + "items": { + "title": "Reward", + "type": "object", + "properties": { + "pubkey": { + "title": "Pubkey", + "type": "string", + "description": "The public key of the rewarded account." + }, + "lamports": { + "type": "integer", + "description": "The amount of reward in lamports." + }, + "postBalance": { + "type": "integer", + "description": "The balance of the account after the reward was applied." + }, + "rewardType": { + "type": "string", + "description": "The type of reward.", + "enum": [ + "fee", + "rent", + "voting", + "staking" + ] + }, + "commission": { + "type": "integer", + "nullable": true, + "description": "The vote account commission when the reward was credited, if applicable." + } + } + } + }, + "blockTime": { + "type": "integer", + "description": "Estimated production time as Unix timestamp." + }, + "blockHeight": { + "type": "integer", + "description": "Number of blocks beneath this block." + } + } + } + } + }, + { + "name": "getBlockCommitment", + "summary": "Returns the commitment for a particular block.", + "params": [ + { + "name": "block", + "required": true, + "description": "Block number, identified by Slot.", + "schema": { + "type": "integer" + } + } + ], + "result": { + "name": "Block commitment", + "description": "Returns the commitment and total active stake for the block.", + "schema": { + "title": "GetBlockCommitment Result", + "type": "object", + "properties": { + "commitment": { + "type": "array", + "nullable": true, + "description": "Cluster stake in lamports voted on the block.", + "items": { + "type": "integer" + } + }, + "totalStake": { + "type": "integer", + "description": "Total active stake in lamports." + } + } + } + } + }, + { + "name": "getBlockHeight", + "summary": "Returns the current block height of the node.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional request parameters.", + "schema": { + "title": "GetBlockHeight Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Block height", + "description": "The current block height, as a u64 integer.", + "schema": { + "title": "Block Height", + "type": "integer", + "description": "The current block height." + } + } + }, + { + "name": "getBlockProduction", + "summary": "Returns recent block production information from the current or previous epoch.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetBlockProduction Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "identity": { + "title": "Pubkey", + "type": "string", + "description": "Validator identity to filter results." + }, + "range": { + "title": "Block Range", + "type": "object", + "properties": { + "firstSlot": { + "type": "integer", + "description": "First slot to return block production for." + }, + "lastSlot": { + "type": "integer", + "description": "Last slot to return block production for." + } + } + } + } + } + } + ], + "result": { + "name": "Block production information", + "description": "Returns block production information for the specified range.", + "schema": { + "title": "Block Production Information", + "type": "object", + "properties": { + "byIdentity": { + "type": "object", + "description": "Validator identities with leader slots and blocks produced.", + "additionalProperties": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "range": { + "title": "Block Range", + "type": "object", + "properties": { + "firstSlot": { + "type": "integer", + "description": "First slot to return block production for." + }, + "lastSlot": { + "type": "integer", + "description": "Last slot to return block production for." + } + } + } + } + } + } + }, + { + "name": "getBlocks", + "summary": "Returns a list of confirmed blocks between two slots.", + "params": [ + { + "name": "start_slot", + "required": true, + "description": "The starting slot.", + "schema": { + "type": "integer" + } + }, + { + "name": "end_slot", + "required": false, + "description": "The ending slot.", + "schema": { + "type": "integer" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetBlocks Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" + } + } + } + } + ], + "result": { + "name": "List of confirmed blocks", + "description": "Returns an array of u64 integers listing confirmed blocks.", + "schema": { + "title": "Slot List", + "type": "array", + "description": "List of confirmed blocks between slots.", + "items": { + "type": "integer" + } + } + } + }, + { + "name": "getBlocksWithLimit", + "summary": "Returns a list of confirmed blocks starting at the given slot.", + "params": [ + { + "name": "start_slot", + "required": true, + "description": "The starting slot.", + "schema": { + "type": "integer" + } + }, + { + "name": "limit", + "required": true, + "description": "The limit for the number of blocks to return.", + "schema": { + "type": "integer" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetBlocks Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" + } + } + } + } + ], + "result": { + "name": "List of confirmed blocks", + "description": "Returns an array of u64 integers listing confirmed blocks starting at the start_slot.", + "schema": { + "title": "Slot List", + "type": "array", + "description": "List of confirmed blocks between slots.", + "items": { + "type": "integer" + } + } + } + }, + { + "name": "getBlockTime", + "summary": "Returns the estimated production time of a block.", + "params": [ + { + "name": "block", + "required": true, + "description": "Block number, identified by Slot.", + "schema": { + "title": "GetBlockTime Parameters", + "type": "object", + "properties": { + "block": { + "type": "integer", + "description": "Block number identified by Slot." + } + } + } + } + ], + "result": { + "name": "Estimated production time", + "description": "The estimated production time of the block as a Unix timestamp.", + "schema": { + "title": "Estimated Production Time", + "type": "integer", + "description": "Estimated production time as Unix timestamp." + } + } + }, + { + "name": "getClusterNodes", + "summary": "Returns information about all the nodes participating in the cluster.", + "params": [], + "result": { + "name": "List of nodes", + "description": "Returns an array of JSON objects, each containing information about a node in the cluster.", + "schema": { + "title": "Cluster Nodes List", + "type": "array", + "description": "Information about all nodes participating in the cluster.", + "items": { + "title": "Cluster Node Information", + "type": "object", + "properties": { + "pubkey": { + "title": "Pubkey", + "type": "string", + "description": "Node public key." + }, + "gossip": { + "type": "string", + "nullable": true, + "description": "Gossip network address." + }, + "tpu": { + "type": "string", + "nullable": true, + "description": "TPU network address." + }, + "rpc": { + "type": "string", + "nullable": true, + "description": "JSON RPC network address." + }, + "version": { + "type": "string", + "nullable": true, + "description": "Software version of the node." + }, + "featureSet": { + "type": "integer", + "nullable": true, + "description": "Unique identifier of the node's feature set." + }, + "shredVersion": { + "type": "integer", + "nullable": true, + "description": "Shred version used by the node." + } + } + } + } + } + }, + { + "name": "getEpochInfo", + "summary": "Returns information about the current epoch.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetEpochInfo Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Epoch information", + "description": "Returns an object containing information about the current epoch.", + "schema": { + "title": "Epoch Information", + "type": "object", + "properties": { + "absoluteSlot": { + "type": "integer", + "description": "Current slot." + }, + "blockHeight": { + "type": "integer", + "description": "Current block height." + }, + "epoch": { + "type": "integer", + "description": "Current epoch." + }, + "slotIndex": { + "type": "integer", + "description": "Slot index relative to the start of the epoch." + }, + "slotsInEpoch": { + "type": "integer", + "description": "Number of slots in this epoch." + }, + "transactionCount": { + "type": "integer", + "nullable": true, + "description": "Total transactions processed without error since genesis." + } + } + } + } + }, + { + "name": "getEpochSchedule", + "summary": "Returns the epoch schedule information from the cluster's genesis config.", + "params": [], + "result": { + "name": "Epoch schedule information", + "description": "Returns an object containing information about the epoch schedule.", + "schema": { + "title": "Epoch Schedule", + "type": "object", + "properties": { + "slotsPerEpoch": { + "type": "integer", + "description": "Max number of slots in each epoch." + }, + "leaderScheduleSlotOffset": { + "type": "integer", + "description": "Slots before epoch to calculate leader schedule." + }, + "warmup": { + "type": "boolean", + "description": "Whether epochs start short and grow." + }, + "firstNormalEpoch": { + "type": "integer", + "description": "First normal-length epoch." + }, + "firstNormalSlot": { + "type": "integer", + "description": "First normal slot." + } + } + } + } + }, + { + "name": "getFeeForMessage", + "summary": "Get the fee the network will charge for a particular Message.", + "params": [ + { + "name": "Message", + "required": true, + "description": "Base-64 encoded Message.", + "schema": { + "title": "FeeForMessage Parameters", + "type": "object", + "properties": { + "Message": { + "type": "string", + "description": "Base-64 encoded Message." + } + } + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "FeeForMessage Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Fee for the message", + "description": "The fee corresponding to the message at the specified blockhash.", + "schema": { + "title": "Fee For Message Result", + "type": "integer", + "nullable": true, + "description": "Fee corresponding to the message at the specified blockhash." + } + } + }, + { + "name": "getFirstAvailableBlock", + "summary": "Returns the slot of the lowest confirmed block that has not been purged from the ledger.", + "params": [], + "result": { + "name": "Slot", + "description": "The slot number of the lowest confirmed block that is still available in the ledger.", + "schema": { + "title": "First Available Block Slot", + "type": "integer", + "description": "Slot of the lowest confirmed block still available in the ledger." + } + } + }, + { + "name": "getGenesisHash", + "summary": "Returns the genesis hash.", + "params": [], + "result": { + "name": "Genesis hash", + "description": "The genesis hash as a base-58 encoded string.", + "schema": { + "title": "Genesis Hash", + "type": "string", + "description": "The genesis hash as a base-58 encoded string." + } + } + }, + { + "name": "getHealth", + "summary": "Returns the current health of the node.", + "params": [], + "result": { + "name": "Health status", + "description": "If the node is healthy, the result is \"ok\".", + "schema": { + "title": "Health Status", + "oneOf": [ + { + "type": "string", + "description": "Result is 'ok' if healthy." + }, + { + "type": "object", + "description": "An error object if unhealthy." + } + ], + "description": "Result is 'ok' if healthy, or an error object if unhealthy." + } + } + }, + { + "name": "getHighestSnapshotSlot", + "summary": "Returns the highest slot information that the node has snapshots for.", + "params": [], + "result": { + "name": "Snapshot slot information", + "description": "Returns a JSON object with the highest full snapshot slot.", + "schema": { + "title": "Highest Snapshot Slot", + "type": "object", + "properties": { + "full": { + "type": "integer", + "description": "Highest full snapshot slot." + }, + "incremental": { + "type": "integer", + "nullable": true, + "description": "Highest incremental snapshot slot based on the full snapshot." + } + } + } + } + }, + { + "name": "getIdentity", + "summary": "Returns the identity pubkey for the current node.", + "params": [], + "result": { + "name": "Identity pubkey", + "description": "The identity pubkey of the current node.", + "schema": { + "title": "Node Identity", + "type": "object", + "properties": { + "identity": { + "title": "Pubkey", + "type": "string", + "description": "Identity pubkey of the current node." + } + } + } + } + }, + { + "name": "getInflationGovernor", + "summary": "Returns the current inflation governor.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetEpochInfo Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Inflation governor details", + "description": "Returns a JSON object containing the inflation governor parameters.", + "schema": { + "title": "Inflation Governor", + "type": "object", + "properties": { + "initial": { + "type": "number", + "description": "Initial inflation percentage from time 0." + }, + "terminal": { + "type": "number", + "description": "Terminal inflation percentage." + }, + "taper": { + "type": "number", + "description": "Rate per year at which inflation is lowered." + }, + "foundation": { + "type": "number", + "description": "Percentage of total inflation allocated to the foundation." + }, + "foundationTerm": { + "type": "number", + "description": "Duration of foundation pool inflation in years." + } + } + } + } + }, + { + "name": "getInflationRate", + "summary": "Returns the specific inflation values for the current epoch.", + "params": [], + "result": { + "name": "Inflation rate details", + "description": "Returns a JSON object containing the inflation values for the current epoch.", + "schema": { + "title": "Inflation Rate", + "type": "object", + "properties": { + "total": { + "type": "number", + "description": "Total inflation rate." + }, + "validator": { + "type": "number", + "description": "Inflation rate allocated to validators." + }, + "foundation": { + "type": "number", + "description": "Inflation rate allocated to the foundation." + }, + "epoch": { + "type": "integer", + "description": "Epoch for which these values are valid." + } + } + } + } + }, + { + "name": "getInflationReward", + "summary": "Returns the inflation or staking reward for a list of addresses for a specified epoch.", + "params": [ + { + "name": "Addresses", + "required": true, + "description": "An array of addresses to query.", + "schema": { + "title": "Inflation Reward Parameters", + "type": "object", + "properties": { + "Addresses": { + "type": "array", + "description": "Array of addresses to query.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "epoch": { + "type": "integer", + "description": "Epoch for which the reward occurs." + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Inflation reward details", + "description": "Returns a JSON array with reward details for each address.", + "schema": { + "type": "array", + "items": { + "title": "Inflation Reward", + "type": "object", + "nullable": true, + "properties": { + "epoch": { + "type": "integer", + "description": "Epoch for which the reward occurred." + }, + "effectiveSlot": { + "type": "integer", + "description": "Slot in which rewards are effective." + }, + "amount": { + "type": "integer", + "description": "Reward amount in lamports." + }, + "postBalance": { + "type": "integer", + "description": "Post balance of the account in lamports." + }, + "commission": { + "type": "integer", + "nullable": true, + "description": "Vote account commission when reward was credited." + } + } + } + } + } + }, + { + "name": "getLargestAccounts", + "summary": "Returns the 20 largest accounts, by lamport balance.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "LargestAccounts Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "filter": { + "type": "string", + "description": "Filter results by account type.", + "enum": [ + "circulating", + "nonCirculating" + ] + } + } + } + } + ], + "result": { + "name": "Largest accounts", + "description": "An array of objects containing the address of the account and its lamport balance.", + "schema": { + "title": "Largest Accounts List", + "type": "array", + "description": "List of the 20 largest accounts.", + "items": { + "title": "Largest Account", + "type": "object", + "properties": { + "address": { + "title": "Pubkey", + "type": "string", + "description": "Address of the account." + }, + "lamports": { + "type": "integer", + "description": "Number of lamports in the account." + } + } + } + } + } + }, + { + "name": "getLatestBlockhash", + "summary": "Returns the latest blockhash.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "A configuration object with optional fields for specifying commitment and minimum context slot.", + "schema": { + "title": "GetLatestBlockhash Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Latest Blockhash", + "description": "RpcResponse object with blockhash information.", + "schema": { + "title": "Latest Blockhash", + "type": "object", + "properties": { + "blockhash": { + "type": "string", + "description": "Blockhash as a base-58 encoded string." + }, + "lastValidBlockHeight": { + "type": "integer", + "description": "Last block height at which the blockhash is valid." + } + } + } + } + }, + { + "name": "getMaxRetransmitSlot", + "summary": "Get the max slot seen from the retransmit stage.", + "params": [], + "result": { + "name": "Slot number", + "description": "The maximum slot number seen from the retransmit stage.", + "schema": { + "title": "Max Slot Result", + "type": "integer", + "description": "The maximum slot number observed." + } + } + }, + { + "name": "getMaxShredInsertSlot", + "summary": "Get the max slot seen from after shred insert.", + "params": [], + "result": { + "name": "Slot number", + "description": "The maximum slot number seen after shred insert.", + "schema": { + "title": "Max Slot Result", + "type": "integer", + "description": "The maximum slot number observed." + } + } + }, + { + "name": "getMinimumBalanceForRentExemption", + "summary": "Returns the minimum balance required to make an account rent exempt.", + "params": [ + { + "name": "Account data length", + "required": true, + "description": "The account's data length in bytes.", + "schema": { + "title": "MinimumBalanceForRentExemption Parameters", + "type": "object", + "properties": { + "dataLength": { + "type": "integer", + "description": "Account's data length in bytes." + } + } + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "MinimumBalanceForRentExemption Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + } + } + } + } + ], + "result": { + "name": "Minimum balance for rent exemption", + "description": "The minimum number of lamports required in the account to remain rent-free.", + "schema": { + "title": "Minimum Balance For Rent Exemption", + "type": "integer", + "description": "Minimum lamports required to make an account rent exempt." + } + } + }, + { + "name": "getMultipleAccounts", + "summary": "Returns the account information for a list of Pubkeys.", + "params": [ + { + "name": "Pubkeys", + "required": true, + "description": "An array of Pubkeys to query.", + "schema": { + "type": "array", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetMultipleAccounts Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + }, + "dataSlice": { + "title": "Data Slice", + "type": "object", + "properties": { + "length": { + "type": "integer", + "description": "Number of bytes to return." + }, + "offset": { + "type": "integer", + "description": "Byte offset from which to start reading." + } + } + }, + "encoding": { + "title": "Data Encoding", + "type": "string", + "description": "Encoding format for data.", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ], + "default": "base64" + } + } + } + } + ], + "result": { + "name": "Account information", + "description": "An array of JSON objects containing account details.", + "schema": { + "type": "array", + "items": { + "title": "Account Information", + "type": "object", + "properties": { + "lamports": { + "type": "integer", + "description": "Number of lamports assigned to this account." + }, + "owner": { + "title": "Pubkey", + "type": "string", + "description": "Program owner of this account." + }, + "data": { + "title": "Account Data", + "type": "array", + "description": "Account data in the specified encoding format.", + "items": { + "type": "string" + } + }, + "executable": { + "type": "boolean", + "description": "Indicates if the account contains a program." + }, + "rentEpoch": { + "type": "integer", + "description": "The epoch at which this account will next owe rent." + }, + "size": { + "type": "integer", + "description": "The data size of the account." + } + } + } + } + } + }, + { + "name": "getProgramAccounts", + "summary": "Returns all accounts owned by the provided program Pubkey.", + "params": [ + { + "name": "Pubkey", + "required": true, + "description": "The Pubkey of the program.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetProgramAccounts Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + }, + "withContext": { + "type": "boolean", + "description": "If set, wraps the result in an `RpcResponse` JSON object." + }, + "encoding": { + "title": "Data Encoding", + "type": "string", + "description": "Encoding format for data.", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ], + "default": "json" + }, + "dataSlice": { + "title": "Data Slice", + "type": "object", + "properties": { + "length": { + "type": "integer", + "description": "Number of bytes to return." + }, + "offset": { + "type": "integer", + "description": "Byte offset from which to start reading." + } + } + }, + "filters": { + "type": "array", + "description": "Filters to apply using up to 4 filter objects." + } + } + } + } + ], + "result": { + "name": "Program accounts", + "description": "An array of JSON objects containing program account details.", + "schema": { + "type": "array", + "items": { + "title": "Program Account", + "type": "object", + "properties": { + "pubkey": { + "title": "Pubkey", + "type": "string", + "description": "The account Pubkey as a base-58 encoded string." + }, + "account": { + "title": "Account Information", + "type": "object", + "properties": { + "lamports": { + "type": "integer", + "description": "Number of lamports assigned to this account." + }, + "owner": { + "title": "Pubkey", + "type": "string", + "description": "Program owner of this account." + }, + "data": { + "title": "Account Data", + "type": "array", + "description": "Account data in the specified encoding format.", + "items": { + "type": "string" + } + }, + "executable": { + "type": "boolean", + "description": "Indicates if the account contains a program." + }, + "rentEpoch": { + "type": "integer", + "description": "The epoch at which this account will next owe rent." + }, + "size": { + "type": "integer", + "description": "The data size of the account." + } + } + } + } + } + } + } + }, + { + "name": "getRecentPerformanceSamples", + "summary": "Returns a list of recent performance samples, in reverse slot order.", + "params": [ + { + "name": "limit", + "required": false, + "description": "The number of samples to return.", + "schema": { + "type": "integer" + } + } + ], + "result": { + "name": "Performance samples", + "description": "An array of performance sample data.", + "schema": { + "type": "array", + "items": { + "title": "Performance Sample", + "type": "object", + "properties": { + "slot": { + "type": "integer", + "description": "The slot in which the sample was taken." + }, + "numTransactions": { + "type": "integer", + "description": "The number of transactions processed during the sample period." + }, + "numSlots": { + "type": "integer", + "description": "The number of slots completed during the sample period." + }, + "samplePeriodSecs": { + "type": "integer", + "description": "The number of seconds in a sample window." + }, + "numNonVoteTransactions": { + "type": "integer", + "description": "The number of non-vote transactions processed during the sample period." + } + } + } + } + } + }, + { + "name": "getRecentPrioritizationFees", + "summary": "Returns a list of prioritization fees from recent blocks.", + "params": [ + { + "name": "Account addresses", + "required": false, + "description": "An array of up to 128 account addresses. If provided, the response will reflect a fee to land a transaction locking all of the provided accounts as writable.", + "schema": { + "type": "array", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + } + } + ], + "result": { + "name": "Prioritization fees", + "description": "An array of prioritization fees observed in recent blocks.", + "schema": { + "title": "Recent Prioritization Fees", + "type": "array", + "description": "An array of prioritization fees observed in recent blocks.", + "items": { + "title": "Recent Prioritization Fee", + "type": "object", + "properties": { + "slot": { + "type": "integer", + "description": "Slot in which the fee was observed." + }, + "prioritizationFee": { + "type": "integer", + "description": "The per-compute-unit fee in micro-lamports." + } + } + } + } + } + }, + { + "name": "getSignaturesForAddress", + "summary": "Returns signatures for confirmed transactions that include the given address.", + "params": [ + { + "name": "Account address", + "required": true, + "description": "The account address.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetSignaturesForAddress Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + }, + "limit": { + "type": "integer", + "description": "The maximum number of transaction signatures to return (between 1 and 1,000).", + "default": 1000 + }, + "before": { + "type": "string", + "description": "Start searching backwards from this transaction signature." + }, + "until": { + "type": "string", + "description": "Search until this transaction signature, if found before the limit is reached." + } + } + } + } + ], + "result": { + "name": "Transaction signatures", + "description": "An array of objects containing transaction signature information.", + "schema": { + "type": "array", + "items": { + "title": "Signature Information", + "type": "object", + "properties": { + "signature": { + "type": "string", + "description": "The transaction signature as a base-58 encoded string." + }, + "slot": { + "type": "integer", + "description": "The slot that contains the block with the transaction." + }, + "err": { + "type": "object", + "nullable": true, + "description": "Error if the transaction failed, null if the transaction succeeded." + }, + "memo": { + "type": "string", + "nullable": true, + "description": "The memo associated with the transaction, null if no memo is present." + }, + "blockTime": { + "type": "integer", + "nullable": true, + "description": "The estimated production time of the transaction as a Unix timestamp, null if not available." + }, + "confirmationStatus": { + "type": "string", + "nullable": true, + "description": "The transaction's cluster confirmation status, either `processed`, `confirmed`, or `finalized`." + } + } + } + } + } + }, + { + "name": "getSignatureStatuses", + "summary": "Returns the statuses of a list of transaction signatures.", + "params": [ + { + "name": "Signatures", + "required": true, + "description": "An array of transaction signatures to confirm.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetSignatureStatuses Configuration", + "type": "object", + "properties": { + "searchTransactionHistory": { + "type": "boolean", + "description": "If true, searches the ledger cache for any signatures not found in the recent status cache." + } + } + } + } + ], + "result": { + "name": "Transaction statuses", + "description": "An array containing the status of each transaction signature.", + "schema": { + "type": "array", + "items": { + "title": "Transaction Status", + "type": "object", + "properties": { + "slot": { + "type": "integer", + "description": "The slot in which the transaction was processed." + }, + "confirmations": { + "type": "integer", + "nullable": true, + "description": "The number of blocks since signature confirmation, or null if rooted and finalized." + }, + "err": { + "type": "object", + "nullable": true, + "description": "Error if the transaction failed, or null if the transaction succeeded." + }, + "confirmationStatus": { + "type": "string", + "nullable": true, + "description": "The transaction's cluster confirmation status." + }, + "status": { + "type": "object", + "description": "DEPRECATED. The transaction status." + } + } + } + } + } + }, + { + "name": "getSlot", + "summary": "Returns the slot that has reached the given or default commitment level.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "Slot Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Current slot", + "description": "The current slot at the specified commitment level.", + "schema": { + "type": "integer" + } + } + }, + { + "name": "getSlotLeader", + "summary": "Returns the current slot leader.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "Slot Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Slot leader", + "description": "The node identity Pubkey as a base-58 encoded string.", + "schema": { + "title": "Slot Leader", + "type": "string", + "description": "The node identity Pubkey as a base-58 encoded string." + } + } + }, + { + "name": "getSlotLeaders", + "summary": "Returns the slot leaders for a given slot range.", + "params": [ + { + "name": "Start slot", + "required": true, + "description": "The starting slot as a u64 integer.", + "schema": { + "type": "integer" + } + }, + { + "name": "Limit", + "required": true, + "description": "The number of slot leaders to return, between 1 and 5,000.", + "schema": { + "type": "integer" + } + } + ], + "result": { + "name": "Slot leaders", + "description": "An array of node identity public keys as base-58 encoded strings.", + "schema": { + "title": "Slot Leaders", + "type": "array", + "description": "An array of node identity public keys as base-58 encoded strings.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + } + } + }, + { + "name": "getSupply", + "summary": "Returns information about the current supply of lamports.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetSupply Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "excludeNonCirculatingAccountsList": { + "type": "boolean", + "description": "Exclude non-circulating accounts list from the response." + } + } + } + } + ], + "result": { + "name": "Supply information", + "description": "An RpcResponse JSON object containing the current supply information.", + "schema": { + "title": "Supply Information", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total supply in lamports." + }, + "circulating": { + "type": "integer", + "description": "The circulating supply in lamports." + }, + "nonCirculating": { + "type": "integer", + "description": "The non-circulating supply in lamports." + }, + "nonCirculatingAccounts": { + "type": "array", + "description": "An array of account addresses of non-circulating accounts.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + } + } + } + } + }, + { + "name": "getTokenAccountBalance", + "summary": "Returns the token balance of an SPL Token account.", + "params": [ + { + "name": "Token account Pubkey", + "required": true, + "description": "The Pubkey of the token account to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetTokenAccountBalance Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + } + } + } + } + ], + "result": { + "name": "Token account balance", + "description": "The balance of the SPL Token account.", + "schema": { + "title": "Token Balance", + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "The raw balance without decimals, a string representation of u64." + }, + "decimals": { + "type": "integer", + "description": "Number of base-10 digits to the right of the decimal place." + }, + "uiAmount": { + "type": "number", + "nullable": true, + "description": "The balance, using mint-prescribed decimals. **DEPRECATED**" + }, + "uiAmountString": { + "type": "string", + "description": "The balance as a string, using mint-prescribed decimals." + } + } + } + } + }, + { + "name": "getTokenAccountsByOwner", + "summary": "Returns all SPL Token accounts owned by the specified token owner.", + "params": [ + { + "name": "Token owner Pubkey", + "required": true, + "description": "The Pubkey of the account owner to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Token filter", + "required": false, + "description": "A filter object containing either the Mint Pubkey or the Token program Pubkey.", + "schema": { + "type": "object", + "properties": { + "mint": { + "title": "Pubkey", + "type": "string", + "description": "The Pubkey of the specific token Mint to limit accounts to." + }, + "programId": { + "title": "Pubkey", + "type": "string", + "description": "The Pubkey of the Token program that owns the accounts." + } + } + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetTokenAccountsByOwner Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + }, + "dataSlice": { + "title": "Data Slice", + "type": "object", + "properties": { + "length": { + "type": "integer", + "description": "Number of bytes to return." + }, + "offset": { + "type": "integer", + "description": "Byte offset from which to start reading." + } + } + }, + "encoding": { + "title": "Data Encoding", + "type": "string", + "description": "Encoding format for account data.", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ] + } + } + } + } + ], + "result": { + "name": "Token accounts", + "description": "An array of JSON objects representing the token accounts owned by the specified Pubkey.", + "schema": { + "type": "array", + "items": { + "title": "Token Account", + "type": "object", + "properties": { + "pubkey": { + "title": "Pubkey", + "type": "string", + "description": "The account Pubkey as a base-58 encoded string." + }, + "account": { + "title": "Account Information", + "type": "object", + "properties": { + "lamports": { + "type": "integer", + "description": "Number of lamports assigned to this account." + }, + "owner": { + "title": "Pubkey", + "type": "string", + "description": "Program owner of this account." + }, + "data": { + "title": "Account Data", + "type": "array", + "description": "Account data in the specified encoding format.", + "items": { + "type": "string" + } + }, + "executable": { + "type": "boolean", + "description": "Indicates if the account contains a program." + }, + "rentEpoch": { + "type": "integer", + "description": "The epoch at which this account will next owe rent." + }, + "size": { + "type": "integer", + "description": "The data size of the account." + } + } + } + } + } + } + } + }, + { + "name": "getTokenSupply", + "summary": "Returns the total supply of an SPL Token type.", + "params": [ + { + "name": "Token Mint Pubkey", + "required": true, + "description": "The Pubkey of the token Mint to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetTokenSupply Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + } + } + } + } + ], + "result": { + "name": "Token supply", + "description": "The total supply of the specified SPL Token.", + "schema": { + "title": "Token Balance", + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "The raw balance without decimals, a string representation of u64." + }, + "decimals": { + "type": "integer", + "description": "Number of base-10 digits to the right of the decimal place." + }, + "uiAmount": { + "type": "number", + "nullable": true, + "description": "The balance, using mint-prescribed decimals. **DEPRECATED**" + }, + "uiAmountString": { + "type": "string", + "description": "The balance as a string, using mint-prescribed decimals." + } + } + } + } + }, + { + "name": "getTransaction", + "summary": "Returns transaction details for a confirmed transaction.", + "params": [ + { + "name": "Transaction signature", + "required": true, + "description": "Transaction signature as a base-58 encoded string.", + "schema": { + "type": "string" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetTransaction Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Commitment level to use. `Processed` is not supported.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "maxSupportedTransactionVersion": { + "type": "integer", + "description": "Sets the max transaction version to return." + }, + "encoding": { + "type": "string", + "description": "Encoding format for the returned transaction.", + "enum": [ + "json", + "jsonParsed", + "base64", + "base58" + ] + } + } + } + } + ], + "result": { + "name": "Transaction details", + "description": "The details of a confirmed transaction.", + "schema": { + "title": "Transaction Details", + "type": "object", + "properties": { + "slot": { + "type": "integer", + "description": "The slot this transaction was processed in." + }, + "transaction": { + "oneOf": [ + { + "type": "object", + "description": "The transaction details in JSON format." + }, + { + "type": "string", + "description": "The transaction details as encoded binary data." + } + ], + "description": "The transaction details, either in JSON format or encoded binary data." + }, + "blockTime": { + "type": "integer", + "nullable": true, + "description": "Estimated production time as a Unix timestamp." + }, + "meta": { + "type": "object", + "nullable": true, + "description": "Transaction status metadata." + }, + "version": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "nullable": true, + "description": "Transaction version." + } + } + } + } + }, + { + "name": "getVersion", + "summary": "Returns the current Solana version running on the node.", + "params": [], + "result": { + "name": "Version details", + "description": "The current Solana version running on the node.", + "schema": { + "title": "Version Information", + "type": "object", + "properties": { + "solana-core": { + "type": "string", + "description": "The software version of solana-core." + }, + "feature-set": { + "type": "integer", + "description": "Unique identifier of the current software's feature set." + } + } + } + } + }, + { + "name": "getVoteAccounts", + "summary": "Returns the account info and associated stake for all voting accounts in the current bank.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetVoteAccounts Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "votePubkey": { + "title": "Pubkey", + "type": "string", + "description": "Return results for this validator vote address." + }, + "keepUnstakedDelinquents": { + "type": "boolean", + "description": "Do not filter out delinquent validators with no stake." + }, + "delinquentSlotDistance": { + "type": "integer", + "description": "Number of slots behind the tip for a validator to be considered delinquent." + } + } + } + } + ], + "result": { + "name": "Vote accounts", + "description": "Information about current and delinquent vote accounts.", + "schema": { + "title": "Vote Accounts", + "type": "object", + "properties": { + "current": { + "type": "array", + "description": "List of current vote accounts.", + "items": { + "title": "Vote Account Information", + "type": "object", + "properties": { + "votePubkey": { + "title": "Pubkey", + "type": "string", + "description": "Vote account address." + }, + "nodePubkey": { + "title": "Pubkey", + "type": "string", + "description": "Validator identity." + }, + "activatedStake": { + "type": "integer", + "description": "Active stake in lamports delegated to this vote account." + }, + "epochVoteAccount": { + "type": "boolean", + "description": "Whether the vote account is staked for this epoch." + }, + "commission": { + "type": "number", + "description": "Percentage of rewards payout owed to the vote account." + }, + "lastVote": { + "type": "integer", + "description": "Most recent slot voted on by this vote account." + }, + "epochCredits": { + "type": "array", + "description": "History of earned credits for up to five epochs.", + "items": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "rootSlot": { + "type": "integer", + "description": "Current root slot for this vote account." + } + } + } + }, + "delinquent": { + "type": "array", + "description": "List of delinquent vote accounts.", + "items": { + "title": "Vote Account Information", + "type": "object", + "properties": { + "votePubkey": { + "title": "Pubkey", + "type": "string", + "description": "Vote account address." + }, + "nodePubkey": { + "title": "Pubkey", + "type": "string", + "description": "Validator identity." + }, + "activatedStake": { + "type": "integer", + "description": "Active stake in lamports delegated to this vote account." + }, + "epochVoteAccount": { + "type": "boolean", + "description": "Whether the vote account is staked for this epoch." + }, + "commission": { + "type": "number", + "description": "Percentage of rewards payout owed to the vote account." + }, + "lastVote": { + "type": "integer", + "description": "Most recent slot voted on by this vote account." + }, + "epochCredits": { + "type": "array", + "description": "History of earned credits for up to five epochs.", + "items": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "rootSlot": { + "type": "integer", + "description": "Current root slot for this vote account." + } + } + } + } + } + } + } + }, + { + "name": "isBlockhashValid", + "summary": "Returns whether a blockhash is still valid or not.", + "params": [ + { + "name": "blockhash", + "required": true, + "description": "The blockhash of the block to evaluate.", + "schema": { + "type": "string" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "IsBlockhashValid Parameters", + "type": "object", + "properties": { + "blockhash": { + "type": "string", + "description": "The blockhash to evaluate, as a base-58 encoded string." + }, + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Validity", + "description": "Indicates if the blockhash is still valid.", + "schema": { + "title": "Is Blockhash Valid Result", + "type": "boolean", + "description": "Indicates if the blockhash is still valid." + } + } + }, + { + "name": "minimumLedgerSlot", + "summary": "Returns the lowest slot that the node has information about in its ledger.", + "params": [], + "result": { + "name": "Minimum ledger slot", + "description": "The lowest slot number the node has information about.", + "schema": { + "title": "Minimum Ledger Slot", + "type": "integer", + "description": "The lowest slot number the node has information about." + } + } + }, + { + "name": "requestAirdrop", + "summary": "Requests an airdrop of lamports to a Pubkey.", + "params": [ + { + "name": "Pubkey", + "required": true, + "description": "The Pubkey of the account to receive lamports.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Lamports", + "required": true, + "description": "The number of lamports to airdrop, as a \"u64\".", + "schema": { + "type": "integer" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "RequestAirdrop Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + } + } + } + } + ], + "result": { + "name": "Transaction signature", + "description": "Transaction Signature of the airdrop.", + "schema": { + "type": "string" + } + } + }, + { + "name": "sendTransaction", + "summary": "Submits a signed transaction to the cluster for processing.", + "params": [ + { + "name": "Transaction", + "required": true, + "description": "Fully-signed Transaction, as encoded string.", + "schema": { + "type": "string" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "SendTransaction Configuration", + "type": "object", + "properties": { + "encoding": { + "type": "string", + "description": "Encoding used for the transaction data.", + "enum": [ + "base58", + "base64" + ], + "default": "base58" + }, + "skipPreflight": { + "type": "boolean", + "description": "Skip preflight transaction checks if `true`.", + "default": false + }, + "preflightCommitment": { + "title": "Commitment Level", + "type": "string", + "description": "Commitment level to use for preflight.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" + }, + "maxRetries": { + "type": "integer", + "description": "Maximum retries for the RPC node to send the transaction." + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Transaction signature", + "description": "The first signature in the transaction, used as the transaction ID.", + "schema": { + "title": "Send Transaction Result", + "type": "string", + "description": "The transaction signature as a base-58 encoded string." + } + } + }, + { + "name": "simulateTransaction", + "summary": "Simulates sending a transaction.", + "params": [ + { + "name": "Transaction", + "required": true, + "description": "The transaction to simulate, as an encoded string.", + "schema": { + "type": "string" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional options.", + "schema": { + "title": "SimulateTransaction Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" + }, + "sigVerify": { + "type": "boolean", + "description": "If true, the transaction signatures will be verified.", + "default": false + }, + "replaceRecentBlockhash": { + "type": "boolean", + "description": "If true, replaces recent blockhash with the most recent one.", + "default": false + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + }, + "encoding": { + "type": "string", + "description": "Encoding used for the transaction data.", + "enum": [ + "base58", + "base64" + ], + "default": "base58" + }, + "innerInstructions": { + "type": "boolean", + "description": "If true, includes inner instructions in the response.", + "default": false + }, + "accounts": { + "title": "SimulateTransaction Accounts Configuration", + "type": "object", + "properties": { + "addresses": { + "type": "array", + "description": "An array of account Pubkeys to return.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + "encoding": { + "title": "Data Encoding", + "type": "string", + "description": "Encoding for returned account data.", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ], + "default": "base64" + } + } + } + } + } + } + ], + "result": { + "name": "Simulated transaction result", + "description": "The result of simulating the transaction.", + "schema": { + "title": "Simulated Transaction Result", + "type": "object", + "properties": { + "err": { + "type": "string", + "nullable": true, + "description": "Error if the transaction failed, null if succeeded." + }, + "logs": { + "type": "array", + "nullable": true, + "description": "Log messages output during execution.", + "items": { + "type": "string" + } + }, + "accounts": { + "type": "array", + "nullable": true, + "description": "Array of account information.", + "items": { + "title": "Account Information", + "type": "object", + "properties": { + "lamports": { + "type": "integer", + "description": "Number of lamports assigned to this account." + }, + "owner": { + "title": "Pubkey", + "type": "string", + "description": "Program owner of this account." + }, + "data": { + "title": "Account Data", + "type": "array", + "description": "Account data in the specified encoding format.", + "items": { + "type": "string" + } + }, + "executable": { + "type": "boolean", + "description": "Indicates if the account contains a program." + }, + "rentEpoch": { + "type": "integer", + "description": "The epoch at which this account will next owe rent." + }, + "size": { + "type": "integer", + "description": "The data size of the account." + } + } + } + }, + "unitsConsumed": { + "type": "integer", + "description": "Compute budget units consumed." + }, + "returnData": { + "title": "Return Data", + "type": "object", + "nullable": true, + "properties": { + "programId": { + "title": "Pubkey", + "type": "string", + "description": "Program that generated the return data." + }, + "data": { + "type": "array", + "description": "Return data as base-64 encoded binary data.", + "items": { + "type": "string" + } + } + } + }, + "innerInstructions": { + "type": "object", + "nullable": true, + "description": "Inner instructions if `innerInstructions` is true." + } + } + } + } + } + ], + "components": { + "schemas": {} + } +} \ No newline at end of file