opentool 0.19.5 → 0.19.8
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/adapters/hyperliquid/browser.d.ts +1 -1
- package/dist/adapters/hyperliquid/browser.js +80 -7
- package/dist/adapters/hyperliquid/browser.js.map +1 -1
- package/dist/adapters/hyperliquid/index.d.ts +8 -5
- package/dist/adapters/hyperliquid/index.js +80 -7
- package/dist/adapters/hyperliquid/index.js.map +1 -1
- package/dist/{browser-Bieph3Ou.d.ts → browser-DhzKDXIg.d.ts} +2 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +80 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/base/package.json +1 -1
- package/templates/polymarket-simple-trade/package.json +1 -1
|
@@ -500,6 +500,8 @@ declare function formatHyperliquidMarketablePrice(params: {
|
|
|
500
500
|
side: "buy" | "sell";
|
|
501
501
|
slippageBps: number;
|
|
502
502
|
tick?: HyperliquidTickSize | null;
|
|
503
|
+
szDecimals?: number | null;
|
|
504
|
+
marketType?: HyperliquidMarketType;
|
|
503
505
|
}): string;
|
|
504
506
|
declare function extractHyperliquidOrderIds(responses: HyperliquidOrderResponseLike[]): {
|
|
505
507
|
cloids: string[];
|
package/dist/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export { AgentDigestRequest, MyToolsResponse, StoreAction, StoreError, StoreEven
|
|
|
11
11
|
export { BACKTEST_DECISION_MODE, BacktestDecisionRequest, BacktestDecisionSeriesInput, BacktestMode, BacktestResolution, ResolvedBacktestWindow, backtestDecisionRequestSchema, buildBacktestDecisionSeriesInput, estimateCountBack, parseTimeToSeconds, resolutionToSeconds, resolveBacktestAccountValueUsd, resolveBacktestMode, resolveBacktestWindow } from './backtest/index.js';
|
|
12
12
|
import { ZodSchema } from 'zod';
|
|
13
13
|
export { C as ChainMetadata, a as ChainReference, b as ChainTokenMap, H as Hex, c as HexAddress, N as NonceSource, R as RpcProviderOptions, d as RpcUrlResolver, T as TokenMetadata, e as TurnkeyOptions, f as TurnkeySignWith, W as WalletBaseContext, g as WalletContext, h as WalletFullContext, i as WalletOptions, j as WalletOptionsBase, k as WalletPrivateKeyOptions, l as WalletProviderType, m as WalletReadonlyContext, n as WalletReadonlyOptions, o as WalletRegistry, p as WalletSendTransactionParams, q as WalletSignerContext, r as WalletTransferParams, s as WalletTurnkeyOptions } from './types-BaTmu0gS.js';
|
|
14
|
-
export { D as DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, a as DEFAULT_HYPERLIQUID_TPSL_MARKET_SLIPPAGE_BPS, H as HYPERLIQUID_HIP3_DEXES, b as HyperliquidAbstraction, c as HyperliquidAccountMode, d as HyperliquidActiveAsset, e as HyperliquidApiError, f as HyperliquidApproximateLiquidationParams, g as HyperliquidBar, h as HyperliquidBarResolution, i as HyperliquidBuilderApprovalError, j as HyperliquidBuilderFee, k as HyperliquidEnvironment, l as HyperliquidExchangeClient, m as HyperliquidExchangeResponse, n as HyperliquidGrouping, o as HyperliquidGuardError, p as HyperliquidHip3Dex, q as HyperliquidIndicatorBar, r as HyperliquidInfoClient, s as HyperliquidMarketDescriptor, t as HyperliquidMarketDescriptorInput, u as HyperliquidMarketIdentityInput, v as HyperliquidMarketType, w as HyperliquidOpenOrderLike, x as HyperliquidOrderIntent, y as HyperliquidParsedSymbol, z as HyperliquidParsedSymbolKind, A as HyperliquidPerpMarketInfo, B as HyperliquidPlaceOrderWithTpSlOptions, C as HyperliquidPlacePositionTpSlOptions, E as HyperliquidProfileAsset, F as HyperliquidProfileAssetInput, G as HyperliquidProfileChain, I as HyperliquidResolvedMarketDescriptor, J as HyperliquidSpotMarketInfo, K as HyperliquidTermsError, L as HyperliquidTickSize, M as HyperliquidTimeInForce, N as HyperliquidTpSlExecutionType, O as HyperliquidTpSlLegInput, P as HyperliquidTriggerOptions, Q as HyperliquidTriggerType, R as MarketIdentity, _ as __hyperliquidMarketDataInternals, S as batchModifyHyperliquidOrders, T as buildHyperliquidMarketDescriptor, U as buildHyperliquidMarketIdentity, V as buildHyperliquidProfileAssets, W as buildHyperliquidSpotUsdPriceMap, X as cancelAllHyperliquidOrders, Y as cancelHyperliquidOrders, Z as cancelHyperliquidOrdersByCloid, $ as cancelHyperliquidTwapOrder, a0 as computeHyperliquidMarketIocLimitPrice, a1 as createHyperliquidSubAccount, a2 as createMonotonicNonceFactory, a3 as estimateHyperliquidLiquidationPrice, a4 as extractHyperliquidDex, a5 as extractHyperliquidOrderIds, a6 as fetchHyperliquidActiveAsset, a7 as fetchHyperliquidAllMids, a8 as fetchHyperliquidAssetCtxs, a9 as fetchHyperliquidBars, aa as fetchHyperliquidDexMeta, ab as fetchHyperliquidDexMetaAndAssetCtxs, ac as fetchHyperliquidFrontendOpenOrders, ad as fetchHyperliquidFrontendOpenOrdersAcrossDexes, ae as fetchHyperliquidHistoricalOrders, af as fetchHyperliquidMeta, ag as fetchHyperliquidMetaAndAssetCtxs, ah as fetchHyperliquidOpenOrders, ai as fetchHyperliquidOpenOrdersAcrossDexes, aj as fetchHyperliquidOrderStatus, ak as fetchHyperliquidPerpMarketInfo, al as fetchHyperliquidPreTransferCheck, am as fetchHyperliquidResolvedInfoCoin, an as fetchHyperliquidResolvedMarketDescriptor, ao as fetchHyperliquidSizeDecimals, ap as fetchHyperliquidSpotAccountValue, aq as fetchHyperliquidSpotAssetCtxs, ar as fetchHyperliquidSpotClearinghouseState, as as fetchHyperliquidSpotMarketInfo, at as fetchHyperliquidSpotMeta, au as fetchHyperliquidSpotMetaAndAssetCtxs, av as fetchHyperliquidSpotTickSize, aw as fetchHyperliquidSpotUsdPriceMap, ax as fetchHyperliquidTickSize, ay as fetchHyperliquidUserFills, az as fetchHyperliquidUserFillsByTime, aA as fetchHyperliquidUserRateLimit, aB as formatHyperliquidMarketablePrice, aC as formatHyperliquidOrderSize, aD as formatHyperliquidPrice, aE as formatHyperliquidSize, aF as getKnownHyperliquidDexes, aG as isHyperliquidSpotSymbol, aH as modifyHyperliquidOrder, aI as normalizeHyperliquidBaseSymbol, aJ as normalizeHyperliquidIndicatorBars, aK as normalizeHyperliquidMetaSymbol, aL as normalizeSpotTokenName, aM as parseHyperliquidSymbol, aN as parseSpotPairSymbol, aO as placeHyperliquidOrderWithTpSl, aP as placeHyperliquidPositionTpSl, aQ as placeHyperliquidTwapOrder, aR as reserveHyperliquidRequestWeight, aS as resolveHyperliquidAbstractionFromMode, aT as resolveHyperliquidErrorDetail, aU as resolveHyperliquidLeverageMode, aV as resolveHyperliquidMarketDataCoin, aW as resolveHyperliquidOrderRef, aX as resolveHyperliquidOrderSymbol, aY as resolveHyperliquidPair, aZ as resolveHyperliquidPerpSymbol, a_ as resolveHyperliquidProfileChain, a$ as resolveHyperliquidSpotSymbol, b0 as resolveHyperliquidSymbol, b1 as resolveSpotMidCandidates, b2 as resolveSpotTokenCandidates, b3 as roundHyperliquidPriceToTick, b4 as scheduleHyperliquidCancel, b5 as sendHyperliquidSpot, b6 as setHyperliquidAccountAbstractionMode, b7 as setHyperliquidPortfolioMargin, b8 as supportsHyperliquidBuilderFee, b9 as transferHyperliquidSubAccount, ba as updateHyperliquidIsolatedMargin, bb as updateHyperliquidLeverage } from './browser-
|
|
14
|
+
export { D as DEFAULT_HYPERLIQUID_MARKET_SLIPPAGE_BPS, a as DEFAULT_HYPERLIQUID_TPSL_MARKET_SLIPPAGE_BPS, H as HYPERLIQUID_HIP3_DEXES, b as HyperliquidAbstraction, c as HyperliquidAccountMode, d as HyperliquidActiveAsset, e as HyperliquidApiError, f as HyperliquidApproximateLiquidationParams, g as HyperliquidBar, h as HyperliquidBarResolution, i as HyperliquidBuilderApprovalError, j as HyperliquidBuilderFee, k as HyperliquidEnvironment, l as HyperliquidExchangeClient, m as HyperliquidExchangeResponse, n as HyperliquidGrouping, o as HyperliquidGuardError, p as HyperliquidHip3Dex, q as HyperliquidIndicatorBar, r as HyperliquidInfoClient, s as HyperliquidMarketDescriptor, t as HyperliquidMarketDescriptorInput, u as HyperliquidMarketIdentityInput, v as HyperliquidMarketType, w as HyperliquidOpenOrderLike, x as HyperliquidOrderIntent, y as HyperliquidParsedSymbol, z as HyperliquidParsedSymbolKind, A as HyperliquidPerpMarketInfo, B as HyperliquidPlaceOrderWithTpSlOptions, C as HyperliquidPlacePositionTpSlOptions, E as HyperliquidProfileAsset, F as HyperliquidProfileAssetInput, G as HyperliquidProfileChain, I as HyperliquidResolvedMarketDescriptor, J as HyperliquidSpotMarketInfo, K as HyperliquidTermsError, L as HyperliquidTickSize, M as HyperliquidTimeInForce, N as HyperliquidTpSlExecutionType, O as HyperliquidTpSlLegInput, P as HyperliquidTriggerOptions, Q as HyperliquidTriggerType, R as MarketIdentity, _ as __hyperliquidMarketDataInternals, S as batchModifyHyperliquidOrders, T as buildHyperliquidMarketDescriptor, U as buildHyperliquidMarketIdentity, V as buildHyperliquidProfileAssets, W as buildHyperliquidSpotUsdPriceMap, X as cancelAllHyperliquidOrders, Y as cancelHyperliquidOrders, Z as cancelHyperliquidOrdersByCloid, $ as cancelHyperliquidTwapOrder, a0 as computeHyperliquidMarketIocLimitPrice, a1 as createHyperliquidSubAccount, a2 as createMonotonicNonceFactory, a3 as estimateHyperliquidLiquidationPrice, a4 as extractHyperliquidDex, a5 as extractHyperliquidOrderIds, a6 as fetchHyperliquidActiveAsset, a7 as fetchHyperliquidAllMids, a8 as fetchHyperliquidAssetCtxs, a9 as fetchHyperliquidBars, aa as fetchHyperliquidDexMeta, ab as fetchHyperliquidDexMetaAndAssetCtxs, ac as fetchHyperliquidFrontendOpenOrders, ad as fetchHyperliquidFrontendOpenOrdersAcrossDexes, ae as fetchHyperliquidHistoricalOrders, af as fetchHyperliquidMeta, ag as fetchHyperliquidMetaAndAssetCtxs, ah as fetchHyperliquidOpenOrders, ai as fetchHyperliquidOpenOrdersAcrossDexes, aj as fetchHyperliquidOrderStatus, ak as fetchHyperliquidPerpMarketInfo, al as fetchHyperliquidPreTransferCheck, am as fetchHyperliquidResolvedInfoCoin, an as fetchHyperliquidResolvedMarketDescriptor, ao as fetchHyperliquidSizeDecimals, ap as fetchHyperliquidSpotAccountValue, aq as fetchHyperliquidSpotAssetCtxs, ar as fetchHyperliquidSpotClearinghouseState, as as fetchHyperliquidSpotMarketInfo, at as fetchHyperliquidSpotMeta, au as fetchHyperliquidSpotMetaAndAssetCtxs, av as fetchHyperliquidSpotTickSize, aw as fetchHyperliquidSpotUsdPriceMap, ax as fetchHyperliquidTickSize, ay as fetchHyperliquidUserFills, az as fetchHyperliquidUserFillsByTime, aA as fetchHyperliquidUserRateLimit, aB as formatHyperliquidMarketablePrice, aC as formatHyperliquidOrderSize, aD as formatHyperliquidPrice, aE as formatHyperliquidSize, aF as getKnownHyperliquidDexes, aG as isHyperliquidSpotSymbol, aH as modifyHyperliquidOrder, aI as normalizeHyperliquidBaseSymbol, aJ as normalizeHyperliquidIndicatorBars, aK as normalizeHyperliquidMetaSymbol, aL as normalizeSpotTokenName, aM as parseHyperliquidSymbol, aN as parseSpotPairSymbol, aO as placeHyperliquidOrderWithTpSl, aP as placeHyperliquidPositionTpSl, aQ as placeHyperliquidTwapOrder, aR as reserveHyperliquidRequestWeight, aS as resolveHyperliquidAbstractionFromMode, aT as resolveHyperliquidErrorDetail, aU as resolveHyperliquidLeverageMode, aV as resolveHyperliquidMarketDataCoin, aW as resolveHyperliquidOrderRef, aX as resolveHyperliquidOrderSymbol, aY as resolveHyperliquidPair, aZ as resolveHyperliquidPerpSymbol, a_ as resolveHyperliquidProfileChain, a$ as resolveHyperliquidSpotSymbol, b0 as resolveHyperliquidSymbol, b1 as resolveSpotMidCandidates, b2 as resolveSpotTokenCandidates, b3 as roundHyperliquidPriceToTick, b4 as scheduleHyperliquidCancel, b5 as sendHyperliquidSpot, b6 as setHyperliquidAccountAbstractionMode, b7 as setHyperliquidPortfolioMargin, b8 as supportsHyperliquidBuilderFee, b9 as transferHyperliquidSubAccount, ba as updateHyperliquidIsolatedMargin, bb as updateHyperliquidLeverage } from './browser-DhzKDXIg.js';
|
|
15
15
|
import 'viem';
|
|
16
16
|
import 'viem/accounts';
|
|
17
17
|
|
package/dist/index.js
CHANGED
|
@@ -3669,6 +3669,31 @@ var StringMath = {
|
|
|
3669
3669
|
}
|
|
3670
3670
|
return digits.join("").replace(/^0+(?=\d)/, "") || "0";
|
|
3671
3671
|
},
|
|
3672
|
+
toPrecisionDirectional(value, precision, mode) {
|
|
3673
|
+
if (!Number.isInteger(precision) || precision < 1) {
|
|
3674
|
+
throw new RangeError("Precision must be a positive integer.");
|
|
3675
|
+
}
|
|
3676
|
+
if (/^-?0+(\.0*)?$/.test(value)) return "0";
|
|
3677
|
+
const negative = value.startsWith("-");
|
|
3678
|
+
const abs = negative ? value.slice(1) : value;
|
|
3679
|
+
const magnitude = StringMath.log10Floor(abs);
|
|
3680
|
+
const shiftAmount = precision - magnitude - 1;
|
|
3681
|
+
const shifted = StringMath.multiplyByPow10(abs, shiftAmount);
|
|
3682
|
+
const rounded = StringMath.roundInteger(shifted, mode);
|
|
3683
|
+
const shiftedBack = StringMath.multiplyByPow10(rounded, -shiftAmount);
|
|
3684
|
+
return normalizeDecimalString(negative ? `-${shiftedBack}` : shiftedBack);
|
|
3685
|
+
},
|
|
3686
|
+
toFixedDirectional(value, decimals, mode) {
|
|
3687
|
+
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
3688
|
+
throw new RangeError("Decimals must be a non-negative integer.");
|
|
3689
|
+
}
|
|
3690
|
+
if (decimals === 0) {
|
|
3691
|
+
return normalizeDecimalString(StringMath.roundInteger(value, mode));
|
|
3692
|
+
}
|
|
3693
|
+
const shifted = StringMath.multiplyByPow10(value, decimals);
|
|
3694
|
+
const rounded = StringMath.roundInteger(shifted, mode);
|
|
3695
|
+
return normalizeDecimalString(StringMath.multiplyByPow10(rounded, -decimals));
|
|
3696
|
+
},
|
|
3672
3697
|
toPrecisionTruncate(value, precision) {
|
|
3673
3698
|
if (!Number.isInteger(precision) || precision < 1) {
|
|
3674
3699
|
throw new RangeError("Precision must be a positive integer.");
|
|
@@ -3761,6 +3786,26 @@ function formatHyperliquidOrderSize(value, szDecimals) {
|
|
|
3761
3786
|
return "0";
|
|
3762
3787
|
}
|
|
3763
3788
|
}
|
|
3789
|
+
function resolveSizeDecimals(value) {
|
|
3790
|
+
if (typeof value !== "number" || !Number.isFinite(value)) return 8;
|
|
3791
|
+
return Math.max(0, Math.min(8, Math.floor(value)));
|
|
3792
|
+
}
|
|
3793
|
+
function formatDirectionalHyperliquidPrice(price, params) {
|
|
3794
|
+
const normalized = price.toString().trim();
|
|
3795
|
+
assertNumberString(normalized);
|
|
3796
|
+
if (/^-?\d+$/.test(normalized)) {
|
|
3797
|
+
return normalizeDecimalString(normalized);
|
|
3798
|
+
}
|
|
3799
|
+
const szDecimals = resolveSizeDecimals(params.szDecimals);
|
|
3800
|
+
const maxDecimals2 = Math.max((params.marketType === "perp" ? 6 : 8) - szDecimals, 0);
|
|
3801
|
+
const decimalsAdjusted = StringMath.toFixedDirectional(normalized, maxDecimals2, params.mode);
|
|
3802
|
+
const sigFigAdjusted = StringMath.toPrecisionDirectional(
|
|
3803
|
+
decimalsAdjusted,
|
|
3804
|
+
5,
|
|
3805
|
+
params.mode
|
|
3806
|
+
);
|
|
3807
|
+
return sigFigAdjusted === "0" ? null : sigFigAdjusted;
|
|
3808
|
+
}
|
|
3764
3809
|
function roundHyperliquidPriceToTick(price, tick, side) {
|
|
3765
3810
|
if (!Number.isFinite(tick.tickDecimals) || tick.tickDecimals < 0) {
|
|
3766
3811
|
throw new Error("tick.tickDecimals must be a non-negative number.");
|
|
@@ -3783,13 +3828,25 @@ function roundHyperliquidPriceToTick(price, tick, side) {
|
|
|
3783
3828
|
return formatScaledDecimal(rounded, tick.tickDecimals);
|
|
3784
3829
|
}
|
|
3785
3830
|
function formatHyperliquidMarketablePrice(params) {
|
|
3786
|
-
const { mid, side, slippageBps, tick } = params;
|
|
3831
|
+
const { mid, side, slippageBps, tick, szDecimals, marketType = "perp" } = params;
|
|
3787
3832
|
if (!Number.isFinite(mid) || mid <= 0) {
|
|
3788
3833
|
throw new Error("mid must be a positive number.");
|
|
3789
3834
|
}
|
|
3790
3835
|
if (!Number.isFinite(slippageBps) || slippageBps < 0) {
|
|
3791
3836
|
throw new Error("slippageBps must be a non-negative number.");
|
|
3792
3837
|
}
|
|
3838
|
+
const adjustedMid = mid * (side === "buy" ? 1 + slippageBps / 1e4 : 1 - slippageBps / 1e4);
|
|
3839
|
+
if (typeof szDecimals === "number" && Number.isFinite(szDecimals)) {
|
|
3840
|
+
const formatted = formatDirectionalHyperliquidPrice(adjustedMid, {
|
|
3841
|
+
szDecimals,
|
|
3842
|
+
marketType,
|
|
3843
|
+
mode: side === "buy" ? "up" : "down"
|
|
3844
|
+
});
|
|
3845
|
+
if (!formatted) {
|
|
3846
|
+
throw new RangeError("Marketable price is too small and was truncated to 0.");
|
|
3847
|
+
}
|
|
3848
|
+
return formatted;
|
|
3849
|
+
}
|
|
3793
3850
|
const midString = normalizeDecimalString(mid.toString());
|
|
3794
3851
|
const baseDecimals = countDecimalPlaces(midString);
|
|
3795
3852
|
const workDecimals = Math.max(baseDecimals + 4, tick?.tickDecimals ?? 0, 8);
|
|
@@ -3798,12 +3855,12 @@ function formatHyperliquidMarketablePrice(params) {
|
|
|
3798
3855
|
side === "buy" ? 1e4 + slippageBps : 1e4 - slippageBps
|
|
3799
3856
|
);
|
|
3800
3857
|
const adjustedScaled = side === "buy" ? ceilDiv(scaledMid * slippageNumerator, 10000n) : scaledMid * slippageNumerator / 10000n;
|
|
3801
|
-
const
|
|
3858
|
+
const adjustedString = formatScaledDecimal(adjustedScaled, workDecimals);
|
|
3802
3859
|
if (tick) {
|
|
3803
|
-
return roundHyperliquidPriceToTick(
|
|
3860
|
+
return roundHyperliquidPriceToTick(adjustedString, tick, side);
|
|
3804
3861
|
}
|
|
3805
3862
|
const roundedScaled = scaleDecimalToInt(
|
|
3806
|
-
|
|
3863
|
+
adjustedString,
|
|
3807
3864
|
baseDecimals,
|
|
3808
3865
|
side === "buy" ? "up" : "down"
|
|
3809
3866
|
);
|
|
@@ -4453,10 +4510,24 @@ async function fetchHyperliquidSizeDecimals(params) {
|
|
|
4453
4510
|
const match = universe.find(
|
|
4454
4511
|
(entry) => normalizeHyperliquidMetaSymbol(entry?.name ?? "").toUpperCase() === normalized
|
|
4455
4512
|
);
|
|
4456
|
-
if (
|
|
4513
|
+
if (match && typeof match.szDecimals === "number") {
|
|
4514
|
+
return match.szDecimals;
|
|
4515
|
+
}
|
|
4516
|
+
const parsed = parseHyperliquidSymbol(symbol);
|
|
4517
|
+
const dex = parsed?.dex ?? null;
|
|
4518
|
+
if (!dex) {
|
|
4519
|
+
throw new Error(`No size decimals found for ${symbol}.`);
|
|
4520
|
+
}
|
|
4521
|
+
const dexMetaAndCtxs = await fetchHyperliquidDexMetaAndAssetCtxs(environment, dex);
|
|
4522
|
+
const dexUniverse = Array.isArray(dexMetaAndCtxs?.[0]?.universe) ? dexMetaAndCtxs[0].universe : [];
|
|
4523
|
+
const dexMatch = dexUniverse.find(
|
|
4524
|
+
(entry) => normalizeHyperliquidMetaSymbol(entry?.name ?? "").toUpperCase() === normalized
|
|
4525
|
+
);
|
|
4526
|
+
const dexSizeDecimals = readHyperliquidNumber(dexMatch?.szDecimals);
|
|
4527
|
+
if (dexSizeDecimals == null) {
|
|
4457
4528
|
throw new Error(`No size decimals found for ${symbol}.`);
|
|
4458
4529
|
}
|
|
4459
|
-
return
|
|
4530
|
+
return dexSizeDecimals;
|
|
4460
4531
|
}
|
|
4461
4532
|
function buildHyperliquidSpotUsdPriceMap(params) {
|
|
4462
4533
|
const universe = params.meta.universe ?? [];
|
|
@@ -4784,7 +4855,9 @@ async function buildTpSlChildOrder(params) {
|
|
|
4784
4855
|
mid: triggerPxNumeric,
|
|
4785
4856
|
side: childSide,
|
|
4786
4857
|
slippageBps: params.triggerMarketSlippageBps,
|
|
4787
|
-
tick
|
|
4858
|
+
tick,
|
|
4859
|
+
szDecimals,
|
|
4860
|
+
marketType
|
|
4788
4861
|
});
|
|
4789
4862
|
return {
|
|
4790
4863
|
symbol: params.symbol,
|