# StarknetChainEvents

Defined in: [atomiq-chain-starknet/src/starknet/events/StarknetChainEvents.ts:10](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/events/StarknetChainEvents.ts#L10)

Starknet on-chain event handler for front-end systems without access to fs, uses WS or long-polling to subscribe, might lose out on some events if the network is unreliable, front-end systems should take this into consideration and not rely purely on events

## Extends

* [`StarknetChainEventsBrowser`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md)

## Constructors

### Constructor

```
new StarknetChainEvents(

   directory, 

   chainInterface, 

   starknetSwapContract, 

   starknetSpvVaultContract, 

   pollIntervalSeconds?): StarknetChainEvents;
```

Defined in: [atomiq-chain-starknet/src/starknet/events/StarknetChainEvents.ts:14](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/events/StarknetChainEvents.ts#L14)

#### Parameters

| Parameter                  | Type                                                                                                                                       |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `directory`                | `string`                                                                                                                                   |
| `chainInterface`           | [`StarknetChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainInterface.md)     |
| `starknetSwapContract`     | [`StarknetSwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSwapContract.md)         |
| `starknetSpvVaultContract` | [`StarknetSpvVaultContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSpvVaultContract.md) |
| `pollIntervalSeconds?`     | `number`                                                                                                                                   |

#### Returns

`StarknetChainEvents`

#### Overrides

[`StarknetChainEventsBrowser`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md).[`constructor`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md#constructor)

## Methods

### init()

```
init(noAutomaticPoll?): Promise<void>;
```

Defined in: [atomiq-chain-starknet/src/starknet/events/StarknetChainEvents.ts:66](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/events/StarknetChainEvents.ts#L66)

Initializes the chains event listener, by default this initiates a websocket events subscription or HTTP polling for new events.

#### Parameters

| Parameter          | Type      | Description                                                                                                                                                                                                                                                                                     |
| ------------------ | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `noAutomaticPoll?` | `boolean` | When this flag is passed the listener doesn't initiate the websocket events subscription or HTTP polling, instead it relies on the implementor calling the [ChainEvents.poll](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainEvents.md#poll) to fetch new events |

#### Returns

`Promise`<`void`>

#### Overrides

[`StarknetChainEventsBrowser`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md).[`init`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md#init)

***

### poll()

```
poll(lastState?): Promise<StarknetEventListenerState[]>;
```

Defined in: [atomiq-chain-starknet/src/starknet/events/StarknetChainEventsBrowser.ts:537](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/events/StarknetChainEventsBrowser.ts#L537)

Triggers a single poll on the events instance, usually ran automatically, but should be called manually when initiated with `noAutomaticPoll`=`true`

#### Parameters

| Parameter    | Type                                                                                                                                                   | Description                           |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------- |
| `lastState?` | [`StarknetEventListenerState`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetEventListenerState.md)\[] | The current state of the chain events |

#### Returns

`Promise`<[`StarknetEventListenerState`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetEventListenerState.md)\[]>

The new state that should be saved, persisted and passed to the subsequent `poll()` call

#### Inherited from

[`StarknetChainEventsBrowser`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md).[`poll`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md#poll)

***

### registerListener()

```
registerListener(cbk): void;
```

Defined in: [atomiq-chain-starknet/src/starknet/events/StarknetChainEventsBrowser.ts:704](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/events/StarknetChainEventsBrowser.ts#L704)

Registers a new listener to listen for on-chain events

#### Parameters

| Parameter | Type                                                                                                                                        | Description |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `cbk`     | `EventListener`<[`StarknetSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSwapData.md)> |             |

#### Returns

`void`

#### Inherited from

[`StarknetChainEventsBrowser`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md).[`registerListener`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md#registerlistener)

***

### stop()

```
stop(): Promise<void>;
```

Defined in: [atomiq-chain-starknet/src/starknet/events/StarknetChainEventsBrowser.ts:691](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/events/StarknetChainEventsBrowser.ts#L691)

Stops all event subscriptions and timers

#### Returns

`Promise`<`void`>

#### Inherited from

[`StarknetChainEventsBrowser`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md).[`stop`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md#stop)

***

### unregisterListener()

```
unregisterListener(cbk): boolean;
```

Defined in: [atomiq-chain-starknet/src/starknet/events/StarknetChainEventsBrowser.ts:711](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/events/StarknetChainEventsBrowser.ts#L711)

Unregisters a previously registered events listener, returning `true` if success, `false` if failed

#### Parameters

| Parameter | Type                                                                                                                                        | Description |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `cbk`     | `EventListener`<[`StarknetSwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSwapData.md)> |             |

#### Returns

`boolean`

#### Inherited from

[`StarknetChainEventsBrowser`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md).[`unregisterListener`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainEventsBrowser.md#unregisterlistener)
