Skip to main content
Version: Next

Class: WebSocketChannel

WebSocket channel provides communication with Starknet node over long-lived socket connection

Constructors​

constructor​

• new WebSocketChannel(options?): WebSocketChannel

Construct class and event listeners

Parameters​

NameTypeDescription
optionsWebSocketOptionsWebSocketOptions

Returns​

WebSocketChannel

Defined in​

src/channel/ws_0_8.ts:180

Properties​

nodeUrl​

• nodeUrl: string

WebSocket RPC Node URL

Example

'wss://starknet-node.io/rpc/v0_8'

Defined in​

src/channel/ws_0_8.ts:51


websocket​

• websocket: WebSocket

ws library object

Defined in​

src/channel/ws_0_8.ts:74


onReorg​

• onReorg: (this: WebSocketChannel, data: SubscriptionReorgResponse) => any

Type declaration​

â–¸ (this, data): any

Assign implementation method to get 'on reorg event data'

Parameters​
NameType
thisWebSocketChannel
dataSubscriptionReorgResponse
Returns​

any

Example

webSocketChannel.onReorg = async function (data) {
// ... do something when reorg happens
}

Defined in​

src/channel/ws_0_8.ts:85


onNewHeads​

• onNewHeads: (this: WebSocketChannel, data: SubscriptionNewHeadsResponse) => any

Type declaration​

â–¸ (this, data): any

Assign implementation method to get 'starknet block heads'

Parameters​
NameType
thisWebSocketChannel
dataSubscriptionNewHeadsResponse
Returns​

any

Example

webSocketChannel.onNewHeads = async function (data) {
// ... do something with head data
}

Defined in​

src/channel/ws_0_8.ts:96


onEvents​

• onEvents: (this: WebSocketChannel, data: SubscriptionEventsResponse) => any

Type declaration​

â–¸ (this, data): any

Assign implementation method to get 'starknet events'

Parameters​
NameType
thisWebSocketChannel
dataSubscriptionEventsResponse
Returns​

any

Example

webSocketChannel.onEvents = async function (data) {
// ... do something with event data
}

Defined in​

src/channel/ws_0_8.ts:107


onTransactionStatus​

• onTransactionStatus: (this: WebSocketChannel, data: SubscriptionTransactionsStatusResponse) => any

Type declaration​

â–¸ (this, data): any

Assign method to get 'starknet transactions status'

Parameters​
NameType
thisWebSocketChannel
dataSubscriptionTransactionsStatusResponse
Returns​

any

Example

webSocketChannel.onTransactionStatus = async function (data) {
// ... do something with tx status data
}

Defined in​

src/channel/ws_0_8.ts:118


onPendingTransaction​

• onPendingTransaction: (this: WebSocketChannel, data: SubscriptionPendingTransactionsResponse) => any

Type declaration​

â–¸ (this, data): any

Assign implementation method to get 'starknet pending transactions (mempool)'

Parameters​
NameType
thisWebSocketChannel
dataSubscriptionPendingTransactionsResponse
Returns​

any

Example

webSocketChannel.onPendingTransaction = async function (data) {
// ... do something with pending tx data
}

Defined in​

src/channel/ws_0_8.ts:132


onOpen​

• onOpen: (this: WebSocketChannel, ev: Event) => any

Type declaration​

â–¸ (this, ev): any

Assign implementation to this method to listen open Event

Parameters​
NameType
thisWebSocketChannel
evEvent
Returns​

any

Defined in​

src/channel/ws_0_8.ts:140


onClose​

• onClose: (this: WebSocketChannel, ev: CloseEvent) => any

Type declaration​

â–¸ (this, ev): any

Assign implementation to this method to listen close CloseEvent

Parameters​
NameType
thisWebSocketChannel
evCloseEvent
Returns​

any

Defined in​

src/channel/ws_0_8.ts:145


onMessage​

• onMessage: (this: WebSocketChannel, ev: MessageEvent<any>) => any

Type declaration​

â–¸ (this, ev): any

Assign implementation to this method to listen message MessageEvent

Parameters​
NameType
thisWebSocketChannel
evMessageEvent<any>
Returns​

any

Defined in​

src/channel/ws_0_8.ts:150


onError​

• onError: (this: WebSocketChannel, ev: Event) => any

Type declaration​

â–¸ (this, ev): any

Assign implementation to this method to listen error Event

Parameters​
NameType
thisWebSocketChannel
evEvent
Returns​

any

Defined in​

src/channel/ws_0_8.ts:155


onUnsubscribe​

• onUnsubscribe: (this: WebSocketChannel, _subscriptionId: number) => any

Type declaration​

â–¸ (this, _subscriptionId): any

Assign implementation to this method to listen unsubscription

Parameters​
NameType
thisWebSocketChannel
_subscriptionIdnumber
Returns​

any

Defined in​

src/channel/ws_0_8.ts:160


onUnsubscribeLocal​

• Private onUnsubscribeLocal: (this: WebSocketChannel, _subscriptionId: number) => any

Type declaration​

â–¸ (this, _subscriptionId): any

Parameters​
NameType
thisWebSocketChannel
_subscriptionIdnumber
Returns​

any

Defined in​

src/channel/ws_0_8.ts:162


sendId​

• Private sendId: number = 0

JSON RPC latest sent message id expecting receiving message to contain same id

Defined in​

src/channel/ws_0_8.ts:168


subscriptions​

• Readonly subscriptions: Map<string, number>

subscriptions ids mapped by keys WSSubscriptions

Defined in​

src/channel/ws_0_8.ts:174

Methods​

idResolver​

â–¸ idResolver(id?): number

Parameters​

NameType
id?number

Returns​

number

Defined in​

src/channel/ws_0_8.ts:192


send​

â–¸ send(method, params?, id?): number

Send data over open ws connection

  • this would only send data on the line without awaiting 'response message'

Parameters​

NameType
methodstring
params?object
id?number

Returns​

number

Example

const sentId = await this.send('starknet_method', params);

Defined in​

src/channel/ws_0_8.ts:208


sendReceiveAny​

â–¸ sendReceiveAny(method, params?): Promise<any>

Any Starknet method not just websocket override

Parameters​

NameType
methodany
params?any

Returns​

Promise<any>

Defined in​

src/channel/ws_0_8.ts:227


sendReceive​

â–¸ sendReceive<T>(method, params?): Promise<any>

Send request and receive response over ws line This method abstract ws messages into request/response model

Type parameters​

NameType
Textends keyof WebSocketMethods

Parameters​

NameTypeDescription
methodTrpc method name
params?WebSocketMethods[T][``"params"``]rpc method parameters

Returns​

Promise<any>

Example

const response = await this.sendReceive('starknet_method', params);

Defined in​

src/channel/ws_0_8.ts:241


isConnected​

â–¸ isConnected(): boolean

Helper to check connection is open

Returns​

boolean

Defined in​

src/channel/ws_0_8.ts:267


waitForConnection​

â–¸ waitForConnection(): Promise<number>

await while websocket is connected

  • could be used to block the flow until websocket is open

Returns​

Promise<number>

Example

const readyState = await webSocketChannel.waitForConnection();

Defined in​

src/channel/ws_0_8.ts:279


disconnect​

â–¸ disconnect(code?, reason?): void

Disconnect the WebSocket connection, optionally using code as the the WebSocket connection close code and reason as the the WebSocket connection close reason.

Parameters​

NameType
code?number
reason?string

Returns​

void

Defined in​

src/channel/ws_0_8.ts:297


waitForDisconnection​

â–¸ waitForDisconnection(): Promise<number | Event>

await while websocket is disconnected

Returns​

Promise<number | Event>

Example

const readyState = await webSocketChannel.waitForDisconnection();

Defined in​

src/channel/ws_0_8.ts:308


unsubscribe​

â–¸ unsubscribe(subscriptionId, ref?): Promise<boolean>

Unsubscribe from starknet subscription

Parameters​

NameTypeDescription
subscriptionIdnumber
ref?stringinternal usage, only for managed subscriptions

Returns​

Promise<boolean>

Defined in​

src/channel/ws_0_8.ts:326


waitForUnsubscription​

â–¸ waitForUnsubscription(forSubscriptionId?): Promise<unknown>

await while subscription is unsubscribed

Parameters​

NameTypeDescription
forSubscriptionId?numberif defined trigger on subscriptionId else trigger on any

Returns​

Promise<unknown>

subscriptionId | onerror(Event)

Example

const subscriptionId = await webSocketChannel.waitForUnsubscription();

Defined in​

src/channel/ws_0_8.ts:349


reconnect​

â–¸ reconnect(): void

Reconnect re-create this.websocket instance

Returns​

void

Defined in​

src/channel/ws_0_8.ts:367


reconnectAndUpdate​

â–¸ reconnectAndUpdate(): void

Returns​

void

Defined in​

src/channel/ws_0_8.ts:377


onCloseProxy​

â–¸ onCloseProxy(ev): void

Parameters​

NameType
evCloseEvent

Returns​

void

Defined in​

src/channel/ws_0_8.ts:383


onMessageProxy​

â–¸ onMessageProxy(event): void

Parameters​

NameType
eventMessageEvent<any>

Returns​

void

Defined in​

src/channel/ws_0_8.ts:391


subscribeNewHeadsUnmanaged​

â–¸ subscribeNewHeadsUnmanaged(blockIdentifier?): Promise<number>

subscribe to new block heads

  • you can subscribe to this event multiple times and you need to manage subscriptions manually

Parameters​

NameType
blockIdentifier?SubscriptionBlockIdentifier

Returns​

Promise<number>

Defined in​

src/channel/ws_0_8.ts:421


subscribeNewHeads​

â–¸ subscribeNewHeads(blockIdentifier?): Promise<number | false>

subscribe to new block heads

Parameters​

NameType
blockIdentifier?SubscriptionBlockIdentifier

Returns​

Promise<number | false>

Defined in​

src/channel/ws_0_8.ts:432


unsubscribeNewHeads​

â–¸ unsubscribeNewHeads(): Promise<boolean>

Unsubscribe newHeads subscription

Returns​

Promise<boolean>

Defined in​

src/channel/ws_0_8.ts:442


subscribeEventsUnmanaged​

â–¸ subscribeEventsUnmanaged(fromAddress?, keys?, blockIdentifier?): Promise<number>

subscribe to 'starknet events'

  • you can subscribe to this event multiple times and you need to manage subscriptions manually

Parameters​

NameType
fromAddress?BigNumberish
keys?string[][]
blockIdentifier?SubscriptionBlockIdentifier

Returns​

Promise<number>

Defined in​

src/channel/ws_0_8.ts:452


subscribeEvents​

â–¸ subscribeEvents(fromAddress?, keys?, blockIdentifier?): Promise<number | false>

subscribe to 'starknet events'

Parameters​

NameType
fromAddress?BigNumberish
keys?string[][]
blockIdentifier?SubscriptionBlockIdentifier

Returns​

Promise<number | false>

Defined in​

src/channel/ws_0_8.ts:468


unsubscribeEvents​

â–¸ unsubscribeEvents(): Promise<boolean>

Unsubscribe 'starknet events' subscription

Returns​

Promise<boolean>

Defined in​

src/channel/ws_0_8.ts:483


subscribeTransactionStatusUnmanaged​

â–¸ subscribeTransactionStatusUnmanaged(transactionHash, blockIdentifier?): Promise<number>

subscribe to transaction status

  • you can subscribe to this event multiple times and you need to manage subscriptions manually

Parameters​

NameType
transactionHashBigNumberish
blockIdentifier?SubscriptionBlockIdentifier

Returns​

Promise<number>

Defined in​

src/channel/ws_0_8.ts:493


subscribeTransactionStatus​

â–¸ subscribeTransactionStatus(transactionHash): Promise<number | false>

subscribe to transaction status

Parameters​

NameType
transactionHashBigNumberish

Returns​

Promise<number | false>

Defined in​

src/channel/ws_0_8.ts:508


unsubscribeTransactionStatus​

â–¸ unsubscribeTransactionStatus(): Promise<boolean>

unsubscribe 'transaction status' subscription

Returns​

Promise<boolean>

Defined in​

src/channel/ws_0_8.ts:518


subscribePendingTransactionUnmanaged​

â–¸ subscribePendingTransactionUnmanaged(transactionDetails?, senderAddress?): Promise<number>

subscribe to pending transactions (mempool)

  • you can subscribe to this event multiple times and you need to manage subscriptions manually

Parameters​

NameType
transactionDetails?boolean
senderAddress?BigNumberish[]

Returns​

Promise<number>

Defined in​

src/channel/ws_0_8.ts:528


subscribePendingTransaction​

â–¸ subscribePendingTransaction(transactionDetails?, senderAddress?): Promise<number | false>

subscribe to pending transactions (mempool)

Parameters​

NameType
transactionDetails?boolean
senderAddress?BigNumberish[]

Returns​

Promise<number | false>

Defined in​

src/channel/ws_0_8.ts:543


unsubscribePendingTransaction​

â–¸ unsubscribePendingTransaction(): Promise<boolean>

unsubscribe 'pending transaction' subscription

Returns​

Promise<boolean>

Defined in​

src/channel/ws_0_8.ts:560