🏭 ReplayFilter

Methods

βš™ isReplayOrExpired

Checks if a packet is a replay or has an expired timestamp. Returns true if packet is invalid (replay or expired). If valid, records the nonce and returns false.

MethodType
isReplayOrExpired(packet: WirePacket, now?: number) => boolean

βš™ cleanup

Purges nonces whose expiration timestamp has passed

MethodType
cleanup(now?: number) => void

🏭 ProtocolEngine

Methods

βš™ isReplayOrExpired

Checks if an incoming packet is a duplicate replay or expired

MethodType
isReplayOrExpired(packet: WirePacket) => boolean

βš™ getReplayFilter

Returns the internal ReplayFilter instance

MethodType
getReplayFilter() => ReplayFilter

βš™ createRequestPacket

Packs an RPC Request into an Encrypted WirePacket envelope.

MethodType
createRequestPacket(targetId: string, action: string, params: Record<string, unknown>, keyHex: string) => { packet: WirePacket; nonce: string; }

βš™ unpackPayload

Unpacks and decrypts an incoming packet’s inner payload.

MethodType
unpackPayload<T>(packet: WirePacket, keyHex: string) => T or null

βš™ registerPendingRequest

Registers a callback listener for a specific request nonce

MethodType
registerPendingRequest(nonce: string, callback: (res: RPCResponsePayload) => void) => void

βš™ handleResponse

Resolves a pending RPC promise when a matching response arrives

MethodType
handleResponse(responsePayload: RPCResponsePayload) => void

βš™ createResponsePacket

Constructs an encrypted Response WirePacket.

MethodType
createResponsePacket(targetId: string, replyToNonce: string, success: boolean, data?: unknown, error?: string or undefined, keyHex?: string or undefined) => WirePacket

βš™ createDataPacket

Constructs an encrypted Data WirePacket (direct message / chat).

MethodType
createDataPacket(targetId: string, payload: DirectMessagePayload, keyHex: string) => WirePacket

βš™ createHandshakePacket

Constructs a P2P Ticket Handshake Signal WirePacket. Delivered to target peer so target can decrypt the ticket using their master key.

MethodType
createHandshakePacket(targetId: string, ticket: string, ticketIv: string) => WirePacket

βš™ createTestPacket

Constructs an unencrypted SIGNAL Test Request WirePacket.

MethodType
createTestPacket(targetId: string, seq?: number, data?: string) => WirePacket

βš™ createTestResponsePacket

Constructs an unencrypted SIGNAL Test Response WirePacket with constant β€œpong” payload data.

MethodType
createTestResponsePacket(requestPacket: WirePacket, seq?: number) => WirePacket

🍹 Interfaces

βš™ RPCRequestPayload

PropertyTypeDescription
actionstring
paramsRecord<string, unknown> or undefined

βš™ RPCResponsePayload

PropertyTypeDescription
replyToNoncestring
successboolean
dataunknown
errorstring or undefined

βš™ DirectMessagePayload

PropertyTypeDescription
contentType"text" or "json" or "binary"
contentstring

βš™ P2PTicket

PropertyTypeDescription
sessionKeystring
initiatorIdstring
timestampnumber
ttlnumber

βš™ TicketResponseBody

PropertyTypeDescription
targetIdstring
sessionKeystring
ticketForTargetstring
ticketIvstring

βš™ P2PHandshakePayload

PropertyTypeDescription
ticketstring
ivstring

βš™ TestPacketPayload

PropertyTypeDescription
seqnumber
datastring
tsnumber