Skip to main content

Class: SelectiveEventForwarding\<TEvent\>

Gala Launchpad SDK 9.0.0-rc.5


Gala Launchpad SDK 9.0.0-rc.5 / index / SelectiveEventForwarding

Class: SelectiveEventForwarding<TEvent>

Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:397

Selective Event Forwarding

Filters events based on multiple predicates before forwarding. Reduces message volume by eliminating noisy or unwanted events.

Features:

  • Multiple filter predicates (AND logic)
  • Short-circuit evaluation (stops at first failing filter)
  • Chainable filter registration

Example​

// Test case: Event filtering pipeline
interface SwapEvent { token0: string; token1: string; amount: string; user: string }

const forwarder = new SelectiveEventForwarding<SwapEvent>();

// Add filters
forwarder.addFilter((event) => event.amount !== '0'); // Skip zero amounts
forwarder.addFilter((event) => event.token0 === 'GALA'); // Only GALA swaps
forwarder.addFilter((event) => !event.user.includes('bot')); // Skip bot swaps

// Test filtering
const allowed = { token0: 'GALA', token1: 'USDC', amount: '100', user: 'alice' };
console.assert(forwarder.forward(allowed) === true);

const zeroAmount = { token0: 'GALA', token1: 'USDC', amount: '0', user: 'alice' };
console.assert(forwarder.forward(zeroAmount) === false);

const nonGala = { token0: 'USDC', token1: 'USDT', amount: '100', user: 'alice' };
console.assert(forwarder.forward(nonGala) === false);

const botSwap = { token0: 'GALA', token1: 'USDC', amount: '100', user: 'bot123' };
console.assert(forwarder.forward(botSwap) === false);

Since​

6.6.0

Type Parameters​

TEvent​

TEvent

Event type being filtered

Constructors​

Constructor​

new SelectiveEventForwarding<TEvent>(): SelectiveEventForwarding<TEvent>

Returns​

SelectiveEventForwarding<TEvent>

Accessors​

filterCount​

Get Signature​

get filterCount(): number

Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:425

Get count of active filters

Returns​

number

Number of filter predicates

Methods​

addFilter()​

addFilter(predicate): this

Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:408

Add a filter predicate

Event must pass ALL filters to be forwarded. Filters are evaluated in the order they were added (short-circuit evaluation).

Parameters​

predicate​

(event) => boolean

Function returning true to allow event, false to block

Returns​

this

This instance for chaining


clearFilters()​

clearFilters(): void

Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:419

Clear all filters

Returns​

void


forward()​

forward(event): boolean

Defined in: packages/launchpad-sdk/dist/utils/websocket-patterns.d.ts:415

Forward an event if it passes all filters

Parameters​

event​

TEvent

Event to evaluate

Returns​

boolean

True if event passed all filters, false otherwise