@orderly.network/hooks 1.2.0 → 1.3.2
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/esm/configProvider.d.ts +7 -1
- package/esm/configProvider.d.ts.map +1 -1
- package/esm/configProvider.js +44 -18
- package/esm/configProvider.js.map +1 -0
- package/esm/dataProvider.js +24 -19
- package/esm/dataProvider.js.map +1 -0
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4 -1
- package/esm/index.js.map +1 -0
- package/esm/middleware/signatureMiddleware.js +9 -8
- package/esm/middleware/signatureMiddleware.js.map +1 -0
- package/esm/orderly/orderbook.service.js +39 -28
- package/esm/orderly/orderbook.service.js.map +1 -0
- package/esm/orderly/orderlyHooks.d.ts +3 -0
- package/esm/orderly/orderlyHooks.d.ts.map +1 -1
- package/esm/orderly/orderlyHooks.js +2 -0
- package/esm/orderly/orderlyHooks.js.map +1 -0
- package/esm/orderly/useAccountInfo.js +3 -1
- package/esm/orderly/useAccountInfo.js.map +1 -0
- package/esm/orderly/useChain.js +16 -9
- package/esm/orderly/useChain.js.map +1 -0
- package/esm/orderly/useChains.d.ts +11 -12
- package/esm/orderly/useChains.d.ts.map +1 -1
- package/esm/orderly/useChains.js +68 -46
- package/esm/orderly/useChains.js.map +1 -0
- package/esm/orderly/useCollateral.d.ts +3 -4
- package/esm/orderly/useCollateral.d.ts.map +1 -1
- package/esm/orderly/useCollateral.js +53 -20
- package/esm/orderly/useCollateral.js.map +1 -0
- package/esm/orderly/useDeposit.js +123 -125
- package/esm/orderly/useDeposit.js.map +1 -0
- package/esm/orderly/useFundingRate.js +14 -13
- package/esm/orderly/useFundingRate.js.map +1 -0
- package/esm/orderly/useFundingRates.js +6 -4
- package/esm/orderly/useFundingRates.js.map +1 -0
- package/esm/orderly/useHoldingStream.js +19 -15
- package/esm/orderly/useHoldingStream.js.map +1 -0
- package/esm/orderly/useIndexPrice.js +7 -5
- package/esm/orderly/useIndexPrice.js.map +1 -0
- package/esm/orderly/useLeverage.js +9 -12
- package/esm/orderly/useLeverage.js.map +1 -0
- package/esm/orderly/useMarginRatio.js +27 -13
- package/esm/orderly/useMarginRatio.js.map +1 -0
- package/esm/orderly/useMarkPrice.js +13 -7
- package/esm/orderly/useMarkPrice.js.map +1 -0
- package/esm/orderly/useMarkPricesStream.d.ts +1 -1
- package/esm/orderly/useMarkPricesStream.d.ts.map +1 -1
- package/esm/orderly/useMarkPricesStream.js +9 -8
- package/esm/orderly/useMarkPricesStream.js.map +1 -0
- package/esm/orderly/useMarketTradeStream.js +33 -18
- package/esm/orderly/useMarketTradeStream.js.map +1 -0
- package/esm/orderly/useMarkets.js +144 -81
- package/esm/orderly/useMarkets.js.map +1 -0
- package/esm/orderly/useMarketsStream.js +23 -28
- package/esm/orderly/useMarketsStream.js.map +1 -0
- package/esm/orderly/useMaxQty.d.ts +6 -0
- package/esm/orderly/useMaxQty.d.ts.map +1 -1
- package/esm/orderly/useMaxQty.js +26 -18
- package/esm/orderly/useMaxQty.js.map +1 -0
- package/esm/orderly/useOpenInterest.js +7 -5
- package/esm/orderly/useOpenInterest.js.map +1 -0
- package/esm/orderly/useOrderEntry.js +182 -160
- package/esm/orderly/useOrderEntry.js.map +1 -0
- package/esm/orderly/useOrderStream.js +85 -66
- package/esm/orderly/useOrderStream.js.map +1 -0
- package/esm/orderly/useOrderbookStream.d.ts +2 -3
- package/esm/orderly/useOrderbookStream.d.ts.map +1 -1
- package/esm/orderly/useOrderbookStream.js +173 -103
- package/esm/orderly/useOrderbookStream.js.map +1 -0
- package/esm/orderly/usePositionStream.js +82 -62
- package/esm/orderly/usePositionStream.js.map +1 -0
- package/esm/orderly/usePrivateDataObserver.js +55 -48
- package/esm/orderly/usePrivateDataObserver.js.map +1 -0
- package/esm/orderly/useSettleSubscription.js +8 -6
- package/esm/orderly/useSettleSubscription.js.map +1 -0
- package/esm/orderly/useSymbolPriceRange.js +14 -8
- package/esm/orderly/useSymbolPriceRange.js.map +1 -0
- package/esm/orderly/useSymbolsInfo.js +7 -5
- package/esm/orderly/useSymbolsInfo.js.map +1 -0
- package/esm/orderly/useTickerStream.d.ts +5 -1
- package/esm/orderly/useTickerStream.d.ts.map +1 -1
- package/esm/orderly/useTickerStream.js +26 -29
- package/esm/orderly/useTickerStream.js.map +1 -0
- package/esm/orderly/useWalletSubscription.js +8 -6
- package/esm/orderly/useWalletSubscription.js.map +1 -0
- package/esm/orderly/useWithdraw.js +19 -11
- package/esm/orderly/useWithdraw.js.map +1 -0
- package/esm/orderlyContext.d.ts +8 -1
- package/esm/orderlyContext.d.ts.map +1 -1
- package/esm/orderlyContext.js +2 -1
- package/esm/orderlyContext.js.map +1 -0
- package/esm/services/dataCenter.js +10 -8
- package/esm/services/dataCenter.js.map +1 -0
- package/esm/services/painter/backgroundPaint.js +11 -14
- package/esm/services/painter/backgroundPaint.js.map +1 -0
- package/esm/services/painter/basePaint.js +5 -1
- package/esm/services/painter/basePaint.js.map +1 -0
- package/esm/services/painter/dataPaint.js +53 -50
- package/esm/services/painter/dataPaint.js.map +1 -0
- package/esm/services/painter/layout.config.js +15 -13
- package/esm/services/painter/layout.config.js.map +1 -0
- package/esm/services/painter/painter.js +14 -13
- package/esm/services/painter/painter.js.map +1 -0
- package/esm/services/painter/resource.js +6 -4
- package/esm/services/painter/resource.js.map +1 -0
- package/esm/statusProvider.js +10 -3
- package/esm/statusProvider.js.map +1 -0
- package/esm/unuse/apiPrefixMiddleware.js +18 -16
- package/esm/unuse/apiPrefixMiddleware.js.map +1 -0
- package/esm/unuse/fn.js +3 -1
- package/esm/unuse/fn.js.map +1 -0
- package/esm/unuse/useBalance.js +6 -4
- package/esm/unuse/useBalance.js.map +1 -0
- package/esm/unuse/useFetures.js +26 -18
- package/esm/unuse/useFetures.js.map +1 -0
- package/esm/unuse/useRunOnce.js +10 -7
- package/esm/unuse/useRunOnce.js.map +1 -0
- package/esm/unuse/useSyncEnd.js +5 -4
- package/esm/unuse/useSyncEnd.js.map +1 -0
- package/esm/unuse/useTokenInfo.js +7 -5
- package/esm/unuse/useTokenInfo.js.map +1 -0
- package/esm/unuse/useUnsettlementPnL.js +7 -3
- package/esm/unuse/useUnsettlementPnL.js.map +1 -0
- package/esm/useAccount.js +18 -21
- package/esm/useAccount.js.map +1 -0
- package/esm/useAccountInstance.js +6 -7
- package/esm/useAccountInstance.js.map +1 -0
- package/esm/useBoolean.js +14 -5
- package/esm/useBoolean.js.map +1 -0
- package/esm/useConfig.js +3 -1
- package/esm/useConfig.js.map +1 -0
- package/esm/useEventEmitter.js +4 -2
- package/esm/useEventEmitter.js.map +1 -0
- package/esm/useLazyQuery.js +6 -7
- package/esm/useLazyQuery.js.map +1 -0
- package/esm/useLocalStorage.js +30 -20
- package/esm/useLocalStorage.js.map +1 -0
- package/esm/useMediaQuery.js +11 -9
- package/esm/useMediaQuery.js.map +1 -0
- package/esm/useMutation.js +26 -37
- package/esm/useMutation.js.map +1 -0
- package/esm/useObserve.js +4 -4
- package/esm/useObserve.js.map +1 -0
- package/esm/useParamsCheck.js +8 -10
- package/esm/useParamsCheck.js.map +1 -0
- package/esm/usePoster.js +56 -45
- package/esm/usePoster.js.map +1 -0
- package/esm/usePreloadData.js +9 -5
- package/esm/usePreloadData.js.map +1 -0
- package/esm/usePrivateInfiniteQuery.js +15 -9
- package/esm/usePrivateInfiniteQuery.js.map +1 -0
- package/esm/usePrivateQuery.js +15 -8
- package/esm/usePrivateQuery.js.map +1 -0
- package/esm/useQuery.js +6 -5
- package/esm/useQuery.js.map +1 -0
- package/esm/useSessionStorage.js +28 -19
- package/esm/useSessionStorage.js.map +1 -0
- package/esm/useWS.js +15 -13
- package/esm/useWS.js.map +1 -0
- package/esm/useWsStatus.js +12 -12
- package/esm/useWsStatus.js.map +1 -0
- package/esm/utils/createGetter.js +8 -8
- package/esm/utils/createGetter.js.map +1 -0
- package/esm/utils/createOrder.d.ts +1 -0
- package/esm/utils/createOrder.d.ts.map +1 -1
- package/esm/utils/createOrder.js +59 -43
- package/esm/utils/createOrder.js.map +1 -0
- package/esm/utils/dev.js +6 -4
- package/esm/utils/dev.js.map +1 -0
- package/esm/utils/fetcher.js +3 -1
- package/esm/utils/fetcher.js.map +1 -0
- package/esm/utils/json.js +3 -2
- package/esm/utils/json.js.map +1 -0
- package/esm/utils/orderEntryHelper.js +92 -63
- package/esm/utils/orderEntryHelper.js.map +1 -0
- package/esm/utils/parseHolding.js +10 -6
- package/esm/utils/parseHolding.js.map +1 -0
- package/esm/utils/swr.js +114 -104
- package/esm/utils/swr.js.map +1 -0
- package/esm/version.d.ts +1 -1
- package/esm/version.js +4 -3
- package/esm/version.js.map +1 -0
- package/esm/walletConnectorContext.js +4 -2
- package/esm/walletConnectorContext.js.map +1 -0
- package/lib/configProvider.d.ts +7 -1
- package/lib/configProvider.d.ts.map +1 -1
- package/lib/configProvider.js +108 -56
- package/lib/configProvider.js.map +1 -0
- package/lib/dataProvider.js +50 -29
- package/lib/dataProvider.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +191 -88
- package/lib/index.js.map +1 -0
- package/lib/middleware/signatureMiddleware.js +22 -15
- package/lib/middleware/signatureMiddleware.js.map +1 -0
- package/lib/orderly/orderbook.service.js +59 -33
- package/lib/orderly/orderbook.service.js.map +1 -0
- package/lib/orderly/orderlyHooks.d.ts +3 -0
- package/lib/orderly/orderlyHooks.d.ts.map +1 -1
- package/lib/orderly/orderlyHooks.js +124 -57
- package/lib/orderly/orderlyHooks.js.map +1 -0
- package/lib/orderly/useAccountInfo.js +14 -6
- package/lib/orderly/useAccountInfo.js.map +1 -0
- package/lib/orderly/useChain.js +30 -17
- package/lib/orderly/useChain.js.map +1 -0
- package/lib/orderly/useChains.d.ts +11 -12
- package/lib/orderly/useChains.d.ts.map +1 -1
- package/lib/orderly/useChains.js +100 -59
- package/lib/orderly/useChains.js.map +1 -0
- package/lib/orderly/useCollateral.d.ts +3 -4
- package/lib/orderly/useCollateral.d.ts.map +1 -1
- package/lib/orderly/useCollateral.js +81 -42
- package/lib/orderly/useCollateral.js.map +1 -0
- package/lib/orderly/useDeposit.js +154 -150
- package/lib/orderly/useDeposit.js.map +1 -0
- package/lib/orderly/useFundingRate.js +29 -22
- package/lib/orderly/useFundingRate.js.map +1 -0
- package/lib/orderly/useFundingRates.js +19 -11
- package/lib/orderly/useFundingRates.js.map +1 -0
- package/lib/orderly/useHoldingStream.js +39 -27
- package/lib/orderly/useHoldingStream.js.map +1 -0
- package/lib/orderly/useIndexPrice.js +24 -14
- package/lib/orderly/useIndexPrice.js.map +1 -0
- package/lib/orderly/useLeverage.js +27 -24
- package/lib/orderly/useLeverage.js.map +1 -0
- package/lib/orderly/useMarginRatio.js +49 -29
- package/lib/orderly/useMarginRatio.js.map +1 -0
- package/lib/orderly/useMarkPrice.js +26 -15
- package/lib/orderly/useMarkPrice.js.map +1 -0
- package/lib/orderly/useMarkPricesStream.d.ts +1 -1
- package/lib/orderly/useMarkPricesStream.d.ts.map +1 -1
- package/lib/orderly/useMarkPricesStream.js +26 -17
- package/lib/orderly/useMarkPricesStream.js.map +1 -0
- package/lib/orderly/useMarketTradeStream.js +47 -26
- package/lib/orderly/useMarketTradeStream.js.map +1 -0
- package/lib/orderly/useMarkets.js +172 -95
- package/lib/orderly/useMarkets.js.map +1 -0
- package/lib/orderly/useMarketsStream.js +44 -41
- package/lib/orderly/useMarketsStream.js.map +1 -0
- package/lib/orderly/useMaxQty.d.ts +6 -0
- package/lib/orderly/useMaxQty.d.ts.map +1 -1
- package/lib/orderly/useMaxQty.js +52 -43
- package/lib/orderly/useMaxQty.js.map +1 -0
- package/lib/orderly/useOpenInterest.js +24 -14
- package/lib/orderly/useOpenInterest.js.map +1 -0
- package/lib/orderly/useOrderEntry.js +238 -210
- package/lib/orderly/useOrderEntry.js.map +1 -0
- package/lib/orderly/useOrderStream.js +111 -84
- package/lib/orderly/useOrderStream.js.map +1 -0
- package/lib/orderly/useOrderbookStream.d.ts +2 -3
- package/lib/orderly/useOrderbookStream.d.ts.map +1 -1
- package/lib/orderly/useOrderbookStream.js +227 -148
- package/lib/orderly/useOrderbookStream.js.map +1 -0
- package/lib/orderly/usePositionStream.js +134 -100
- package/lib/orderly/usePositionStream.js.map +1 -0
- package/lib/orderly/usePrivateDataObserver.js +76 -63
- package/lib/orderly/usePrivateDataObserver.js.map +1 -0
- package/lib/orderly/useSettleSubscription.js +25 -15
- package/lib/orderly/useSettleSubscription.js.map +1 -0
- package/lib/orderly/useSymbolPriceRange.js +29 -23
- package/lib/orderly/useSymbolPriceRange.js.map +1 -0
- package/lib/orderly/useSymbolsInfo.js +23 -15
- package/lib/orderly/useSymbolsInfo.js.map +1 -0
- package/lib/orderly/useTickerStream.d.ts +5 -1
- package/lib/orderly/useTickerStream.d.ts.map +1 -1
- package/lib/orderly/useTickerStream.js +51 -48
- package/lib/orderly/useTickerStream.js.map +1 -0
- package/lib/orderly/useWalletSubscription.js +25 -15
- package/lib/orderly/useWalletSubscription.js.map +1 -0
- package/lib/orderly/useWithdraw.js +36 -22
- package/lib/orderly/useWithdraw.js.map +1 -0
- package/lib/orderlyContext.d.ts +8 -1
- package/lib/orderlyContext.d.ts.map +1 -1
- package/lib/orderlyContext.js +22 -6
- package/lib/orderlyContext.js.map +1 -0
- package/lib/services/dataCenter.js +15 -11
- package/lib/services/dataCenter.js.map +1 -0
- package/lib/services/painter/backgroundPaint.js +21 -18
- package/lib/services/painter/backgroundPaint.js.map +1 -0
- package/lib/services/painter/basePaint.js +14 -4
- package/lib/services/painter/basePaint.js.map +1 -0
- package/lib/services/painter/dataPaint.js +67 -58
- package/lib/services/painter/dataPaint.js.map +1 -0
- package/lib/services/painter/layout.config.js +25 -16
- package/lib/services/painter/layout.config.js.map +1 -0
- package/lib/services/painter/painter.js +27 -20
- package/lib/services/painter/painter.js.map +1 -0
- package/lib/services/painter/resource.js +15 -7
- package/lib/services/painter/resource.js.map +1 -0
- package/lib/statusProvider.js +31 -10
- package/lib/statusProvider.js.map +1 -0
- package/lib/unuse/apiPrefixMiddleware.js +30 -22
- package/lib/unuse/apiPrefixMiddleware.js.map +1 -0
- package/lib/unuse/fn.js +14 -5
- package/lib/unuse/fn.js.map +1 -0
- package/lib/unuse/useBalance.js +23 -13
- package/lib/unuse/useBalance.js.map +1 -0
- package/lib/unuse/useFetures.js +41 -28
- package/lib/unuse/useFetures.js.map +1 -0
- package/lib/unuse/useRunOnce.js +61 -11
- package/lib/unuse/useRunOnce.js.map +1 -0
- package/lib/unuse/useSyncEnd.js +17 -10
- package/lib/unuse/useSyncEnd.js.map +1 -0
- package/lib/unuse/useTokenInfo.js +20 -12
- package/lib/unuse/useTokenInfo.js.map +1 -0
- package/lib/unuse/useUnsettlementPnL.js +21 -11
- package/lib/unuse/useUnsettlementPnL.js.map +1 -0
- package/lib/useAccount.js +32 -29
- package/lib/useAccount.js.map +1 -0
- package/lib/useAccountInstance.js +27 -20
- package/lib/useAccountInstance.js.map +1 -0
- package/lib/useBoolean.js +25 -10
- package/lib/useBoolean.js.map +1 -0
- package/lib/useConfig.js +15 -7
- package/lib/useConfig.js.map +1 -0
- package/lib/useEventEmitter.js +23 -13
- package/lib/useEventEmitter.js.map +1 -0
- package/lib/useLazyQuery.js +25 -23
- package/lib/useLazyQuery.js.map +1 -0
- package/lib/useLocalStorage.js +44 -28
- package/lib/useLocalStorage.js.map +1 -0
- package/lib/useMediaQuery.js +22 -14
- package/lib/useMediaQuery.js.map +1 -0
- package/lib/useMutation.js +47 -52
- package/lib/useMutation.js.map +1 -0
- package/lib/useObserve.js +22 -8
- package/lib/useObserve.js.map +1 -0
- package/lib/useParamsCheck.js +18 -14
- package/lib/useParamsCheck.js.map +1 -0
- package/lib/usePoster.js +80 -74
- package/lib/usePoster.js.map +1 -0
- package/lib/usePreloadData.js +21 -11
- package/lib/usePreloadData.js.map +1 -0
- package/lib/usePrivateInfiniteQuery.js +36 -22
- package/lib/usePrivateInfiniteQuery.js.map +1 -0
- package/lib/usePrivateQuery.js +35 -25
- package/lib/usePrivateQuery.js.map +1 -0
- package/lib/useQuery.js +24 -20
- package/lib/useQuery.js.map +1 -0
- package/lib/useSessionStorage.js +41 -26
- package/lib/useSessionStorage.js.map +1 -0
- package/lib/useWS.js +42 -32
- package/lib/useWS.js.map +1 -0
- package/lib/useWsStatus.js +34 -20
- package/lib/useWsStatus.js.map +1 -0
- package/lib/utils/createGetter.js +19 -14
- package/lib/utils/createGetter.js.map +1 -0
- package/lib/utils/createOrder.d.ts +1 -0
- package/lib/utils/createOrder.d.ts.map +1 -1
- package/lib/utils/createOrder.js +133 -82
- package/lib/utils/createOrder.js.map +1 -0
- package/lib/utils/dev.js +13 -9
- package/lib/utils/dev.js.map +1 -0
- package/lib/utils/fetcher.js +13 -5
- package/lib/utils/fetcher.js.map +1 -0
- package/lib/utils/json.js +12 -5
- package/lib/utils/json.js.map +1 -0
- package/lib/utils/orderEntryHelper.js +125 -82
- package/lib/utils/orderEntryHelper.js.map +1 -0
- package/lib/utils/parseHolding.js +19 -9
- package/lib/utils/parseHolding.js.map +1 -0
- package/lib/utils/swr.js +134 -111
- package/lib/utils/swr.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +13 -4
- package/lib/version.js.map +1 -0
- package/lib/walletConnectorContext.js +23 -7
- package/lib/walletConnectorContext.js.map +1 -0
- package/package.json +17 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChains.d.ts","sourceRoot":"","sources":["../../src/orderly/useChains.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useChains.d.ts","sourceRoot":"","sources":["../../src/orderly/useChains.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,GAAG,EAER,KAAK,IAAI,SAAS,EACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAOvC,MAAM,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG;IAC9B,WAAW,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,MAAM,CAChB,CAAC,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EAC3C,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GAAG,SAAS,GAAG,SAAS,IAC/C,CAAC,SAAS,SAAS,GACnB,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GACd,GAAG,CAAC,KAAK,EAAE,GACb,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GACzB;IACE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;CACzB,GACD;IACE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;CACtB,CAAC;AAEN,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,aAAa,CAAC;CACjD,GAAG,gBAAgB,CAAC;AAErB,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,KAAK,GAAG,SAAS,CAAC;IACtE,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF,wBAAgB,SAAS,CACvB,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,GAClB,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAEzD,wBAAgB,SAAS,CACvB,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,CAAC,SAAS,gBAAgB,GAAG,SAAS,EAEtC,SAAS,CAAC,EAAE,CAAC,EACb,OAAO,CAAC,EAAE,CAAC,GACV;IACD,MAAM,CACJ,CAAC,EACD,CAAC,SAAS,gBAAgB,GACtB,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GAC/B,CAAC,CAAC,MAAM,CAAC,GACT,SAAS,GACX,SAAS,CACd;IACD,qBAAqB;CACtB,CAAC;AAoIF,uDAAuD;AACvD,wBAAgB,cAAc,CAC5B,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,EACpB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,eAmCjC;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,EACnB,UAAU,EAAE,GAAG,EACf,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,eAkCjC;AAED,wDAAwD;AACxD,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,EACvB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,GAAG,CAAC,KAAK,QAUjB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,EACnB,aAAa,CAAC,EAAE,SAAS,EAAE,eAY5B"}
|
package/esm/orderly/useChains.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { chainsInfoMap } from "@orderly.network/types";
|
|
2
|
-
import { useCallback, useMemo, useRef } from "react";
|
|
2
|
+
import { useCallback, useContext, useMemo, useRef } from "react";
|
|
3
3
|
import { useQuery } from "../useQuery";
|
|
4
4
|
import { prop } from "ramda";
|
|
5
5
|
import { isTestnet } from "@orderly.network/utils";
|
|
6
6
|
import { TestnetChains, nativeTokenAddress } from "@orderly.network/types";
|
|
7
|
+
import { OrderlyContext } from "../orderlyContext";
|
|
7
8
|
export function useChains(networkId, options = {}) {
|
|
8
9
|
const { pick: pickField, ...swrOptions } = options;
|
|
10
|
+
const { filteredChains: allowedChains } = useContext(OrderlyContext);
|
|
9
11
|
const filterFun = useRef(options?.filter);
|
|
10
12
|
filterFun.current = options?.filter;
|
|
11
13
|
const chainsMap = useRef(new Map());
|
|
@@ -16,44 +18,52 @@ export function useChains(networkId, options = {}) {
|
|
|
16
18
|
// If false, undefined data gets cached against the key.
|
|
17
19
|
revalidateOnMount: true,
|
|
18
20
|
// dont duplicate a request w/ same key for 1hr
|
|
19
|
-
dedupingInterval:
|
|
20
|
-
...swrOptions
|
|
21
|
+
dedupingInterval: 3_600_000,
|
|
22
|
+
...swrOptions
|
|
21
23
|
};
|
|
22
24
|
// only prod env return mainnet chains info
|
|
23
25
|
// TODO: remove https://api-evm.orderly.org api base
|
|
24
|
-
const { data: tokenChains, error: tokenError } = useQuery("https://api-evm.orderly.org/v1/public/token", {
|
|
26
|
+
const { data: tokenChains, error: tokenError } = useQuery("https://api-evm.orderly.org/v1/public/token", {
|
|
27
|
+
...commonSwrOpts
|
|
28
|
+
});
|
|
25
29
|
// only prod env return mainnet chains info
|
|
26
|
-
const { data: chainInfos, error: chainInfoErr } = useQuery("/v1/public/chain_info", {
|
|
27
|
-
|
|
30
|
+
const { data: chainInfos, error: chainInfoErr } = useQuery("/v1/public/chain_info", {
|
|
31
|
+
...commonSwrOpts
|
|
32
|
+
});
|
|
33
|
+
const chains = useMemo(()=>{
|
|
28
34
|
const orderlyChainsArr = fillChainsInfo(tokenChains, filterFun.current);
|
|
29
|
-
let testnetArr = [
|
|
30
|
-
|
|
35
|
+
let testnetArr = [
|
|
36
|
+
...TestnetChains
|
|
37
|
+
];
|
|
38
|
+
orderlyChainsArr?.forEach((item)=>{
|
|
31
39
|
const chainId = item.network_infos?.chain_id;
|
|
32
40
|
chainsMap.current.set(chainId, item);
|
|
33
41
|
updateTestnetInfo(testnetArr, chainId, item);
|
|
34
42
|
});
|
|
35
|
-
testnetArr.forEach((chain)
|
|
43
|
+
testnetArr.forEach((chain)=>{
|
|
36
44
|
chainsMap.current.set(chain.network_infos?.chain_id, chain);
|
|
37
45
|
});
|
|
38
46
|
let mainnetArr = [];
|
|
39
47
|
// TODO: /v1/public/chain_info api data is not match /v1/public/token api data, so it can effect is prod
|
|
40
48
|
mainnetArr = updateOrderlyChains(orderlyChainsArr, chainInfos, filterFun.current);
|
|
41
|
-
mainnetArr.forEach((item)
|
|
49
|
+
mainnetArr.forEach((item)=>{
|
|
42
50
|
const chainId = item.network_infos?.chain_id;
|
|
43
51
|
chainsMap.current.set(chainId, item);
|
|
44
52
|
updateTestnetInfo(testnetArr, chainId, item);
|
|
45
53
|
});
|
|
46
|
-
mainnetArr.sort((a, b)
|
|
54
|
+
mainnetArr.sort((a, b)=>{
|
|
47
55
|
return a.network_infos.bridgeless ? -1 : 1;
|
|
48
56
|
});
|
|
49
|
-
testnetArr.sort((a, b)
|
|
57
|
+
testnetArr.sort((a, b)=>{
|
|
50
58
|
return a.network_infos.bridgeless ? -1 : 1;
|
|
51
59
|
});
|
|
60
|
+
mainnetArr = filterByAllowedChains(mainnetArr, allowedChains?.mainnet);
|
|
61
|
+
testnetArr = filterByAllowedChains(testnetArr, allowedChains?.testnet);
|
|
52
62
|
if (!!pickField) {
|
|
53
63
|
//@ts-ignore
|
|
54
|
-
testnetArr = testnetArr.map((item)
|
|
64
|
+
testnetArr = testnetArr.map((item)=>item[pickField]);
|
|
55
65
|
//@ts-ignore
|
|
56
|
-
mainnetArr = mainnetArr.map((item)
|
|
66
|
+
mainnetArr = mainnetArr.map((item)=>item[pickField]);
|
|
57
67
|
}
|
|
58
68
|
if (networkId === "mainnet") {
|
|
59
69
|
return mainnetArr;
|
|
@@ -63,36 +73,42 @@ export function useChains(networkId, options = {}) {
|
|
|
63
73
|
}
|
|
64
74
|
return {
|
|
65
75
|
testnet: testnetArr,
|
|
66
|
-
mainnet: mainnetArr
|
|
76
|
+
mainnet: mainnetArr
|
|
67
77
|
};
|
|
68
|
-
}, [
|
|
69
|
-
|
|
78
|
+
}, [
|
|
79
|
+
networkId,
|
|
80
|
+
tokenChains,
|
|
81
|
+
chainInfos,
|
|
82
|
+
pickField,
|
|
83
|
+
allowedChains
|
|
84
|
+
]);
|
|
85
|
+
const findByChainId = useCallback((chainId, field)=>{
|
|
70
86
|
const chain = chainsMap.current.get(chainId);
|
|
71
87
|
if (chain) {
|
|
72
|
-
chain.nativeToken =
|
|
73
|
-
chain.
|
|
74
|
-
|
|
75
|
-
symbol: chain.network_infos?.currency_symbol,
|
|
76
|
-
};
|
|
88
|
+
chain.nativeToken = chain.token_infos?.find((item)=>item.address === nativeTokenAddress) || {
|
|
89
|
+
symbol: chain.network_infos?.currency_symbol
|
|
90
|
+
};
|
|
77
91
|
}
|
|
78
92
|
if (typeof field === "string") {
|
|
79
93
|
return prop(field, chain);
|
|
80
94
|
}
|
|
81
95
|
return chain;
|
|
82
|
-
}, [
|
|
96
|
+
}, [
|
|
97
|
+
chains,
|
|
98
|
+
chainsMap
|
|
99
|
+
]);
|
|
83
100
|
return [
|
|
84
101
|
chains,
|
|
85
102
|
{
|
|
86
103
|
findByChainId,
|
|
87
|
-
error: tokenError
|
|
88
|
-
}
|
|
104
|
+
error: tokenError
|
|
105
|
+
}
|
|
89
106
|
];
|
|
90
107
|
}
|
|
91
|
-
/** orderly chains array form (/v1/public/token) api */
|
|
92
|
-
export function fillChainsInfo(chains, filter) {
|
|
108
|
+
/** orderly chains array form (/v1/public/token) api */ export function fillChainsInfo(chains, filter) {
|
|
93
109
|
let _chains = [];
|
|
94
|
-
chains?.forEach((item)
|
|
95
|
-
item.chain_details.forEach((chain)
|
|
110
|
+
chains?.forEach((item)=>{
|
|
111
|
+
item.chain_details.forEach((chain)=>{
|
|
96
112
|
const chainId = Number(chain.chain_id);
|
|
97
113
|
const chainInfo = chainsInfoMap.get(chainId);
|
|
98
114
|
const _chain = {
|
|
@@ -101,31 +117,31 @@ export function fillChainsInfo(chains, filter) {
|
|
|
101
117
|
chain_id: chainId,
|
|
102
118
|
withdrawal_fee: chain.withdrawal_fee,
|
|
103
119
|
cross_chain_withdrawal_fee: chain.cross_chain_withdrawal_fee,
|
|
104
|
-
bridgeless: true
|
|
120
|
+
bridgeless: true
|
|
105
121
|
},
|
|
106
122
|
token_infos: [
|
|
107
123
|
{
|
|
108
124
|
symbol: item.token,
|
|
109
125
|
address: chain.contract_address,
|
|
110
|
-
decimals: chain.decimals
|
|
111
|
-
}
|
|
112
|
-
]
|
|
126
|
+
decimals: chain.decimals
|
|
127
|
+
}
|
|
128
|
+
]
|
|
113
129
|
};
|
|
114
130
|
if (typeof filter === "function") {
|
|
115
|
-
if (!filter(_chain))
|
|
116
|
-
return;
|
|
131
|
+
if (!filter(_chain)) return;
|
|
117
132
|
}
|
|
118
133
|
_chains.push(_chain);
|
|
119
134
|
});
|
|
120
135
|
});
|
|
121
136
|
return _chains;
|
|
122
137
|
}
|
|
123
|
-
/** update network_infos by chain_info api(v1/public/chain_info) */
|
|
124
|
-
export function updateOrderlyChains(chains, chainInfos, filter) {
|
|
138
|
+
/** update network_infos by chain_info api(v1/public/chain_info) */ export function updateOrderlyChains(chains, chainInfos, filter) {
|
|
125
139
|
const _chains = [];
|
|
126
|
-
chains.forEach((chain)
|
|
127
|
-
let _chain = {
|
|
128
|
-
|
|
140
|
+
chains.forEach((chain)=>{
|
|
141
|
+
let _chain = {
|
|
142
|
+
...chain
|
|
143
|
+
};
|
|
144
|
+
const networkInfo = chainInfos?.find((item)=>item.chain_id == chain.network_infos.chain_id);
|
|
129
145
|
if (networkInfo) {
|
|
130
146
|
const { name, public_rpc_url, currency_symbol, explorer_base_url } = networkInfo;
|
|
131
147
|
_chain.network_infos = {
|
|
@@ -137,23 +153,29 @@ export function updateOrderlyChains(chains, chainInfos, filter) {
|
|
|
137
153
|
bridge_enable: true,
|
|
138
154
|
mainnet: true,
|
|
139
155
|
explorer_base_url,
|
|
140
|
-
est_txn_mins: null
|
|
156
|
+
est_txn_mins: null
|
|
141
157
|
};
|
|
142
158
|
}
|
|
143
159
|
if (typeof filter === "function") {
|
|
144
|
-
if (!filter(_chain))
|
|
145
|
-
return;
|
|
160
|
+
if (!filter(_chain)) return;
|
|
146
161
|
}
|
|
147
162
|
_chains.push(_chain);
|
|
148
163
|
});
|
|
149
164
|
return _chains;
|
|
150
165
|
}
|
|
151
|
-
/** if chain is testnet, update testnet network_infos */
|
|
152
|
-
export function updateTestnetInfo(testnetArr, chainId, chain) {
|
|
166
|
+
/** if chain is testnet, update testnet network_infos */ export function updateTestnetInfo(testnetArr, chainId, chain) {
|
|
153
167
|
if (isTestnet(chainId)) {
|
|
154
|
-
const index = testnetArr?.findIndex((item)
|
|
168
|
+
const index = testnetArr?.findIndex((item)=>item.network_infos.chain_id === chainId);
|
|
155
169
|
if (index > -1) {
|
|
156
170
|
testnetArr[index] = chain;
|
|
157
171
|
}
|
|
158
172
|
}
|
|
159
173
|
}
|
|
174
|
+
export function filterByAllowedChains(chains, allowedChains) {
|
|
175
|
+
if (!allowedChains) {
|
|
176
|
+
return chains;
|
|
177
|
+
}
|
|
178
|
+
return chains.filter((chain)=>allowedChains.some((allowedChain)=>allowedChain.id === parseInt(chain?.network_infos?.chain_id)));
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
//# sourceMappingURL=useChains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/orderly/useChains.ts"],"sourcesContent":["import {\n NetworkId,\n type API,\n chainsInfoMap,\n Chain as FlatChain,\n} from \"@orderly.network/types\";\nimport { useCallback, useContext, useMemo, useRef } from \"react\";\nimport { SWRConfiguration } from \"swr\";\nimport { useQuery } from \"../useQuery\";\nimport { prop } from \"ramda\";\nimport { isTestnet } from \"@orderly.network/utils\";\nimport { TestnetChains, nativeTokenAddress } from \"@orderly.network/types\";\nimport { OrderlyContext } from \"../orderlyContext\";\n\nexport type Chain = API.Chain & {\n nativeToken?: API.TokenInfo;\n};\n\nexport type Chains<\n T extends NetworkId | undefined = undefined,\n K extends keyof API.Chain | undefined = undefined\n> = T extends NetworkId\n ? K extends keyof API.Chain\n ? API.Chain[K][]\n : API.Chain[]\n : K extends keyof API.Chain\n ? {\n testnet: API.Chain[K][];\n mainnet: API.Chain[K][];\n }\n : {\n testnet: API.Chain[];\n mainnet: API.Chain[];\n };\n\nexport type UseChainsOptions = {\n filter?: (item: API.Chain) => boolean;\n pick?: \"dexs\" | \"network_infos\" | \"token_infos\";\n} & SWRConfiguration;\n\nexport type UseChainsReturnObject = {\n findByChainId: (chainId: number, field?: string) => Chain | undefined;\n error: any;\n};\n\nexport function useChains(\n networkId?: undefined,\n options?: undefined\n): [Chains<undefined, undefined>, UseChainsReturnObject];\n\nexport function useChains<\n T extends NetworkId | undefined,\n K extends UseChainsOptions | undefined\n>(\n networkId?: T,\n options?: K\n): [\n Chains<\n T,\n K extends UseChainsOptions\n ? K[\"pick\"] extends keyof API.Chain\n ? K[\"pick\"]\n : undefined\n : undefined\n >,\n UseChainsReturnObject\n];\n\nexport function useChains(\n networkId?: NetworkId,\n options: UseChainsOptions = {}\n) {\n const { pick: pickField, ...swrOptions } = options;\n const { filteredChains: allowedChains } = useContext(OrderlyContext);\n\n const filterFun = useRef(options?.filter);\n filterFun.current = options?.filter;\n\n const chainsMap = useRef(new Map<number, Chain>());\n\n const commonSwrOpts = {\n revalidateIfStale: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n // If false, undefined data gets cached against the key.\n revalidateOnMount: true,\n // dont duplicate a request w/ same key for 1hr\n dedupingInterval: 3_600_000,\n ...swrOptions,\n };\n\n // only prod env return mainnet chains info\n // TODO: remove https://api-evm.orderly.org api base\n const { data: tokenChains, error: tokenError } = useQuery<API.Chain[]>(\n \"https://api-evm.orderly.org/v1/public/token\",\n { ...commonSwrOpts }\n );\n\n // only prod env return mainnet chains info\n const { data: chainInfos, error: chainInfoErr } = useQuery(\n \"/v1/public/chain_info\",\n { ...commonSwrOpts }\n );\n\n const chains = useMemo(() => {\n const orderlyChainsArr = fillChainsInfo(tokenChains, filterFun.current);\n\n let testnetArr = [...TestnetChains] as API.Chain[];\n\n orderlyChainsArr?.forEach((item) => {\n const chainId = item.network_infos?.chain_id;\n chainsMap.current.set(chainId, item);\n updateTestnetInfo(testnetArr, chainId, item);\n });\n\n testnetArr.forEach((chain) => {\n chainsMap.current.set(chain.network_infos?.chain_id, chain);\n });\n\n let mainnetArr: API.Chain[] = [];\n\n // TODO: /v1/public/chain_info api data is not match /v1/public/token api data, so it can effect is prod\n mainnetArr = updateOrderlyChains(\n orderlyChainsArr,\n chainInfos,\n filterFun.current\n );\n\n mainnetArr.forEach((item) => {\n const chainId = item.network_infos?.chain_id;\n chainsMap.current.set(chainId, item);\n updateTestnetInfo(testnetArr, chainId, item);\n });\n\n mainnetArr.sort((a, b) => {\n return a.network_infos.bridgeless ? -1 : 1;\n });\n\n testnetArr.sort((a, b) => {\n return a.network_infos.bridgeless ? -1 : 1;\n });\n\n mainnetArr = filterByAllowedChains(mainnetArr, allowedChains?.mainnet);\n testnetArr = filterByAllowedChains(testnetArr, allowedChains?.testnet);\n\n if (!!pickField) {\n //@ts-ignore\n testnetArr = testnetArr.map((item) => item[pickField]);\n //@ts-ignore\n mainnetArr = mainnetArr.map((item) => item[pickField]);\n }\n\n if (networkId === \"mainnet\") {\n return mainnetArr;\n }\n\n if (networkId === \"testnet\") {\n return testnetArr;\n }\n\n return {\n testnet: testnetArr,\n mainnet: mainnetArr,\n };\n }, [networkId, tokenChains, chainInfos, pickField, allowedChains]);\n\n const findByChainId = useCallback(\n (chainId: number, field?: string) => {\n const chain = chainsMap.current.get(chainId);\n\n if (chain) {\n chain.nativeToken =\n chain.token_infos?.find(\n (item) => item.address === nativeTokenAddress\n ) ||\n ({\n symbol: chain.network_infos?.currency_symbol,\n } as any);\n }\n\n if (typeof field === \"string\") {\n return prop(field as never, chain);\n }\n\n return chain;\n },\n [chains, chainsMap]\n );\n\n return [\n chains,\n {\n findByChainId,\n error: tokenError,\n },\n ];\n}\n\n/** orderly chains array form (/v1/public/token) api */\nexport function fillChainsInfo(\n chains?: API.Chain[],\n filter?: (chain: any) => boolean\n) {\n let _chains: API.Chain[] = [];\n\n chains?.forEach((item) => {\n item.chain_details.forEach((chain: any) => {\n const chainId = Number(chain.chain_id);\n const chainInfo = chainsInfoMap.get(chainId);\n\n const _chain: any = {\n network_infos: {\n name: chain.chain_name ?? chainInfo?.chainName ?? \"--\",\n chain_id: chainId,\n withdrawal_fee: chain.withdrawal_fee,\n cross_chain_withdrawal_fee: chain.cross_chain_withdrawal_fee,\n bridgeless: true,\n },\n token_infos: [\n {\n symbol: item.token,\n address: chain.contract_address,\n decimals: chain.decimals,\n },\n ],\n };\n\n if (typeof filter === \"function\") {\n if (!filter(_chain)) return;\n }\n\n _chains.push(_chain);\n });\n });\n\n return _chains;\n}\n\n/** update network_infos by chain_info api(v1/public/chain_info) */\nexport function updateOrderlyChains(\n chains: API.Chain[],\n chainInfos: any,\n filter?: (chain: any) => boolean\n) {\n const _chains: API.Chain[] = [];\n chains.forEach((chain) => {\n let _chain = { ...chain };\n\n const networkInfo = chainInfos?.find(\n (item: any) => item.chain_id == chain.network_infos.chain_id\n );\n\n if (networkInfo) {\n const { name, public_rpc_url, currency_symbol, explorer_base_url } =\n networkInfo;\n _chain.network_infos = {\n ..._chain.network_infos,\n name,\n shortName: name,\n public_rpc_url,\n currency_symbol,\n bridge_enable: true,\n mainnet: true,\n explorer_base_url,\n est_txn_mins: null,\n };\n }\n\n if (typeof filter === \"function\") {\n if (!filter(_chain)) return;\n }\n\n _chains.push(_chain);\n });\n\n return _chains;\n}\n\n/** if chain is testnet, update testnet network_infos */\nexport function updateTestnetInfo(\n testnetArr: API.Chain[],\n chainId: number,\n chain: API.Chain\n) {\n if (isTestnet(chainId)) {\n const index = testnetArr?.findIndex(\n (item) => item.network_infos.chain_id === chainId\n );\n if (index > -1) {\n testnetArr[index] = chain;\n }\n }\n}\n\nexport function filterByAllowedChains(\n chains: API.Chain[],\n allowedChains?: FlatChain[]\n) {\n if (!allowedChains) {\n return chains;\n }\n\n return chains.filter((chain) =>\n allowedChains.some(\n (allowedChain) =>\n allowedChain.id === parseInt(chain?.network_infos?.chain_id as any)\n )\n );\n}\n"],"names":["chainsInfoMap","useCallback","useContext","useMemo","useRef","useQuery","prop","isTestnet","TestnetChains","nativeTokenAddress","OrderlyContext","useChains","networkId","options","pick","pickField","swrOptions","filteredChains","allowedChains","filterFun","filter","current","chainsMap","Map","commonSwrOpts","revalidateIfStale","revalidateOnFocus","revalidateOnReconnect","revalidateOnMount","dedupingInterval","data","tokenChains","error","tokenError","chainInfos","chainInfoErr","chains","orderlyChainsArr","fillChainsInfo","testnetArr","forEach","item","chainId","network_infos","chain_id","set","updateTestnetInfo","chain","mainnetArr","updateOrderlyChains","sort","a","b","bridgeless","filterByAllowedChains","mainnet","testnet","map","findByChainId","field","get","nativeToken","token_infos","find","address","symbol","currency_symbol","_chains","chain_details","Number","chainInfo","_chain","name","chain_name","chainName","withdrawal_fee","cross_chain_withdrawal_fee","token","contract_address","decimals","push","networkInfo","public_rpc_url","explorer_base_url","shortName","bridge_enable","est_txn_mins","index","findIndex","some","allowedChain","id","parseInt"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -8,9 +8,8 @@ export type CollateralOutputs = {
|
|
|
8
8
|
positions: API.Position[];
|
|
9
9
|
accountInfo?: API.AccountInfo;
|
|
10
10
|
};
|
|
11
|
-
|
|
11
|
+
export declare const useCollateral: (options?: {
|
|
12
|
+
/** decimal precision */
|
|
12
13
|
dp: number;
|
|
13
|
-
};
|
|
14
|
-
export declare const useCollateral: (options?: Options) => CollateralOutputs;
|
|
15
|
-
export {};
|
|
14
|
+
}) => CollateralOutputs;
|
|
16
15
|
//# sourceMappingURL=useCollateral.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCollateral.d.ts","sourceRoot":"","sources":["../../src/orderly/useCollateral.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,wBAAwB,CAAC;AAO/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IAErB,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC;CAC/B,CAAC;AAKF,
|
|
1
|
+
{"version":3,"file":"useCollateral.d.ts","sourceRoot":"","sources":["../../src/orderly/useCollateral.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,wBAAwB,CAAC;AAO/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IAErB,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC;CAC/B,CAAC;AAKF,eAAO,MAAM,aAAa,aACf;IACP,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;CACZ,KACA,iBA2EF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
2
|
import { usePrivateQuery } from "../usePrivateQuery";
|
|
3
|
-
import { pathOr_unsettledPnLPathOr, usePositionStream
|
|
3
|
+
import { pathOr_unsettledPnLPathOr, usePositionStream } from "./usePositionStream";
|
|
4
4
|
import { pathOr } from "ramda";
|
|
5
5
|
import { account } from "@orderly.network/perp";
|
|
6
6
|
import { OrderStatus } from "@orderly.network/types";
|
|
@@ -9,17 +9,27 @@ import { zero } from "@orderly.network/utils";
|
|
|
9
9
|
import { useMarkPricesStream } from "./useMarkPricesStream";
|
|
10
10
|
import { useHoldingStream } from "./useHoldingStream";
|
|
11
11
|
import { useOrderStream } from "./useOrderStream";
|
|
12
|
-
const positionsPath = pathOr([], [
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
const positionsPath = pathOr([], [
|
|
13
|
+
0,
|
|
14
|
+
"rows"
|
|
15
|
+
]);
|
|
16
|
+
const totalCollateralPath = pathOr(0, [
|
|
17
|
+
0,
|
|
18
|
+
"totalCollateral"
|
|
19
|
+
]);
|
|
20
|
+
export const useCollateral = (options = {
|
|
21
|
+
dp: 6
|
|
22
|
+
})=>{
|
|
15
23
|
const { dp } = options;
|
|
16
24
|
const positions = usePositionStream();
|
|
17
|
-
const [orders] = useOrderStream({
|
|
25
|
+
const [orders] = useOrderStream({
|
|
26
|
+
status: OrderStatus.NEW
|
|
27
|
+
});
|
|
18
28
|
const { data: accountInfo } = usePrivateQuery("/v1/client/info");
|
|
19
29
|
const symbolInfo = useSymbolsInfo();
|
|
20
30
|
const { data: markPrices } = useMarkPricesStream();
|
|
21
31
|
const { usdc } = useHoldingStream();
|
|
22
|
-
const filterAlgoOrders = orders?.filter((item)
|
|
32
|
+
const filterAlgoOrders = orders?.filter((item)=>item.algo_order_id === undefined) ?? [];
|
|
23
33
|
// const { data: holding } = usePrivateQuery<API.Holding[]>(
|
|
24
34
|
// "/v1/client/holding",
|
|
25
35
|
// {
|
|
@@ -28,13 +38,22 @@ export const useCollateral = (options = { dp: 6 }) => {
|
|
|
28
38
|
// },
|
|
29
39
|
// }
|
|
30
40
|
// );
|
|
31
|
-
const [totalCollateral, totalValue] = useMemo(()
|
|
41
|
+
const [totalCollateral, totalValue] = useMemo(()=>{
|
|
32
42
|
return [
|
|
33
|
-
pathOr(zero, [
|
|
34
|
-
|
|
43
|
+
pathOr(zero, [
|
|
44
|
+
0,
|
|
45
|
+
"totalCollateral"
|
|
46
|
+
], positions),
|
|
47
|
+
pathOr(zero, [
|
|
48
|
+
0,
|
|
49
|
+
"totalValue"
|
|
50
|
+
], positions)
|
|
35
51
|
];
|
|
36
|
-
}, [
|
|
37
|
-
|
|
52
|
+
}, [
|
|
53
|
+
positions,
|
|
54
|
+
markPrices
|
|
55
|
+
]);
|
|
56
|
+
const totalInitialMarginWithOrders = useMemo(()=>{
|
|
38
57
|
if (!accountInfo || !symbolInfo || !markPrices) {
|
|
39
58
|
return 0;
|
|
40
59
|
}
|
|
@@ -44,21 +63,33 @@ export const useCollateral = (options = { dp: 6 }) => {
|
|
|
44
63
|
markPrices,
|
|
45
64
|
IMR_Factors: accountInfo.imr_factor,
|
|
46
65
|
maxLeverage: accountInfo.max_leverage,
|
|
47
|
-
symbolInfo
|
|
66
|
+
symbolInfo
|
|
48
67
|
});
|
|
49
|
-
}, [
|
|
50
|
-
|
|
68
|
+
}, [
|
|
69
|
+
positions,
|
|
70
|
+
filterAlgoOrders,
|
|
71
|
+
markPrices,
|
|
72
|
+
accountInfo,
|
|
73
|
+
symbolInfo
|
|
74
|
+
]);
|
|
75
|
+
const freeCollateral = useMemo(()=>{
|
|
51
76
|
return account.freeCollateral({
|
|
52
77
|
totalCollateral,
|
|
53
|
-
totalInitialMarginWithOrders
|
|
78
|
+
totalInitialMarginWithOrders
|
|
54
79
|
});
|
|
55
|
-
}, [
|
|
56
|
-
|
|
80
|
+
}, [
|
|
81
|
+
totalCollateral,
|
|
82
|
+
totalInitialMarginWithOrders
|
|
83
|
+
]);
|
|
84
|
+
const availableBalance = useMemo(()=>{
|
|
57
85
|
return account.availableBalance({
|
|
58
86
|
USDCHolding: usdc?.holding ?? 0,
|
|
59
|
-
unsettlementPnL: pathOr_unsettledPnLPathOr(positions)
|
|
87
|
+
unsettlementPnL: pathOr_unsettledPnLPathOr(positions)
|
|
60
88
|
});
|
|
61
|
-
}, [
|
|
89
|
+
}, [
|
|
90
|
+
usdc?.holding,
|
|
91
|
+
pathOr_unsettledPnLPathOr(positions)
|
|
92
|
+
]);
|
|
62
93
|
return {
|
|
63
94
|
totalCollateral: totalCollateral.toDecimalPlaces(dp).toNumber(),
|
|
64
95
|
freeCollateral: freeCollateral.toDecimalPlaces(dp).toNumber(),
|
|
@@ -67,6 +98,8 @@ export const useCollateral = (options = { dp: 6 }) => {
|
|
|
67
98
|
unsettledPnL: pathOr_unsettledPnLPathOr(positions),
|
|
68
99
|
accountInfo,
|
|
69
100
|
// @hidden
|
|
70
|
-
positions: positionsPath(positions)
|
|
101
|
+
positions: positionsPath(positions)
|
|
71
102
|
};
|
|
72
103
|
};
|
|
104
|
+
|
|
105
|
+
//# sourceMappingURL=useCollateral.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/orderly/useCollateral.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { usePrivateQuery } from \"../usePrivateQuery\";\nimport {\n pathOr_unsettledPnLPathOr,\n usePositionStream,\n} from \"./usePositionStream\";\nimport { pathOr } from \"ramda\";\nimport { account } from \"@orderly.network/perp\";\nimport { type API, OrderStatus } from \"@orderly.network/types\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\nimport { zero } from \"@orderly.network/utils\";\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { useHoldingStream } from \"./useHoldingStream\";\nimport { useOrderStream } from \"./useOrderStream\";\n\nexport type CollateralOutputs = {\n totalCollateral: number;\n freeCollateral: number;\n totalValue: number;\n availableBalance: number;\n unsettledPnL: number;\n\n positions: API.Position[];\n accountInfo?: API.AccountInfo;\n};\n\nconst positionsPath = pathOr([], [0, \"rows\"]);\nconst totalCollateralPath = pathOr(0, [0, \"totalCollateral\"]);\n\nexport const useCollateral = (\n options: {\n /** decimal precision */\n dp: number;\n } = { dp: 6 }\n): CollateralOutputs => {\n const { dp } = options;\n const positions = usePositionStream();\n\n const [orders] = useOrderStream({ status: OrderStatus.NEW });\n\n const { data: accountInfo } =\n usePrivateQuery<API.AccountInfo>(\"/v1/client/info\");\n\n const symbolInfo = useSymbolsInfo();\n\n const { data: markPrices } = useMarkPricesStream();\n\n const { usdc } = useHoldingStream();\n\n const filterAlgoOrders =\n orders?.filter((item) => item.algo_order_id === undefined) ?? [];\n\n // const { data: holding } = usePrivateQuery<API.Holding[]>(\n // \"/v1/client/holding\",\n // {\n // formatter: (data) => {\n // return data.holding;\n // },\n // }\n // );\n\n const [totalCollateral, totalValue] = useMemo(() => {\n return [\n pathOr(zero, [0, \"totalCollateral\"], positions),\n pathOr(zero, [0, \"totalValue\"], positions),\n ];\n }, [positions, markPrices]);\n\n const totalInitialMarginWithOrders = useMemo(() => {\n if (!accountInfo || !symbolInfo || !markPrices) {\n return 0;\n }\n\n return account.totalInitialMarginWithOrders({\n positions: positionsPath(positions),\n orders: filterAlgoOrders,\n markPrices,\n IMR_Factors: accountInfo.imr_factor,\n maxLeverage: accountInfo.max_leverage,\n symbolInfo,\n });\n }, [positions, filterAlgoOrders, markPrices, accountInfo, symbolInfo]);\n\n const freeCollateral = useMemo(() => {\n return account.freeCollateral({\n totalCollateral,\n totalInitialMarginWithOrders,\n });\n }, [totalCollateral, totalInitialMarginWithOrders]);\n\n const availableBalance = useMemo(() => {\n return account.availableBalance({\n USDCHolding: usdc?.holding ?? 0,\n unsettlementPnL: pathOr_unsettledPnLPathOr(positions),\n });\n }, [usdc?.holding, pathOr_unsettledPnLPathOr(positions)]);\n\n return {\n totalCollateral: totalCollateral.toDecimalPlaces(dp).toNumber(),\n freeCollateral: freeCollateral.toDecimalPlaces(dp).toNumber(),\n totalValue: totalValue.toDecimalPlaces(dp).toNumber(),\n availableBalance,\n unsettledPnL: pathOr_unsettledPnLPathOr(positions),\n\n accountInfo,\n\n // @hidden\n positions: positionsPath(positions),\n };\n};\n"],"names":["useMemo","usePrivateQuery","pathOr_unsettledPnLPathOr","usePositionStream","pathOr","account","OrderStatus","useSymbolsInfo","zero","useMarkPricesStream","useHoldingStream","useOrderStream","positionsPath","totalCollateralPath","useCollateral","options","dp","positions","orders","status","NEW","data","accountInfo","symbolInfo","markPrices","usdc","filterAlgoOrders","filter","item","algo_order_id","undefined","totalCollateral","totalValue","totalInitialMarginWithOrders","IMR_Factors","imr_factor","maxLeverage","max_leverage","freeCollateral","availableBalance","USDCHolding","holding","unsettlementPnL","toDecimalPlaces","toNumber","unsettledPnL"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SACEC,yBAAyB,EACzBC,iBAAiB,QACZ,sBAAsB;AAC7B,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,OAAO,QAAQ,wBAAwB;AAChD,SAAmBC,WAAW,QAAQ,yBAAyB;AAC/D,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,IAAI,QAAQ,yBAAyB;AAC9C,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,cAAc,QAAQ,mBAAmB;AAalD,MAAMC,gBAAgBR,OAAO,EAAE,EAAE;IAAC;IAAG;CAAO;AAC5C,MAAMS,sBAAsBT,OAAO,GAAG;IAAC;IAAG;CAAkB;AAE5D,OAAO,MAAMU,gBAAgB,CAC3BC,UAGI;IAAEC,IAAI;AAAE,CAAC;IAEb,MAAM,EAAEA,EAAE,EAAE,GAAGD;IACf,MAAME,YAAYd;IAElB,MAAM,CAACe,OAAO,GAAGP,eAAe;QAAEQ,QAAQb,YAAYc,GAAG;IAAC;IAE1D,MAAM,EAAEC,MAAMC,WAAW,EAAE,GACzBrB,gBAAiC;IAEnC,MAAMsB,aAAahB;IAEnB,MAAM,EAAEc,MAAMG,UAAU,EAAE,GAAGf;IAE7B,MAAM,EAAEgB,IAAI,EAAE,GAAGf;IAEjB,MAAMgB,mBACJR,QAAQS,OAAO,CAACC,OAASA,KAAKC,aAAa,KAAKC,cAAc,EAAE;IAElE,4DAA4D;IAC5D,0BAA0B;IAC1B,MAAM;IACN,6BAA6B;IAC7B,6BAA6B;IAC7B,SAAS;IACT,MAAM;IACN,KAAK;IAEL,MAAM,CAACC,iBAAiBC,WAAW,GAAGhC,QAAQ;QAC5C,OAAO;YACLI,OAAOI,MAAM;gBAAC;gBAAG;aAAkB,EAAES;YACrCb,OAAOI,MAAM;gBAAC;gBAAG;aAAa,EAAES;SACjC;IACH,GAAG;QAACA;QAAWO;KAAW;IAE1B,MAAMS,+BAA+BjC,QAAQ;QAC3C,IAAI,CAACsB,eAAe,CAACC,cAAc,CAACC,YAAY;YAC9C,OAAO;QACT;QAEA,OAAOnB,QAAQ4B,4BAA4B,CAAC;YAC1ChB,WAAWL,cAAcK;YACzBC,QAAQQ;YACRF;YACAU,aAAaZ,YAAYa,UAAU;YACnCC,aAAad,YAAYe,YAAY;YACrCd;QACF;IACF,GAAG;QAACN;QAAWS;QAAkBF;QAAYF;QAAaC;KAAW;IAErE,MAAMe,iBAAiBtC,QAAQ;QAC7B,OAAOK,QAAQiC,cAAc,CAAC;YAC5BP;YACAE;QACF;IACF,GAAG;QAACF;QAAiBE;KAA6B;IAElD,MAAMM,mBAAmBvC,QAAQ;QAC/B,OAAOK,QAAQkC,gBAAgB,CAAC;YAC9BC,aAAaf,MAAMgB,WAAW;YAC9BC,iBAAiBxC,0BAA0Be;QAC7C;IACF,GAAG;QAACQ,MAAMgB;QAASvC,0BAA0Be;KAAW;IAExD,OAAO;QACLc,iBAAiBA,gBAAgBY,eAAe,CAAC3B,IAAI4B,QAAQ;QAC7DN,gBAAgBA,eAAeK,eAAe,CAAC3B,IAAI4B,QAAQ;QAC3DZ,YAAYA,WAAWW,eAAe,CAAC3B,IAAI4B,QAAQ;QACnDL;QACAM,cAAc3C,0BAA0Be;QAExCK;QAEA,UAAU;QACVL,WAAWL,cAAcK;IAC3B;AACF,EAAE"}
|