{s}omniamarkets

@somnia-chain/markets-sdk


@somnia-chain/markets-sdk / index / Trader

Interface: Trader

Defined in: trade.ts:664

Methods

placeOrder()

placeOrder(params): Promise<PlaceOrderResult>

Defined in: trade.ts:667

Place a limit order (auto-approving the escrow token by default). Resolves once mined, with the resting order id and any fills.

Parameters

params

PlaceOrderParams

Returns

Promise<PlaceOrderResult>


cancelOrder()

cancelOrder(params): Promise<TxResult>

Defined in: trade.ts:669

Cancel a resting order on its pool (works for spot + binary).

Parameters

params

CancelOrderParams

Returns

Promise<TxResult>


reduceOrder()

reduceOrder(params): Promise<TxResult>

Defined in: trade.ts:673

Shrink a resting order's remaining quantity in place, keeping its price-time queue priority (works for spot + binary). Reverts on-chain for an expired order — use Trader.cancelOrder there.

Parameters

params

ReduceOrderParams

Returns

Promise<TxResult>


cancelExpiredOrders()

cancelExpiredOrders(params): Promise<TxResult>

Defined in: trade.ts:677

Permissionless keeper drain: clean an explicit list of expired resting orders on a pool, returning each order's escrow to its owner (best-effort; skips non-expired / stale ids).

Parameters

params

CancelExpiredOrdersParams

Returns

Promise<TxResult>


sweepExpiredAtLevel()

sweepExpiredAtLevel(params): Promise<TxResult>

Defined in: trade.ts:680

Permissionless keeper drain: clean up to maxCount expired orders at one price level on a side.

Parameters

params

SweepExpiredAtLevelParams

Returns

Promise<TxResult>


approveBuilder()

approveBuilder(params): Promise<TxResult>

Defined in: trade.ts:684

Opt a routing/builder frontend in on a BinaryPool so orders the trader places with that builder code may charge up to maxFeeBpsTimes1k (0 revokes). Required before a non-zero builder/builderFeeBpsTimes1k on Trader.placeOrder.

Parameters

params

ApproveBuilderParams

Returns

Promise<TxResult>


getBuilderApproval()

getBuilderApproval(pool, user, builder): Promise<bigint>

Defined in: trade.ts:686

Read a trader's per-builder approval cap on a BinaryPool (pool bps×1000; 0 = none).

Parameters

pool

`0x${string}`

user

`0x${string}`

builder

`0x${string}`

Returns

Promise<bigint>


getEffectiveBuilderApproval()

getEffectiveBuilderApproval(pool, user, builder): Promise<bigint>

Defined in: trade.ts:690

Effective builder approval on a BinaryPool: the trader's raw cap clamped by the pool's protocol-wide getMaxBuilderFeeBpsTimes1k ceiling — the actual enforced limit a builderFeeBpsTimes1k on Trader.placeOrder must not exceed.

Parameters

pool

`0x${string}`

user

`0x${string}`

builder

`0x${string}`

Returns

Promise<bigint>


getMaxBuilderFeeBpsTimes1k()

getMaxBuilderFeeBpsTimes1k(pool): Promise<bigint>

Defined in: trade.ts:692

Read a BinaryPool's protocol-wide builder-fee ceiling (bps×1000).

Parameters

pool

`0x${string}`

Returns

Promise<bigint>


placeSpotOrder()

placeSpotOrder(params): Promise<PlaceOrderResult>

Defined in: trade.ts:695

Place a spot limit/market order on a SpotPool (auto-approves the escrow token, or sends native msg.value on a native-base sell).

Parameters

params

PlaceSpotOrderParams

Returns

Promise<PlaceOrderResult>


placePerpOrder()

placePerpOrder(params): Promise<PlaceOrderResult>

Defined in: trade.ts:698

Place a perp limit/market order on a PerpPool. Margin is locked from the signer's MarginBank balance — Trader.depositMargin first.

Parameters

params

PlacePerpOrderParams

Returns

Promise<PlaceOrderResult>


depositMargin()

depositMargin(params): Promise<TxResult>

Defined in: trade.ts:701

Deposit collateral into the MarginBank (auto-approving the collateral token to the bank by default). One cross-margin balance covers every perp pool.

Parameters

params

DepositMarginParams

Returns

Promise<TxResult>


withdrawMargin()

withdrawMargin(params): Promise<TxResult>

Defined in: trade.ts:703

Withdraw free collateral from the MarginBank (margin-checked on-chain).

Parameters

params

WithdrawMarginParams

Returns

Promise<TxResult>


withdrawVault()

withdrawVault(params): Promise<TxResult>

Defined in: trade.ts:707

Claim a payout that fell back to a pool's internal ERC20Vault (a PayoutFallbackToVault credit) back to the wallet. Read the claimable amount first with client.getVaultBalance(vault, owner, token).

Parameters

params

WithdrawVaultParams

Returns

Promise<TxResult>


setPerpLeverage()

setPerpLeverage(params): Promise<TxResult>

Defined in: trade.ts:709

Set the signer's max leverage for one perp pool (caps position size vs margin).

Parameters

params

SetPerpLeverageParams

Returns

Promise<TxResult>


pokeFunding()

pokeFunding(params): Promise<TxResult>

Defined in: trade.ts:711

Permissionlessly poke a perp pool's funding settlement (updateFunding).

Parameters

params
pool

`0x${string}`

gas?

bigint

Returns

Promise<TxResult>


placeSpotStopOrder()

placeSpotStopOrder(params): Promise<TxResult>

Defined in: trade.ts:714

Place a spot stop-loss / take-profit pending order on a SpotStopOrderRegistry (funds the trigger via SOMI msg.value).

Parameters

params

PlaceSpotStopOrderParams

Returns

Promise<TxResult>


cancelStopOrder()

cancelStopOrder(params): Promise<TxResult>

Defined in: trade.ts:716

Cancel a pending stop order on its registry.

Parameters

params

CancelStopOrderParams

Returns

Promise<TxResult>


mintSet()

mintSet(params): Promise<TxResult>

Defined in: trade.ts:718

Mint a YES+NO set: deposit collateral, receive equal YES + NO.

Parameters

params

MintSetParams

Returns

Promise<TxResult>


burnSet()

burnSet(params): Promise<TxResult>

Defined in: trade.ts:720

Burn a YES+NO set: surrender both halves, receive collateral back.

Parameters

params

BurnSetParams

Returns

Promise<TxResult>


redeem()

redeem(params): Promise<TxResult>

Defined in: trade.ts:725

Burn winning outcome tokens for collateral (resolved/voided markets). Settlement-extraction v2: module-routed — the module pulls the caller's winning tokens, finalizes-if-needed, and redeems through BinarySettlement. Takes marketId (not a pool address — a pool serves successive markets).

Parameters

params

RedeemParams

Returns

Promise<TxResult>


signRedeemAuth()

signRedeemAuth(params): Promise<RedeemAuthorization>

Defined in: trade.ts:731

Produce an EIP-712 RedeemAuthorization the connected signer (the position owner) hands to a relayer, so the relayer can call Trader.redeemFor and pay the gas while the OWNER receives the payout. Signs over the module's REDEEM_AUTH_TYPEHASH in the SomniaMarkets domain; no transaction is sent.

Parameters

params

SignRedeemAuthParams

Returns

Promise<RedeemAuthorization>


redeemFor()

redeemFor(params): Promise<TxResult>

Defined in: trade.ts:735

Relayer path: submit a position owner's pre-signed RedeemAuthorization (from Trader.signRedeemAuth). The caller pays gas; the module pays the OWNER the collateral (payout is hard-pinned to owner, never the relayer).

Parameters

params

RedeemForParams

Returns

Promise<TxResult>


redeemMany()

redeemMany(params): Promise<TxResult>

Defined in: trade.ts:737

Claim winnings from many settled markets in one transaction (batch redeem).

Parameters

params

RedeemManyParams

Returns

Promise<TxResult>


redeemDirect()

redeemDirect(params): Promise<TxResult>

Defined in: trade.ts:740

Low-level direct redemption against the BinarySettlement singleton (bypasses the module; no operator attribution). Takes the raw ERC-6909 outcomeId.

Parameters

params

RedeemDirectParams

Returns

Promise<TxResult>


claimOwed()

claimOwed(params): Promise<TxResult>

Defined in: trade.ts:742

Claim an accrued push-fallback (owed) balance on the settlement singleton.

Parameters

params

ClaimOwedParams

Returns

Promise<TxResult>


finalizeMarket()

finalizeMarket(params): Promise<TxResult>

Defined in: trade.ts:745

Permissionless keeper: finalize a settled market (sweep its pool's backing + resolution snapshot to the settlement singleton). No-op-guarded on repeat.

Parameters

params

FinalizeMarketParams

Returns

Promise<TxResult>


syncSettlement()

syncSettlement(params): Promise<TxResult>

Defined in: trade.ts:749

Permissionless earmark reconcile: release the oracle earmark of a market voided via BinaryMarket.voidExpired() (which bypasses the module, so the hub's earmark release never fired). Idempotent; reverts MarketNotSettled while still live.

Parameters

params

SyncSettlementParams

Returns

Promise<TxResult>


releasePool()

releasePool(params): Promise<TxResult>

Defined in: trade.ts:752

Permissionless keeper: release a finalized, drained pool back to its creator's free list for recycle onto the next market.

Parameters

params

ReleasePoolParams

Returns

Promise<TxResult>


getSettlement()

getSettlement(marketId, opts?): Promise<SettlementRecord | null>

Defined in: trade.ts:756

Read a market's settlement record from the BinarySettlement singleton (by bytes32 marketId — resolves the marketKey via the module's yesId). Returns null when the market has never been finalized.

Parameters

marketId

`0x${string}`

opts?
module?

`0x${string}`

settlement?

`0x${string}`

Returns

Promise<SettlementRecord | null>


getFreePools()

getFreePools(creator, collateral, opts?): Promise<`0x${string}`[]>

Defined in: trade.ts:758

Read a creator's free (finalized + released, reusable) pools for a collateral.

Parameters

creator

`0x${string}`

collateral

`0x${string}`

opts?
module?

`0x${string}`

Returns

Promise<`0x${string}`[]>


poolCreator()

poolCreator(pool, opts?): Promise<`0x${string}`>

Defined in: trade.ts:760

Read a pool's creator (its first-deploy creator — the only party that can reuse it).

Parameters

pool

`0x${string}`

opts?
module?

`0x${string}`

Returns

Promise<`0x${string}`>


mintSetNative()

mintSetNative(params): Promise<TxResult>

Defined in: trade.ts:763

Mint a complete YES+NO set paying with NATIVE token via the CollateralRouter (wraps msg.value → wNative). The market's collateral must be wNative.

Parameters

params

MintSetNativeParams

Returns

Promise<TxResult>


mintSetPermit2()

mintSetPermit2(params): Promise<TxResult>

Defined in: trade.ts:766

Mint a complete YES+NO set pulling collateral via a Permit2 signature through the CollateralRouter (no prior ERC-20 approve).

Parameters

params

MintSetPermit2Params

Returns

Promise<TxResult>


redeemNative()

redeemNative(params): Promise<TxResult>

Defined in: trade.ts:769

Redeem winning outcome tokens for a NATIVE payout via the CollateralRouter (unwraps wNative → native). Approve the router for the winning outcome first.

Parameters

params

RedeemNativeParams

Returns

Promise<TxResult>


faucet()

faucet(params?): Promise<TxResult>

Defined in: trade.ts:771

Mint TestUSDC from the faucet to the signer.

Parameters

params?

FaucetParams

Returns

Promise<TxResult>


resolve()

resolve(params): Promise<TxResult>

Defined in: trade.ts:773

Resolve a market via the FakeOracle (demo resolver).

Parameters

params

ResolveParams

Returns

Promise<TxResult>


voidMarket()

voidMarket(params): Promise<TxResult>

Defined in: trade.ts:775

Void a market via the FakeOracle (demo resolver).

Parameters

params

VoidMarketParams

Returns

Promise<TxResult>


poke()

poke(params): Promise<TxResult>

Defined in: trade.ts:777

Poke a market to advance its lifecycle. No-op since status is derived; kept for ABI stability.

Parameters

params
market

`0x${string}`

gas?

bigint

Returns

Promise<TxResult>


clearApprovalCache()

clearApprovalCache(token?, spender?): void

Defined in: trade.ts:781

Forget cached token approvals so the next escrowing write re-checks allowance. Pass a (token, spender) to clear one pair, or nothing to clear all. Rarely needed — maxUint256 approvals don't decrement.

Parameters

token?

`0x${string}`

spender?

`0x${string}`

Returns

void