> For the complete documentation index, see [llms.txt](https://developers.polymath.network/polymesh-sdk-api-reference/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v9/classes/middleware.md).

# Middleware

Handles all Middleware related functionality

## Hierarchy

* **Middleware**

## Index

### Methods

* [getEventByIndexedArgs](/polymesh-sdk-api-reference/docs-v9/classes/middleware.md#geteventbyindexedargs)
* [getEventsByIndexedArgs](/polymesh-sdk-api-reference/docs-v9/classes/middleware.md#geteventsbyindexedargs)
* [getTransactionByHash](/polymesh-sdk-api-reference/docs-v9/classes/middleware.md#gettransactionbyhash)

## Methods

### getEventByIndexedArgs

▸ **getEventByIndexedArgs**(`opts`: object): *Promise‹*[*EventIdentifier*](/polymesh-sdk-api-reference/docs-v9/interfaces/eventidentifier.md) *| null›*

*Defined in* [*src/Middleware.ts:34*](https://github.com/PolymathNetwork/polymesh-sdk/blob/56921667/src/Middleware.ts#L34)

Retrieve a single event by any of its indexed arguments. Can be filtered using parameters

**`note`** uses the middleware

**Parameters:**

▪ **opts**: *object*

| Name         | Type                | Description                                      |
| ------------ | ------------------- | ------------------------------------------------ |
| `eventArg0?` | undefined \| string | event parameter value to filter by in position 0 |
| `eventArg1?` | undefined \| string | event parameter value to filter by in position 1 |
| `eventArg2?` | undefined \| string | event parameter value to filter by in position 2 |
| `eventId`    | EventId             | type of the event to fetch                       |
| `moduleId`   | ModuleId            | type of the module to fetch                      |

**Returns:** *Promise‹*[*EventIdentifier*](/polymesh-sdk-api-reference/docs-v9/interfaces/eventidentifier.md) *| null›*

### getEventsByIndexedArgs

▸ **getEventsByIndexedArgs**(`opts`: object): *Promise‹*[*EventIdentifier*](/polymesh-sdk-api-reference/docs-v9/interfaces/eventidentifier.md)*\[] | null›*

*Defined in* [*src/Middleware.ts:73*](https://github.com/PolymathNetwork/polymesh-sdk/blob/56921667/src/Middleware.ts#L73)

Retrieve a list of events. Can be filtered using parameters

**`note`** uses the middleware

**Parameters:**

▪ **opts**: *object*

| Name         | Type                | Description                                      |
| ------------ | ------------------- | ------------------------------------------------ |
| `eventArg0?` | undefined \| string | event parameter value to filter by in position 0 |
| `eventArg1?` | undefined \| string | event parameter value to filter by in position 1 |
| `eventArg2?` | undefined \| string | event parameter value to filter by in position 2 |
| `eventId`    | EventId             | type of the event to fetch                       |
| `moduleId`   | ModuleId            | type of the module to fetch                      |
| `size?`      | undefined \| number | page size                                        |
| `start?`     | undefined \| number | page offset                                      |

**Returns:** *Promise‹*[*EventIdentifier*](/polymesh-sdk-api-reference/docs-v9/interfaces/eventidentifier.md)*\[] | null›*

### getTransactionByHash

▸ **getTransactionByHash**(`opts`: object): *Promise‹*[*ExtrinsicData*](/polymesh-sdk-api-reference/docs-v9/interfaces/extrinsicdata.md) *| null›*

*Defined in* [*src/Middleware.ts:117*](https://github.com/PolymathNetwork/polymesh-sdk/blob/56921667/src/Middleware.ts#L117)

Retrieve a transaction by hash

**`note`** uses the middleware

**Parameters:**

▪ **opts**: *object*

| Name     | Type   | Description             |
| -------- | ------ | ----------------------- |
| `txHash` | string | hash of the transaction |

**Returns:** *Promise‹*[*ExtrinsicData*](/polymesh-sdk-api-reference/docs-v9/interfaces/extrinsicdata.md) *| null›*
