()
| 281 | if (!tradeSession?.sessionToken || !tokenId) { setLockedShares(0); setLockedUsdc(0); return; } |
| 282 | let cancelled = false; |
| 283 | const load = async () => { |
| 284 | try { |
| 285 | const orders = await fetchOpenOrders(tradeSession.sessionToken); |
| 286 | let sellLocked = 0; |
| 287 | let buyLocked = 0; |
| 288 | for (const o of orders) { |
| 289 | const remaining = (parseFloat(o.original_size) || 0) - (parseFloat(o.size_matched) || 0); |
| 290 | if (remaining <= 0) continue; |
| 291 | if (o.asset_id === tokenId && o.side === "SELL") { |
| 292 | sellLocked += remaining; |
| 293 | } |
| 294 | if (o.side === "BUY") { |
| 295 | buyLocked += remaining * (parseFloat(o.price) || 0); |
| 296 | } |
| 297 | } |
| 298 | if (!cancelled) { setLockedShares(sellLocked); setLockedUsdc(buyLocked); } |
| 299 | } catch { /* ignore */ } |
| 300 | }; |
| 301 | void load(); |
| 302 | const onOrderPlaced = () => { void load(); }; |
| 303 | window.addEventListener("polyworld:order-placed", onOrderPlaced); |
no test coverage detected