@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
|
@@ -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":["fillChainsInfo","filterByAllowedChains","updateOrderlyChains","updateTestnetInfo","useChains","networkId","options","pick","pickField","swrOptions","filteredChains","allowedChains","useContext","OrderlyContext","filterFun","useRef","filter","current","chainsMap","Map","commonSwrOpts","revalidateIfStale","revalidateOnFocus","revalidateOnReconnect","revalidateOnMount","dedupingInterval","data","tokenChains","error","tokenError","useQuery","chainInfos","chainInfoErr","chains","useMemo","orderlyChainsArr","testnetArr","TestnetChains","forEach","item","chainId","network_infos","chain_id","set","chain","mainnetArr","sort","a","b","bridgeless","mainnet","testnet","map","findByChainId","useCallback","field","get","nativeToken","token_infos","find","address","nativeTokenAddress","symbol","currency_symbol","prop","_chains","chain_details","Number","chainInfo","chainsInfoMap","_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","isTestnet","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,28 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useCollateral", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return useCollateral;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = require("react");
|
|
12
|
+
const _usePrivateQuery = require("../usePrivateQuery");
|
|
13
|
+
const _usePositionStream = require("./usePositionStream");
|
|
14
|
+
const _ramda = require("ramda");
|
|
15
|
+
const _perp = require("@orderly.network/perp");
|
|
16
|
+
const _types = require("@orderly.network/types");
|
|
17
|
+
const _useSymbolsInfo = require("./useSymbolsInfo");
|
|
18
|
+
const _utils = require("@orderly.network/utils");
|
|
19
|
+
const _useMarkPricesStream = require("./useMarkPricesStream");
|
|
20
|
+
const _useHoldingStream = require("./useHoldingStream");
|
|
21
|
+
const _useOrderStream = require("./useOrderStream");
|
|
22
|
+
const positionsPath = (0, _ramda.pathOr)([], [
|
|
23
|
+
0,
|
|
24
|
+
"rows"
|
|
25
|
+
]);
|
|
26
|
+
const totalCollateralPath = (0, _ramda.pathOr)(0, [
|
|
27
|
+
0,
|
|
28
|
+
"totalCollateral"
|
|
29
|
+
]);
|
|
30
|
+
const useCollateral = (options = {
|
|
31
|
+
dp: 6
|
|
32
|
+
})=>{
|
|
18
33
|
const { dp } = options;
|
|
19
|
-
const positions = (0,
|
|
20
|
-
const [orders] = (0,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const { data:
|
|
24
|
-
const
|
|
25
|
-
const
|
|
34
|
+
const positions = (0, _usePositionStream.usePositionStream)();
|
|
35
|
+
const [orders] = (0, _useOrderStream.useOrderStream)({
|
|
36
|
+
status: _types.OrderStatus.NEW
|
|
37
|
+
});
|
|
38
|
+
const { data: accountInfo } = (0, _usePrivateQuery.usePrivateQuery)("/v1/client/info");
|
|
39
|
+
const symbolInfo = (0, _useSymbolsInfo.useSymbolsInfo)();
|
|
40
|
+
const { data: markPrices } = (0, _useMarkPricesStream.useMarkPricesStream)();
|
|
41
|
+
const { usdc } = (0, _useHoldingStream.useHoldingStream)();
|
|
42
|
+
const filterAlgoOrders = orders?.filter((item)=>item.algo_order_id === undefined) ?? [];
|
|
26
43
|
// const { data: holding } = usePrivateQuery<API.Holding[]>(
|
|
27
44
|
// "/v1/client/holding",
|
|
28
45
|
// {
|
|
@@ -31,46 +48,68 @@ const useCollateral = (options = { dp: 6 }) => {
|
|
|
31
48
|
// },
|
|
32
49
|
// }
|
|
33
50
|
// );
|
|
34
|
-
const [totalCollateral, totalValue] = (0,
|
|
51
|
+
const [totalCollateral, totalValue] = (0, _react.useMemo)(()=>{
|
|
35
52
|
return [
|
|
36
|
-
(0,
|
|
37
|
-
|
|
53
|
+
(0, _ramda.pathOr)(_utils.zero, [
|
|
54
|
+
0,
|
|
55
|
+
"totalCollateral"
|
|
56
|
+
], positions),
|
|
57
|
+
(0, _ramda.pathOr)(_utils.zero, [
|
|
58
|
+
0,
|
|
59
|
+
"totalValue"
|
|
60
|
+
], positions)
|
|
38
61
|
];
|
|
39
|
-
}, [
|
|
40
|
-
|
|
62
|
+
}, [
|
|
63
|
+
positions,
|
|
64
|
+
markPrices
|
|
65
|
+
]);
|
|
66
|
+
const totalInitialMarginWithOrders = (0, _react.useMemo)(()=>{
|
|
41
67
|
if (!accountInfo || !symbolInfo || !markPrices) {
|
|
42
68
|
return 0;
|
|
43
69
|
}
|
|
44
|
-
return
|
|
70
|
+
return _perp.account.totalInitialMarginWithOrders({
|
|
45
71
|
positions: positionsPath(positions),
|
|
46
72
|
orders: filterAlgoOrders,
|
|
47
73
|
markPrices,
|
|
48
74
|
IMR_Factors: accountInfo.imr_factor,
|
|
49
75
|
maxLeverage: accountInfo.max_leverage,
|
|
50
|
-
symbolInfo
|
|
76
|
+
symbolInfo
|
|
51
77
|
});
|
|
52
|
-
}, [
|
|
53
|
-
|
|
54
|
-
|
|
78
|
+
}, [
|
|
79
|
+
positions,
|
|
80
|
+
filterAlgoOrders,
|
|
81
|
+
markPrices,
|
|
82
|
+
accountInfo,
|
|
83
|
+
symbolInfo
|
|
84
|
+
]);
|
|
85
|
+
const freeCollateral = (0, _react.useMemo)(()=>{
|
|
86
|
+
return _perp.account.freeCollateral({
|
|
55
87
|
totalCollateral,
|
|
56
|
-
totalInitialMarginWithOrders
|
|
88
|
+
totalInitialMarginWithOrders
|
|
57
89
|
});
|
|
58
|
-
}, [
|
|
59
|
-
|
|
60
|
-
|
|
90
|
+
}, [
|
|
91
|
+
totalCollateral,
|
|
92
|
+
totalInitialMarginWithOrders
|
|
93
|
+
]);
|
|
94
|
+
const availableBalance = (0, _react.useMemo)(()=>{
|
|
95
|
+
return _perp.account.availableBalance({
|
|
61
96
|
USDCHolding: usdc?.holding ?? 0,
|
|
62
|
-
unsettlementPnL: (0,
|
|
97
|
+
unsettlementPnL: (0, _usePositionStream.pathOr_unsettledPnLPathOr)(positions)
|
|
63
98
|
});
|
|
64
|
-
}, [
|
|
99
|
+
}, [
|
|
100
|
+
usdc?.holding,
|
|
101
|
+
(0, _usePositionStream.pathOr_unsettledPnLPathOr)(positions)
|
|
102
|
+
]);
|
|
65
103
|
return {
|
|
66
104
|
totalCollateral: totalCollateral.toDecimalPlaces(dp).toNumber(),
|
|
67
105
|
freeCollateral: freeCollateral.toDecimalPlaces(dp).toNumber(),
|
|
68
106
|
totalValue: totalValue.toDecimalPlaces(dp).toNumber(),
|
|
69
107
|
availableBalance,
|
|
70
|
-
unsettledPnL: (0,
|
|
108
|
+
unsettledPnL: (0, _usePositionStream.pathOr_unsettledPnLPathOr)(positions),
|
|
71
109
|
accountInfo,
|
|
72
110
|
// @hidden
|
|
73
|
-
positions: positionsPath(positions)
|
|
111
|
+
positions: positionsPath(positions)
|
|
74
112
|
};
|
|
75
113
|
};
|
|
76
|
-
|
|
114
|
+
|
|
115
|
+
//# 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":["useCollateral","positionsPath","pathOr","totalCollateralPath","options","dp","positions","usePositionStream","orders","useOrderStream","status","OrderStatus","NEW","data","accountInfo","usePrivateQuery","symbolInfo","useSymbolsInfo","markPrices","useMarkPricesStream","usdc","useHoldingStream","filterAlgoOrders","filter","item","algo_order_id","undefined","totalCollateral","totalValue","useMemo","zero","totalInitialMarginWithOrders","account","IMR_Factors","imr_factor","maxLeverage","max_leverage","freeCollateral","availableBalance","USDCHolding","holding","unsettlementPnL","pathOr_unsettledPnLPathOr","toDecimalPlaces","toNumber","unsettledPnL"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BA6BaA;;;eAAAA;;;uBA7BW;iCACQ;mCAIzB;uBACgB;sBACC;uBACc;gCACP;uBACV;qCACe;kCACH;gCACF;AAa/B,MAAMC,gBAAgBC,IAAAA,aAAM,EAAC,EAAE,EAAE;IAAC;IAAG;CAAO;AAC5C,MAAMC,sBAAsBD,IAAAA,aAAM,EAAC,GAAG;IAAC;IAAG;CAAkB;AAErD,MAAMF,gBAAgB,CAC3BI,UAGI;IAAEC,IAAI;AAAE,CAAC;IAEb,MAAM,EAAEA,EAAE,EAAE,GAAGD;IACf,MAAME,YAAYC,IAAAA,oCAAiB;IAEnC,MAAM,CAACC,OAAO,GAAGC,IAAAA,8BAAc,EAAC;QAAEC,QAAQC,kBAAW,CAACC,GAAG;IAAC;IAE1D,MAAM,EAAEC,MAAMC,WAAW,EAAE,GACzBC,IAAAA,gCAAe,EAAkB;IAEnC,MAAMC,aAAaC,IAAAA,8BAAc;IAEjC,MAAM,EAAEJ,MAAMK,UAAU,EAAE,GAAGC,IAAAA,wCAAmB;IAEhD,MAAM,EAAEC,IAAI,EAAE,GAAGC,IAAAA,kCAAgB;IAEjC,MAAMC,mBACJd,QAAQe,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,GAAGC,IAAAA,cAAO,EAAC;QAC5C,OAAO;YACL3B,IAAAA,aAAM,EAAC4B,WAAI,EAAE;gBAAC;gBAAG;aAAkB,EAAExB;YACrCJ,IAAAA,aAAM,EAAC4B,WAAI,EAAE;gBAAC;gBAAG;aAAa,EAAExB;SACjC;IACH,GAAG;QAACA;QAAWY;KAAW;IAE1B,MAAMa,+BAA+BF,IAAAA,cAAO,EAAC;QAC3C,IAAI,CAACf,eAAe,CAACE,cAAc,CAACE,YAAY;YAC9C,OAAO;QACT;QAEA,OAAOc,aAAO,CAACD,4BAA4B,CAAC;YAC1CzB,WAAWL,cAAcK;YACzBE,QAAQc;YACRJ;YACAe,aAAanB,YAAYoB,UAAU;YACnCC,aAAarB,YAAYsB,YAAY;YACrCpB;QACF;IACF,GAAG;QAACV;QAAWgB;QAAkBJ;QAAYJ;QAAaE;KAAW;IAErE,MAAMqB,iBAAiBR,IAAAA,cAAO,EAAC;QAC7B,OAAOG,aAAO,CAACK,cAAc,CAAC;YAC5BV;YACAI;QACF;IACF,GAAG;QAACJ;QAAiBI;KAA6B;IAElD,MAAMO,mBAAmBT,IAAAA,cAAO,EAAC;QAC/B,OAAOG,aAAO,CAACM,gBAAgB,CAAC;YAC9BC,aAAanB,MAAMoB,WAAW;YAC9BC,iBAAiBC,IAAAA,4CAAyB,EAACpC;QAC7C;IACF,GAAG;QAACc,MAAMoB;QAASE,IAAAA,4CAAyB,EAACpC;KAAW;IAExD,OAAO;QACLqB,iBAAiBA,gBAAgBgB,eAAe,CAACtC,IAAIuC,QAAQ;QAC7DP,gBAAgBA,eAAeM,eAAe,CAACtC,IAAIuC,QAAQ;QAC3DhB,YAAYA,WAAWe,eAAe,CAACtC,IAAIuC,QAAQ;QACnDN;QACAO,cAAcH,IAAAA,4CAAyB,EAACpC;QAExCQ;QAEA,UAAU;QACVR,WAAWL,cAAcK;IAC3B;AACF"}
|