Skip to content

[non-null] probable/websocket.ts: unsafe Map.get()! assertion on orderBookResolvers #264

@realfishsam

Description

@realfishsam

Risk Level

HIGH

File

core/src/exchanges/probable/websocket.ts

Findings

  • Line 77: this.orderBookResolvers.get(tokenId)!.push({ resolve, reject }); — assumes tokenId is already a key in orderBookResolvers. If absent, .push() is invoked on undefined.

What Happens When It's Wrong

TypeError: Cannot read properties of undefined (reading 'push') — the pending watchOrderBook promise leaks silently; downstream callers hang until watch timeout.

Suggested Fix

if (!this.orderBookResolvers.has(tokenId)) this.orderBookResolvers.set(tokenId, []);
this.orderBookResolvers.get(tokenId)!.push({ resolve, reject });

Found by automated non-null assertion audit

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions