Skip to content
Last updated

PERS SDK - v2.3.26 / Exports / WalletEventsManager

Class: WalletEventsManager

Wallet Events Manager - Manages real-time blockchain event subscriptions

Low-level WS client wrapper. For auto-subscription based on auth type, use sdk.connectWalletEvents() which handles subscription automatically.

Table of contents

Constructors

Methods

Constructors

constructor

new WalletEventsManager(apiClient, eventEmitter, config?): WalletEventsManager

Parameters

NameType
apiClientPersApiClient
eventEmitterPersEventEmitter
config?WalletEventsConfig

Returns

WalletEventsManager

Defined in

managers/events-manager.ts:85

Methods

connect

connect(): Promise<void>

Connect to real-time wallet events

Establishes WebSocket connection to the WS relay server. After connecting, call subscribeWallets() or subscribeChains() to start receiving events.

For auto-subscription, use sdk.connectWalletEvents() instead.

Returns

Promise<void>

Defined in

managers/events-manager.ts:118


disconnect

disconnect(): void

Disconnect from real-time events

Returns

void

Defined in

managers/events-manager.ts:236


destroy

destroy(): void

Full cleanup - disconnect and remove all subscriptions including auth listener Call this when completely done with the manager (e.g., SDK disposal)

Returns

void

Defined in

managers/events-manager.ts:251


subscribeWallets

subscribeWallets(wallets): Promise<SubscribedPayload>

Subscribe to wallet events

Receives events only for the specified wallet addresses. Use this for user-facing SDK where you want to monitor specific wallets.

Parameters

NameTypeDescription
walletsWalletInfo[]Array of wallet info (address + chainId)

Returns

Promise<SubscribedPayload>

Promise that resolves when subscription is confirmed

Example

await sdk.walletEvents.connect();
await sdk.walletEvents.subscribeWallets([
  { address: '0x123...', chainId: 39123 }
]);

Defined in

managers/events-manager.ts:282


subscribeChains

subscribeChains(chains): Promise<SubscribedPayload>

Subscribe to chain events (Admin Dashboard)

Receives ALL events on the specified chains. Use for admin dashboards that need to monitor all activity.

Parameters

NameTypeDescription
chainsnumber[]Array of chain IDs to subscribe to

Returns

Promise<SubscribedPayload>

Promise that resolves when subscription is confirmed

Example

await sdk.walletEvents.connect();
await sdk.walletEvents.subscribeChains([39123, 137]);

Defined in

managers/events-manager.ts:307


unsubscribeWallets

unsubscribeWallets(wallets): Promise<SubscribedPayload>

Unsubscribe from wallet events

Parameters

NameTypeDescription
walletsWalletInfo[]Array of wallet info to unsubscribe from

Returns

Promise<SubscribedPayload>

Promise that resolves when unsubscription is confirmed

Defined in

managers/events-manager.ts:323


unsubscribeChains

unsubscribeChains(chains): Promise<SubscribedPayload>

Unsubscribe from chain events

Parameters

NameTypeDescription
chainsnumber[]Array of chain IDs to unsubscribe from

Returns

Promise<SubscribedPayload>

Promise that resolves when unsubscription is confirmed

Defined in

managers/events-manager.ts:336


getSubscriptionState

getSubscriptionState(): SubscribedPayload

Get current subscription state

Returns

SubscribedPayload

Defined in

managers/events-manager.ts:346


bindNotificationChannel

bindNotificationChannel(channelId, topicIds?): void

Bind this socket to a personal notification channelId (from sdk.notifications.getChannelId()). Safe to call before or after connect() — queued and sent once the socket is open.

Parameters

NameType
channelIdstring
topicIds?string[]

Returns

void

Defined in

managers/events-manager.ts:358


updateNotificationChannel

updateNotificationChannel(channelId): void

Rebind the personal notification channelId on an already-connected socket.

Parameters

NameType
channelIdstring

Returns

void

Defined in

managers/events-manager.ts:366


getNotificationContext

getNotificationContext(): NotificationContext

Get the notification routing context (channelId + topicIds) resolved for this socket.

Returns

NotificationContext

Defined in

managers/events-manager.ts:374


onNotificationPending

onNotificationPending(handler): BlockchainEventUnsubscribe

Subscribe to real-time notification wake signals (notification.pending). The signal carries no content — always follow up with sdk.notifications.list().

Parameters

Returns

BlockchainEventUnsubscribe

Defined in

managers/events-manager.ts:382


on

on(eventType, handler): BlockchainEventUnsubscribe

Subscribe to blockchain events

Parameters

NameTypeDescription
eventTypestringEvent type ('Transfer', 'Approval', etc.) or '*' for all
handlerBlockchainEventHandlerCallback function when event is received

Returns

BlockchainEventUnsubscribe

Unsubscribe function

Example

const unsub = sdk.walletEvents.on('Transfer', (event) => {
  console.log(`Transfer: ${event.data.from} -> ${event.data.to}`);
});

// Later: stop listening
unsub();

Defined in

managers/events-manager.ts:416


onStateChange

onStateChange(handler): BlockchainEventUnsubscribe

Subscribe to connection state changes

Parameters

NameType
handler(state: EventConnectionState) => void

Returns

BlockchainEventUnsubscribe

Defined in

managers/events-manager.ts:434


getState

getState(): EventConnectionState

Get current connection state

Returns

EventConnectionState

Defined in

managers/events-manager.ts:444


isConnected

isConnected(): boolean

Check if connected

Returns

boolean

Defined in

managers/events-manager.ts:451


hasReconnectGivenUp

hasReconnectGivenUp(): boolean

Check if WS reconnection gave up (exhausted all attempts) Used to determine if we should retry on token refresh

Returns

boolean

Defined in

managers/events-manager.ts:459


retryAfterTokenRefresh

retryAfterTokenRefresh(): Promise<void>

Retry connection after token refresh Called when auth tokens are refreshed and WS had previously given up Automatically resubscribes to previous subscriptions

Returns

Promise<void>

Defined in

managers/events-manager.ts:468


getConnectionInfo

getConnectionInfo(): undefined | null | { userId: string ; wallets: WalletInfo[] ; activeChains: number[] }

Get connection info (wallets, active chains)

Returns

undefined | null | { userId: string ; wallets: WalletInfo[] ; activeChains: number[] }

Defined in

managers/events-manager.ts:491