diff --git a/docs/developers/reference/api/linea-gettransactionexclusionstatusv1.mdx b/docs/developers/reference/api/linea-gettransactionexclusionstatusv1.mdx new file mode 100644 index 000000000..5441350c5 --- /dev/null +++ b/docs/developers/reference/api/linea-gettransactionexclusionstatusv1.mdx @@ -0,0 +1,108 @@ +--- +title: linea_getTransactionExclusionStatusV1 +description: Reference content for the linea_getTransactionExclusionStatusV1 method. +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# `linea_getTransactionExclusionStatusV1` + +:::info Only available on request + +This API method is only available via Infura endpoints on request. If you would like to have it +made available, please get in touch with technical support via the "Contact" button on our +[support page](https://support.linea.build/). + +::: + +Queries a temporary database maintained by the transaction exclusion API service to check if a +transaction was rejected for exceeding data line limits that would prevent the prover from +generating a proof for the block. The database is updated by a parallel write API endpoint called +by the sequencer, edge nodes, or RPC nodes. + +If the transaction was rejected, the API call will be successful and provide the reason. + +Transactions that were not rejected for this reason will return `null` as the `result`. + +:::warning +Transaction rejection can only be checked within seven days of the transaction attempt. +::: + +## Parameters + +`txHash`: [Required] The hash of the subject transaction. + +## Returns + +- `txHash`: The hash of the subject transaction. +- `from`: The public address of the account that sent the transaction. +- `nonce`: The transaction nonce, hexadecimal. +- `txRejectionStage`: A string detailing the point at which the transaction was rejected. One of: + - `SEQUENCER`: Rejected by the sequencer. + - `RPC`: Rejected by an RPC node (e.g. `https://rpc.linea.build`). + - `P2P`: Rejected by a P2P-connected node (e.g. an edge node). +- `reasonMessage`: Explains why the transaction was rejected. +- `blockNumber`: The block that the transaction was rejected from, in hexadecimal format. Only +returned for transactions rejected by the sequencer. +- `timestamp`: Time of rejection, in ISO 8601 format. + +## Example + +### Request + + + + ```bash + curl https://rpc.linea.build \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{ + "jsonrpc": "2.0", + "id": "1", + "method": "linea_getTransactionExclusionStatusV1", + "params": ["0x526e56101cf39c1e717cef9cedf6fdddb42684711abda35bae51136dbb350ad7"] + }' + ``` + + + +### Response + + + + ```json + { + "jsonrpc": "2.0", + "id": "1", + "result": { + "txHash": "0x526e56101cf39c1e717cef9cedf6fdddb42684711abda35bae51136dbb350ad7", + "from": "0x4d144d7b9c96b26361d6ac74dd1d8267edca4fc2", + "nonce": "0x64", + "txRejectionStage": "SEQUENCER", + "reasonMessage": "Transaction line count for module ADD=402 is above the limit 70", + "blockNumber": "0x3039", + "timestamp": "2024-08-22T09:18:51Z" + } + } + ``` + + + +:::note + +This example is purely representative; the database only retains transaction data for 24 hours, so +you will be unable to reproduce this response with the transaction in the above example. + +::: + +If the transaction was not rejected for exceeding line limits, the transaction will not be found +in the database, and a `null` result is returned. For example: + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": null +} +``` diff --git a/sidebars.js b/sidebars.js index d0bb05bff..f1c76d230 100644 --- a/sidebars.js +++ b/sidebars.js @@ -435,6 +435,7 @@ const sidebars = { items: [ "developers/reference/api/eth-sendrawtransaction", "developers/reference/api/linea-estimategas", + "developers/reference/api/linea-gettransactionexclusionstatusv1", "developers/reference/api/linea-getproof", ], },