Skip to content
markpaper

src/margin/reject.ts

v0.1.0 · 627 B

Download file
const MARGIN_REJECT_RE = /InsufficientFunds|Unhealthy trader cannot increase exposure/i;
export function isMarginReject(reason?: string | null, message?: string | null): boolean {
  return MARGIN_REJECT_RE.test(`${reason ?? ''} ${message ?? ''}`);
}
export function freeMarginUsd(view: { initialMarginUsd: number | null; collateralUsd: number | null }): number | null {
  if (
    view.initialMarginUsd === null ||
    view.collateralUsd === null ||
    !Number.isFinite(view.initialMarginUsd) ||
    !Number.isFinite(view.collateralUsd)
  )
    return null;
  return Math.max(0, view.collateralUsd - view.initialMarginUsd);
}
All files