diff --git a/docs/openrpc.json b/docs/openrpc.json index 9c005fca8e..0a840addfa 100644 --- a/docs/openrpc.json +++ b/docs/openrpc.json @@ -57,9 +57,12 @@ "name": "Accounts", "description": "Always returns an empty array", "schema": { - "title": "empty array", + "title": "Accounts", "type": "array", - "pattern": "^\\[\\s*\\]$" + "pattern": "^\\[\\s*\\]$", + "items": { + "$ref": "#/components/schemas/address" + } } } }, @@ -77,21 +80,21 @@ }, { "name": "eth_call", - "summary": "Executes a new message call immediately without creating a transaction on the block chain. ", + "summary": "Executes a new message call immediately without creating a transaction on the block chain.", "description": "![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/http_label.png) ![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/ws_label.png)", "params": [ { "name": "Transaction", "required": true, "schema": { - "$ref": "#/components/schemas/TransactionWithSender" + "$ref": "#/components/schemas/GenericTransaction" } }, { "name": "Block", "required": false, "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "$ref": "#/components/schemas/BlockNumberOrTagOrHash" } } ], @@ -143,7 +146,7 @@ "name": "Transaction", "required": true, "schema": { - "$ref": "#/components/schemas/TransactionWithSender" + "$ref": "#/components/schemas/GenericTransaction" } }, { @@ -217,9 +220,7 @@ "description": "An array of gas used ratio.", "type": "array", "items": { - "title": "floating point number", - "type": "number", - "pattern": "^([0-9].[0-9]*|0)$" + "$ref": "#/components/schemas/ratio" } }, "baseFeePerGas": { @@ -245,13 +246,14 @@ } } } - } + }, + "additionalProperties": false } } }, { "name": "eth_gasPrice", - "summary": "Returns the current price per gas in weibars.", + "summary": "Returns the current price per gas in wei.", "description": "![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/http_label.png) ![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/ws_label.png)", "params": [], "result": { @@ -276,16 +278,15 @@ }, { "name": "Block", - "required": false, + "required": true, "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "$ref": "#/components/schemas/BlockNumberOrTagOrHash" } } ], "result": { "name": "Balance", "schema": { - "title": "hex encoded unsigned integer", "$ref": "#/components/schemas/uint" } } @@ -389,7 +390,7 @@ } ], "result": { - "name": "Transactions count", + "name": "Transaction count", "schema": { "$ref": "#/components/schemas/uint" } @@ -408,7 +409,7 @@ } ], "result": { - "name": "Transactions count", + "name": "Transaction count", "schema": { "$ref": "#/components/schemas/uint" } @@ -428,9 +429,9 @@ }, { "name": "Block", - "required": false, + "required": true, "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "$ref": "#/components/schemas/BlockNumberOrTagOrHash" } } ], @@ -443,7 +444,7 @@ }, { "name": "eth_getLogs", - "summary": "Returns an array of all logs matching a given filter object.", + "summary": "Returns an array of all logs matching filter with given id.", "description": "The block range filter, _i.e._, `fromBlock` and `toBlock` arguments, cannot be larger than `ETH_GET_LOGS_BLOCK_RANGE_LIMIT` (defaults to `1000`). However, when `address` represents a single address, either a `string` or an array with a single element, this restriction is lifted. In any case, if the `topics` param is present the block range must be within ~`302,400` blocks, the equivalent to 7 days.\n\nWhen the logs for an individual address exceeds `MIRROR_NODE_CONTRACT_RESULTS_LOGS_PG_MAX * MIRROR_NODE_LIMIT_PARAM` (defaults to `20k`) an error `-32011` _Mirror Node pagination count range too large_ is returned. These settings are the Mirror Node page limit (defaults to `200`) and Mirror Node entries per page (defaults to `100`) respectively. ![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/http_label.png) ![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/ws_label.png)", "params": [ { @@ -462,7 +463,7 @@ }, { "name": "eth_getStorageAt", - "summary": "Returns the value from a storage position at a given address and block. The optional block param may be latest or a valid tag of a historical block.", + "summary": "Returns the value from a storage position at a given address.", "description": "![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/http_label.png) ![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/ws_label.png)", "params": [ { @@ -473,24 +474,24 @@ } }, { - "name": "Position", + "name": "Storage slot", "required": true, "schema": { - "$ref": "#/components/schemas/uint" + "$ref": "#/components/schemas/uint256" } }, { "name": "Block", - "required": false, + "required": true, "schema": { "$ref": "#/components/schemas/BlockNumberOrTagOrHash" } } ], "result": { - "name": "Value from storage", + "name": "Value", "schema": { - "$ref": "#/components/schemas/hash32" + "$ref": "#/components/schemas/bytes" } } }, @@ -582,16 +583,15 @@ }, { "name": "Block", - "required": false, + "required": true, "schema": { - "$ref": "#/components/schemas/BlockNumberOrTag" + "$ref": "#/components/schemas/BlockNumberOrTagOrHash" } } ], "result": { "name": "Transaction count", "schema": { - "title": "Transaction count", "$ref": "#/components/schemas/uint" } } @@ -609,7 +609,7 @@ } ], "result": { - "name": "Receipt Information", + "name": "Receipt information", "schema": { "$ref": "#/components/schemas/ReceiptInfo" } @@ -685,12 +685,21 @@ } ], "result": { - "name": "eth_getUncleCountByBlockHash result", + "name": "Uncle count", "schema": { "description": "Always returns '0x0'. There are no uncles in Hedera.", "title": "hex encoded unsigned integer", "type": "string", - "pattern": "0x0" + "pattern": "0x0", + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "title": "Uncle count", + "$ref": "#/components/schemas/uint" + } + ] } } }, @@ -708,12 +717,21 @@ } ], "result": { - "name": "eth_getUncleCountByBlockNumber result", + "name": "Uncle count", "schema": { "description": "Always returns '0x0'. There are no uncles in Hedera.", "title": "hex encoded unsigned integer", "type": "string", - "pattern": "0x0" + "pattern": "0x0", + "oneOf": [ + { + "$ref": "#/components/schemas/notFound" + }, + { + "title": "Uncle count", + "$ref": "#/components/schemas/uint" + } + ] } } }, @@ -743,16 +761,14 @@ }, { "name": "eth_maxPriorityFeePerGas", - "summary": "Returns a fee per gas that is an estimate of how much you can pay as a priority fee, or 'tip', to get a transaction included in the current block.", + "summary": "Returns the current maxPriorityFeePerGas per gas in wei.", "description": "![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/http_label.png) ![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/ws_label.png)", "params": [], "result": { - "name": "eth_maxPriorityFeePerGas result", + "name": "Max priority fee per gas", "schema": { - "description": "Always returns '0x0'. Hedera doesn't have a concept of tipping nodes to promote any behavior", - "title": "hex encoded unsigned integer", - "type": "string", - "pattern": "0x0" + "title": "Max priority fee per gas", + "$ref": "#/components/schemas/uint" } } }, @@ -771,13 +787,13 @@ }, { "name": "eth_newBlockFilter", - "summary": "Creates a filter object, to notify of newly created blocks.", + "summary": "Creates a filter in the node, to notify when a new block arrives.", "description": "![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/http_label.png)", "params": [], "result": { - "name": "Filter ID", + "name": "Filter Identifier", "schema": { - "$ref": "#/components/schemas/hash16" + "$ref": "#/components/schemas/uint" } }, "tags": [ @@ -792,16 +808,16 @@ "description": "![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/http_label.png) ![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/ws_label.png)", "params": [ { - "name": "LogFilter", + "name": "Filter", "schema": { - "$ref": "#/components/schemas/LogFilter" + "$ref": "#/components/schemas/Filter" } } ], "result": { - "name": "Filter ID", + "name": "Filter Identifier", "schema": { - "$ref": "#/components/schemas/hash16" + "$ref": "#/components/schemas/uint" } }, "tags": [ @@ -816,14 +832,14 @@ "description": "![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/http_label.png)", "params": [ { - "name": "FilterID", + "name": "Filter Identifier", "schema": { - "$ref": "#/components/schemas/hash16" + "$ref": "#/components/schemas/uint" } } ], "result": { - "name": "Uninstall status", + "name": "Success", "schema": { "type": "boolean" } @@ -836,7 +852,7 @@ }, { "name": "eth_newPendingTransactionFilter", - "summary": "Always returns UNSUPPORTED_METHOD error.", + "summary": "Creates a filter in the node, to notify when new pending transactions arrive.", "params": [], "errors": [ { @@ -847,7 +863,13 @@ { "name": "alpha API" } - ] + ], + "result": { + "name": "Filter Identifier", + "schema": { + "$ref": "#/components/schemas/uint" + } + } }, { "name": "eth_getFilterLogs", @@ -855,14 +877,14 @@ "description": "![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/http_label.png)", "params": [ { - "name": "Filter ID", + "name": "Filter Identifier", "schema": { - "$ref": "#/components/schemas/hash16" + "$ref": "#/components/schemas/uint" } } ], "result": { - "name": "Filter result", + "name": "Log objects", "schema": { "$ref": "#/components/schemas/FilterResults" } @@ -875,36 +897,20 @@ }, { "name": "eth_getFilterChanges", - "summary": "Gets the latest results since the last request for a provided filter according to its type.", + "summary": "Polling method for a filter, which returns an array of logs which occurred since last poll.", "description": "![](https://raw.githubusercontent.com/hiero-ledger/hiero-json-rpc-relay/main/docs/images/http_label.png)", "params": [ { - "name": "Filter ID", + "name": "Filter Identifier", "schema": { - "$ref": "#/components/schemas/hash16" + "$ref": "#/components/schemas/uint" } } ], "result": { - "name": "Filter result", + "name": "Log objects", "schema": { - "oneOf": [ - { - "type": "array", - "items": { - "blockHash": { - "title": "block hash", - "$ref": "#/components/schemas/hash32" - } - } - }, - { - "name": "Log objects", - "schema": { - "$ref": "#/components/schemas/FilterResults" - } - } - ] + "$ref": "#/components/schemas/FilterResults" } }, "tags": [ @@ -1005,9 +1011,7 @@ "result": { "name": "Syncing status", "schema": { - "title": "Not syncing", - "description": "Always returns false.", - "type": "boolean" + "$ref": "#/components/schemas/SyncingStatus" } } }, @@ -1344,955 +1348,2701 @@ "$ref": "#/components/errors/unsupportedError" } ] - } - ], - "components": { - "errors": { - "unsupportedError": { - "code": -32601, - "message": "Unsupported JSON-RPC method" + }, + { + "name": "debug_getBadBlocks", + "summary": "Returns an array of recent bad blocks that the client has seen on the network.", + "params": [], + "result": { + "name": "Blocks", + "schema": { + "title": "Bad block array", + "type": "array", + "items": { + "$ref": "#/components/schemas/BadBlock" + } + } } }, - "schemas": { - "address": { - "title": "hex encoded address", - "type": "string", - "pattern": "^0x[0-9,a-f,A-F]{40}$" - }, - "addresses": { - "type": "array", - "items": { - "$ref": "#/components/schemas/address" + { + "name": "debug_getRawBlock", + "summary": "Returns an RLP-encoded block.", + "params": [ + { + "name": "Block", + "required": true, + "schema": { + "$ref": "#/components/schemas/BlockNumberOrTag" + } } + ], + "result": { + "name": "Block RLP", + "schema": { + "$ref": "#/components/schemas/bytes" + } + } + }, + { + "name": "debug_getRawHeader", + "summary": "Returns an RLP-encoded header.", + "params": [ + { + "name": "Block", + "required": true, + "schema": { + "$ref": "#/components/schemas/BlockNumberOrTag" + } + } + ], + "result": { + "name": "Header RLP", + "schema": { + "$ref": "#/components/schemas/bytes" + } + } + }, + { + "name": "debug_getRawReceipts", + "summary": "Returns an array of EIP-2718 binary-encoded receipts.", + "params": [ + { + "name": "Block", + "required": true, + "schema": { + "$ref": "#/components/schemas/BlockNumberOrTag" + } + } + ], + "result": { + "name": "Receipts", + "schema": { + "title": "Receipt array", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes" + } + } + } + }, + { + "name": "debug_getRawTransaction", + "summary": "Returns an array of EIP-2718 binary-encoded transactions.", + "params": [ + { + "name": "Transaction hash", + "required": true, + "schema": { + "$ref": "#/components/schemas/hash32" + } + } + ], + "result": { + "name": "EIP-2718 binary-encoded transaction", + "schema": { + "$ref": "#/components/schemas/bytes" + } + } + }, + { + "name": "engine_exchangeCapabilities", + "summary": "Exchanges list of supported Engine API methods", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md#engine_exchangecapabilities" }, - "byte": { - "title": "hex encoded byte", - "type": "string", - "pattern": "^0x([0-9,a-f,A-F]?){1,2}$" - }, - "bytes": { - "title": "hex encoded bytes", - "type": "string", - "pattern": "^0x[0-9a-f]*$" + "params": [ + { + "name": "Consensus client methods", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "result": { + "name": "Execution client methods", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "name": "engine_exchangeTransitionConfigurationV1", + "summary": "Exchanges transition configuration", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#engine_exchangetransitionconfigurationv1" }, - "bytes8": { - "title": "8 hex encoded bytes", - "type": "string", - "pattern": "^0x[0-9a-f]{16}$" + "params": [ + { + "name": "Consensus client configuration", + "required": true, + "schema": { + "$ref": "#/components/schemas/TransitionConfigurationV1" + } + } + ], + "result": { + "name": "Execution client configuration", + "schema": { + "$ref": "#/components/schemas/TransitionConfigurationV1" + } + } + }, + { + "name": "engine_forkchoiceUpdatedV1", + "summary": "Updates the forkchoice state", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#engine_forkchoiceupdatedv1" }, - "bytes32": { - "title": "32 hex encoded bytes", - "type": "string", - "pattern": "^0x[0-9a-f]{64}$" + "params": [ + { + "name": "Forkchoice state", + "required": true, + "schema": { + "$ref": "#/components/schemas/ForkchoiceStateV1" + } + }, + { + "name": "Payload attributes", + "required": false, + "schema": { + "$ref": "#/components/schemas/PayloadAttributesV1" + } + } + ], + "result": { + "name": "Response object", + "schema": { + "$ref": "#/components/schemas/ForkchoiceUpdatedResponseV1" + } }, - "bytes256": { - "title": "256 hex encoded bytes", - "type": "string", - "pattern": "^0x[0-9a-f]{512}$" + "errors": [ + { + "code": -38002, + "message": "Invalid forkchoice state" + }, + { + "code": -38003, + "message": "Invalid payload attributes" + } + ] + }, + { + "name": "engine_forkchoiceUpdatedV2", + "summary": "Updates the forkchoice state", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_forkchoiceupdatedv2" }, - "bytes65": { - "title": "65 hex encoded bytes", - "type": "string", + "params": [ + { + "name": "Forkchoice state", + "required": true, + "schema": { + "$ref": "#/components/schemas/ForkchoiceStateV1" + } + }, + { + "name": "Payload attributes", + "required": false, + "schema": { + "$ref": "#/components/schemas/PayloadAttributesV2" + } + } + ], + "result": { + "name": "Response object", + "schema": { + "$ref": "#/components/schemas/ForkchoiceUpdatedResponseV1" + } + }, + "errors": [ + { + "code": -38002, + "message": "Invalid forkchoice state" + }, + { + "code": -38003, + "message": "Invalid payload attributes" + } + ] + }, + { + "name": "engine_forkchoiceUpdatedV3", + "summary": "Updates the forkchoice state", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#engine_forkchoiceupdatedv3" + }, + "params": [ + { + "name": "Forkchoice state", + "required": true, + "schema": { + "$ref": "#/components/schemas/ForkchoiceStateV1" + } + }, + { + "name": "Payload attributes", + "required": false, + "schema": { + "$ref": "#/components/schemas/PayloadAttributesV3" + } + } + ], + "result": { + "name": "Response object", + "schema": { + "$ref": "#/components/schemas/ForkchoiceUpdatedResponseV1" + } + }, + "errors": [ + { + "code": -38002, + "message": "Invalid forkchoice state" + }, + { + "code": -38003, + "message": "Invalid payload attributes" + }, + { + "code": -32602, + "message": "Invalid params" + }, + { + "code": -38005, + "message": "Unsupported fork" + } + ] + }, + { + "name": "engine_getPayloadBodiesByHashV1", + "summary": "Given block hashes returns bodies of the corresponding execution payloads", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_getpayloadbodiesbyhashv1" + }, + "params": [ + { + "name": "Array of block hashes", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + } + } + ], + "result": { + "name": "Execution payload bodies", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExecutionPayloadBodyV1" + } + } + }, + "errors": [ + { + "code": -38004, + "message": "Too large request" + } + ] + }, + { + "name": "engine_getPayloadBodiesByRangeV1", + "summary": "Given a range of block numbers returns bodies of the corresponding execution payloads", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_getpayloadbodiesbyrangev1" + }, + "params": [ + { + "name": "Starting block number", + "required": true, + "schema": { + "$ref": "#/components/schemas/uint64" + } + }, + { + "name": "Number of blocks to return", + "required": true, + "schema": { + "$ref": "#/components/schemas/uint64" + } + } + ], + "result": { + "name": "Execution payload bodies", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExecutionPayloadBodyV1" + } + } + }, + "errors": [ + { + "code": -38004, + "message": "Too large request" + } + ] + }, + { + "name": "engine_getPayloadV1", + "summary": "Obtains execution payload from payload build process", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#engine_getpayloadv1" + }, + "params": [ + { + "name": "Payload id", + "required": true, + "schema": { + "$ref": "#/components/schemas/bytes8" + } + } + ], + "result": { + "name": "Execution payload", + "schema": { + "$ref": "#/components/schemas/ExecutionPayloadV1" + } + }, + "errors": [ + { + "code": -38001, + "message": "Unknown payload" + } + ] + }, + { + "name": "engine_getPayloadV2", + "summary": "Obtains execution payload from payload build process", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_getpayloadv2" + }, + "params": [ + { + "name": "Payload id", + "required": true, + "schema": { + "$ref": "#/components/schemas/bytes8" + } + } + ], + "result": { + "name": "Response object", + "schema": { + "type": "object", + "required": ["executionPayload", "blockValue"], + "properties": { + "executionPayload": { + "title": "Execution payload", + "oneOf": [ + { + "$ref": "#/components/schemas/ExecutionPayloadV1" + }, + { + "$ref": "#/components/schemas/ExecutionPayloadV2" + } + ] + }, + "blockValue": { + "title": "Expected fee value", + "$ref": "#/components/schemas/uint256" + } + } + } + }, + "errors": [ + { + "code": -38001, + "message": "Unknown payload" + } + ] + }, + { + "name": "engine_getPayloadV3", + "summary": "Obtains execution payload from payload build process", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#engine_getpayloadv3" + }, + "params": [ + { + "name": "Payload id", + "required": true, + "schema": { + "$ref": "#/components/schemas/bytes8" + } + } + ], + "result": { + "name": "Response object", + "schema": { + "type": "object", + "required": ["executionPayload", "blockValue", "blobsBundle", "shouldOverrideBuilder"], + "properties": { + "executionPayload": { + "title": "Execution payload", + "$ref": "#/components/schemas/ExecutionPayloadV3" + }, + "blockValue": { + "title": "Expected fee value", + "$ref": "#/components/schemas/uint256" + }, + "blobsBundle": { + "title": "Blobs bundle", + "$ref": "#/components/schemas/BlobsBundleV1" + }, + "shouldOverrideBuilder": { + "title": "Should override builder flag", + "type": "boolean" + } + } + } + }, + "errors": [ + { + "code": -38001, + "message": "Unknown payload" + }, + { + "code": -38005, + "message": "Unsupported fork" + } + ] + }, + { + "name": "engine_getPayloadV4", + "summary": "Obtains execution payload from payload build process", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/prague.md#engine_getpayloadv4" + }, + "params": [ + { + "name": "Payload id", + "required": true, + "schema": { + "$ref": "#/components/schemas/bytes8" + } + } + ], + "result": { + "name": "Response object", + "schema": { + "type": "object", + "required": ["executionPayload", "blockValue", "blobsBundle", "shouldOverrideBuilder"], + "properties": { + "executionPayload": { + "title": "Execution payload", + "$ref": "#/components/schemas/ExecutionPayloadV4" + }, + "blockValue": { + "title": "Expected fee value", + "$ref": "#/components/schemas/uint256" + }, + "blobsBundle": { + "title": "Blobs bundle", + "$ref": "#/components/schemas/BlobsBundleV1" + }, + "shouldOverrideBuilder": { + "title": "Should override builder flag", + "type": "boolean" + } + } + } + }, + "errors": [ + { + "code": -38001, + "message": "Unknown payload" + }, + { + "code": -38005, + "message": "Unsupported fork" + } + ] + }, + { + "name": "engine_newPayloadV1", + "summary": "Runs execution payload validation", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#engine_newpayloadv1" + }, + "params": [ + { + "name": "Execution payload", + "required": true, + "schema": { + "$ref": "#/components/schemas/ExecutionPayloadV1" + } + } + ], + "result": { + "name": "Payload status", + "schema": { + "$ref": "#/components/schemas/PayloadStatusV1" + } + } + }, + { + "name": "engine_newPayloadV2", + "summary": "Runs execution payload validation", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_newpayloadv2" + }, + "params": [ + { + "name": "Execution payload", + "required": true, + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/ExecutionPayloadV1" + }, + { + "$ref": "#/components/schemas/ExecutionPayloadV2" + } + ] + } + } + ], + "result": { + "name": "Payload status", + "schema": { + "$ref": "#/components/schemas/PayloadStatusNoInvalidBlockHash" + } + }, + "errors": [ + { + "code": -32602, + "message": "Invalid params" + } + ] + }, + { + "name": "engine_newPayloadV3", + "summary": "Runs execution payload validation", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#engine_newpayloadv3" + }, + "params": [ + { + "name": "Execution payload", + "required": true, + "schema": { + "$ref": "#/components/schemas/ExecutionPayloadV3" + } + }, + { + "name": "Expected blob versioned hashes", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + } + }, + { + "name": "Root of the parent beacon block", + "required": true, + "schema": { + "$ref": "#/components/schemas/hash32" + } + } + ], + "result": { + "name": "Payload status", + "schema": { + "$ref": "#/components/schemas/PayloadStatusNoInvalidBlockHash" + } + }, + "errors": [ + { + "code": -32602, + "message": "Invalid params" + }, + { + "code": -38005, + "message": "Unsupported fork" + } + ] + }, + { + "name": "engine_newPayloadV4", + "summary": "Runs execution payload validation", + "externalDocs": { + "description": "Method specification", + "url": "https://github.com/ethereum/execution-apis/blob/main/src/engine/prague.md#engine_newpayloadv4" + }, + "params": [ + { + "name": "Execution payload", + "required": true, + "schema": { + "$ref": "#/components/schemas/ExecutionPayloadV4" + } + }, + { + "name": "Expected blob versioned hashes", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + } + }, + { + "name": "Root of the parent beacon block", + "required": true, + "schema": { + "$ref": "#/components/schemas/hash32" + } + } + ], + "result": { + "name": "Payload status", + "schema": { + "$ref": "#/components/schemas/PayloadStatusNoInvalidBlockHash" + } + }, + "errors": [ + { + "code": -32602, + "message": "Invalid params" + }, + { + "code": -38005, + "message": "Unsupported fork" + } + ] + } + ], + "components": { + "errors": { + "unsupportedError": { + "code": -32601, + "message": "Unsupported JSON-RPC method" + } + }, + "schemas": { + "address": { + "title": "hex encoded address", + "type": "string", + "pattern": "^0x[0-9,a-f,A-F]{40}$" + }, + "addresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/address" + } + }, + "byte": { + "title": "hex encoded byte", + "type": "string", + "pattern": "^0x([0-9,a-f,A-F]?){1,2}$" + }, + "bytes": { + "title": "hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]*$" + }, + "bytes8": { + "title": "8 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{16}$" + }, + "bytes32": { + "title": "32 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "bytes256": { + "title": "256 hex encoded bytes", + "type": "string", "pattern": "^0x[0-9a-f]{512}$" }, - "int": { - "title": "decimal value integer", - "type": "string", - "pattern": "^\\d+$" + "bytes65": { + "title": "65 hex encoded bytes", + "type": "string", + "pattern": "^0x[0-9a-f]{512}$" + }, + "int": { + "title": "decimal value integer", + "type": "string", + "pattern": "^\\d+$" + }, + "uint": { + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x([1-9a-f]+[0-9a-f]*|0)$" + }, + "uint256": { + "title": "hex encoded unsigned integer", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "hash16": { + "title": "16 byte hex value", + "type": "string", + "pattern": "^0x[0-9a-f]{32}$" + }, + "hash32": { + "title": "32 byte hex value", + "type": "string", + "pattern": "^0x[0-9a-f]{64}$" + }, + "null": { + "title": "null value", + "type": "null", + "pattern": "null" + }, + "subcall": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["CALL", "CREATE"], + "description": "The type of action (CALL for function calls or CREATE for contract creation)." + }, + "from": { + "$ref": "#/components/schemas/address", + "description": "The address of the sender." + }, + "to": { + "$ref": "#/components/schemas/address", + "description": "The address of the receiver. In the case of a contract creation, this might be null." + }, + "value": { + "$ref": "#/components/schemas/uint", + "description": "The value transferred with the call, in hexadecimal." + }, + "gas": { + "$ref": "#/components/schemas/uint", + "description": "The gas provided for the call, in hexadecimal." + }, + "gasUsed": { + "$ref": "#/components/schemas/uint", + "description": "The gas used during the call, in hexadecimal." + }, + "input": { + "$ref": "#/components/schemas/bytes", + "description": "The input data sent with the call." + }, + "output": { + "$ref": "#/components/schemas/bytes", + "description": "The output data returned by the call." + }, + "error": { + "type": "string", + "description": "Error encountered during the call, if any." + }, + "revertReason": { + "type": "string", + "description": "Solidity revert reason, if applicable." + } + }, + "required": ["from", "gas", "input"] + }, + "notFound": { + "title": "Not Found (null)", + "type": "null" + }, + "Block": { + "title": "Block object", + "type": "object", + "required": [ + "parentHash", + "sha3Uncles", + "miner", + "stateRoot", + "transactionsRoot", + "receiptsRoot", + "logsBloom", + "number", + "gasLimit", + "gasUsed", + "timestamp", + "extraData", + "mixHash", + "nonce", + "size", + "transactions", + "uncles", + "withdrawals", + "withdrawalsRoot" + ], + "properties": { + "parentHash": { + "title": "Parent block hash", + "$ref": "#/components/schemas/hash32" + }, + "sha3Uncles": { + "title": "Ommers hash", + "$ref": "#/components/schemas/hash32" + }, + "miner": { + "title": "Coinbase", + "$ref": "#/components/schemas/address" + }, + "stateRoot": { + "title": "State root", + "$ref": "#/components/schemas/hash32" + }, + "transactionsRoot": { + "title": "Transactions root", + "$ref": "#/components/schemas/hash32" + }, + "receiptsRoot": { + "title": "Receipts root", + "$ref": "#/components/schemas/hash32" + }, + "logsBloom": { + "title": "Bloom filter", + "$ref": "#/components/schemas/bytes256" + }, + "difficulty": { + "title": "Difficulty", + "$ref": "#/components/schemas/uint" + }, + "number": { + "title": "Number", + "$ref": "#/components/schemas/uint" + }, + "gasLimit": { + "title": "Gas limit", + "$ref": "#/components/schemas/uint" + }, + "gasUsed": { + "title": "Gas used", + "$ref": "#/components/schemas/uint" + }, + "timestamp": { + "title": "Timestamp", + "$ref": "#/components/schemas/uint" + }, + "extraData": { + "title": "Extra data", + "$ref": "#/components/schemas/bytes" + }, + "mixHash": { + "title": "Mix hash", + "$ref": "#/components/schemas/hash32" + }, + "nonce": { + "title": "Nonce", + "$ref": "#/components/schemas/bytes8" + }, + "totalDifficulty": { + "title": "Total difficulty", + "$ref": "#/components/schemas/uint" + }, + "baseFeePerGas": { + "title": "Base fee per gas", + "$ref": "#/components/schemas/uint" + }, + "size": { + "title": "Block size", + "$ref": "#/components/schemas/uint" + }, + "transactions": { + "anyOf": [ + { + "title": "Transaction hashes", + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + }, + { + "title": "Full transactions", + "type": "array", + "items": { + "$ref": "#/components/schemas/TransactionInfo" + } + } + ] + }, + "uncles": { + "title": "Uncles", + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + }, + "withdrawals": { + "title": "Withdrawals", + "type": "array", + "default": [] + }, + "withdrawalsRoot": { + "title": "Withdrawals root", + "$ref": "#/components/schemas/hash32" + } + } + }, + "BlockTag": { + "type": "string", + "enum": ["earliest", "latest", "pending", "finalized", "safe"], + "description": "`earliest`: The lowest numbered block the client has available; `latest` | `pending` | 'finalized' | 'safe' : The most recent block." + }, + "BlockNumberOrTag": { + "title": "Block number or tag", + "oneOf": [ + { + "title": "Block number", + "$ref": "#/components/schemas/uint" + }, + { + "title": "Block tag", + "$ref": "#/components/schemas/BlockTag" + } + ] + }, + "BlockNumberOrTagOrHash": { + "title": "Block number, tag, or block hash", + "oneOf": [ + { + "title": "Block number", + "$ref": "#/components/schemas/uint" + }, + { + "title": "Block tag", + "$ref": "#/components/schemas/BlockTag" + }, + { + "title": "Block hash", + "$ref": "#/components/schemas/hash32" + } + ] + }, + "CallTracerConfig": { + "title": "CallTracer config", + "type": "object", + "properties": { + "onlyTopCall": { + "type": "boolean" + } + } + }, + "OpcodeLoggerConfig": { + "title": "OpcodeLogger config", + "type": "object", + "properties": { + "enableMemory": { + "type": "boolean" + }, + "disableStack": { + "type": "boolean" + }, + "disableStorage": { + "type": "boolean" + }, + "fullStorage": { + "type": "boolean", + "description": "Non-standard parameter sometimes sent by Remix - accepted for compatibility but ignored in implementation" + } + } + }, + "TracerConfig": { + "title": "Tracer config", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/CallTracerConfig" + }, + { + "$ref": "#/components/schemas/OpcodeLoggerConfig" + } + ] + }, + "TracerType": { + "title": "Tracer type", + "type": "string", + "enum": ["callTracer", "opcodeLogger", "prestateTracer"] + }, + "TracerConfigWrapper": { + "title": "Tracer config wrapper", + "type": "object", + "properties": { + "tracer": { + "$ref": "#/components/schemas/TracerType" + }, + "tracerConfig": { + "$ref": "#/components/schemas/TracerConfig" + }, + "enableMemory": { + "type": "boolean", + "description": "Top-level opcodeLogger config property. Only valid when no explicit 'tracer' is specified (defaults to opcodeLogger)." + }, + "disableStack": { + "type": "boolean", + "description": "Top-level opcodeLogger config property. Only valid when no explicit 'tracer' is specified (defaults to opcodeLogger)." + }, + "disableStorage": { + "type": "boolean", + "description": "Top-level opcodeLogger config property. Only valid when no explicit 'tracer' is specified (defaults to opcodeLogger)." + }, + "fullStorage": { + "type": "boolean", + "description": "Top-level opcodeLogger config property. Non-standard parameter for Remix compatibility - accepted but ignored. Only valid when no explicit 'tracer' is specified." + } + } + }, + "BlockTracerType": { + "title": "Block tracer type", + "type": "string", + "enum": ["callTracer", "prestateTracer"] + }, + "TransactionWithSender": { + "title": "Transaction object with sender", + "type": "object", + "allOf": [ + { + "required": ["from"], + "properties": { + "from": { + "title": "from", + "$ref": "#/components/schemas/address" + } + } + }, + { + "$ref": "#/components/schemas/TransactionUnsigned" + } + ] + }, + "Transaction1559Unsigned": { + "type": "object", + "title": "EIP-1559 transaction.", + "required": [ + "type", + "nonce", + "gas", + "value", + "input", + "maxFeePerGas", + "maxPriorityFeePerGas", + "chainId", + "accessList" + ], + "properties": { + "type": { + "title": "type", + "$ref": "#/components/schemas/byte" + }, + "nonce": { + "title": "nonce", + "$ref": "#/components/schemas/uint" + }, + "to": { + "title": "to address", + "$ref": "#/components/schemas/address" + }, + "gas": { + "title": "gas limit", + "$ref": "#/components/schemas/uint" + }, + "value": { + "title": "value", + "$ref": "#/components/schemas/uint" + }, + "input": { + "title": "input data", + "$ref": "#/components/schemas/bytes" + }, + "maxPriorityFeePerGas": { + "title": "max priority fee per gas", + "description": "Maximum fee per gas the sender is willing to pay to miners in wei", + "$ref": "#/components/schemas/uint" + }, + "maxFeePerGas": { + "title": "max fee per gas", + "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", + "$ref": "#/components/schemas/uint" + }, + "accessList": { + "title": "accessList", + "description": "EIP-2930 access list", + "$ref": "#/components/schemas/AccessList" + }, + "chainId": { + "title": "chainId", + "description": "Chain ID that this transaction is valid on.", + "$ref": "#/components/schemas/uint" + } + } + }, + "TransactionLegacyUnsigned": { + "type": "object", + "title": "Legacy transaction.", + "required": ["type", "nonce", "gas", "value", "input", "gasPrice"], + "properties": { + "type": { + "title": "type", + "$ref": "#/components/schemas/byte" + }, + "nonce": { + "title": "nonce", + "$ref": "#/components/schemas/uint" + }, + "to": { + "title": "to address", + "$ref": "#/components/schemas/address" + }, + "gas": { + "title": "gas limit", + "$ref": "#/components/schemas/uint" + }, + "value": { + "title": "value", + "$ref": "#/components/schemas/uint" + }, + "input": { + "title": "input data", + "$ref": "#/components/schemas/bytes" + }, + "gasPrice": { + "title": "gas price", + "description": "The gas price willing to be paid by the sender in wei", + "$ref": "#/components/schemas/uint" + }, + "chainId": { + "title": "chainId", + "description": "Chain ID that this transaction is valid on.", + "$ref": "#/components/schemas/uint" + } + } + }, + "Transaction1559Signed": { + "title": "Signed 1559 Transaction", + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Transaction1559Unsigned" + }, + { + "title": "EIP-1559 transaction signature properties.", + "required": ["yParity", "r", "s", "v"], + "properties": { + "yParity": { + "title": "yParity", + "description": "The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.", + "$ref": "#/components/schemas/uint" + }, + "r": { + "title": "r", + "$ref": "#/components/schemas/uint" + }, + "s": { + "title": "s", + "$ref": "#/components/schemas/uint" + }, + "v": { + "title": "v", + "description": "For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.", + "$ref": "#/components/schemas/uint" + } + } + } + ] + }, + "TransactionUnsigned": { + "oneOf": [ + { + "$ref": "#/components/schemas/Transaction4844Unsigned" + }, + { + "$ref": "#/components/schemas/Transaction1559Unsigned" + } + ] + }, + "TransactionLegacySigned": { + "title": "Signed Legacy Transaction", + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/TransactionLegacyUnsigned" + }, + { + "title": "Legacy transaction signature properties.", + "required": ["v", "r", "s"], + "properties": { + "v": { + "title": "v", + "$ref": "#/components/schemas/uint" + }, + "r": { + "title": "r", + "$ref": "#/components/schemas/uint" + }, + "s": { + "title": "s", + "$ref": "#/components/schemas/uint" + } + } + } + ] + }, + "TransactionSigned": { + "anyOf": [ + { + "$ref": "#/components/schemas/Transaction1559Signed" + }, + { + "$ref": "#/components/schemas/TransactionLegacySigned" + } + ] + }, + "TransactionInfo": { + "type": "object", + "title": "Transaction information", + "allOf": [ + { + "title": "Contextual information", + "required": ["blockHash", "blockNumber", "from", "hash", "transactionIndex"], + "properties": { + "blockHash": { + "title": "block hash", + "$ref": "#/components/schemas/hash32" + }, + "blockNumber": { + "title": "block number", + "$ref": "#/components/schemas/uint" + }, + "from": { + "title": "from address", + "$ref": "#/components/schemas/address" + }, + "hash": { + "title": "transaction hash", + "$ref": "#/components/schemas/hash32" + }, + "transactionIndex": { + "title": "transaction index", + "$ref": "#/components/schemas/uint" + } + } + }, + { + "$ref": "#/components/schemas/TransactionSigned" + } + ] + }, + "Log": { + "title": "log", + "type": "object", + "required": ["transactionHash"], + "properties": { + "removed": { + "title": "removed", + "type": "boolean" + }, + "logIndex": { + "title": "log index", + "$ref": "#/components/schemas/uint" + }, + "transactionIndex": { + "title": "transaction index", + "$ref": "#/components/schemas/uint" + }, + "transactionHash": { + "title": "transaction hash", + "$ref": "#/components/schemas/hash32" + }, + "blockHash": { + "title": "block hash", + "$ref": "#/components/schemas/hash32" + }, + "blockNumber": { + "title": "block number", + "$ref": "#/components/schemas/uint" + }, + "address": { + "title": "address", + "$ref": "#/components/schemas/address" + }, + "data": { + "title": "data", + "$ref": "#/components/schemas/bytes" + }, + "topics": { + "title": "topics", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes32" + } + } + } + }, + "ReceiptInfo": { + "type": "object", + "title": "Receipt information", + "required": [ + "blockHash", + "blockNumber", + "from", + "cumulativeGasUsed", + "gasUsed", + "logs", + "logsBloom", + "transactionHash", + "transactionIndex", + "effectiveGasPrice" + ], + "additionalProperties": false, + "properties": { + "type": { + "title": "type", + "$ref": "#/components/schemas/byte" + }, + "transactionHash": { + "title": "transaction hash", + "$ref": "#/components/schemas/hash32" + }, + "transactionIndex": { + "title": "transaction index", + "$ref": "#/components/schemas/uint" + }, + "blockHash": { + "title": "block hash", + "$ref": "#/components/schemas/hash32" + }, + "blockNumber": { + "title": "block number", + "$ref": "#/components/schemas/uint" + }, + "from": { + "title": "from", + "$ref": "#/components/schemas/address" + }, + "to": { + "title": "to", + "description": "Address of the receiver or null in a contract creation transaction.", + "oneOf": [ + { + "title": "Contract Creation (null)", + "type": "null" + }, + { + "title": "Recipient Address", + "$ref": "#/components/schemas/address" + } + ] + }, + "cumulativeGasUsed": { + "title": "cumulative gas used", + "description": "The sum of gas used by this transaction and all preceding transactions in the same block.", + "$ref": "#/components/schemas/uint" + }, + "gasUsed": { + "title": "gas used", + "description": "The amount of gas used for this specific transaction alone.", + "$ref": "#/components/schemas/uint" + }, + "contractAddress": { + "title": "contract address", + "description": "The contract address created, if the transaction was a contract creation, otherwise null.", + "oneOf": [ + { + "$ref": "#/components/schemas/address" + }, + { + "title": "Null", + "type": "null" + } + ] + }, + "logs": { + "title": "logs", + "type": "array", + "items": { + "$ref": "#/components/schemas/Log" + } + }, + "logsBloom": { + "title": "logs bloom", + "$ref": "#/components/schemas/bytes256" + }, + "root": { + "title": "state root", + "description": "The post-transaction state root. Only specified for transactions included before the Byzantium upgrade.", + "$ref": "#/components/schemas/hash32" + }, + "status": { + "title": "status", + "description": "Either 1 (success) or 0 (failure). Only specified for transactions included after the Byzantium upgrade.", + "$ref": "#/components/schemas/uint" + }, + "effectiveGasPrice": { + "title": "effective gas price", + "description": "The actual value per gas deducted from the sender's account. Before EIP-1559, this is equal to the transaction's gas price. After, it is equal to baseFeePerGas + min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas).", + "$ref": "#/components/schemas/uint" + } + } + }, + "FilterResults": { + "title": "Filter results", + "oneOf": [ + { + "title": "new block hashes", + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + }, + { + "title": "new transaction hashes", + "type": "array", + "items": { + "$ref": "#/components/schemas/Log" + } + }, + { + "title": "new logs", + "type": "array", + "items": { + "$ref": "#/components/schemas/Log" + } + } + ] + }, + "Filter": { + "title": "filter", + "type": "object", + "properties": { + "fromBlock": { + "title": "from block", + "$ref": "#/components/schemas/uint" + }, + "toBlock": { + "title": "to block", + "$ref": "#/components/schemas/uint" + }, + "blockHash": { + "title": "Block hash", + "$ref": "#/components/schemas/hash32" + }, + "address": { + "title": "Address(es)", + "oneOf": [ + { + "title": "Address", + "$ref": "#/components/schemas/address" + }, + { + "title": "Address", + "$ref": "#/components/schemas/address" + } + ] + }, + "topics": { + "title": "Topics", + "$ref": "#/components/schemas/FilterTopics" + } + } + }, + "FilterTopics": { + "title": "Filter Topics", + "type": "array", + "items": { + "$ref": "#/components/schemas/FilterTopic" + } + }, + "FilterTopic": { + "title": "Filter Topic List Entry", + "oneOf": [ + { + "title": "Single Topic Match", + "$ref": "#/components/schemas/bytes32" + }, + { + "title": "Single Topic Match", + "$ref": "#/components/schemas/bytes32" + }, + { + "title": "Multiple Topic Match", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes32" + } + } + ] }, - "uint": { - "title": "hex encoded unsigned integer", + "LogFilter": { + "title": "log filter", + "type": "object", + "properties": { + "fromBlock": { + "title": "from block", + "$ref": "#/components/schemas/uint" + }, + "toBlock": { + "title": "to block", + "$ref": "#/components/schemas/uint" + }, + "address": { + "title": "Address", + "$ref": "#/components/schemas/address" + }, + "topics": { + "title": "Topics", + "$ref": "#/components/schemas/FilterTopics" + } + } + }, + "callframe": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["CALL", "CREATE"], + "description": "The type of action (CALL for function calls or CREATE for contract creation)." + }, + "from": { + "$ref": "#/components/schemas/address", + "description": "The address of the sender." + }, + "to": { + "$ref": "#/components/schemas/address", + "description": "The address of the receiver. In the case of a contract creation, this might be null." + }, + "value": { + "$ref": "#/components/schemas/uint", + "description": "The value transferred with the call, in hexadecimal." + }, + "gas": { + "$ref": "#/components/schemas/uint", + "description": "The gas provided for the call, in hexadecimal." + }, + "gasUsed": { + "$ref": "#/components/schemas/uint", + "description": "The gas used during the call, in hexadecimal." + }, + "input": { + "$ref": "#/components/schemas/bytes", + "description": "The input data sent with the call." + }, + "output": { + "$ref": "#/components/schemas/bytes", + "description": "The output data returned by the call." + }, + "error": { + "type": "string", + "description": "Error encountered during the call, if any." + }, + "revertReason": { + "type": "string", + "description": "Solidity revert reason, if applicable." + }, + "calls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/subcall" + }, + "description": "Sub-calls made during this call frame." + } + }, + "required": ["from", "gas", "input"] + }, + "bytesMax32": { + "title": "32 hex encoded bytes", "type": "string", - "pattern": "^0x([1-9a-f]+[0-9a-f]*|0)$" + "pattern": "^0x[0-9a-f]{0,64}$" }, - "uint256": { - "title": "hex encoded unsigned integer", + "bytes48": { + "title": "48 hex encoded bytes", "type": "string", - "pattern": "^0x[0-9a-f]{64}$" + "pattern": "^0x[0-9a-f]{96}$" }, - "hash16": { - "title": "16 byte hex value", + "bytes96": { + "title": "96 hex encoded bytes", "type": "string", - "pattern": "^0x[0-9a-f]{32}$" + "pattern": "^0x[0-9a-f]{192}$" }, - "hash32": { - "title": "32 byte hex value", + "ratio": { + "title": "normalized ratio", + "type": "number", + "minimum": 0, + "maximum": 1 + }, + "uint64": { + "title": "hex encoded 64 bit unsigned integer", "type": "string", - "pattern": "^0x[0-9a-f]{64}$" + "pattern": "^0x([1-9a-f]+[0-9a-f]{0,15})|0$" + }, + "BadBlock": { + "title": "Bad block", + "type": "object", + "required": ["block", "hash", "rlp"], + "additionalProperties": false, + "properties": { + "block": { + "title": "Block", + "$ref": "#/components/schemas/Block" + }, + "hash": { + "title": "Hash", + "$ref": "#/components/schemas/hash32" + }, + "rlp": { + "title": "RLP", + "$ref": "#/components/schemas/bytes" + } + } + }, + "SyncingStatus": { + "title": "Syncing status", + "oneOf": [ + { + "title": "Syncing progress", + "type": "object", + "additionalProperties": false, + "properties": { + "startingBlock": { + "title": "Starting block", + "$ref": "#/components/schemas/uint" + }, + "currentBlock": { + "title": "Current block", + "$ref": "#/components/schemas/uint" + }, + "highestBlock": { + "title": "Highest block", + "$ref": "#/components/schemas/uint" + } + } + }, + { + "title": "Not syncing", + "description": "Should always return false if not syncing.", + "type": "boolean" + } + ] + }, + "AccountProof": { + "title": "Account proof", + "type": "object", + "required": ["address", "accountProof", "balance", "codeHash", "nonce", "storageHash", "storageProof"], + "additionalProperties": false, + "properties": { + "address": { + "title": "address", + "$ref": "#/components/schemas/address" + }, + "accountProof": { + "title": "accountProof", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes" + } + }, + "balance": { + "title": "balance", + "$ref": "#/components/schemas/uint256" + }, + "codeHash": { + "title": "codeHash", + "$ref": "#/components/schemas/hash32" + }, + "nonce": { + "title": "nonce", + "$ref": "#/components/schemas/uint64" + }, + "storageHash": { + "title": "storageHash", + "$ref": "#/components/schemas/hash32" + }, + "storageProof": { + "title": "Storage proofs", + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageProof" + } + } + } + }, + "StorageProof": { + "title": "Storage proof", + "type": "object", + "required": ["key", "value", "proof"], + "additionalProperties": false, + "properties": { + "key": { + "title": "key", + "$ref": "#/components/schemas/bytesMax32" + }, + "value": { + "title": "value", + "$ref": "#/components/schemas/uint256" + }, + "proof": { + "title": "proof", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes" + } + } + } + }, + "Transaction4844Unsigned": { + "type": "object", + "title": "EIP-4844 transaction.", + "required": [ + "type", + "nonce", + "to", + "gas", + "value", + "input", + "maxPriorityFeePerGas", + "maxFeePerGas", + "maxFeePerBlobGas", + "accessList", + "blobVersionedHashes", + "chainId" + ], + "properties": { + "type": { + "title": "type", + "$ref": "#/components/schemas/byte" + }, + "nonce": { + "title": "nonce", + "$ref": "#/components/schemas/uint" + }, + "to": { + "title": "to address", + "$ref": "#/components/schemas/address" + }, + "gas": { + "title": "gas limit", + "$ref": "#/components/schemas/uint" + }, + "value": { + "title": "value", + "$ref": "#/components/schemas/uint" + }, + "input": { + "title": "input data", + "$ref": "#/components/schemas/bytes" + }, + "maxPriorityFeePerGas": { + "title": "max priority fee per gas", + "description": "Maximum fee per gas the sender is willing to pay to miners in wei", + "$ref": "#/components/schemas/uint" + }, + "maxFeePerGas": { + "title": "max fee per gas", + "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", + "$ref": "#/components/schemas/uint" + }, + "maxFeePerBlobGas": { + "title": "max fee per blob gas", + "description": "The maximum total fee per gas the sender is willing to pay for blob gas in wei", + "$ref": "#/components/schemas/uint" + }, + "accessList": { + "title": "accessList", + "description": "EIP-2930 access list", + "$ref": "#/components/schemas/AccessList" + }, + "blobVersionedHashes": { + "title": "blobVersionedHashes", + "description": "List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.", + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + }, + "chainId": { + "title": "chainId", + "description": "Chain ID that this transaction is valid on.", + "$ref": "#/components/schemas/uint" + } + } + }, + "AccessListEntry": { + "title": "Access list entry", + "type": "object", + "additionalProperties": false, + "properties": { + "address": { + "$ref": "#/components/schemas/address" + }, + "storageKeys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/hash32" + } + } + } }, - "null": { - "title": "null value", - "type": "null", - "pattern": "null" + "AccessList": { + "title": "Access list", + "type": "array", + "items": { + "$ref": "#/components/schemas/AccessListEntry" + } }, - "subcall": { + "Transaction2930Unsigned": { "type": "object", + "title": "EIP-2930 transaction.", + "required": ["type", "nonce", "gas", "value", "input", "gasPrice", "chainId", "accessList"], "properties": { "type": { + "title": "type", "type": "string", - "enum": ["CALL", "CREATE"], - "description": "The type of action (CALL for function calls or CREATE for contract creation)." + "pattern": "^0x1$" }, - "from": { - "$ref": "#/components/schemas/address", - "description": "The address of the sender." + "nonce": { + "title": "nonce", + "$ref": "#/components/schemas/uint" }, "to": { - "$ref": "#/components/schemas/address", - "description": "The address of the receiver. In the case of a contract creation, this might be null." - }, - "value": { - "$ref": "#/components/schemas/uint", - "description": "The value transferred with the call, in hexadecimal." + "title": "to address", + "oneOf": [ + { + "title": "Contract Creation (null)", + "type": "null" + }, + { + "title": "Address", + "$ref": "#/components/schemas/address" + } + ] }, "gas": { - "$ref": "#/components/schemas/uint", - "description": "The gas provided for the call, in hexadecimal." + "title": "gas limit", + "$ref": "#/components/schemas/uint" }, - "gasUsed": { - "$ref": "#/components/schemas/uint", - "description": "The gas used during the call, in hexadecimal." + "value": { + "title": "value", + "$ref": "#/components/schemas/uint" }, "input": { - "$ref": "#/components/schemas/bytes", - "description": "The input data sent with the call." + "title": "input data", + "$ref": "#/components/schemas/bytes" }, - "output": { - "$ref": "#/components/schemas/bytes", - "description": "The output data returned by the call." + "gasPrice": { + "title": "gas price", + "description": "The gas price willing to be paid by the sender in wei", + "$ref": "#/components/schemas/uint" }, - "error": { - "type": "string", - "description": "Error encountered during the call, if any." + "accessList": { + "title": "accessList", + "description": "EIP-2930 access list", + "$ref": "#/components/schemas/AccessList" }, - "revertReason": { - "type": "string", - "description": "Solidity revert reason, if applicable." + "chainId": { + "title": "chainId", + "description": "Chain ID that this transaction is valid on.", + "$ref": "#/components/schemas/uint" } - }, - "required": ["from", "gas", "input"] - }, - "notFound": { - "title": "Not Found (null)", - "type": "null" + } }, - "Block": { - "title": "Block object", + "Transaction4844Signed": { + "title": "Signed 4844 Transaction", "type": "object", - "required": [ - "parentHash", - "sha3Uncles", - "miner", - "stateRoot", - "transactionsRoot", - "receiptsRoot", - "logsBloom", - "number", - "gasLimit", - "gasUsed", - "timestamp", - "extraData", - "mixHash", - "nonce", - "size", - "transactions", - "uncles", - "withdrawals", - "withdrawalsRoot" - ], - "properties": { - "parentHash": { - "title": "Parent block hash", - "$ref": "#/components/schemas/hash32" - }, - "sha3Uncles": { - "title": "Ommers hash", - "$ref": "#/components/schemas/hash32" - }, - "miner": { - "title": "Coinbase", - "$ref": "#/components/schemas/address" - }, - "stateRoot": { - "title": "State root", - "$ref": "#/components/schemas/hash32" - }, - "transactionsRoot": { - "title": "Transactions root", - "$ref": "#/components/schemas/hash32" - }, - "receiptsRoot": { - "title": "Receipts root", - "$ref": "#/components/schemas/hash32" + "allOf": [ + { + "$ref": "#/components/schemas/Transaction4844Unsigned" }, - "logsBloom": { - "title": "Bloom filter", - "$ref": "#/components/schemas/bytes256" + { + "title": "EIP-4844 transaction signature properties.", + "required": ["yParity", "r", "s"], + "properties": { + "yParity": { + "title": "yParity", + "description": "The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.", + "$ref": "#/components/schemas/uint" + }, + "r": { + "title": "r", + "$ref": "#/components/schemas/uint" + }, + "s": { + "title": "s", + "$ref": "#/components/schemas/uint" + } + } + } + ] + }, + "Transaction2930Signed": { + "title": "Signed 2930 Transaction", + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Transaction2930Unsigned" }, - "difficulty": { - "title": "Difficulty", - "$ref": "#/components/schemas/bytes" + { + "title": "EIP-2930 transaction signature properties.", + "required": ["yParity", "r", "s"], + "properties": { + "yParity": { + "title": "yParity", + "description": "The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.", + "$ref": "#/components/schemas/uint" + }, + "v": { + "title": "v", + "description": "For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.", + "$ref": "#/components/schemas/uint" + }, + "r": { + "title": "r", + "$ref": "#/components/schemas/uint" + }, + "s": { + "title": "s", + "$ref": "#/components/schemas/uint" + } + } + } + ] + }, + "GenericTransaction": { + "type": "object", + "title": "Transaction object generic to all types", + "additionalProperties": false, + "properties": { + "type": { + "title": "type", + "$ref": "#/components/schemas/byte" }, - "number": { - "title": "Number", + "nonce": { + "title": "nonce", "$ref": "#/components/schemas/uint" }, - "gasLimit": { - "title": "Gas limit", - "$ref": "#/components/schemas/uint" + "to": { + "title": "to address", + "oneOf": [ + { + "title": "Contract Creation (null)", + "type": "null" + }, + { + "title": "Address", + "$ref": "#/components/schemas/address" + } + ] }, - "gasUsed": { - "title": "Gas used", + "from": { + "title": "from address", + "$ref": "#/components/schemas/address" + }, + "gas": { + "title": "gas limit", "$ref": "#/components/schemas/uint" }, - "timestamp": { - "title": "Timestamp", + "value": { + "title": "value", "$ref": "#/components/schemas/uint" }, - "extraData": { - "title": "Extra data", + "input": { + "title": "input data", "$ref": "#/components/schemas/bytes" }, - "mixHash": { - "title": "Mix hash", - "$ref": "#/components/schemas/hash32" - }, - "nonce": { - "title": "Nonce", - "$ref": "#/components/schemas/bytes8" - }, - "totalDifficulty": { - "title": "Total difficult", + "gasPrice": { + "title": "gas price", + "description": "The gas price willing to be paid by the sender in wei", "$ref": "#/components/schemas/uint" }, - "baseFeePerGas": { - "title": "Base fee per gas", + "maxPriorityFeePerGas": { + "title": "max priority fee per gas", + "description": "Maximum fee per gas the sender is willing to pay to miners in wei", "$ref": "#/components/schemas/uint" }, - "size": { - "title": "Block size", + "maxFeePerGas": { + "title": "max fee per gas", + "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", "$ref": "#/components/schemas/uint" }, - "transactions": { - "anyOf": [ - { - "title": "Transaction hashes", - "type": "array", - "items": { - "$ref": "#/components/schemas/hash32" - } - }, - { - "title": "Full transactions", - "type": "array", - "items": { - "$ref": "#/components/schemas/TransactionSigned" - } - } - ] + "maxFeePerBlobGas": { + "title": "max fee per blob gas", + "description": "The maximum total fee per gas the sender is willing to pay for blob gas in wei", + "$ref": "#/components/schemas/uint" }, - "uncles": { - "title": "Uncles", + "accessList": { + "title": "accessList", + "description": "EIP-2930 access list", + "$ref": "#/components/schemas/AccessList" + }, + "blobVersionedHashes": { + "title": "blobVersionedHashes", + "description": "List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.", "type": "array", "items": { "$ref": "#/components/schemas/hash32" } }, - "withdrawals": { - "title": "Withdrawals", + "blobs": { + "title": "blobs", + "description": "Raw blob data.", "type": "array", - "default": [] + "items": { + "$ref": "#/components/schemas/bytes" + } }, - "withdrawalsRoot": { - "title": "Withdrawals root", - "default": "0x0000000000000000000000000000000000000000000000000000000000000000" + "chainId": { + "title": "chainId", + "description": "Chain ID that this transaction is valid on.", + "$ref": "#/components/schemas/uint" } } }, - "BlockTag": { - "type": "string", - "enum": ["earliest", "latest", "pending", "finalized", "safe"], - "description": "`earliest`: The lowest numbered block the client has available; `latest` | `pending` | 'finalized' | 'safe' : The most recent block." - }, - "BlockNumberOrTag": { - "title": "Block number or tag", - "oneOf": [ - { - "title": "Block number", - "$ref": "#/components/schemas/uint" + "Withdrawal": { + "type": "object", + "title": "Validator withdrawal", + "required": ["index", "validatorIndex", "address", "amount"], + "additionalProperties": false, + "properties": { + "index": { + "title": "index of withdrawal", + "$ref": "#/components/schemas/uint64" }, - { - "title": "Block tag", - "$ref": "#/components/schemas/BlockTag" + "validatorIndex": { + "title": "index of validator that generated withdrawal", + "$ref": "#/components/schemas/uint64" + }, + "address": { + "title": "recipient address for withdrawal value", + "$ref": "#/components/schemas/address" + }, + "amount": { + "title": "value contained in withdrawal", + "$ref": "#/components/schemas/uint256" } - ] + } }, - "BlockNumberOrTagOrHash": { - "title": "Block number, tag, or block hash", - "oneOf": [ - { - "title": "Block number", - "$ref": "#/components/schemas/uint" + "ForkchoiceStateV1": { + "title": "Forkchoice state object V1", + "type": "object", + "required": ["headBlockHash", "safeBlockHash", "finalizedBlockHash"], + "properties": { + "headBlockHash": { + "title": "Head block hash", + "$ref": "#/components/schemas/hash32" }, - { - "title": "Block tag", - "$ref": "#/components/schemas/BlockTag" + "safeBlockHash": { + "title": "Safe block hash", + "$ref": "#/components/schemas/hash32" }, - { - "title": "Block hash", + "finalizedBlockHash": { + "title": "Finalized block hash", "$ref": "#/components/schemas/hash32" } - ] + } }, - "CallTracerConfig": { - "title": "CallTracer config", + "ForkchoiceUpdatedResponseV1": { + "title": "Forkchoice updated response", "type": "object", + "required": ["payloadStatus"], "properties": { - "onlyTopCall": { - "type": "boolean" + "payloadStatus": { + "title": "Payload status", + "$ref": "#/components/schemas/RestrictedPayloadStatusV1" + }, + "payloadId": { + "title": "Payload id", + "$ref": "#/components/schemas/bytes8" } } }, - "OpcodeLoggerConfig": { - "title": "OpcodeLogger config", + "PayloadAttributesV1": { + "title": "Payload attributes object V1", "type": "object", + "required": ["timestamp", "prevRandao", "suggestedFeeRecipient"], "properties": { - "enableMemory": { - "type": "boolean" - }, - "disableStack": { - "type": "boolean" + "timestamp": { + "title": "Timestamp", + "$ref": "#/components/schemas/uint64" }, - "disableStorage": { - "type": "boolean" + "prevRandao": { + "title": "Previous randao value", + "$ref": "#/components/schemas/bytes32" }, - "fullStorage": { - "type": "boolean", - "description": "Non-standard parameter sometimes sent by Remix - accepted for compatibility but ignored in implementation" + "suggestedFeeRecipient": { + "title": "Suggested fee recipient", + "$ref": "#/components/schemas/address" } } }, - "TracerConfig": { - "title": "Tracer config", + "PayloadAttributesV2": { + "title": "Payload attributes object V2", "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/CallTracerConfig" + "required": ["timestamp", "prevRandao", "suggestedFeeRecipient", "withdrawals"], + "properties": { + "timestamp": { + "$ref": "#/components/schemas/PayloadAttributesV1/properties/timestamp" }, - { - "$ref": "#/components/schemas/OpcodeLoggerConfig" + "prevRandao": { + "$ref": "#/components/schemas/PayloadAttributesV1/properties/prevRandao" + }, + "suggestedFeeRecipient": { + "$ref": "#/components/schemas/PayloadAttributesV1/properties/suggestedFeeRecipient" + }, + "withdrawals": { + "title": "Withdrawals", + "type": "array", + "items": { + "$ref": "#/components/schemas/WithdrawalV1" + } } - ] - }, - "TracerType": { - "title": "Tracer type", - "type": "string", - "enum": ["callTracer", "opcodeLogger", "prestateTracer"] + } }, - "TracerConfigWrapper": { - "title": "Tracer config wrapper", + "PayloadAttributesV3": { + "title": "Payload attributes object V3", "type": "object", + "required": ["timestamp", "prevRandao", "suggestedFeeRecipient", "withdrawals", "parentBeaconBlockRoot"], "properties": { - "tracer": { - "$ref": "#/components/schemas/TracerType" + "timestamp": { + "$ref": "#/components/schemas/PayloadAttributesV2/properties/timestamp" }, - "tracerConfig": { - "$ref": "#/components/schemas/TracerConfig" + "prevRandao": { + "$ref": "#/components/schemas/PayloadAttributesV2/properties/prevRandao" }, - "enableMemory": { - "type": "boolean", - "description": "Top-level opcodeLogger config property. Only valid when no explicit 'tracer' is specified (defaults to opcodeLogger)." + "suggestedFeeRecipient": { + "$ref": "#/components/schemas/PayloadAttributesV2/properties/suggestedFeeRecipient" }, - "disableStack": { - "type": "boolean", - "description": "Top-level opcodeLogger config property. Only valid when no explicit 'tracer' is specified (defaults to opcodeLogger)." + "withdrawals": { + "$ref": "#/components/schemas/PayloadAttributesV2/properties/withdrawals" }, - "disableStorage": { - "type": "boolean", - "description": "Top-level opcodeLogger config property. Only valid when no explicit 'tracer' is specified (defaults to opcodeLogger)." + "parentBeaconBlockRoot": { + "title": "Parent beacon block root", + "$ref": "#/components/schemas/hash32" + } + } + }, + "PayloadStatusV1": { + "title": "Payload status object V1", + "type": "object", + "required": ["status"], + "properties": { + "status": { + "title": "Payload validation status", + "type": "string", + "enum": ["VALID", "INVALID", "SYNCING", "ACCEPTED", "INVALID_BLOCK_HASH"] }, - "fullStorage": { - "type": "boolean", - "description": "Top-level opcodeLogger config property. Non-standard parameter for Remix compatibility - accepted but ignored. Only valid when no explicit 'tracer' is specified." + "latestValidHash": { + "title": "The hash of the most recent valid block", + "$ref": "#/components/schemas/hash32" + }, + "validationError": { + "title": "Validation error message", + "type": "string" } } }, - "BlockTracerType": { - "title": "Block tracer type", - "type": "string", - "enum": ["callTracer", "prestateTracer"] + "RestrictedPayloadStatusV1": { + "$ref": "#/components/schemas/PayloadStatusV1", + "properties": { + "status": { + "$ref": "#/components/schemas/PayloadStatusV1/properties/status", + "description": "Set of possible values is restricted to VALID, INVALID, SYNCING", + "enum": ["VALID", "INVALID", "SYNCING"] + }, + "latestValidHash": { + "$ref": "#/components/schemas/PayloadStatusV1/properties/latestValidHash" + }, + "validationError": { + "$ref": "#/components/schemas/PayloadStatusV1/properties/validationError" + } + } }, - "TransactionWithSender": { - "title": "Transaction object with sender", - "type": "object", - "allOf": [ - { - "required": ["from"], - "properties": { - "from": { - "title": "from", - "$ref": "#/components/schemas/address" - } - } + "PayloadStatusNoInvalidBlockHash": { + "$ref": "#/components/schemas/PayloadStatusV1", + "title": "Payload status object deprecating INVALID_BLOCK_HASH status", + "properties": { + "status": { + "$ref": "#/components/schemas/PayloadStatusV1/properties/status", + "enum": ["VALID", "INVALID", "SYNCING", "ACCEPTED"] }, - { - "$ref": "#/components/schemas/TransactionUnsigned" + "latestValidHash": { + "$ref": "#/components/schemas/PayloadStatusV1/properties/latestValidHash" + }, + "validationError": { + "$ref": "#/components/schemas/PayloadStatusV1/properties/validationError" } - ] + } }, - "Transaction1559Unsigned": { + "ExecutionPayloadV1": { + "title": "Execution payload object V1", "type": "object", - "title": "EIP-1559 transaction.", "required": [ - "type", - "nonce", - "gas", - "value", - "input", - "maxFeePerGas", - "maxPriorityFeePerGas", - "chainId", - "accessList" + "parentHash", + "feeRecipient", + "stateRoot", + "receiptsRoot", + "logsBloom", + "prevRandao", + "blockNumber", + "gasLimit", + "gasUsed", + "timestamp", + "extraData", + "baseFeePerGas", + "blockHash", + "transactions" ], "properties": { - "type": { - "title": "type", - "$ref": "#/components/schemas/byte" - }, - "nonce": { - "title": "nonce", - "$ref": "#/components/schemas/uint" + "parentHash": { + "title": "Parent block hash", + "$ref": "#/components/schemas/hash32" }, - "to": { - "title": "to address", + "feeRecipient": { + "title": "Recipient of transaction priority fees", "$ref": "#/components/schemas/address" }, - "gas": { - "title": "gas limit", - "$ref": "#/components/schemas/uint" + "stateRoot": { + "title": "State root", + "$ref": "#/components/schemas/hash32" }, - "value": { - "title": "value", - "$ref": "#/components/schemas/uint" + "receiptsRoot": { + "title": "Receipts root", + "$ref": "#/components/schemas/hash32" }, - "input": { - "title": "input data", - "$ref": "#/components/schemas/bytes" + "logsBloom": { + "title": "Bloom filter", + "$ref": "#/components/schemas/bytes256" }, - "maxPriorityFeePerGas": { - "title": "max priority fee per gas", - "description": "Maximum fee per gas the sender is willing to pay to miners in wei", - "$ref": "#/components/schemas/uint" + "prevRandao": { + "title": "Previous randao value", + "$ref": "#/components/schemas/bytes32" }, - "maxFeePerGas": { - "title": "max fee per gas", - "description": "The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei", - "$ref": "#/components/schemas/uint" + "blockNumber": { + "title": "Block number", + "$ref": "#/components/schemas/uint64" }, - "accessList": { - "title": "accessList", - "type": "array" + "gasLimit": { + "title": "Gas limit", + "$ref": "#/components/schemas/uint64" + }, + "gasUsed": { + "title": "Gas used", + "$ref": "#/components/schemas/uint64" + }, + "timestamp": { + "title": "Timestamp", + "$ref": "#/components/schemas/uint64" + }, + "extraData": { + "title": "Extra data", + "$ref": "#/components/schemas/bytesMax32" + }, + "baseFeePerGas": { + "title": "Base fee per gas", + "$ref": "#/components/schemas/uint256" + }, + "blockHash": { + "title": "Block hash", + "$ref": "#/components/schemas/hash32" + }, + "transactions": { + "title": "Transactions", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes" + } + } + } + }, + "WithdrawalV1": { + "title": "Withdrawal object V1", + "type": "object", + "required": ["index", "validatorIndex", "address", "amount"], + "properties": { + "index": { + "title": "Withdrawal index", + "$ref": "#/components/schemas/uint64" + }, + "validatorIndex": { + "title": "Validator index", + "$ref": "#/components/schemas/uint64" + }, + "address": { + "title": "Withdrawal address", + "$ref": "#/components/schemas/address" }, - "chainId": { - "title": "chainId", - "description": "Chain ID that this transaction is valid on.", - "$ref": "#/components/schemas/uint" + "amount": { + "title": "Withdrawal amount", + "$ref": "#/components/schemas/uint64" } } }, - "TransactionLegacyUnsigned": { + "ExecutionPayloadV2": { + "title": "Execution payload object V2", "type": "object", - "title": "Legacy transaction.", - "required": ["type", "nonce", "gas", "value", "input", "gasPrice"], + "required": [ + "parentHash", + "feeRecipient", + "stateRoot", + "receiptsRoot", + "logsBloom", + "prevRandao", + "blockNumber", + "gasLimit", + "gasUsed", + "timestamp", + "extraData", + "baseFeePerGas", + "blockHash", + "transactions", + "withdrawals" + ], "properties": { - "type": { - "title": "type", - "$ref": "#/components/schemas/byte" + "parentHash": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/parentHash" }, - "nonce": { - "title": "nonce", - "$ref": "#/components/schemas/uint" + "feeRecipient": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/feeRecipient" }, - "to": { - "title": "to address", - "$ref": "#/components/schemas/address" + "stateRoot": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/stateRoot" }, - "gas": { - "title": "gas limit", - "$ref": "#/components/schemas/uint" + "receiptsRoot": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/receiptsRoot" }, - "value": { - "title": "value", - "$ref": "#/components/schemas/uint" + "logsBloom": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/logsBloom" }, - "input": { - "title": "input data", - "$ref": "#/components/schemas/bytes" + "prevRandao": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/prevRandao" }, - "gasPrice": { - "title": "gas price", - "description": "The gas price willing to be paid by the sender in wei", - "$ref": "#/components/schemas/uint" + "blockNumber": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/blockNumber" }, - "chainId": { - "title": "chainId", - "description": "Chain ID that this transaction is valid on.", - "$ref": "#/components/schemas/uint" - } - } - }, - "Transaction1559Signed": { - "title": "Signed 1559 Transaction", - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/Transaction1559Unsigned" + "gasLimit": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/gasLimit" }, - { - "title": "EIP-1559 transaction signature properties.", - "required": ["yParity", "r", "s", "v"], - "properties": { - "yParity": { - "title": "yParity", - "description": "The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.", - "oneOf": [ - { - "$ref": "#/components/schemas/byte" - }, - { - "$ref": "#/components/schemas/null" - } - ] - }, - "r": { - "title": "r", - "$ref": "#/components/schemas/uint" - }, - "s": { - "title": "s", - "$ref": "#/components/schemas/uint" - }, - "v": { - "title": "v", - "description": "For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.", - "oneOf": [ - { - "$ref": "#/components/schemas/byte" - }, - { - "$ref": "#/components/schemas/null" - } - ] - } - } - } - ] - }, - "TransactionUnsigned": { - "oneOf": [ - { - "$ref": "#/components/schemas/Transaction1559Unsigned" + "gasUsed": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/gasUsed" }, - { - "$ref": "#/components/schemas/TransactionLegacyUnsigned" - } - ] - }, - "TransactionLegacySigned": { - "title": "Signed Legacy Transaction", - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/TransactionLegacyUnsigned" + "timestamp": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/timestamp" }, - { - "title": "Legacy transaction signature properties.", - "required": ["v", "r", "s"], - "properties": { - "v": { - "title": "v", - "oneOf": [ - { - "$ref": "#/components/schemas/uint" - }, - { - "$ref": "#/components/schemas/null" - } - ] - }, - "r": { - "title": "r", - "$ref": "#/components/schemas/uint" - }, - "s": { - "title": "s", - "$ref": "#/components/schemas/uint" - } - } - } - ] - }, - "TransactionSigned": { - "anyOf": [ - { - "$ref": "#/components/schemas/Transaction1559Signed" + "extraData": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/extraData" }, - { - "$ref": "#/components/schemas/TransactionLegacySigned" - } - ] - }, - "TransactionInfo": { - "type": "object", - "title": "Transaction information", - "allOf": [ - { - "title": "Contextual information", - "required": ["blockHash", "blockNumber", "from", "hash", "transactionIndex"], - "properties": { - "blockHash": { - "title": "block hash", - "$ref": "#/components/schemas/hash32" - }, - "blockNumber": { - "title": "block number", - "$ref": "#/components/schemas/uint" - }, - "from": { - "title": "from address", - "$ref": "#/components/schemas/address" - }, - "hash": { - "title": "transaction hash", - "$ref": "#/components/schemas/hash32" - }, - "transactionIndex": { - "title": "transaction index", - "$ref": "#/components/schemas/uint" - } - } + "baseFeePerGas": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/baseFeePerGas" }, - { - "$ref": "#/components/schemas/TransactionSigned" + "blockHash": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/blockHash" + }, + "transactions": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/transactions" + }, + "withdrawals": { + "title": "Withdrawals", + "type": "array", + "items": { + "$ref": "#/components/schemas/WithdrawalV1" + } } - ] + } }, - "Log": { - "title": "log", + "ExecutionPayloadV3": { + "title": "Execution payload object V3", "type": "object", - "required": ["transactionHash"], + "required": [ + "parentHash", + "feeRecipient", + "stateRoot", + "receiptsRoot", + "logsBloom", + "prevRandao", + "blockNumber", + "gasLimit", + "gasUsed", + "timestamp", + "extraData", + "baseFeePerGas", + "blockHash", + "transactions", + "withdrawals", + "blobGasUsed", + "excessBlobGas" + ], "properties": { - "removed": { - "title": "removed", - "type": "boolean" + "parentHash": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/parentHash" }, - "logIndex": { - "title": "log index", - "$ref": "#/components/schemas/uint" + "feeRecipient": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/feeRecipient" }, - "transactionIndex": { - "title": "transaction index", - "$ref": "#/components/schemas/uint" + "stateRoot": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/stateRoot" }, - "transactionHash": { - "title": "transaction hash", - "$ref": "#/components/schemas/hash32" + "receiptsRoot": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/receiptsRoot" }, - "blockHash": { - "title": "block hash", - "$ref": "#/components/schemas/hash32" + "logsBloom": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/logsBloom" + }, + "prevRandao": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/prevRandao" }, "blockNumber": { - "title": "block number", - "$ref": "#/components/schemas/uint" + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/blockNumber" }, - "address": { - "title": "address", - "$ref": "#/components/schemas/address" + "gasLimit": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/gasLimit" }, - "data": { - "title": "data", - "$ref": "#/components/schemas/bytes" + "gasUsed": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/gasUsed" }, - "topics": { - "title": "topics", - "type": "array", - "items": { - "$ref": "#/components/schemas/bytes32" - } + "timestamp": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/timestamp" + }, + "extraData": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/extraData" + }, + "baseFeePerGas": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/baseFeePerGas" + }, + "blockHash": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/blockHash" + }, + "transactions": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/transactions" + }, + "withdrawals": { + "$ref": "#/components/schemas/ExecutionPayloadV2/properties/withdrawals" + }, + "blobGasUsed": { + "title": "Blob gas used", + "$ref": "#/components/schemas/uint64" + }, + "excessBlobGas": { + "title": "Excess blob gas", + "$ref": "#/components/schemas/uint64" } } }, - "ReceiptInfo": { + "ExecutionPayloadV4": { + "title": "Execution payload object V4", "type": "object", - "title": "Receipt information", "required": [ - "blockHash", + "parentHash", + "feeRecipient", + "stateRoot", + "receiptsRoot", + "logsBloom", + "prevRandao", "blockNumber", - "from", - "cumulativeGasUsed", + "gasLimit", "gasUsed", - "logs", - "logsBloom", - "transactionHash", - "transactionIndex", - "effectiveGasPrice" + "timestamp", + "extraData", + "baseFeePerGas", + "blockHash", + "transactions", + "withdrawals", + "blobGasUsed", + "excessBlobGas", + "depositRequests", + "withdrawalRequests" ], - "additionalProperties": false, "properties": { - "type": { - "title": "type", - "$ref": "#/components/schemas/byte" + "parentHash": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/parentHash" }, - "transactionHash": { - "title": "transaction hash", - "$ref": "#/components/schemas/hash32" + "feeRecipient": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/feeRecipient" }, - "transactionIndex": { - "title": "transaction index", - "$ref": "#/components/schemas/uint" + "stateRoot": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/stateRoot" }, - "blockHash": { - "title": "block hash", - "$ref": "#/components/schemas/hash32" + "receiptsRoot": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/receiptsRoot" }, - "blockNumber": { - "title": "block number", - "$ref": "#/components/schemas/uint" + "logsBloom": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/logsBloom" }, - "from": { - "title": "from", - "$ref": "#/components/schemas/address" + "prevRandao": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/prevRandao" }, - "to": { - "title": "to", - "description": "Address of the receiver or null in a contract creation transaction.", - "oneOf": [ - { - "title": "Contract Creation (null)", - "type": "null" - }, - { - "title": "Recipient Address", - "$ref": "#/components/schemas/address" - } - ] + "blockNumber": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/blockNumber" }, - "cumulativeGasUsed": { - "title": "cumulative gas used", - "description": "The sum of gas used by this transaction and all preceding transactions in the same block.", - "$ref": "#/components/schemas/uint" + "gasLimit": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/gasLimit" }, "gasUsed": { - "title": "gas used", - "description": "The amount of gas used for this specific transaction alone.", - "$ref": "#/components/schemas/uint" + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/gasUsed" }, - "contractAddress": { - "title": "contract address", - "description": "The contract address created, if the transaction was a contract creation, otherwise null.", - "oneOf": [ - { - "$ref": "#/components/schemas/address" - }, - { - "title": "Null", - "type": "null" - } - ] + "timestamp": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/timestamp" }, - "logs": { - "title": "logs", - "type": "array", - "items": { - "$ref": "#/components/schemas/Log" - } + "extraData": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/extraData" }, - "logsBloom": { - "title": "logs bloom", - "$ref": "#/components/schemas/bytes256" + "baseFeePerGas": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/baseFeePerGas" }, - "root": { - "title": "state root", - "description": "The post-transaction state root. Only specified for transactions included before the Byzantium upgrade.", - "$ref": "#/components/schemas/hash32" + "blockHash": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/blockHash" }, - "status": { - "title": "status", - "description": "Either 1 (success) or 0 (failure). Only specified for transactions included after the Byzantium upgrade.", - "$ref": "#/components/schemas/uint" + "transactions": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/transactions" }, - "effectiveGasPrice": { - "title": "effective gas price", - "description": "The actual value per gas deducted from the sender's account. Before EIP-1559, this is equal to the transaction's gas price. After, it is equal to baseFeePerGas + min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas).", - "$ref": "#/components/schemas/uint" - } - } - }, - "FilterResults": { - "title": "Filter results", - "oneOf": [ - { - "title": "new block hashes", - "type": "array", - "items": { - "$ref": "#/components/schemas/hash32" - } + "withdrawals": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/withdrawals" }, - { - "title": "new transaction hashes", + "blobGasUsed": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/blobGasUsed" + }, + "excessBlobGas": { + "$ref": "#/components/schemas/ExecutionPayloadV3/properties/excessBlobGas" + }, + "depositRequests": { + "title": "Deposit requests", "type": "array", "items": { - "$ref": "#/components/schemas/hash32" + "$ref": "#/components/schemas/DepositRequestV1" } }, - { - "title": "new logs", + "withdrawalRequests": { + "title": "Withdrawals requests", "type": "array", "items": { - "$ref": "#/components/schemas/Log" + "$ref": "#/components/schemas/WithdrawalRequestV1" } } - ] + } }, - "Filter": { - "title": "filter", + "ExecutionPayloadBodyV1": { + "title": "Execution payload body object V1", "type": "object", + "required": ["transactions"], "properties": { - "fromBlock": { - "title": "from block", - "$ref": "#/components/schemas/uint" - }, - "toBlock": { - "title": "to block", - "$ref": "#/components/schemas/uint" - }, - "blockHash": { - "title": "Block hash", - "$ref": "#/components/schemas/hash32" - }, - "address": { - "title": "Address(es)", - "oneOf": [ - { - "title": "Address", - "$ref": "#/components/schemas/address" - }, - { - "title": "Addresses", - "$ref": "#/components/schemas/addresses" - } - ] + "transactions": { + "$ref": "#/components/schemas/ExecutionPayloadV1/properties/transactions" }, - "topics": { - "title": "Topics", - "$ref": "#/components/schemas/FilterTopics" + "withdrawals": { + "title": "Withdrawals", + "type": ["array", "null"], + "items": { + "$ref": "#/components/schemas/WithdrawalV1" + } } } }, - "FilterTopics": { - "title": "Filter Topics", - "type": "array", - "items": { - "$ref": "#/components/schemas/FilterTopic" - } - }, - "FilterTopic": { - "title": "Filter Topic List Entry", - "oneOf": [ - { - "title": "Any Topic Match", - "type": "null" + "BlobsBundleV1": { + "title": "Blobs bundle object V1", + "type": "object", + "required": ["commitments", "proofs", "blobs"], + "properties": { + "commitments": { + "title": "Commitments", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes48" + } }, - { - "title": "Single Topic Match", - "$ref": "#/components/schemas/bytes32" + "proofs": { + "title": "Proofs", + "type": "array", + "items": { + "$ref": "#/components/schemas/bytes48" + } }, - { - "title": "Multiple Topic Match", + "blobs": { + "title": "Blobs", "type": "array", "items": { - "$ref": "#/components/schemas/bytes32" + "$ref": "#/components/schemas/bytes" } } - ] + } }, - "LogFilter": { - "title": "log filter", + "DepositRequestV1": { + "title": "Deposit request object V1", "type": "object", + "required": ["pubkey", "withdrawalCredentials", "amount", "signature", "index"], "properties": { - "fromBlock": { - "title": "from block", - "$ref": "#/components/schemas/uint" + "pubkey": { + "title": "Public key", + "$ref": "#/components/schemas/bytes48" }, - "toBlock": { - "title": "to block", - "$ref": "#/components/schemas/uint" + "withdrawalCredentials": { + "title": "Withdrawal credentials", + "$ref": "#/components/schemas/bytes32" }, - "address": { - "title": "Address", - "$ref": "#/components/schemas/address" + "amount": { + "title": "Deposit amount", + "$ref": "#/components/schemas/uint64" }, - "topics": { - "title": "Topics", - "$ref": "#/components/schemas/FilterTopics" + "signature": { + "title": "Deposit signature", + "$ref": "#/components/schemas/bytes96" + }, + "index": { + "title": "Deposit index", + "$ref": "#/components/schemas/uint64" } } }, - "callframe": { + "WithdrawalRequestV1": { + "title": "Withdrawal request object V1", "type": "object", + "required": ["sourceAddress", "validatorPublicKey", "amount"], "properties": { - "type": { - "type": "string", - "enum": ["CALL", "CREATE"], - "description": "The type of action (CALL for function calls or CREATE for contract creation)." - }, - "from": { - "$ref": "#/components/schemas/address", - "description": "The address of the sender." - }, - "to": { - "$ref": "#/components/schemas/address", - "description": "The address of the receiver. In the case of a contract creation, this might be null." - }, - "value": { - "$ref": "#/components/schemas/uint", - "description": "The value transferred with the call, in hexadecimal." - }, - "gas": { - "$ref": "#/components/schemas/uint", - "description": "The gas provided for the call, in hexadecimal." - }, - "gasUsed": { - "$ref": "#/components/schemas/uint", - "description": "The gas used during the call, in hexadecimal." - }, - "input": { - "$ref": "#/components/schemas/bytes", - "description": "The input data sent with the call." + "sourceAddress": { + "title": "Source address", + "$ref": "#/components/schemas/address" }, - "output": { - "$ref": "#/components/schemas/bytes", - "description": "The output data returned by the call." + "validatorPublicKey": { + "title": "Validator public key", + "$ref": "#/components/schemas/bytes48" }, - "error": { - "type": "string", - "description": "Error encountered during the call, if any." + "amount": { + "title": "Withdraw amount", + "$ref": "#/components/schemas/uint64" + } + } + }, + "TransitionConfigurationV1": { + "title": "Transition configuration object", + "type": "object", + "required": ["terminalTotalDifficulty", "terminalBlockHash", "terminalBlockNumber"], + "properties": { + "terminalTotalDifficulty": { + "title": "Terminal total difficulty", + "$ref": "#/components/schemas/uint256" }, - "revertReason": { - "type": "string", - "description": "Solidity revert reason, if applicable." + "terminalBlockHash": { + "title": "Terminal block hash", + "$ref": "#/components/schemas/hash32" }, - "calls": { - "type": "array", - "items": { - "$ref": "#/components/schemas/subcall" - }, - "description": "Sub-calls made during this call frame." + "terminalBlockNumber": { + "title": "Terminal block number", + "$ref": "#/components/schemas/uint64" } - }, - "required": ["from", "gas", "input"] + } } } } -} +} \ No newline at end of file