@symmio/trading-react 1.1.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account-layer/index.d.ts +1 -0
- package/dist/account-layer/index.d.ts.map +1 -1
- package/dist/account-layer/index.js +26 -25
- package/dist/account-layer/use-deallocate-and-initiate-withdraw.d.ts +53 -0
- package/dist/account-layer/use-deallocate-and-initiate-withdraw.d.ts.map +1 -0
- package/dist/account-layer/use-deallocate-and-initiate-withdraw.js +49 -0
- package/dist/account-layer/use-deallocate-and-initiate-withdraw.js.map +1 -0
- package/dist/account-layer/use-deposit-and-allocate.d.ts +4 -2
- package/dist/account-layer/use-deposit-and-allocate.d.ts.map +1 -1
- package/dist/account-layer/use-deposit-and-allocate.js +17 -15
- package/dist/account-layer/use-deposit-and-allocate.js.map +1 -1
- package/dist/account-layer/use-edit-account-name.d.ts.map +1 -1
- package/dist/account-layer/use-edit-account-name.js +14 -14
- package/dist/account-layer/use-edit-account-name.js.map +1 -1
- package/dist/account-layer/use-virtual-accounts-addresses-of-sub-account.d.ts +1 -1
- package/dist/account-layer/use-virtual-accounts-addresses-of-sub-account.js.map +1 -1
- package/dist/candles/index.d.ts +5 -0
- package/dist/candles/index.d.ts.map +1 -0
- package/dist/candles/index.js +5 -0
- package/dist/candles/use-binance-candle-source.d.ts +27 -0
- package/dist/candles/use-binance-candle-source.d.ts.map +1 -0
- package/dist/candles/use-binance-candle-source.js +24 -0
- package/dist/candles/use-binance-candle-source.js.map +1 -0
- package/dist/candles/use-candle-stream.d.ts +65 -0
- package/dist/candles/use-candle-stream.d.ts.map +1 -0
- package/dist/candles/use-candle-stream.js +44 -0
- package/dist/candles/use-candle-stream.js.map +1 -0
- package/dist/candles/use-candles.d.ts +40 -0
- package/dist/candles/use-candles.d.ts.map +1 -0
- package/dist/candles/use-candles.js +22 -0
- package/dist/candles/use-candles.js.map +1 -0
- package/dist/candles/use-tradingview-datafeed.d.ts +31 -0
- package/dist/candles/use-tradingview-datafeed.d.ts.map +1 -0
- package/dist/candles/use-tradingview-datafeed.js +21 -0
- package/dist/candles/use-tradingview-datafeed.js.map +1 -0
- package/dist/index.d.ts +125 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +201 -113
- package/dist/instant-layer/index.d.ts +4 -0
- package/dist/instant-layer/index.d.ts.map +1 -1
- package/dist/instant-layer/index.js +10 -6
- package/dist/instant-layer/use-instant-close-auto.d.ts.map +1 -1
- package/dist/instant-layer/use-instant-close-auto.js +12 -11
- package/dist/instant-layer/use-instant-close-auto.js.map +1 -1
- package/dist/instant-layer/use-instant-close-bulk-auto.d.ts.map +1 -1
- package/dist/instant-layer/use-instant-close-bulk-auto.js +12 -11
- package/dist/instant-layer/use-instant-close-bulk-auto.js.map +1 -1
- package/dist/instant-layer/use-instant-close-bulk.d.ts.map +1 -1
- package/dist/instant-layer/use-instant-close-bulk.js +12 -11
- package/dist/instant-layer/use-instant-close-bulk.js.map +1 -1
- package/dist/instant-layer/use-instant-close.d.ts.map +1 -1
- package/dist/instant-layer/use-instant-close.js +12 -11
- package/dist/instant-layer/use-instant-close.js.map +1 -1
- package/dist/instant-layer/use-instant-open-auto.d.ts.map +1 -1
- package/dist/instant-layer/use-instant-open-auto.js +12 -11
- package/dist/instant-layer/use-instant-open-auto.js.map +1 -1
- package/dist/instant-layer/use-instant-open-fees.d.ts +43 -0
- package/dist/instant-layer/use-instant-open-fees.d.ts.map +1 -0
- package/dist/instant-layer/use-instant-open-fees.js +111 -0
- package/dist/instant-layer/use-instant-open-fees.js.map +1 -0
- package/dist/instant-layer/use-instant-open-with-tpsl.d.ts.map +1 -1
- package/dist/instant-layer/use-instant-open-with-tpsl.js +34 -31
- package/dist/instant-layer/use-instant-open-with-tpsl.js.map +1 -1
- package/dist/instant-layer/use-instant-open.d.ts +23 -18
- package/dist/instant-layer/use-instant-open.d.ts.map +1 -1
- package/dist/instant-layer/use-instant-open.js +12 -11
- package/dist/instant-layer/use-instant-open.js.map +1 -1
- package/dist/instant-layer/use-instant-opens.d.ts +6 -6
- package/dist/instant-layer/use-instant-opens.d.ts.map +1 -1
- package/dist/instant-layer/use-instant-opens.js.map +1 -1
- package/dist/instant-layer/use-instant-trade-required-selectors.d.ts +25 -0
- package/dist/instant-layer/use-instant-trade-required-selectors.d.ts.map +1 -0
- package/dist/instant-layer/use-instant-trade-required-selectors.js +13 -0
- package/dist/instant-layer/use-instant-trade-required-selectors.js.map +1 -0
- package/dist/instant-layer/use-limit-close-auto.d.ts +30 -0
- package/dist/instant-layer/use-limit-close-auto.d.ts.map +1 -0
- package/dist/instant-layer/use-limit-close-auto.js +33 -0
- package/dist/instant-layer/use-limit-close-auto.js.map +1 -0
- package/dist/instant-layer/use-limit-open-auto.d.ts +30 -0
- package/dist/instant-layer/use-limit-open-auto.d.ts.map +1 -0
- package/dist/instant-layer/use-limit-open-auto.js +33 -0
- package/dist/instant-layer/use-limit-open-auto.js.map +1 -0
- package/dist/inventory/index.d.ts +3 -0
- package/dist/inventory/index.d.ts.map +1 -0
- package/dist/inventory/index.js +3 -0
- package/dist/inventory/use-inventory-tvl-history.d.ts +27 -0
- package/dist/inventory/use-inventory-tvl-history.d.ts.map +1 -0
- package/dist/inventory/use-inventory-tvl-history.js +28 -0
- package/dist/inventory/use-inventory-tvl-history.js.map +1 -0
- package/dist/inventory/use-inventory-tvl.d.ts +23 -0
- package/dist/inventory/use-inventory-tvl.d.ts.map +1 -0
- package/dist/inventory/use-inventory-tvl.js +27 -0
- package/dist/inventory/use-inventory-tvl.js.map +1 -0
- package/dist/margin/index.d.ts +1 -0
- package/dist/margin/index.d.ts.map +1 -1
- package/dist/margin/use-account-margin-risk.d.ts +68 -0
- package/dist/margin/use-account-margin-risk.d.ts.map +1 -0
- package/dist/margin/use-account-margin-risk.js +31 -0
- package/dist/margin/use-account-margin-risk.js.map +1 -0
- package/dist/margin/use-available-instant-open-margin.d.ts +27 -7
- package/dist/margin/use-available-instant-open-margin.d.ts.map +1 -1
- package/dist/margin/use-available-instant-open-margin.js +117 -46
- package/dist/margin/use-available-instant-open-margin.js.map +1 -1
- package/dist/market-info/use-market-info.d.ts +13 -13
- package/dist/market-info/use-market-info.d.ts.map +1 -1
- package/dist/market-info/use-market-info.js.map +1 -1
- package/dist/markets/use-markets.d.ts +14 -8
- package/dist/markets/use-markets.d.ts.map +1 -1
- package/dist/markets/use-markets.js.map +1 -1
- package/dist/muon/index.d.ts +2 -0
- package/dist/muon/index.d.ts.map +1 -1
- package/dist/muon/use-force-close-price-sig.d.ts +34 -0
- package/dist/muon/use-force-close-price-sig.d.ts.map +1 -0
- package/dist/muon/use-force-close-price-sig.js +31 -0
- package/dist/muon/use-force-close-price-sig.js.map +1 -0
- package/dist/muon/use-send-quote-upnl-sig.d.ts +30 -0
- package/dist/muon/use-send-quote-upnl-sig.d.ts.map +1 -0
- package/dist/muon/use-send-quote-upnl-sig.js +28 -0
- package/dist/muon/use-send-quote-upnl-sig.js.map +1 -0
- package/dist/notifications/use-search-notifications.d.ts +12 -12
- package/dist/notifications/use-search-notifications.d.ts.map +1 -1
- package/dist/notifications/use-search-notifications.js.map +1 -1
- package/dist/notional-cap/use-notional-cap-by-symbol-id.d.ts +7 -7
- package/dist/notional-cap/use-notional-cap-by-symbol-id.d.ts.map +1 -1
- package/dist/notional-cap/use-notional-cap-by-symbol-id.js.map +1 -1
- package/dist/orderbook/index.d.ts +5 -0
- package/dist/orderbook/index.d.ts.map +1 -0
- package/dist/orderbook/index.js +5 -0
- package/dist/orderbook/use-binance-orderbook-source.d.ts +28 -0
- package/dist/orderbook/use-binance-orderbook-source.d.ts.map +1 -0
- package/dist/orderbook/use-binance-orderbook-source.js +26 -0
- package/dist/orderbook/use-binance-orderbook-source.js.map +1 -0
- package/dist/orderbook/use-live-orderbook.d.ts +104 -0
- package/dist/orderbook/use-live-orderbook.d.ts.map +1 -0
- package/dist/orderbook/use-live-orderbook.js +77 -0
- package/dist/orderbook/use-live-orderbook.js.map +1 -0
- package/dist/orderbook/use-orderbook-stream.d.ts +73 -0
- package/dist/orderbook/use-orderbook-stream.d.ts.map +1 -0
- package/dist/orderbook/use-orderbook-stream.js +49 -0
- package/dist/orderbook/use-orderbook-stream.js.map +1 -0
- package/dist/orderbook/use-orderbook.d.ts +35 -0
- package/dist/orderbook/use-orderbook.d.ts.map +1 -0
- package/dist/orderbook/use-orderbook.js +22 -0
- package/dist/orderbook/use-orderbook.js.map +1 -0
- package/dist/pools/index.d.ts +30 -0
- package/dist/pools/index.d.ts.map +1 -0
- package/dist/pools/index.js +30 -0
- package/dist/pools/use-add-market.d.ts +57 -0
- package/dist/pools/use-add-market.d.ts.map +1 -0
- package/dist/pools/use-add-market.js +30 -0
- package/dist/pools/use-add-market.js.map +1 -0
- package/dist/pools/use-authenticate-listing.d.ts +45 -0
- package/dist/pools/use-authenticate-listing.d.ts.map +1 -0
- package/dist/pools/use-authenticate-listing.js +30 -0
- package/dist/pools/use-authenticate-listing.js.map +1 -0
- package/dist/pools/use-cancel-withdraw.d.ts +47 -0
- package/dist/pools/use-cancel-withdraw.d.ts.map +1 -0
- package/dist/pools/use-cancel-withdraw.js +30 -0
- package/dist/pools/use-cancel-withdraw.js.map +1 -0
- package/dist/pools/use-claim-history.d.ts +25 -0
- package/dist/pools/use-claim-history.d.ts.map +1 -0
- package/dist/pools/use-claim-history.js +27 -0
- package/dist/pools/use-claim-history.js.map +1 -0
- package/dist/pools/use-claim-profit.d.ts +53 -0
- package/dist/pools/use-claim-profit.d.ts.map +1 -0
- package/dist/pools/use-claim-profit.js +30 -0
- package/dist/pools/use-claim-profit.js.map +1 -0
- package/dist/pools/use-deposit-address.d.ts +43 -0
- package/dist/pools/use-deposit-address.d.ts.map +1 -0
- package/dist/pools/use-deposit-address.js +28 -0
- package/dist/pools/use-deposit-address.js.map +1 -0
- package/dist/pools/use-listing-config.d.ts +28 -0
- package/dist/pools/use-listing-config.d.ts.map +1 -0
- package/dist/pools/use-listing-config.js +27 -0
- package/dist/pools/use-listing-config.js.map +1 -0
- package/dist/pools/use-listing-market-config-projection.d.ts +66 -0
- package/dist/pools/use-listing-market-config-projection.d.ts.map +1 -0
- package/dist/pools/use-listing-market-config-projection.js +57 -0
- package/dist/pools/use-listing-market-config-projection.js.map +1 -0
- package/dist/pools/use-listing-market-config.d.ts +49 -0
- package/dist/pools/use-listing-market-config.d.ts.map +1 -0
- package/dist/pools/use-listing-market-config.js +28 -0
- package/dist/pools/use-listing-market-config.js.map +1 -0
- package/dist/pools/use-listing-market-detail.d.ts +29 -0
- package/dist/pools/use-listing-market-detail.d.ts.map +1 -0
- package/dist/pools/use-listing-market-detail.js +27 -0
- package/dist/pools/use-listing-market-detail.js.map +1 -0
- package/dist/pools/use-listing-markets.d.ts +32 -0
- package/dist/pools/use-listing-markets.d.ts.map +1 -0
- package/dist/pools/use-listing-markets.js +27 -0
- package/dist/pools/use-listing-markets.js.map +1 -0
- package/dist/pools/use-listing-status.d.ts +29 -0
- package/dist/pools/use-listing-status.d.ts.map +1 -0
- package/dist/pools/use-listing-status.js +28 -0
- package/dist/pools/use-listing-status.js.map +1 -0
- package/dist/pools/use-pool-quotes.d.ts +26 -0
- package/dist/pools/use-pool-quotes.d.ts.map +1 -0
- package/dist/pools/use-pool-quotes.js +27 -0
- package/dist/pools/use-pool-quotes.js.map +1 -0
- package/dist/pools/use-pool-reward-chart.d.ts +32 -0
- package/dist/pools/use-pool-reward-chart.d.ts.map +1 -0
- package/dist/pools/use-pool-reward-chart.js +28 -0
- package/dist/pools/use-pool-reward-chart.js.map +1 -0
- package/dist/pools/use-pool-total-reward.d.ts +27 -0
- package/dist/pools/use-pool-total-reward.d.ts.map +1 -0
- package/dist/pools/use-pool-total-reward.js +28 -0
- package/dist/pools/use-pool-total-reward.js.map +1 -0
- package/dist/pools/use-pool-trade-history.d.ts +26 -0
- package/dist/pools/use-pool-trade-history.d.ts.map +1 -0
- package/dist/pools/use-pool-trade-history.js +27 -0
- package/dist/pools/use-pool-trade-history.js.map +1 -0
- package/dist/pools/use-pool-transactions.d.ts +23 -0
- package/dist/pools/use-pool-transactions.d.ts.map +1 -0
- package/dist/pools/use-pool-transactions.js +27 -0
- package/dist/pools/use-pool-transactions.js.map +1 -0
- package/dist/pools/use-refund-market.d.ts +51 -0
- package/dist/pools/use-refund-market.d.ts.map +1 -0
- package/dist/pools/use-refund-market.js +30 -0
- package/dist/pools/use-refund-market.js.map +1 -0
- package/dist/pools/use-retry-listing-info.d.ts +23 -0
- package/dist/pools/use-retry-listing-info.d.ts.map +1 -0
- package/dist/pools/use-retry-listing-info.js +27 -0
- package/dist/pools/use-retry-listing-info.js.map +1 -0
- package/dist/pools/use-retry-listing.d.ts +46 -0
- package/dist/pools/use-retry-listing.d.ts.map +1 -0
- package/dist/pools/use-retry-listing.js +30 -0
- package/dist/pools/use-retry-listing.js.map +1 -0
- package/dist/pools/use-supports-listing-service.d.ts +21 -0
- package/dist/pools/use-supports-listing-service.d.ts.map +1 -0
- package/dist/pools/use-supports-listing-service.js +13 -0
- package/dist/pools/use-supports-listing-service.js.map +1 -0
- package/dist/pools/use-update-listing-market-config.d.ts +60 -0
- package/dist/pools/use-update-listing-market-config.d.ts.map +1 -0
- package/dist/pools/use-update-listing-market-config.js +30 -0
- package/dist/pools/use-update-listing-market-config.js.map +1 -0
- package/dist/pools/use-user-listing-markets.d.ts +40 -0
- package/dist/pools/use-user-listing-markets.d.ts.map +1 -0
- package/dist/pools/use-user-listing-markets.js +28 -0
- package/dist/pools/use-user-listing-markets.js.map +1 -0
- package/dist/pools/use-user-profit.d.ts +39 -0
- package/dist/pools/use-user-profit.d.ts.map +1 -0
- package/dist/pools/use-user-profit.js +28 -0
- package/dist/pools/use-user-profit.js.map +1 -0
- package/dist/pools/use-user-reward-chart.d.ts +28 -0
- package/dist/pools/use-user-reward-chart.d.ts.map +1 -0
- package/dist/pools/use-user-reward-chart.js +28 -0
- package/dist/pools/use-user-reward-chart.js.map +1 -0
- package/dist/pools/use-user-total-reward.d.ts +30 -0
- package/dist/pools/use-user-total-reward.d.ts.map +1 -0
- package/dist/pools/use-user-total-reward.js +28 -0
- package/dist/pools/use-user-total-reward.js.map +1 -0
- package/dist/pools/use-user-transactions.d.ts +24 -0
- package/dist/pools/use-user-transactions.d.ts.map +1 -0
- package/dist/pools/use-user-transactions.js +27 -0
- package/dist/pools/use-user-transactions.js.map +1 -0
- package/dist/pools/use-weekly-listing-limit.d.ts +28 -0
- package/dist/pools/use-weekly-listing-limit.d.ts.map +1 -0
- package/dist/pools/use-weekly-listing-limit.js +28 -0
- package/dist/pools/use-weekly-listing-limit.js.map +1 -0
- package/dist/pools/use-withdraw-lp.d.ts +52 -0
- package/dist/pools/use-withdraw-lp.d.ts.map +1 -0
- package/dist/pools/use-withdraw-lp.js +30 -0
- package/dist/pools/use-withdraw-lp.js.map +1 -0
- package/dist/price-service/index.d.ts +8 -0
- package/dist/price-service/index.d.ts.map +1 -1
- package/dist/price-service/index.js +17 -9
- package/dist/price-service/use-binance-health.d.ts +16 -0
- package/dist/price-service/use-binance-health.d.ts.map +1 -0
- package/dist/price-service/use-binance-health.js +27 -0
- package/dist/price-service/use-binance-health.js.map +1 -0
- package/dist/price-service/use-binance-premium-index.d.ts +24 -0
- package/dist/price-service/use-binance-premium-index.d.ts.map +1 -0
- package/dist/price-service/use-binance-premium-index.js +27 -0
- package/dist/price-service/use-binance-premium-index.js.map +1 -0
- package/dist/price-service/use-binance-prices.d.ts +54 -0
- package/dist/price-service/use-binance-prices.d.ts.map +1 -0
- package/dist/price-service/use-binance-prices.js +57 -0
- package/dist/price-service/use-binance-prices.js.map +1 -0
- package/dist/price-service/use-binance-symbols-info.d.ts +18 -0
- package/dist/price-service/use-binance-symbols-info.d.ts.map +1 -0
- package/dist/price-service/use-binance-symbols-info.js +27 -0
- package/dist/price-service/use-binance-symbols-info.js.map +1 -0
- package/dist/price-service/use-enigma-price-by-market-id.d.ts +7 -1
- package/dist/price-service/use-enigma-price-by-market-id.d.ts.map +1 -1
- package/dist/price-service/use-enigma-price-by-market-id.js +1 -1
- package/dist/price-service/use-enigma-price-by-market-id.js.map +1 -1
- package/dist/price-service/use-mark-prices.d.ts +25 -0
- package/dist/price-service/use-mark-prices.d.ts.map +1 -0
- package/dist/price-service/use-mark-prices.js +27 -0
- package/dist/price-service/use-mark-prices.js.map +1 -0
- package/dist/price-service/use-price-by-market-id.d.ts +53 -0
- package/dist/price-service/use-price-by-market-id.d.ts.map +1 -0
- package/dist/price-service/use-price-by-market-id.js +33 -0
- package/dist/price-service/use-price-by-market-id.js.map +1 -0
- package/dist/price-service/use-price-by-name.d.ts +48 -0
- package/dist/price-service/use-price-by-name.d.ts.map +1 -0
- package/dist/price-service/use-price-by-name.js +23 -0
- package/dist/price-service/use-price-by-name.js.map +1 -0
- package/dist/price-service/use-prices.d.ts +87 -0
- package/dist/price-service/use-prices.d.ts.map +1 -0
- package/dist/price-service/use-prices.js +77 -0
- package/dist/price-service/use-prices.js.map +1 -0
- package/dist/provider/symmio-provider.d.ts +8 -2
- package/dist/provider/symmio-provider.d.ts.map +1 -1
- package/dist/provider/symmio-provider.js +19 -19
- package/dist/provider/symmio-provider.js.map +1 -1
- package/dist/quotes/confirm-hold.d.ts +121 -0
- package/dist/quotes/confirm-hold.d.ts.map +1 -0
- package/dist/quotes/confirm-hold.js +59 -0
- package/dist/quotes/confirm-hold.js.map +1 -0
- package/dist/quotes/index.d.ts +14 -0
- package/dist/quotes/index.d.ts.map +1 -1
- package/dist/quotes/use-account-upnl.d.ts +66 -0
- package/dist/quotes/use-account-upnl.d.ts.map +1 -0
- package/dist/quotes/use-account-upnl.js +73 -0
- package/dist/quotes/use-account-upnl.js.map +1 -0
- package/dist/quotes/use-close-quote-group.d.ts +126 -0
- package/dist/quotes/use-close-quote-group.d.ts.map +1 -0
- package/dist/quotes/use-close-quote-group.js +172 -0
- package/dist/quotes/use-close-quote-group.js.map +1 -0
- package/dist/quotes/use-cool-downs-of-ma.d.ts +26 -0
- package/dist/quotes/use-cool-downs-of-ma.d.ts.map +1 -0
- package/dist/quotes/use-cool-downs-of-ma.js +27 -0
- package/dist/quotes/use-cool-downs-of-ma.js.map +1 -0
- package/dist/quotes/use-force-cancel-close-request.d.ts +27 -0
- package/dist/quotes/use-force-cancel-close-request.d.ts.map +1 -0
- package/dist/quotes/use-force-cancel-close-request.js +41 -0
- package/dist/quotes/use-force-cancel-close-request.js.map +1 -0
- package/dist/quotes/use-force-cancel-quote.d.ts +26 -0
- package/dist/quotes/use-force-cancel-quote.d.ts.map +1 -0
- package/dist/quotes/use-force-cancel-quote.js +42 -0
- package/dist/quotes/use-force-cancel-quote.js.map +1 -0
- package/dist/quotes/use-force-close-eligibility.d.ts +30 -0
- package/dist/quotes/use-force-close-eligibility.d.ts.map +1 -0
- package/dist/quotes/use-force-close-eligibility.js +39 -0
- package/dist/quotes/use-force-close-eligibility.js.map +1 -0
- package/dist/quotes/use-force-close-params.d.ts +22 -0
- package/dist/quotes/use-force-close-params.d.ts.map +1 -0
- package/dist/quotes/use-force-close-params.js +27 -0
- package/dist/quotes/use-force-close-params.js.map +1 -0
- package/dist/quotes/use-force-close.d.ts +30 -0
- package/dist/quotes/use-force-close.d.ts.map +1 -0
- package/dist/quotes/use-force-close.js +38 -0
- package/dist/quotes/use-force-close.js.map +1 -0
- package/dist/quotes/use-grouped-quotes.d.ts +50 -10
- package/dist/quotes/use-grouped-quotes.d.ts.map +1 -1
- package/dist/quotes/use-grouped-quotes.js +40 -14
- package/dist/quotes/use-grouped-quotes.js.map +1 -1
- package/dist/quotes/use-grouping-isolation.d.ts +35 -0
- package/dist/quotes/use-grouping-isolation.d.ts.map +1 -0
- package/dist/quotes/use-grouping-isolation.js +39 -0
- package/dist/quotes/use-grouping-isolation.js.map +1 -0
- package/dist/quotes/use-limit-orders.d.ts +62 -0
- package/dist/quotes/use-limit-orders.d.ts.map +1 -0
- package/dist/quotes/use-limit-orders.js +82 -0
- package/dist/quotes/use-limit-orders.js.map +1 -0
- package/dist/quotes/use-managed-quotes.d.ts.map +1 -1
- package/dist/quotes/use-managed-quotes.js +198 -166
- package/dist/quotes/use-managed-quotes.js.map +1 -1
- package/dist/quotes/use-party-a-open-positions.d.ts +26 -6
- package/dist/quotes/use-party-a-open-positions.d.ts.map +1 -1
- package/dist/quotes/use-party-a-open-positions.js +32 -12
- package/dist/quotes/use-party-a-open-positions.js.map +1 -1
- package/dist/quotes/use-quote-funding.d.ts +2 -2
- package/dist/quotes/use-quote-funding.js.map +1 -1
- package/dist/quotes/use-quote-group-funding-history.d.ts +70 -0
- package/dist/quotes/use-quote-group-funding-history.d.ts.map +1 -0
- package/dist/quotes/use-quote-group-funding-history.js +38 -0
- package/dist/quotes/use-quote-group-funding-history.js.map +1 -0
- package/dist/quotes/use-quote-group-funding.d.ts +67 -0
- package/dist/quotes/use-quote-group-funding.d.ts.map +1 -0
- package/dist/quotes/use-quote-group-funding.js +26 -0
- package/dist/quotes/use-quote-group-funding.js.map +1 -0
- package/dist/quotes/use-quote-group-margin-risk.d.ts +111 -0
- package/dist/quotes/use-quote-group-margin-risk.d.ts.map +1 -0
- package/dist/quotes/use-quote-group-margin-risk.js +63 -0
- package/dist/quotes/use-quote-group-margin-risk.js.map +1 -0
- package/dist/quotes/use-quote-upnl-and-pnl.d.ts +4 -3
- package/dist/quotes/use-quote-upnl-and-pnl.d.ts.map +1 -1
- package/dist/quotes/use-quote-upnl-and-pnl.js +2 -1
- package/dist/quotes/use-quote-upnl-and-pnl.js.map +1 -1
- package/dist/quotes/use-quotes-funding.d.ts +46 -10
- package/dist/quotes/use-quotes-funding.d.ts.map +1 -1
- package/dist/quotes/use-quotes-funding.js +44 -42
- package/dist/quotes/use-quotes-funding.js.map +1 -1
- package/dist/quotes/use-request-to-cancel-close-request.d.ts +27 -0
- package/dist/quotes/use-request-to-cancel-close-request.d.ts.map +1 -0
- package/dist/quotes/use-request-to-cancel-close-request.js +41 -0
- package/dist/quotes/use-request-to-cancel-close-request.js.map +1 -0
- package/dist/quotes/use-request-to-cancel-quote.d.ts +32 -0
- package/dist/quotes/use-request-to-cancel-quote.d.ts.map +1 -0
- package/dist/quotes/use-request-to-cancel-quote.js +42 -0
- package/dist/quotes/use-request-to-cancel-quote.js.map +1 -0
- package/dist/rasa-solver/index.d.ts +7 -0
- package/dist/rasa-solver/index.d.ts.map +1 -0
- package/dist/rasa-solver/use-error-message.d.ts +14 -0
- package/dist/rasa-solver/use-error-message.d.ts.map +1 -0
- package/dist/rasa-solver/use-error-message.js +27 -0
- package/dist/rasa-solver/use-error-message.js.map +1 -0
- package/dist/rasa-solver/use-party-a-upnl.d.ts +14 -0
- package/dist/rasa-solver/use-party-a-upnl.d.ts.map +1 -0
- package/dist/rasa-solver/use-party-a-upnl.js +27 -0
- package/dist/rasa-solver/use-party-a-upnl.js.map +1 -0
- package/dist/rasa-solver/use-solver-balance-info.d.ts +14 -0
- package/dist/rasa-solver/use-solver-balance-info.d.ts.map +1 -0
- package/dist/rasa-solver/use-solver-balance-info.js +27 -0
- package/dist/rasa-solver/use-solver-balance-info.js.map +1 -0
- package/dist/rasa-solver/use-solver-open-interest.d.ts +14 -0
- package/dist/rasa-solver/use-solver-open-interest.d.ts.map +1 -0
- package/dist/rasa-solver/use-solver-open-interest.js +27 -0
- package/dist/rasa-solver/use-solver-open-interest.js.map +1 -0
- package/dist/rasa-solver/use-solver-price-range.d.ts +14 -0
- package/dist/rasa-solver/use-solver-price-range.d.ts.map +1 -0
- package/dist/rasa-solver/use-solver-price-range.js +27 -0
- package/dist/rasa-solver/use-solver-price-range.js.map +1 -0
- package/dist/rasa-solver/use-solver-readiness.d.ts +13 -0
- package/dist/rasa-solver/use-solver-readiness.d.ts.map +1 -0
- package/dist/rasa-solver/use-solver-readiness.js +27 -0
- package/dist/rasa-solver/use-solver-readiness.js.map +1 -0
- package/dist/revenue-records/index.d.ts +2 -0
- package/dist/revenue-records/index.d.ts.map +1 -0
- package/dist/revenue-records/use-revenue-records.d.ts +25 -0
- package/dist/revenue-records/use-revenue-records.d.ts.map +1 -0
- package/dist/revenue-records/use-revenue-records.js +27 -0
- package/dist/revenue-records/use-revenue-records.js.map +1 -0
- package/dist/solvers/index.d.ts +3 -0
- package/dist/solvers/index.d.ts.map +1 -0
- package/dist/solvers/use-solver-capabilities.d.ts +31 -0
- package/dist/solvers/use-solver-capabilities.d.ts.map +1 -0
- package/dist/solvers/use-solver-capabilities.js +30 -0
- package/dist/solvers/use-solver-capabilities.js.map +1 -0
- package/dist/solvers/use-solver-revenue.d.ts +28 -0
- package/dist/solvers/use-solver-revenue.d.ts.map +1 -0
- package/dist/solvers/use-solver-revenue.js +27 -0
- package/dist/solvers/use-solver-revenue.js.map +1 -0
- package/dist/symbols/index.d.ts +2 -0
- package/dist/symbols/index.d.ts.map +1 -0
- package/dist/symbols/use-symbols.d.ts +25 -0
- package/dist/symbols/use-symbols.d.ts.map +1 -0
- package/dist/symbols/use-symbols.js +27 -0
- package/dist/symbols/use-symbols.js.map +1 -0
- package/dist/tpsl/apply-tpsl-search-snapshot.d.ts +33 -0
- package/dist/tpsl/apply-tpsl-search-snapshot.d.ts.map +1 -0
- package/dist/tpsl/apply-tpsl-search-snapshot.js +51 -0
- package/dist/tpsl/apply-tpsl-search-snapshot.js.map +1 -0
- package/dist/tpsl/await-tpsl-confirmation.d.ts +77 -0
- package/dist/tpsl/await-tpsl-confirmation.d.ts.map +1 -0
- package/dist/tpsl/await-tpsl-confirmation.js +42 -0
- package/dist/tpsl/await-tpsl-confirmation.js.map +1 -0
- package/dist/tpsl/index.d.ts +11 -0
- package/dist/tpsl/index.d.ts.map +1 -1
- package/dist/tpsl/invalidate-tpsl.d.ts +23 -0
- package/dist/tpsl/invalidate-tpsl.d.ts.map +1 -0
- package/dist/tpsl/invalidate-tpsl.js +14 -0
- package/dist/tpsl/invalidate-tpsl.js.map +1 -0
- package/dist/tpsl/match-tpsl-notification.d.ts +27 -0
- package/dist/tpsl/match-tpsl-notification.d.ts.map +1 -0
- package/dist/tpsl/match-tpsl-notification.js +22 -0
- package/dist/tpsl/match-tpsl-notification.js.map +1 -0
- package/dist/tpsl/run-with-concurrency.d.ts +20 -0
- package/dist/tpsl/run-with-concurrency.d.ts.map +1 -0
- package/dist/tpsl/run-with-concurrency.js +15 -0
- package/dist/tpsl/run-with-concurrency.js.map +1 -0
- package/dist/tpsl/settled-side.d.ts +31 -0
- package/dist/tpsl/settled-side.d.ts.map +1 -0
- package/dist/tpsl/settled-side.js +21 -0
- package/dist/tpsl/settled-side.js.map +1 -0
- package/dist/tpsl/tpsl-fallback-poll.d.ts +74 -0
- package/dist/tpsl/tpsl-fallback-poll.d.ts.map +1 -0
- package/dist/tpsl/tpsl-fallback-poll.js +101 -0
- package/dist/tpsl/tpsl-fallback-poll.js.map +1 -0
- package/dist/tpsl/tpsl-store.d.ts +98 -2
- package/dist/tpsl/tpsl-store.d.ts.map +1 -1
- package/dist/tpsl/tpsl-store.js +111 -63
- package/dist/tpsl/tpsl-store.js.map +1 -1
- package/dist/tpsl/use-delete-quote-group-tpsl.d.ts +165 -0
- package/dist/tpsl/use-delete-quote-group-tpsl.d.ts.map +1 -0
- package/dist/tpsl/use-delete-quote-group-tpsl.js +247 -0
- package/dist/tpsl/use-delete-quote-group-tpsl.js.map +1 -0
- package/dist/tpsl/use-delete-quote-tpsl.d.ts.map +1 -1
- package/dist/tpsl/use-delete-quote-tpsl.js +11 -10
- package/dist/tpsl/use-delete-quote-tpsl.js.map +1 -1
- package/dist/tpsl/use-quote-group-tpsl-editor.d.ts +66 -0
- package/dist/tpsl/use-quote-group-tpsl-editor.d.ts.map +1 -0
- package/dist/tpsl/use-quote-group-tpsl-editor.js +78 -0
- package/dist/tpsl/use-quote-group-tpsl-editor.js.map +1 -0
- package/dist/tpsl/use-quote-group-tpsl.d.ts +74 -0
- package/dist/tpsl/use-quote-group-tpsl.d.ts.map +1 -0
- package/dist/tpsl/use-quote-group-tpsl.js +67 -0
- package/dist/tpsl/use-quote-group-tpsl.js.map +1 -0
- package/dist/tpsl/use-quote-tpsl.d.ts +18 -2
- package/dist/tpsl/use-quote-tpsl.d.ts.map +1 -1
- package/dist/tpsl/use-quote-tpsl.js +32 -24
- package/dist/tpsl/use-quote-tpsl.js.map +1 -1
- package/dist/tpsl/use-search-tpsl-orders.d.ts +30 -0
- package/dist/tpsl/use-search-tpsl-orders.d.ts.map +1 -0
- package/dist/tpsl/use-search-tpsl-orders.js +27 -0
- package/dist/tpsl/use-search-tpsl-orders.js.map +1 -0
- package/dist/tpsl/use-set-quote-group-tpsl.d.ts +234 -0
- package/dist/tpsl/use-set-quote-group-tpsl.d.ts.map +1 -0
- package/dist/tpsl/use-set-quote-group-tpsl.js +358 -0
- package/dist/tpsl/use-set-quote-group-tpsl.js.map +1 -0
- package/dist/tpsl/use-set-quote-tpsl.d.ts +4 -4
- package/dist/tpsl/use-set-quote-tpsl.d.ts.map +1 -1
- package/dist/tpsl/use-set-quote-tpsl.js +15 -12
- package/dist/tpsl/use-set-quote-tpsl.js.map +1 -1
- package/dist/tpsl/use-tpsl-supported.d.ts +22 -0
- package/dist/tpsl/use-tpsl-supported.d.ts.map +1 -0
- package/dist/tpsl/use-tpsl-supported.js +16 -0
- package/dist/tpsl/use-tpsl-supported.js.map +1 -0
- package/dist/tpsl/use-watch-tpsl-accounts.d.ts +33 -0
- package/dist/tpsl/use-watch-tpsl-accounts.d.ts.map +1 -0
- package/dist/tpsl/use-watch-tpsl-accounts.js +44 -0
- package/dist/tpsl/use-watch-tpsl-accounts.js.map +1 -0
- package/dist/trade-volume/index.d.ts +2 -0
- package/dist/trade-volume/index.d.ts.map +1 -0
- package/dist/trade-volume/use-trade-volume.d.ts +26 -0
- package/dist/trade-volume/use-trade-volume.d.ts.map +1 -0
- package/dist/trade-volume/use-trade-volume.js +27 -0
- package/dist/trade-volume/use-trade-volume.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/invalidate-account-balances.d.ts +36 -0
- package/dist/utils/invalidate-account-balances.d.ts.map +1 -0
- package/dist/utils/invalidate-account-balances.js +10 -0
- package/dist/utils/invalidate-account-balances.js.map +1 -0
- package/dist/websocket/use-notifications.d.ts +3 -1
- package/dist/websocket/use-notifications.d.ts.map +1 -1
- package/dist/websocket/use-notifications.js +22 -20
- package/dist/websocket/use-notifications.js.map +1 -1
- package/dist/withdraw/index.d.ts +1 -0
- package/dist/withdraw/index.d.ts.map +1 -1
- package/dist/withdraw/use-initiate-withdraw.d.ts +1 -1
- package/dist/withdraw/use-initiate-withdraw.js.map +1 -1
- package/dist/withdraw/use-request-cancel-withdraw.d.ts +4 -2
- package/dist/withdraw/use-request-cancel-withdraw.d.ts.map +1 -1
- package/dist/withdraw/use-request-cancel-withdraw.js +15 -13
- package/dist/withdraw/use-request-cancel-withdraw.js.map +1 -1
- package/dist/withdraw/use-withdraw.d.ts +67 -0
- package/dist/withdraw/use-withdraw.d.ts.map +1 -0
- package/dist/withdraw/use-withdraw.js +49 -0
- package/dist/withdraw/use-withdraw.js.map +1 -0
- package/package.json +18 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PositionType, ConfigParameter } from '@symmio/trading-core';
|
|
1
|
+
import { PositionType, ConfigParameter, SolverId } from '@symmio/trading-core';
|
|
2
2
|
import { Address } from 'viem';
|
|
3
3
|
import { SymmioRequestError } from '../errors/symmio-request-error.js';
|
|
4
4
|
/** Parameters for {@link useAvailableInstantOpenMargin}. */
|
|
@@ -13,6 +13,12 @@ export interface UseAvailableInstantOpenMarginParameters extends ConfigParameter
|
|
|
13
13
|
positionType: PositionType;
|
|
14
14
|
/** Slippage percent, e.g. `5`. */
|
|
15
15
|
slippage: number;
|
|
16
|
+
/**
|
|
17
|
+
* Solver whose markets and price provider value the cross-margin uPnL.
|
|
18
|
+
* Defaults to the chain's default solver. The margin **model** is not chosen
|
|
19
|
+
* here — it follows the sub-account's isolation type.
|
|
20
|
+
*/
|
|
21
|
+
solverId?: SolverId;
|
|
16
22
|
/** Optional chain override; defaults to the connected chain. */
|
|
17
23
|
chainId?: number;
|
|
18
24
|
}
|
|
@@ -30,17 +36,31 @@ export interface UseAvailableInstantOpenMarginReturnType {
|
|
|
30
36
|
refetch: () => Promise<void>;
|
|
31
37
|
}
|
|
32
38
|
/**
|
|
33
|
-
* Maximum initial margin an instant open can spend for `account` on a market
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* `
|
|
39
|
+
* Maximum initial margin an instant open can spend for `account` on a market —
|
|
40
|
+
* **the** margin hook. The margin model follows the sub-account's isolation
|
|
41
|
+
* type:
|
|
42
|
+
*
|
|
43
|
+
* - **VA isolations** (`POSITION` / `MARKET` / `MARKET_DIRECTION`): the
|
|
44
|
+
* sub-account's available balance shaved for fees and — SHORT only — a
|
|
45
|
+
* worst-case slippage fill (`calculateAvailableInstantOpenMargin` over
|
|
46
|
+
* {@link useAccountBalanceOf} + {@link useFeeForUser}).
|
|
47
|
+
* - **`CUSTOM` (cross-margin)** — trades execute on the sub-account directly:
|
|
48
|
+
* `calculateAvailableForOrder` over the live `balanceInfoOfPartyA` snapshot
|
|
49
|
+
* and the account's SDK-computed uPnL ({@link useAccountUpnl} — Σ
|
|
50
|
+
* per-position uPnL against live mark prices), clamped at zero. **On the
|
|
51
|
+
* Rasa solver only**, 90% of it is spendable — a 10% buffer stays reserved
|
|
52
|
+
* (see `RASA_SPENDABLE_BPS`); other cross-margin solvers spend 100%.
|
|
53
|
+
*
|
|
54
|
+
* Every read is live: balances refetch on on-chain settle notifications and
|
|
55
|
+
* the cross-margin uPnL streams off the price socket, so the `Max` chip tracks
|
|
56
|
+
* trades and the market without manual refreshes. Wire the result to the trade
|
|
57
|
+
* form's `Max` chip and gate submit on it.
|
|
38
58
|
*
|
|
39
59
|
* @example
|
|
40
60
|
* ```tsx
|
|
41
61
|
* const { availableMargin, availableMarginWei } = useAvailableInstantOpenMargin({
|
|
42
62
|
* account: subAccount,
|
|
43
|
-
* symbolId: market.
|
|
63
|
+
* symbolId: market.symbolId,
|
|
44
64
|
* leverage,
|
|
45
65
|
* positionType,
|
|
46
66
|
* slippage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-available-instant-open-margin.d.ts","sourceRoot":"","sources":["../../src/margin/use-available-instant-open-margin.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"use-available-instant-open-margin.d.ts","sourceRoot":"","sources":["../../src/margin/use-available-instant-open-margin.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,YAAY,EAEZ,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAA4B,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAI9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAqBzE,4DAA4D;AAC5D,MAAM,WAAW,uCAAwC,SAAQ,eAAe;IAC9E,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,YAAY,EAAE,YAAY,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,4DAA4D;AAC5D,MAAM,WAAW,uCAAuC;IACtD,iFAAiF;IACjF,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,sHAAsH;IACtH,eAAe,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,SAAS,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjC,qFAAqF;IACrF,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,uCAAuC,GAClD,uCAAuC,CAuHzC"}
|
|
@@ -1,66 +1,137 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { useSymmioConfig as e } from "../provider/use-symmio-config.js";
|
|
3
|
+
import { useAccountBalanceInfo as t } from "../account-layer/use-account-balance-info.js";
|
|
4
|
+
import { useAccountBalanceOf as n } from "../account-layer/use-account-balance-of.js";
|
|
5
|
+
import { useSubAccount as r } from "../account-layer/use-sub-account.js";
|
|
6
|
+
import { useFeeForUser as i } from "../fees/use-fee-for-user.js";
|
|
7
|
+
import { useAccountUpnl as a } from "../quotes/use-account-upnl.js";
|
|
8
|
+
import { SubAccountIsolationType as o, calculateAvailableForOrder as s, calculateAvailableInstantOpenMargin as c } from "@symmio/trading-core";
|
|
9
|
+
import { useCallback as l, useMemo as u } from "react";
|
|
10
|
+
import { formatUnits as d, zeroAddress as f } from "viem";
|
|
7
11
|
//#region src/margin/use-available-instant-open-margin.ts
|
|
8
|
-
function
|
|
12
|
+
function p(e) {
|
|
9
13
|
return BigInt(Math.round(e * 0x2386f26fc10000));
|
|
10
14
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
chainId:
|
|
15
|
-
|
|
15
|
+
var m = 9000n;
|
|
16
|
+
function h(h) {
|
|
17
|
+
let { account: g, symbolId: _, leverage: v, positionType: y, slippage: b, solverId: x, chainId: S, config: C } = h, w = e(h).getSolver({
|
|
18
|
+
chainId: S,
|
|
19
|
+
solverId: x
|
|
20
|
+
}).id === "rasa", T = r({
|
|
21
|
+
account: g ?? f,
|
|
22
|
+
chainId: S,
|
|
23
|
+
config: C,
|
|
24
|
+
query: {
|
|
25
|
+
enabled: !!g,
|
|
26
|
+
staleTime: Infinity
|
|
27
|
+
}
|
|
28
|
+
}), E = g === void 0 ? void 0 : T.data?.isolationType, D = E !== void 0, O = E === o.CUSTOM, k = n({
|
|
29
|
+
account: g,
|
|
30
|
+
chainId: S,
|
|
31
|
+
config: C,
|
|
32
|
+
live: !0,
|
|
33
|
+
query: { enabled: D && !O }
|
|
34
|
+
}), A = i({
|
|
35
|
+
user: g ?? f,
|
|
36
|
+
symbolId: _ ?? 0,
|
|
37
|
+
chainId: S,
|
|
38
|
+
config: C,
|
|
39
|
+
query: { enabled: D && !O && !!(g && _ !== void 0) }
|
|
40
|
+
}), j = t({
|
|
41
|
+
account: g,
|
|
42
|
+
chainId: S,
|
|
43
|
+
config: C,
|
|
44
|
+
live: !0,
|
|
45
|
+
query: { enabled: O && !!g }
|
|
46
|
+
}), M = a({
|
|
47
|
+
account: g,
|
|
48
|
+
chainId: S,
|
|
49
|
+
solverId: x,
|
|
50
|
+
config: C,
|
|
51
|
+
enabled: O,
|
|
16
52
|
live: !0
|
|
17
|
-
}),
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
53
|
+
}), { data: N, isLoading: P, error: F, refetch: I } = k, { data: L, isLoading: R, error: z, refetch: B } = A, { data: V, isLoading: H, error: U, refetch: W } = j, { upnl: G, isLoading: K, refetch: q } = M, J = l(async () => {
|
|
54
|
+
if (O) {
|
|
55
|
+
await Promise.all([W(), q()]);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
await Promise.all([I(), B()]);
|
|
59
|
+
}, [
|
|
60
|
+
O,
|
|
61
|
+
I,
|
|
62
|
+
B,
|
|
63
|
+
W,
|
|
64
|
+
q
|
|
65
|
+
]);
|
|
66
|
+
return u(() => {
|
|
67
|
+
let e = !!g && !D;
|
|
68
|
+
if (O) {
|
|
69
|
+
let e = H || K, t = U ?? null;
|
|
70
|
+
if (V === void 0 || G === void 0) return {
|
|
71
|
+
availableMarginWei: void 0,
|
|
72
|
+
availableMargin: "0",
|
|
73
|
+
isLoading: e,
|
|
74
|
+
error: t,
|
|
75
|
+
refetch: J
|
|
76
|
+
};
|
|
77
|
+
let n = s({
|
|
78
|
+
balanceInfo: V,
|
|
79
|
+
upnl: G
|
|
80
|
+
}), r = n > 0n ? n : 0n, i = w ? r * m / 10000n : r;
|
|
81
|
+
return {
|
|
82
|
+
availableMarginWei: i,
|
|
83
|
+
availableMargin: d(i, 18),
|
|
84
|
+
isLoading: e,
|
|
85
|
+
error: t,
|
|
86
|
+
refetch: J
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
let t = e || P || R, n = F ?? z ?? null;
|
|
90
|
+
if (!D || N === void 0 || L === void 0) return {
|
|
29
91
|
availableMarginWei: void 0,
|
|
30
92
|
availableMargin: "0",
|
|
31
|
-
isLoading:
|
|
32
|
-
error:
|
|
33
|
-
refetch:
|
|
93
|
+
isLoading: t,
|
|
94
|
+
error: n,
|
|
95
|
+
refetch: J
|
|
34
96
|
};
|
|
35
|
-
let r =
|
|
36
|
-
balance:
|
|
37
|
-
openFee:
|
|
38
|
-
closeFee:
|
|
39
|
-
slippageFractionWei:
|
|
40
|
-
leverage:
|
|
41
|
-
positionType:
|
|
97
|
+
let r = c({
|
|
98
|
+
balance: N,
|
|
99
|
+
openFee: L.openFee,
|
|
100
|
+
closeFee: L.closeFee,
|
|
101
|
+
slippageFractionWei: p(b),
|
|
102
|
+
leverage: v,
|
|
103
|
+
positionType: y
|
|
42
104
|
});
|
|
43
105
|
return {
|
|
44
106
|
availableMarginWei: r,
|
|
45
|
-
availableMargin:
|
|
46
|
-
isLoading:
|
|
47
|
-
error:
|
|
48
|
-
refetch:
|
|
107
|
+
availableMargin: d(r, 18),
|
|
108
|
+
isLoading: t,
|
|
109
|
+
error: n,
|
|
110
|
+
refetch: J
|
|
49
111
|
};
|
|
50
112
|
}, [
|
|
113
|
+
g,
|
|
114
|
+
D,
|
|
115
|
+
O,
|
|
116
|
+
w,
|
|
117
|
+
N,
|
|
118
|
+
P,
|
|
119
|
+
F,
|
|
120
|
+
L,
|
|
121
|
+
R,
|
|
122
|
+
z,
|
|
123
|
+
V,
|
|
124
|
+
H,
|
|
125
|
+
U,
|
|
126
|
+
G,
|
|
127
|
+
K,
|
|
128
|
+
b,
|
|
51
129
|
v,
|
|
52
130
|
y,
|
|
53
|
-
|
|
54
|
-
S,
|
|
55
|
-
C,
|
|
56
|
-
w,
|
|
57
|
-
p,
|
|
58
|
-
d,
|
|
59
|
-
f,
|
|
60
|
-
E
|
|
131
|
+
J
|
|
61
132
|
]);
|
|
62
133
|
}
|
|
63
134
|
//#endregion
|
|
64
|
-
export {
|
|
135
|
+
export { h as useAvailableInstantOpenMargin };
|
|
65
136
|
|
|
66
137
|
//# sourceMappingURL=use-available-instant-open-margin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-available-instant-open-margin.js","names":[],"sources":["../../src/margin/use-available-instant-open-margin.ts"],"sourcesContent":["\"use client\";\n\nimport { calculateAvailableInstantOpenMargin, PositionType, type ConfigParameter } from \"@symmio/trading-core\";\nimport { useCallback, useMemo } from \"react\";\nimport { formatUnits, zeroAddress, type Address } from \"viem\";\nimport { useAccountBalanceOf } from \"../account-layer/use-account-balance-of\";\nimport type { SymmioRequestError } from \"../errors/symmio-request-error\";\nimport { useFeeForUser } from \"../fees/use-fee-for-user\";\n\n/** Convert a slippage percent (e.g. `5`) to an 18-decimal fraction (`5e16`). */\nfunction slippagePercentToFractionWei(slippage: number): bigint {\n return BigInt(Math.round(slippage * 1e16));\n}\n\n/** Parameters for {@link useAvailableInstantOpenMargin}. */\nexport interface UseAvailableInstantOpenMarginParameters extends ConfigParameter {\n /** SubAccount to spend margin from. The hook is idle until it is set. */\n account?: Address;\n /** Market symbol id, for the fee lookup. Idle until it is set. */\n symbolId?: bigint | number;\n /** Requested leverage (integer ≥ 1). */\n leverage: number;\n /** LONG skips the slippage cap; SHORT applies it. */\n positionType: PositionType;\n /** Slippage percent, e.g. `5`. */\n slippage: number;\n /** Optional chain override; defaults to the connected chain. */\n chainId?: number;\n}\n\n/** Return type of {@link useAvailableInstantOpenMargin}. */\nexport interface UseAvailableInstantOpenMarginReturnType {\n /** Spendable margin in 18-decimal wei; `undefined` until balance + fees load. */\n availableMarginWei: bigint | undefined;\n /** {@link UseAvailableInstantOpenMarginReturnType.availableMarginWei} as a decimal string; `\"0\"` when unavailable. */\n availableMargin: string;\n /** `true` while the underlying balance / fee reads are loading. */\n isLoading: boolean;\n /** First error from the balance / fee reads, if any. */\n error: SymmioRequestError | null;\n /** Refetch the underlying balance + fee reads (e.g. after an open/close settles). */\n refetch: () => Promise<void>;\n}\n\n/**\n * Maximum initial margin an instant open can spend for `account` on a market,\n * shaved for fees and — SHORT only — a worst-case slippage fill. Composes\n * {@link useAccountBalanceOf} + {@link useFeeForUser} and feeds them to\n * `calculateAvailableInstantOpenMargin`. Wire the result to the trade form's\n * `Max` chip and gate submit on it.\n *\n * @example\n * ```tsx\n * const { availableMargin, availableMarginWei } = useAvailableInstantOpenMargin({\n * account: subAccount,\n * symbolId: market.symbol_id,\n * leverage,\n * positionType,\n * slippage,\n * });\n * ```\n */\nexport function useAvailableInstantOpenMargin(\n parameters: UseAvailableInstantOpenMarginParameters,\n): UseAvailableInstantOpenMarginReturnType {\n const { account, symbolId, leverage, positionType, slippage, chainId, config } = parameters;\n\n // `live` keeps the shaved margin fresh: the balance refetches when an\n // open/close settles on-chain, so the Max chip drops without a manual refresh.\n const balanceQuery = useAccountBalanceOf({ account, chainId, config, live: true });\n const feeQuery = useFeeForUser({\n user: account ?? zeroAddress,\n symbolId: symbolId ?? 0,\n chainId,\n config,\n query: { enabled: Boolean(account && symbolId !== undefined) },\n });\n\n const { data: balance, isLoading: balanceLoading, error: balanceError, refetch: refetchBalance } = balanceQuery;\n const { data: fees, isLoading: feeLoading, error: feeError, refetch: refetchFees } = feeQuery;\n\n const refetch = useCallback(async () => {\n await Promise.all([refetchBalance(), refetchFees()]);\n }, [refetchBalance, refetchFees]);\n\n return useMemo<UseAvailableInstantOpenMarginReturnType>(() => {\n const isLoading = balanceLoading || feeLoading;\n const error = balanceError ?? feeError ?? null;\n\n if (balance === undefined || fees === undefined) {\n return { availableMarginWei: undefined, availableMargin: \"0\", isLoading, error, refetch };\n }\n\n const availableMarginWei = calculateAvailableInstantOpenMargin({\n balance,\n openFee: fees.openFee,\n closeFee: fees.closeFee,\n slippageFractionWei: slippagePercentToFractionWei(slippage),\n leverage,\n positionType,\n });\n\n return { availableMarginWei, availableMargin: formatUnits(availableMarginWei, 18), isLoading, error, refetch };\n }, [balance, balanceLoading, balanceError, fees, feeLoading, feeError, slippage, leverage, positionType, refetch]);\n}\n"],"mappings":";;;;;;;AAUA,SAAS,EAA6B,GAA0B;CAC9D,OAAO,OAAO,KAAK,MAAM,IAAW,gBAAI,CAAC;AAC3C;AAkDA,SAAgB,EACd,GACyC;CACzC,IAAM,EAAE,YAAS,aAAU,aAAU,iBAAc,aAAU,YAAS,cAAW,GAI3E,IAAe,EAAoB;EAAE;EAAS;EAAS;EAAQ,MAAM;CAAK,CAAC,GAC3E,IAAW,EAAc;EAC7B,MAAM,KAAW;EACjB,UAAU,KAAY;EACtB;EACA;EACA,OAAO,EAAE,SAAS,GAAQ,KAAW,MAAa,KAAA,GAAW;CAC/D,CAAC,GAEK,EAAE,MAAM,GAAS,WAAW,GAAgB,OAAO,GAAc,SAAS,MAAmB,GAC7F,EAAE,MAAM,GAAM,WAAW,GAAY,OAAO,GAAU,SAAS,MAAgB,GAE/E,IAAU,EAAY,YAAY;EACtC,MAAM,QAAQ,IAAI,CAAC,EAAe,GAAG,EAAY,CAAC,CAAC;CACrD,GAAG,CAAC,GAAgB,CAAW,CAAC;CAEhC,OAAO,QAAuD;EAC5D,IAAM,IAAY,KAAkB,GAC9B,IAAQ,KAAgB,KAAY;EAE1C,IAAI,MAAY,KAAA,KAAa,MAAS,KAAA,GACpC,OAAO;GAAE,oBAAoB,KAAA;GAAW,iBAAiB;GAAK;GAAW;GAAO;EAAQ;EAG1F,IAAM,IAAqB,EAAoC;GAC7D;GACA,SAAS,EAAK;GACd,UAAU,EAAK;GACf,qBAAqB,EAA6B,CAAQ;GAC1D;GACA;EACF,CAAC;EAED,OAAO;GAAE;GAAoB,iBAAiB,EAAY,GAAoB,EAAE;GAAG;GAAW;GAAO;EAAQ;CAC/G,GAAG;EAAC;EAAS;EAAgB;EAAc;EAAM;EAAY;EAAU;EAAU;EAAU;EAAc;CAAO,CAAC;AACnH"}
|
|
1
|
+
{"version":3,"file":"use-available-instant-open-margin.js","names":[],"sources":["../../src/margin/use-available-instant-open-margin.ts"],"sourcesContent":["\"use client\";\n\nimport {\n calculateAvailableForOrder,\n calculateAvailableInstantOpenMargin,\n PositionType,\n SubAccountIsolationType,\n type ConfigParameter,\n type SolverId,\n} from \"@symmio/trading-core\";\nimport { useCallback, useMemo } from \"react\";\nimport { formatUnits, zeroAddress, type Address } from \"viem\";\nimport { useAccountBalanceInfo } from \"../account-layer/use-account-balance-info\";\nimport { useAccountBalanceOf } from \"../account-layer/use-account-balance-of\";\nimport { useSubAccount } from \"../account-layer/use-sub-account\";\nimport type { SymmioRequestError } from \"../errors/symmio-request-error\";\nimport { useFeeForUser } from \"../fees/use-fee-for-user\";\nimport { useSymmioConfig } from \"../provider/use-symmio-config\";\nimport { useAccountUpnl } from \"../quotes/use-account-upnl\";\n\n/** Convert a slippage percent (e.g. `5`) to an 18-decimal fraction (`5e16`). */\nfunction slippagePercentToFractionWei(slippage: number): bigint {\n return BigInt(Math.round(slippage * 1e16));\n}\n\n/**\n * **Rasa-specific policy**: the fraction of a cross-margin account's\n * `availableForOrder` a new open may spend, in basis points (90%). The\n * remaining 10% stays as a safety buffer so a fill at a slightly worse price\n * or a fee charge cannot tip the account straight into deficiency.\n *\n * Applied only when the resolved solver is Rasa — a future cross-margin solver\n * spends 100% unless its vendor mandates its own buffer.\n */\nconst RASA_SPENDABLE_BPS = 9_000n;\n\n/** Parameters for {@link useAvailableInstantOpenMargin}. */\nexport interface UseAvailableInstantOpenMarginParameters extends ConfigParameter {\n /** SubAccount to spend margin from. The hook is idle until it is set. */\n account?: Address;\n /** Market symbol id, for the fee lookup. Idle until it is set. */\n symbolId?: bigint | number;\n /** Requested leverage (integer ≥ 1). */\n leverage: number;\n /** LONG skips the slippage cap; SHORT applies it. */\n positionType: PositionType;\n /** Slippage percent, e.g. `5`. */\n slippage: number;\n /**\n * Solver whose markets and price provider value the cross-margin uPnL.\n * Defaults to the chain's default solver. The margin **model** is not chosen\n * here — it follows the sub-account's isolation type.\n */\n solverId?: SolverId;\n /** Optional chain override; defaults to the connected chain. */\n chainId?: number;\n}\n\n/** Return type of {@link useAvailableInstantOpenMargin}. */\nexport interface UseAvailableInstantOpenMarginReturnType {\n /** Spendable margin in 18-decimal wei; `undefined` until balance + fees load. */\n availableMarginWei: bigint | undefined;\n /** {@link UseAvailableInstantOpenMarginReturnType.availableMarginWei} as a decimal string; `\"0\"` when unavailable. */\n availableMargin: string;\n /** `true` while the underlying balance / fee reads are loading. */\n isLoading: boolean;\n /** First error from the balance / fee reads, if any. */\n error: SymmioRequestError | null;\n /** Refetch the underlying balance + fee reads (e.g. after an open/close settles). */\n refetch: () => Promise<void>;\n}\n\n/**\n * Maximum initial margin an instant open can spend for `account` on a market —\n * **the** margin hook. The margin model follows the sub-account's isolation\n * type:\n *\n * - **VA isolations** (`POSITION` / `MARKET` / `MARKET_DIRECTION`): the\n * sub-account's available balance shaved for fees and — SHORT only — a\n * worst-case slippage fill (`calculateAvailableInstantOpenMargin` over\n * {@link useAccountBalanceOf} + {@link useFeeForUser}).\n * - **`CUSTOM` (cross-margin)** — trades execute on the sub-account directly:\n * `calculateAvailableForOrder` over the live `balanceInfoOfPartyA` snapshot\n * and the account's SDK-computed uPnL ({@link useAccountUpnl} — Σ\n * per-position uPnL against live mark prices), clamped at zero. **On the\n * Rasa solver only**, 90% of it is spendable — a 10% buffer stays reserved\n * (see `RASA_SPENDABLE_BPS`); other cross-margin solvers spend 100%.\n *\n * Every read is live: balances refetch on on-chain settle notifications and\n * the cross-margin uPnL streams off the price socket, so the `Max` chip tracks\n * trades and the market without manual refreshes. Wire the result to the trade\n * form's `Max` chip and gate submit on it.\n *\n * @example\n * ```tsx\n * const { availableMargin, availableMarginWei } = useAvailableInstantOpenMargin({\n * account: subAccount,\n * symbolId: market.symbolId,\n * leverage,\n * positionType,\n * slippage,\n * });\n * ```\n */\nexport function useAvailableInstantOpenMargin(\n parameters: UseAvailableInstantOpenMarginParameters,\n): UseAvailableInstantOpenMarginReturnType {\n const { account, symbolId, leverage, positionType, slippage, solverId, chainId, config } = parameters;\n\n // The 10% spend buffer is a RASA policy, not a cross-margin-model rule —\n // resolved by solver id so a future cross-margin solver is unaffected.\n const resolvedConfig = useSymmioConfig(parameters);\n const isRasaSolver = resolvedConfig.getSolver({ chainId, solverId }).id === \"rasa\";\n\n // The margin model follows the sub-account's isolation: `CUSTOM` trades on\n // the sub-account directly (cross-margin); the VA isolations spend the\n // sub-account's available balance. Isolation is fixed at creation, so this\n // read caches indefinitely.\n const subAccountQuery = useSubAccount({\n account: account ?? zeroAddress,\n chainId,\n config,\n query: { enabled: Boolean(account), staleTime: Infinity },\n });\n const isolationType = account !== undefined ? subAccountQuery.data?.isolationType : undefined;\n const isolationKnown = isolationType !== undefined;\n const isCrossMargin = isolationType === SubAccountIsolationType.CUSTOM;\n\n // `live` keeps the margin fresh: balances refetch when an open/close settles\n // on-chain, so the Max chip drops without a manual refresh.\n const balanceQuery = useAccountBalanceOf({\n account,\n chainId,\n config,\n live: true,\n query: { enabled: isolationKnown && !isCrossMargin },\n });\n const feeQuery = useFeeForUser({\n user: account ?? zeroAddress,\n symbolId: symbolId ?? 0,\n chainId,\n config,\n query: { enabled: isolationKnown && !isCrossMargin && Boolean(account && symbolId !== undefined) },\n });\n const balanceInfoQuery = useAccountBalanceInfo({\n account,\n chainId,\n config,\n live: true,\n query: { enabled: isCrossMargin && Boolean(account) },\n });\n const accountUpnl = useAccountUpnl({ account, chainId, solverId, config, enabled: isCrossMargin, live: true });\n const { data: balance, isLoading: balanceLoading, error: balanceError, refetch: refetchBalance } = balanceQuery;\n const { data: fees, isLoading: feeLoading, error: feeError, refetch: refetchFees } = feeQuery;\n const {\n data: balanceInfo,\n isLoading: balanceInfoLoading,\n error: balanceInfoError,\n refetch: refetchBalanceInfo,\n } = balanceInfoQuery;\n const { upnl, isLoading: upnlLoading, refetch: refetchUpnl } = accountUpnl;\n\n const refetch = useCallback(async () => {\n if (isCrossMargin) {\n await Promise.all([refetchBalanceInfo(), refetchUpnl()]);\n return;\n }\n await Promise.all([refetchBalance(), refetchFees()]);\n }, [isCrossMargin, refetchBalance, refetchFees, refetchBalanceInfo, refetchUpnl]);\n\n return useMemo<UseAvailableInstantOpenMarginReturnType>(() => {\n const isolationLoading = Boolean(account) && !isolationKnown;\n\n if (isCrossMargin) {\n const isLoading = balanceInfoLoading || upnlLoading;\n const error = balanceInfoError ?? null;\n\n if (balanceInfo === undefined || upnl === undefined) {\n return { availableMarginWei: undefined, availableMargin: \"0\", isLoading, error, refetch };\n }\n const available = calculateAvailableForOrder({ balanceInfo, upnl });\n const clamped = available > 0n ? available : 0n;\n // Rasa-only 10% spend buffer — see RASA_SPENDABLE_BPS.\n const availableMarginWei = isRasaSolver ? (clamped * RASA_SPENDABLE_BPS) / 10_000n : clamped;\n return { availableMarginWei, availableMargin: formatUnits(availableMarginWei, 18), isLoading, error, refetch };\n }\n\n const isLoading = isolationLoading || balanceLoading || feeLoading;\n const error = balanceError ?? feeError ?? null;\n\n if (!isolationKnown || balance === undefined || fees === undefined) {\n return { availableMarginWei: undefined, availableMargin: \"0\", isLoading, error, refetch };\n }\n\n const availableMarginWei = calculateAvailableInstantOpenMargin({\n balance,\n openFee: fees.openFee,\n closeFee: fees.closeFee,\n slippageFractionWei: slippagePercentToFractionWei(slippage),\n leverage,\n positionType,\n });\n\n return { availableMarginWei, availableMargin: formatUnits(availableMarginWei, 18), isLoading, error, refetch };\n }, [\n account,\n isolationKnown,\n isCrossMargin,\n isRasaSolver,\n balance,\n balanceLoading,\n balanceError,\n fees,\n feeLoading,\n feeError,\n balanceInfo,\n balanceInfoLoading,\n balanceInfoError,\n upnl,\n upnlLoading,\n slippage,\n leverage,\n positionType,\n refetch,\n ]);\n}\n"],"mappings":";;;;;;;;;;;AAqBA,SAAS,EAA6B,GAA0B;CAC9D,OAAO,OAAO,KAAK,MAAM,IAAW,gBAAI,CAAC;AAC3C;AAWA,IAAM,IAAqB;AAsE3B,SAAgB,EACd,GACyC;CACzC,IAAM,EAAE,YAAS,aAAU,aAAU,iBAAc,aAAU,aAAU,YAAS,cAAW,GAKrF,IADiB,EAAgB,CAClB,EAAe,UAAU;EAAE;EAAS;CAAS,CAAC,EAAE,OAAO,QAMtE,IAAkB,EAAc;EACpC,SAAS,KAAW;EACpB;EACA;EACA,OAAO;GAAE,SAAS,EAAQ;GAAU,WAAW;EAAS;CAC1D,CAAC,GACK,IAAgB,MAAY,KAAA,IAAkD,KAAA,IAAtC,EAAgB,MAAM,eAC9D,IAAiB,MAAkB,KAAA,GACnC,IAAgB,MAAkB,EAAwB,QAI1D,IAAe,EAAoB;EACvC;EACA;EACA;EACA,MAAM;EACN,OAAO,EAAE,SAAS,KAAkB,CAAC,EAAc;CACrD,CAAC,GACK,IAAW,EAAc;EAC7B,MAAM,KAAW;EACjB,UAAU,KAAY;EACtB;EACA;EACA,OAAO,EAAE,SAAS,KAAkB,CAAC,KAAiB,GAAQ,KAAW,MAAa,KAAA,GAAW;CACnG,CAAC,GACK,IAAmB,EAAsB;EAC7C;EACA;EACA;EACA,MAAM;EACN,OAAO,EAAE,SAAS,KAAiB,EAAQ,EAAS;CACtD,CAAC,GACK,IAAc,EAAe;EAAE;EAAS;EAAS;EAAU;EAAQ,SAAS;EAAe,MAAM;CAAK,CAAC,GACvG,EAAE,MAAM,GAAS,WAAW,GAAgB,OAAO,GAAc,SAAS,MAAmB,GAC7F,EAAE,MAAM,GAAM,WAAW,GAAY,OAAO,GAAU,SAAS,MAAgB,GAC/E,EACJ,MAAM,GACN,WAAW,GACX,OAAO,GACP,SAAS,MACP,GACE,EAAE,SAAM,WAAW,GAAa,SAAS,MAAgB,GAEzD,IAAU,EAAY,YAAY;EACtC,IAAI,GAAe;GACjB,MAAM,QAAQ,IAAI,CAAC,EAAmB,GAAG,EAAY,CAAC,CAAC;GACvD;EACF;EACA,MAAM,QAAQ,IAAI,CAAC,EAAe,GAAG,EAAY,CAAC,CAAC;CACrD,GAAG;EAAC;EAAe;EAAgB;EAAa;EAAoB;CAAW,CAAC;CAEhF,OAAO,QAAuD;EAC5D,IAAM,IAAmB,EAAQ,KAAY,CAAC;EAE9C,IAAI,GAAe;GACjB,IAAM,IAAY,KAAsB,GAClC,IAAQ,KAAoB;GAElC,IAAI,MAAgB,KAAA,KAAa,MAAS,KAAA,GACxC,OAAO;IAAE,oBAAoB,KAAA;IAAW,iBAAiB;IAAK;IAAW;IAAO;GAAQ;GAE1F,IAAM,IAAY,EAA2B;IAAE;IAAa;GAAK,CAAC,GAC5D,IAAU,IAAY,KAAK,IAAY,IAEvC,IAAqB,IAAgB,IAAU,IAAsB,SAAU;GACrF,OAAO;IAAE;IAAoB,iBAAiB,EAAY,GAAoB,EAAE;IAAG;IAAW;IAAO;GAAQ;EAC/G;EAEA,IAAM,IAAY,KAAoB,KAAkB,GAClD,IAAQ,KAAgB,KAAY;EAE1C,IAAI,CAAC,KAAkB,MAAY,KAAA,KAAa,MAAS,KAAA,GACvD,OAAO;GAAE,oBAAoB,KAAA;GAAW,iBAAiB;GAAK;GAAW;GAAO;EAAQ;EAG1F,IAAM,IAAqB,EAAoC;GAC7D;GACA,SAAS,EAAK;GACd,UAAU,EAAK;GACf,qBAAqB,EAA6B,CAAQ;GAC1D;GACA;EACF,CAAC;EAED,OAAO;GAAE;GAAoB,iBAAiB,EAAY,GAAoB,EAAE;GAAG;GAAW;GAAO;EAAQ;CAC/G,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;AACH"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { ConfigParameter, GetMarketInfoOptions, GetMarketInfoReturnType } from '@symmio/trading-core';
|
|
1
|
+
import { ConfigParameter, GetMarketInfoOptions, GetMarketInfoReturnType, SymmioSolverKind } from '@symmio/trading-core';
|
|
2
2
|
import { UseQueryResult } from '@tanstack/react-query';
|
|
3
3
|
import { SymmioRequestError } from '../errors/symmio-request-error.js';
|
|
4
4
|
/**
|
|
5
5
|
* Parameters for {@link useMarketInfo}: the core query options plus an optional
|
|
6
|
-
* `config`.
|
|
6
|
+
* `config`. Generic over the solver kind `K` — a literal `solverId` narrows the
|
|
7
|
+
* returned market-info type.
|
|
7
8
|
*/
|
|
8
|
-
export type UseMarketInfoParameters = GetMarketInfoOptions & ConfigParameter;
|
|
9
|
-
/** Return type of {@link useMarketInfo}
|
|
10
|
-
export type UseMarketInfoReturnType = UseQueryResult<GetMarketInfoReturnType
|
|
9
|
+
export type UseMarketInfoParameters<K extends SymmioSolverKind = SymmioSolverKind> = GetMarketInfoOptions<K> & ConfigParameter;
|
|
10
|
+
/** Return type of {@link useMarketInfo}, generic over the solver kind `K`. */
|
|
11
|
+
export type UseMarketInfoReturnType<K extends SymmioSolverKind = SymmioSolverKind> = UseQueryResult<GetMarketInfoReturnType<K>, SymmioRequestError>;
|
|
11
12
|
/**
|
|
12
|
-
* Read per-market
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
* Read per-market info from the active chain's solver in one call. The shape
|
|
14
|
+
* diverges by solver — **Enigma** returns 24h volume + lifetime value plus
|
|
15
|
+
* aggregate totals; **Rasa** returns price / 24h change / volume / notional cap.
|
|
16
|
+
* Narrow on `data.kind`, or pass a literal `solverId` to narrow the type.
|
|
15
17
|
*
|
|
16
18
|
* Does not poll by default; pass `query.refetchInterval` to opt into polling.
|
|
17
|
-
* Errors are normalized to {@link SymmioRequestError}
|
|
18
|
-
* a documented value.
|
|
19
|
+
* Errors are normalized to {@link SymmioRequestError}.
|
|
19
20
|
*
|
|
20
21
|
* @example
|
|
21
22
|
* ```tsx
|
|
22
23
|
* const { data } = useMarketInfo();
|
|
23
|
-
*
|
|
24
|
-
* console.log(btc?.tradingVolume, data?.totalValue24h);
|
|
24
|
+
* if (data?.kind === "enigma") console.log(data.totalValue24h);
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
|
-
export declare function useMarketInfo(parameters?: UseMarketInfoParameters): UseMarketInfoReturnType
|
|
27
|
+
export declare function useMarketInfo<K extends SymmioSolverKind = SymmioSolverKind>(parameters?: UseMarketInfoParameters<K>): UseMarketInfoReturnType<K>;
|
|
28
28
|
//# sourceMappingURL=use-market-info.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-market-info.d.ts","sourceRoot":"","sources":["../../src/market-info/use-market-info.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,
|
|
1
|
+
{"version":3,"file":"use-market-info.d.ts","sourceRoot":"","sources":["../../src/market-info/use-market-info.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIzE;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAC1G,eAAe,CAAC;AAElB,8EAA8E;AAC9E,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,IAAI,cAAc,CACjG,uBAAuB,CAAC,CAAC,CAAC,EAC1B,kBAAkB,CACnB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,EACzE,UAAU,GAAE,uBAAuB,CAAC,CAAC,CAAM,GAC1C,uBAAuB,CAAC,CAAC,CAAC,CAkB5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-market-info.js","names":[],"sources":["../../src/market-info/use-market-info.ts"],"sourcesContent":["\"use client\";\n\nimport {\n getMarketInfoQueryOptions,\n type ConfigParameter,\n type GetMarketInfoOptions,\n type GetMarketInfoReturnType,\n} from \"@symmio/trading-core\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { normalizeSymmError } from \"../errors/normalize-symm-error\";\nimport type { SymmioRequestError } from \"../errors/symmio-request-error\";\nimport { useSymmioChainId } from \"../provider/use-symmio-chain-id\";\nimport { useSymmioConfig } from \"../provider/use-symmio-config\";\n\n/**\n * Parameters for {@link useMarketInfo}: the core query options plus an optional\n * `config
|
|
1
|
+
{"version":3,"file":"use-market-info.js","names":[],"sources":["../../src/market-info/use-market-info.ts"],"sourcesContent":["\"use client\";\n\nimport {\n getMarketInfoQueryOptions,\n type ConfigParameter,\n type GetMarketInfoOptions,\n type GetMarketInfoReturnType,\n type SymmioSolverKind,\n} from \"@symmio/trading-core\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { normalizeSymmError } from \"../errors/normalize-symm-error\";\nimport type { SymmioRequestError } from \"../errors/symmio-request-error\";\nimport { useSymmioChainId } from \"../provider/use-symmio-chain-id\";\nimport { useSymmioConfig } from \"../provider/use-symmio-config\";\n\n/**\n * Parameters for {@link useMarketInfo}: the core query options plus an optional\n * `config`. Generic over the solver kind `K` — a literal `solverId` narrows the\n * returned market-info type.\n */\nexport type UseMarketInfoParameters<K extends SymmioSolverKind = SymmioSolverKind> = GetMarketInfoOptions<K> &\n ConfigParameter;\n\n/** Return type of {@link useMarketInfo}, generic over the solver kind `K`. */\nexport type UseMarketInfoReturnType<K extends SymmioSolverKind = SymmioSolverKind> = UseQueryResult<\n GetMarketInfoReturnType<K>,\n SymmioRequestError\n>;\n\n/**\n * Read per-market info from the active chain's solver in one call. The shape\n * diverges by solver — **Enigma** returns 24h volume + lifetime value plus\n * aggregate totals; **Rasa** returns price / 24h change / volume / notional cap.\n * Narrow on `data.kind`, or pass a literal `solverId` to narrow the type.\n *\n * Does not poll by default; pass `query.refetchInterval` to opt into polling.\n * Errors are normalized to {@link SymmioRequestError}.\n *\n * @example\n * ```tsx\n * const { data } = useMarketInfo();\n * if (data?.kind === \"enigma\") console.log(data.totalValue24h);\n * ```\n */\nexport function useMarketInfo<K extends SymmioSolverKind = SymmioSolverKind>(\n parameters: UseMarketInfoParameters<K> = {},\n): UseMarketInfoReturnType<K> {\n const config = useSymmioConfig(parameters);\n const chainId = useSymmioChainId();\n const options = getMarketInfoQueryOptions<K>(config, {\n ...parameters,\n chainId: parameters.chainId ?? chainId,\n });\n\n return useQuery({\n ...options,\n queryFn: async () => {\n try {\n return await options.queryFn();\n } catch (err) {\n throw normalizeSymmError(err);\n }\n },\n }) as UseMarketInfoReturnType<K>;\n}\n"],"mappings":";;;;;;;AA4CA,SAAgB,EACd,IAAyC,CAAC,GACd;CAC5B,IAAM,IAAS,EAAgB,CAAU,GACnC,IAAU,EAAiB,GAC3B,IAAU,EAA6B,GAAQ;EACnD,GAAG;EACH,SAAS,EAAW,WAAW;CACjC,CAAC;CAED,OAAO,EAAS;EACd,GAAG;EACH,SAAS,YAAY;GACnB,IAAI;IACF,OAAO,MAAM,EAAQ,QAAQ;GAC/B,SAAS,GAAK;IACZ,MAAM,EAAmB,CAAG;GAC9B;EACF;CACF,CAAC;AACH"}
|
|
@@ -1,15 +1,21 @@
|
|
|
1
|
-
import { ConfigParameter, GetMarketsOptions,
|
|
1
|
+
import { ConfigParameter, GetMarketsData, GetMarketsOptions, SymmioSolverKind } from '@symmio/trading-core';
|
|
2
2
|
import { UseQueryResult } from '@tanstack/react-query';
|
|
3
3
|
import { SymmioRequestError } from '../errors/symmio-request-error.js';
|
|
4
4
|
/**
|
|
5
|
-
* Parameters for {@link useMarkets}: the core query options (chain id,
|
|
6
|
-
* `query` overrides) plus an optional `config`.
|
|
5
|
+
* Parameters for {@link useMarkets}: the core query options (chain id, solver
|
|
6
|
+
* kind, TanStack `query` overrides) plus an optional `config`. Generic over the
|
|
7
|
+
* solver kind `K` — a literal `solverId` narrows the returned market type.
|
|
7
8
|
*/
|
|
8
|
-
export type UseMarketsParameters = GetMarketsOptions & ConfigParameter;
|
|
9
|
-
/** Return type of {@link useMarkets}
|
|
10
|
-
export type UseMarketsReturnType = UseQueryResult<
|
|
9
|
+
export type UseMarketsParameters<K extends SymmioSolverKind = SymmioSolverKind> = GetMarketsOptions<K> & ConfigParameter;
|
|
10
|
+
/** Return type of {@link useMarkets}, generic over the solver kind `K`. */
|
|
11
|
+
export type UseMarketsReturnType<K extends SymmioSolverKind = SymmioSolverKind> = UseQueryResult<GetMarketsData<K>, SymmioRequestError>;
|
|
11
12
|
/**
|
|
12
|
-
* Fetch all tradable markets (contract symbols) from the chain's solver
|
|
13
|
+
* Fetch all tradable markets (contract symbols) from the chain's solver,
|
|
14
|
+
* normalized to the SDK `Market` shape.
|
|
15
|
+
*
|
|
16
|
+
* Pass a literal `solverId` to narrow the returned market type to that solver
|
|
17
|
+
* (`useMarkets({ solverId: "rasa" })` → `RasaMarket[]`); omit it to get the
|
|
18
|
+
* `Market` union and narrow on `kind` at the use site.
|
|
13
19
|
*
|
|
14
20
|
* Returns react-query's full {@link UseQueryResult}. Errors are normalized to
|
|
15
21
|
* {@link SymmioRequestError} so `error.kind` is always a documented value.
|
|
@@ -22,5 +28,5 @@ export type UseMarketsReturnType = UseQueryResult<SymbolContractSymbol[], Symmio
|
|
|
22
28
|
* return <MarketList items={markets ?? []} />;
|
|
23
29
|
* ```
|
|
24
30
|
*/
|
|
25
|
-
export declare function useMarkets(parameters?: UseMarketsParameters): UseMarketsReturnType
|
|
31
|
+
export declare function useMarkets<K extends SymmioSolverKind = SymmioSolverKind>(parameters?: UseMarketsParameters<K>): UseMarketsReturnType<K>;
|
|
26
32
|
//# sourceMappingURL=use-markets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-markets.d.ts","sourceRoot":"","sources":["../../src/markets/use-markets.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,
|
|
1
|
+
{"version":3,"file":"use-markets.d.ts","sourceRoot":"","sources":["../../src/markets/use-markets.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIzE;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,IAAI,iBAAiB,CAAC,CAAC,CAAC,GACpG,eAAe,CAAC;AAElB,2EAA2E;AAC3E,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,IAAI,cAAc,CAC9F,cAAc,CAAC,CAAC,CAAC,EACjB,kBAAkB,CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,EACtE,UAAU,GAAE,oBAAoB,CAAC,CAAC,CAAM,GACvC,oBAAoB,CAAC,CAAC,CAAC,CAkBzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-markets.js","names":[],"sources":["../../src/markets/use-markets.ts"],"sourcesContent":["\"use client\";\n\nimport {\n getMarketsQueryOptions,\n type ConfigParameter,\n type GetMarketsOptions,\n type
|
|
1
|
+
{"version":3,"file":"use-markets.js","names":[],"sources":["../../src/markets/use-markets.ts"],"sourcesContent":["\"use client\";\n\nimport {\n getMarketsQueryOptions,\n type ConfigParameter,\n type GetMarketsData,\n type GetMarketsOptions,\n type SymmioSolverKind,\n} from \"@symmio/trading-core\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { normalizeSymmError } from \"../errors/normalize-symm-error\";\nimport type { SymmioRequestError } from \"../errors/symmio-request-error\";\nimport { useSymmioChainId } from \"../provider/use-symmio-chain-id\";\nimport { useSymmioConfig } from \"../provider/use-symmio-config\";\n\n/**\n * Parameters for {@link useMarkets}: the core query options (chain id, solver\n * kind, TanStack `query` overrides) plus an optional `config`. Generic over the\n * solver kind `K` — a literal `solverId` narrows the returned market type.\n */\nexport type UseMarketsParameters<K extends SymmioSolverKind = SymmioSolverKind> = GetMarketsOptions<K> &\n ConfigParameter;\n\n/** Return type of {@link useMarkets}, generic over the solver kind `K`. */\nexport type UseMarketsReturnType<K extends SymmioSolverKind = SymmioSolverKind> = UseQueryResult<\n GetMarketsData<K>,\n SymmioRequestError\n>;\n\n/**\n * Fetch all tradable markets (contract symbols) from the chain's solver,\n * normalized to the SDK `Market` shape.\n *\n * Pass a literal `solverId` to narrow the returned market type to that solver\n * (`useMarkets({ solverId: \"rasa\" })` → `RasaMarket[]`); omit it to get the\n * `Market` union and narrow on `kind` at the use site.\n *\n * Returns react-query's full {@link UseQueryResult}. Errors are normalized to\n * {@link SymmioRequestError} so `error.kind` is always a documented value.\n *\n * @example\n * ```tsx\n * const { data: markets, isLoading, error } = useMarkets();\n * if (isLoading) return <Spinner />;\n * if (error) return <ErrorView kind={error.kind} message={error.message} />;\n * return <MarketList items={markets ?? []} />;\n * ```\n */\nexport function useMarkets<K extends SymmioSolverKind = SymmioSolverKind>(\n parameters: UseMarketsParameters<K> = {},\n): UseMarketsReturnType<K> {\n const config = useSymmioConfig(parameters);\n const chainId = useSymmioChainId();\n const options = getMarketsQueryOptions<K>(config, {\n ...parameters,\n chainId: parameters.chainId ?? chainId,\n });\n\n return useQuery({\n ...options,\n queryFn: async () => {\n try {\n return await options.queryFn();\n } catch (err) {\n throw normalizeSymmError(err);\n }\n },\n }) as UseMarketsReturnType<K>;\n}\n"],"mappings":";;;;;;;AAgDA,SAAgB,EACd,IAAsC,CAAC,GACd;CACzB,IAAM,IAAS,EAAgB,CAAU,GACnC,IAAU,EAAiB,GAC3B,IAAU,EAA0B,GAAQ;EAChD,GAAG;EACH,SAAS,EAAW,WAAW;CACjC,CAAC;CAED,OAAO,EAAS;EACd,GAAG;EACH,SAAS,YAAY;GACnB,IAAI;IACF,OAAO,MAAM,EAAQ,QAAQ;GAC/B,SAAS,GAAK;IACZ,MAAM,EAAmB,CAAG;GAC9B;EACF;CACF,CAAC;AACH"}
|
package/dist/muon/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './use-deallocate-upnl-sig.js';
|
|
2
|
+
export * from './use-force-close-price-sig.js';
|
|
2
3
|
export * from './use-muon-party-a-overview.js';
|
|
3
4
|
export * from './use-muon-price.js';
|
|
4
5
|
export * from './use-muon-price-range.js';
|
|
@@ -8,4 +9,5 @@ export * from './use-muon-upnl-a.js';
|
|
|
8
9
|
export * from './use-muon-upnl-a-with-symbol-price.js';
|
|
9
10
|
export * from './use-muon-upnl-b.js';
|
|
10
11
|
export * from './use-muon-upnl-with-symbol-price.js';
|
|
12
|
+
export * from './use-send-quote-upnl-sig.js';
|
|
11
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/muon/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/muon/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/muon/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ConfigParameter, GetForceClosePriceSigParameters, GetForceClosePriceSigReturnType } from '@symmio/trading-core';
|
|
2
|
+
import { UseMutationResult } from '@tanstack/react-query';
|
|
3
|
+
import { SymmioRequestError } from '../errors/symmio-request-error.js';
|
|
4
|
+
/**
|
|
5
|
+
* Parameters for {@link useForceClosePriceSig}: an optional `config` override.
|
|
6
|
+
* The window bounds, both parties, and the symbol id are passed as the mutation
|
|
7
|
+
* `variables`.
|
|
8
|
+
*/
|
|
9
|
+
export type UseForceClosePriceSigParameters = ConfigParameter;
|
|
10
|
+
/** Return type of {@link useForceClosePriceSig}. */
|
|
11
|
+
export type UseForceClosePriceSigReturnType = UseMutationResult<GetForceClosePriceSigReturnType, SymmioRequestError, GetForceClosePriceSigParameters>;
|
|
12
|
+
/**
|
|
13
|
+
* Fetch a fresh Muon `priceRange` attestation, on demand, assembled into the
|
|
14
|
+
* contract-ready `HighLowPriceSig` that `forceClosePosition` verifies.
|
|
15
|
+
*
|
|
16
|
+
* Modeled as a **mutation** rather than a query: the signature is timestamped
|
|
17
|
+
* and short-lived, so it must be fetched at submit time, not eagerly on mount.
|
|
18
|
+
* Force-close is a majors-only flow. For the raw, un-assembled attestation use
|
|
19
|
+
* {@link useMuonPriceRange} instead.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* const { mutateAsync } = useForceClosePriceSig();
|
|
24
|
+
* const sig = await mutateAsync({
|
|
25
|
+
* partyA,
|
|
26
|
+
* partyB: solverAddress,
|
|
27
|
+
* symbolId: 1n,
|
|
28
|
+
* t0: windowStart,
|
|
29
|
+
* t1: windowEnd,
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function useForceClosePriceSig(parameters?: UseForceClosePriceSigParameters): UseForceClosePriceSigReturnType;
|
|
34
|
+
//# sourceMappingURL=use-force-close-price-sig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-force-close-price-sig.d.ts","sourceRoot":"","sources":["../../src/muon/use-force-close-price-sig.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,EACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIzE;;;;GAIG;AACH,MAAM,MAAM,+BAA+B,GAAG,eAAe,CAAC;AAE9D,oDAAoD;AACpD,MAAM,MAAM,+BAA+B,GAAG,iBAAiB,CAC7D,+BAA+B,EAC/B,kBAAkB,EAClB,+BAA+B,CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,GAAE,+BAAoC,GAC/C,+BAA+B,CAqBjC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useSymmioChainId as e } from "../provider/use-symmio-chain-id.js";
|
|
3
|
+
import { useSymmioConfig as t } from "../provider/use-symmio-config.js";
|
|
4
|
+
import { normalizeSymmError as n } from "../errors/normalize-symm-error.js";
|
|
5
|
+
import { getForceClosePriceSig as r } from "@symmio/trading-core";
|
|
6
|
+
import { useMutation as i } from "@tanstack/react-query";
|
|
7
|
+
//#region src/muon/use-force-close-price-sig.ts
|
|
8
|
+
function a(a = {}) {
|
|
9
|
+
let o = t(a), s = e();
|
|
10
|
+
return i({
|
|
11
|
+
mutationKey: ["getForceClosePriceSig"],
|
|
12
|
+
mutationFn: async (e) => {
|
|
13
|
+
try {
|
|
14
|
+
return await r(o, {
|
|
15
|
+
t0: e.t0,
|
|
16
|
+
t1: e.t1,
|
|
17
|
+
partyA: e.partyA,
|
|
18
|
+
partyB: e.partyB,
|
|
19
|
+
symbolId: e.symbolId,
|
|
20
|
+
chainId: e.chainId ?? s
|
|
21
|
+
});
|
|
22
|
+
} catch (e) {
|
|
23
|
+
throw n(e);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { a as useForceClosePriceSig };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=use-force-close-price-sig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-force-close-price-sig.js","names":[],"sources":["../../src/muon/use-force-close-price-sig.ts"],"sourcesContent":["\"use client\";\n\nimport {\n getForceClosePriceSig,\n type ConfigParameter,\n type GetForceClosePriceSigParameters,\n type GetForceClosePriceSigReturnType,\n} from \"@symmio/trading-core\";\nimport { useMutation, type UseMutationResult } from \"@tanstack/react-query\";\nimport { normalizeSymmError } from \"../errors/normalize-symm-error\";\nimport type { SymmioRequestError } from \"../errors/symmio-request-error\";\nimport { useSymmioChainId } from \"../provider/use-symmio-chain-id\";\nimport { useSymmioConfig } from \"../provider/use-symmio-config\";\n\n/**\n * Parameters for {@link useForceClosePriceSig}: an optional `config` override.\n * The window bounds, both parties, and the symbol id are passed as the mutation\n * `variables`.\n */\nexport type UseForceClosePriceSigParameters = ConfigParameter;\n\n/** Return type of {@link useForceClosePriceSig}. */\nexport type UseForceClosePriceSigReturnType = UseMutationResult<\n GetForceClosePriceSigReturnType,\n SymmioRequestError,\n GetForceClosePriceSigParameters\n>;\n\n/**\n * Fetch a fresh Muon `priceRange` attestation, on demand, assembled into the\n * contract-ready `HighLowPriceSig` that `forceClosePosition` verifies.\n *\n * Modeled as a **mutation** rather than a query: the signature is timestamped\n * and short-lived, so it must be fetched at submit time, not eagerly on mount.\n * Force-close is a majors-only flow. For the raw, un-assembled attestation use\n * {@link useMuonPriceRange} instead.\n *\n * @example\n * ```tsx\n * const { mutateAsync } = useForceClosePriceSig();\n * const sig = await mutateAsync({\n * partyA,\n * partyB: solverAddress,\n * symbolId: 1n,\n * t0: windowStart,\n * t1: windowEnd,\n * });\n * ```\n */\nexport function useForceClosePriceSig(\n parameters: UseForceClosePriceSigParameters = {},\n): UseForceClosePriceSigReturnType {\n const config = useSymmioConfig(parameters);\n const chainId = useSymmioChainId();\n\n return useMutation<GetForceClosePriceSigReturnType, SymmioRequestError, GetForceClosePriceSigParameters>({\n mutationKey: [\"getForceClosePriceSig\"],\n mutationFn: async (variables) => {\n try {\n return await getForceClosePriceSig(config, {\n t0: variables.t0,\n t1: variables.t1,\n partyA: variables.partyA,\n partyB: variables.partyB,\n symbolId: variables.symbolId,\n chainId: variables.chainId ?? chainId,\n });\n } catch (err) {\n throw normalizeSymmError(err);\n }\n },\n });\n}\n"],"mappings":";;;;;;;AAiDA,SAAgB,EACd,IAA8C,CAAC,GACd;CACjC,IAAM,IAAS,EAAgB,CAAU,GACnC,IAAU,EAAiB;CAEjC,OAAO,EAAkG;EACvG,aAAa,CAAC,uBAAuB;EACrC,YAAY,OAAO,MAAc;GAC/B,IAAI;IACF,OAAO,MAAM,EAAsB,GAAQ;KACzC,IAAI,EAAU;KACd,IAAI,EAAU;KACd,QAAQ,EAAU;KAClB,QAAQ,EAAU;KAClB,UAAU,EAAU;KACpB,SAAS,EAAU,WAAW;IAChC,CAAC;GACH,SAAS,GAAK;IACZ,MAAM,EAAmB,CAAG;GAC9B;EACF;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ConfigParameter, GetSendQuoteUpnlSigParameters, GetSendQuoteUpnlSigReturnType } from '@symmio/trading-core';
|
|
2
|
+
import { UseMutationResult } from '@tanstack/react-query';
|
|
3
|
+
import { SymmioRequestError } from '../errors/symmio-request-error.js';
|
|
4
|
+
/**
|
|
5
|
+
* Parameters for {@link useSendQuoteUpnlSig}: an optional `config` override. The
|
|
6
|
+
* partyA and symbol id are passed as the mutation `variables`.
|
|
7
|
+
*/
|
|
8
|
+
export type UseSendQuoteUpnlSigParameters = ConfigParameter;
|
|
9
|
+
/** Return type of {@link useSendQuoteUpnlSig}. */
|
|
10
|
+
export type UseSendQuoteUpnlSigReturnType = UseMutationResult<GetSendQuoteUpnlSigReturnType, SymmioRequestError, GetSendQuoteUpnlSigParameters>;
|
|
11
|
+
/**
|
|
12
|
+
* Fetch a fresh Muon `uPnl_A_withSymbolPrice` attestation, on demand, assembled
|
|
13
|
+
* into the contract-ready `SingleUpnlAndPriceSig` that `sendQuote` takes.
|
|
14
|
+
*
|
|
15
|
+
* Modeled as a **mutation** rather than a query: the signature is timestamped,
|
|
16
|
+
* short-lived, and signed *inside* the quote calldata, so it must be fetched at
|
|
17
|
+
* submit time and never cached across a session. Solvers that enforce Muon
|
|
18
|
+
* verification (Rasa / majors) require it; the lowcap InstantLayer flow signs a
|
|
19
|
+
* placeholder instead, and `useInstantOpen` already fetches this internally for
|
|
20
|
+
* the solvers that need it — reach for this hook only when you drive the quote
|
|
21
|
+
* calldata yourself.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* const { mutateAsync } = useSendQuoteUpnlSig();
|
|
26
|
+
* const upnlSig = await mutateAsync({ partyA: subAccount, symbolId: 1n });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function useSendQuoteUpnlSig(parameters?: UseSendQuoteUpnlSigParameters): UseSendQuoteUpnlSigReturnType;
|
|
30
|
+
//# sourceMappingURL=use-send-quote-upnl-sig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-send-quote-upnl-sig.d.ts","sourceRoot":"","sources":["../../src/muon/use-send-quote-upnl-sig.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIzE;;;GAGG;AACH,MAAM,MAAM,6BAA6B,GAAG,eAAe,CAAC;AAE5D,kDAAkD;AAClD,MAAM,MAAM,6BAA6B,GAAG,iBAAiB,CAC3D,6BAA6B,EAC7B,kBAAkB,EAClB,6BAA6B,CAC9B,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,GAAE,6BAAkC,GAAG,6BAA6B,CAkBjH"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useSymmioChainId as e } from "../provider/use-symmio-chain-id.js";
|
|
3
|
+
import { useSymmioConfig as t } from "../provider/use-symmio-config.js";
|
|
4
|
+
import { normalizeSymmError as n } from "../errors/normalize-symm-error.js";
|
|
5
|
+
import { getSendQuoteUpnlSig as r } from "@symmio/trading-core";
|
|
6
|
+
import { useMutation as i } from "@tanstack/react-query";
|
|
7
|
+
//#region src/muon/use-send-quote-upnl-sig.ts
|
|
8
|
+
function a(a = {}) {
|
|
9
|
+
let o = t(a), s = e();
|
|
10
|
+
return i({
|
|
11
|
+
mutationKey: ["getSendQuoteUpnlSig"],
|
|
12
|
+
mutationFn: async (e) => {
|
|
13
|
+
try {
|
|
14
|
+
return await r(o, {
|
|
15
|
+
partyA: e.partyA,
|
|
16
|
+
symbolId: e.symbolId,
|
|
17
|
+
chainId: e.chainId ?? s
|
|
18
|
+
});
|
|
19
|
+
} catch (e) {
|
|
20
|
+
throw n(e);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { a as useSendQuoteUpnlSig };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=use-send-quote-upnl-sig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-send-quote-upnl-sig.js","names":[],"sources":["../../src/muon/use-send-quote-upnl-sig.ts"],"sourcesContent":["\"use client\";\n\nimport {\n getSendQuoteUpnlSig,\n type ConfigParameter,\n type GetSendQuoteUpnlSigParameters,\n type GetSendQuoteUpnlSigReturnType,\n} from \"@symmio/trading-core\";\nimport { useMutation, type UseMutationResult } from \"@tanstack/react-query\";\nimport { normalizeSymmError } from \"../errors/normalize-symm-error\";\nimport type { SymmioRequestError } from \"../errors/symmio-request-error\";\nimport { useSymmioChainId } from \"../provider/use-symmio-chain-id\";\nimport { useSymmioConfig } from \"../provider/use-symmio-config\";\n\n/**\n * Parameters for {@link useSendQuoteUpnlSig}: an optional `config` override. The\n * partyA and symbol id are passed as the mutation `variables`.\n */\nexport type UseSendQuoteUpnlSigParameters = ConfigParameter;\n\n/** Return type of {@link useSendQuoteUpnlSig}. */\nexport type UseSendQuoteUpnlSigReturnType = UseMutationResult<\n GetSendQuoteUpnlSigReturnType,\n SymmioRequestError,\n GetSendQuoteUpnlSigParameters\n>;\n\n/**\n * Fetch a fresh Muon `uPnl_A_withSymbolPrice` attestation, on demand, assembled\n * into the contract-ready `SingleUpnlAndPriceSig` that `sendQuote` takes.\n *\n * Modeled as a **mutation** rather than a query: the signature is timestamped,\n * short-lived, and signed *inside* the quote calldata, so it must be fetched at\n * submit time and never cached across a session. Solvers that enforce Muon\n * verification (Rasa / majors) require it; the lowcap InstantLayer flow signs a\n * placeholder instead, and `useInstantOpen` already fetches this internally for\n * the solvers that need it — reach for this hook only when you drive the quote\n * calldata yourself.\n *\n * @example\n * ```tsx\n * const { mutateAsync } = useSendQuoteUpnlSig();\n * const upnlSig = await mutateAsync({ partyA: subAccount, symbolId: 1n });\n * ```\n */\nexport function useSendQuoteUpnlSig(parameters: UseSendQuoteUpnlSigParameters = {}): UseSendQuoteUpnlSigReturnType {\n const config = useSymmioConfig(parameters);\n const chainId = useSymmioChainId();\n\n return useMutation<GetSendQuoteUpnlSigReturnType, SymmioRequestError, GetSendQuoteUpnlSigParameters>({\n mutationKey: [\"getSendQuoteUpnlSig\"],\n mutationFn: async (variables) => {\n try {\n return await getSendQuoteUpnlSig(config, {\n partyA: variables.partyA,\n symbolId: variables.symbolId,\n chainId: variables.chainId ?? chainId,\n });\n } catch (err) {\n throw normalizeSymmError(err);\n }\n },\n });\n}\n"],"mappings":";;;;;;;AA6CA,SAAgB,EAAoB,IAA4C,CAAC,GAAkC;CACjH,IAAM,IAAS,EAAgB,CAAU,GACnC,IAAU,EAAiB;CAEjC,OAAO,EAA8F;EACnG,aAAa,CAAC,qBAAqB;EACnC,YAAY,OAAO,MAAc;GAC/B,IAAI;IACF,OAAO,MAAM,EAAoB,GAAQ;KACvC,QAAQ,EAAU;KAClB,UAAU,EAAU;KACpB,SAAS,EAAU,WAAW;IAChC,CAAC;GACH,SAAS,GAAK;IACZ,MAAM,EAAmB,CAAG;GAC9B;EACF;CACF,CAAC;AACH"}
|