# TransactionReceipt

Utilities & types for working with **Transaction Receipts** as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/receipt.yaml)

## Examples

### Converting from RPC Format

Receipts can be converted from RPC format using [`TransactionReceipt.fromRpc`](/api/TransactionReceipt/fromRpc):

```ts twoslash
import 'ox/window'
import { TransactionReceipt } from 'ox'

const receipt = await window
  .ethereum!.request({
    method: 'eth_getTransactionReceipt',
    params: [
      '0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0'
    ]
  })
  .then(TransactionReceipt.fromRpc) // [!code hl]
// @log: {
// @log:   blobGasPrice: 270441n,
// @log:   blobGasUsed: 4919n,
// @log:   blockHash: "0xc350d807505fb835650f0013632c5515592987ba169bbc6626d9fc54d91f0f0b",
// @log:   blockNumber: 19868015n,
// @log:   contractAddress: null,
// @log:   cumulativeGasUsed: 533781n,
// @log:   effectiveGasPrice: 9062804489n,
// @log:   from: "0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6",
// @log:   gasUsed: 175034n,
// @log:   logs: [],
// @log:   logsBloom: "0x00200000000000000000008080000000000000000040000000000000000000000000000000000000000000000000000022000000080000000000000000000000000000080000000000000008000000200000000000000000000200008020400000000000000000280000000000100000000000000000000000000010000000000000000000020000000000000020000000000001000000080000004000000000000000000000000000000000000000000000400000000000001000000000000000000002000000000000000020000000000000000000001000000000000000000000200000000000000000000000000000001000000000c00000000000000000",
// @log:   root: undefined,
// @log:   status: "success",
// @log:   to: "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad",
// @log:   transactionHash: "0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0",
// @log:   transactionIndex: 2,
// @log:   type: "eip1559",
// @log: }
```

## Functions

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`TransactionReceipt.fromRpc`](/api/TransactionReceipt/fromRpc) | Converts a [`TransactionReceipt.Rpc`](/api/TransactionReceipt/types#rpc) to an [`TransactionReceipt.TransactionReceipt`](/api/TransactionReceipt/types#transactionreceipt). |
| [`TransactionReceipt.toRpc`](/api/TransactionReceipt/toRpc) | Converts a [`TransactionReceipt.TransactionReceipt`](/api/TransactionReceipt/types#transactionreceipt) to a [`TransactionReceipt.Rpc`](/api/TransactionReceipt/types#rpc). |

## Types

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`TransactionReceipt.Rpc`](/api/TransactionReceipt/types#transactionreceiptrpc) | An RPC Transaction Receipt as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/receipt.yaml). |
| [`TransactionReceipt.RpcStatus`](/api/TransactionReceipt/types#transactionreceiptrpcstatus) | Union of RPC Transaction Receipt statuses. |
| [`TransactionReceipt.RpcType`](/api/TransactionReceipt/types#transactionreceiptrpctype) | Union of RPC Transaction Receipt types. |
| [`TransactionReceipt.Status`](/api/TransactionReceipt/types#transactionreceiptstatus) | Union of Transaction Receipt statuses. |
| [`TransactionReceipt.TransactionReceipt`](/api/TransactionReceipt/types#transactionreceipttransactionreceipt) | An Transaction Receipt as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/receipt.yaml). |
| [`TransactionReceipt.Type`](/api/TransactionReceipt/types#transactionreceipttype) | Union of Transaction Receipt types. |
