> 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-v2/classes/middleware.md).

# Middleware

Handles all Middleware related functionality

## Hierarchy

* **Middleware**

## Index

### Methods

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

## Methods

### getEventByIndexedArgs

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

*Defined in* [*src/Middleware.ts:31*](https://github.com/PolymathNetwork/polymesh-sdk/blob/5b409784/src/Middleware.ts#L31)

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

**Parameters:**

▪ **opts**: *object*

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

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

### getEventsByIndexedArgs

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

*Defined in* [*src/Middleware.ts:76*](https://github.com/PolymathNetwork/polymesh-sdk/blob/5b409784/src/Middleware.ts#L76)

Retrieve a list of events. Can be filtered using parameters

**Parameters:**

▪ **opts**: *object*

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

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

### getTransactionByHash

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

*Defined in* [*src/Middleware.ts:123*](https://github.com/PolymathNetwork/polymesh-sdk/blob/5b409784/src/Middleware.ts#L123)

Retrieve a transaction by hash

**Parameters:**

▪ **opts**: *object*

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

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