# SolanaChainEvents

Defined in: [atomiq-chain-solana/src/solana/events/SolanaChainEvents.ts:13](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/events/SolanaChainEvents.ts#L13)

Event handler for backend Node.js systems with access to fs, uses HTTP polling in combination with WS to not miss any events

## Extends

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

## Constructors

### Constructor

```
new SolanaChainEvents(

   directory, 

   connection, 

   solanaSwapProgram, 

   logFetchInterval?): SolanaChainEvents;
```

Defined in: [atomiq-chain-solana/src/solana/events/SolanaChainEvents.ts:21](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/events/SolanaChainEvents.ts#L21)

#### Parameters

| Parameter           | Type                                                                                                                       |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `directory`         | `string`                                                                                                                   |
| `connection`        | `Connection`                                                                                                               |
| `solanaSwapProgram` | [`SolanaSwapProgram`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaSwapProgram.md) |
| `logFetchInterval?` | `number`                                                                                                                   |

#### Returns

`SolanaChainEvents`

#### Overrides

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

## Methods

### init()

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

Defined in: [atomiq-chain-solana/src/solana/events/SolanaChainEvents.ts:97](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/events/SolanaChainEvents.ts#L97)

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

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

***

### poll()

```
poll(lastSignature?): Promise<SolanaEventListenerState>;
```

Defined in: [atomiq-chain-solana/src/solana/events/SolanaChainEventsBrowser.ts:404](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/events/SolanaChainEventsBrowser.ts#L404)

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                           |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- |
| `lastSignature?` | [`SolanaEventListenerState`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/type-aliases/SolanaEventListenerState.md) | The current state of the chain events |

#### Returns

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

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

#### Inherited from

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

***

### registerListener()

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

Defined in: [atomiq-chain-solana/src/solana/events/SolanaChainEventsBrowser.ts:437](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/events/SolanaChainEventsBrowser.ts#L437)

Registers a new listener to listen for on-chain events

#### Parameters

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

#### Returns

`void`

#### Inherited from

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

***

### stop()

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

Defined in: [atomiq-chain-solana/src/solana/events/SolanaChainEvents.ts:110](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/events/SolanaChainEvents.ts#L110)

Stops the event listener's polling and websocket subscription

#### Returns

`Promise`<`void`>

#### Overrides

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

***

### unregisterListener()

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

Defined in: [atomiq-chain-solana/src/solana/events/SolanaChainEventsBrowser.ts:444](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/events/SolanaChainEventsBrowser.ts#L444)

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

#### Parameters

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

#### Returns

`boolean`

#### Inherited from

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