@kodiak-finance/orderly-hooks 2.8.11 → 2.8.12-rc.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/index.d.mts +46 -2
- package/dist/index.d.ts +46 -2
- package/dist/index.js +77 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +76 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -10
package/dist/index.mjs
CHANGED
|
@@ -9610,6 +9610,81 @@ var useSymbolLeverage = (symbol) => {
|
|
|
9610
9610
|
isLoading: isMutating
|
|
9611
9611
|
};
|
|
9612
9612
|
};
|
|
9613
|
+
var useEffectiveLeverage = (inputs) => {
|
|
9614
|
+
const {
|
|
9615
|
+
symbol,
|
|
9616
|
+
positionQty = 0,
|
|
9617
|
+
positionPrice,
|
|
9618
|
+
orderQty = 0,
|
|
9619
|
+
orderPrice,
|
|
9620
|
+
selectedLeverage: inputSelectedLeverage
|
|
9621
|
+
} = inputs;
|
|
9622
|
+
const accountInfo = useAccountInfo2();
|
|
9623
|
+
const symbolsInfo = useSymbolsInfo();
|
|
9624
|
+
const maxLeverage = useMaxLeverage(symbol);
|
|
9625
|
+
const markPriceData = useMarkPrice(symbol);
|
|
9626
|
+
const markPrice = markPriceData?.data ?? 0;
|
|
9627
|
+
return useMemo(() => {
|
|
9628
|
+
const effectivePositionPrice = positionPrice ?? markPrice;
|
|
9629
|
+
const effectiveOrderPrice = orderPrice ?? markPrice;
|
|
9630
|
+
const positionNotional = Math.abs(
|
|
9631
|
+
new Decimal(positionQty).mul(effectivePositionPrice).toNumber()
|
|
9632
|
+
);
|
|
9633
|
+
const orderNotional = Math.abs(
|
|
9634
|
+
new Decimal(orderQty).mul(effectiveOrderPrice).toNumber()
|
|
9635
|
+
);
|
|
9636
|
+
const symbolInfo = symbolsInfo[symbol];
|
|
9637
|
+
const baseIMR = symbolInfo("base_imr");
|
|
9638
|
+
const selectedLeverage = inputSelectedLeverage ?? maxLeverage;
|
|
9639
|
+
if (baseIMR === void 0 || baseIMR === null) {
|
|
9640
|
+
return {
|
|
9641
|
+
selectedLeverage,
|
|
9642
|
+
effectiveLeverage: maxLeverage,
|
|
9643
|
+
displayLeverage: Math.min(selectedLeverage, maxLeverage),
|
|
9644
|
+
imr: 1 / maxLeverage,
|
|
9645
|
+
isConstrained: false,
|
|
9646
|
+
constraintMessage: void 0
|
|
9647
|
+
};
|
|
9648
|
+
}
|
|
9649
|
+
const imrFactor = accountInfo?.imr_factor?.[symbol] ?? 0;
|
|
9650
|
+
const totalNotional = Math.abs(
|
|
9651
|
+
new Decimal(positionNotional).add(orderNotional).toNumber()
|
|
9652
|
+
);
|
|
9653
|
+
const positionBasedIMR = Math.max(
|
|
9654
|
+
baseIMR,
|
|
9655
|
+
new Decimal(imrFactor).mul(new Decimal(totalNotional).toPower(4 / 5)).toNumber()
|
|
9656
|
+
);
|
|
9657
|
+
const effectiveLeverage = positionBasedIMR > 0 ? 1 / positionBasedIMR : maxLeverage;
|
|
9658
|
+
const displayLeverage = Math.min(selectedLeverage, effectiveLeverage);
|
|
9659
|
+
const isConstrained = effectiveLeverage < selectedLeverage;
|
|
9660
|
+
let constraintMessage;
|
|
9661
|
+
if (isConstrained) {
|
|
9662
|
+
const totalNotional2 = new Decimal(positionNotional).add(orderNotional);
|
|
9663
|
+
constraintMessage = `For this position size ($${totalNotional2.toFixed(
|
|
9664
|
+
2
|
|
9665
|
+
)}), the maximum effective leverage is ${Math.floor(effectiveLeverage)}x`;
|
|
9666
|
+
}
|
|
9667
|
+
return {
|
|
9668
|
+
selectedLeverage,
|
|
9669
|
+
effectiveLeverage,
|
|
9670
|
+
displayLeverage,
|
|
9671
|
+
imr: positionBasedIMR,
|
|
9672
|
+
isConstrained,
|
|
9673
|
+
constraintMessage
|
|
9674
|
+
};
|
|
9675
|
+
}, [
|
|
9676
|
+
symbol,
|
|
9677
|
+
symbolsInfo,
|
|
9678
|
+
accountInfo,
|
|
9679
|
+
positionQty,
|
|
9680
|
+
positionPrice,
|
|
9681
|
+
orderQty,
|
|
9682
|
+
orderPrice,
|
|
9683
|
+
markPrice,
|
|
9684
|
+
inputSelectedLeverage,
|
|
9685
|
+
maxLeverage
|
|
9686
|
+
]);
|
|
9687
|
+
};
|
|
9613
9688
|
var useAssetsHistory = (options, config) => {
|
|
9614
9689
|
const ee = useEventEmitter();
|
|
9615
9690
|
const getKey = () => {
|
|
@@ -17795,6 +17870,6 @@ var usePositionClose = (options) => {
|
|
|
17795
17870
|
};
|
|
17796
17871
|
};
|
|
17797
17872
|
|
|
17798
|
-
export { DefaultLayoutConfig, DistributionId, ENVType2 as ENVType, EpochStatus, ExtendedConfigStore, MaintenanceStatus, MarketsStorageKey, MarketsType, ORDERLY_ORDERBOOK_DEPTH_KEY, OrderlyConfigProvider, OrderlyContext, OrderlyProvider, StatusProvider, TWType, WalletConnectorContext, WsNetworkStatus, checkNotional, cleanStringStyle, fetcher, findPositionTPSLFromOrders, findTPSLFromOrder, findTPSLOrderPriceFromOrder, getMinNotional, getPriceKey, noCacheConfig, parseJSON, useAccount, useAccountInfo, useAccountInstance, useAccountRewardsHistory, useAllBrokers, useApiKeyManager, useAssetsHistory, useAudioPlayer, useBalanceSubscription, useBalanceTopic, useBoolean, useChain, useChainInfo, useChains, useCheckReferralCode, useCollateral, useCommission, useComputedLTV, useConfig, useConvert, useCurEpochEstimate, useDaily, useDeposit, useDistribution, useDistributionHistory, useEpochInfo, useEventEmitter, useFeeState, useFundingDetails, useFundingFeeHistory, useFundingRate, useFundingRateHistory, useFundingRates, useFundingRatesStore, useGetClaimed, useGetEnv, useGetReferralCode, useHoldingStream, useIndexPrice, useIndexPricesStream, useInfiniteQuery, useInternalTransfer, useKeyStore, useLazyQuery, useLeverage, useLeverageBySymbol, useLocalStorage, useMaintenanceStatus, useMarginRatio, useMarkPrice, useMarkPriceBySymbol, useMarkPricesStream, useMarket, useMarketList, useMarketMap, useMarketTradeStream, useMarkets, useMarketsStore, useMarketsStream, useMaxLeverage, useMaxQty, useMaxWithdrawal, useMediaQuery, useMemoizedFn, useMutation, useNetworkInfo, useOdosQuote, useOrderEntity, useOrderEntry2 as useOrderEntry, useOrderEntry as useOrderEntry_deprecated, useOrderStore2 as useOrderStore, useOrderStream, useOrderbookStream, useOrderlyContext, usePortfolio, usePositionActions, usePositionClose, usePositionStream, usePoster, usePreLoadData, usePrivateDataObserver, usePrivateInfiniteQuery, usePrivateQuery, useQuery, useRefereeHistory, useRefereeInfo, useRefereeRebateSummary, useReferralInfo, useReferralRebateSummary, useRestrictedInfo, useSessionStorage, useSettleSubscription, useSimpleDI, useStatisticsDaily, useStorageChain, useStorageLedgerAddress, useSubAccountDataObserver, useSubAccountMaxWithdrawal, useSubAccountMutation, useSubAccountQuery, useSubAccountWS, useSymbolInfo, useSymbolLeverage, useSymbolPriceRange, useSymbolsInfo, useSymbolsInfoStore, useTPSLOrder, useTickerStream, useTokenInfo, useTokensInfo, useTrack, useTrackingInstance, useTradingRewardsStatus, useTransfer, useTransferHistory, useUpdatedRef, useVaultsHistory, useWS, useWalletConnector, useWalletRewardsHistory, useWalletSubscription, useWalletTopic, useWithdraw, useWsStatus, utils_exports as utils, version_default as version };
|
|
17873
|
+
export { DefaultLayoutConfig, DistributionId, ENVType2 as ENVType, EpochStatus, ExtendedConfigStore, MaintenanceStatus, MarketsStorageKey, MarketsType, ORDERLY_ORDERBOOK_DEPTH_KEY, OrderlyConfigProvider, OrderlyContext, OrderlyProvider, StatusProvider, TWType, WalletConnectorContext, WsNetworkStatus, checkNotional, cleanStringStyle, fetcher, findPositionTPSLFromOrders, findTPSLFromOrder, findTPSLOrderPriceFromOrder, getMinNotional, getPriceKey, noCacheConfig, parseJSON, useAccount, useAccountInfo, useAccountInstance, useAccountRewardsHistory, useAllBrokers, useApiKeyManager, useAssetsHistory, useAudioPlayer, useBalanceSubscription, useBalanceTopic, useBoolean, useChain, useChainInfo, useChains, useCheckReferralCode, useCollateral, useCommission, useComputedLTV, useConfig, useConvert, useCurEpochEstimate, useDaily, useDeposit, useDistribution, useDistributionHistory, useEffectiveLeverage, useEpochInfo, useEventEmitter, useFeeState, useFundingDetails, useFundingFeeHistory, useFundingRate, useFundingRateHistory, useFundingRates, useFundingRatesStore, useGetClaimed, useGetEnv, useGetReferralCode, useHoldingStream, useIndexPrice, useIndexPricesStream, useInfiniteQuery, useInternalTransfer, useKeyStore, useLazyQuery, useLeverage, useLeverageBySymbol, useLocalStorage, useMaintenanceStatus, useMarginRatio, useMarkPrice, useMarkPriceBySymbol, useMarkPricesStream, useMarket, useMarketList, useMarketMap, useMarketTradeStream, useMarkets, useMarketsStore, useMarketsStream, useMaxLeverage, useMaxQty, useMaxWithdrawal, useMediaQuery, useMemoizedFn, useMutation, useNetworkInfo, useOdosQuote, useOrderEntity, useOrderEntry2 as useOrderEntry, useOrderEntry as useOrderEntry_deprecated, useOrderStore2 as useOrderStore, useOrderStream, useOrderbookStream, useOrderlyContext, usePortfolio, usePositionActions, usePositionClose, usePositionStore, usePositionStream, usePoster, usePreLoadData, usePrivateDataObserver, usePrivateInfiniteQuery, usePrivateQuery, useQuery, useRefereeHistory, useRefereeInfo, useRefereeRebateSummary, useReferralInfo, useReferralRebateSummary, useRestrictedInfo, useSessionStorage, useSettleSubscription, useSimpleDI, useStatisticsDaily, useStorageChain, useStorageLedgerAddress, useSubAccountDataObserver, useSubAccountMaxWithdrawal, useSubAccountMutation, useSubAccountQuery, useSubAccountWS, useSymbolInfo, useSymbolLeverage, useSymbolPriceRange, useSymbolsInfo, useSymbolsInfoStore, useTPSLOrder, useTickerStream, useTokenInfo, useTokensInfo, useTrack, useTrackingInstance, useTradingRewardsStatus, useTransfer, useTransferHistory, useUpdatedRef, useVaultsHistory, useWS, useWalletConnector, useWalletRewardsHistory, useWalletSubscription, useWalletTopic, useWithdraw, useWsStatus, utils_exports as utils, version_default as version };
|
|
17799
17874
|
//# sourceMappingURL=out.js.map
|
|
17800
17875
|
//# sourceMappingURL=index.mjs.map
|