@pear-protocol/hyperliquid 0.1.0 → 0.1.1
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/README.md +1 -4
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/api/errors.ts","../src/api/generated/base.ts","../src/api/generated/common.ts","../src/api/generated/api.ts","../src/api/generated/configuration.ts","../src/api/index.ts","../src/market/chart/utils.ts","../src/market/chart/cache/index.ts","../src/market/chart/candle-ws.ts","../src/market/chart/collector/fetch-candles.ts","../src/market/chart/collector/index.ts","../src/market/chart/compute/asset.ts","../src/market/chart/compute/performance.ts","../src/market/chart/compute/price-ratio.ts","../src/market/chart/compute/weighted-ratio.ts","../src/market/chart/chart.ts","../src/user/positions/utils.ts","../src/market/utils.ts","../src/market/subscriptions.ts","../src/user/orders/utils.ts","../src/user/positions/processor.ts","../src/user/subscriptions.ts","../src/user/sync.ts","../src/ws/transport.ts","../src/ws/pear/pear-ws.ts","../src/ws/hyperliquid/hyperliquid-ws.ts","../src/sdk.ts","../src/ws/pear/types.ts"],"names":["PearErrorCode","PearApiError","message","statusCode","code","originalError","BASE_PATH","BaseAPI","configuration","basePath","axios","globalAxios","RequiredError","field","msg","operationServerMap","DUMMY_BASE_URL","assertParamExists","functionName","paramName","paramValue","setBearerAuthToObject","object","accessToken","setFlattenedQueryParams","urlSearchParams","parameter","key","item","currentKey","setSearchParams","url","objects","searchParams","serializeDataIfNeeded","value","requestOptions","nonString","toPathString","createRequestFunction","axiosArgs","axiosRequestArgs","AdjustPositionRequestDtoAdjustmentTypeEnum","AdjustPositionRequestDtoExecutionTypeEnum","AdjustPositionResponseDtoAdjustmentTypeEnum","AuthenticateRequestDtoMethodEnum","BtcDomMetaDtoKindEnum","ClosePositionRequestDtoExecutionTypeEnum","ClosePositionRequestDtoTriggerTypeEnum","ClosePositionRequestDtoDirectionEnum","CreatePositionRequestDtoExecutionTypeEnum","CreatePositionRequestDtoTriggerTypeEnum","CreatePositionRequestDtoDirectionEnum","CreatePositionRequestDtoMarketSourceEnum","ExternalFillDtoSideEnum","MarketDataV2BasketDtoCategoryEnum","MarketTriggerMetaDtoKindEnum","MarketTriggerMetaDtoTypeEnum","MarketTriggerMetaDtoStatusEnum","OpenOrderDtoOrderTypeEnum","OpenOrderDtoStatusEnum","OpenPositionProcessedDtoPearExecutionFlagEnum","OracleValueDtoUnitEnum","RebalanceAssetPlanDtoSideEnum","SpotOrderResponseDtoStatusEnum","TpSlOrderParametersTriggerTypeEnum","TpSlThresholdTypeEnum","TriggerDtoCategoryEnum","TriggerDtoSourceEnum","TriggerOrderParametersTriggerTypeEnum","TriggerOrderParametersDirectionEnum","TriggerOrderParametersMarketSourceEnum","TwapChunkStatusDtoStatusEnum","TwapMonitoringDtoStatusEnum","APIKeysApiAxiosParamCreator","apiKeysControllerCreateApiKeyRequest","options","localVarPath","localVarUrlObj","baseOptions","localVarRequestOptions","localVarHeaderParameter","localVarQueryParameter","headersFromBaseOptions","APIKeysApiFp","localVarAxiosParamCreator","localVarAxiosArgs","localVarOperationServerIndex","localVarOperationServerBasePath","APIKeysApiFactory","localVarFp","request","APIKeysApi","AccountsApiAxiosParamCreator","AccountsApiFp","AccountsApiFactory","AccountsApi","AgentWalletApiAxiosParamCreator","AgentWalletApiFp","AgentWalletApiFactory","AgentWalletApi","AuthenticationApiAxiosParamCreator","authenticateRequestDto","address","clientId","chainId","logoutRequestDto","refreshTokenRequestDto","AuthenticationApiFp","AuthenticationApiFactory","AuthenticationApi","FillsApiAxiosParamCreator","assetName","isPearTrade","startTime","endTime","FillsApiFp","FillsApiFactory","FillsApi","HealthApiAxiosParamCreator","HealthApiFp","HealthApiFactory","HealthApi","LegacySupportApiAxiosParamCreator","period","startDate","endDate","timestamp","LegacySupportApiFp","LegacySupportApiFactory","LegacySupportApi","MarketsApiAxiosParamCreator","offset","page","pageSize","engine","minVolume","change24h","netFunding","searchText","sort","excludeText","active","MarketsApiFp","MarketsApiFactory","MarketsApi","NotificationsApiAxiosParamCreator","limit","markNotificationsReadDto","NotificationsApiFp","NotificationsApiFactory","NotificationsApi","OrdersApiAxiosParamCreator","orderId","status","orderType","category","search","cursor","spotOrderRequestDto","OrdersApiFp","OrdersApiFactory","OrdersApi","OrdersControllerGetAllOrdersStatusEnum","OrdersControllerGetAllOrdersOrderTypeEnum","OrdersControllerGetTriggersCategoryEnum","PortfolioApiAxiosParamCreator","interval","rollingWindowDays","includeSeries","PortfolioApiFp","PortfolioApiFactory","PortfolioApi","PortfolioControllerGetAnalyticsIntervalEnum","PositionsApiAxiosParamCreator","positionId","adjustAdvanceItemDto","adjustLeverageRequestDto","adjustPositionRequestDto","closePositionRequestDto","createPositionRequestDto","rebalancePositionRequestDto","updateRiskParametersRequestDto","PositionsApiFp","PositionsApiFactory","PositionsApi","PublicStatsApiAxiosParamCreator","addresses","startFrom","PublicStatsApiFp","PublicStatsApiFactory","PublicStatsApi","SyncApiAxiosParamCreator","syncFillsRequestDto","SyncApiFp","SyncApiFactory","SyncApi","TradeHistoryApiAxiosParamCreator","TradeHistoryApiFp","TradeHistoryApiFactory","TradeHistoryApi","VaultWalletApiAxiosParamCreator","createVaultWalletRequestDto","vaultAddress","name","swapAndTransferRequestDto","transferPerpToSpotRequestDto","transferSpotToPerpRequestDto","VaultWalletApiFp","VaultWalletApiFactory","VaultWalletApi","WatchlistApiAxiosParamCreator","toggleWatchlistDto","WatchlistApiFp","WatchlistApiFactory","WatchlistApi","Configuration","param","mime","jsonMime","DEFAULT_BASE_PATH","PearApi","config","body","response","params","error","originalRequest","resolve","reject","newToken","e","data","refreshErr","token","cb","ApiClass","refreshToken","createKey","symbol","getIntervalSeconds","mergeRanges","ranges","newRange","all","a","b","merged","last","createCandleLookups","tokenCandles","lookups","candles","lookup","candle","getCompleteTimestamps","candleLookups","requiredSymbols","baseSymbol","baseLookup","baseSize","size","result","ok","CandleCache","range","existing","sortedCandles","noDataBefore","existingTimes","c","newCandles","mergedCandles","oldestTime","latestTime","mergedRanges","tokenData","intervalMs","hasStartCoverage","hasEndCoverage","symbols","maxBoundary","boundary","HyperliquidCandleWs","ws","onCandle","_symbol","_interval","_candles","d","fetchHistoricalCandles","DataCollector","longTokens","shortTokens","prevInterval","latestCandle","id","allTokens","t","callback","emptyResult","tokensToFetch","cachedData","fetchPromises","allData","currentSymbols","computeAssetBars","computeRealtimeAssetBar","snapshot","computePerformanceCandles","empty","allSymbols","completeTimestamps","baselinePrices","firstTimestamp","initialPortfolioValue","longSet","bars","portfolioValue","missing","baselinePrice","allocation","priceRatio","computeRealtimePerformanceBar","time","computePriceRatioCandles","longSumO","longSumH","longSumL","longSumC","shortSumO","shortSumH","shortSumL","shortSumC","w","computeRealtimePriceRatioBar","pow","base","exponent","computeWeightedRatioCandles","longOpen","longHigh","longLow","longClose","shortOpen","shortHigh","shortLow","shortClose","computeRealtimeWeightedRatioBar","Chart","chartType","formatTokens","tokens","bar","buildTokenMetadataMap","perpMetasByDex","assetCtxsByDex","map","dexName","assets","ctxs","i","asset","ctx","markPrice","currentPrice","prevDayPrice","priceChange24h","buildPriceMap","metadataMap","prices","meta","parsePerpMetas","perpMetas","perpDexNames","parseAssetCtxs","dexKey","getMarkPrice","coin","getLeverage","fallback","clearinghouseState","p","calculateAsset","totalInitialSize","totalCurrentSize","leverage","isLong","entryNotional","currentNotional","effectiveLeverage","marginUsed","entryMarginUsed","unrealizedPnl","aggregateClearinghouseStates","states","s","sum","values","acc","v","toStr","n","computeWeightedRatio","metadata","ratio","price","computePriceRatio","longPrice","shortPrice","computePrice","computeWeightedRatio24hAgo","computePriceRatio24hAgo","computePrice24hAgo","computeNetFundingRate","total","funding","computeMaxLeverage","min","lev","computeBasketSnapshot","MarketSubscriptions","hlWs","pearWs","metasRes","dexsRes","dexNames","handler","sub","enrichOrders","orders","positionsById","ord","isTpSl","hasAssets","pos","buildPositionValue","rawPositions","hideExternalPosition","position","detail","_","assetDetail","long","short","longMark","shortMark","_UserSubscriptions","api","getPrices","getAddress","addr","hlRes","pearRes","agentAddress","agent","UserSubscriptions","fetchFills","user","allFills","seenTids","batchSize","batch","fill","twapBatch","FillsSyncer","summary","fills","PearDefaultTransport","ReconnectingWebSocket","listener","event","ADDRESS_SPECIFIC_CHANNELS","PearWs","transport","raw","normalized","oldAddress","addressChannels","channel","wasActive","parsed","globalChannels","ch","channels","needsAddress","HyperliquidWs","subscription","handlerId","handlers","PearSdk","ReadyState"],"mappings":"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","file":"index.js","sourcesContent":["export enum PearErrorCode {\n POSITION_NOT_FOUND = 'POSITION_NOT_FOUND',\n POSITION_NOT_OPEN = 'POSITION_NOT_OPEN',\n POSITION_UNAUTHORIZED = 'POSITION_UNAUTHORIZED',\n ORDER_NOT_FOUND = 'ORDER_NOT_FOUND',\n INVALID_ORDER_STATUS = 'INVALID_ORDER_STATUS',\n INVALID_ORDER_TYPE = 'INVALID_ORDER_TYPE',\n ACTIVE_TRADE_TIMEOUT = 'ACTIVE_TRADE_TIMEOUT',\n UNSUPPORTED_EXECUTION_TYPE = 'UNSUPPORTED_EXECUTION_TYPE',\n DUPLICATE_TRIGGER = 'DUPLICATE_TRIGGER',\n HL_CANCEL_FAILED = 'HL_CANCEL_FAILED',\n HL_INSUFFICIENT_MARGIN = 'HL_INSUFFICIENT_MARGIN',\n HL_AGENT_WALLET_REVOKED = 'HL_AGENT_WALLET_REVOKED',\n HL_TICK_SIZE = 'HL_TICK_SIZE',\n HL_MIN_TRADE_VALUE = 'HL_MIN_TRADE_VALUE',\n HL_REDUCE_ONLY = 'HL_REDUCE_ONLY',\n HL_POST_ONLY_WOULD_MATCH = 'HL_POST_ONLY_WOULD_MATCH',\n HL_IOC_NO_MATCH = 'HL_IOC_NO_MATCH',\n HL_BAD_TRIGGER_PRICE = 'HL_BAD_TRIGGER_PRICE',\n HL_NO_LIQUIDITY = 'HL_NO_LIQUIDITY',\n HL_OPEN_INTEREST_CAP = 'HL_OPEN_INTEREST_CAP',\n HL_OPEN_INTEREST_RATE = 'HL_OPEN_INTEREST_RATE',\n HL_INSUFFICIENT_SPOT_BALANCE = 'HL_INSUFFICIENT_SPOT_BALANCE',\n HL_PRICE_TOO_FAR_FROM_ORACLE = 'HL_PRICE_TOO_FAR_FROM_ORACLE',\n HL_MAX_POSITION_EXCEEDED = 'HL_MAX_POSITION_EXCEEDED',\n HL_ORDER_MISSING = 'HL_ORDER_MISSING',\n HL_ORDER_FAILED = 'HL_ORDER_FAILED',\n INVALID_ADDRESS = 'INVALID_ADDRESS',\n MISSING_REQUIRED_FIELD = 'MISSING_REQUIRED_FIELD',\n INVALID_FIELD_VALUE = 'INVALID_FIELD_VALUE',\n UNSUPPORTED_TRIGGER_TYPE = 'UNSUPPORTED_TRIGGER_TYPE',\n INVALID_POSITION_STRUCTURE = 'INVALID_POSITION_STRUCTURE',\n INVALID_LADDER_CONFIG = 'INVALID_LADDER_CONFIG',\n LADDER_CREATION_FAILED = 'LADDER_CREATION_FAILED',\n TWAP_DURATION_REQUIRED = 'TWAP_DURATION_REQUIRED',\n TWAP_INSUFFICIENT_VALUE = 'TWAP_INSUFFICIENT_VALUE',\n TWAP_CHUNK_SCHEDULING_FAILED = 'TWAP_CHUNK_SCHEDULING_FAILED',\n LEVERAGE_CONFIG_FAILED = 'LEVERAGE_CONFIG_FAILED',\n INVALID_RISK_PARAMETERS = 'INVALID_RISK_PARAMETERS',\n VAULT_WALLET_NOT_FOUND = 'VAULT_WALLET_NOT_FOUND',\n VAULT_UNAUTHORIZED = 'VAULT_UNAUTHORIZED',\n VAULT_UNSUPPORTED_TOKEN = 'VAULT_UNSUPPORTED_TOKEN',\n VAULT_MISSING_CONFIG = 'VAULT_MISSING_CONFIG',\n INVALID_NOTIFICATION_PARAMS = 'INVALID_NOTIFICATION_PARAMS',\n INTERNAL_ERROR = 'INTERNAL_ERROR',\n NETWORK_ERROR = 'NETWORK_ERROR',\n UNKNOWN = 'UNKNOWN',\n}\n\nexport class PearApiError extends Error {\n constructor(\n message: string,\n public readonly statusCode: number,\n public readonly code: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = 'PearApiError';\n }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Pear Protocol Trading API\n * API for managing pair trading positions and orders on the Pear Protocol platform for Hyperliquid Engine.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: dev@pearprotocol.io\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport type { Configuration } from './configuration';\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';\nimport globalAxios from 'axios';\n\nexport const BASE_PATH = \"https://hl-v2.pearprotocol.io\".replace(/\\/+$/, \"\");\n\n/**\n *\n * @export\n */\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\n/**\n *\n * @export\n * @interface RequestArgs\n */\nexport interface RequestArgs {\n url: string;\n options: RawAxiosRequestConfig;\n}\n\n/**\n *\n * @export\n * @class BaseAPI\n */\nexport class BaseAPI {\n protected configuration: Configuration | undefined;\n\n constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {\n if (configuration) {\n this.configuration = configuration;\n this.basePath = configuration.basePath ?? basePath;\n }\n }\n};\n\n/**\n *\n * @export\n * @class RequiredError\n * @extends {Error}\n */\nexport class RequiredError extends Error {\n constructor(public field: string, msg?: string) {\n super(msg);\n this.name = \"RequiredError\"\n }\n}\n\ninterface ServerMap {\n [key: string]: {\n url: string,\n description: string,\n }[];\n}\n\n/**\n *\n * @export\n */\nexport const operationServerMap: ServerMap = {\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Pear Protocol Trading API\n * API for managing pair trading positions and orders on the Pear Protocol platform for Hyperliquid Engine.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: dev@pearprotocol.io\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport type { Configuration } from \"./configuration\";\nimport type { RequestArgs } from \"./base\";\nimport type { AxiosInstance, AxiosResponse } from 'axios';\nimport { RequiredError } from \"./base\";\n\n/**\n *\n * @export\n */\nexport const DUMMY_BASE_URL = 'https://example.com'\n\n/**\n *\n * @throws {RequiredError}\n * @export\n */\nexport const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {\n if (paramValue === null || paramValue === undefined) {\n throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);\n }\n}\n\n/**\n *\n * @export\n */\nexport const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {\n if (configuration && configuration.apiKey) {\n const localVarApiKeyValue = typeof configuration.apiKey === 'function'\n ? await configuration.apiKey(keyParamName)\n : await configuration.apiKey;\n object[keyParamName] = localVarApiKeyValue;\n }\n}\n\n/**\n *\n * @export\n */\nexport const setBasicAuthToObject = function (object: any, configuration?: Configuration) {\n if (configuration && (configuration.username || configuration.password)) {\n object[\"auth\"] = { username: configuration.username, password: configuration.password };\n }\n}\n\n/**\n *\n * @export\n */\nexport const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {\n if (configuration && configuration.accessToken) {\n const accessToken = typeof configuration.accessToken === 'function'\n ? await configuration.accessToken()\n : await configuration.accessToken;\n object[\"Authorization\"] = \"Bearer \" + accessToken;\n }\n}\n\n/**\n *\n * @export\n */\nexport const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {\n if (configuration && configuration.accessToken) {\n const localVarAccessTokenValue = typeof configuration.accessToken === 'function'\n ? await configuration.accessToken(name, scopes)\n : await configuration.accessToken;\n object[\"Authorization\"] = \"Bearer \" + localVarAccessTokenValue;\n }\n}\n\nfunction setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: any, key: string = \"\"): void {\n if (parameter == null) return;\n if (typeof parameter === \"object\") {\n if (Array.isArray(parameter)) {\n (parameter as any[]).forEach(item => setFlattenedQueryParams(urlSearchParams, item, key));\n }\n else {\n Object.keys(parameter).forEach(currentKey =>\n setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`)\n );\n }\n }\n else {\n if (urlSearchParams.has(key)) {\n urlSearchParams.append(key, parameter);\n }\n else {\n urlSearchParams.set(key, parameter);\n }\n }\n}\n\n/**\n *\n * @export\n */\nexport const setSearchParams = function (url: URL, ...objects: any[]) {\n const searchParams = new URLSearchParams(url.search);\n setFlattenedQueryParams(searchParams, objects);\n url.search = searchParams.toString();\n}\n\n/**\n *\n * @export\n */\nexport const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {\n const nonString = typeof value !== 'string';\n const needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(requestOptions.headers['Content-Type'])\n : nonString;\n return needsSerialization\n ? JSON.stringify(value !== undefined ? value : {})\n : (value || \"\");\n}\n\n/**\n *\n * @export\n */\nexport const toPathString = function (url: URL) {\n return url.pathname + url.search + url.hash\n}\n\n/**\n *\n * @export\n */\nexport const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {\n return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...axiosArgs.options, url: (axios.defaults.baseURL ? '' : configuration?.basePath ?? basePath) + axiosArgs.url};\n return axios.request<T, R>(axiosRequestArgs);\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Pear Protocol Trading API\n * API for managing pair trading positions and orders on the Pear Protocol platform for Hyperliquid Engine.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: dev@pearprotocol.io\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport type { Configuration } from './configuration';\nimport type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';\nimport globalAxios from 'axios';\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';\nimport type { RequestArgs } from './base';\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS, BaseAPI, RequiredError, operationServerMap } from './base';\n\n/**\n * \n * @export\n * @interface AccountSummaryResponseDto\n */\nexport interface AccountSummaryResponseDto {\n /**\n * Agent wallet address\n * @type {string}\n * @memberof AccountSummaryResponseDto\n */\n 'agentWalletAddress': string;\n /**\n * Total number of closed trades\n * @type {number}\n * @memberof AccountSummaryResponseDto\n */\n 'totalClosedTrades': number;\n /**\n * Total USD value of open trigger orders\n * @type {number}\n * @memberof AccountSummaryResponseDto\n */\n 'totalTriggerOrderUsdValue'?: number;\n /**\n * Total USD value of open TWAP chunks\n * @type {number}\n * @memberof AccountSummaryResponseDto\n */\n 'totalTwapChunkUsdValue'?: number;\n /**\n * Last synced timestamp in milliseconds\n * @type {number}\n * @memberof AccountSummaryResponseDto\n */\n 'lastSyncedAt'?: number;\n}\n/**\n * \n * @export\n * @interface ActiveAssetGroupItem\n */\nexport interface ActiveAssetGroupItem {\n /**\n * Unique identifier for the order group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'key': string;\n /**\n * Distinct long assets in the order group with weights\n * @type {Array<PairAssetDto>}\n * @memberof ActiveAssetGroupItem\n */\n 'longAssets': Array<PairAssetDto>;\n /**\n * Distinct short assets in the order group with weights\n * @type {Array<PairAssetDto>}\n * @memberof ActiveAssetGroupItem\n */\n 'shortAssets': Array<PairAssetDto>;\n /**\n * Open interest in USD for all assets in this group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'openInterest': string;\n /**\n * 24h traded volume in USD for this order group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'volume': string;\n /**\n * Current long/short ratio for this group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'ratio'?: string;\n /**\n * Previous day long/short ratio for this group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'prevRatio'?: string;\n /**\n * 24h change as decimal (e.g. 0.05 = +5%)\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'change24h'?: string;\n /**\n * Weighted (synthetic 50/50) current ratio for this group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'weightedRatio'?: string;\n /**\n * Weighted (synthetic 50/50) previous day ratio for this group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'weightedPrevRatio'?: string;\n /**\n * Weighted (synthetic 50/50) 24h change as decimal\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'weightedChange24h'?: string;\n /**\n * Net funding for the basket, weighted by allocation (longs negative, shorts positive)\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'netFunding': string;\n}\n/**\n * \n * @export\n * @interface ActiveAssetsResponse\n */\nexport interface ActiveAssetsResponse {\n /**\n * List of actively traded order-asset groups\n * @type {Array<ActiveAssetGroupItem>}\n * @memberof ActiveAssetsResponse\n */\n 'active': Array<ActiveAssetGroupItem>;\n /**\n * Top gaining long/short pairs over 24h\n * @type {Array<ActiveAssetGroupItem>}\n * @memberof ActiveAssetsResponse\n */\n 'topGainers': Array<ActiveAssetGroupItem>;\n /**\n * Top losing long/short pairs over 24h\n * @type {Array<ActiveAssetGroupItem>}\n * @memberof ActiveAssetsResponse\n */\n 'topLosers': Array<ActiveAssetGroupItem>;\n /**\n * Highlighted long/short pairs\n * @type {Array<ActiveAssetGroupItem>}\n * @memberof ActiveAssetsResponse\n */\n 'highlighted': Array<ActiveAssetGroupItem>;\n /**\n * User watchlist long/short pairs\n * @type {Array<ActiveAssetGroupItem>}\n * @memberof ActiveAssetsResponse\n */\n 'watchlist': Array<ActiveAssetGroupItem>;\n}\n/**\n * \n * @export\n * @interface AddressStatsItemDto\n */\nexport interface AddressStatsItemDto {\n /**\n * Wallet address\n * @type {string}\n * @memberof AddressStatsItemDto\n */\n 'address': string;\n /**\n * Total external fees paid (USD)\n * @type {number}\n * @memberof AddressStatsItemDto\n */\n 'totalExternalFeePaid': number;\n /**\n * Total builder fees paid (USD)\n * @type {number}\n * @memberof AddressStatsItemDto\n */\n 'totalBuilderFeePaid': number;\n /**\n * Total volume (size * price) in USD\n * @type {number}\n * @memberof AddressStatsItemDto\n */\n 'totalVolume': number;\n}\n/**\n * \n * @export\n * @interface AddressStatsResponseDto\n */\nexport interface AddressStatsResponseDto {\n /**\n * \n * @type {Array<AddressStatsItemDto>}\n * @memberof AddressStatsResponseDto\n */\n 'data': Array<AddressStatsItemDto>;\n}\n/**\n * \n * @export\n * @interface AdjustAdvanceAssetDto\n */\nexport interface AdjustAdvanceAssetDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof AdjustAdvanceAssetDto\n */\n 'asset': string;\n /**\n * Target absolute size for this asset\n * @type {number}\n * @memberof AdjustAdvanceAssetDto\n */\n 'size': number;\n}\n/**\n * \n * @export\n * @interface AdjustAdvanceItemDto\n */\nexport interface AdjustAdvanceItemDto {\n /**\n * Target long assets with absolute sizes\n * @type {Array<AdjustAdvanceAssetDto>}\n * @memberof AdjustAdvanceItemDto\n */\n 'longAssets': Array<AdjustAdvanceAssetDto>;\n /**\n * Target short assets with absolute sizes\n * @type {Array<AdjustAdvanceAssetDto>}\n * @memberof AdjustAdvanceItemDto\n */\n 'shortAssets': Array<AdjustAdvanceAssetDto>;\n}\n/**\n * \n * @export\n * @interface AdjustAdvanceResponseDto\n */\nexport interface AdjustAdvanceResponseDto {\n /**\n * Order identifier\n * @type {string}\n * @memberof AdjustAdvanceResponseDto\n */\n 'orderId': string;\n /**\n * Order status\n * @type {string}\n * @memberof AdjustAdvanceResponseDto\n */\n 'status': string;\n /**\n * Execution timestamp\n * @type {string}\n * @memberof AdjustAdvanceResponseDto\n */\n 'executedAt': string;\n}\n/**\n * \n * @export\n * @interface AdjustLeverageRequestDto\n */\nexport interface AdjustLeverageRequestDto {\n /**\n * Applied leverage\n * @type {number}\n * @memberof AdjustLeverageRequestDto\n */\n 'leverage': number;\n}\n/**\n * \n * @export\n * @interface AdjustPositionRequestDto\n */\nexport interface AdjustPositionRequestDto {\n /**\n * Type of position adjustment (reduce or increase)\n * @type {string}\n * @memberof AdjustPositionRequestDto\n */\n 'adjustmentType': AdjustPositionRequestDtoAdjustmentTypeEnum;\n /**\n * Percentage of position to adjust (1-100%)\n * @type {number}\n * @memberof AdjustPositionRequestDto\n */\n 'adjustmentSize': number;\n /**\n * Type of execution for the adjustment\n * @type {string}\n * @memberof AdjustPositionRequestDto\n */\n 'executionType': AdjustPositionRequestDtoExecutionTypeEnum;\n /**\n * Required if executionType is LIMIT\n * @type {number}\n * @memberof AdjustPositionRequestDto\n */\n 'limitRatio'?: number;\n /**\n * Referral code to be attached to user address if user has no referral code\n * @type {string}\n * @memberof AdjustPositionRequestDto\n */\n 'referralCode'?: string;\n}\n\nexport const AdjustPositionRequestDtoAdjustmentTypeEnum = {\n Reduce: 'REDUCE',\n Increase: 'INCREASE'\n} as const;\n\nexport type AdjustPositionRequestDtoAdjustmentTypeEnum = typeof AdjustPositionRequestDtoAdjustmentTypeEnum[keyof typeof AdjustPositionRequestDtoAdjustmentTypeEnum];\nexport const AdjustPositionRequestDtoExecutionTypeEnum = {\n Market: 'MARKET',\n Limit: 'LIMIT'\n} as const;\n\nexport type AdjustPositionRequestDtoExecutionTypeEnum = typeof AdjustPositionRequestDtoExecutionTypeEnum[keyof typeof AdjustPositionRequestDtoExecutionTypeEnum];\n\n/**\n * \n * @export\n * @interface AdjustPositionResponseDto\n */\nexport interface AdjustPositionResponseDto {\n /**\n * Unique identifier for the adjustment order\n * @type {string}\n * @memberof AdjustPositionResponseDto\n */\n 'orderId': string;\n /**\n * Status of the adjustment order\n * @type {string}\n * @memberof AdjustPositionResponseDto\n */\n 'status': string;\n /**\n * Type of adjustment that was made\n * @type {string}\n * @memberof AdjustPositionResponseDto\n */\n 'adjustmentType': AdjustPositionResponseDtoAdjustmentTypeEnum;\n /**\n * Percentage used for position adjustment\n * @type {number}\n * @memberof AdjustPositionResponseDto\n */\n 'adjustmentSize': number;\n /**\n * New position size after adjustment\n * @type {number}\n * @memberof AdjustPositionResponseDto\n */\n 'newSize': number;\n /**\n * Timestamp when the reduction was executed\n * @type {string}\n * @memberof AdjustPositionResponseDto\n */\n 'executedAt': string;\n}\n\nexport const AdjustPositionResponseDtoAdjustmentTypeEnum = {\n Reduce: 'REDUCE',\n Increase: 'INCREASE'\n} as const;\n\nexport type AdjustPositionResponseDtoAdjustmentTypeEnum = typeof AdjustPositionResponseDtoAdjustmentTypeEnum[keyof typeof AdjustPositionResponseDtoAdjustmentTypeEnum];\n\n/**\n * \n * @export\n * @interface ApiKeyAuthDetailsDto\n */\nexport interface ApiKeyAuthDetailsDto {\n /**\n * API key for authentication\n * @type {string}\n * @memberof ApiKeyAuthDetailsDto\n */\n 'apiKey': string;\n}\n/**\n * \n * @export\n * @interface ApiKeysControllerCreateApiKey201Response\n */\nexport interface ApiKeysControllerCreateApiKey201Response {\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerCreateApiKey201Response\n */\n 'id'?: string;\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerCreateApiKey201Response\n */\n 'apiKey'?: string;\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerCreateApiKey201Response\n */\n 'name'?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerCreateApiKey201Response\n */\n 'createdAt'?: string;\n}\n/**\n * \n * @export\n * @interface ApiKeysControllerCreateApiKeyRequest\n */\nexport interface ApiKeysControllerCreateApiKeyRequest {\n /**\n * Optional name for the API key\n * @type {string}\n * @memberof ApiKeysControllerCreateApiKeyRequest\n */\n 'name'?: string;\n}\n/**\n * \n * @export\n * @interface ApiKeysControllerGetUserApiKeys200Response\n */\nexport interface ApiKeysControllerGetUserApiKeys200Response {\n /**\n * \n * @type {Array<ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner>}\n * @memberof ApiKeysControllerGetUserApiKeys200Response\n */\n 'apiKeys'?: Array<ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner>;\n}\n/**\n * \n * @export\n * @interface ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner\n */\nexport interface ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner {\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner\n */\n 'id'?: string;\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner\n */\n 'name'?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner\n */\n 'isActive'?: boolean;\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner\n */\n 'lastUsedAt'?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner\n */\n 'createdAt'?: string;\n}\n/**\n * \n * @export\n * @interface AssetAnalyticsDto\n */\nexport interface AssetAnalyticsDto {\n /**\n * Asset symbol (e.g. BTC)\n * @type {string}\n * @memberof AssetAnalyticsDto\n */\n 'asset': string;\n /**\n * \n * @type {MetricVariantDto}\n * @memberof AssetAnalyticsDto\n */\n 'realizedOnly': MetricVariantDto;\n /**\n * \n * @type {MetricVariantDto}\n * @memberof AssetAnalyticsDto\n */\n 'realizedPlusUnrealized': MetricVariantDto;\n /**\n * Unrealized PnL / max(1, days open)\n * @type {number}\n * @memberof AssetAnalyticsDto\n */\n 'unrealizedReturnPerDay': number | null;\n}\n/**\n * \n * @export\n * @interface AuthenticateRequestDto\n */\nexport interface AuthenticateRequestDto {\n /**\n * Authentication method\n * @type {string}\n * @memberof AuthenticateRequestDto\n */\n 'method': AuthenticateRequestDtoMethodEnum;\n /**\n * User wallet address\n * @type {string}\n * @memberof AuthenticateRequestDto\n */\n 'address': string;\n /**\n * Client identifier\n * @type {string}\n * @memberof AuthenticateRequestDto\n */\n 'clientId': string;\n /**\n * \n * @type {AuthenticateRequestDtoDetails}\n * @memberof AuthenticateRequestDto\n */\n 'details': AuthenticateRequestDtoDetails;\n}\n\nexport const AuthenticateRequestDtoMethodEnum = {\n Eip712: 'eip712',\n ApiKey: 'api_key',\n PrivyAccessToken: 'privy_access_token'\n} as const;\n\nexport type AuthenticateRequestDtoMethodEnum = typeof AuthenticateRequestDtoMethodEnum[keyof typeof AuthenticateRequestDtoMethodEnum];\n\n/**\n * @type AuthenticateRequestDtoDetails\n * Authentication method specific details\n * @export\n */\nexport type AuthenticateRequestDtoDetails = ApiKeyAuthDetailsDto | EIP712AuthDetailsDto | PrivyAuthDetailsDto;\n\n/**\n * \n * @export\n * @interface AuthenticateResponseDto\n */\nexport interface AuthenticateResponseDto {\n /**\n * JWT access token\n * @type {string}\n * @memberof AuthenticateResponseDto\n */\n 'accessToken': string;\n /**\n * Refresh token for obtaining new access tokens\n * @type {string}\n * @memberof AuthenticateResponseDto\n */\n 'refreshToken': string;\n /**\n * Token type\n * @type {string}\n * @memberof AuthenticateResponseDto\n */\n 'tokenType': string;\n /**\n * Token expiration time in seconds\n * @type {number}\n * @memberof AuthenticateResponseDto\n */\n 'expiresIn': number;\n /**\n * User wallet address\n * @type {string}\n * @memberof AuthenticateResponseDto\n */\n 'address': string;\n /**\n * Client identifier\n * @type {string}\n * @memberof AuthenticateResponseDto\n */\n 'clientId': string;\n}\n/**\n * \n * @export\n * @interface BtcDomMetaDto\n */\nexport interface BtcDomMetaDto {\n /**\n * \n * @type {string}\n * @memberof BtcDomMetaDto\n */\n 'kind': BtcDomMetaDtoKindEnum;\n /**\n * \n * @type {number}\n * @memberof BtcDomMetaDto\n */\n 'btcDominance': number;\n /**\n * \n * @type {number}\n * @memberof BtcDomMetaDto\n */\n 'ethDominance': number;\n /**\n * \n * @type {number}\n * @memberof BtcDomMetaDto\n */\n 'totalMarketCapUsd': number;\n /**\n * \n * @type {number}\n * @memberof BtcDomMetaDto\n */\n 'marketCapChange24hPercent': number;\n /**\n * Unix timestamp from CoinGecko\n * @type {number}\n * @memberof BtcDomMetaDto\n */\n 'updatedAt': number;\n}\n\nexport const BtcDomMetaDtoKindEnum = {\n PredictionMarket: 'prediction_market',\n Btcdom: 'btcdom'\n} as const;\n\nexport type BtcDomMetaDtoKindEnum = typeof BtcDomMetaDtoKindEnum[keyof typeof BtcDomMetaDtoKindEnum];\n\n/**\n * \n * @export\n * @interface CancelOrderResponseDto\n */\nexport interface CancelOrderResponseDto {\n /**\n * Order identifier\n * @type {string}\n * @memberof CancelOrderResponseDto\n */\n 'orderId': string;\n /**\n * Order status after cancellation\n * @type {string}\n * @memberof CancelOrderResponseDto\n */\n 'status': string;\n /**\n * Cancellation timestamp\n * @type {string}\n * @memberof CancelOrderResponseDto\n */\n 'cancelledAt': string;\n}\n/**\n * \n * @export\n * @interface CancelTwapResponseDto\n */\nexport interface CancelTwapResponseDto {\n /**\n * Order identifier that was cancelled\n * @type {string}\n * @memberof CancelTwapResponseDto\n */\n 'orderId': string;\n /**\n * Status of the cancellation operation\n * @type {string}\n * @memberof CancelTwapResponseDto\n */\n 'status': string;\n /**\n * Cancellation timestamp\n * @type {string}\n * @memberof CancelTwapResponseDto\n */\n 'cancelledAt': string;\n}\n/**\n * \n * @export\n * @interface ChunkFillDto\n */\nexport interface ChunkFillDto {\n /**\n * Fill identifier\n * @type {string}\n * @memberof ChunkFillDto\n */\n 'fillId': string;\n /**\n * Asset name\n * @type {string}\n * @memberof ChunkFillDto\n */\n 'assetName': string;\n /**\n * Fill price\n * @type {number}\n * @memberof ChunkFillDto\n */\n 'price': number;\n /**\n * Fill size\n * @type {number}\n * @memberof ChunkFillDto\n */\n 'size': number;\n /**\n * Fill execution timestamp\n * @type {string}\n * @memberof ChunkFillDto\n */\n 'executedAt': string;\n}\n/**\n * \n * @export\n * @interface CloseAllPositionsResponseDto\n */\nexport interface CloseAllPositionsResponseDto {\n /**\n * Results for each position close action\n * @type {Array<CloseAllPositionsResultDto>}\n * @memberof CloseAllPositionsResponseDto\n */\n 'results': Array<CloseAllPositionsResultDto>;\n}\n/**\n * \n * @export\n * @interface CloseAllPositionsResultDto\n */\nexport interface CloseAllPositionsResultDto {\n /**\n * Position identifier\n * @type {string}\n * @memberof CloseAllPositionsResultDto\n */\n 'positionId': string;\n /**\n * Whether the close action succeeded\n * @type {boolean}\n * @memberof CloseAllPositionsResultDto\n */\n 'success': boolean;\n /**\n * Order ID created for the close action\n * @type {string}\n * @memberof CloseAllPositionsResultDto\n */\n 'orderId'?: string;\n /**\n * Error message if the close action failed\n * @type {string}\n * @memberof CloseAllPositionsResultDto\n */\n 'error'?: string;\n}\n/**\n * \n * @export\n * @interface ClosePositionRequestDto\n */\nexport interface ClosePositionRequestDto {\n /**\n * Type of close order\n * @type {string}\n * @memberof ClosePositionRequestDto\n */\n 'executionType': ClosePositionRequestDtoExecutionTypeEnum;\n /**\n * TWAP duration in minutes - required if executionType is TWAP\n * @type {number}\n * @memberof ClosePositionRequestDto\n */\n 'twapDuration'?: number;\n /**\n * TWAP interval in seconds (time between close chunks). Defaults to 30 seconds if not provided.\n * @type {number}\n * @memberof ClosePositionRequestDto\n */\n 'twapIntervalSeconds'?: number;\n /**\n * Randomize TWAP execution times - optional for TWAP orders\n * @type {boolean}\n * @memberof ClosePositionRequestDto\n */\n 'randomizeExecution'?: boolean;\n /**\n * Trigger threshold for TRIGGER close orders\n * @type {string}\n * @memberof ClosePositionRequestDto\n */\n 'triggerValue'?: string;\n /**\n * Trigger type for TRIGGER close orders\n * @type {string}\n * @memberof ClosePositionRequestDto\n */\n 'triggerType'?: ClosePositionRequestDtoTriggerTypeEnum;\n /**\n * Direction for TRIGGER close orders\n * @type {string}\n * @memberof ClosePositionRequestDto\n */\n 'direction'?: ClosePositionRequestDtoDirectionEnum;\n /**\n * Referral code to be attached to user address if user has no referral code\n * @type {string}\n * @memberof ClosePositionRequestDto\n */\n 'referralCode'?: string;\n}\n\nexport const ClosePositionRequestDtoExecutionTypeEnum = {\n Market: 'MARKET',\n Twap: 'TWAP',\n Trigger: 'TRIGGER'\n} as const;\n\nexport type ClosePositionRequestDtoExecutionTypeEnum = typeof ClosePositionRequestDtoExecutionTypeEnum[keyof typeof ClosePositionRequestDtoExecutionTypeEnum];\nexport const ClosePositionRequestDtoTriggerTypeEnum = {\n Price: 'PRICE',\n PriceRatio: 'PRICE_RATIO',\n WeightedRatio: 'WEIGHTED_RATIO',\n Percentage: 'PERCENTAGE',\n Dollar: 'DOLLAR',\n PositionValue: 'POSITION_VALUE'\n} as const;\n\nexport type ClosePositionRequestDtoTriggerTypeEnum = typeof ClosePositionRequestDtoTriggerTypeEnum[keyof typeof ClosePositionRequestDtoTriggerTypeEnum];\nexport const ClosePositionRequestDtoDirectionEnum = {\n MoreThan: 'MORE_THAN',\n LessThan: 'LESS_THAN'\n} as const;\n\nexport type ClosePositionRequestDtoDirectionEnum = typeof ClosePositionRequestDtoDirectionEnum[keyof typeof ClosePositionRequestDtoDirectionEnum];\n\n/**\n * \n * @export\n * @interface ClosePositionResponseDto\n */\nexport interface ClosePositionResponseDto {\n /**\n * Unique identifier for the close order\n * @type {string}\n * @memberof ClosePositionResponseDto\n */\n 'orderId': string;\n /**\n * Execution time for the order\n * @type {string}\n * @memberof ClosePositionResponseDto\n */\n 'executionTime'?: string;\n /**\n * Created trigger order identifiers for TRIGGER close requests\n * @type {Array<string>}\n * @memberof ClosePositionResponseDto\n */\n 'orderIds'?: Array<string>;\n /**\n * Number of TWAP chunks scheduled (only for TWAP orders)\n * @type {number}\n * @memberof ClosePositionResponseDto\n */\n 'chunksScheduled'?: number;\n}\n/**\n * \n * @export\n * @interface CreateAgentWalletResponseDto\n */\nexport interface CreateAgentWalletResponseDto {\n /**\n * Newly created agent wallet address - user must approve this on Hyperliquid\n * @type {string}\n * @memberof CreateAgentWalletResponseDto\n */\n 'agentWalletAddress': string;\n /**\n * Next steps instruction for user\n * @type {string}\n * @memberof CreateAgentWalletResponseDto\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface CreatePositionRequestDto\n */\nexport interface CreatePositionRequestDto {\n /**\n * Slippage tolerance percentage (0.01 = 1%)\n * @type {number}\n * @memberof CreatePositionRequestDto\n */\n 'slippage': number;\n /**\n * Order execution type\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'executionType': CreatePositionRequestDtoExecutionTypeEnum;\n /**\n * Applied leverage\n * @type {number}\n * @memberof CreatePositionRequestDto\n */\n 'leverage': number;\n /**\n * Position size in USD\n * @type {number}\n * @memberof CreatePositionRequestDto\n */\n 'usdValue': number;\n /**\n * Long assets configuration - array of assets to go long on. Can be empty for short-only positions.\n * @type {Array<PairAssetDto>}\n * @memberof CreatePositionRequestDto\n */\n 'longAssets'?: Array<PairAssetDto>;\n /**\n * Short assets configuration - array of assets to go short on. Can be empty for long-only positions.\n * @type {Array<PairAssetDto>}\n * @memberof CreatePositionRequestDto\n */\n 'shortAssets'?: Array<PairAssetDto>;\n /**\n * Required trigger threshold for TRIGGER orders (price, dominance, ratios, etc.)\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'triggerValue'?: string;\n /**\n * Trigger type for TRIGGER orders (PRICE, PRICE_RATIO, WEIGHTED_RATIO, BTC_DOM, CROSS_ASSET_PRICE, PREDICTION_MARKET_OUTCOME)\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'triggerType'?: CreatePositionRequestDtoTriggerTypeEnum;\n /**\n * Direction for TRIGGER orders\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'direction'?: CreatePositionRequestDtoDirectionEnum;\n /**\n * Asset to monitor when triggerType is CROSS_ASSET_PRICE\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'assetName'?: string;\n /**\n * Market code to monitor when triggerType is PREDICTION_MARKET_OUTCOME\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'marketCode'?: string;\n /**\n * Market source for prediction market orders\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'marketSource'?: CreatePositionRequestDtoMarketSourceEnum;\n /**\n * TWAP duration in minutes (required for TWAP orders)\n * @type {number}\n * @memberof CreatePositionRequestDto\n */\n 'twapDuration'?: number;\n /**\n * TWAP interval in seconds (time between chunks). Defaults to 30 seconds if not provided.\n * @type {number}\n * @memberof CreatePositionRequestDto\n */\n 'twapIntervalSeconds'?: number;\n /**\n * Randomize TWAP execution timing\n * @type {boolean}\n * @memberof CreatePositionRequestDto\n */\n 'randomizeExecution'?: boolean;\n /**\n * Ladder order configuration\n * @type {LadderConfigDto}\n * @memberof CreatePositionRequestDto\n */\n 'ladderConfig'?: LadderConfigDto;\n /**\n * Stop loss trigger. PERCENTAGE: % change vs entry; DOLLAR: fixed USD change; POSITION_VALUE: % change of position value.\n * @type {TpSlThreshold}\n * @memberof CreatePositionRequestDto\n */\n 'stopLoss'?: TpSlThreshold | null;\n /**\n * Take profit trigger. PERCENTAGE: % change vs entry; DOLLAR: fixed USD change; POSITION_VALUE: % change of position value.\n * @type {TpSlThreshold}\n * @memberof CreatePositionRequestDto\n */\n 'takeProfit'?: TpSlThreshold | null;\n /**\n * Referral code to be attached to user address if user has no referral code\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'referralCode'?: string;\n}\n\nexport const CreatePositionRequestDtoExecutionTypeEnum = {\n Sync: 'SYNC',\n Market: 'MARKET',\n Trigger: 'TRIGGER',\n Twap: 'TWAP',\n Ladder: 'LADDER',\n Tp: 'TP',\n Sl: 'SL',\n SpotMarket: 'SPOT_MARKET',\n SpotLimit: 'SPOT_LIMIT',\n SpotTwap: 'SPOT_TWAP'\n} as const;\n\nexport type CreatePositionRequestDtoExecutionTypeEnum = typeof CreatePositionRequestDtoExecutionTypeEnum[keyof typeof CreatePositionRequestDtoExecutionTypeEnum];\nexport const CreatePositionRequestDtoTriggerTypeEnum = {\n Price: 'PRICE',\n PriceLimit: 'PRICE_LIMIT',\n PriceRatio: 'PRICE_RATIO',\n WeightedRatio: 'WEIGHTED_RATIO',\n BtcDom: 'BTC_DOM',\n CrossAssetPrice: 'CROSS_ASSET_PRICE',\n PredictionMarketOutcome: 'PREDICTION_MARKET_OUTCOME'\n} as const;\n\nexport type CreatePositionRequestDtoTriggerTypeEnum = typeof CreatePositionRequestDtoTriggerTypeEnum[keyof typeof CreatePositionRequestDtoTriggerTypeEnum];\nexport const CreatePositionRequestDtoDirectionEnum = {\n MoreThan: 'MORE_THAN',\n LessThan: 'LESS_THAN'\n} as const;\n\nexport type CreatePositionRequestDtoDirectionEnum = typeof CreatePositionRequestDtoDirectionEnum[keyof typeof CreatePositionRequestDtoDirectionEnum];\nexport const CreatePositionRequestDtoMarketSourceEnum = {\n Kalshi: 'KALSHI',\n Hyperliquid: 'HYPERLIQUID'\n} as const;\n\nexport type CreatePositionRequestDtoMarketSourceEnum = typeof CreatePositionRequestDtoMarketSourceEnum[keyof typeof CreatePositionRequestDtoMarketSourceEnum];\n\n/**\n * \n * @export\n * @interface CreatePositionResponseDto\n */\nexport interface CreatePositionResponseDto {\n /**\n * Unique identifier for the initial order\n * @type {string}\n * @memberof CreatePositionResponseDto\n */\n 'orderId': string;\n /**\n * Fills returned from Hyperliquid for the order\n * @type {Array<ExternalFillDto>}\n * @memberof CreatePositionResponseDto\n */\n 'fills'?: Array<ExternalFillDto>;\n}\n/**\n * \n * @export\n * @interface CreateVaultWalletRequestDto\n */\nexport interface CreateVaultWalletRequestDto {\n /**\n * Leader/owner address of the vault\n * @type {string}\n * @memberof CreateVaultWalletRequestDto\n */\n 'leader_address': string;\n /**\n * Name for the vault wallet\n * @type {string}\n * @memberof CreateVaultWalletRequestDto\n */\n 'name': string;\n /**\n * Description/about text for the vault wallet\n * @type {string}\n * @memberof CreateVaultWalletRequestDto\n */\n 'about'?: string;\n /**\n * Image URL for the vault wallet\n * @type {string}\n * @memberof CreateVaultWalletRequestDto\n */\n 'imageUrl': string;\n /**\n * Configuration ID for the vault from frontend (0-based index)\n * @type {number}\n * @memberof CreateVaultWalletRequestDto\n */\n 'configId': number;\n}\n/**\n * \n * @export\n * @interface CreateVaultWalletResponseDto\n */\nexport interface CreateVaultWalletResponseDto {\n /**\n * Unique identifier for the vault wallet\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'id': string;\n /**\n * Leader/owner address\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'leader_address': string;\n /**\n * Generated vault contract address from blockchain\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'vaultAddress': string;\n /**\n * Privy agent wallet address\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'agentAddress': string;\n /**\n * Whether the vault wallet is approved for trading\n * @type {boolean}\n * @memberof CreateVaultWalletResponseDto\n */\n 'isApproved': boolean;\n /**\n * Vault wallet name\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'name': string;\n /**\n * Vault wallet description/about\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'about': string;\n /**\n * Image URL for the vault wallet\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'imageUrl': string;\n /**\n * Transaction hash from vault creation\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'transactionHash': string;\n /**\n * Timestamp when the vault wallet was created\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'createdAt': string;\n /**\n * Success message\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface EIP712AuthDetailsDto\n */\nexport interface EIP712AuthDetailsDto {\n /**\n * EIP712 signature\n * @type {string}\n * @memberof EIP712AuthDetailsDto\n */\n 'signature': string;\n /**\n * Unix timestamp used in the signed message\n * @type {number}\n * @memberof EIP712AuthDetailsDto\n */\n 'timestamp': number;\n /**\n * EIP-155 chain ID used in the EIP712 domain when signing. Optional; falls back to server default (EIP712_CHAIN_ID) for backward compatibility.\n * @type {number}\n * @memberof EIP712AuthDetailsDto\n */\n 'chainId'?: number;\n}\n/**\n * \n * @export\n * @interface ExternalFillDto\n */\nexport interface ExternalFillDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'coin': string;\n /**\n * Fill price\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'px': string;\n /**\n * Fill size\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'sz': string;\n /**\n * Side\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'side': ExternalFillDtoSideEnum;\n /**\n * Timestamp in ms\n * @type {number}\n * @memberof ExternalFillDto\n */\n 'time': number;\n /**\n * Direction (e.g. Open Long, Close Short)\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'dir': string;\n /**\n * Fee amount\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'fee': string;\n /**\n * Builder fee\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'builderFee'?: string;\n /**\n * Start position size\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'startPosition'?: string;\n /**\n * Order ID\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'oid'?: string;\n /**\n * Trade ID\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'tid'?: string;\n /**\n * Client order ID\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'cloid'?: string | null;\n /**\n * Transaction hash\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'hash'?: string | null;\n /**\n * Fee token\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'feeToken'?: string | null;\n /**\n * Liquidation details\n * @type {ExternalLiquidationDto}\n * @memberof ExternalFillDto\n */\n 'liquidation'?: ExternalLiquidationDto | null;\n /**\n * Closed PnL\n * @type {object}\n * @memberof ExternalFillDto\n */\n 'closedPnl'?: object | null;\n /**\n * Whether fill crossed the spread\n * @type {object}\n * @memberof ExternalFillDto\n */\n 'crossed'?: object | null;\n /**\n * TWAP order ID\n * @type {object}\n * @memberof ExternalFillDto\n */\n 'twapId'?: object | null;\n}\n\nexport const ExternalFillDtoSideEnum = {\n B: 'B',\n A: 'A'\n} as const;\n\nexport type ExternalFillDtoSideEnum = typeof ExternalFillDtoSideEnum[keyof typeof ExternalFillDtoSideEnum];\n\n/**\n * \n * @export\n * @interface ExternalLiquidationDto\n */\nexport interface ExternalLiquidationDto {\n /**\n * Liquidated user address\n * @type {string}\n * @memberof ExternalLiquidationDto\n */\n 'liquidatedUser': string;\n /**\n * Mark price at liquidation\n * @type {string}\n * @memberof ExternalLiquidationDto\n */\n 'markPx': string;\n /**\n * Liquidation method\n * @type {string}\n * @memberof ExternalLiquidationDto\n */\n 'method': string;\n}\n/**\n * \n * @export\n * @interface FillItemDto\n */\nexport interface FillItemDto {\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'id': string;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'clientId': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'orderId': string;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'chunkId': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'externalOrderId': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'assetName': string;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'address': string;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'fillTime': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'side': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'dir': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'feeToken': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'cloid': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'tid': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'txHash': string | null;\n /**\n * \n * @type {number}\n * @memberof FillItemDto\n */\n 'price': number;\n /**\n * \n * @type {number}\n * @memberof FillItemDto\n */\n 'size': number;\n /**\n * \n * @type {number}\n * @memberof FillItemDto\n */\n 'externalFeePaid': number;\n /**\n * \n * @type {number}\n * @memberof FillItemDto\n */\n 'builderFeePaid': number;\n /**\n * \n * @type {boolean}\n * @memberof FillItemDto\n */\n 'isPearTrade': boolean;\n /**\n * \n * @type {boolean}\n * @memberof FillItemDto\n */\n 'isLiquidation': boolean;\n /**\n * \n * @type {number}\n * @memberof FillItemDto\n */\n 'liqMarkPx': number | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'liqMethod': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'liquidatedUser': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'createdAt': string;\n}\n/**\n * \n * @export\n * @interface GetAgentWalletResponseDto\n */\nexport interface GetAgentWalletResponseDto {\n /**\n * Agent wallet address for Hyperliquid operations\n * @type {string}\n * @memberof GetAgentWalletResponseDto\n */\n 'agentWalletAddress': string;\n}\n/**\n * \n * @export\n * @interface GetBalancesResponseDto\n */\nexport interface GetBalancesResponseDto {\n /**\n * Spot account balances\n * @type {object}\n * @memberof GetBalancesResponseDto\n */\n 'spotBalances': object;\n /**\n * Perp account balances\n * @type {object}\n * @memberof GetBalancesResponseDto\n */\n 'perpBalances': object;\n /**\n * Total account value in USD\n * @type {string}\n * @memberof GetBalancesResponseDto\n */\n 'totalValue': string;\n}\n/**\n * \n * @export\n * @interface GetEIP712MessageResponseDto\n */\nexport interface GetEIP712MessageResponseDto {\n /**\n * EIP712 domain\n * @type {object}\n * @memberof GetEIP712MessageResponseDto\n */\n 'domain': object;\n /**\n * EIP712 types\n * @type {object}\n * @memberof GetEIP712MessageResponseDto\n */\n 'types': object;\n /**\n * Primary type for EIP712 signing\n * @type {string}\n * @memberof GetEIP712MessageResponseDto\n */\n 'primaryType': string;\n /**\n * Message to sign\n * @type {object}\n * @memberof GetEIP712MessageResponseDto\n */\n 'message': object;\n /**\n * Unix timestamp used in message\n * @type {number}\n * @memberof GetEIP712MessageResponseDto\n */\n 'timestamp': number;\n}\n/**\n * \n * @export\n * @interface GetVaultWalletResponseDto\n */\nexport interface GetVaultWalletResponseDto {\n /**\n * Unique identifier for the vault wallet\n * @type {string}\n * @memberof GetVaultWalletResponseDto\n */\n 'id': string;\n /**\n * Vault wallet address\n * @type {object}\n * @memberof GetVaultWalletResponseDto\n */\n 'vaultAddress': object;\n /**\n * Vault wallet address\n * @type {string}\n * @memberof GetVaultWalletResponseDto\n */\n 'leader_address': string;\n /**\n * Public address\n * @type {string}\n * @memberof GetVaultWalletResponseDto\n */\n 'agentAddress': string;\n /**\n * Whether the vault wallet is approved for trading\n * @type {boolean}\n * @memberof GetVaultWalletResponseDto\n */\n 'isApproved': boolean;\n /**\n * Timestamp when the vault wallet was created\n * @type {string}\n * @memberof GetVaultWalletResponseDto\n */\n 'createdAt': string;\n /**\n * Timestamp when the vault wallet was last updated\n * @type {string}\n * @memberof GetVaultWalletResponseDto\n */\n 'updatedAt': string;\n /**\n * Privy wallet ID for creating the signer\n * @type {string}\n * @memberof GetVaultWalletResponseDto\n */\n 'privyWalletId': string;\n /**\n * Vault wallet name\n * @type {object}\n * @memberof GetVaultWalletResponseDto\n */\n 'name'?: object | null;\n /**\n * Vault wallet description/about\n * @type {object}\n * @memberof GetVaultWalletResponseDto\n */\n 'about'?: object | null;\n /**\n * Image URL for the vault wallet\n * @type {object}\n * @memberof GetVaultWalletResponseDto\n */\n 'imageUrl'?: object | null;\n /**\n * Transaction hash from vault creation\n * @type {object}\n * @memberof GetVaultWalletResponseDto\n */\n 'transactionHash'?: object | null;\n}\n/**\n * \n * @export\n * @interface HealthControllerGetHealth200Response\n */\nexport interface HealthControllerGetHealth200Response {\n /**\n * \n * @type {string}\n * @memberof HealthControllerGetHealth200Response\n */\n 'status'?: string;\n /**\n * \n * @type {string}\n * @memberof HealthControllerGetHealth200Response\n */\n 'timestamp'?: string;\n /**\n * \n * @type {number}\n * @memberof HealthControllerGetHealth200Response\n */\n 'uptime'?: number;\n}\n/**\n * \n * @export\n * @interface KalshiTriggersResponseDto\n */\nexport interface KalshiTriggersResponseDto {\n /**\n * \n * @type {Array<TriggerDto>}\n * @memberof KalshiTriggersResponseDto\n */\n 'triggers': Array<TriggerDto>;\n /**\n * \n * @type {string}\n * @memberof KalshiTriggersResponseDto\n */\n 'nextCursor'?: string | null;\n}\n/**\n * \n * @export\n * @interface LadderConfigDto\n */\nexport interface LadderConfigDto {\n /**\n * Starting ratio for the ladder\n * @type {number}\n * @memberof LadderConfigDto\n */\n 'ratioStart': number;\n /**\n * Ending ratio for the ladder\n * @type {number}\n * @memberof LadderConfigDto\n */\n 'ratioEnd': number;\n /**\n * Number of levels in the ladder\n * @type {number}\n * @memberof LadderConfigDto\n */\n 'numberOfLevels': number;\n}\n/**\n * \n * @export\n * @interface LadderOrderParameters\n */\nexport interface LadderOrderParameters {\n /**\n * Leverage multiplier\n * @type {number}\n * @memberof LadderOrderParameters\n */\n 'leverage': number;\n /**\n * Order value in USD\n * @type {number}\n * @memberof LadderOrderParameters\n */\n 'usdValue': number;\n /**\n * Starting ratio\n * @type {number}\n * @memberof LadderOrderParameters\n */\n 'ratioStart': number;\n /**\n * Ending ratio\n * @type {number}\n * @memberof LadderOrderParameters\n */\n 'ratioEnd': number;\n /**\n * Number of ladder levels\n * @type {number}\n * @memberof LadderOrderParameters\n */\n 'numberOfLevels': number;\n /**\n * Whether this is a reduce-only order\n * @type {boolean}\n * @memberof LadderOrderParameters\n */\n 'reduceOnly'?: boolean;\n}\n/**\n * \n * @export\n * @interface LegacySupportControllerGetLegacyMetrics200Response\n */\nexport interface LegacySupportControllerGetLegacyMetrics200Response {\n /**\n * \n * @type {number}\n * @memberof LegacySupportControllerGetLegacyMetrics200Response\n */\n 'totalVolume'?: number;\n /**\n * \n * @type {number}\n * @memberof LegacySupportControllerGetLegacyMetrics200Response\n */\n 'totalUsers'?: number;\n /**\n * \n * @type {number}\n * @memberof LegacySupportControllerGetLegacyMetrics200Response\n */\n 'dailyVolume'?: number;\n /**\n * \n * @type {number}\n * @memberof LegacySupportControllerGetLegacyMetrics200Response\n */\n 'dailyFees'?: number;\n /**\n * \n * @type {number}\n * @memberof LegacySupportControllerGetLegacyMetrics200Response\n */\n 'totalFees'?: number;\n}\n/**\n * \n * @export\n * @interface LogoutRequestDto\n */\nexport interface LogoutRequestDto {\n /**\n * Refresh token to invalidate\n * @type {string}\n * @memberof LogoutRequestDto\n */\n 'refreshToken': string;\n}\n/**\n * \n * @export\n * @interface LogoutResponseDto\n */\nexport interface LogoutResponseDto {\n /**\n * Logout status message\n * @type {string}\n * @memberof LogoutResponseDto\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface MarkNotificationsReadDto\n */\nexport interface MarkNotificationsReadDto {\n /**\n * Notification id to mark as read (takes precedence if provided).\n * @type {string}\n * @memberof MarkNotificationsReadDto\n */\n 'id'?: string;\n /**\n * Unix timestamp in milliseconds. Marks notifications created at or before this time as read.\n * @type {number}\n * @memberof MarkNotificationsReadDto\n */\n 'timestamp'?: number;\n}\n/**\n * \n * @export\n * @interface MarketDataV2AssetDto\n */\nexport interface MarketDataV2AssetDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof MarketDataV2AssetDto\n */\n 'asset': string;\n /**\n * Weight allocation\n * @type {number}\n * @memberof MarketDataV2AssetDto\n */\n 'weight': number;\n}\n/**\n * \n * @export\n * @interface MarketDataV2BasketDto\n */\nexport interface MarketDataV2BasketDto {\n /**\n * Long assets with weights\n * @type {Array<MarketDataV2AssetDto>}\n * @memberof MarketDataV2BasketDto\n */\n 'longAssets': Array<MarketDataV2AssetDto>;\n /**\n * Short assets with weights\n * @type {Array<MarketDataV2AssetDto>}\n * @memberof MarketDataV2BasketDto\n */\n 'shortAssets': Array<MarketDataV2AssetDto>;\n /**\n * Basket category\n * @type {string}\n * @memberof MarketDataV2BasketDto\n */\n 'category': MarketDataV2BasketDtoCategoryEnum;\n /**\n * Optional basket name\n * @type {string}\n * @memberof MarketDataV2BasketDto\n */\n 'name'?: string;\n}\n\nexport const MarketDataV2BasketDtoCategoryEnum = {\n Active: 'active',\n Watchlist: 'watchlist',\n AiPicks: 'ai-picks'\n} as const;\n\nexport type MarketDataV2BasketDtoCategoryEnum = typeof MarketDataV2BasketDtoCategoryEnum[keyof typeof MarketDataV2BasketDtoCategoryEnum];\n\n/**\n * \n * @export\n * @interface MarketDataV2Response\n */\nexport interface MarketDataV2Response {\n /**\n * List of baskets\n * @type {Array<MarketDataV2BasketDto>}\n * @memberof MarketDataV2Response\n */\n 'baskets': Array<MarketDataV2BasketDto>;\n}\n/**\n * \n * @export\n * @interface MarketOrderParameters\n */\nexport interface MarketOrderParameters {\n /**\n * Leverage multiplier\n * @type {number}\n * @memberof MarketOrderParameters\n */\n 'leverage'?: number;\n /**\n * Order value in USD\n * @type {number}\n * @memberof MarketOrderParameters\n */\n 'usdValue': number;\n /**\n * Whether this is a reduce-only order\n * @type {boolean}\n * @memberof MarketOrderParameters\n */\n 'reduceOnly'?: boolean;\n}\n/**\n * \n * @export\n * @interface MarketTriggerMetaDto\n */\nexport interface MarketTriggerMetaDto {\n /**\n * \n * @type {string}\n * @memberof MarketTriggerMetaDto\n */\n 'kind': MarketTriggerMetaDtoKindEnum;\n /**\n * \n * @type {string}\n * @memberof MarketTriggerMetaDto\n */\n 'type': MarketTriggerMetaDtoTypeEnum;\n /**\n * \n * @type {string}\n * @memberof MarketTriggerMetaDto\n */\n 'title': string;\n /**\n * \n * @type {string}\n * @memberof MarketTriggerMetaDto\n */\n 'status'?: MarketTriggerMetaDtoStatusEnum | null;\n /**\n * ISO 8601 expiry time\n * @type {string}\n * @memberof MarketTriggerMetaDto\n */\n 'expiryTime'?: string | null;\n /**\n * \n * @type {string}\n * @memberof MarketTriggerMetaDto\n */\n 'imageUrl'?: string | null;\n /**\n * Kalshi total volume\n * @type {number}\n * @memberof MarketTriggerMetaDto\n */\n 'popularity'?: number | null;\n /**\n * \n * @type {Array<TriggerOutcomeDto>}\n * @memberof MarketTriggerMetaDto\n */\n 'outcomes': Array<TriggerOutcomeDto>;\n}\n\nexport const MarketTriggerMetaDtoKindEnum = {\n PredictionMarket: 'prediction_market',\n Btcdom: 'btcdom'\n} as const;\n\nexport type MarketTriggerMetaDtoKindEnum = typeof MarketTriggerMetaDtoKindEnum[keyof typeof MarketTriggerMetaDtoKindEnum];\nexport const MarketTriggerMetaDtoTypeEnum = {\n Binary: 'binary',\n Multi: 'multi'\n} as const;\n\nexport type MarketTriggerMetaDtoTypeEnum = typeof MarketTriggerMetaDtoTypeEnum[keyof typeof MarketTriggerMetaDtoTypeEnum];\nexport const MarketTriggerMetaDtoStatusEnum = {\n Open: 'open',\n Closed: 'closed',\n Settled: 'settled'\n} as const;\n\nexport type MarketTriggerMetaDtoStatusEnum = typeof MarketTriggerMetaDtoStatusEnum[keyof typeof MarketTriggerMetaDtoStatusEnum];\n\n/**\n * \n * @export\n * @interface MarketsGroupItem\n */\nexport interface MarketsGroupItem {\n /**\n * Distinct long assets in the order group with weights\n * @type {Array<PairAssetDto>}\n * @memberof MarketsGroupItem\n */\n 'longAssets': Array<PairAssetDto>;\n /**\n * Distinct short assets in the order group with weights\n * @type {Array<PairAssetDto>}\n * @memberof MarketsGroupItem\n */\n 'shortAssets': Array<PairAssetDto>;\n /**\n * Open interest in USD for all assets in this group\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'openInterest': string;\n /**\n * 24h traded volume in USD for this order group\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'volume': string;\n /**\n * Current long/short ratio for this group\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'ratio'?: string;\n /**\n * Previous day long/short ratio for this group\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'prevRatio'?: string;\n /**\n * 24h change as decimal (e.g. 0.05 = +5%)\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'change24h'?: string;\n /**\n * Weighted (synthetic 50/50) current ratio for this group\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'weightedRatio'?: string;\n /**\n * Weighted (synthetic 50/50) previous day ratio for this group\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'weightedPrevRatio'?: string;\n /**\n * Weighted (synthetic 50/50) 24h change as decimal\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'weightedChange24h'?: string;\n /**\n * Net funding for the basket, weighted by allocation (longs negative, shorts positive)\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'netFunding': string;\n}\n/**\n * \n * @export\n * @interface MarketsResponse\n */\nexport interface MarketsResponse {\n /**\n * List of active order-asset groups\n * @type {Array<MarketsGroupItem>}\n * @memberof MarketsResponse\n */\n 'markets': Array<MarketsGroupItem>;\n /**\n * Total number of markets (after filters)\n * @type {number}\n * @memberof MarketsResponse\n */\n 'total': number;\n /**\n * Page number for pagination\n * @type {number}\n * @memberof MarketsResponse\n */\n 'page': number;\n /**\n * Page size (items per page)\n * @type {number}\n * @memberof MarketsResponse\n */\n 'pageSize': number;\n /**\n * Total number of pages\n * @type {number}\n * @memberof MarketsResponse\n */\n 'totalPages': number;\n}\n/**\n * \n * @export\n * @interface MetricVariantDto\n */\nexport interface MetricVariantDto {\n /**\n * Absolute PnL in USD\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'pnlAbsolute': number;\n /**\n * PnL as decimal fraction of capital base (0.12 = 12%)\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'pnlPercent': number | null;\n /**\n * Fraction of profitable events (0.6 = 60%)\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'hitRate': number | null;\n /**\n * Gross profit / gross loss (absolute)\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'profitFactor': number | null;\n /**\n * Mean positive PnL value in USD\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'avgWinSize': number | null;\n /**\n * Mean negative PnL value in USD\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'avgLossSize': number | null;\n /**\n * Mean return of winning trades\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'avgReturnPerWin': number | null;\n /**\n * Mean return of losing trades\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'avgReturnPerLoss': number | null;\n /**\n * Maximum drawdown as decimal fraction\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'maxDrawdown': number | null;\n /**\n * Annualized Sharpe ratio (sqrt(365))\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'sharpeRatio': number | null;\n /**\n * Annualized Sortino ratio (sqrt(365))\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'sortinoRatio': number | null;\n}\n/**\n * \n * @export\n * @interface OpenOrderDto\n */\nexport interface OpenOrderDto {\n /**\n * Order identifier\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'orderId': string;\n /**\n * User wallet address\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'address': string;\n /**\n * Client identifier\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'clientId': string | null;\n /**\n * Associated position identifier\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'positionId': string | null;\n /**\n * \n * @type {OpenOrderDtoParameters}\n * @memberof OpenOrderDto\n */\n 'parameters': OpenOrderDtoParameters;\n /**\n * Order type\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'orderType': OpenOrderDtoOrderTypeEnum;\n /**\n * Order status\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'status': OpenOrderDtoStatusEnum;\n /**\n * Long assets in the order\n * @type {Array<OrderAssetDto>}\n * @memberof OpenOrderDto\n */\n 'longAssets': Array<OrderAssetDto>;\n /**\n * Short assets in the order\n * @type {Array<OrderAssetDto>}\n * @memberof OpenOrderDto\n */\n 'shortAssets': Array<OrderAssetDto>;\n /**\n * Order creation timestamp\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'createdAt': string;\n /**\n * Last update timestamp\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'updatedAt': string;\n}\n\nexport const OpenOrderDtoOrderTypeEnum = {\n Sync: 'SYNC',\n Market: 'MARKET',\n Trigger: 'TRIGGER',\n Twap: 'TWAP',\n Ladder: 'LADDER',\n Tp: 'TP',\n Sl: 'SL',\n SpotMarket: 'SPOT_MARKET',\n SpotLimit: 'SPOT_LIMIT',\n SpotTwap: 'SPOT_TWAP'\n} as const;\n\nexport type OpenOrderDtoOrderTypeEnum = typeof OpenOrderDtoOrderTypeEnum[keyof typeof OpenOrderDtoOrderTypeEnum];\nexport const OpenOrderDtoStatusEnum = {\n Open: 'OPEN',\n Processing: 'PROCESSING',\n Executed: 'EXECUTED',\n Cancelled: 'CANCELLED',\n Failed: 'FAILED',\n PartiallyFilled: 'PARTIALLY_FILLED'\n} as const;\n\nexport type OpenOrderDtoStatusEnum = typeof OpenOrderDtoStatusEnum[keyof typeof OpenOrderDtoStatusEnum];\n\n/**\n * @type OpenOrderDtoParameters\n * Order parameters (varies by order type)\n * @export\n */\nexport type OpenOrderDtoParameters = LadderOrderParameters | MarketOrderParameters | TpSlOrderParameters | TriggerOrderParameters | TwapOrderParameters;\n\n/**\n * \n * @export\n * @interface OpenPositionProcessedDto\n */\nexport interface OpenPositionProcessedDto {\n /**\n * Position identifier\n * @type {string}\n * @memberof OpenPositionProcessedDto\n */\n 'positionId': string;\n /**\n * User wallet address\n * @type {string}\n * @memberof OpenPositionProcessedDto\n */\n 'address': string;\n /**\n * Pear execution flag\n * @type {string}\n * @memberof OpenPositionProcessedDto\n */\n 'pearExecutionFlag': OpenPositionProcessedDtoPearExecutionFlagEnum;\n /**\n * Stop loss trigger\n * @type {TpSlThreshold}\n * @memberof OpenPositionProcessedDto\n */\n 'stopLoss': TpSlThreshold | null;\n /**\n * Take profit trigger\n * @type {TpSlThreshold}\n * @memberof OpenPositionProcessedDto\n */\n 'takeProfit': TpSlThreshold | null;\n /**\n * Weighted entry ratio\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'entryRatio': number;\n /**\n * Weighted mark ratio\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'markRatio': number;\n /**\n * Entry price ratio (only for 1 long x 1 short)\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'entryPriceRatio'?: number;\n /**\n * Mark price ratio (only for 1 long x 1 short)\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'markPriceRatio'?: number;\n /**\n * Total entry USD value\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'entryPositionValue': number;\n /**\n * Total current USD value\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'positionValue': number;\n /**\n * Total margin used\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'marginUsed': number;\n /**\n * Total unrealized PnL (USD)\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'unrealizedPnl': number;\n /**\n * Unrealized PnL percentage relative to margin used\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'unrealizedPnlPercentage': number;\n /**\n * Long assets\n * @type {Array<PositionAssetDetailProcessedDto>}\n * @memberof OpenPositionProcessedDto\n */\n 'longAssets': Array<PositionAssetDetailProcessedDto>;\n /**\n * Short assets\n * @type {Array<PositionAssetDetailProcessedDto>}\n * @memberof OpenPositionProcessedDto\n */\n 'shortAssets': Array<PositionAssetDetailProcessedDto>;\n /**\n * Creation timestamp\n * @type {string}\n * @memberof OpenPositionProcessedDto\n */\n 'createdAt': string;\n /**\n * Last update timestamp\n * @type {string}\n * @memberof OpenPositionProcessedDto\n */\n 'updatedAt': string;\n}\n\nexport const OpenPositionProcessedDtoPearExecutionFlagEnum = {\n FullyPear: 'FULLY_PEAR',\n Partial: 'PARTIAL',\n FullyExternal: 'FULLY_EXTERNAL'\n} as const;\n\nexport type OpenPositionProcessedDtoPearExecutionFlagEnum = typeof OpenPositionProcessedDtoPearExecutionFlagEnum[keyof typeof OpenPositionProcessedDtoPearExecutionFlagEnum];\n\n/**\n * \n * @export\n * @interface OracleValueDto\n */\nexport interface OracleValueDto {\n /**\n * Latest oracle value\n * @type {number}\n * @memberof OracleValueDto\n */\n 'value': number;\n /**\n * Unit of the oracle value\n * @type {string}\n * @memberof OracleValueDto\n */\n 'unit': OracleValueDtoUnitEnum;\n}\n\nexport const OracleValueDtoUnitEnum = {\n Cent: 'cent',\n Percent: 'percent'\n} as const;\n\nexport type OracleValueDtoUnitEnum = typeof OracleValueDtoUnitEnum[keyof typeof OracleValueDtoUnitEnum];\n\n/**\n * \n * @export\n * @interface OrderAssetDto\n */\nexport interface OrderAssetDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof OrderAssetDto\n */\n 'asset': string;\n /**\n * Asset weight in order\n * @type {number}\n * @memberof OrderAssetDto\n */\n 'weight': number;\n /**\n * Order size in asset units\n * @type {string}\n * @memberof OrderAssetDto\n */\n 'size'?: string | null;\n /**\n * Filled size in asset units\n * @type {string}\n * @memberof OrderAssetDto\n */\n 'filledSize'?: string | null;\n}\n/**\n * \n * @export\n * @interface PaginatedOrdersResponseDto\n */\nexport interface PaginatedOrdersResponseDto {\n /**\n * List of orders\n * @type {Array<OpenOrderDto>}\n * @memberof PaginatedOrdersResponseDto\n */\n 'data': Array<OpenOrderDto>;\n /**\n * Total number of matching orders\n * @type {number}\n * @memberof PaginatedOrdersResponseDto\n */\n 'total': number;\n /**\n * Current page number\n * @type {number}\n * @memberof PaginatedOrdersResponseDto\n */\n 'page': number;\n /**\n * Items per page\n * @type {number}\n * @memberof PaginatedOrdersResponseDto\n */\n 'limit': number;\n /**\n * Total number of pages\n * @type {number}\n * @memberof PaginatedOrdersResponseDto\n */\n 'totalPages': number;\n}\n/**\n * \n * @export\n * @interface PairAssetDto\n */\nexport interface PairAssetDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof PairAssetDto\n */\n 'asset': string;\n /**\n * Weight allocation for this asset (0.0001 to 1.0). If not provided, weights will be evenly distributed.\n * @type {number}\n * @memberof PairAssetDto\n */\n 'weight'?: number;\n}\n/**\n * \n * @export\n * @interface PairBreakdownDto\n */\nexport interface PairBreakdownDto {\n /**\n * Stable basket key, formatted as L:BTC,ETH|S:SOL\n * @type {string}\n * @memberof PairBreakdownDto\n */\n 'key': string;\n /**\n * Long-side assets in the basket\n * @type {Array<string>}\n * @memberof PairBreakdownDto\n */\n 'longAssets': Array<string>;\n /**\n * Short-side assets in the basket\n * @type {Array<string>}\n * @memberof PairBreakdownDto\n */\n 'shortAssets': Array<string>;\n /**\n * Closed trade count for this basket\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'trades': number;\n /**\n * Winning closed trade count for this basket\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'wins': number;\n /**\n * Losing closed trade count for this basket\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'losses': number;\n /**\n * Winning trades / total trades\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'hitRate': number | null;\n /**\n * Mean positive trade PnL in USD\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'avgWinSize': number | null;\n /**\n * Mean negative trade PnL in USD\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'avgLossSize': number | null;\n /**\n * Average PnL per trade in USD\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'expectancy': number | null;\n /**\n * Total realized PnL in USD for this basket\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'totalPnl': number;\n /**\n * Basket total PnL / portfolio total realized PnL\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'bookPercent': number | null;\n}\n/**\n * \n * @export\n * @interface PortfolioAnalyticsConfigDto\n */\nexport interface PortfolioAnalyticsConfigDto {\n /**\n * Rolling window size in days\n * @type {number}\n * @memberof PortfolioAnalyticsConfigDto\n */\n 'rollingWindowDays': number;\n /**\n * Start date ISO string\n * @type {string}\n * @memberof PortfolioAnalyticsConfigDto\n */\n 'startDate': string;\n /**\n * End date ISO string\n * @type {string}\n * @memberof PortfolioAnalyticsConfigDto\n */\n 'endDate': string;\n}\n/**\n * \n * @export\n * @interface PortfolioAnalyticsResponseDto\n */\nexport interface PortfolioAnalyticsResponseDto {\n /**\n * \n * @type {PortfolioAnalyticsConfigDto}\n * @memberof PortfolioAnalyticsResponseDto\n */\n 'config': PortfolioAnalyticsConfigDto;\n /**\n * \n * @type {PortfolioMetricsDto}\n * @memberof PortfolioAnalyticsResponseDto\n */\n 'portfolio': PortfolioMetricsDto;\n /**\n * \n * @type {Array<AssetAnalyticsDto>}\n * @memberof PortfolioAnalyticsResponseDto\n */\n 'assets': Array<AssetAnalyticsDto>;\n /**\n * \n * @type {Array<PairBreakdownDto>}\n * @memberof PortfolioAnalyticsResponseDto\n */\n 'pairs': Array<PairBreakdownDto>;\n /**\n * \n * @type {Array<SeriesPointDto>}\n * @memberof PortfolioAnalyticsResponseDto\n */\n 'series'?: Array<SeriesPointDto>;\n}\n/**\n * \n * @export\n * @interface PortfolioBucketDto\n */\nexport interface PortfolioBucketDto {\n /**\n * Period start ISO timestamp\n * @type {string}\n * @memberof PortfolioBucketDto\n */\n 'periodStart': string;\n /**\n * Period end ISO timestamp\n * @type {string}\n * @memberof PortfolioBucketDto\n */\n 'periodEnd': string;\n /**\n * Total traded volume (USD) within the bucket\n * @type {number}\n * @memberof PortfolioBucketDto\n */\n 'volume': number;\n /**\n * Open interest snapshot (USD). Uses current snapshot.\n * @type {number}\n * @memberof PortfolioBucketDto\n */\n 'openInterest': number;\n /**\n * Number of winning trades (net realized > 0) within the bucket\n * @type {number}\n * @memberof PortfolioBucketDto\n */\n 'winningTradesCount': number;\n /**\n * Total USD from winning trades within the bucket (sum of positive net realized PnL)\n * @type {number}\n * @memberof PortfolioBucketDto\n */\n 'winningTradesUsd': number;\n /**\n * Number of losing trades (net realized < 0) within the bucket\n * @type {number}\n * @memberof PortfolioBucketDto\n */\n 'losingTradesCount': number;\n /**\n * Total USD from losing trades within the bucket (sum of absolute value of negative net realized PnL)\n * @type {number}\n * @memberof PortfolioBucketDto\n */\n 'losingTradesUsd': number;\n}\n/**\n * \n * @export\n * @interface PortfolioIntervalsDto\n */\nexport interface PortfolioIntervalsDto {\n /**\n * \n * @type {Array<PortfolioBucketDto>}\n * @memberof PortfolioIntervalsDto\n */\n 'oneDay': Array<PortfolioBucketDto>;\n /**\n * \n * @type {Array<PortfolioBucketDto>}\n * @memberof PortfolioIntervalsDto\n */\n 'oneWeek': Array<PortfolioBucketDto>;\n /**\n * \n * @type {Array<PortfolioBucketDto>}\n * @memberof PortfolioIntervalsDto\n */\n 'oneMonth': Array<PortfolioBucketDto>;\n /**\n * \n * @type {Array<PortfolioBucketDto>}\n * @memberof PortfolioIntervalsDto\n */\n 'oneYear': Array<PortfolioBucketDto>;\n /**\n * \n * @type {Array<PortfolioBucketDto>}\n * @memberof PortfolioIntervalsDto\n */\n 'all': Array<PortfolioBucketDto>;\n}\n/**\n * \n * @export\n * @interface PortfolioMetricsDto\n */\nexport interface PortfolioMetricsDto {\n /**\n * Metrics from closed trades only\n * @type {MetricVariantDto}\n * @memberof PortfolioMetricsDto\n */\n 'realizedOnly': MetricVariantDto;\n /**\n * Metrics including unrealized PnL from open positions\n * @type {MetricVariantDto}\n * @memberof PortfolioMetricsDto\n */\n 'realizedPlusUnrealized': MetricVariantDto;\n /**\n * Profitable closed trades / total closed trades\n * @type {number}\n * @memberof PortfolioMetricsDto\n */\n 'realizedHitRate': number | null;\n /**\n * Portfolio-level profit factor (gross profit / gross loss)\n * @type {number}\n * @memberof PortfolioMetricsDto\n */\n 'profitFactor': number | null;\n /**\n * Portfolio-level average winning trade size in USD\n * @type {number}\n * @memberof PortfolioMetricsDto\n */\n 'avgWinSize': number | null;\n /**\n * Portfolio-level average losing trade size in USD\n * @type {number}\n * @memberof PortfolioMetricsDto\n */\n 'avgLossSize': number | null;\n /**\n * Required hit rate to break even from average win/loss sizes\n * @type {number}\n * @memberof PortfolioMetricsDto\n */\n 'breakevenHitRate': number | null;\n /**\n * Realized hit rate minus breakeven hit rate\n * @type {number}\n * @memberof PortfolioMetricsDto\n */\n 'cushion': number | null;\n}\n/**\n * \n * @export\n * @interface PortfolioOverallDto\n */\nexport interface PortfolioOverallDto {\n /**\n * Total winning trades (net realized > 0) across the selected period\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'totalWinningTradesCount': number;\n /**\n * Total losing trades (net realized < 0) across the selected period\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'totalLosingTradesCount': number;\n /**\n * Total USD from winning trades across the selected period (sum of positive net realized PnL)\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'totalWinningUsd': number;\n /**\n * Total USD from losing trades across the selected period (sum of absolute value of negative net realized PnL)\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'totalLosingUsd': number;\n /**\n * Current total open interest (USD) across open positions\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'currentOpenInterest': number;\n /**\n * Trading volume (USD) for the selected period filtered to PEAR fills\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'currentTotalVolume': number;\n /**\n * Unrealized PnL (USD) from current open positions\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'unrealizedPnl': number;\n /**\n * Total trades for the selected period (open/close/reduce/increase counted as one trade each)\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'totalTrades': number;\n}\n/**\n * \n * @export\n * @interface PortfolioResponseDto\n */\nexport interface PortfolioResponseDto {\n /**\n * \n * @type {PortfolioIntervalsDto}\n * @memberof PortfolioResponseDto\n */\n 'intervals'?: PortfolioIntervalsDto | null;\n /**\n * \n * @type {PortfolioOverallDto}\n * @memberof PortfolioResponseDto\n */\n 'overall': PortfolioOverallDto;\n}\n/**\n * \n * @export\n * @interface PositionAssetDetailProcessedDto\n */\nexport interface PositionAssetDetailProcessedDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'coin': string;\n /**\n * Entry price\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'entryPrice': number;\n /**\n * Actual size filled\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'actualSize': number;\n /**\n * Leverage applied to this asset\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'leverage': number;\n /**\n * Margin used for this asset (USD)\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'marginUsed': number;\n /**\n * Current USD value\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'positionValue': number;\n /**\n * Unrealized PnL (USD)\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'unrealizedPnl': number;\n /**\n * Entry USD value\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'entryPositionValue': number;\n /**\n * Total funding paid/received for this asset (USD)\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'fundingPaid'?: number;\n /**\n * Target weight of asset in position (decimal, 0-1)\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'targetWeight': number;\n}\n/**\n * \n * @export\n * @interface PrivyAuthDetailsDto\n */\nexport interface PrivyAuthDetailsDto {\n /**\n * Privy App ID\n * @type {string}\n * @memberof PrivyAuthDetailsDto\n */\n 'appId': string;\n /**\n * Privy access token (JWT)\n * @type {string}\n * @memberof PrivyAuthDetailsDto\n */\n 'accessToken': string;\n}\n/**\n * \n * @export\n * @interface RebalanceAssetPlanDto\n */\nexport interface RebalanceAssetPlanDto {\n /**\n * Asset ticker symbol\n * @type {string}\n * @memberof RebalanceAssetPlanDto\n */\n 'coin': string;\n /**\n * Position side\n * @type {string}\n * @memberof RebalanceAssetPlanDto\n */\n 'side': RebalanceAssetPlanDtoSideEnum;\n /**\n * Current weight of asset in position (decimal, 0-1)\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'currentWeight': number;\n /**\n * Desired target weight (decimal, 0-1)\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'targetWeight': number;\n /**\n * Current notional value in USD\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'currentValue': number;\n /**\n * Target notional value in USD after rebalance\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'targetValue': number;\n /**\n * Difference between target and current value in USD\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'deltaValue': number;\n /**\n * Current position size in asset units\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'currentSize': number;\n /**\n * Position size in asset units after rebalance\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'newSize': number;\n /**\n * Size change required in asset units\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'deltaSize': number;\n /**\n * Whether this asset will be skipped during rebalance\n * @type {boolean}\n * @memberof RebalanceAssetPlanDto\n */\n 'skipped': boolean;\n /**\n * Reason for skipping (e.g. trade below minimum size)\n * @type {string}\n * @memberof RebalanceAssetPlanDto\n */\n 'skipReason'?: string;\n}\n\nexport const RebalanceAssetPlanDtoSideEnum = {\n Long: 'long',\n Short: 'short'\n} as const;\n\nexport type RebalanceAssetPlanDtoSideEnum = typeof RebalanceAssetPlanDtoSideEnum[keyof typeof RebalanceAssetPlanDtoSideEnum];\n\n/**\n * \n * @export\n * @interface RebalancePlanDto\n */\nexport interface RebalancePlanDto {\n /**\n * Position ID being rebalanced\n * @type {string}\n * @memberof RebalancePlanDto\n */\n 'positionId': string;\n /**\n * Per-asset rebalance details\n * @type {Array<RebalanceAssetPlanDto>}\n * @memberof RebalancePlanDto\n */\n 'assets': Array<RebalanceAssetPlanDto>;\n /**\n * Whether any asset has a non-skipped trade to execute\n * @type {boolean}\n * @memberof RebalancePlanDto\n */\n 'canExecute': boolean;\n}\n/**\n * \n * @export\n * @interface RebalancePositionRequestDto\n */\nexport interface RebalancePositionRequestDto {\n /**\n * Optional target weight overrides per asset coin (decimal, should sum to 1.0 per side). If omitted, uses existing targetWeight from position.\n * @type {{ [key: string]: number; }}\n * @memberof RebalancePositionRequestDto\n */\n 'targetWeights': { [key: string]: number; };\n}\n/**\n * \n * @export\n * @interface RebalancePositionResponseDto\n */\nexport interface RebalancePositionResponseDto {\n /**\n * Rebalance order ID\n * @type {string}\n * @memberof RebalancePositionResponseDto\n */\n 'orderId': string;\n /**\n * Execution status\n * @type {string}\n * @memberof RebalancePositionResponseDto\n */\n 'status': string;\n /**\n * ISO 8601 timestamp of execution\n * @type {string}\n * @memberof RebalancePositionResponseDto\n */\n 'executedAt': string;\n /**\n * Rebalance plan that was executed\n * @type {RebalancePlanDto}\n * @memberof RebalancePositionResponseDto\n */\n 'plan': RebalancePlanDto;\n}\n/**\n * \n * @export\n * @interface RefreshApiForVaultResponseDto\n */\nexport interface RefreshApiForVaultResponseDto {\n /**\n * Unique identifier for the vault wallet\n * @type {string}\n * @memberof RefreshApiForVaultResponseDto\n */\n 'id': string;\n /**\n * Owner wallet address\n * @type {string}\n * @memberof RefreshApiForVaultResponseDto\n */\n 'leader_address': string;\n /**\n * Vault contract address\n * @type {string}\n * @memberof RefreshApiForVaultResponseDto\n */\n 'vaultAddress': string;\n /**\n * New agent wallet address for backend trading\n * @type {string}\n * @memberof RefreshApiForVaultResponseDto\n */\n 'newAgentWalletAddress': string;\n /**\n * Success message\n * @type {string}\n * @memberof RefreshApiForVaultResponseDto\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface RefreshTokenRequestDto\n */\nexport interface RefreshTokenRequestDto {\n /**\n * Refresh token\n * @type {string}\n * @memberof RefreshTokenRequestDto\n */\n 'refreshToken': string;\n}\n/**\n * \n * @export\n * @interface RefreshTokenResponseDto\n */\nexport interface RefreshTokenResponseDto {\n /**\n * New JWT access token\n * @type {string}\n * @memberof RefreshTokenResponseDto\n */\n 'accessToken': string;\n /**\n * New refresh token\n * @type {string}\n * @memberof RefreshTokenResponseDto\n */\n 'refreshToken': string;\n /**\n * Token type\n * @type {string}\n * @memberof RefreshTokenResponseDto\n */\n 'tokenType': string;\n /**\n * Token expiration time in seconds\n * @type {number}\n * @memberof RefreshTokenResponseDto\n */\n 'expiresIn': number;\n}\n/**\n * \n * @export\n * @interface SeriesPointDto\n */\nexport interface SeriesPointDto {\n /**\n * UTC date string (YYYY-MM-DD)\n * @type {string}\n * @memberof SeriesPointDto\n */\n 'date': string;\n /**\n * Closed trades on this day\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'trades': number;\n /**\n * Winning closed trades on this day\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'wins': number;\n /**\n * Losing closed trades on this day\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'losses': number;\n /**\n * Realized PnL on this day in USD\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'dayPnl': number;\n /**\n * Winning trades / total trades on this day\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'hitRate': number | null;\n /**\n * Average winning trade size / average losing trade size on this day\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'winLossRatio': number | null;\n /**\n * Rolling winning trades / rolling total trades\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'rollingHitRate': number | null;\n /**\n * Rolling average winning trade size / rolling average losing trade size\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'rollingWinLossRatio': number | null;\n /**\n * Daily portfolio return\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'dailyReturn': number | null;\n /**\n * Cumulative return from start\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'cumulativeReturn': number;\n /**\n * Equity value\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'equity': number;\n /**\n * Current drawdown from peak\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'drawdown': number;\n /**\n * Rolling Sharpe ratio\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'rollingSharpe': number | null;\n /**\n * Rolling Sortino ratio\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'rollingSortino': number | null;\n /**\n * Rolling annualized volatility\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'rollingVolatility': number | null;\n /**\n * Rolling annualized net funding rate\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'rollingFunding': number | null;\n}\n/**\n * \n * @export\n * @interface SpotOrderRequestDto\n */\nexport interface SpotOrderRequestDto {\n /**\n * Asset to buy\n * @type {string}\n * @memberof SpotOrderRequestDto\n */\n 'asset': string;\n /**\n * To buy/sell Asset\n * @type {boolean}\n * @memberof SpotOrderRequestDto\n */\n 'isBuy': boolean;\n /**\n * Asset size to buy\n * @type {number}\n * @memberof SpotOrderRequestDto\n */\n 'amount': number;\n}\n/**\n * \n * @export\n * @interface SpotOrderResponseDto\n */\nexport interface SpotOrderResponseDto {\n /**\n * Unique identifier for the initial order\n * @type {string}\n * @memberof SpotOrderResponseDto\n */\n 'orderId': string;\n /**\n * Current status of the position/order\n * @type {string}\n * @memberof SpotOrderResponseDto\n */\n 'status': SpotOrderResponseDtoStatusEnum;\n /**\n * Creation timestamp\n * @type {string}\n * @memberof SpotOrderResponseDto\n */\n 'createdAt': string;\n /**\n * Spot Asset\n * @type {string}\n * @memberof SpotOrderResponseDto\n */\n 'asset': string;\n /**\n * Raw response from Hyperliquid\n * @type {object}\n * @memberof SpotOrderResponseDto\n */\n 'hyperliquidResult'?: object;\n}\n\nexport const SpotOrderResponseDtoStatusEnum = {\n Open: 'OPEN',\n Processing: 'PROCESSING',\n Executed: 'EXECUTED',\n Cancelled: 'CANCELLED',\n Failed: 'FAILED',\n PartiallyFilled: 'PARTIALLY_FILLED'\n} as const;\n\nexport type SpotOrderResponseDtoStatusEnum = typeof SpotOrderResponseDtoStatusEnum[keyof typeof SpotOrderResponseDtoStatusEnum];\n\n/**\n * \n * @export\n * @interface SwapAndTransferRequestDto\n */\nexport interface SwapAndTransferRequestDto {\n /**\n * Asset to swap from (e.g., ETH, SOL, BTC)\n * @type {string}\n * @memberof SwapAndTransferRequestDto\n */\n 'fromAsset': string;\n /**\n * Amount of the source asset to swap\n * @type {string}\n * @memberof SwapAndTransferRequestDto\n */\n 'amount': string;\n /**\n * Asset to swap to (default: USDC)\n * @type {string}\n * @memberof SwapAndTransferRequestDto\n */\n 'toAsset'?: string;\n}\n/**\n * \n * @export\n * @interface SwapAndTransferResponseDto\n */\nexport interface SwapAndTransferResponseDto {\n /**\n * Amount of source asset swapped\n * @type {string}\n * @memberof SwapAndTransferResponseDto\n */\n 'fromAmount': string;\n /**\n * Amount of target asset received\n * @type {string}\n * @memberof SwapAndTransferResponseDto\n */\n 'toAmount': string;\n /**\n * Exchange rate used\n * @type {number}\n * @memberof SwapAndTransferResponseDto\n */\n 'exchangeRate': number;\n /**\n * Source asset\n * @type {string}\n * @memberof SwapAndTransferResponseDto\n */\n 'fromAsset': string;\n /**\n * Target asset\n * @type {string}\n * @memberof SwapAndTransferResponseDto\n */\n 'toAsset': string;\n /**\n * Success message\n * @type {string}\n * @memberof SwapAndTransferResponseDto\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface SyncFillsRequestDto\n */\nexport interface SyncFillsRequestDto {\n /**\n * User EVM address\n * @type {string}\n * @memberof SyncFillsRequestDto\n */\n 'user': string;\n /**\n * External fills to sync\n * @type {Array<ExternalFillDto>}\n * @memberof SyncFillsRequestDto\n */\n 'fills': Array<ExternalFillDto>;\n /**\n * Current asset positions from clearinghouse state\n * @type {Array<string>}\n * @memberof SyncFillsRequestDto\n */\n 'assetPositions'?: Array<string>;\n}\n/**\n * \n * @export\n * @interface ToggleWatchlistDto\n */\nexport interface ToggleWatchlistDto {\n /**\n * Long assets for the basket (order preserved)\n * @type {Array<WatchlistAssetDto>}\n * @memberof ToggleWatchlistDto\n */\n 'longAssets': Array<WatchlistAssetDto>;\n /**\n * Short assets for the basket (order preserved)\n * @type {Array<WatchlistAssetDto>}\n * @memberof ToggleWatchlistDto\n */\n 'shortAssets': Array<WatchlistAssetDto>;\n}\n/**\n * \n * @export\n * @interface TpSlOrderParameters\n */\nexport interface TpSlOrderParameters {\n /**\n * TP/SL trigger type\n * @type {string}\n * @memberof TpSlOrderParameters\n */\n 'triggerType': TpSlOrderParametersTriggerTypeEnum;\n /**\n * Trigger value\n * @type {number}\n * @memberof TpSlOrderParameters\n */\n 'triggerValue'?: number;\n /**\n * Whether this is a trailing stop\n * @type {boolean}\n * @memberof TpSlOrderParameters\n */\n 'isTrailing'?: boolean;\n /**\n * Trailing delta value\n * @type {number}\n * @memberof TpSlOrderParameters\n */\n 'trailingDeltaValue'?: number;\n /**\n * Trailing activation value\n * @type {number}\n * @memberof TpSlOrderParameters\n */\n 'trailingActivationValue'?: number;\n /**\n * Whether this is a reduce-only order\n * @type {boolean}\n * @memberof TpSlOrderParameters\n */\n 'reduceOnly'?: boolean;\n}\n\nexport const TpSlOrderParametersTriggerTypeEnum = {\n Percentage: 'PERCENTAGE',\n Dollar: 'DOLLAR',\n PositionValue: 'POSITION_VALUE',\n Price: 'PRICE',\n PriceRatio: 'PRICE_RATIO',\n WeightedRatio: 'WEIGHTED_RATIO'\n} as const;\n\nexport type TpSlOrderParametersTriggerTypeEnum = typeof TpSlOrderParametersTriggerTypeEnum[keyof typeof TpSlOrderParametersTriggerTypeEnum];\n\n/**\n * \n * @export\n * @interface TpSlThreshold\n */\nexport interface TpSlThreshold {\n /**\n * Trigger type\n * @type {string}\n * @memberof TpSlThreshold\n */\n 'type': TpSlThresholdTypeEnum;\n /**\n * Trigger value for the specified type\n * @type {number}\n * @memberof TpSlThreshold\n */\n 'value'?: number;\n /**\n * Enable trailing behavior for this TP/SL\n * @type {boolean}\n * @memberof TpSlThreshold\n */\n 'isTrailing'?: boolean;\n /**\n * Trailing delta value based on trigger type\n * @type {number}\n * @memberof TpSlThreshold\n */\n 'trailingDeltaValue'?: number;\n /**\n * Activation value to start trailing\n * @type {number}\n * @memberof TpSlThreshold\n */\n 'trailingActivationValue'?: number;\n}\n\nexport const TpSlThresholdTypeEnum = {\n Percentage: 'PERCENTAGE',\n Dollar: 'DOLLAR',\n PositionValue: 'POSITION_VALUE',\n Price: 'PRICE',\n PriceRatio: 'PRICE_RATIO',\n WeightedRatio: 'WEIGHTED_RATIO'\n} as const;\n\nexport type TpSlThresholdTypeEnum = typeof TpSlThresholdTypeEnum[keyof typeof TpSlThresholdTypeEnum];\n\n/**\n * \n * @export\n * @interface TradeHistoryAssetDataDto\n */\nexport interface TradeHistoryAssetDataDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof TradeHistoryAssetDataDto\n */\n 'coin': string;\n /**\n * Leverage used for this asset\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'leverage': number;\n /**\n * Entry price for this asset\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'entryPrice': number;\n /**\n * Entry weight for this asset\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'entryWeight': number;\n /**\n * Limit price for this asset\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'limitPrice': number;\n /**\n * Trade size for this asset\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'size': number;\n /**\n * Fee paid to DEX Engine\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'externalFeePaid': number;\n /**\n * Fee paid to builder\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'builderFeePaid': number;\n /**\n * Realized PnL percentage for this asset\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'realizedPnl': number;\n}\n/**\n * \n * @export\n * @interface TradeHistoryDataDto\n */\nexport interface TradeHistoryDataDto {\n /**\n * Trade history ID\n * @type {string}\n * @memberof TradeHistoryDataDto\n */\n 'tradeHistoryId': string;\n /**\n * Associated position ID\n * @type {string}\n * @memberof TradeHistoryDataDto\n */\n 'positionId': string;\n /**\n * User wallet address\n * @type {string}\n * @memberof TradeHistoryDataDto\n */\n 'address': string;\n /**\n * Total fee paid to DEX Engine\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'externalFeePaid': number;\n /**\n * Total fee paid to builder\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'builderFeePaid': number;\n /**\n * Total realized PnL value\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'realizedPnl': number;\n /**\n * Total realized PnL percentage\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'realizedPnlPercentage': number;\n /**\n * Total trade value in USD\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'totalValue': number;\n /**\n * Total entry value in USD (sum of size * entry price per asset)\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'totalEntryValue': number;\n /**\n * Entry ratio for the trade\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'entryRatio': number;\n /**\n * Exit ratio for the trade\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'exitRatio': number;\n /**\n * Long assets in the trade\n * @type {Array<TradeHistoryAssetDataDto>}\n * @memberof TradeHistoryDataDto\n */\n 'closedLongAssets': Array<TradeHistoryAssetDataDto>;\n /**\n * Short assets in the trade\n * @type {Array<TradeHistoryAssetDataDto>}\n * @memberof TradeHistoryDataDto\n */\n 'closedShortAssets'?: Array<TradeHistoryAssetDataDto>;\n /**\n * List of long token symbols from position at time of trade\n * @type {Array<string>}\n * @memberof TradeHistoryDataDto\n */\n 'positionLongAssets'?: Array<string>;\n /**\n * List of short token symbols from position at time of trade\n * @type {Array<string>}\n * @memberof TradeHistoryDataDto\n */\n 'positionShortAssets'?: Array<string>;\n /**\n * Trade timestamp\n * @type {string}\n * @memberof TradeHistoryDataDto\n */\n 'createdAt': string;\n}\n/**\n * \n * @export\n * @interface TransferPerpToSpotRequestDto\n */\nexport interface TransferPerpToSpotRequestDto {\n /**\n * Amount of USDC to transfer from perp to spot account\n * @type {string}\n * @memberof TransferPerpToSpotRequestDto\n */\n 'amount': string;\n /**\n * Asset to transfer (default: USDC)\n * @type {string}\n * @memberof TransferPerpToSpotRequestDto\n */\n 'asset'?: string;\n}\n/**\n * \n * @export\n * @interface TransferResponseDto\n */\nexport interface TransferResponseDto {\n /**\n * Transfer success status\n * @type {boolean}\n * @memberof TransferResponseDto\n */\n 'success': boolean;\n /**\n * Amount transferred\n * @type {string}\n * @memberof TransferResponseDto\n */\n 'amount': string;\n /**\n * Asset transferred\n * @type {string}\n * @memberof TransferResponseDto\n */\n 'asset': string;\n /**\n * Transfer direction\n * @type {string}\n * @memberof TransferResponseDto\n */\n 'direction': string;\n /**\n * Success message\n * @type {string}\n * @memberof TransferResponseDto\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface TransferSpotToPerpRequestDto\n */\nexport interface TransferSpotToPerpRequestDto {\n /**\n * Amount of USDC to transfer from spot to perp account\n * @type {string}\n * @memberof TransferSpotToPerpRequestDto\n */\n 'amount': string;\n /**\n * Asset to transfer (default: USDC)\n * @type {string}\n * @memberof TransferSpotToPerpRequestDto\n */\n 'asset'?: string;\n}\n/**\n * \n * @export\n * @interface TriggerDto\n */\nexport interface TriggerDto {\n /**\n * Raw market ticker / outcome id\n * @type {string}\n * @memberof TriggerDto\n */\n 'id': string;\n /**\n * \n * @type {string}\n * @memberof TriggerDto\n */\n 'category': TriggerDtoCategoryEnum;\n /**\n * \n * @type {string}\n * @memberof TriggerDto\n */\n 'source': TriggerDtoSourceEnum;\n /**\n * \n * @type {OracleValueDto}\n * @memberof TriggerDto\n */\n 'oracle'?: OracleValueDto | null;\n /**\n * \n * @type {TriggerDtoMetadata}\n * @memberof TriggerDto\n */\n 'metadata': TriggerDtoMetadata;\n}\n\nexport const TriggerDtoCategoryEnum = {\n PredictionMarket: 'prediction_market',\n Btcdom: 'btcdom'\n} as const;\n\nexport type TriggerDtoCategoryEnum = typeof TriggerDtoCategoryEnum[keyof typeof TriggerDtoCategoryEnum];\nexport const TriggerDtoSourceEnum = {\n Kalshi: 'kalshi',\n Hyperliquid: 'hyperliquid',\n Coingecko: 'coingecko'\n} as const;\n\nexport type TriggerDtoSourceEnum = typeof TriggerDtoSourceEnum[keyof typeof TriggerDtoSourceEnum];\n\n/**\n * @type TriggerDtoMetadata\n * Category-specific metadata\n * @export\n */\nexport type TriggerDtoMetadata = BtcDomMetaDto | MarketTriggerMetaDto;\n\n/**\n * \n * @export\n * @interface TriggerOrderParameters\n */\nexport interface TriggerOrderParameters {\n /**\n * Leverage multiplier\n * @type {number}\n * @memberof TriggerOrderParameters\n */\n 'leverage': number;\n /**\n * Order value in USD\n * @type {number}\n * @memberof TriggerOrderParameters\n */\n 'usdValue': number;\n /**\n * Trigger type\n * @type {string}\n * @memberof TriggerOrderParameters\n */\n 'triggerType': TriggerOrderParametersTriggerTypeEnum;\n /**\n * \n * @type {TriggerOrderParametersTriggerValue}\n * @memberof TriggerOrderParameters\n */\n 'triggerValue': TriggerOrderParametersTriggerValue;\n /**\n * Order direction\n * @type {string}\n * @memberof TriggerOrderParameters\n */\n 'direction': TriggerOrderParametersDirectionEnum;\n /**\n * Whether this is a reduce-only order\n * @type {boolean}\n * @memberof TriggerOrderParameters\n */\n 'reduceOnly'?: boolean;\n /**\n * Asset name\n * @type {string}\n * @memberof TriggerOrderParameters\n */\n 'assetName'?: string;\n /**\n * Market code\n * @type {string}\n * @memberof TriggerOrderParameters\n */\n 'marketCode'?: string;\n /**\n * Market name\n * @type {string}\n * @memberof TriggerOrderParameters\n */\n 'marketName'?: string;\n /**\n * Market source\n * @type {string}\n * @memberof TriggerOrderParameters\n */\n 'marketSource'?: TriggerOrderParametersMarketSourceEnum;\n}\n\nexport const TriggerOrderParametersTriggerTypeEnum = {\n Price: 'PRICE',\n PriceLimit: 'PRICE_LIMIT',\n PriceRatio: 'PRICE_RATIO',\n WeightedRatio: 'WEIGHTED_RATIO',\n BtcDom: 'BTC_DOM',\n CrossAssetPrice: 'CROSS_ASSET_PRICE',\n PredictionMarketOutcome: 'PREDICTION_MARKET_OUTCOME',\n Price2: 'PRICE',\n PriceRatio2: 'PRICE_RATIO',\n WeightedRatio2: 'WEIGHTED_RATIO',\n Percentage: 'PERCENTAGE',\n Dollar: 'DOLLAR',\n PositionValue: 'POSITION_VALUE'\n} as const;\n\nexport type TriggerOrderParametersTriggerTypeEnum = typeof TriggerOrderParametersTriggerTypeEnum[keyof typeof TriggerOrderParametersTriggerTypeEnum];\nexport const TriggerOrderParametersDirectionEnum = {\n MoreThan: 'MORE_THAN',\n LessThan: 'LESS_THAN'\n} as const;\n\nexport type TriggerOrderParametersDirectionEnum = typeof TriggerOrderParametersDirectionEnum[keyof typeof TriggerOrderParametersDirectionEnum];\nexport const TriggerOrderParametersMarketSourceEnum = {\n Kalshi: 'KALSHI',\n Hyperliquid: 'HYPERLIQUID'\n} as const;\n\nexport type TriggerOrderParametersMarketSourceEnum = typeof TriggerOrderParametersMarketSourceEnum[keyof typeof TriggerOrderParametersMarketSourceEnum];\n\n/**\n * @type TriggerOrderParametersTriggerValue\n * Trigger value (price or ratio)\n * @export\n */\nexport type TriggerOrderParametersTriggerValue = number | string;\n\n/**\n * \n * @export\n * @interface TriggerOutcomeDto\n */\nexport interface TriggerOutcomeDto {\n /**\n * Tradeable outcome ticker\n * @type {string}\n * @memberof TriggerOutcomeDto\n */\n 'id': string;\n /**\n * Outcome label\n * @type {string}\n * @memberof TriggerOutcomeDto\n */\n 'label': string;\n /**\n * \n * @type {OracleValueDto}\n * @memberof TriggerOutcomeDto\n */\n 'oracle'?: OracleValueDto | null;\n /**\n * \n * @type {string}\n * @memberof TriggerOutcomeDto\n */\n 'yesSubtitle'?: string | null;\n /**\n * \n * @type {string}\n * @memberof TriggerOutcomeDto\n */\n 'noSubtitle'?: string | null;\n}\n/**\n * \n * @export\n * @interface TriggersResponseDto\n */\nexport interface TriggersResponseDto {\n /**\n * \n * @type {Array<TriggerDto>}\n * @memberof TriggersResponseDto\n */\n 'triggers': Array<TriggerDto>;\n}\n/**\n * \n * @export\n * @interface TwapChunkStatusDto\n */\nexport interface TwapChunkStatusDto {\n /**\n * TWAP chunk identifier\n * @type {string}\n * @memberof TwapChunkStatusDto\n */\n 'chunkId': string;\n /**\n * Chunk index in sequence\n * @type {number}\n * @memberof TwapChunkStatusDto\n */\n 'chunkIndex': number;\n /**\n * Scheduled execution time\n * @type {string}\n * @memberof TwapChunkStatusDto\n */\n 'scheduledTime': string;\n /**\n * Actual execution time\n * @type {string}\n * @memberof TwapChunkStatusDto\n */\n 'executedTime': string | null;\n /**\n * Chunk execution status\n * @type {string}\n * @memberof TwapChunkStatusDto\n */\n 'status': TwapChunkStatusDtoStatusEnum;\n /**\n * Planned chunk size in USD\n * @type {number}\n * @memberof TwapChunkStatusDto\n */\n 'chunkSize': number;\n /**\n * Individual fills in this chunk\n * @type {Array<ChunkFillDto>}\n * @memberof TwapChunkStatusDto\n */\n 'fills': Array<ChunkFillDto>;\n /**\n * Error message if chunk failed\n * @type {string}\n * @memberof TwapChunkStatusDto\n */\n 'errorMessage': string | null;\n}\n\nexport const TwapChunkStatusDtoStatusEnum = {\n Pending: 'PENDING',\n Scheduled: 'SCHEDULED',\n Executing: 'EXECUTING',\n Completed: 'COMPLETED',\n Failed: 'FAILED',\n Cancelled: 'CANCELLED'\n} as const;\n\nexport type TwapChunkStatusDtoStatusEnum = typeof TwapChunkStatusDtoStatusEnum[keyof typeof TwapChunkStatusDtoStatusEnum];\n\n/**\n * \n * @export\n * @interface TwapMonitoringDto\n */\nexport interface TwapMonitoringDto {\n /**\n * TWAP order identifier\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'orderId': string;\n /**\n * Associated position ID (for close orders)\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'positionId': string | null;\n /**\n * User wallet address\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'address': string;\n /**\n * Order type (TWAP)\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'orderType': string;\n /**\n * Long assets in the order\n * @type {Array<OrderAssetDto>}\n * @memberof TwapMonitoringDto\n */\n 'longAssets': Array<OrderAssetDto>;\n /**\n * Short assets in the order\n * @type {Array<OrderAssetDto>}\n * @memberof TwapMonitoringDto\n */\n 'shortAssets': Array<OrderAssetDto>;\n /**\n * Overall order status\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'status': TwapMonitoringDtoStatusEnum;\n /**\n * Total order value in USD\n * @type {number}\n * @memberof TwapMonitoringDto\n */\n 'totalUsdValue': number;\n /**\n * USD value already filled\n * @type {number}\n * @memberof TwapMonitoringDto\n */\n 'filledUsdValue': number;\n /**\n * USD value remaining to fill\n * @type {number}\n * @memberof TwapMonitoringDto\n */\n 'remainingUsdValue': number;\n /**\n * TWAP duration setting\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'twapDuration': string;\n /**\n * TWAP interval in seconds (effective)\n * @type {number}\n * @memberof TwapMonitoringDto\n */\n 'twapIntervalSeconds'?: number | null;\n /**\n * Base USD value per TWAP chunk\n * @type {number}\n * @memberof TwapMonitoringDto\n */\n 'twapChunkUsdValue'?: number | null;\n /**\n * Whether execution timing is randomized\n * @type {boolean}\n * @memberof TwapMonitoringDto\n */\n 'randomizeExecution': boolean;\n /**\n * Is this a reduce-only order (close position)\n * @type {boolean}\n * @memberof TwapMonitoringDto\n */\n 'reduceOnly': boolean;\n /**\n * Breakdown of each execution chunk\n * @type {Array<TwapChunkStatusDto>}\n * @memberof TwapMonitoringDto\n */\n 'chunks': Array<TwapChunkStatusDto>;\n /**\n * Estimated completion time\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'estimatedCompletionTime': string | null;\n /**\n * Actual completion time\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'actualCompletionTime': string | null;\n /**\n * Number of chunks remaining to execute\n * @type {number}\n * @memberof TwapMonitoringDto\n */\n 'remainingChunks': number;\n /**\n * Order creation timestamp\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'createdAt': string;\n /**\n * Last update timestamp\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'updatedAt': string;\n}\n\nexport const TwapMonitoringDtoStatusEnum = {\n Open: 'OPEN',\n Executing: 'EXECUTING',\n Completed: 'COMPLETED',\n PartiallyCompleted: 'PARTIALLY_COMPLETED',\n Failed: 'FAILED',\n Cancelled: 'CANCELLED'\n} as const;\n\nexport type TwapMonitoringDtoStatusEnum = typeof TwapMonitoringDtoStatusEnum[keyof typeof TwapMonitoringDtoStatusEnum];\n\n/**\n * \n * @export\n * @interface TwapOrderParameters\n */\nexport interface TwapOrderParameters {\n /**\n * Leverage multiplier\n * @type {number}\n * @memberof TwapOrderParameters\n */\n 'leverage': number;\n /**\n * Order value in USD\n * @type {number}\n * @memberof TwapOrderParameters\n */\n 'usdValue': number;\n /**\n * TWAP duration (e.g. 5m, 1h, 24h)\n * @type {string}\n * @memberof TwapOrderParameters\n */\n 'duration': string;\n /**\n * Interval between chunks in seconds\n * @type {number}\n * @memberof TwapOrderParameters\n */\n 'intervalSeconds'?: number;\n /**\n * Calculated base chunk size in USD\n * @type {number}\n * @memberof TwapOrderParameters\n */\n 'chunkUsdValue': number;\n /**\n * Whether execution timing is randomized\n * @type {boolean}\n * @memberof TwapOrderParameters\n */\n 'randomizeExecution'?: boolean;\n /**\n * Whether this is a reduce-only order\n * @type {boolean}\n * @memberof TwapOrderParameters\n */\n 'reduceOnly'?: boolean;\n}\n/**\n * \n * @export\n * @interface UpdateRiskParametersRequestDto\n */\nexport interface UpdateRiskParametersRequestDto {\n /**\n * Stop loss configuration. Set to null to remove existing stop loss.\n * @type {TpSlThreshold}\n * @memberof UpdateRiskParametersRequestDto\n */\n 'stopLoss'?: TpSlThreshold | null;\n /**\n * Take profit configuration. Set to null to remove existing take profit.\n * @type {TpSlThreshold}\n * @memberof UpdateRiskParametersRequestDto\n */\n 'takeProfit'?: TpSlThreshold | null;\n}\n/**\n * \n * @export\n * @interface UpdateRiskParametersResponseDto\n */\nexport interface UpdateRiskParametersResponseDto {\n /**\n * Position identifier\n * @type {string}\n * @memberof UpdateRiskParametersResponseDto\n */\n 'positionId': string;\n /**\n * Updated stop loss configuration\n * @type {TpSlThreshold}\n * @memberof UpdateRiskParametersResponseDto\n */\n 'stopLoss': TpSlThreshold | null;\n /**\n * Updated take profit configuration\n * @type {TpSlThreshold}\n * @memberof UpdateRiskParametersResponseDto\n */\n 'takeProfit': TpSlThreshold | null;\n /**\n * Update timestamp\n * @type {string}\n * @memberof UpdateRiskParametersResponseDto\n */\n 'updatedAt': string;\n}\n/**\n * \n * @export\n * @interface WatchlistAssetDto\n */\nexport interface WatchlistAssetDto {\n /**\n * \n * @type {string}\n * @memberof WatchlistAssetDto\n */\n 'asset': string;\n /**\n * \n * @type {number}\n * @memberof WatchlistAssetDto\n */\n 'weight': number;\n}\n/**\n * \n * @export\n * @interface WatchlistBasketDto\n */\nexport interface WatchlistBasketDto {\n /**\n * Basket ID\n * @type {string}\n * @memberof WatchlistBasketDto\n */\n 'id': string;\n /**\n * Long assets in the basket\n * @type {Array<WatchlistAssetDto>}\n * @memberof WatchlistBasketDto\n */\n 'longAssets': Array<WatchlistAssetDto>;\n /**\n * Short assets in the basket\n * @type {Array<WatchlistAssetDto>}\n * @memberof WatchlistBasketDto\n */\n 'shortAssets': Array<WatchlistAssetDto>;\n}\n/**\n * \n * @export\n * @interface WatchlistResponseDto\n */\nexport interface WatchlistResponseDto {\n /**\n * List of watchlist baskets\n * @type {Array<WatchlistBasketDto>}\n * @memberof WatchlistResponseDto\n */\n 'items': Array<WatchlistBasketDto>;\n}\n\n/**\n * APIKeysApi - axios parameter creator\n * @export\n */\nexport const APIKeysApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Create a new API key for the authenticated user\n * @summary Create API key\n * @param {ApiKeysControllerCreateApiKeyRequest} apiKeysControllerCreateApiKeyRequest API key creation request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n apiKeysControllerCreateApiKey: async (apiKeysControllerCreateApiKeyRequest: ApiKeysControllerCreateApiKeyRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'apiKeysControllerCreateApiKeyRequest' is not null or undefined\n assertParamExists('apiKeysControllerCreateApiKey', 'apiKeysControllerCreateApiKeyRequest', apiKeysControllerCreateApiKeyRequest)\n const localVarPath = `/api-keys`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(apiKeysControllerCreateApiKeyRequest, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Get all API keys for the authenticated user\n * @summary Get user API keys\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n apiKeysControllerGetUserApiKeys: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/api-keys`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * APIKeysApi - functional programming interface\n * @export\n */\nexport const APIKeysApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = APIKeysApiAxiosParamCreator(configuration)\n return {\n /**\n * Create a new API key for the authenticated user\n * @summary Create API key\n * @param {ApiKeysControllerCreateApiKeyRequest} apiKeysControllerCreateApiKeyRequest API key creation request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async apiKeysControllerCreateApiKey(apiKeysControllerCreateApiKeyRequest: ApiKeysControllerCreateApiKeyRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApiKeysControllerCreateApiKey201Response>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.apiKeysControllerCreateApiKey(apiKeysControllerCreateApiKeyRequest, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['APIKeysApi.apiKeysControllerCreateApiKey']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Get all API keys for the authenticated user\n * @summary Get user API keys\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async apiKeysControllerGetUserApiKeys(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApiKeysControllerGetUserApiKeys200Response>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.apiKeysControllerGetUserApiKeys(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['APIKeysApi.apiKeysControllerGetUserApiKeys']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * APIKeysApi - factory interface\n * @export\n */\nexport const APIKeysApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = APIKeysApiFp(configuration)\n return {\n /**\n * Create a new API key for the authenticated user\n * @summary Create API key\n * @param {ApiKeysControllerCreateApiKeyRequest} apiKeysControllerCreateApiKeyRequest API key creation request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n apiKeysControllerCreateApiKey(apiKeysControllerCreateApiKeyRequest: ApiKeysControllerCreateApiKeyRequest, options?: RawAxiosRequestConfig): AxiosPromise<ApiKeysControllerCreateApiKey201Response> {\n return localVarFp.apiKeysControllerCreateApiKey(apiKeysControllerCreateApiKeyRequest, options).then((request) => request(axios, basePath));\n },\n /**\n * Get all API keys for the authenticated user\n * @summary Get user API keys\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n apiKeysControllerGetUserApiKeys(options?: RawAxiosRequestConfig): AxiosPromise<ApiKeysControllerGetUserApiKeys200Response> {\n return localVarFp.apiKeysControllerGetUserApiKeys(options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * APIKeysApi - object-oriented interface\n * @export\n * @class APIKeysApi\n * @extends {BaseAPI}\n */\nexport class APIKeysApi extends BaseAPI {\n /**\n * Create a new API key for the authenticated user\n * @summary Create API key\n * @param {ApiKeysControllerCreateApiKeyRequest} apiKeysControllerCreateApiKeyRequest API key creation request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof APIKeysApi\n */\n public apiKeysControllerCreateApiKey(apiKeysControllerCreateApiKeyRequest: ApiKeysControllerCreateApiKeyRequest, options?: RawAxiosRequestConfig) {\n return APIKeysApiFp(this.configuration).apiKeysControllerCreateApiKey(apiKeysControllerCreateApiKeyRequest, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Get all API keys for the authenticated user\n * @summary Get user API keys\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof APIKeysApi\n */\n public apiKeysControllerGetUserApiKeys(options?: RawAxiosRequestConfig) {\n return APIKeysApiFp(this.configuration).apiKeysControllerGetUserApiKeys(options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * AccountsApi - axios parameter creator\n * @export\n */\nexport const AccountsApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Retrieve account summary including margin information and agent wallet details for the authenticated user\n * @summary Get account summary\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountsControllerGetAccountSummary: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/accounts`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * AccountsApi - functional programming interface\n * @export\n */\nexport const AccountsApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = AccountsApiAxiosParamCreator(configuration)\n return {\n /**\n * Retrieve account summary including margin information and agent wallet details for the authenticated user\n * @summary Get account summary\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async accountsControllerGetAccountSummary(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AccountSummaryResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountsControllerGetAccountSummary(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AccountsApi.accountsControllerGetAccountSummary']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * AccountsApi - factory interface\n * @export\n */\nexport const AccountsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = AccountsApiFp(configuration)\n return {\n /**\n * Retrieve account summary including margin information and agent wallet details for the authenticated user\n * @summary Get account summary\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountsControllerGetAccountSummary(options?: RawAxiosRequestConfig): AxiosPromise<AccountSummaryResponseDto> {\n return localVarFp.accountsControllerGetAccountSummary(options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * AccountsApi - object-oriented interface\n * @export\n * @class AccountsApi\n * @extends {BaseAPI}\n */\nexport class AccountsApi extends BaseAPI {\n /**\n * Retrieve account summary including margin information and agent wallet details for the authenticated user\n * @summary Get account summary\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n public accountsControllerGetAccountSummary(options?: RawAxiosRequestConfig) {\n return AccountsApiFp(this.configuration).accountsControllerGetAccountSummary(options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * AgentWalletApi - axios parameter creator\n * @export\n */\nexport const AgentWalletApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Create a new agent wallet for the authenticated user. The wallet private key is securely stored and encrypted within Pear Protocol. After creation, the user must approve the wallet through Hyperliquid\\'s agent wallet approval process.\n * @summary Create a new agent wallet\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n agentWalletControllerCreateAgentWallet: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/agentWallet`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Check if an agent wallet exists for the authenticated user and retrieve its status. Agent wallets are used to execute trades on Hyperliquid Exchange on behalf of users and are valid for 180 days with automatic 30-day rotations.\n * @summary Get agent wallet status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n agentWalletControllerGetAgentWallet: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/agentWallet`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * AgentWalletApi - functional programming interface\n * @export\n */\nexport const AgentWalletApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = AgentWalletApiAxiosParamCreator(configuration)\n return {\n /**\n * Create a new agent wallet for the authenticated user. The wallet private key is securely stored and encrypted within Pear Protocol. After creation, the user must approve the wallet through Hyperliquid\\'s agent wallet approval process.\n * @summary Create a new agent wallet\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async agentWalletControllerCreateAgentWallet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateAgentWalletResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.agentWalletControllerCreateAgentWallet(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AgentWalletApi.agentWalletControllerCreateAgentWallet']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Check if an agent wallet exists for the authenticated user and retrieve its status. Agent wallets are used to execute trades on Hyperliquid Exchange on behalf of users and are valid for 180 days with automatic 30-day rotations.\n * @summary Get agent wallet status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async agentWalletControllerGetAgentWallet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetAgentWalletResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.agentWalletControllerGetAgentWallet(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AgentWalletApi.agentWalletControllerGetAgentWallet']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * AgentWalletApi - factory interface\n * @export\n */\nexport const AgentWalletApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = AgentWalletApiFp(configuration)\n return {\n /**\n * Create a new agent wallet for the authenticated user. The wallet private key is securely stored and encrypted within Pear Protocol. After creation, the user must approve the wallet through Hyperliquid\\'s agent wallet approval process.\n * @summary Create a new agent wallet\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n agentWalletControllerCreateAgentWallet(options?: RawAxiosRequestConfig): AxiosPromise<CreateAgentWalletResponseDto> {\n return localVarFp.agentWalletControllerCreateAgentWallet(options).then((request) => request(axios, basePath));\n },\n /**\n * Check if an agent wallet exists for the authenticated user and retrieve its status. Agent wallets are used to execute trades on Hyperliquid Exchange on behalf of users and are valid for 180 days with automatic 30-day rotations.\n * @summary Get agent wallet status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n agentWalletControllerGetAgentWallet(options?: RawAxiosRequestConfig): AxiosPromise<GetAgentWalletResponseDto> {\n return localVarFp.agentWalletControllerGetAgentWallet(options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * AgentWalletApi - object-oriented interface\n * @export\n * @class AgentWalletApi\n * @extends {BaseAPI}\n */\nexport class AgentWalletApi extends BaseAPI {\n /**\n * Create a new agent wallet for the authenticated user. The wallet private key is securely stored and encrypted within Pear Protocol. After creation, the user must approve the wallet through Hyperliquid\\'s agent wallet approval process.\n * @summary Create a new agent wallet\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AgentWalletApi\n */\n public agentWalletControllerCreateAgentWallet(options?: RawAxiosRequestConfig) {\n return AgentWalletApiFp(this.configuration).agentWalletControllerCreateAgentWallet(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Check if an agent wallet exists for the authenticated user and retrieve its status. Agent wallets are used to execute trades on Hyperliquid Exchange on behalf of users and are valid for 180 days with automatic 30-day rotations.\n * @summary Get agent wallet status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AgentWalletApi\n */\n public agentWalletControllerGetAgentWallet(options?: RawAxiosRequestConfig) {\n return AgentWalletApiFp(this.configuration).agentWalletControllerGetAgentWallet(options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * AuthenticationApi - axios parameter creator\n * @export\n */\nexport const AuthenticationApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Authenticate a user using EIP712 signature or API key and return access/refresh tokens\n * @summary Authenticate user\n * @param {AuthenticateRequestDto} authenticateRequestDto Authentication request with EIP712 signature or API key\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerAuthenticate: async (authenticateRequestDto: AuthenticateRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'authenticateRequestDto' is not null or undefined\n assertParamExists('authControllerAuthenticate', 'authenticateRequestDto', authenticateRequestDto)\n const localVarPath = `/auth/login`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(authenticateRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Generate EIP712 structured data for client-side signing\n * @summary Get EIP712 message to sign\n * @param {string} address User wallet address\n * @param {string} clientId Client identifier\n * @param {number} chainId \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerGetEIP712Message: async (address: string, clientId: string, chainId: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'address' is not null or undefined\n assertParamExists('authControllerGetEIP712Message', 'address', address)\n // verify required parameter 'clientId' is not null or undefined\n assertParamExists('authControllerGetEIP712Message', 'clientId', clientId)\n // verify required parameter 'chainId' is not null or undefined\n assertParamExists('authControllerGetEIP712Message', 'chainId', chainId)\n const localVarPath = `/auth/eip712-message`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (address !== undefined) {\n localVarQueryParameter['address'] = address;\n }\n\n if (clientId !== undefined) {\n localVarQueryParameter['clientId'] = clientId;\n }\n\n if (chainId !== undefined) {\n localVarQueryParameter['chainId'] = chainId;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Invalidate refresh token and log out the user\n * @summary Logout user\n * @param {LogoutRequestDto} logoutRequestDto Logout request with refresh token\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerLogout: async (logoutRequestDto: LogoutRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'logoutRequestDto' is not null or undefined\n assertParamExists('authControllerLogout', 'logoutRequestDto', logoutRequestDto)\n const localVarPath = `/auth/logout`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(logoutRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Use a valid refresh token to obtain a new access token and refresh token\n * @summary Refresh access token\n * @param {RefreshTokenRequestDto} refreshTokenRequestDto Refresh token request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerRefreshToken: async (refreshTokenRequestDto: RefreshTokenRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'refreshTokenRequestDto' is not null or undefined\n assertParamExists('authControllerRefreshToken', 'refreshTokenRequestDto', refreshTokenRequestDto)\n const localVarPath = `/auth/refresh`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(refreshTokenRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * AuthenticationApi - functional programming interface\n * @export\n */\nexport const AuthenticationApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = AuthenticationApiAxiosParamCreator(configuration)\n return {\n /**\n * Authenticate a user using EIP712 signature or API key and return access/refresh tokens\n * @summary Authenticate user\n * @param {AuthenticateRequestDto} authenticateRequestDto Authentication request with EIP712 signature or API key\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async authControllerAuthenticate(authenticateRequestDto: AuthenticateRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AuthenticateResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.authControllerAuthenticate(authenticateRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AuthenticationApi.authControllerAuthenticate']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Generate EIP712 structured data for client-side signing\n * @summary Get EIP712 message to sign\n * @param {string} address User wallet address\n * @param {string} clientId Client identifier\n * @param {number} chainId \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async authControllerGetEIP712Message(address: string, clientId: string, chainId: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetEIP712MessageResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.authControllerGetEIP712Message(address, clientId, chainId, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AuthenticationApi.authControllerGetEIP712Message']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Invalidate refresh token and log out the user\n * @summary Logout user\n * @param {LogoutRequestDto} logoutRequestDto Logout request with refresh token\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async authControllerLogout(logoutRequestDto: LogoutRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<LogoutResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.authControllerLogout(logoutRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AuthenticationApi.authControllerLogout']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Use a valid refresh token to obtain a new access token and refresh token\n * @summary Refresh access token\n * @param {RefreshTokenRequestDto} refreshTokenRequestDto Refresh token request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async authControllerRefreshToken(refreshTokenRequestDto: RefreshTokenRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RefreshTokenResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.authControllerRefreshToken(refreshTokenRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AuthenticationApi.authControllerRefreshToken']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * AuthenticationApi - factory interface\n * @export\n */\nexport const AuthenticationApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = AuthenticationApiFp(configuration)\n return {\n /**\n * Authenticate a user using EIP712 signature or API key and return access/refresh tokens\n * @summary Authenticate user\n * @param {AuthenticateRequestDto} authenticateRequestDto Authentication request with EIP712 signature or API key\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerAuthenticate(authenticateRequestDto: AuthenticateRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<AuthenticateResponseDto> {\n return localVarFp.authControllerAuthenticate(authenticateRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Generate EIP712 structured data for client-side signing\n * @summary Get EIP712 message to sign\n * @param {string} address User wallet address\n * @param {string} clientId Client identifier\n * @param {number} chainId \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerGetEIP712Message(address: string, clientId: string, chainId: number, options?: RawAxiosRequestConfig): AxiosPromise<GetEIP712MessageResponseDto> {\n return localVarFp.authControllerGetEIP712Message(address, clientId, chainId, options).then((request) => request(axios, basePath));\n },\n /**\n * Invalidate refresh token and log out the user\n * @summary Logout user\n * @param {LogoutRequestDto} logoutRequestDto Logout request with refresh token\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerLogout(logoutRequestDto: LogoutRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<LogoutResponseDto> {\n return localVarFp.authControllerLogout(logoutRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Use a valid refresh token to obtain a new access token and refresh token\n * @summary Refresh access token\n * @param {RefreshTokenRequestDto} refreshTokenRequestDto Refresh token request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerRefreshToken(refreshTokenRequestDto: RefreshTokenRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<RefreshTokenResponseDto> {\n return localVarFp.authControllerRefreshToken(refreshTokenRequestDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * AuthenticationApi - object-oriented interface\n * @export\n * @class AuthenticationApi\n * @extends {BaseAPI}\n */\nexport class AuthenticationApi extends BaseAPI {\n /**\n * Authenticate a user using EIP712 signature or API key and return access/refresh tokens\n * @summary Authenticate user\n * @param {AuthenticateRequestDto} authenticateRequestDto Authentication request with EIP712 signature or API key\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AuthenticationApi\n */\n public authControllerAuthenticate(authenticateRequestDto: AuthenticateRequestDto, options?: RawAxiosRequestConfig) {\n return AuthenticationApiFp(this.configuration).authControllerAuthenticate(authenticateRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Generate EIP712 structured data for client-side signing\n * @summary Get EIP712 message to sign\n * @param {string} address User wallet address\n * @param {string} clientId Client identifier\n * @param {number} chainId \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AuthenticationApi\n */\n public authControllerGetEIP712Message(address: string, clientId: string, chainId: number, options?: RawAxiosRequestConfig) {\n return AuthenticationApiFp(this.configuration).authControllerGetEIP712Message(address, clientId, chainId, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Invalidate refresh token and log out the user\n * @summary Logout user\n * @param {LogoutRequestDto} logoutRequestDto Logout request with refresh token\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AuthenticationApi\n */\n public authControllerLogout(logoutRequestDto: LogoutRequestDto, options?: RawAxiosRequestConfig) {\n return AuthenticationApiFp(this.configuration).authControllerLogout(logoutRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Use a valid refresh token to obtain a new access token and refresh token\n * @summary Refresh access token\n * @param {RefreshTokenRequestDto} refreshTokenRequestDto Refresh token request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AuthenticationApi\n */\n public authControllerRefreshToken(refreshTokenRequestDto: RefreshTokenRequestDto, options?: RawAxiosRequestConfig) {\n return AuthenticationApiFp(this.configuration).authControllerRefreshToken(refreshTokenRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * FillsApi - axios parameter creator\n * @export\n */\nexport const FillsApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Retrieve fills with optional filters for address, asset, client, Pear trade status, and time range.\n * @summary Get fills\n * @param {string} [address] Filter by wallet address (case-insensitive)\n * @param {string} [assetName] Filter by asset name\n * @param {string} [clientId] Filter by client ID\n * @param {string} [isPearTrade] Filter by Pear trade (cloid prefix 0x50454152). Defaults to true.\n * @param {string} [startTime] Filter fills with fillTime >= this value (unix ms)\n * @param {string} [endTime] Filter fills with fillTime <= this value (unix ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n fillsControllerGetFills: async (address?: string, assetName?: string, clientId?: string, isPearTrade?: string, startTime?: string, endTime?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/fills`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (address !== undefined) {\n localVarQueryParameter['address'] = address;\n }\n\n if (assetName !== undefined) {\n localVarQueryParameter['assetName'] = assetName;\n }\n\n if (clientId !== undefined) {\n localVarQueryParameter['clientId'] = clientId;\n }\n\n if (isPearTrade !== undefined) {\n localVarQueryParameter['isPearTrade'] = isPearTrade;\n }\n\n if (startTime !== undefined) {\n localVarQueryParameter['startTime'] = startTime;\n }\n\n if (endTime !== undefined) {\n localVarQueryParameter['endTime'] = endTime;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * FillsApi - functional programming interface\n * @export\n */\nexport const FillsApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = FillsApiAxiosParamCreator(configuration)\n return {\n /**\n * Retrieve fills with optional filters for address, asset, client, Pear trade status, and time range.\n * @summary Get fills\n * @param {string} [address] Filter by wallet address (case-insensitive)\n * @param {string} [assetName] Filter by asset name\n * @param {string} [clientId] Filter by client ID\n * @param {string} [isPearTrade] Filter by Pear trade (cloid prefix 0x50454152). Defaults to true.\n * @param {string} [startTime] Filter fills with fillTime >= this value (unix ms)\n * @param {string} [endTime] Filter fills with fillTime <= this value (unix ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async fillsControllerGetFills(address?: string, assetName?: string, clientId?: string, isPearTrade?: string, startTime?: string, endTime?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<FillItemDto>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.fillsControllerGetFills(address, assetName, clientId, isPearTrade, startTime, endTime, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['FillsApi.fillsControllerGetFills']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * FillsApi - factory interface\n * @export\n */\nexport const FillsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = FillsApiFp(configuration)\n return {\n /**\n * Retrieve fills with optional filters for address, asset, client, Pear trade status, and time range.\n * @summary Get fills\n * @param {string} [address] Filter by wallet address (case-insensitive)\n * @param {string} [assetName] Filter by asset name\n * @param {string} [clientId] Filter by client ID\n * @param {string} [isPearTrade] Filter by Pear trade (cloid prefix 0x50454152). Defaults to true.\n * @param {string} [startTime] Filter fills with fillTime >= this value (unix ms)\n * @param {string} [endTime] Filter fills with fillTime <= this value (unix ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n fillsControllerGetFills(address?: string, assetName?: string, clientId?: string, isPearTrade?: string, startTime?: string, endTime?: string, options?: RawAxiosRequestConfig): AxiosPromise<Array<FillItemDto>> {\n return localVarFp.fillsControllerGetFills(address, assetName, clientId, isPearTrade, startTime, endTime, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * FillsApi - object-oriented interface\n * @export\n * @class FillsApi\n * @extends {BaseAPI}\n */\nexport class FillsApi extends BaseAPI {\n /**\n * Retrieve fills with optional filters for address, asset, client, Pear trade status, and time range.\n * @summary Get fills\n * @param {string} [address] Filter by wallet address (case-insensitive)\n * @param {string} [assetName] Filter by asset name\n * @param {string} [clientId] Filter by client ID\n * @param {string} [isPearTrade] Filter by Pear trade (cloid prefix 0x50454152). Defaults to true.\n * @param {string} [startTime] Filter fills with fillTime >= this value (unix ms)\n * @param {string} [endTime] Filter fills with fillTime <= this value (unix ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FillsApi\n */\n public fillsControllerGetFills(address?: string, assetName?: string, clientId?: string, isPearTrade?: string, startTime?: string, endTime?: string, options?: RawAxiosRequestConfig) {\n return FillsApiFp(this.configuration).fillsControllerGetFills(address, assetName, clientId, isPearTrade, startTime, endTime, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * HealthApi - axios parameter creator\n * @export\n */\nexport const HealthApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Health check endpoint\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n healthControllerGetHealth: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/health`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * HealthApi - functional programming interface\n * @export\n */\nexport const HealthApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = HealthApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Health check endpoint\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async healthControllerGetHealth(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<HealthControllerGetHealth200Response>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.healthControllerGetHealth(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['HealthApi.healthControllerGetHealth']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * HealthApi - factory interface\n * @export\n */\nexport const HealthApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = HealthApiFp(configuration)\n return {\n /**\n * \n * @summary Health check endpoint\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n healthControllerGetHealth(options?: RawAxiosRequestConfig): AxiosPromise<HealthControllerGetHealth200Response> {\n return localVarFp.healthControllerGetHealth(options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * HealthApi - object-oriented interface\n * @export\n * @class HealthApi\n * @extends {BaseAPI}\n */\nexport class HealthApi extends BaseAPI {\n /**\n * \n * @summary Health check endpoint\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof HealthApi\n */\n public healthControllerGetHealth(options?: RawAxiosRequestConfig) {\n return HealthApiFp(this.configuration).healthControllerGetHealth(options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * LegacySupportApi - axios parameter creator\n * @export\n */\nexport const LegacySupportApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Get legacy daily stats (volume, fees, users, new_traders) for compatibility with pear-backend /statsData\n * @param {string} [period] Period label, e.g., daily\n * @param {string} [startDate] Start date ISO string\n * @param {string} [endDate] End date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyDailyStats: async (period?: string, startDate?: string, endDate?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/legacysupport/dailyStats`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (period !== undefined) {\n localVarQueryParameter['period'] = period;\n }\n\n if (startDate !== undefined) {\n localVarQueryParameter['startDate'] = startDate;\n }\n\n if (endDate !== undefined) {\n localVarQueryParameter['endDate'] = endDate;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Get hyperliquid user stats for legacy support (V2)\n * @param {string} address User address\n * @param {string} [period] Period label (e.g., daily)\n * @param {string} [startDate] Start date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyHyperliquidStats: async (address: string, period?: string, startDate?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'address' is not null or undefined\n assertParamExists('legacySupportControllerGetLegacyHyperliquidStats', 'address', address)\n const localVarPath = `/legacysupport/stats/hyperliquid`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (address !== undefined) {\n localVarQueryParameter['address'] = address;\n }\n\n if (period !== undefined) {\n localVarQueryParameter['period'] = period;\n }\n\n if (startDate !== undefined) {\n localVarQueryParameter['startDate'] = startDate;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Get legacy metrics (daily and total) for compatibility with pear-backend metric service\n * @param {number} [timestamp] Start of day timestamp (in seconds). Defaults to previous day window.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyMetrics: async (timestamp?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/legacysupport/metric`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (timestamp !== undefined) {\n localVarQueryParameter['timestamp'] = timestamp;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Get weekly and monthly volumes for legacy support\n * @param {number} [timestamp] Start of day timestamp (in seconds). Aligns end of windows the same as /metric.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyWeeklyVolume: async (timestamp?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/legacysupport/weeklyVolume`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (timestamp !== undefined) {\n localVarQueryParameter['timestamp'] = timestamp;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * LegacySupportApi - functional programming interface\n * @export\n */\nexport const LegacySupportApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = LegacySupportApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Get legacy daily stats (volume, fees, users, new_traders) for compatibility with pear-backend /statsData\n * @param {string} [period] Period label, e.g., daily\n * @param {string} [startDate] Start date ISO string\n * @param {string} [endDate] End date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async legacySupportControllerGetLegacyDailyStats(period?: string, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.legacySupportControllerGetLegacyDailyStats(period, startDate, endDate, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['LegacySupportApi.legacySupportControllerGetLegacyDailyStats']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Get hyperliquid user stats for legacy support (V2)\n * @param {string} address User address\n * @param {string} [period] Period label (e.g., daily)\n * @param {string} [startDate] Start date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async legacySupportControllerGetLegacyHyperliquidStats(address: string, period?: string, startDate?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.legacySupportControllerGetLegacyHyperliquidStats(address, period, startDate, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['LegacySupportApi.legacySupportControllerGetLegacyHyperliquidStats']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Get legacy metrics (daily and total) for compatibility with pear-backend metric service\n * @param {number} [timestamp] Start of day timestamp (in seconds). Defaults to previous day window.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async legacySupportControllerGetLegacyMetrics(timestamp?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<LegacySupportControllerGetLegacyMetrics200Response>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.legacySupportControllerGetLegacyMetrics(timestamp, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['LegacySupportApi.legacySupportControllerGetLegacyMetrics']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Get weekly and monthly volumes for legacy support\n * @param {number} [timestamp] Start of day timestamp (in seconds). Aligns end of windows the same as /metric.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async legacySupportControllerGetLegacyWeeklyVolume(timestamp?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.legacySupportControllerGetLegacyWeeklyVolume(timestamp, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['LegacySupportApi.legacySupportControllerGetLegacyWeeklyVolume']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * LegacySupportApi - factory interface\n * @export\n */\nexport const LegacySupportApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = LegacySupportApiFp(configuration)\n return {\n /**\n * \n * @summary Get legacy daily stats (volume, fees, users, new_traders) for compatibility with pear-backend /statsData\n * @param {string} [period] Period label, e.g., daily\n * @param {string} [startDate] Start date ISO string\n * @param {string} [endDate] End date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyDailyStats(period?: string, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {\n return localVarFp.legacySupportControllerGetLegacyDailyStats(period, startDate, endDate, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Get hyperliquid user stats for legacy support (V2)\n * @param {string} address User address\n * @param {string} [period] Period label (e.g., daily)\n * @param {string} [startDate] Start date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyHyperliquidStats(address: string, period?: string, startDate?: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {\n return localVarFp.legacySupportControllerGetLegacyHyperliquidStats(address, period, startDate, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Get legacy metrics (daily and total) for compatibility with pear-backend metric service\n * @param {number} [timestamp] Start of day timestamp (in seconds). Defaults to previous day window.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyMetrics(timestamp?: number, options?: RawAxiosRequestConfig): AxiosPromise<LegacySupportControllerGetLegacyMetrics200Response> {\n return localVarFp.legacySupportControllerGetLegacyMetrics(timestamp, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Get weekly and monthly volumes for legacy support\n * @param {number} [timestamp] Start of day timestamp (in seconds). Aligns end of windows the same as /metric.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyWeeklyVolume(timestamp?: number, options?: RawAxiosRequestConfig): AxiosPromise<void> {\n return localVarFp.legacySupportControllerGetLegacyWeeklyVolume(timestamp, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * LegacySupportApi - object-oriented interface\n * @export\n * @class LegacySupportApi\n * @extends {BaseAPI}\n */\nexport class LegacySupportApi extends BaseAPI {\n /**\n * \n * @summary Get legacy daily stats (volume, fees, users, new_traders) for compatibility with pear-backend /statsData\n * @param {string} [period] Period label, e.g., daily\n * @param {string} [startDate] Start date ISO string\n * @param {string} [endDate] End date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof LegacySupportApi\n */\n public legacySupportControllerGetLegacyDailyStats(period?: string, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig) {\n return LegacySupportApiFp(this.configuration).legacySupportControllerGetLegacyDailyStats(period, startDate, endDate, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Get hyperliquid user stats for legacy support (V2)\n * @param {string} address User address\n * @param {string} [period] Period label (e.g., daily)\n * @param {string} [startDate] Start date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof LegacySupportApi\n */\n public legacySupportControllerGetLegacyHyperliquidStats(address: string, period?: string, startDate?: string, options?: RawAxiosRequestConfig) {\n return LegacySupportApiFp(this.configuration).legacySupportControllerGetLegacyHyperliquidStats(address, period, startDate, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Get legacy metrics (daily and total) for compatibility with pear-backend metric service\n * @param {number} [timestamp] Start of day timestamp (in seconds). Defaults to previous day window.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof LegacySupportApi\n */\n public legacySupportControllerGetLegacyMetrics(timestamp?: number, options?: RawAxiosRequestConfig) {\n return LegacySupportApiFp(this.configuration).legacySupportControllerGetLegacyMetrics(timestamp, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Get weekly and monthly volumes for legacy support\n * @param {number} [timestamp] Start of day timestamp (in seconds). Aligns end of windows the same as /metric.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof LegacySupportApi\n */\n public legacySupportControllerGetLegacyWeeklyVolume(timestamp?: number, options?: RawAxiosRequestConfig) {\n return LegacySupportApiFp(this.configuration).legacySupportControllerGetLegacyWeeklyVolume(timestamp, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * MarketsApi - axios parameter creator\n * @export\n */\nexport const MarketsApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Get active market assets and pairs\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n marketsControllerGetActiveMarket: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/markets/active`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Get market data v2 (actives + watchlist baskets)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n marketsControllerGetMarketDataV2: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/markets/v2`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve market groups including active markets, top gainers, top losers, highlighted markets, and watchlist\n * @summary Get markets data\n * @param {string} [offset] Offset for pagination\n * @param {string} [page] Page number for pagination (minimum 1)\n * @param {string} [pageSize] Page size (items per page, maximum 100)\n * @param {string} [engine] Filter by engine type\n * @param {string} [minVolume] Filter by minimum volume\n * @param {string} [change24h] Filter by price change\n * @param {string} [netFunding] Filter by either positive or negative funding rate\n * @param {string} [searchText] Search text to filter markets\n * @param {string} [sort] Sort field and direction (e.g., volume:desc)\n * @param {string} [excludeText] Text to exclude from results\n * @param {string} [active] Filter by active status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n marketsControllerGetMarkets: async (offset?: string, page?: string, pageSize?: string, engine?: string, minVolume?: string, change24h?: string, netFunding?: string, searchText?: string, sort?: string, excludeText?: string, active?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/markets`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n\n if (page !== undefined) {\n localVarQueryParameter['page'] = page;\n }\n\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n\n if (engine !== undefined) {\n localVarQueryParameter['engine'] = engine;\n }\n\n if (minVolume !== undefined) {\n localVarQueryParameter['minVolume'] = minVolume;\n }\n\n if (change24h !== undefined) {\n localVarQueryParameter['change24h'] = change24h;\n }\n\n if (netFunding !== undefined) {\n localVarQueryParameter['netFunding'] = netFunding;\n }\n\n if (searchText !== undefined) {\n localVarQueryParameter['searchText'] = searchText;\n }\n\n if (sort !== undefined) {\n localVarQueryParameter['sort'] = sort;\n }\n\n if (excludeText !== undefined) {\n localVarQueryParameter['excludeText'] = excludeText;\n }\n\n if (active !== undefined) {\n localVarQueryParameter['active'] = active;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * MarketsApi - functional programming interface\n * @export\n */\nexport const MarketsApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = MarketsApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Get active market assets and pairs\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async marketsControllerGetActiveMarket(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ActiveAssetsResponse>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.marketsControllerGetActiveMarket(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['MarketsApi.marketsControllerGetActiveMarket']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Get market data v2 (actives + watchlist baskets)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async marketsControllerGetMarketDataV2(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketDataV2Response>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.marketsControllerGetMarketDataV2(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['MarketsApi.marketsControllerGetMarketDataV2']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve market groups including active markets, top gainers, top losers, highlighted markets, and watchlist\n * @summary Get markets data\n * @param {string} [offset] Offset for pagination\n * @param {string} [page] Page number for pagination (minimum 1)\n * @param {string} [pageSize] Page size (items per page, maximum 100)\n * @param {string} [engine] Filter by engine type\n * @param {string} [minVolume] Filter by minimum volume\n * @param {string} [change24h] Filter by price change\n * @param {string} [netFunding] Filter by either positive or negative funding rate\n * @param {string} [searchText] Search text to filter markets\n * @param {string} [sort] Sort field and direction (e.g., volume:desc)\n * @param {string} [excludeText] Text to exclude from results\n * @param {string} [active] Filter by active status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async marketsControllerGetMarkets(offset?: string, page?: string, pageSize?: string, engine?: string, minVolume?: string, change24h?: string, netFunding?: string, searchText?: string, sort?: string, excludeText?: string, active?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketsResponse>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.marketsControllerGetMarkets(offset, page, pageSize, engine, minVolume, change24h, netFunding, searchText, sort, excludeText, active, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['MarketsApi.marketsControllerGetMarkets']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * MarketsApi - factory interface\n * @export\n */\nexport const MarketsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = MarketsApiFp(configuration)\n return {\n /**\n * \n * @summary Get active market assets and pairs\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n marketsControllerGetActiveMarket(options?: RawAxiosRequestConfig): AxiosPromise<ActiveAssetsResponse> {\n return localVarFp.marketsControllerGetActiveMarket(options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Get market data v2 (actives + watchlist baskets)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n marketsControllerGetMarketDataV2(options?: RawAxiosRequestConfig): AxiosPromise<MarketDataV2Response> {\n return localVarFp.marketsControllerGetMarketDataV2(options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve market groups including active markets, top gainers, top losers, highlighted markets, and watchlist\n * @summary Get markets data\n * @param {string} [offset] Offset for pagination\n * @param {string} [page] Page number for pagination (minimum 1)\n * @param {string} [pageSize] Page size (items per page, maximum 100)\n * @param {string} [engine] Filter by engine type\n * @param {string} [minVolume] Filter by minimum volume\n * @param {string} [change24h] Filter by price change\n * @param {string} [netFunding] Filter by either positive or negative funding rate\n * @param {string} [searchText] Search text to filter markets\n * @param {string} [sort] Sort field and direction (e.g., volume:desc)\n * @param {string} [excludeText] Text to exclude from results\n * @param {string} [active] Filter by active status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n marketsControllerGetMarkets(offset?: string, page?: string, pageSize?: string, engine?: string, minVolume?: string, change24h?: string, netFunding?: string, searchText?: string, sort?: string, excludeText?: string, active?: string, options?: RawAxiosRequestConfig): AxiosPromise<MarketsResponse> {\n return localVarFp.marketsControllerGetMarkets(offset, page, pageSize, engine, minVolume, change24h, netFunding, searchText, sort, excludeText, active, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * MarketsApi - object-oriented interface\n * @export\n * @class MarketsApi\n * @extends {BaseAPI}\n */\nexport class MarketsApi extends BaseAPI {\n /**\n * \n * @summary Get active market assets and pairs\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof MarketsApi\n */\n public marketsControllerGetActiveMarket(options?: RawAxiosRequestConfig) {\n return MarketsApiFp(this.configuration).marketsControllerGetActiveMarket(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Get market data v2 (actives + watchlist baskets)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof MarketsApi\n */\n public marketsControllerGetMarketDataV2(options?: RawAxiosRequestConfig) {\n return MarketsApiFp(this.configuration).marketsControllerGetMarketDataV2(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve market groups including active markets, top gainers, top losers, highlighted markets, and watchlist\n * @summary Get markets data\n * @param {string} [offset] Offset for pagination\n * @param {string} [page] Page number for pagination (minimum 1)\n * @param {string} [pageSize] Page size (items per page, maximum 100)\n * @param {string} [engine] Filter by engine type\n * @param {string} [minVolume] Filter by minimum volume\n * @param {string} [change24h] Filter by price change\n * @param {string} [netFunding] Filter by either positive or negative funding rate\n * @param {string} [searchText] Search text to filter markets\n * @param {string} [sort] Sort field and direction (e.g., volume:desc)\n * @param {string} [excludeText] Text to exclude from results\n * @param {string} [active] Filter by active status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof MarketsApi\n */\n public marketsControllerGetMarkets(offset?: string, page?: string, pageSize?: string, engine?: string, minVolume?: string, change24h?: string, netFunding?: string, searchText?: string, sort?: string, excludeText?: string, active?: string, options?: RawAxiosRequestConfig) {\n return MarketsApiFp(this.configuration).marketsControllerGetMarkets(offset, page, pageSize, engine, minVolume, change24h, netFunding, searchText, sort, excludeText, active, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * NotificationsApi - axios parameter creator\n * @export\n */\nexport const NotificationsApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Get notifications for the authenticated user\n * @param {number} [limit] Maximum number of records to return (maximum 100)\n * @param {string} [startDate] Filter notifications created on/after this time (ISO or ms)\n * @param {string} [endDate] Filter notifications created on/before this time (ISO or ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n notificationsControllerGetNotifications: async (limit?: number, startDate?: string, endDate?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/notifications`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n\n if (startDate !== undefined) {\n localVarQueryParameter['startDate'] = startDate;\n }\n\n if (endDate !== undefined) {\n localVarQueryParameter['endDate'] = endDate;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Mark a notification by id as read or all up to a timestamp (ms)\n * @param {MarkNotificationsReadDto} markNotificationsReadDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n notificationsControllerMarkRead: async (markNotificationsReadDto: MarkNotificationsReadDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'markNotificationsReadDto' is not null or undefined\n assertParamExists('notificationsControllerMarkRead', 'markNotificationsReadDto', markNotificationsReadDto)\n const localVarPath = `/notifications/read`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(markNotificationsReadDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * NotificationsApi - functional programming interface\n * @export\n */\nexport const NotificationsApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = NotificationsApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Get notifications for the authenticated user\n * @param {number} [limit] Maximum number of records to return (maximum 100)\n * @param {string} [startDate] Filter notifications created on/after this time (ISO or ms)\n * @param {string} [endDate] Filter notifications created on/before this time (ISO or ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async notificationsControllerGetNotifications(limit?: number, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<object>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.notificationsControllerGetNotifications(limit, startDate, endDate, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['NotificationsApi.notificationsControllerGetNotifications']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Mark a notification by id as read or all up to a timestamp (ms)\n * @param {MarkNotificationsReadDto} markNotificationsReadDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async notificationsControllerMarkRead(markNotificationsReadDto: MarkNotificationsReadDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.notificationsControllerMarkRead(markNotificationsReadDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['NotificationsApi.notificationsControllerMarkRead']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * NotificationsApi - factory interface\n * @export\n */\nexport const NotificationsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = NotificationsApiFp(configuration)\n return {\n /**\n * \n * @summary Get notifications for the authenticated user\n * @param {number} [limit] Maximum number of records to return (maximum 100)\n * @param {string} [startDate] Filter notifications created on/after this time (ISO or ms)\n * @param {string} [endDate] Filter notifications created on/before this time (ISO or ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n notificationsControllerGetNotifications(limit?: number, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): AxiosPromise<Array<object>> {\n return localVarFp.notificationsControllerGetNotifications(limit, startDate, endDate, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Mark a notification by id as read or all up to a timestamp (ms)\n * @param {MarkNotificationsReadDto} markNotificationsReadDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n notificationsControllerMarkRead(markNotificationsReadDto: MarkNotificationsReadDto, options?: RawAxiosRequestConfig): AxiosPromise<object> {\n return localVarFp.notificationsControllerMarkRead(markNotificationsReadDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * NotificationsApi - object-oriented interface\n * @export\n * @class NotificationsApi\n * @extends {BaseAPI}\n */\nexport class NotificationsApi extends BaseAPI {\n /**\n * \n * @summary Get notifications for the authenticated user\n * @param {number} [limit] Maximum number of records to return (maximum 100)\n * @param {string} [startDate] Filter notifications created on/after this time (ISO or ms)\n * @param {string} [endDate] Filter notifications created on/before this time (ISO or ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsApi\n */\n public notificationsControllerGetNotifications(limit?: number, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig) {\n return NotificationsApiFp(this.configuration).notificationsControllerGetNotifications(limit, startDate, endDate, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Mark a notification by id as read or all up to a timestamp (ms)\n * @param {MarkNotificationsReadDto} markNotificationsReadDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsApi\n */\n public notificationsControllerMarkRead(markNotificationsReadDto: MarkNotificationsReadDto, options?: RawAxiosRequestConfig) {\n return NotificationsApiFp(this.configuration).notificationsControllerMarkRead(markNotificationsReadDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * OrdersApi - axios parameter creator\n * @export\n */\nexport const OrdersApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Cancel a pending order\n * @param {string} orderId Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerCancelOrder: async (orderId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'orderId' is not null or undefined\n assertParamExists('ordersControllerCancelOrder', 'orderId', orderId)\n const localVarPath = `/orders/{orderId}/cancel`\n .replace(`{${\"orderId\"}}`, encodeURIComponent(String(orderId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Cancel a TWAP order and all its pending chunks\n * @param {string} orderId TWAP Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerCancelTwapOrder: async (orderId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'orderId' is not null or undefined\n assertParamExists('ordersControllerCancelTwapOrder', 'orderId', orderId)\n const localVarPath = `/orders/{orderId}/twap/cancel`\n .replace(`{${\"orderId\"}}`, encodeURIComponent(String(orderId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve all orders for the authenticated user with optional filtering by status and order type\n * @summary Get all orders\n * @param {number} [page] Page number (default: 1)\n * @param {number} [limit] Items per page (default: 50, max: 100)\n * @param {OrdersControllerGetAllOrdersStatusEnum} [status] Filter by order status\n * @param {OrdersControllerGetAllOrdersOrderTypeEnum} [orderType] Filter by order type\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetAllOrders: async (page?: number, limit?: number, status?: OrdersControllerGetAllOrdersStatusEnum, orderType?: OrdersControllerGetAllOrdersOrderTypeEnum, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/orders`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (page !== undefined) {\n localVarQueryParameter['page'] = page;\n }\n\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n\n if (status !== undefined) {\n localVarQueryParameter['status'] = status;\n }\n\n if (orderType !== undefined) {\n localVarQueryParameter['orderType'] = orderType;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Get Kalshi prediction market triggers (paginated)\n * @param {string} [category] Kalshi category (Crypto, Politics, etc.)\n * @param {string} [search] Search term\n * @param {string} [cursor] Pagination cursor\n * @param {number} [pageSize] Page size\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetKalshiTriggers: async (category?: string, search?: string, cursor?: string, pageSize?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/orders/triggers/kalshi`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (category !== undefined) {\n localVarQueryParameter['category'] = category;\n }\n\n if (search !== undefined) {\n localVarQueryParameter['search'] = search;\n }\n\n if (cursor !== undefined) {\n localVarQueryParameter['cursor'] = cursor;\n }\n\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve all open orders (LIMIT, TP, SL) for the authenticated user with detailed order information including target ratios and asset allocations\n * @summary Get all open orders\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetOpenOrders: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/orders/open`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Get prediction triggers (Hyperliquid + BTC dominance)\n * @param {OrdersControllerGetTriggersCategoryEnum} [category] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetTriggers: async (category?: OrdersControllerGetTriggersCategoryEnum, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/orders/triggers`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (category !== undefined) {\n localVarQueryParameter['category'] = category;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve list of TWAP orders with detailed execution progress, chunk status, and fill information\n * @summary Get TWAP orders with monitoring data\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetTwapOrders: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/orders/twap`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Execute a spot order\n * @param {SpotOrderRequestDto} spotOrderRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerSpotOrder: async (spotOrderRequestDto: SpotOrderRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'spotOrderRequestDto' is not null or undefined\n assertParamExists('ordersControllerSpotOrder', 'spotOrderRequestDto', spotOrderRequestDto)\n const localVarPath = `/orders/spot`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(spotOrderRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * OrdersApi - functional programming interface\n * @export\n */\nexport const OrdersApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = OrdersApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Cancel a pending order\n * @param {string} orderId Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerCancelOrder(orderId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CancelOrderResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerCancelOrder(orderId, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerCancelOrder']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Cancel a TWAP order and all its pending chunks\n * @param {string} orderId TWAP Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerCancelTwapOrder(orderId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CancelTwapResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerCancelTwapOrder(orderId, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerCancelTwapOrder']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve all orders for the authenticated user with optional filtering by status and order type\n * @summary Get all orders\n * @param {number} [page] Page number (default: 1)\n * @param {number} [limit] Items per page (default: 50, max: 100)\n * @param {OrdersControllerGetAllOrdersStatusEnum} [status] Filter by order status\n * @param {OrdersControllerGetAllOrdersOrderTypeEnum} [orderType] Filter by order type\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerGetAllOrders(page?: number, limit?: number, status?: OrdersControllerGetAllOrdersStatusEnum, orderType?: OrdersControllerGetAllOrdersOrderTypeEnum, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedOrdersResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerGetAllOrders(page, limit, status, orderType, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerGetAllOrders']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Get Kalshi prediction market triggers (paginated)\n * @param {string} [category] Kalshi category (Crypto, Politics, etc.)\n * @param {string} [search] Search term\n * @param {string} [cursor] Pagination cursor\n * @param {number} [pageSize] Page size\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerGetKalshiTriggers(category?: string, search?: string, cursor?: string, pageSize?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<KalshiTriggersResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerGetKalshiTriggers(category, search, cursor, pageSize, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerGetKalshiTriggers']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve all open orders (LIMIT, TP, SL) for the authenticated user with detailed order information including target ratios and asset allocations\n * @summary Get all open orders\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerGetOpenOrders(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<OpenOrderDto>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerGetOpenOrders(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerGetOpenOrders']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Get prediction triggers (Hyperliquid + BTC dominance)\n * @param {OrdersControllerGetTriggersCategoryEnum} [category] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerGetTriggers(category?: OrdersControllerGetTriggersCategoryEnum, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TriggersResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerGetTriggers(category, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerGetTriggers']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve list of TWAP orders with detailed execution progress, chunk status, and fill information\n * @summary Get TWAP orders with monitoring data\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerGetTwapOrders(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<TwapMonitoringDto>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerGetTwapOrders(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerGetTwapOrders']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Execute a spot order\n * @param {SpotOrderRequestDto} spotOrderRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerSpotOrder(spotOrderRequestDto: SpotOrderRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SpotOrderResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerSpotOrder(spotOrderRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerSpotOrder']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * OrdersApi - factory interface\n * @export\n */\nexport const OrdersApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = OrdersApiFp(configuration)\n return {\n /**\n * \n * @summary Cancel a pending order\n * @param {string} orderId Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerCancelOrder(orderId: string, options?: RawAxiosRequestConfig): AxiosPromise<CancelOrderResponseDto> {\n return localVarFp.ordersControllerCancelOrder(orderId, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Cancel a TWAP order and all its pending chunks\n * @param {string} orderId TWAP Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerCancelTwapOrder(orderId: string, options?: RawAxiosRequestConfig): AxiosPromise<CancelTwapResponseDto> {\n return localVarFp.ordersControllerCancelTwapOrder(orderId, options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve all orders for the authenticated user with optional filtering by status and order type\n * @summary Get all orders\n * @param {number} [page] Page number (default: 1)\n * @param {number} [limit] Items per page (default: 50, max: 100)\n * @param {OrdersControllerGetAllOrdersStatusEnum} [status] Filter by order status\n * @param {OrdersControllerGetAllOrdersOrderTypeEnum} [orderType] Filter by order type\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetAllOrders(page?: number, limit?: number, status?: OrdersControllerGetAllOrdersStatusEnum, orderType?: OrdersControllerGetAllOrdersOrderTypeEnum, options?: RawAxiosRequestConfig): AxiosPromise<PaginatedOrdersResponseDto> {\n return localVarFp.ordersControllerGetAllOrders(page, limit, status, orderType, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Get Kalshi prediction market triggers (paginated)\n * @param {string} [category] Kalshi category (Crypto, Politics, etc.)\n * @param {string} [search] Search term\n * @param {string} [cursor] Pagination cursor\n * @param {number} [pageSize] Page size\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetKalshiTriggers(category?: string, search?: string, cursor?: string, pageSize?: number, options?: RawAxiosRequestConfig): AxiosPromise<KalshiTriggersResponseDto> {\n return localVarFp.ordersControllerGetKalshiTriggers(category, search, cursor, pageSize, options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve all open orders (LIMIT, TP, SL) for the authenticated user with detailed order information including target ratios and asset allocations\n * @summary Get all open orders\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetOpenOrders(options?: RawAxiosRequestConfig): AxiosPromise<Array<OpenOrderDto>> {\n return localVarFp.ordersControllerGetOpenOrders(options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Get prediction triggers (Hyperliquid + BTC dominance)\n * @param {OrdersControllerGetTriggersCategoryEnum} [category] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetTriggers(category?: OrdersControllerGetTriggersCategoryEnum, options?: RawAxiosRequestConfig): AxiosPromise<TriggersResponseDto> {\n return localVarFp.ordersControllerGetTriggers(category, options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve list of TWAP orders with detailed execution progress, chunk status, and fill information\n * @summary Get TWAP orders with monitoring data\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetTwapOrders(options?: RawAxiosRequestConfig): AxiosPromise<Array<TwapMonitoringDto>> {\n return localVarFp.ordersControllerGetTwapOrders(options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Execute a spot order\n * @param {SpotOrderRequestDto} spotOrderRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerSpotOrder(spotOrderRequestDto: SpotOrderRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<SpotOrderResponseDto> {\n return localVarFp.ordersControllerSpotOrder(spotOrderRequestDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * OrdersApi - object-oriented interface\n * @export\n * @class OrdersApi\n * @extends {BaseAPI}\n */\nexport class OrdersApi extends BaseAPI {\n /**\n * \n * @summary Cancel a pending order\n * @param {string} orderId Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerCancelOrder(orderId: string, options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerCancelOrder(orderId, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Cancel a TWAP order and all its pending chunks\n * @param {string} orderId TWAP Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerCancelTwapOrder(orderId: string, options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerCancelTwapOrder(orderId, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve all orders for the authenticated user with optional filtering by status and order type\n * @summary Get all orders\n * @param {number} [page] Page number (default: 1)\n * @param {number} [limit] Items per page (default: 50, max: 100)\n * @param {OrdersControllerGetAllOrdersStatusEnum} [status] Filter by order status\n * @param {OrdersControllerGetAllOrdersOrderTypeEnum} [orderType] Filter by order type\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerGetAllOrders(page?: number, limit?: number, status?: OrdersControllerGetAllOrdersStatusEnum, orderType?: OrdersControllerGetAllOrdersOrderTypeEnum, options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerGetAllOrders(page, limit, status, orderType, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Get Kalshi prediction market triggers (paginated)\n * @param {string} [category] Kalshi category (Crypto, Politics, etc.)\n * @param {string} [search] Search term\n * @param {string} [cursor] Pagination cursor\n * @param {number} [pageSize] Page size\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerGetKalshiTriggers(category?: string, search?: string, cursor?: string, pageSize?: number, options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerGetKalshiTriggers(category, search, cursor, pageSize, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve all open orders (LIMIT, TP, SL) for the authenticated user with detailed order information including target ratios and asset allocations\n * @summary Get all open orders\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerGetOpenOrders(options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerGetOpenOrders(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Get prediction triggers (Hyperliquid + BTC dominance)\n * @param {OrdersControllerGetTriggersCategoryEnum} [category] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerGetTriggers(category?: OrdersControllerGetTriggersCategoryEnum, options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerGetTriggers(category, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve list of TWAP orders with detailed execution progress, chunk status, and fill information\n * @summary Get TWAP orders with monitoring data\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerGetTwapOrders(options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerGetTwapOrders(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Execute a spot order\n * @param {SpotOrderRequestDto} spotOrderRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerSpotOrder(spotOrderRequestDto: SpotOrderRequestDto, options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerSpotOrder(spotOrderRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n/**\n * @export\n */\nexport const OrdersControllerGetAllOrdersStatusEnum = {\n Open: 'OPEN',\n Processing: 'PROCESSING',\n Executed: 'EXECUTED',\n Cancelled: 'CANCELLED',\n Failed: 'FAILED',\n PartiallyFilled: 'PARTIALLY_FILLED'\n} as const;\nexport type OrdersControllerGetAllOrdersStatusEnum = typeof OrdersControllerGetAllOrdersStatusEnum[keyof typeof OrdersControllerGetAllOrdersStatusEnum];\n/**\n * @export\n */\nexport const OrdersControllerGetAllOrdersOrderTypeEnum = {\n Sync: 'SYNC',\n Market: 'MARKET',\n Trigger: 'TRIGGER',\n Twap: 'TWAP',\n Ladder: 'LADDER',\n Tp: 'TP',\n Sl: 'SL',\n SpotMarket: 'SPOT_MARKET',\n SpotLimit: 'SPOT_LIMIT',\n SpotTwap: 'SPOT_TWAP'\n} as const;\nexport type OrdersControllerGetAllOrdersOrderTypeEnum = typeof OrdersControllerGetAllOrdersOrderTypeEnum[keyof typeof OrdersControllerGetAllOrdersOrderTypeEnum];\n/**\n * @export\n */\nexport const OrdersControllerGetTriggersCategoryEnum = {\n PredictionMarket: 'prediction_market',\n Btcdom: 'btcdom',\n All: 'all'\n} as const;\nexport type OrdersControllerGetTriggersCategoryEnum = typeof OrdersControllerGetTriggersCategoryEnum[keyof typeof OrdersControllerGetTriggersCategoryEnum];\n\n\n/**\n * PortfolioApi - axios parameter creator\n * @export\n */\nexport const PortfolioApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Returns portfolio and per-asset performance analytics including risk-adjusted metrics, rolling windows, and both realized-only and realized+unrealized variants.\n * @summary Get portfolio analytics with risk-adjusted metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {PortfolioControllerGetAnalyticsIntervalEnum} [interval] Display interval for date range\n * @param {number} [rollingWindowDays] Rolling window size in days (default 30, min 7, max 365)\n * @param {boolean} [includeSeries] Include daily/rolling time series (default true)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n portfolioControllerGetAnalytics: async (startDate?: string, endDate?: string, interval?: PortfolioControllerGetAnalyticsIntervalEnum, rollingWindowDays?: number, includeSeries?: boolean, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/portfolio/analytics`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (startDate !== undefined) {\n localVarQueryParameter['startDate'] = startDate;\n }\n\n if (endDate !== undefined) {\n localVarQueryParameter['endDate'] = endDate;\n }\n\n if (interval !== undefined) {\n localVarQueryParameter['interval'] = interval;\n }\n\n if (rollingWindowDays !== undefined) {\n localVarQueryParameter['rollingWindowDays'] = rollingWindowDays;\n }\n\n if (includeSeries !== undefined) {\n localVarQueryParameter['includeSeries'] = includeSeries;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Returns bucketed volume, open interest snapshot, win/loss trade counts, and overall metrics derived from trade history, trade history assets, and current open positions. Records marked as FULLY_EXTERNAL are excluded. When startDate or endDate is provided, only period-scoped overall metrics are returned.\n * @summary Get portfolio summary buckets and overall metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n portfolioControllerGetPortfolio: async (startDate?: string, endDate?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/portfolio`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (startDate !== undefined) {\n localVarQueryParameter['startDate'] = startDate;\n }\n\n if (endDate !== undefined) {\n localVarQueryParameter['endDate'] = endDate;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * PortfolioApi - functional programming interface\n * @export\n */\nexport const PortfolioApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = PortfolioApiAxiosParamCreator(configuration)\n return {\n /**\n * Returns portfolio and per-asset performance analytics including risk-adjusted metrics, rolling windows, and both realized-only and realized+unrealized variants.\n * @summary Get portfolio analytics with risk-adjusted metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {PortfolioControllerGetAnalyticsIntervalEnum} [interval] Display interval for date range\n * @param {number} [rollingWindowDays] Rolling window size in days (default 30, min 7, max 365)\n * @param {boolean} [includeSeries] Include daily/rolling time series (default true)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async portfolioControllerGetAnalytics(startDate?: string, endDate?: string, interval?: PortfolioControllerGetAnalyticsIntervalEnum, rollingWindowDays?: number, includeSeries?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PortfolioAnalyticsResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.portfolioControllerGetAnalytics(startDate, endDate, interval, rollingWindowDays, includeSeries, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PortfolioApi.portfolioControllerGetAnalytics']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Returns bucketed volume, open interest snapshot, win/loss trade counts, and overall metrics derived from trade history, trade history assets, and current open positions. Records marked as FULLY_EXTERNAL are excluded. When startDate or endDate is provided, only period-scoped overall metrics are returned.\n * @summary Get portfolio summary buckets and overall metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async portfolioControllerGetPortfolio(startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PortfolioResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.portfolioControllerGetPortfolio(startDate, endDate, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PortfolioApi.portfolioControllerGetPortfolio']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * PortfolioApi - factory interface\n * @export\n */\nexport const PortfolioApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = PortfolioApiFp(configuration)\n return {\n /**\n * Returns portfolio and per-asset performance analytics including risk-adjusted metrics, rolling windows, and both realized-only and realized+unrealized variants.\n * @summary Get portfolio analytics with risk-adjusted metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {PortfolioControllerGetAnalyticsIntervalEnum} [interval] Display interval for date range\n * @param {number} [rollingWindowDays] Rolling window size in days (default 30, min 7, max 365)\n * @param {boolean} [includeSeries] Include daily/rolling time series (default true)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n portfolioControllerGetAnalytics(startDate?: string, endDate?: string, interval?: PortfolioControllerGetAnalyticsIntervalEnum, rollingWindowDays?: number, includeSeries?: boolean, options?: RawAxiosRequestConfig): AxiosPromise<PortfolioAnalyticsResponseDto> {\n return localVarFp.portfolioControllerGetAnalytics(startDate, endDate, interval, rollingWindowDays, includeSeries, options).then((request) => request(axios, basePath));\n },\n /**\n * Returns bucketed volume, open interest snapshot, win/loss trade counts, and overall metrics derived from trade history, trade history assets, and current open positions. Records marked as FULLY_EXTERNAL are excluded. When startDate or endDate is provided, only period-scoped overall metrics are returned.\n * @summary Get portfolio summary buckets and overall metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n portfolioControllerGetPortfolio(startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): AxiosPromise<PortfolioResponseDto> {\n return localVarFp.portfolioControllerGetPortfolio(startDate, endDate, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * PortfolioApi - object-oriented interface\n * @export\n * @class PortfolioApi\n * @extends {BaseAPI}\n */\nexport class PortfolioApi extends BaseAPI {\n /**\n * Returns portfolio and per-asset performance analytics including risk-adjusted metrics, rolling windows, and both realized-only and realized+unrealized variants.\n * @summary Get portfolio analytics with risk-adjusted metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {PortfolioControllerGetAnalyticsIntervalEnum} [interval] Display interval for date range\n * @param {number} [rollingWindowDays] Rolling window size in days (default 30, min 7, max 365)\n * @param {boolean} [includeSeries] Include daily/rolling time series (default true)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PortfolioApi\n */\n public portfolioControllerGetAnalytics(startDate?: string, endDate?: string, interval?: PortfolioControllerGetAnalyticsIntervalEnum, rollingWindowDays?: number, includeSeries?: boolean, options?: RawAxiosRequestConfig) {\n return PortfolioApiFp(this.configuration).portfolioControllerGetAnalytics(startDate, endDate, interval, rollingWindowDays, includeSeries, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Returns bucketed volume, open interest snapshot, win/loss trade counts, and overall metrics derived from trade history, trade history assets, and current open positions. Records marked as FULLY_EXTERNAL are excluded. When startDate or endDate is provided, only period-scoped overall metrics are returned.\n * @summary Get portfolio summary buckets and overall metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PortfolioApi\n */\n public portfolioControllerGetPortfolio(startDate?: string, endDate?: string, options?: RawAxiosRequestConfig) {\n return PortfolioApiFp(this.configuration).portfolioControllerGetPortfolio(startDate, endDate, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n/**\n * @export\n */\nexport const PortfolioControllerGetAnalyticsIntervalEnum = {\n _1d: '1d',\n _1w: '1w',\n _1m: '1m',\n _1y: '1y',\n All: 'all'\n} as const;\nexport type PortfolioControllerGetAnalyticsIntervalEnum = typeof PortfolioControllerGetAnalyticsIntervalEnum[keyof typeof PortfolioControllerGetAnalyticsIntervalEnum];\n\n\n/**\n * PositionsApi - axios parameter creator\n * @export\n */\nexport const PositionsApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Adjust position to target absolute sizes per asset (advance)\n * @param {string} positionId Position identifier\n * @param {Array<AdjustAdvanceItemDto>} adjustAdvanceItemDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerAdjustAdvancePosition: async (positionId: string, adjustAdvanceItemDto: Array<AdjustAdvanceItemDto>, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerAdjustAdvancePosition', 'positionId', positionId)\n // verify required parameter 'adjustAdvanceItemDto' is not null or undefined\n assertParamExists('positionsControllerAdjustAdvancePosition', 'adjustAdvanceItemDto', adjustAdvanceItemDto)\n const localVarPath = `/positions/{positionId}/adjust-advance`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(adjustAdvanceItemDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Adjust leverage for a position\n * @param {string} positionId Position identifier\n * @param {AdjustLeverageRequestDto} adjustLeverageRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerAdjustLeverage: async (positionId: string, adjustLeverageRequestDto: AdjustLeverageRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerAdjustLeverage', 'positionId', positionId)\n // verify required parameter 'adjustLeverageRequestDto' is not null or undefined\n assertParamExists('positionsControllerAdjustLeverage', 'adjustLeverageRequestDto', adjustLeverageRequestDto)\n const localVarPath = `/positions/{positionId}/adjust-leverage`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(adjustLeverageRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Adjust position size by reducing or increasing by a specified amount\n * @param {string} positionId Position identifier\n * @param {AdjustPositionRequestDto} adjustPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerAdjustPosition: async (positionId: string, adjustPositionRequestDto: AdjustPositionRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerAdjustPosition', 'positionId', positionId)\n // verify required parameter 'adjustPositionRequestDto' is not null or undefined\n assertParamExists('positionsControllerAdjustPosition', 'adjustPositionRequestDto', adjustPositionRequestDto)\n const localVarPath = `/positions/{positionId}/adjust`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(adjustPositionRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Fetches all open positions and closes them sequentially using MARKET or TWAP execution\n * @summary Close all open positions\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerCloseAllPositions: async (closePositionRequestDto: ClosePositionRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'closePositionRequestDto' is not null or undefined\n assertParamExists('positionsControllerCloseAllPositions', 'closePositionRequestDto', closePositionRequestDto)\n const localVarPath = `/positions/close-all`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(closePositionRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Close a position using MARKET (immediate execution), TWAP (time-weighted average), or TRIGGER (conditional trigger-close order) execution type\n * @summary Close an entire position\n * @param {string} positionId Position identifier\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerClosePosition: async (positionId: string, closePositionRequestDto: ClosePositionRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerClosePosition', 'positionId', positionId)\n // verify required parameter 'closePositionRequestDto' is not null or undefined\n assertParamExists('positionsControllerClosePosition', 'closePositionRequestDto', closePositionRequestDto)\n const localVarPath = `/positions/{positionId}/close`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(closePositionRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Create a pair trading position with various execution types: MARKET (immediate execution), TRIGGER (conditional execution), TWAP (time-weighted average), or LADDER (multiple ratio levels)\n * @summary Create a new pair trading position with order\n * @param {CreatePositionRequestDto} createPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerCreatePosition: async (createPositionRequestDto: CreatePositionRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'createPositionRequestDto' is not null or undefined\n assertParamExists('positionsControllerCreatePosition', 'createPositionRequestDto', createPositionRequestDto)\n const localVarPath = `/positions`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(createPositionRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Returns processed open positions for the authenticated user\n * @summary List processed open positions\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerGetOpenPositions: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/positions`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Computes weight deltas and returns what would be traded, without placing any orders. Use this to preview before calling the execute endpoint.\n * @summary Preview rebalance plan without executing\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerPlanRebalance: async (positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerPlanRebalance', 'positionId', positionId)\n // verify required parameter 'rebalancePositionRequestDto' is not null or undefined\n assertParamExists('positionsControllerPlanRebalance', 'rebalancePositionRequestDto', rebalancePositionRequestDto)\n const localVarPath = `/positions/{positionId}/rebalance/plan`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(rebalancePositionRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Computes weight deltas and adjusts asset sizes to match target weights. Uses existing targetWeight from position if no overrides provided.\n * @summary Rebalance position assets to target weights\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerRebalancePosition: async (positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerRebalancePosition', 'positionId', positionId)\n // verify required parameter 'rebalancePositionRequestDto' is not null or undefined\n assertParamExists('positionsControllerRebalancePosition', 'rebalancePositionRequestDto', rebalancePositionRequestDto)\n const localVarPath = `/positions/{positionId}/rebalance`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(rebalancePositionRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Update stop loss and take profit values for a position\n * @param {string} positionId Position identifier\n * @param {UpdateRiskParametersRequestDto} updateRiskParametersRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerUpdateRiskParameters: async (positionId: string, updateRiskParametersRequestDto: UpdateRiskParametersRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerUpdateRiskParameters', 'positionId', positionId)\n // verify required parameter 'updateRiskParametersRequestDto' is not null or undefined\n assertParamExists('positionsControllerUpdateRiskParameters', 'updateRiskParametersRequestDto', updateRiskParametersRequestDto)\n const localVarPath = `/positions/{positionId}/riskParameters`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(updateRiskParametersRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * PositionsApi - functional programming interface\n * @export\n */\nexport const PositionsApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = PositionsApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Adjust position to target absolute sizes per asset (advance)\n * @param {string} positionId Position identifier\n * @param {Array<AdjustAdvanceItemDto>} adjustAdvanceItemDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerAdjustAdvancePosition(positionId: string, adjustAdvanceItemDto: Array<AdjustAdvanceItemDto>, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AdjustAdvanceResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerAdjustAdvancePosition(positionId, adjustAdvanceItemDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerAdjustAdvancePosition']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Adjust leverage for a position\n * @param {string} positionId Position identifier\n * @param {AdjustLeverageRequestDto} adjustLeverageRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerAdjustLeverage(positionId: string, adjustLeverageRequestDto: AdjustLeverageRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerAdjustLeverage(positionId, adjustLeverageRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerAdjustLeverage']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Adjust position size by reducing or increasing by a specified amount\n * @param {string} positionId Position identifier\n * @param {AdjustPositionRequestDto} adjustPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerAdjustPosition(positionId: string, adjustPositionRequestDto: AdjustPositionRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AdjustPositionResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerAdjustPosition(positionId, adjustPositionRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerAdjustPosition']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Fetches all open positions and closes them sequentially using MARKET or TWAP execution\n * @summary Close all open positions\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerCloseAllPositions(closePositionRequestDto: ClosePositionRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CloseAllPositionsResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerCloseAllPositions(closePositionRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerCloseAllPositions']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Close a position using MARKET (immediate execution), TWAP (time-weighted average), or TRIGGER (conditional trigger-close order) execution type\n * @summary Close an entire position\n * @param {string} positionId Position identifier\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerClosePosition(positionId: string, closePositionRequestDto: ClosePositionRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ClosePositionResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerClosePosition(positionId, closePositionRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerClosePosition']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Create a pair trading position with various execution types: MARKET (immediate execution), TRIGGER (conditional execution), TWAP (time-weighted average), or LADDER (multiple ratio levels)\n * @summary Create a new pair trading position with order\n * @param {CreatePositionRequestDto} createPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerCreatePosition(createPositionRequestDto: CreatePositionRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreatePositionResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerCreatePosition(createPositionRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerCreatePosition']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Returns processed open positions for the authenticated user\n * @summary List processed open positions\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerGetOpenPositions(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<OpenPositionProcessedDto>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerGetOpenPositions(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerGetOpenPositions']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Computes weight deltas and returns what would be traded, without placing any orders. Use this to preview before calling the execute endpoint.\n * @summary Preview rebalance plan without executing\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerPlanRebalance(positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RebalancePlanDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerPlanRebalance(positionId, rebalancePositionRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerPlanRebalance']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Computes weight deltas and adjusts asset sizes to match target weights. Uses existing targetWeight from position if no overrides provided.\n * @summary Rebalance position assets to target weights\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerRebalancePosition(positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RebalancePositionResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerRebalancePosition(positionId, rebalancePositionRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerRebalancePosition']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Update stop loss and take profit values for a position\n * @param {string} positionId Position identifier\n * @param {UpdateRiskParametersRequestDto} updateRiskParametersRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerUpdateRiskParameters(positionId: string, updateRiskParametersRequestDto: UpdateRiskParametersRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UpdateRiskParametersResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerUpdateRiskParameters(positionId, updateRiskParametersRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerUpdateRiskParameters']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * PositionsApi - factory interface\n * @export\n */\nexport const PositionsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = PositionsApiFp(configuration)\n return {\n /**\n * \n * @summary Adjust position to target absolute sizes per asset (advance)\n * @param {string} positionId Position identifier\n * @param {Array<AdjustAdvanceItemDto>} adjustAdvanceItemDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerAdjustAdvancePosition(positionId: string, adjustAdvanceItemDto: Array<AdjustAdvanceItemDto>, options?: RawAxiosRequestConfig): AxiosPromise<AdjustAdvanceResponseDto> {\n return localVarFp.positionsControllerAdjustAdvancePosition(positionId, adjustAdvanceItemDto, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Adjust leverage for a position\n * @param {string} positionId Position identifier\n * @param {AdjustLeverageRequestDto} adjustLeverageRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerAdjustLeverage(positionId: string, adjustLeverageRequestDto: AdjustLeverageRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<object> {\n return localVarFp.positionsControllerAdjustLeverage(positionId, adjustLeverageRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Adjust position size by reducing or increasing by a specified amount\n * @param {string} positionId Position identifier\n * @param {AdjustPositionRequestDto} adjustPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerAdjustPosition(positionId: string, adjustPositionRequestDto: AdjustPositionRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<AdjustPositionResponseDto> {\n return localVarFp.positionsControllerAdjustPosition(positionId, adjustPositionRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Fetches all open positions and closes them sequentially using MARKET or TWAP execution\n * @summary Close all open positions\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerCloseAllPositions(closePositionRequestDto: ClosePositionRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CloseAllPositionsResponseDto> {\n return localVarFp.positionsControllerCloseAllPositions(closePositionRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Close a position using MARKET (immediate execution), TWAP (time-weighted average), or TRIGGER (conditional trigger-close order) execution type\n * @summary Close an entire position\n * @param {string} positionId Position identifier\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerClosePosition(positionId: string, closePositionRequestDto: ClosePositionRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<ClosePositionResponseDto> {\n return localVarFp.positionsControllerClosePosition(positionId, closePositionRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Create a pair trading position with various execution types: MARKET (immediate execution), TRIGGER (conditional execution), TWAP (time-weighted average), or LADDER (multiple ratio levels)\n * @summary Create a new pair trading position with order\n * @param {CreatePositionRequestDto} createPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerCreatePosition(createPositionRequestDto: CreatePositionRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CreatePositionResponseDto> {\n return localVarFp.positionsControllerCreatePosition(createPositionRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Returns processed open positions for the authenticated user\n * @summary List processed open positions\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerGetOpenPositions(options?: RawAxiosRequestConfig): AxiosPromise<Array<OpenPositionProcessedDto>> {\n return localVarFp.positionsControllerGetOpenPositions(options).then((request) => request(axios, basePath));\n },\n /**\n * Computes weight deltas and returns what would be traded, without placing any orders. Use this to preview before calling the execute endpoint.\n * @summary Preview rebalance plan without executing\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerPlanRebalance(positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<RebalancePlanDto> {\n return localVarFp.positionsControllerPlanRebalance(positionId, rebalancePositionRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Computes weight deltas and adjusts asset sizes to match target weights. Uses existing targetWeight from position if no overrides provided.\n * @summary Rebalance position assets to target weights\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerRebalancePosition(positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<RebalancePositionResponseDto> {\n return localVarFp.positionsControllerRebalancePosition(positionId, rebalancePositionRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Update stop loss and take profit values for a position\n * @param {string} positionId Position identifier\n * @param {UpdateRiskParametersRequestDto} updateRiskParametersRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerUpdateRiskParameters(positionId: string, updateRiskParametersRequestDto: UpdateRiskParametersRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<UpdateRiskParametersResponseDto> {\n return localVarFp.positionsControllerUpdateRiskParameters(positionId, updateRiskParametersRequestDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * PositionsApi - object-oriented interface\n * @export\n * @class PositionsApi\n * @extends {BaseAPI}\n */\nexport class PositionsApi extends BaseAPI {\n /**\n * \n * @summary Adjust position to target absolute sizes per asset (advance)\n * @param {string} positionId Position identifier\n * @param {Array<AdjustAdvanceItemDto>} adjustAdvanceItemDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerAdjustAdvancePosition(positionId: string, adjustAdvanceItemDto: Array<AdjustAdvanceItemDto>, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerAdjustAdvancePosition(positionId, adjustAdvanceItemDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Adjust leverage for a position\n * @param {string} positionId Position identifier\n * @param {AdjustLeverageRequestDto} adjustLeverageRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerAdjustLeverage(positionId: string, adjustLeverageRequestDto: AdjustLeverageRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerAdjustLeverage(positionId, adjustLeverageRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Adjust position size by reducing or increasing by a specified amount\n * @param {string} positionId Position identifier\n * @param {AdjustPositionRequestDto} adjustPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerAdjustPosition(positionId: string, adjustPositionRequestDto: AdjustPositionRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerAdjustPosition(positionId, adjustPositionRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Fetches all open positions and closes them sequentially using MARKET or TWAP execution\n * @summary Close all open positions\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerCloseAllPositions(closePositionRequestDto: ClosePositionRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerCloseAllPositions(closePositionRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Close a position using MARKET (immediate execution), TWAP (time-weighted average), or TRIGGER (conditional trigger-close order) execution type\n * @summary Close an entire position\n * @param {string} positionId Position identifier\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerClosePosition(positionId: string, closePositionRequestDto: ClosePositionRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerClosePosition(positionId, closePositionRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Create a pair trading position with various execution types: MARKET (immediate execution), TRIGGER (conditional execution), TWAP (time-weighted average), or LADDER (multiple ratio levels)\n * @summary Create a new pair trading position with order\n * @param {CreatePositionRequestDto} createPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerCreatePosition(createPositionRequestDto: CreatePositionRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerCreatePosition(createPositionRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Returns processed open positions for the authenticated user\n * @summary List processed open positions\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerGetOpenPositions(options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerGetOpenPositions(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Computes weight deltas and returns what would be traded, without placing any orders. Use this to preview before calling the execute endpoint.\n * @summary Preview rebalance plan without executing\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerPlanRebalance(positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerPlanRebalance(positionId, rebalancePositionRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Computes weight deltas and adjusts asset sizes to match target weights. Uses existing targetWeight from position if no overrides provided.\n * @summary Rebalance position assets to target weights\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerRebalancePosition(positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerRebalancePosition(positionId, rebalancePositionRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Update stop loss and take profit values for a position\n * @param {string} positionId Position identifier\n * @param {UpdateRiskParametersRequestDto} updateRiskParametersRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerUpdateRiskParameters(positionId: string, updateRiskParametersRequestDto: UpdateRiskParametersRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerUpdateRiskParameters(positionId, updateRiskParametersRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * PublicStatsApi - axios parameter creator\n * @export\n */\nexport const PublicStatsApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Returns total external_fee_paid, builder_fee_paid, and volume (size * price) for PEAR fills, per address. Supports comma-separated addresses and optional startFrom filter.\n * @summary Get fee and volume stats for addresses\n * @param {string} addresses Comma-separated list of addresses\n * @param {string} [startFrom] ISO timestamp to filter fills from (inclusive)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n publicStatsControllerGetAddressStats: async (addresses: string, startFrom?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'addresses' is not null or undefined\n assertParamExists('publicStatsControllerGetAddressStats', 'addresses', addresses)\n const localVarPath = `/public-stats/address`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (addresses !== undefined) {\n localVarQueryParameter['addresses'] = addresses;\n }\n\n if (startFrom !== undefined) {\n localVarQueryParameter['startFrom'] = startFrom;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * PublicStatsApi - functional programming interface\n * @export\n */\nexport const PublicStatsApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = PublicStatsApiAxiosParamCreator(configuration)\n return {\n /**\n * Returns total external_fee_paid, builder_fee_paid, and volume (size * price) for PEAR fills, per address. Supports comma-separated addresses and optional startFrom filter.\n * @summary Get fee and volume stats for addresses\n * @param {string} addresses Comma-separated list of addresses\n * @param {string} [startFrom] ISO timestamp to filter fills from (inclusive)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async publicStatsControllerGetAddressStats(addresses: string, startFrom?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AddressStatsResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.publicStatsControllerGetAddressStats(addresses, startFrom, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PublicStatsApi.publicStatsControllerGetAddressStats']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * PublicStatsApi - factory interface\n * @export\n */\nexport const PublicStatsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = PublicStatsApiFp(configuration)\n return {\n /**\n * Returns total external_fee_paid, builder_fee_paid, and volume (size * price) for PEAR fills, per address. Supports comma-separated addresses and optional startFrom filter.\n * @summary Get fee and volume stats for addresses\n * @param {string} addresses Comma-separated list of addresses\n * @param {string} [startFrom] ISO timestamp to filter fills from (inclusive)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n publicStatsControllerGetAddressStats(addresses: string, startFrom?: string, options?: RawAxiosRequestConfig): AxiosPromise<AddressStatsResponseDto> {\n return localVarFp.publicStatsControllerGetAddressStats(addresses, startFrom, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * PublicStatsApi - object-oriented interface\n * @export\n * @class PublicStatsApi\n * @extends {BaseAPI}\n */\nexport class PublicStatsApi extends BaseAPI {\n /**\n * Returns total external_fee_paid, builder_fee_paid, and volume (size * price) for PEAR fills, per address. Supports comma-separated addresses and optional startFrom filter.\n * @summary Get fee and volume stats for addresses\n * @param {string} addresses Comma-separated list of addresses\n * @param {string} [startFrom] ISO timestamp to filter fills from (inclusive)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PublicStatsApi\n */\n public publicStatsControllerGetAddressStats(addresses: string, startFrom?: string, options?: RawAxiosRequestConfig) {\n return PublicStatsApiFp(this.configuration).publicStatsControllerGetAddressStats(addresses, startFrom, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * SyncApi - axios parameter creator\n * @export\n */\nexport const SyncApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Sync external fills into internal state\n * @param {SyncFillsRequestDto} syncFillsRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n syncControllerSyncFills: async (syncFillsRequestDto: SyncFillsRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'syncFillsRequestDto' is not null or undefined\n assertParamExists('syncControllerSyncFills', 'syncFillsRequestDto', syncFillsRequestDto)\n const localVarPath = `/sync/fills`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(syncFillsRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * SyncApi - functional programming interface\n * @export\n */\nexport const SyncApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = SyncApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Sync external fills into internal state\n * @param {SyncFillsRequestDto} syncFillsRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async syncControllerSyncFills(syncFillsRequestDto: SyncFillsRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.syncControllerSyncFills(syncFillsRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['SyncApi.syncControllerSyncFills']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * SyncApi - factory interface\n * @export\n */\nexport const SyncApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = SyncApiFp(configuration)\n return {\n /**\n * \n * @summary Sync external fills into internal state\n * @param {SyncFillsRequestDto} syncFillsRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n syncControllerSyncFills(syncFillsRequestDto: SyncFillsRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<void> {\n return localVarFp.syncControllerSyncFills(syncFillsRequestDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * SyncApi - object-oriented interface\n * @export\n * @class SyncApi\n * @extends {BaseAPI}\n */\nexport class SyncApi extends BaseAPI {\n /**\n * \n * @summary Sync external fills into internal state\n * @param {SyncFillsRequestDto} syncFillsRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof SyncApi\n */\n public syncControllerSyncFills(syncFillsRequestDto: SyncFillsRequestDto, options?: RawAxiosRequestConfig) {\n return SyncApiFp(this.configuration).syncControllerSyncFills(syncFillsRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * TradeHistoryApi - axios parameter creator\n * @export\n */\nexport const TradeHistoryApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Retrieve all trade history for the authenticated user with detailed trade information including fees, PnL, and asset-level data\n * @summary Get all trade history\n * @param {number} [limit] Maximum number of records to return (maximum 100).\n * @param {string} [startDate] Filter trades created on/after this time. Accepts ISO string or ms timestamp.\n * @param {string} [endDate] Filter trades created on/before this time. Accepts ISO string or ms timestamp.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n tradeHistoryControllerGetTradeHistory: async (limit?: number, startDate?: string, endDate?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/trade-history`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n\n if (startDate !== undefined) {\n localVarQueryParameter['startDate'] = startDate;\n }\n\n if (endDate !== undefined) {\n localVarQueryParameter['endDate'] = endDate;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * TradeHistoryApi - functional programming interface\n * @export\n */\nexport const TradeHistoryApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = TradeHistoryApiAxiosParamCreator(configuration)\n return {\n /**\n * Retrieve all trade history for the authenticated user with detailed trade information including fees, PnL, and asset-level data\n * @summary Get all trade history\n * @param {number} [limit] Maximum number of records to return (maximum 100).\n * @param {string} [startDate] Filter trades created on/after this time. Accepts ISO string or ms timestamp.\n * @param {string} [endDate] Filter trades created on/before this time. Accepts ISO string or ms timestamp.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async tradeHistoryControllerGetTradeHistory(limit?: number, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<TradeHistoryDataDto>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.tradeHistoryControllerGetTradeHistory(limit, startDate, endDate, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['TradeHistoryApi.tradeHistoryControllerGetTradeHistory']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * TradeHistoryApi - factory interface\n * @export\n */\nexport const TradeHistoryApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = TradeHistoryApiFp(configuration)\n return {\n /**\n * Retrieve all trade history for the authenticated user with detailed trade information including fees, PnL, and asset-level data\n * @summary Get all trade history\n * @param {number} [limit] Maximum number of records to return (maximum 100).\n * @param {string} [startDate] Filter trades created on/after this time. Accepts ISO string or ms timestamp.\n * @param {string} [endDate] Filter trades created on/before this time. Accepts ISO string or ms timestamp.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n tradeHistoryControllerGetTradeHistory(limit?: number, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): AxiosPromise<Array<TradeHistoryDataDto>> {\n return localVarFp.tradeHistoryControllerGetTradeHistory(limit, startDate, endDate, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * TradeHistoryApi - object-oriented interface\n * @export\n * @class TradeHistoryApi\n * @extends {BaseAPI}\n */\nexport class TradeHistoryApi extends BaseAPI {\n /**\n * Retrieve all trade history for the authenticated user with detailed trade information including fees, PnL, and asset-level data\n * @summary Get all trade history\n * @param {number} [limit] Maximum number of records to return (maximum 100).\n * @param {string} [startDate] Filter trades created on/after this time. Accepts ISO string or ms timestamp.\n * @param {string} [endDate] Filter trades created on/before this time. Accepts ISO string or ms timestamp.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TradeHistoryApi\n */\n public tradeHistoryControllerGetTradeHistory(limit?: number, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig) {\n return TradeHistoryApiFp(this.configuration).tradeHistoryControllerGetTradeHistory(limit, startDate, endDate, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * VaultWalletApi - axios parameter creator\n * @export\n */\nexport const VaultWalletApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * This API performs all vault creation steps in one call: 1) Creates a Privy wallet (agent), 2) Deploys vault contract via PearVaultFactory onchain, 3) Saves to database, 4) Creates backend agent wallet for trading. This replaces the old two-step process (createVaultWallet + registerVault).\n * @summary Create a new vault wallet with onchain deployment\n * @param {CreateVaultWalletRequestDto} createVaultWalletRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerCreateVaultWallet: async (createVaultWalletRequestDto: CreateVaultWalletRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'createVaultWalletRequestDto' is not null or undefined\n assertParamExists('vaultWalletControllerCreateVaultWallet', 'createVaultWalletRequestDto', createVaultWalletRequestDto)\n const localVarPath = `/vault-wallet`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(createVaultWalletRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Delete a specific vault wallet by address. This action cannot be undone.\n * @summary Delete vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerDeleteVaultWallet: async (vaultAddress: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'vaultAddress' is not null or undefined\n assertParamExists('vaultWalletControllerDeleteVaultWallet', 'vaultAddress', vaultAddress)\n const localVarPath = `/vault-wallet`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (vaultAddress !== undefined) {\n localVarQueryParameter['vaultAddress'] = vaultAddress;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve all vault wallets for the authenticated user. Supports filtering by name and address.\n * @summary Get all vault wallets\n * @param {string} [name] Filter vault wallets by name (case-insensitive partial match)\n * @param {string} [address] Filter vault wallets by address (matches agent_address or vault_address, case-insensitive partial match)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerGetAllVaultWallets: async (name?: string, address?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/vault-wallet/all`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (name !== undefined) {\n localVarQueryParameter['name'] = name;\n }\n\n if (address !== undefined) {\n localVarQueryParameter['address'] = address;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve balances for both spot and perp accounts\n * @summary Get spot and perp account balances\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerGetBalances: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/vault-wallet/balances`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve a specific vault wallet by address (agent_address or vault_address)\n * @summary Get vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerGetVaultWallet: async (vaultAddress: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'vaultAddress' is not null or undefined\n assertParamExists('vaultWalletControllerGetVaultWallet', 'vaultAddress', vaultAddress)\n const localVarPath = `/vault-wallet`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (vaultAddress !== undefined) {\n localVarQueryParameter['vaultAddress'] = vaultAddress;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Create a new agent wallet for a specific registered vault. This is useful when the current agent wallet needs to be refreshed or rotated.\n * @summary Refresh agent wallet for vault\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerRefreshApiForVault: async (vaultAddress: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'vaultAddress' is not null or undefined\n assertParamExists('vaultWalletControllerRefreshApiForVault', 'vaultAddress', vaultAddress)\n const localVarPath = `/vault-wallet/refreshAPIforVault`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (vaultAddress !== undefined) {\n localVarQueryParameter['vaultAddress'] = vaultAddress;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Swap a spot token (ETH, SOL, etc.) to USDC and transfer the USDC to perp account for trading\n * @summary Swap spot token to USDC and transfer to perp\n * @param {SwapAndTransferRequestDto} swapAndTransferRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerSwapAndTransferToPerp: async (swapAndTransferRequestDto: SwapAndTransferRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'swapAndTransferRequestDto' is not null or undefined\n assertParamExists('vaultWalletControllerSwapAndTransferToPerp', 'swapAndTransferRequestDto', swapAndTransferRequestDto)\n const localVarPath = `/vault-wallet/swap-and-transfer`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(swapAndTransferRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Transfer USDC directly from perp account to spot account\n * @summary Transfer USDC from perp to spot account\n * @param {TransferPerpToSpotRequestDto} transferPerpToSpotRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerTransferPerpToSpot: async (transferPerpToSpotRequestDto: TransferPerpToSpotRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'transferPerpToSpotRequestDto' is not null or undefined\n assertParamExists('vaultWalletControllerTransferPerpToSpot', 'transferPerpToSpotRequestDto', transferPerpToSpotRequestDto)\n const localVarPath = `/vault-wallet/perp-to-spot`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(transferPerpToSpotRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Transfer USDC directly from spot account to perp account for trading\n * @summary Transfer USDC from spot to perp account\n * @param {TransferSpotToPerpRequestDto} transferSpotToPerpRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerTransferSpotToPerp: async (transferSpotToPerpRequestDto: TransferSpotToPerpRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'transferSpotToPerpRequestDto' is not null or undefined\n assertParamExists('vaultWalletControllerTransferSpotToPerp', 'transferSpotToPerpRequestDto', transferSpotToPerpRequestDto)\n const localVarPath = `/vault-wallet/spot-to-perp`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(transferSpotToPerpRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * VaultWalletApi - functional programming interface\n * @export\n */\nexport const VaultWalletApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = VaultWalletApiAxiosParamCreator(configuration)\n return {\n /**\n * This API performs all vault creation steps in one call: 1) Creates a Privy wallet (agent), 2) Deploys vault contract via PearVaultFactory onchain, 3) Saves to database, 4) Creates backend agent wallet for trading. This replaces the old two-step process (createVaultWallet + registerVault).\n * @summary Create a new vault wallet with onchain deployment\n * @param {CreateVaultWalletRequestDto} createVaultWalletRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerCreateVaultWallet(createVaultWalletRequestDto: CreateVaultWalletRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateVaultWalletResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerCreateVaultWallet(createVaultWalletRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerCreateVaultWallet']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Delete a specific vault wallet by address. This action cannot be undone.\n * @summary Delete vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerDeleteVaultWallet(vaultAddress: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerDeleteVaultWallet(vaultAddress, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerDeleteVaultWallet']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve all vault wallets for the authenticated user. Supports filtering by name and address.\n * @summary Get all vault wallets\n * @param {string} [name] Filter vault wallets by name (case-insensitive partial match)\n * @param {string} [address] Filter vault wallets by address (matches agent_address or vault_address, case-insensitive partial match)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerGetAllVaultWallets(name?: string, address?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<GetVaultWalletResponseDto>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerGetAllVaultWallets(name, address, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerGetAllVaultWallets']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve balances for both spot and perp accounts\n * @summary Get spot and perp account balances\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerGetBalances(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetBalancesResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerGetBalances(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerGetBalances']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve a specific vault wallet by address (agent_address or vault_address)\n * @summary Get vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerGetVaultWallet(vaultAddress: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetVaultWalletResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerGetVaultWallet(vaultAddress, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerGetVaultWallet']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Create a new agent wallet for a specific registered vault. This is useful when the current agent wallet needs to be refreshed or rotated.\n * @summary Refresh agent wallet for vault\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerRefreshApiForVault(vaultAddress: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RefreshApiForVaultResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerRefreshApiForVault(vaultAddress, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerRefreshApiForVault']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Swap a spot token (ETH, SOL, etc.) to USDC and transfer the USDC to perp account for trading\n * @summary Swap spot token to USDC and transfer to perp\n * @param {SwapAndTransferRequestDto} swapAndTransferRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerSwapAndTransferToPerp(swapAndTransferRequestDto: SwapAndTransferRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SwapAndTransferResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerSwapAndTransferToPerp(swapAndTransferRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerSwapAndTransferToPerp']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Transfer USDC directly from perp account to spot account\n * @summary Transfer USDC from perp to spot account\n * @param {TransferPerpToSpotRequestDto} transferPerpToSpotRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerTransferPerpToSpot(transferPerpToSpotRequestDto: TransferPerpToSpotRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TransferResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerTransferPerpToSpot(transferPerpToSpotRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerTransferPerpToSpot']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Transfer USDC directly from spot account to perp account for trading\n * @summary Transfer USDC from spot to perp account\n * @param {TransferSpotToPerpRequestDto} transferSpotToPerpRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerTransferSpotToPerp(transferSpotToPerpRequestDto: TransferSpotToPerpRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TransferResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerTransferSpotToPerp(transferSpotToPerpRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerTransferSpotToPerp']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * VaultWalletApi - factory interface\n * @export\n */\nexport const VaultWalletApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = VaultWalletApiFp(configuration)\n return {\n /**\n * This API performs all vault creation steps in one call: 1) Creates a Privy wallet (agent), 2) Deploys vault contract via PearVaultFactory onchain, 3) Saves to database, 4) Creates backend agent wallet for trading. This replaces the old two-step process (createVaultWallet + registerVault).\n * @summary Create a new vault wallet with onchain deployment\n * @param {CreateVaultWalletRequestDto} createVaultWalletRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerCreateVaultWallet(createVaultWalletRequestDto: CreateVaultWalletRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CreateVaultWalletResponseDto> {\n return localVarFp.vaultWalletControllerCreateVaultWallet(createVaultWalletRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Delete a specific vault wallet by address. This action cannot be undone.\n * @summary Delete vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerDeleteVaultWallet(vaultAddress: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {\n return localVarFp.vaultWalletControllerDeleteVaultWallet(vaultAddress, options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve all vault wallets for the authenticated user. Supports filtering by name and address.\n * @summary Get all vault wallets\n * @param {string} [name] Filter vault wallets by name (case-insensitive partial match)\n * @param {string} [address] Filter vault wallets by address (matches agent_address or vault_address, case-insensitive partial match)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerGetAllVaultWallets(name?: string, address?: string, options?: RawAxiosRequestConfig): AxiosPromise<Array<GetVaultWalletResponseDto>> {\n return localVarFp.vaultWalletControllerGetAllVaultWallets(name, address, options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve balances for both spot and perp accounts\n * @summary Get spot and perp account balances\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerGetBalances(options?: RawAxiosRequestConfig): AxiosPromise<GetBalancesResponseDto> {\n return localVarFp.vaultWalletControllerGetBalances(options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve a specific vault wallet by address (agent_address or vault_address)\n * @summary Get vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerGetVaultWallet(vaultAddress: string, options?: RawAxiosRequestConfig): AxiosPromise<GetVaultWalletResponseDto> {\n return localVarFp.vaultWalletControllerGetVaultWallet(vaultAddress, options).then((request) => request(axios, basePath));\n },\n /**\n * Create a new agent wallet for a specific registered vault. This is useful when the current agent wallet needs to be refreshed or rotated.\n * @summary Refresh agent wallet for vault\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerRefreshApiForVault(vaultAddress: string, options?: RawAxiosRequestConfig): AxiosPromise<RefreshApiForVaultResponseDto> {\n return localVarFp.vaultWalletControllerRefreshApiForVault(vaultAddress, options).then((request) => request(axios, basePath));\n },\n /**\n * Swap a spot token (ETH, SOL, etc.) to USDC and transfer the USDC to perp account for trading\n * @summary Swap spot token to USDC and transfer to perp\n * @param {SwapAndTransferRequestDto} swapAndTransferRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerSwapAndTransferToPerp(swapAndTransferRequestDto: SwapAndTransferRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<SwapAndTransferResponseDto> {\n return localVarFp.vaultWalletControllerSwapAndTransferToPerp(swapAndTransferRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Transfer USDC directly from perp account to spot account\n * @summary Transfer USDC from perp to spot account\n * @param {TransferPerpToSpotRequestDto} transferPerpToSpotRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerTransferPerpToSpot(transferPerpToSpotRequestDto: TransferPerpToSpotRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<TransferResponseDto> {\n return localVarFp.vaultWalletControllerTransferPerpToSpot(transferPerpToSpotRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Transfer USDC directly from spot account to perp account for trading\n * @summary Transfer USDC from spot to perp account\n * @param {TransferSpotToPerpRequestDto} transferSpotToPerpRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerTransferSpotToPerp(transferSpotToPerpRequestDto: TransferSpotToPerpRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<TransferResponseDto> {\n return localVarFp.vaultWalletControllerTransferSpotToPerp(transferSpotToPerpRequestDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * VaultWalletApi - object-oriented interface\n * @export\n * @class VaultWalletApi\n * @extends {BaseAPI}\n */\nexport class VaultWalletApi extends BaseAPI {\n /**\n * This API performs all vault creation steps in one call: 1) Creates a Privy wallet (agent), 2) Deploys vault contract via PearVaultFactory onchain, 3) Saves to database, 4) Creates backend agent wallet for trading. This replaces the old two-step process (createVaultWallet + registerVault).\n * @summary Create a new vault wallet with onchain deployment\n * @param {CreateVaultWalletRequestDto} createVaultWalletRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerCreateVaultWallet(createVaultWalletRequestDto: CreateVaultWalletRequestDto, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerCreateVaultWallet(createVaultWalletRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Delete a specific vault wallet by address. This action cannot be undone.\n * @summary Delete vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerDeleteVaultWallet(vaultAddress: string, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerDeleteVaultWallet(vaultAddress, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve all vault wallets for the authenticated user. Supports filtering by name and address.\n * @summary Get all vault wallets\n * @param {string} [name] Filter vault wallets by name (case-insensitive partial match)\n * @param {string} [address] Filter vault wallets by address (matches agent_address or vault_address, case-insensitive partial match)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerGetAllVaultWallets(name?: string, address?: string, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerGetAllVaultWallets(name, address, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve balances for both spot and perp accounts\n * @summary Get spot and perp account balances\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerGetBalances(options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerGetBalances(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve a specific vault wallet by address (agent_address or vault_address)\n * @summary Get vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerGetVaultWallet(vaultAddress: string, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerGetVaultWallet(vaultAddress, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Create a new agent wallet for a specific registered vault. This is useful when the current agent wallet needs to be refreshed or rotated.\n * @summary Refresh agent wallet for vault\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerRefreshApiForVault(vaultAddress: string, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerRefreshApiForVault(vaultAddress, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Swap a spot token (ETH, SOL, etc.) to USDC and transfer the USDC to perp account for trading\n * @summary Swap spot token to USDC and transfer to perp\n * @param {SwapAndTransferRequestDto} swapAndTransferRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerSwapAndTransferToPerp(swapAndTransferRequestDto: SwapAndTransferRequestDto, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerSwapAndTransferToPerp(swapAndTransferRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Transfer USDC directly from perp account to spot account\n * @summary Transfer USDC from perp to spot account\n * @param {TransferPerpToSpotRequestDto} transferPerpToSpotRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerTransferPerpToSpot(transferPerpToSpotRequestDto: TransferPerpToSpotRequestDto, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerTransferPerpToSpot(transferPerpToSpotRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Transfer USDC directly from spot account to perp account for trading\n * @summary Transfer USDC from spot to perp account\n * @param {TransferSpotToPerpRequestDto} transferSpotToPerpRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerTransferSpotToPerp(transferSpotToPerpRequestDto: TransferSpotToPerpRequestDto, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerTransferSpotToPerp(transferSpotToPerpRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * WatchlistApi - axios parameter creator\n * @export\n */\nexport const WatchlistApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Get the authenticated user watchlist baskets\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n watchlistControllerGetWatchlist: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/watchlist`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Toggle a basket (pair) in the user watchlist: if exact pair exists, remove it; otherwise, add it. Order and casing are preserved.\n * @param {ToggleWatchlistDto} toggleWatchlistDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n watchlistControllerToggle: async (toggleWatchlistDto: ToggleWatchlistDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'toggleWatchlistDto' is not null or undefined\n assertParamExists('watchlistControllerToggle', 'toggleWatchlistDto', toggleWatchlistDto)\n const localVarPath = `/watchlist`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(toggleWatchlistDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * WatchlistApi - functional programming interface\n * @export\n */\nexport const WatchlistApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = WatchlistApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Get the authenticated user watchlist baskets\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async watchlistControllerGetWatchlist(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<WatchlistResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.watchlistControllerGetWatchlist(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['WatchlistApi.watchlistControllerGetWatchlist']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Toggle a basket (pair) in the user watchlist: if exact pair exists, remove it; otherwise, add it. Order and casing are preserved.\n * @param {ToggleWatchlistDto} toggleWatchlistDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async watchlistControllerToggle(toggleWatchlistDto: ToggleWatchlistDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<WatchlistResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.watchlistControllerToggle(toggleWatchlistDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['WatchlistApi.watchlistControllerToggle']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * WatchlistApi - factory interface\n * @export\n */\nexport const WatchlistApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = WatchlistApiFp(configuration)\n return {\n /**\n * \n * @summary Get the authenticated user watchlist baskets\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n watchlistControllerGetWatchlist(options?: RawAxiosRequestConfig): AxiosPromise<WatchlistResponseDto> {\n return localVarFp.watchlistControllerGetWatchlist(options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Toggle a basket (pair) in the user watchlist: if exact pair exists, remove it; otherwise, add it. Order and casing are preserved.\n * @param {ToggleWatchlistDto} toggleWatchlistDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n watchlistControllerToggle(toggleWatchlistDto: ToggleWatchlistDto, options?: RawAxiosRequestConfig): AxiosPromise<WatchlistResponseDto> {\n return localVarFp.watchlistControllerToggle(toggleWatchlistDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * WatchlistApi - object-oriented interface\n * @export\n * @class WatchlistApi\n * @extends {BaseAPI}\n */\nexport class WatchlistApi extends BaseAPI {\n /**\n * \n * @summary Get the authenticated user watchlist baskets\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WatchlistApi\n */\n public watchlistControllerGetWatchlist(options?: RawAxiosRequestConfig) {\n return WatchlistApiFp(this.configuration).watchlistControllerGetWatchlist(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Toggle a basket (pair) in the user watchlist: if exact pair exists, remove it; otherwise, add it. Order and casing are preserved.\n * @param {ToggleWatchlistDto} toggleWatchlistDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WatchlistApi\n */\n public watchlistControllerToggle(toggleWatchlistDto: ToggleWatchlistDto, options?: RawAxiosRequestConfig) {\n return WatchlistApiFp(this.configuration).watchlistControllerToggle(toggleWatchlistDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Pear Protocol Trading API\n * API for managing pair trading positions and orders on the Pear Protocol platform for Hyperliquid Engine.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: dev@pearprotocol.io\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ConfigurationParameters {\n apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);\n username?: string;\n password?: string;\n accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);\n basePath?: string;\n serverIndex?: number;\n baseOptions?: any;\n formDataCtor?: new () => any;\n}\n\nexport class Configuration {\n /**\n * parameter for apiKey security\n * @param name security name\n * @memberof Configuration\n */\n apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);\n /**\n * parameter for basic security\n *\n * @type {string}\n * @memberof Configuration\n */\n username?: string;\n /**\n * parameter for basic security\n *\n * @type {string}\n * @memberof Configuration\n */\n password?: string;\n /**\n * parameter for oauth2 security\n * @param name security name\n * @param scopes oauth2 scope\n * @memberof Configuration\n */\n accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);\n /**\n * override base path\n *\n * @type {string}\n * @memberof Configuration\n */\n basePath?: string;\n /**\n * override server index\n *\n * @type {number}\n * @memberof Configuration\n */\n serverIndex?: number;\n /**\n * base options for axios calls\n *\n * @type {any}\n * @memberof Configuration\n */\n baseOptions?: any;\n /**\n * The FormData constructor that will be used to create multipart form data\n * requests. You can inject this here so that execution environments that\n * do not support the FormData class can still run the generated client.\n *\n * @type {new () => FormData}\n */\n formDataCtor?: new () => any;\n\n constructor(param: ConfigurationParameters = {}) {\n this.apiKey = param.apiKey;\n this.username = param.username;\n this.password = param.password;\n this.accessToken = param.accessToken;\n this.basePath = param.basePath;\n this.serverIndex = param.serverIndex;\n this.baseOptions = {\n ...param.baseOptions,\n headers: {\n ...param.baseOptions?.headers,\n },\n };\n this.formDataCtor = param.formDataCtor;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import axios, {\n type AxiosInstance,\n type AxiosError,\n type AxiosRequestConfig,\n type InternalAxiosRequestConfig,\n} from 'axios';\nimport { PearApiError } from './errors';\nexport * from './generated';\nexport * from './errors';\n\nimport {\n Configuration,\n AccountsApi,\n AgentWalletApi,\n APIKeysApi,\n AuthenticationApi,\n FillsApi,\n MarketsApi,\n NotificationsApi,\n OrdersApi,\n PortfolioApi,\n PositionsApi,\n PublicStatsApi,\n SyncApi,\n TradeHistoryApi,\n WatchlistApi,\n type AuthenticateRequestDto,\n type RefreshTokenRequestDto,\n type LogoutRequestDto,\n type ApiKeysControllerCreateApiKeyRequest,\n type MarkNotificationsReadDto,\n type SpotOrderRequestDto,\n type CreatePositionRequestDto,\n type ClosePositionRequestDto,\n type AdjustPositionRequestDto,\n type AdjustAdvanceItemDto,\n type AdjustLeverageRequestDto,\n type UpdateRiskParametersRequestDto,\n type RebalancePositionRequestDto,\n type ToggleWatchlistDto,\n type SyncFillsRequestDto,\n} from './generated';\nimport type {\n FillsQuery,\n KalshiTriggersQuery,\n MarketsQuery,\n NotificationsQuery,\n OrdersQuery,\n TradeHistoryQuery,\n TriggersQuery,\n} from '../types';\n\nconst DEFAULT_BASE_PATH = 'https://hl-v2.pearprotocol.io';\n\nexport interface PearApiConfig {\n basePath?: string;\n onTokenRefreshed?: (accessToken: string, refreshToken: string) => void;\n onLogout?: () => void;\n}\n\nexport class PearApi {\n private basePath: string;\n private accessToken: string | null = null;\n private refreshToken: string | null = null;\n private axiosInstance: AxiosInstance;\n private isRefreshing = false;\n private pendingRequests: Array<(token: string | null) => void> = [];\n public onTokenRefreshed?: (accessToken: string, refreshToken: string) => void;\n public onLogout?: () => void;\n\n constructor(config?: PearApiConfig) {\n this.basePath = config?.basePath ?? DEFAULT_BASE_PATH;\n this.onTokenRefreshed = config?.onTokenRefreshed;\n this.onLogout = config?.onLogout;\n this.axiosInstance = axios.create();\n this.setupInterceptors();\n }\n\n private setupInterceptors() {\n this.axiosInstance.interceptors.request.use(\n (config: InternalAxiosRequestConfig) => {\n if (this.accessToken) {\n config.headers = config.headers ?? {};\n config.headers['Authorization'] = `Bearer ${this.accessToken}`;\n }\n return config;\n },\n );\n\n this.axiosInstance.interceptors.response.use(\n (response) => response,\n async (error: AxiosError) => {\n const originalRequest = error.config as AxiosRequestConfig & { _retry?: boolean };\n const status = error.response?.status ?? 0;\n\n if (status !== 401 || !originalRequest) {\n this.transformError(error);\n }\n\n // 401 from refresh endpoint → logout\n if (originalRequest.url?.includes('/auth/refresh')) {\n this.clearTokens();\n this.onLogout?.();\n this.transformError(error);\n }\n\n // Already retried → logout\n if (originalRequest._retry) {\n this.clearTokens();\n this.onLogout?.();\n this.transformError(error);\n }\n\n originalRequest._retry = true;\n\n // If refresh already in progress, queue this request\n if (this.isRefreshing) {\n return new Promise((resolve, reject) => {\n this.pendingRequests.push((newToken) => {\n if (!newToken) {\n try { this.transformError(error as AxiosError); } catch (e) { return reject(e); }\n }\n originalRequest.headers = originalRequest.headers ?? {};\n (originalRequest.headers as Record<string, string>)['Authorization'] = `Bearer ${newToken}`;\n resolve(this.axiosInstance.request(originalRequest));\n });\n });\n }\n\n this.isRefreshing = true;\n\n try {\n if (!this.refreshToken) {\n throw new Error('No refresh token available');\n }\n\n const { data } = await new AuthenticationApi(\n this.createConfig(),\n ).authControllerRefreshToken({ refreshToken: this.refreshToken });\n\n this.accessToken = data.accessToken;\n this.refreshToken = data.refreshToken;\n this.onTokenRefreshed?.(data.accessToken, data.refreshToken);\n\n this.resolvePendingRequests(data.accessToken);\n\n originalRequest.headers = originalRequest.headers ?? {};\n (originalRequest.headers as Record<string, string>)['Authorization'] = `Bearer ${data.accessToken}`;\n return this.axiosInstance.request(originalRequest);\n } catch (refreshErr) {\n this.resolvePendingRequests(null);\n this.clearTokens();\n this.onLogout?.();\n this.transformError(refreshErr as AxiosError);\n } finally {\n this.isRefreshing = false;\n }\n },\n );\n }\n\n private resolvePendingRequests(token: string | null) {\n this.pendingRequests.forEach((cb) => cb(token));\n this.pendingRequests = [];\n }\n\n private clearTokens() {\n this.accessToken = null;\n this.refreshToken = null;\n }\n\n private transformError(error: AxiosError): never {\n if (error.response) {\n const { status, data } = error.response as { status: number; data: any };\n const message = data?.message ?? error.message;\n const code = data?.code ?? 'UNKNOWN';\n throw new PearApiError(message, status, code, error);\n }\n\n throw new PearApiError(error.message ?? 'Network error', 0, 'NETWORK_ERROR', error);\n }\n\n private createConfig(): Configuration {\n return new Configuration({ basePath: this.basePath });\n }\n\n private api<T extends new (config?: Configuration, basePath?: string, axiosInstance?: AxiosInstance) => InstanceType<T>>(\n ApiClass: T,\n ): InstanceType<T> {\n return new ApiClass(this.createConfig(), this.basePath, this.axiosInstance);\n }\n\n setAccessToken(token: string) {\n this.accessToken = token;\n }\n\n setRefreshToken(token: string) {\n this.refreshToken = token;\n }\n\n setTokens(accessToken: string, refreshToken: string) {\n this.accessToken = accessToken;\n this.refreshToken = refreshToken;\n }\n\n getAccessToken(): string | null {\n return this.accessToken;\n }\n\n getRefreshToken(): string | null {\n return this.refreshToken;\n }\n\n public readonly public = {\n auth: {\n login: async (body: AuthenticateRequestDto) => {\n const response = await this.api(AuthenticationApi).authControllerAuthenticate(body);\n this.accessToken = response.data.accessToken;\n this.refreshToken = response.data.refreshToken;\n this.onTokenRefreshed?.(response.data.accessToken, response.data.refreshToken);\n return response;\n },\n\n getEIP712Message: (address: string, clientId: string, chainId: number) =>\n this.api(AuthenticationApi).authControllerGetEIP712Message(address, clientId, chainId),\n\n refresh: async (body: RefreshTokenRequestDto) => {\n const response = await this.api(AuthenticationApi).authControllerRefreshToken(body);\n this.accessToken = response.data.accessToken;\n this.refreshToken = response.data.refreshToken;\n this.onTokenRefreshed?.(response.data.accessToken, response.data.refreshToken);\n return response;\n },\n\n logout: async (body: LogoutRequestDto) => {\n const response = await this.api(AuthenticationApi).authControllerLogout(body);\n this.clearTokens();\n this.onLogout?.();\n return response;\n },\n },\n\n fills: {\n list: (params?: FillsQuery) =>\n this.api(FillsApi).fillsControllerGetFills(\n params?.address, params?.assetName, params?.clientId,\n params?.isPearTrade, params?.startTime, params?.endTime,\n ),\n },\n\n markets: {\n list: (params?: MarketsQuery) =>\n this.api(MarketsApi).marketsControllerGetMarkets(\n params?.offset, params?.page, params?.pageSize, params?.engine,\n params?.minVolume, params?.change24h, params?.netFunding,\n params?.searchText, params?.sort, params?.excludeText, params?.active,\n ),\n\n active: () =>\n this.api(MarketsApi).marketsControllerGetActiveMarket(),\n },\n\n stats: {\n addressStats: (addresses: string, startFrom?: string) =>\n this.api(PublicStatsApi).publicStatsControllerGetAddressStats(addresses, startFrom),\n },\n };\n\n public readonly private = {\n accounts: {\n summary: () =>\n this.api(AccountsApi).accountsControllerGetAccountSummary(),\n },\n\n agentWallet: {\n get: () =>\n this.api(AgentWalletApi).agentWalletControllerGetAgentWallet(),\n\n create: () =>\n this.api(AgentWalletApi).agentWalletControllerCreateAgentWallet(),\n },\n\n apiKeys: {\n list: () =>\n this.api(APIKeysApi).apiKeysControllerGetUserApiKeys(),\n\n create: (body: ApiKeysControllerCreateApiKeyRequest) =>\n this.api(APIKeysApi).apiKeysControllerCreateApiKey(body),\n },\n\n notifications: {\n list: (params?: NotificationsQuery) =>\n this.api(NotificationsApi).notificationsControllerGetNotifications(\n params?.limit, params?.startDate, params?.endDate,\n ),\n\n markRead: (body: MarkNotificationsReadDto) =>\n this.api(NotificationsApi).notificationsControllerMarkRead(body),\n },\n\n orders: {\n list: (params?: OrdersQuery) =>\n this.api(OrdersApi).ordersControllerGetAllOrders(\n params?.page, params?.limit, params?.status, params?.orderType,\n ),\n\n open: () =>\n this.api(OrdersApi).ordersControllerGetOpenOrders(),\n\n twap: () =>\n this.api(OrdersApi).ordersControllerGetTwapOrders(),\n\n cancel: (orderId: string) =>\n this.api(OrdersApi).ordersControllerCancelOrder(orderId),\n\n cancelTwap: (orderId: string) =>\n this.api(OrdersApi).ordersControllerCancelTwapOrder(orderId),\n\n spot: (body: SpotOrderRequestDto) =>\n this.api(OrdersApi).ordersControllerSpotOrder(body),\n\n triggers: (params?: TriggersQuery) =>\n this.api(OrdersApi).ordersControllerGetTriggers(params?.category),\n\n kalshiTriggers: (params?: KalshiTriggersQuery) =>\n this.api(OrdersApi).ordersControllerGetKalshiTriggers(\n params?.category, params?.search, params?.cursor, params?.pageSize,\n ),\n },\n\n portfolio: {\n get: () =>\n this.api(PortfolioApi).portfolioControllerGetPortfolio(),\n },\n\n positions: {\n list: () =>\n this.api(PositionsApi).positionsControllerGetOpenPositions(),\n\n create: (body: CreatePositionRequestDto) =>\n this.api(PositionsApi).positionsControllerCreatePosition(body),\n\n close: (positionId: string, body: ClosePositionRequestDto) =>\n this.api(PositionsApi).positionsControllerClosePosition(positionId, body),\n\n closeAll: (body: ClosePositionRequestDto) =>\n this.api(PositionsApi).positionsControllerCloseAllPositions(body),\n\n adjust: (positionId: string, body: AdjustPositionRequestDto) =>\n this.api(PositionsApi).positionsControllerAdjustPosition(positionId, body),\n\n adjustAdvance: (positionId: string, body: AdjustAdvanceItemDto[]) =>\n this.api(PositionsApi).positionsControllerAdjustAdvancePosition(positionId, body),\n\n adjustLeverage: (positionId: string, body: AdjustLeverageRequestDto) =>\n this.api(PositionsApi).positionsControllerAdjustLeverage(positionId, body),\n\n updateRiskParameters: (positionId: string, body: UpdateRiskParametersRequestDto) =>\n this.api(PositionsApi).positionsControllerUpdateRiskParameters(positionId, body),\n\n planRebalance: (positionId: string, body: RebalancePositionRequestDto) =>\n this.api(PositionsApi).positionsControllerPlanRebalance(positionId, body),\n\n rebalance: (positionId: string, body: RebalancePositionRequestDto) =>\n this.api(PositionsApi).positionsControllerRebalancePosition(positionId, body),\n },\n\n sync: {\n fills: (body: SyncFillsRequestDto) =>\n this.api(SyncApi).syncControllerSyncFills(body),\n },\n\n tradeHistory: {\n list: (params?: TradeHistoryQuery) =>\n this.api(TradeHistoryApi).tradeHistoryControllerGetTradeHistory(\n params?.limit, params?.startDate, params?.endDate,\n ),\n },\n\n watchlist: {\n get: () =>\n this.api(WatchlistApi).watchlistControllerGetWatchlist(),\n\n toggle: (body: ToggleWatchlistDto) =>\n this.api(WatchlistApi).watchlistControllerToggle(body),\n },\n };\n}\n","import type { CandleData, CandleInterval, HistoricalRange } from './types';\n\nexport const createKey = (symbol: string, interval: CandleInterval): string => `${symbol}-${interval}`;\n\nexport const getIntervalSeconds = (interval: CandleInterval): number => {\n switch (interval) {\n case '1m':\n return 60;\n case '3m':\n return 3 * 60;\n case '5m':\n return 5 * 60;\n case '15m':\n return 15 * 60;\n case '30m':\n return 30 * 60;\n case '1h':\n return 60 * 60;\n case '2h':\n return 2 * 60 * 60;\n case '4h':\n return 4 * 60 * 60;\n case '8h':\n return 8 * 60 * 60;\n case '12h':\n return 12 * 60 * 60;\n case '1d':\n return 24 * 60 * 60;\n case '3d':\n return 3 * 24 * 60 * 60;\n case '1w':\n return 7 * 24 * 60 * 60;\n case '1M':\n return 30 * 24 * 60 * 60;\n }\n};\n\nexport const mergeRanges = (ranges: HistoricalRange[], newRange: HistoricalRange): HistoricalRange[] => {\n const all = [...ranges, newRange].sort((a, b) => a.start - b.start);\n const merged: HistoricalRange[] = [];\n\n for (const r of all) {\n const last = merged[merged.length - 1];\n if (merged.length === 0 || !last || r.start > last.end) {\n merged.push({ start: r.start, end: r.end });\n } else {\n last.end = Math.max(last.end, r.end);\n }\n }\n\n return merged;\n};\n\nexport const createCandleLookups = (\n tokenCandles: Record<string, CandleData[]>,\n): Record<string, Map<number, CandleData>> => {\n const lookups: Record<string, Map<number, CandleData>> = {};\n\n for (const [symbol, candles] of Object.entries(tokenCandles)) {\n const lookup = new Map<number, CandleData>();\n for (const candle of candles) {\n lookup.set(candle.t, candle);\n }\n lookups[symbol] = lookup;\n }\n\n return lookups;\n};\n\nexport const getCompleteTimestamps = (\n candleLookups: Record<string, Map<number, CandleData>>,\n requiredSymbols: string[],\n): number[] => {\n if (requiredSymbols.length === 0) return [];\n\n let baseSymbol: string | undefined;\n let baseLookup: Map<number, CandleData> | undefined;\n let baseSize = Infinity;\n\n for (const symbol of requiredSymbols) {\n const lookup = candleLookups[symbol];\n const size = lookup?.size ?? 0;\n if (size === 0) return [];\n if (size < baseSize) {\n baseSize = size;\n baseSymbol = symbol;\n baseLookup = lookup;\n }\n }\n\n if (!baseLookup || !baseSymbol) return [];\n\n const result: number[] = [];\n for (const timestamp of Array.from(baseLookup.keys())) {\n let ok = true;\n for (const symbol of requiredSymbols) {\n if (symbol === baseSymbol) continue;\n const lookup = candleLookups[symbol];\n if (!lookup || !lookup.has(timestamp)) {\n ok = false;\n break;\n }\n }\n if (ok) result.push(timestamp);\n }\n\n result.sort((a, b) => a - b);\n return result;\n};\n","import type { CandleData, CandleInterval, TokenHistoricalPriceData } from '../types';\nimport { createKey, getIntervalSeconds, mergeRanges } from '../utils';\nimport type { HistoricalRange } from '../types';\n\nexport class CandleCache {\n private historicalPriceData: Record<string, TokenHistoricalPriceData> = {};\n private loadingTokens: Set<string> = new Set();\n\n public addLoadingToken(symbol: string): void {\n this.loadingTokens.add(symbol);\n }\n\n public removeLoadingToken(symbol: string): void {\n this.loadingTokens.delete(symbol);\n }\n\n public addHistoricalPriceData(\n symbol: string,\n interval: CandleInterval,\n candles: CandleData[],\n range: HistoricalRange,\n ): void {\n const key = createKey(symbol, interval);\n const existing = this.historicalPriceData[key];\n\n if (!existing) {\n const sortedCandles = [...candles].sort((a, b) => a.t - b.t);\n const noDataBefore = sortedCandles.length === 0 ? range.end : null;\n this.historicalPriceData[key] = {\n symbol,\n interval,\n candles: sortedCandles,\n oldestTime: sortedCandles.length > 0 ? (sortedCandles[0]?.t ?? null) : null,\n latestTime: sortedCandles.length > 0 ? (sortedCandles[sortedCandles.length - 1]?.t ?? null) : null,\n requestedRanges: [range],\n noDataBefore,\n };\n return;\n }\n\n const existingTimes = new Set(existing.candles.map((c) => c.t));\n const newCandles = candles.filter((c) => !existingTimes.has(c.t));\n const mergedCandles = [...existing.candles, ...newCandles].sort((a, b) => a.t - b.t);\n\n const oldestTime = mergedCandles.length > 0 ? (mergedCandles[0]?.t ?? null) : null;\n const latestTime = mergedCandles.length > 0 ? (mergedCandles[mergedCandles.length - 1]?.t ?? null) : null;\n const mergedRanges = mergeRanges(existing.requestedRanges, range);\n\n let noDataBefore = existing.noDataBefore;\n if (candles.length === 0 && existing.oldestTime !== null && range.end <= existing.oldestTime) {\n noDataBefore = existing.oldestTime;\n }\n\n this.historicalPriceData[key] = {\n ...existing,\n candles: mergedCandles,\n oldestTime,\n latestTime,\n requestedRanges: mergedRanges,\n noDataBefore,\n };\n }\n\n public hasData(symbol: string, interval: CandleInterval, startTime: number, endTime: number): boolean {\n const key = createKey(symbol, interval);\n const tokenData = this.historicalPriceData[key];\n\n if (!tokenData) return false;\n\n if (tokenData.noDataBefore !== null && endTime <= tokenData.noDataBefore) {\n return true;\n }\n\n for (const range of tokenData.requestedRanges) {\n if (range.start <= startTime && range.end >= endTime) {\n return true;\n }\n }\n\n if (tokenData.oldestTime === null || tokenData.latestTime === null) {\n return false;\n }\n\n const intervalMs = getIntervalSeconds(interval) * 1000;\n const hasStartCoverage = tokenData.oldestTime <= startTime;\n const hasEndCoverage = tokenData.latestTime >= endTime || tokenData.latestTime + intervalMs >= endTime;\n\n return hasStartCoverage && hasEndCoverage;\n }\n\n public getData(symbol: string, interval: CandleInterval, startTime: number, endTime: number): CandleData[] {\n const key = createKey(symbol, interval);\n const tokenData = this.historicalPriceData[key];\n if (!tokenData) return [];\n return tokenData.candles.filter((candle) => candle.t >= startTime && candle.t < endTime);\n }\n\n public getEffectiveBoundary(symbols: string[], interval: CandleInterval): number | null {\n if (symbols.length === 0) return null;\n\n let maxBoundary: number | null = null;\n\n for (const symbol of symbols) {\n const key = createKey(symbol, interval);\n const tokenData = this.historicalPriceData[key];\n if (!tokenData) continue;\n\n const boundary = tokenData.noDataBefore ?? tokenData.oldestTime;\n if (boundary !== null) {\n if (maxBoundary === null || boundary > maxBoundary) {\n maxBoundary = boundary;\n }\n }\n }\n\n return maxBoundary;\n }\n\n public getLatestCandle(symbol: string, interval: CandleInterval): CandleData | null {\n const key = createKey(symbol, interval);\n const tokenData = this.historicalPriceData[key];\n if (!tokenData || tokenData.candles.length === 0) return null;\n return tokenData.candles[tokenData.candles.length - 1] ?? null;\n }\n\n public removeToken(symbol: string, interval: CandleInterval): void {\n const key = createKey(symbol, interval);\n delete this.historicalPriceData[key];\n this.loadingTokens.delete(symbol);\n }\n\n public clear(): void {\n this.historicalPriceData = {};\n this.loadingTokens = new Set();\n }\n}\n","import type { HyperliquidWs } from '../../ws/hyperliquid';\nimport type { CandleData, CandleInterval } from './types';\n\nexport type CandleHandler = (symbol: string, candle: CandleData) => void;\n\ninterface HyperliquidCandlePayload {\n s: string;\n t: number;\n T: number;\n o: string;\n h: string;\n l: string;\n c: string;\n}\n\nexport class HyperliquidCandleWs {\n private ws: HyperliquidWs;\n private onCandle: CandleHandler;\n private handlerId: string | null = null;\n private subscribedKeys = new Set<string>();\n\n constructor(ws: HyperliquidWs, onCandle: CandleHandler) {\n this.ws = ws;\n this.onCandle = onCandle;\n }\n\n public start(): void {\n if (this.handlerId) return;\n\n this.handlerId = this.ws.addChannelHandler('candle', (data: unknown) => {\n const result = this.parsePayload(data as HyperliquidCandlePayload);\n if (result) {\n this.onCandle(result.symbol, result.candle);\n }\n });\n }\n\n public stop(): void {\n if (this.handlerId) {\n this.ws.removeChannelHandler('candle', this.handlerId);\n this.handlerId = null;\n }\n\n for (const key of this.subscribedKeys) {\n const [symbol, interval] = key.split('::') as [string, CandleInterval];\n this.ws.unsubscribe(key);\n }\n\n this.subscribedKeys.clear();\n }\n\n public subscribe(symbol: string, interval: CandleInterval): void {\n const key = `${symbol}::${interval}`;\n if (this.subscribedKeys.has(key)) return;\n\n this.subscribedKeys.add(key);\n this.ws.subscribe(key, { type: 'candle', coin: symbol, interval });\n }\n\n public onHistoricalDataFetched(_symbol: string, _interval: CandleInterval, _candles: CandleData[]): void {}\n\n public unsubscribe(symbol: string, interval: CandleInterval): void {\n const key = `${symbol}::${interval}`;\n if (!this.subscribedKeys.has(key)) return;\n\n this.subscribedKeys.delete(key);\n this.ws.unsubscribe(key);\n }\n\n private parsePayload(d: HyperliquidCandlePayload): { symbol: string; candle: CandleData } | null {\n if (!d || !d.s) return null;\n return {\n symbol: d.s,\n candle: {\n s: d.s,\n t: d.t,\n T: d.T,\n o: Number(d.o),\n h: Number(d.h),\n l: Number(d.l),\n c: Number(d.c),\n },\n };\n }\n}\n","import axios from 'axios';\nimport type { CandleData, CandleInterval } from '../types';\n\nexport async function fetchHistoricalCandles(\n symbol: string,\n startTime: number,\n endTime: number,\n interval: CandleInterval,\n): Promise<CandleData[]> {\n const request = {\n req: { coin: symbol, startTime, endTime, interval },\n type: 'candleSnapshot' as const,\n };\n\n const { data } = await axios.post<CandleData[]>('https://api.hyperliquid.xyz/info', request);\n return data;\n}\n","import type { HyperliquidWs } from '../../../ws/hyperliquid';\nimport { CandleCache } from '../cache';\nimport { HyperliquidCandleWs } from '../candle-ws';\nimport type { CandleData, CandleInterval, ChartConfig, RealtimeCandleCallback, TokenSelection } from '../types';\nimport { fetchHistoricalCandles } from './fetch-candles';\n\nexport class DataCollector {\n private ws: HyperliquidWs;\n private longTokens: TokenSelection[];\n private shortTokens: TokenSelection[];\n private candleInterval: CandleInterval;\n\n private prevTokenSymbols: Set<string> = new Set();\n private prevInterval: CandleInterval | null = null;\n\n private candleWs: HyperliquidCandleWs | null = null;\n private latestCandles: Map<string, CandleData> = new Map();\n private realtimeListeners: Map<string, RealtimeCandleCallback> = new Map();\n\n private cache = new CandleCache();\n\n constructor(config: ChartConfig) {\n this.ws = config.ws;\n this.longTokens = config.longTokens ?? [];\n this.shortTokens = config.shortTokens ?? [];\n this.candleInterval = config.candleInterval ?? '1h';\n\n this.syncTokenChanges();\n }\n\n public setTokens(longTokens: TokenSelection[], shortTokens: TokenSelection[]): void {\n this.longTokens = longTokens;\n this.shortTokens = shortTokens;\n this.syncWsSubscriptions();\n this.syncTokenChanges();\n }\n\n public setCandleInterval(interval: CandleInterval): void {\n const prevInterval = this.candleInterval;\n this.candleInterval = interval;\n this.syncTokenChanges();\n\n if (this.candleWs && prevInterval !== interval) {\n for (const symbol of this.prevTokenSymbols) {\n this.candleWs.unsubscribe(symbol, prevInterval);\n }\n this.latestCandles.clear();\n for (const symbol of this.prevTokenSymbols) {\n this.candleWs.subscribe(symbol, interval);\n }\n }\n }\n\n public attachCandleWs(): void {\n if (this.candleWs) return;\n\n this.candleWs = new HyperliquidCandleWs(this.ws, (symbol, candle) => {\n this.latestCandles.set(symbol, candle);\n for (const cb of this.realtimeListeners.values()) {\n try {\n cb(symbol, candle);\n } catch (error) {\n console.warn('Error in realtime listener callback', error);\n }\n }\n });\n\n this.candleWs.start();\n\n for (const token of this.getAllTokens()) {\n const latestCandle = this.cache.getLatestCandle(token.symbol, this.candleInterval);\n if (latestCandle && !this.latestCandles.has(token.symbol)) {\n this.latestCandles.set(token.symbol, latestCandle);\n }\n this.candleWs.subscribe(token.symbol, this.candleInterval);\n }\n }\n\n public detachCandleWs(): void {\n if (this.candleWs) {\n this.candleWs.stop();\n this.candleWs = null;\n }\n }\n\n public get isWsAttached(): boolean {\n return this.candleWs !== null;\n }\n\n public addRealtimeListener(id: string, cb: RealtimeCandleCallback): void {\n this.realtimeListeners.set(id, cb);\n }\n\n public removeRealtimeListener(id: string): void {\n this.realtimeListeners.delete(id);\n }\n\n public getLatestCandles(): Record<string, CandleData> | null {\n const allTokens = this.getAllTokens();\n if (allTokens.length === 0) return null;\n\n const result: Record<string, CandleData> = {};\n for (const token of allTokens) {\n const candle = this.latestCandles.get(token.symbol);\n if (!candle) return null;\n result[token.symbol] = candle;\n }\n return result;\n }\n\n public getLongTokens(): TokenSelection[] {\n return this.longTokens;\n }\n\n public getShortTokens(): TokenSelection[] {\n return this.shortTokens;\n }\n\n public getCandleInterval(): CandleInterval {\n return this.candleInterval;\n }\n\n public getEffectiveDataBoundary(interval: CandleInterval): number | null {\n const symbols = this.getAllTokens().map((t) => t.symbol);\n return this.cache.getEffectiveBoundary(symbols, interval);\n }\n\n public clearCache(): void {\n this.cache.clear();\n this.latestCandles.clear();\n }\n\n public async fetchHistoricalPriceData(\n startTime: number,\n endTime: number,\n interval: CandleInterval,\n callback?: (data: Record<string, CandleData[]>) => void,\n ): Promise<Record<string, CandleData[]>> {\n const allTokens = this.getAllTokens();\n\n if (allTokens.length === 0) {\n const emptyResult: Record<string, CandleData[]> = {};\n callback?.(emptyResult);\n return emptyResult;\n }\n\n const tokensToFetch = allTokens.filter((token) => !this.cache.hasData(token.symbol, interval, startTime, endTime));\n\n if (tokensToFetch.length === 0) {\n const cachedData = this.getHistoricalPriceData(startTime, endTime, interval);\n callback?.(cachedData);\n return cachedData;\n }\n\n for (const token of tokensToFetch) {\n this.cache.addLoadingToken(token.symbol);\n }\n\n try {\n const fetchPromises = tokensToFetch.map(async (token) => {\n try {\n const candles = await fetchHistoricalCandles(\n token.symbol,\n startTime,\n endTime,\n interval,\n );\n\n this.cache.addHistoricalPriceData(token.symbol, interval, candles, { start: startTime, end: endTime });\n\n if (candles.length > 0 && !this.latestCandles.has(token.symbol)) {\n this.latestCandles.set(token.symbol, candles[candles.length - 1]);\n }\n\n return { symbol: token.symbol, candles, success: true };\n } catch (error) {\n console.warn(`Failed to fetch historical data for ${token.symbol}:`, error);\n return { symbol: token.symbol, candles: [], success: false };\n }\n });\n\n await Promise.all(fetchPromises);\n\n const allData = this.getHistoricalPriceData(startTime, endTime, interval);\n callback?.(allData);\n return allData;\n } catch (error) {\n console.error('Failed to fetch historical data:', error);\n throw error;\n } finally {\n for (const token of tokensToFetch) {\n this.cache.removeLoadingToken(token.symbol);\n }\n }\n }\n\n public destroy(): void {\n this.detachCandleWs();\n this.realtimeListeners.clear();\n this.latestCandles.clear();\n this.cache.clear();\n }\n\n private getAllTokens(): TokenSelection[] {\n return [...this.longTokens, ...this.shortTokens];\n }\n\n private syncTokenChanges(): void {\n const currentSymbols = new Set(this.getAllTokens().map((t) => t.symbol));\n\n if (this.prevInterval !== null && this.prevInterval !== this.candleInterval) {\n this.cache.clear();\n this.prevTokenSymbols = currentSymbols;\n this.prevInterval = this.candleInterval;\n return;\n }\n\n for (const symbol of this.prevTokenSymbols) {\n if (!currentSymbols.has(symbol)) {\n this.cache.removeToken(symbol, this.candleInterval);\n }\n }\n\n this.prevTokenSymbols = currentSymbols;\n this.prevInterval = this.candleInterval;\n }\n\n private getHistoricalPriceData(\n startTime: number,\n endTime: number,\n interval: CandleInterval,\n ): Record<string, CandleData[]> {\n const allTokens = this.getAllTokens();\n const result: Record<string, CandleData[]> = {};\n for (const token of allTokens) {\n result[token.symbol] = this.cache.getData(token.symbol, interval, startTime, endTime);\n }\n return result;\n }\n\n private syncWsSubscriptions(): void {\n if (!this.candleWs) return;\n\n const currentSymbols = new Set(this.getAllTokens().map((t) => t.symbol));\n for (const symbol of this.prevTokenSymbols) {\n if (!currentSymbols.has(symbol)) {\n this.candleWs.unsubscribe(symbol, this.candleInterval);\n this.latestCandles.delete(symbol);\n }\n }\n\n if (currentSymbols.size === 0) {\n this.detachCandleWs();\n this.latestCandles.clear();\n return;\n }\n\n for (const symbol of currentSymbols) {\n this.candleWs.subscribe(symbol, this.candleInterval);\n }\n }\n}\n","import type { Bar, CandleData } from '../types';\n\nexport function computeAssetBars(tokenCandles: Record<string, CandleData[]>, symbol: string): Bar[] {\n const candles = tokenCandles[symbol];\n if (!candles) return [];\n\n return candles.map((c) => ({\n time: c.t,\n open: c.o,\n high: c.h,\n low: c.l,\n close: c.c,\n }));\n}\n\nexport function computeRealtimeAssetBar(snapshot: Record<string, CandleData>, symbol: string): Bar | null {\n const candle = snapshot[symbol];\n if (!candle) return null;\n\n return {\n time: candle.t,\n open: candle.o,\n high: candle.h,\n low: candle.l,\n close: candle.c,\n };\n}\n","import type { Bar, CandleData, PerformanceResult, TokenSelection } from '../types';\nimport { createCandleLookups, getCompleteTimestamps } from '../utils';\n\nexport function computePerformanceCandles(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n tokenCandles: Record<string, CandleData[]>,\n): PerformanceResult {\n const empty: PerformanceResult = { bars: [], baselinePrices: {} };\n const allTokens = [...longTokens, ...shortTokens];\n if (allTokens.length === 0) return empty;\n\n const candleLookups = createCandleLookups(tokenCandles);\n const allSymbols = allTokens.map((t) => t.symbol);\n const completeTimestamps = getCompleteTimestamps(candleLookups, allSymbols);\n\n if (completeTimestamps.length === 0) return empty;\n\n const baselinePrices: Record<string, number> = {};\n const firstTimestamp = completeTimestamps[0] as number;\n for (const token of allTokens) {\n const candle = candleLookups[token.symbol]?.get(firstTimestamp);\n if (!candle || candle.o <= 0) return empty;\n baselinePrices[token.symbol] = candle.o;\n }\n\n const initialPortfolioValue = 1000;\n const longSet = new Set(longTokens.map((t) => t.symbol));\n const bars: Bar[] = [];\n\n for (const timestamp of completeTimestamps) {\n let portfolioValue = 0;\n let missing = false;\n\n for (const token of allTokens) {\n const candle = candleLookups[token.symbol]?.get(timestamp);\n if (!candle) {\n missing = true;\n break;\n }\n\n const baselinePrice = baselinePrices[token.symbol] as number;\n const allocation = (token.weight) * initialPortfolioValue;\n const priceRatio = candle.c / baselinePrice;\n\n if (longSet.has(token.symbol)) {\n portfolioValue += allocation * priceRatio;\n } else {\n portfolioValue += allocation / priceRatio;\n }\n }\n\n if (missing) continue;\n\n bars.push({\n time: timestamp,\n open: portfolioValue,\n high: portfolioValue,\n low: portfolioValue,\n close: portfolioValue,\n });\n }\n\n return { bars, baselinePrices };\n}\n\nexport function computeRealtimePerformanceBar(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n snapshot: Record<string, CandleData>,\n baselinePrices: Record<string, number>,\n): Bar | null {\n const allTokens = [...longTokens, ...shortTokens];\n if (allTokens.length === 0) return null;\n\n const initialPortfolioValue = 1000;\n const longSet = new Set(longTokens.map((t) => t.symbol));\n let portfolioValue = 0;\n let time: number | null = null;\n\n for (const token of allTokens) {\n const c = snapshot[token.symbol];\n if (!c) return null;\n const baselinePrice = baselinePrices[token.symbol];\n if (!baselinePrice || baselinePrice <= 0) return null;\n\n const allocation = (token.weight) * initialPortfolioValue;\n const priceRatio = c.c / baselinePrice;\n\n if (longSet.has(token.symbol)) {\n portfolioValue += allocation * priceRatio;\n } else {\n portfolioValue += allocation / priceRatio;\n }\n\n if (time === null) time = c.t;\n }\n\n if (time === null) return null;\n\n return {\n time,\n open: portfolioValue,\n high: portfolioValue,\n low: portfolioValue,\n close: portfolioValue,\n };\n}\n","import type { Bar, CandleData, TokenSelection } from '../types';\nimport { createCandleLookups, getCompleteTimestamps } from '../utils';\n\nexport function computePriceRatioCandles(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n tokenCandles: Record<string, CandleData[]>,\n): Bar[] {\n if (longTokens.length === 0 && shortTokens.length === 0) return [];\n\n const candleLookups = createCandleLookups(tokenCandles);\n const allSymbols = [...longTokens, ...shortTokens].map((t) => t.symbol);\n const completeTimestamps = getCompleteTimestamps(candleLookups, allSymbols);\n\n const bars: Bar[] = [];\n\n for (const timestamp of completeTimestamps) {\n let longSumO = 0;\n let longSumH = 0;\n let longSumL = 0;\n let longSumC = 0;\n let shortSumO = 0;\n let shortSumH = 0;\n let shortSumL = 0;\n let shortSumC = 0;\n let missing = false;\n\n for (const token of longTokens) {\n const candle = candleLookups[token.symbol]?.get(timestamp);\n if (!candle) {\n missing = true;\n break;\n }\n if (!(candle.o > 0 && candle.h > 0 && candle.l > 0 && candle.c > 0)) {\n missing = true;\n break;\n }\n const w = token.weight;\n longSumO += w * candle.o;\n longSumH += w * candle.h;\n longSumL += w * candle.l;\n longSumC += w * candle.c;\n }\n if (missing) continue;\n\n for (const token of shortTokens) {\n const candle = candleLookups[token.symbol]?.get(timestamp);\n if (!candle) {\n missing = true;\n break;\n }\n if (!(candle.o > 0 && candle.h > 0 && candle.l > 0 && candle.c > 0)) {\n missing = true;\n break;\n }\n const w = token.weight;\n shortSumO += w * candle.o;\n shortSumH += w * candle.h;\n shortSumL += w * candle.l;\n shortSumC += w * candle.c;\n }\n if (missing) continue;\n\n if (shortSumO <= 0 || shortSumH <= 0 || shortSumL <= 0 || shortSumC <= 0) continue;\n\n bars.push({\n time: timestamp,\n open: longSumO / shortSumO,\n high: longSumH / shortSumH,\n low: longSumL / shortSumL,\n close: longSumC / shortSumC,\n });\n }\n\n return bars;\n}\n\nexport function computeRealtimePriceRatioBar(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n snapshot: Record<string, CandleData>,\n): Bar | null {\n let longSumO = 0;\n let longSumH = 0;\n let longSumL = 0;\n let longSumC = 0;\n let shortSumO = 0;\n let shortSumH = 0;\n let shortSumL = 0;\n let shortSumC = 0;\n let time: number | null = null;\n\n for (const token of longTokens) {\n const c = snapshot[token.symbol];\n if (!c) return null;\n if (!(c.o > 0 && c.h > 0 && c.l > 0 && c.c > 0)) return null;\n const w = token.weight;\n longSumO += w * c.o;\n longSumH += w * c.h;\n longSumL += w * c.l;\n longSumC += w * c.c;\n if (time === null) time = c.t;\n }\n\n for (const token of shortTokens) {\n const c = snapshot[token.symbol];\n if (!c) return null;\n if (!(c.o > 0 && c.h > 0 && c.l > 0 && c.c > 0)) return null;\n const w = token.weight;\n shortSumO += w * c.o;\n shortSumH += w * c.h;\n shortSumL += w * c.l;\n shortSumC += w * c.c;\n if (time === null) time = c.t;\n }\n\n if (time === null) return null;\n if (shortSumO <= 0 || shortSumH <= 0 || shortSumL <= 0 || shortSumC <= 0) return null;\n\n return {\n time,\n open: longSumO / shortSumO,\n high: longSumH / shortSumH,\n low: longSumL / shortSumL,\n close: longSumC / shortSumC,\n };\n}\n","import type { Bar, CandleData, TokenSelection } from '../types';\nimport { createCandleLookups, getCompleteTimestamps } from '../utils';\n\nfunction pow(base: number, exponent: number): number {\n if (base <= 0) return 0;\n return Math.exp(exponent * Math.log(base));\n}\n\nexport function computeWeightedRatioCandles(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n tokenCandles: Record<string, CandleData[]>,\n): Bar[] {\n if (longTokens.length === 0 && shortTokens.length === 0) return [];\n\n const candleLookups = createCandleLookups(tokenCandles);\n const allSymbols = [...longTokens, ...shortTokens].map((t) => t.symbol);\n const completeTimestamps = getCompleteTimestamps(candleLookups, allSymbols);\n\n const bars: Bar[] = [];\n\n for (const timestamp of completeTimestamps) {\n let longOpen = 1;\n let longHigh = 1;\n let longLow = 1;\n let longClose = 1;\n let shortOpen = 1;\n let shortHigh = 1;\n let shortLow = 1;\n let shortClose = 1;\n let missing = false;\n\n for (const token of longTokens) {\n const candle = candleLookups[token.symbol]?.get(timestamp);\n if (!candle) {\n missing = true;\n break;\n }\n const w = token.weight;\n if (!(candle.o > 0 && candle.h > 0 && candle.l > 0 && candle.c > 0)) {\n missing = true;\n break;\n }\n longOpen *= pow(candle.o, w);\n longHigh *= pow(candle.h, w);\n longLow *= pow(candle.l, w);\n longClose *= pow(candle.c, w);\n }\n if (missing) continue;\n\n for (const token of shortTokens) {\n const candle = candleLookups[token.symbol]?.get(timestamp);\n if (!candle) {\n missing = true;\n break;\n }\n const w = -(token.weight);\n if (!(candle.o > 0 && candle.h > 0 && candle.l > 0 && candle.c > 0)) {\n missing = true;\n break;\n }\n shortOpen *= pow(candle.o, w);\n shortHigh *= pow(candle.h, w);\n shortLow *= pow(candle.l, w);\n shortClose *= pow(candle.c, w);\n }\n if (missing) continue;\n\n bars.push({\n time: timestamp,\n open: longOpen * shortOpen,\n high: longHigh * shortHigh,\n low: longLow * shortLow,\n close: longClose * shortClose,\n });\n }\n\n return bars;\n}\n\nexport function computeRealtimeWeightedRatioBar(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n snapshot: Record<string, CandleData>,\n): Bar | null {\n let longOpen = 1;\n let longHigh = 1;\n let longLow = 1;\n let longClose = 1;\n let shortOpen = 1;\n let shortHigh = 1;\n let shortLow = 1;\n let shortClose = 1;\n let time: number | null = null;\n\n for (const token of longTokens) {\n const c = snapshot[token.symbol];\n if (!c) return null;\n if (!(c.o > 0 && c.h > 0 && c.l > 0 && c.c > 0)) return null;\n const w = token.weight;\n longOpen *= pow(c.o, w);\n longHigh *= pow(c.h, w);\n longLow *= pow(c.l, w);\n longClose *= pow(c.c, w);\n if (time === null) time = c.t;\n }\n\n for (const token of shortTokens) {\n const c = snapshot[token.symbol];\n if (!c) return null;\n if (!(c.o > 0 && c.h > 0 && c.l > 0 && c.c > 0)) return null;\n const w = -(token.weight);\n shortOpen *= pow(c.o, w);\n shortHigh *= pow(c.h, w);\n shortLow *= pow(c.l, w);\n shortClose *= pow(c.c, w);\n if (time === null) time = c.t;\n }\n\n if (time === null) return null;\n\n return {\n time,\n open: longOpen * shortOpen,\n high: longHigh * shortHigh,\n low: longLow * shortLow,\n close: longClose * shortClose,\n };\n}\n","import { DataCollector } from './collector';\nimport {\n computeAssetBars,\n computePerformanceCandles,\n computePriceRatioCandles,\n computeRealtimeAssetBar,\n computeRealtimePerformanceBar,\n computeRealtimePriceRatioBar,\n computeRealtimeWeightedRatioBar,\n computeWeightedRatioCandles,\n} from './compute/index';\nimport type { Bar, CandleInterval, ChartConfig, ChartType, RealtimeBarCallback, TokenSelection } from './types';\n\nexport class Chart {\n private collector: DataCollector;\n private baselinePrices: Record<string, number> = {};\n\n constructor(config: ChartConfig) {\n this.collector = new DataCollector(config);\n }\n\n public setTokens(longTokens: TokenSelection[], shortTokens: TokenSelection[]): void {\n this.collector.setTokens(longTokens, shortTokens);\n this.baselinePrices = {};\n }\n\n public setCandleInterval(interval: CandleInterval): void {\n this.collector.setCandleInterval(interval);\n this.baselinePrices = {};\n }\n\n public async getBars(chartType: ChartType, startTime: number, endTime: number): Promise<Bar[]> {\n const interval = this.collector.getCandleInterval();\n const tokenCandles = await this.collector.fetchHistoricalPriceData(startTime, endTime, interval);\n\n switch (chartType) {\n case 'weighted-ratio': {\n return computeWeightedRatioCandles(\n this.collector.getLongTokens(),\n this.collector.getShortTokens(),\n tokenCandles,\n );\n }\n case 'price-ratio': {\n return computePriceRatioCandles(this.collector.getLongTokens(), this.collector.getShortTokens(), tokenCandles);\n }\n case 'performance': {\n const result = computePerformanceCandles(\n this.collector.getLongTokens(),\n this.collector.getShortTokens(),\n tokenCandles,\n );\n\n if (result.bars.length > 0) {\n this.baselinePrices = result.baselinePrices;\n }\n\n return result.bars;\n }\n default:\n throw new Error(`Unsupported chart type: ${chartType}`);\n }\n }\n\n public async getAssetBars(symbol: string, startTime: number, endTime: number): Promise<Bar[]> {\n this.assertTokenExists(symbol);\n const interval = this.collector.getCandleInterval();\n const tokenCandles = await this.collector.fetchHistoricalPriceData(startTime, endTime, interval);\n return computeAssetBars(tokenCandles, symbol);\n }\n\n public getEffectiveDataBoundary(): number | null {\n return this.collector.getEffectiveDataBoundary(this.collector.getCandleInterval());\n }\n\n public subscribeRealtimeBars(chartType: ChartType, callback: RealtimeBarCallback): string {\n if (!this.collector.isWsAttached) {\n this.collector.attachCandleWs();\n }\n\n const formatTokens = (tokens: TokenSelection[]) => tokens.map((t) => `${t.symbol}:${t.weight}`).join(',');\n const id = `${chartType}-${formatTokens(this.collector.getLongTokens())}-${formatTokens(this.collector.getShortTokens())}`;\n\n this.collector.addRealtimeListener(id, () => {\n const snapshot = this.collector.getLatestCandles();\n if (!snapshot) return;\n\n let bar: Bar | null = null;\n switch (chartType) {\n case 'weighted-ratio':\n bar = computeRealtimeWeightedRatioBar(\n this.collector.getLongTokens(),\n this.collector.getShortTokens(),\n snapshot,\n );\n break;\n case 'price-ratio':\n bar = computeRealtimePriceRatioBar(this.collector.getLongTokens(), this.collector.getShortTokens(), snapshot);\n break;\n case 'performance':\n if (Object.keys(this.baselinePrices).length === 0) break;\n bar = computeRealtimePerformanceBar(\n this.collector.getLongTokens(),\n this.collector.getShortTokens(),\n snapshot,\n this.baselinePrices,\n );\n break;\n }\n\n if (bar) {\n try {\n callback(bar);\n } catch (error) {\n console.warn('Error in realtime bar callback, skipping this update', {\n chartType,\n error,\n });\n }\n }\n });\n\n return id;\n }\n\n public subscribeRealtimeAssetBars(symbol: string, callback: RealtimeBarCallback): string {\n this.assertTokenExists(symbol);\n\n if (!this.collector.isWsAttached) {\n this.collector.attachCandleWs();\n }\n\n const id = `price-${symbol}`;\n\n this.collector.addRealtimeListener(id, () => {\n const snapshot = this.collector.getLatestCandles();\n if (!snapshot) return;\n\n const bar = computeRealtimeAssetBar(snapshot, symbol);\n if (bar) {\n try {\n callback(bar);\n } catch (error) {\n console.warn('Error in realtime asset bar callback, skipping this update', {\n symbol,\n error,\n });\n }\n }\n });\n\n return id;\n }\n\n public unsubscribeRealtimeBars(id: string): void {\n this.collector.removeRealtimeListener(id);\n }\n\n private assertTokenExists(symbol: string): void {\n const allTokens = [...this.collector.getLongTokens(), ...this.collector.getShortTokens()];\n if (!allTokens.some((t) => t.symbol === symbol)) {\n throw new Error(`Symbol \"${symbol}\" is not part of the configured long or short tokens`);\n }\n }\n\n public clearCache(): void {\n this.collector.clearCache();\n this.baselinePrices = {};\n }\n\n public destroy(): void {\n this.collector.destroy();\n }\n}\n","import type { ClearinghouseState, AllDexsClearinghouseStateData, AllDexsAssetCtxsData, AssetCtx } from '../../ws/hyperliquid/types';\nimport type { RawAssetDto, PositionAssetDetail } from './types';\n\nexport interface UniverseAsset {\n name: string;\n szDecimals: number;\n maxLeverage: number;\n onlyIsolated?: boolean;\n isDelisted?: boolean;\n}\n\nexport interface AllPerpMetasItem {\n universe: UniverseAsset[];\n collateralToken: number;\n}\n\nexport type AllPerpMetasResponse = AllPerpMetasItem[];\n\nexport interface PerpDex {\n name: string;\n fullName: string;\n deployer: string;\n oracleUpdater: string | null;\n feeRecipient: string | null;\n deployerFeeScale: string;\n assetToStreamingOiCap: [string, string][];\n assetToFundingMultiplier: [string, string][];\n subDeployers: [string, string[]][];\n lastDeployerFeeScaleChangeTime: string;\n}\n\nexport type PerpDexsResponse = (PerpDex | null)[];\n\nexport interface TokenMetadata {\n assetName: string;\n maxLeverage: number;\n szDecimals: number;\n currentPrice: number;\n markPrice: number;\n oraclePrice: number;\n prevDayPrice: number;\n priceChange24h: number;\n priceChange24hPercent: number;\n funding: number;\n}\n\nexport type TokenMetadataMap = Map<string, TokenMetadata>;\n\nexport type PriceMap = Map<string, number>;\n\nexport function buildTokenMetadataMap(\n perpMetasByDex: Map<string, UniverseAsset[]>,\n assetCtxsByDex: Map<string, AssetCtx[]>,\n): TokenMetadataMap {\n const map: TokenMetadataMap = new Map();\n for (const [dexName, assets] of perpMetasByDex) {\n const ctxs = assetCtxsByDex.get(dexName);\n if (!ctxs) continue;\n for (let i = 0; i < assets.length; i++) {\n const asset = assets[i];\n const ctx = ctxs[i];\n if (!ctx) continue;\n const markPrice = parseFloat(ctx.markPx) || 0;\n const currentPrice = parseFloat(ctx.midPx ?? '') || markPrice;\n const prevDayPrice = parseFloat(ctx.prevDayPx) || 0;\n const priceChange24h = currentPrice - prevDayPrice;\n map.set(asset.name, {\n assetName: asset.name,\n maxLeverage: asset.maxLeverage,\n szDecimals: asset.szDecimals,\n currentPrice,\n markPrice,\n oraclePrice: parseFloat(ctx.oraclePx) || 0,\n prevDayPrice,\n priceChange24h,\n priceChange24hPercent: prevDayPrice !== 0 ? (priceChange24h / prevDayPrice) * 100 : 0,\n funding: parseFloat(ctx.funding),\n });\n }\n }\n return map;\n}\n\nexport function buildPriceMap(metadataMap: TokenMetadataMap): PriceMap {\n const prices: PriceMap = new Map();\n for (const [name, meta] of metadataMap) {\n prices.set(name, meta.markPrice);\n }\n return prices;\n}\n\nexport function parsePerpMetas(\n perpMetas: AllPerpMetasResponse,\n perpDexNames: string[],\n): Map<string, UniverseAsset[]> {\n const result = new Map<string, UniverseAsset[]>();\n for (let i = 0; i < perpMetas.length; i++) {\n const dexName = perpDexNames[i] ?? (i === 0 ? 'HYPERLIQUID' : `DEX_${i}`);\n result.set(dexName, perpMetas[i].universe);\n }\n return result;\n}\n\nexport function parseAssetCtxs(\n data: AllDexsAssetCtxsData,\n): Map<string, AssetCtx[]> {\n const result = new Map<string, AssetCtx[]>();\n for (const [dexKey, ctxs] of data.ctxs) {\n const dexName = dexKey === '' ? 'HYPERLIQUID' : dexKey;\n result.set(dexName, ctxs);\n }\n return result;\n}\n\nexport function getMarkPrice(coin: string, prices: PriceMap): number {\n return prices.get(coin) ?? 0;\n}\n\nexport function getLeverage(\n coin: string,\n fallback: number,\n clearinghouseState: ClearinghouseState,\n): number {\n const ap = clearinghouseState.assetPositions.find(\n (p) => p.position.coin === coin,\n );\n return ap?.position.leverage?.value ?? fallback ?? 1;\n}\n\nexport function calculateAsset(\n asset: RawAssetDto,\n currentPrice: number,\n totalInitialSize: number,\n totalCurrentSize: number,\n leverage: number,\n isLong: boolean,\n): PositionAssetDetail & { entryMarginUsed: number } {\n const entryNotional = asset.entryPrice * asset.size;\n const currentNotional = currentPrice * asset.size;\n const effectiveLeverage = leverage || 1;\n const marginUsed = currentNotional / effectiveLeverage;\n const entryMarginUsed = entryNotional / effectiveLeverage;\n\n const unrealizedPnl = isLong\n ? currentNotional - entryNotional\n : entryNotional - currentNotional;\n\n return {\n coin: asset.coin,\n entryPrice: asset.entryPrice,\n actualSize: asset.size,\n leverage: effectiveLeverage,\n marginUsed,\n positionValue: currentNotional,\n unrealizedPnl,\n entryPositionValue: entryNotional,\n currentWeight: totalCurrentSize > 0 ? currentNotional / totalCurrentSize : 0,\n fundingPaid: asset.fundingPaid ?? 0,\n targetWeight: asset.targetWeight != null ? asset.targetWeight : (totalInitialSize > 0 ? entryNotional / totalInitialSize : 0),\n entryMarginUsed,\n };\n}\n\nexport function aggregateClearinghouseStates(\n data: AllDexsClearinghouseStateData,\n): ClearinghouseState {\n const states = (data.clearinghouseStates || [])\n .map(([, s]) => s)\n .filter(Boolean);\n\n if (states.length === 0) {\n return {\n assetPositions: [],\n crossMaintenanceMarginUsed: '0',\n crossMarginSummary: { accountValue: '0', totalMarginUsed: '0', totalNtlPos: '0', totalRawUsd: '0' },\n marginSummary: { accountValue: '0', totalMarginUsed: '0', totalNtlPos: '0', totalRawUsd: '0' },\n time: 0,\n withdrawable: '0',\n };\n }\n\n if (states.length === 1) return states[0];\n\n const sum = (values: (string | undefined)[]) =>\n values.reduce((acc, v) => acc + (parseFloat(v || '0') || 0), 0);\n const toStr = (n: number) => (Number.isFinite(n) ? n.toString() : '0');\n\n return {\n assetPositions: states.flatMap((s) => s.assetPositions || []),\n crossMaintenanceMarginUsed: toStr(sum(states.map((s) => s.crossMaintenanceMarginUsed))),\n crossMarginSummary: {\n accountValue: toStr(sum(states.map((s) => s.crossMarginSummary?.accountValue))),\n totalMarginUsed: toStr(sum(states.map((s) => s.crossMarginSummary?.totalMarginUsed))),\n totalNtlPos: toStr(sum(states.map((s) => s.crossMarginSummary?.totalNtlPos))),\n totalRawUsd: toStr(sum(states.map((s) => s.crossMarginSummary?.totalRawUsd))),\n },\n marginSummary: {\n accountValue: toStr(sum(states.map((s) => s.marginSummary?.accountValue))),\n totalMarginUsed: toStr(sum(states.map((s) => s.marginSummary?.totalMarginUsed))),\n totalNtlPos: toStr(sum(states.map((s) => s.marginSummary?.totalNtlPos))),\n totalRawUsd: toStr(sum(states.map((s) => s.marginSummary?.totalRawUsd))),\n },\n withdrawable: toStr(sum(states.map((s) => s.withdrawable))),\n time: Math.max(0, ...states.map((s) => s.time || 0)),\n };\n}\n","import type { TokenMetadataMap } from '../user/positions/utils';\nimport type { TokenSelection, BasketSnapshot } from './types';\n\nfunction pow(base: number, exponent: number): number {\n if (base <= 0) return 0;\n return Math.exp(exponent * Math.log(base));\n}\n\nexport function computeWeightedRatio(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number {\n let ratio = 1;\n for (const t of longTokens) {\n const price = metadata.get(t.symbol)?.markPrice ?? 0;\n ratio *= pow(price, t.weight);\n }\n for (const t of shortTokens) {\n const price = metadata.get(t.symbol)?.markPrice ?? 0;\n ratio *= pow(price, -(t.weight));\n }\n return ratio;\n}\n\nexport function computePriceRatio(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number | null {\n if (longTokens.length !== 1 || shortTokens.length !== 1) return null;\n\n const longPrice = metadata.get(longTokens[0].symbol)?.markPrice ?? 0;\n const shortPrice = metadata.get(shortTokens[0].symbol)?.markPrice ?? 0;\n if (shortPrice <= 0) return null;\n return longPrice / shortPrice;\n}\n\nexport function computePrice(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number | null {\n if (longTokens.length === 1 && shortTokens.length === 0) {\n return metadata.get(longTokens[0].symbol)?.markPrice ?? null;\n }\n if (longTokens.length === 0 && shortTokens.length === 1) {\n return metadata.get(shortTokens[0].symbol)?.markPrice ?? null;\n }\n return null;\n}\n\nexport function computeWeightedRatio24hAgo(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number {\n let ratio = 1;\n for (const t of longTokens) {\n const price = metadata.get(t.symbol)?.prevDayPrice ?? 0;\n ratio *= pow(price, t.weight);\n }\n for (const t of shortTokens) {\n const price = metadata.get(t.symbol)?.prevDayPrice ?? 0;\n ratio *= pow(price, -(t.weight));\n }\n return ratio;\n}\n\nexport function computePriceRatio24hAgo(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number | null {\n if (longTokens.length !== 1 || shortTokens.length !== 1) return null;\n\n const longPrice = metadata.get(longTokens[0].symbol)?.prevDayPrice ?? 0;\n const shortPrice = metadata.get(shortTokens[0].symbol)?.prevDayPrice ?? 0;\n if (shortPrice <= 0) return null;\n return longPrice / shortPrice;\n}\n\nexport function computePrice24hAgo(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number | null {\n if (longTokens.length === 1 && shortTokens.length === 0) {\n return metadata.get(longTokens[0].symbol)?.prevDayPrice ?? null;\n }\n if (longTokens.length === 0 && shortTokens.length === 1) {\n return metadata.get(shortTokens[0].symbol)?.prevDayPrice ?? null;\n }\n return null;\n}\n\nexport function computeNetFundingRate(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number {\n let total = 0;\n for (const t of longTokens) {\n const funding = metadata.get(t.symbol)?.funding;\n if (funding !== undefined && t.weight > 0) {\n total += -funding * (t.weight);\n }\n }\n for (const t of shortTokens) {\n const funding = metadata.get(t.symbol)?.funding;\n if (funding !== undefined && t.weight > 0) {\n total += funding * (t.weight);\n }\n }\n return total;\n}\n\nexport function computeMaxLeverage(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number {\n const allTokens = [...longTokens, ...shortTokens];\n if (allTokens.length === 0) return 0;\n let min = Infinity;\n for (const t of allTokens) {\n const lev = metadata.get(t.symbol)?.maxLeverage;\n if (lev !== undefined && lev < min) min = lev;\n }\n return min === Infinity ? 1 : min;\n}\n\nexport function computeBasketSnapshot(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): BasketSnapshot {\n return {\n weightedRatio: computeWeightedRatio(longTokens, shortTokens, metadata),\n priceRatio: computePriceRatio(longTokens, shortTokens, metadata),\n price: computePrice(longTokens, shortTokens, metadata),\n weightedRatio24hAgo: computeWeightedRatio24hAgo(longTokens, shortTokens, metadata),\n priceRatio24hAgo: computePriceRatio24hAgo(longTokens, shortTokens, metadata),\n price24hAgo: computePrice24hAgo(longTokens, shortTokens, metadata),\n netFundingRate: computeNetFundingRate(longTokens, shortTokens, metadata),\n maxLeverage: computeMaxLeverage(longTokens, shortTokens, metadata),\n };\n}\n","import axios from 'axios';\nimport { Chart } from './chart';\nimport {\n buildTokenMetadataMap,\n buildPriceMap,\n parsePerpMetas,\n parseAssetCtxs,\n type PriceMap,\n type TokenMetadataMap,\n type TokenMetadata,\n type UniverseAsset,\n type AllPerpMetasResponse,\n type PerpDexsResponse,\n} from '../user/positions/utils';\nimport type { HyperliquidWs } from '../ws/hyperliquid';\nimport type { PearWs } from '../ws/pear/pear-ws';\nimport type { MarketDataV2BasketDto } from '../api';\nimport { computeBasketSnapshot } from './utils';\nimport type { TokenSelection, BasketSnapshot, PickBasket } from './types';\n\ninterface BasketSub {\n longTokens: TokenSelection[];\n shortTokens: TokenSelection[];\n handler: (snapshot: BasketSnapshot) => void;\n}\n\nexport class MarketSubscriptions {\n public readonly chart: Chart;\n\n private hlWs: HyperliquidWs;\n private pearWs: PearWs;\n\n private perpMetasByDex: Map<string, UniverseAsset[]> | null = null;\n private metadata: TokenMetadataMap = new Map();\n private prices: PriceMap = new Map();\n private assetCtxsHandlerId: string | null = null;\n\n private instrumentHandler: ((data: TokenMetadata[]) => void) | null = null;\n private basketSubs = new Map<number, BasketSub>();\n private nextBasketId = 0;\n\n private picksHandler: ((data: PickBasket[]) => void) | null = null;\n private lastPicksData: MarketDataV2BasketDto[] = [];\n\n private onPricesUpdated: (() => void) | null = null;\n\n constructor(hlWs: HyperliquidWs, pearWs: PearWs) {\n this.hlWs = hlWs;\n this.pearWs = pearWs;\n this.chart = new Chart({ ws: hlWs });\n this.init();\n }\n\n private async init(): Promise<void> {\n try {\n const [metasRes, dexsRes] = await Promise.all([\n axios.post<AllPerpMetasResponse>('https://api.hyperliquid.xyz/info', { type: 'allPerpMetas' }),\n axios.post<PerpDexsResponse>('https://api.hyperliquid.xyz/info', { type: 'perpDexs' }),\n ]);\n\n const dexNames = dexsRes.data.map((d, i) =>\n i === 0 ? 'HYPERLIQUID' : (d?.name ?? `DEX_${i}`),\n );\n\n this.perpMetasByDex = parsePerpMetas(metasRes.data, dexNames);\n\n this.hlWs.subscribe('allDexsAssetCtxs', { type: 'allDexsAssetCtxs' });\n\n this.assetCtxsHandlerId = this.hlWs.addChannelHandler(\n 'allDexsAssetCtxs',\n (data) => {\n if (!this.perpMetasByDex) return;\n this.metadata = buildTokenMetadataMap(this.perpMetasByDex, parseAssetCtxs(data));\n this.prices = buildPriceMap(this.metadata);\n this.notifyInstrument();\n this.notifyBaskets();\n this.notifyPicks();\n this.onPricesUpdated?.();\n },\n );\n } catch {\n setTimeout(() => this.init(), 5000);\n }\n }\n\n getMetadata(): TokenMetadataMap {\n return this.metadata;\n }\n\n getPrices(): PriceMap {\n return this.prices;\n }\n\n setOnPricesUpdated(callback: () => void): void {\n this.onPricesUpdated = callback;\n }\n\n instrument(handler: (data: TokenMetadata[]) => void): () => void {\n this.instrumentHandler = handler;\n\n if (this.metadata.size > 0) {\n handler(Array.from(this.metadata.values()));\n }\n\n return () => {\n this.instrumentHandler = null;\n };\n }\n\n basket(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n handler: (snapshot: BasketSnapshot) => void,\n ): () => void {\n const id = ++this.nextBasketId;\n this.basketSubs.set(id, { longTokens, shortTokens, handler });\n\n if (this.metadata.size > 0) {\n handler(computeBasketSnapshot(longTokens, shortTokens, this.metadata));\n }\n\n return () => {\n this.basketSubs.delete(id);\n };\n }\n\n picks(handler: (data: PickBasket[]) => void): () => void {\n this.picksHandler = handler;\n\n this.pearWs.subscribe('market-data/v2', (data) => {\n this.lastPicksData = data.baskets || [];\n this.notifyPicks();\n });\n\n return () => {\n this.picksHandler = null;\n this.lastPicksData = [];\n this.pearWs.unsubscribe('market-data/v2');\n };\n }\n\n private notifyInstrument(): void {\n if (!this.instrumentHandler || this.metadata.size === 0) return;\n this.instrumentHandler(Array.from(this.metadata.values()));\n }\n\n private notifyBaskets(): void {\n if (this.metadata.size === 0) return;\n for (const sub of this.basketSubs.values()) {\n sub.handler(computeBasketSnapshot(sub.longTokens, sub.shortTokens, this.metadata));\n }\n }\n\n private notifyPicks(): void {\n if (!this.picksHandler || this.lastPicksData.length === 0) return;\n this.picksHandler(this.lastPicksData.map((b) => this.enrichBasket(b)));\n }\n\n private enrichBasket(b: MarketDataV2BasketDto): PickBasket {\n const longTokens: TokenSelection[] = b.longAssets.map((a) => ({\n symbol: a.asset,\n weight: a.weight,\n }));\n const shortTokens: TokenSelection[] = b.shortAssets.map((a) => ({\n symbol: a.asset,\n weight: a.weight,\n }));\n\n const snapshot = computeBasketSnapshot(longTokens, shortTokens, this.metadata);\n\n return {\n ...snapshot,\n longTokens,\n shortTokens,\n category: b.category,\n name: b.name,\n };\n }\n\n destroy(): void {\n this.chart.destroy();\n if (this.assetCtxsHandlerId) {\n this.hlWs.removeChannelHandler('allDexsAssetCtxs', this.assetCtxsHandlerId);\n this.assetCtxsHandlerId = null;\n }\n if (this.picksHandler) {\n this.pearWs.unsubscribe('market-data/v2');\n this.picksHandler = null;\n }\n this.instrumentHandler = null;\n this.basketSubs.clear();\n }\n}\n","import type { OpenOrderDto } from '../../api';\nimport type { EnrichedPositionDto } from '../positions/types';\n\nexport function enrichOrders(\n orders: OpenOrderDto[],\n positionsById: Map<string, EnrichedPositionDto>,\n): OpenOrderDto[] {\n return orders.map((ord) => {\n const isTpSl = ord.orderType === 'TP' || ord.orderType === 'SL';\n const hasAssets =\n (ord.longAssets?.length ?? 0) > 0 || (ord.shortAssets?.length ?? 0) > 0;\n const pos = positionsById.get(String(ord.positionId ?? ''));\n\n if (isTpSl && !hasAssets && pos) {\n return {\n ...ord,\n longAssets: pos.longAssets.map((a) => ({ asset: a.coin, weight: a.targetWeight })),\n shortAssets: pos.shortAssets.map((a) => ({ asset: a.coin, weight: a.targetWeight })),\n };\n }\n\n return ord;\n });\n}\n","import type { ClearinghouseState } from '../../ws/hyperliquid/types';\nimport type { RawPositionDto, EnrichedPositionDto } from './types';\nimport { OpenPositionProcessedDtoPearExecutionFlagEnum } from '../../api/generated';\nimport { getMarkPrice, getLeverage, calculateAsset, type PriceMap } from './utils';\n\nexport function buildPositionValue(\n rawPositions: RawPositionDto[],\n clearinghouseState: ClearinghouseState,\n prices: PriceMap,\n hideExternalPosition: boolean = true,\n): EnrichedPositionDto[] {\n return rawPositions\n .filter(\n (p) =>\n !p.longAssets.some((a) => a.coin.startsWith('#')) &&\n !p.shortAssets.some((a) => a.coin.startsWith('#')) &&\n (!hideExternalPosition || p.pearExecutionFlag !== OpenPositionProcessedDtoPearExecutionFlagEnum.FullyExternal),\n )\n .map((position) => {\n const result: EnrichedPositionDto = {\n positionId: position.positionId,\n address: position.address,\n pearExecutionFlag: position.pearExecutionFlag,\n stopLoss: position.stopLoss,\n takeProfit: position.takeProfit,\n entryRatio: 1,\n markRatio: 1,\n entryPositionValue: 0,\n positionValue: 0,\n marginUsed: 0,\n unrealizedPnl: 0,\n unrealizedPnlPercentage: 0,\n longAssets: [],\n shortAssets: [],\n createdAt: position.createdAt,\n updatedAt: position.updatedAt,\n };\n\n let entryMarginUsed = 0;\n\n const totalInitialSize =\n position.longAssets.reduce((acc, a) => acc + a.entryPrice * a.size, 0) +\n position.shortAssets.reduce((acc, a) => acc + a.entryPrice * a.size, 0);\n\n const totalCurrentSize =\n position.longAssets.reduce(\n (acc, a) => acc + getMarkPrice(a.coin, prices) * a.size, 0,\n ) +\n position.shortAssets.reduce(\n (acc, a) => acc + getMarkPrice(a.coin, prices) * a.size, 0,\n );\n\n result.longAssets = position.longAssets.map((asset) => {\n const currentPrice = getMarkPrice(asset.coin, prices);\n const leverage = getLeverage(asset.coin, asset.leverage ?? 1, clearinghouseState);\n\n const detail = calculateAsset(\n asset, currentPrice, totalInitialSize, totalCurrentSize, leverage, true,\n );\n\n result.entryPositionValue += detail.entryPositionValue;\n result.unrealizedPnl += detail.unrealizedPnl;\n result.positionValue += detail.positionValue;\n result.marginUsed += detail.marginUsed;\n entryMarginUsed += detail.entryMarginUsed;\n\n result.entryRatio *= Math.pow(asset.entryPrice, detail.targetWeight);\n result.markRatio *= Math.pow(currentPrice, detail.targetWeight);\n\n const { entryMarginUsed: _, ...assetDetail } = detail;\n return assetDetail;\n });\n\n result.shortAssets = position.shortAssets.map((asset) => {\n const currentPrice = getMarkPrice(asset.coin, prices);\n const leverage = getLeverage(asset.coin, asset.leverage ?? 1, clearinghouseState);\n\n const detail = calculateAsset(\n asset, currentPrice, totalInitialSize, totalCurrentSize, leverage, false,\n );\n\n result.entryPositionValue += detail.entryPositionValue;\n result.unrealizedPnl += detail.unrealizedPnl;\n result.positionValue += detail.positionValue;\n result.marginUsed += detail.marginUsed;\n entryMarginUsed += detail.entryMarginUsed;\n\n result.entryRatio *= Math.pow(asset.entryPrice, -detail.targetWeight);\n result.markRatio *= Math.pow(currentPrice, -detail.currentWeight);\n\n const { entryMarginUsed: _, ...assetDetail } = detail;\n return assetDetail;\n });\n\n result.positionValue = result.entryPositionValue + result.unrealizedPnl;\n\n if (position.longAssets.length === 1 && position.shortAssets.length === 1) {\n const long = position.longAssets[0];\n const short = position.shortAssets[0];\n const longMark = getMarkPrice(long.coin, prices);\n const shortMark = getMarkPrice(short.coin, prices);\n\n if (long.size > 0 && short.size > 0) {\n result.entryPriceRatio = long.entryPrice / short.entryPrice;\n result.markPriceRatio = longMark / shortMark;\n } else if (long.size > 0) {\n result.entryPriceRatio = long.entryPrice;\n result.markPriceRatio = longMark;\n } else if (short.size > 0) {\n result.entryPriceRatio = short.entryPrice;\n result.markPriceRatio = shortMark;\n }\n }\n\n if (position.longAssets.length === 1 && position.shortAssets.length === 0) {\n const long = position.longAssets[0];\n result.entryPriceRatio = long.entryPrice;\n result.markPriceRatio = getMarkPrice(long.coin, prices);\n }\n\n if (position.longAssets.length === 0 && position.shortAssets.length === 1) {\n const short = position.shortAssets[0];\n result.entryPriceRatio = short.entryPrice;\n result.markPriceRatio = getMarkPrice(short.coin, prices);\n }\n\n result.unrealizedPnlPercentage =\n entryMarginUsed > 0 ? result.unrealizedPnl / entryMarginUsed : 0;\n\n return result;\n });\n}\n","import axios from 'axios';\nimport type { PearApi } from '../api';\nimport type {\n OpenOrderDto,\n TradeHistoryDataDto,\n TwapMonitoringDto,\n AccountSummaryResponseDto,\n PositionsApi,\n} from '../api';\nimport { enrichOrders } from './orders/utils';\nimport type { RawPositionDto, EnrichedPositionDto } from './positions/types';\nimport { buildPositionValue } from './positions/processor';\nimport { aggregateClearinghouseStates, type PriceMap } from './positions/utils';\nimport type { PearWs } from '../ws/pear/pear-ws';\nimport type { NotificationDto } from '../ws/pear/types';\nimport type { HyperliquidWs } from '../ws/hyperliquid';\nimport type { ClearinghouseState } from '../ws/hyperliquid/types';\n\nexport class UserSubscriptions {\n private api: PearApi;\n private pearWs: PearWs;\n private hlWs: HyperliquidWs;\n private getPrices: () => PriceMap;\n\n private rawPositions: RawPositionDto[] | null = null;\n private clearinghouseState: ClearinghouseState | null = null;\n private enrichedPositions: EnrichedPositionDto[] | null = null;\n private positionHandler: ((data: EnrichedPositionDto[]) => void) | null = null;\n private chStateHandlerId: string | null = null;\n private hideExternalPosition: boolean = true;\n\n private rawOrders: OpenOrderDto[] | null = null;\n private orderHandler: ((data: OpenOrderDto[]) => void) | null = null;\n\n private getAddress: () => string | null;\n\n constructor(api: PearApi, pearWs: PearWs, hlWs: HyperliquidWs, getPrices: () => PriceMap, getAddress: () => string | null) {\n this.api = api;\n this.pearWs = pearWs;\n this.hlWs = hlWs;\n this.getPrices = getPrices;\n this.getAddress = getAddress;\n }\n\n static readonly BUILDER_ADDRESS = '0xa47d4d99191db54a4829cdf3de2417e527c3b042';\n\n async isBuilderApproved(): Promise<boolean> {\n const address = this.getAddress();\n if (!address) return false;\n const { data } = await axios.post<string[]>(\n 'https://api.hyperliquid.xyz/info',\n { type: 'approvedBuilders', user: address },\n );\n return data.some((addr) => addr.toLowerCase() === UserSubscriptions.BUILDER_ADDRESS);\n }\n\n async isAgentApproved(): Promise<boolean> {\n const address = this.getAddress();\n if (!address) return false;\n const [hlRes, pearRes] = await Promise.all([\n axios.post<{ address: string }[]>(\n 'https://api.hyperliquid.xyz/info',\n { type: 'extraAgents', user: address },\n ),\n this.api.private.agentWallet.get(),\n ]);\n\n const agentAddress = pearRes.data.agentWalletAddress.toLowerCase();\n return hlRes.data.some((agent) => agent.address.toLowerCase() === agentAddress);\n }\n\n positions(handler: (data: EnrichedPositionDto[]) => void, hideExternalPosition: boolean = true): () => void {\n this.positionHandler = handler;\n this.hideExternalPosition = hideExternalPosition;\n\n this.pearWs.subscribe('open-positions', (data) => {\n this.rawPositions = data;\n this.recomputePositions();\n });\n\n if (!this.chStateHandlerId) {\n this.chStateHandlerId = this.hlWs.addChannelHandler(\n 'allDexsClearinghouseState',\n (data) => {\n this.clearinghouseState = aggregateClearinghouseStates(data);\n this.recomputePositions();\n },\n );\n }\n\n return () => {\n this.positionHandler = null;\n };\n }\n\n orders(handler: (data: OpenOrderDto[]) => void): () => void {\n this.orderHandler = handler;\n\n this.pearWs.subscribe('open-orders', (data) => {\n this.rawOrders = data;\n this.recomputeOrders();\n });\n\n return () => {\n this.orderHandler = null;\n };\n }\n\n tradeHistories(handler: (data: TradeHistoryDataDto[]) => void): () => void {\n this.pearWs.subscribe('trade-histories', handler);\n return () => { this.pearWs.unsubscribe('trade-histories'); };\n }\n\n twapDetails(handler: (data: TwapMonitoringDto[]) => void): () => void {\n this.pearWs.subscribe('twap-details', handler);\n return () => { this.pearWs.unsubscribe('twap-details'); };\n }\n\n accountSummary(handler: (data: AccountSummaryResponseDto) => void): () => void {\n this.pearWs.subscribe('account-summary', handler);\n return () => { this.pearWs.unsubscribe('account-summary'); };\n }\n\n notifications(handler: (data: NotificationDto[]) => void): () => void {\n this.pearWs.subscribe('notifications', handler);\n return () => { this.pearWs.unsubscribe('notifications'); };\n }\n\n recomputePositions(): void {\n const prices = this.getPrices();\n if (!this.rawPositions || !this.clearinghouseState || prices.size === 0) return;\n this.enrichedPositions = buildPositionValue(this.rawPositions, this.clearinghouseState, prices, this.hideExternalPosition);\n this.positionHandler?.(this.enrichedPositions);\n this.recomputeOrders();\n }\n\n private recomputeOrders(): void {\n if (!this.orderHandler || !this.rawOrders) return;\n const positionsById = new Map<string, EnrichedPositionDto>();\n if (this.enrichedPositions) {\n for (const p of this.enrichedPositions) positionsById.set(p.positionId, p);\n }\n this.orderHandler(enrichOrders(this.rawOrders, positionsById));\n }\n}\n","import axios from 'axios';\nimport type { PearApi } from '../api';\nimport type { HyperliquidWs } from '../ws/hyperliquid';\nimport type { ClearinghouseState } from '../ws/hyperliquid/types';\nimport { aggregateClearinghouseStates } from './positions/utils';\n\ninterface HlFillDto {\n coin: string;\n px: string;\n sz: string;\n side: 'B' | 'A';\n time: number;\n dir: string;\n fee: string;\n builderFee?: string;\n startPosition?: string;\n oid?: string | number;\n tid?: string | number;\n cloid?: string | null;\n hash?: string | null;\n feeToken?: string | null;\n}\n\ninterface TwapSliceFillItem {\n fill: HlFillDto;\n}\n\nasync function fetchFills(user: string, startTime: number): Promise<HlFillDto[]> {\n const allFills: HlFillDto[] = [];\n const seenTids = new Set<string | number>();\n\n let cursor = startTime;\n let batchSize = 0;\n\n do {\n const { data: batch } = await axios.post<HlFillDto[]>(\n 'https://api.hyperliquid.xyz/info',\n { type: 'userFillsByTime', user, startTime: cursor, aggregateByTime: true },\n );\n batchSize = batch.length;\n\n for (const fill of batch) {\n if (fill.tid !== undefined && !seenTids.has(fill.tid)) {\n seenTids.add(fill.tid);\n allFills.push(fill);\n }\n }\n\n if (batchSize === 2000) {\n cursor = batch[batch.length - 1].time;\n }\n } while (batchSize === 2000);\n\n cursor = startTime;\n batchSize = 0;\n\n do {\n const { data: twapBatch } = await axios.post<TwapSliceFillItem[]>(\n 'https://api.hyperliquid.xyz/info',\n { type: 'userTwapSliceFillsByTime', user, startTime: cursor, aggregateByTime: true },\n );\n batchSize = twapBatch.length;\n\n for (const item of twapBatch) {\n const fill = item.fill;\n if (fill.tid !== undefined && !seenTids.has(fill.tid)) {\n seenTids.add(fill.tid);\n allFills.push(fill);\n }\n }\n\n if (batchSize === 2000) {\n cursor = twapBatch[twapBatch.length - 1].fill.time;\n }\n } while (batchSize === 2000);\n\n return allFills.sort((a, b) => a.time - b.time);\n}\n\nexport class FillsSyncer {\n private api: PearApi;\n private hlWs: HyperliquidWs;\n private address: string | null = null;\n private clearinghouseState: ClearinghouseState | null = null;\n private syncing = false;\n private userFillsHandlerId: string | null = null;\n private chStateHandlerId: string | null = null;\n private initialSyncDone = false;\n\n constructor(api: PearApi, hlWs: HyperliquidWs) {\n this.api = api;\n this.hlWs = hlWs;\n }\n\n start(address: string): void {\n this.stop();\n this.address = address.toLowerCase();\n this.initialSyncDone = false;\n\n this.hlWs.subscribe('userFills', {\n type: 'userFills',\n user: this.address,\n });\n\n this.userFillsHandlerId = this.hlWs.addChannelHandler('userFills', () => {\n this.sync();\n });\n\n this.chStateHandlerId = this.hlWs.addChannelHandler(\n 'allDexsClearinghouseState',\n (data) => {\n this.clearinghouseState = aggregateClearinghouseStates(data);\n\n if (!this.initialSyncDone && this.clearinghouseState) {\n this.initialSyncDone = true;\n this.sync();\n }\n },\n );\n }\n\n stop(): void {\n if (this.userFillsHandlerId) {\n this.hlWs.removeChannelHandler('userFills', this.userFillsHandlerId);\n this.userFillsHandlerId = null;\n }\n if (this.chStateHandlerId) {\n this.hlWs.removeChannelHandler('allDexsClearinghouseState', this.chStateHandlerId);\n this.chStateHandlerId = null;\n }\n if (this.address) {\n this.hlWs.unsubscribe('userFills');\n }\n this.address = null;\n this.clearinghouseState = null;\n this.initialSyncDone = false;\n }\n\n private async sync(): Promise<void> {\n if (this.syncing || !this.address || !this.clearinghouseState) return;\n if (!this.api.getAccessToken()) return;\n\n this.syncing = true;\n try {\n const { data: summary } = await this.api.private.accounts.summary();\n const startTime = summary.lastSyncedAt ? Number(summary.lastSyncedAt) + 1 : 0;\n\n const fills = await fetchFills(this.address, startTime);\n if (fills.length === 0) return;\n\n await this.api.private.sync.fills({\n user: this.address,\n fills: fills as any,\n assetPositions: this.clearinghouseState.assetPositions as any,\n });\n } catch {\n // retry on next userFills event\n } finally {\n this.syncing = false;\n }\n }\n}\n","import { WebSocket as ReconnectingWebSocket } from 'partysocket';\n\nexport interface PearTransport {\n readonly connected: boolean;\n send(data: string): void;\n addMessageListener(listener: (data: string) => void): string;\n removeMessageListener(id: string): void;\n addOpenListener(listener: () => void): string;\n removeOpenListener(id: string): void;\n}\n\nexport interface PearDefaultTransportConfig {\n url: string;\n maxReconnectionDelay?: number;\n minReconnectionDelay?: number;\n connectionTimeout?: number;\n}\n\nexport class PearDefaultTransport implements PearTransport {\n private ws: ReconnectingWebSocket;\n private messageListeners = new Map<string, (data: string) => void>();\n private openListeners = new Map<string, () => void>();\n private nextId = 0;\n\n constructor(config: PearDefaultTransportConfig) {\n this.ws = new ReconnectingWebSocket(config.url, [], {\n maxReconnectionDelay: config.maxReconnectionDelay ?? 30_000,\n minReconnectionDelay: config.minReconnectionDelay ?? 1_000,\n reconnectionDelayGrowFactor: 2,\n connectionTimeout: config.connectionTimeout ?? 10_000,\n });\n\n this.ws.addEventListener('open', () => {\n for (const listener of this.openListeners.values()) {\n try { listener(); } catch {}\n }\n });\n\n this.ws.addEventListener('message', (event: MessageEvent<string>) => {\n for (const listener of this.messageListeners.values()) {\n try { listener(event.data); } catch {}\n }\n });\n }\n\n get connected(): boolean {\n return this.ws.readyState === ReconnectingWebSocket.OPEN;\n }\n\n send(data: string): void {\n if (this.ws.readyState === ReconnectingWebSocket.OPEN) {\n this.ws.send(data);\n }\n }\n\n addMessageListener(listener: (data: string) => void): string {\n const id = String(++this.nextId);\n this.messageListeners.set(id, listener);\n return id;\n }\n\n removeMessageListener(id: string): void {\n this.messageListeners.delete(id);\n }\n\n addOpenListener(listener: () => void): string {\n const id = String(++this.nextId);\n this.openListeners.set(id, listener);\n return id;\n }\n\n removeOpenListener(id: string): void {\n this.openListeners.delete(id);\n }\n\n close(): void {\n this.ws.close();\n this.messageListeners.clear();\n this.openListeners.clear();\n }\n}\n","import type { PearTransport } from '../transport';\nimport type {\n PearWsChannel,\n PearWsChannelDataMap,\n PearWsDataMessage,\n ChannelHandler,\n} from './types';\n\nconst ADDRESS_SPECIFIC_CHANNELS = new Set<PearWsChannel>([\n 'trade-histories',\n 'open-positions',\n 'positions',\n 'account-summary',\n 'open-orders',\n 'twap-details',\n 'fills-checkpoint',\n 'notifications',\n 'trades',\n 'twap-trades',\n]);\n\nexport class PearWs {\n private transport: PearTransport;\n private handlers = new Map<PearWsChannel, ChannelHandler<any>>();\n private address: string | null = null;\n private messageListenerId: string | null = null;\n private openListenerId: string | null = null;\n\n constructor(transport: PearTransport) {\n this.transport = transport;\n this.messageListenerId = this.transport.addMessageListener((raw) => this.handleMessage(raw));\n this.openListenerId = this.transport.addOpenListener(() => this.resubscribeAll());\n }\n\n setAddress(address: string | null): void {\n const normalized = address?.toLowerCase() ?? null;\n if (normalized === this.address) return;\n\n const oldAddress = this.address;\n this.address = normalized;\n\n if (!this.transport.connected) return;\n\n const addressChannels = this.getActiveAddressChannels();\n if (addressChannels.length === 0) return;\n\n if (oldAddress) {\n this.sendToTransport({\n action: 'unsubscribe',\n address: oldAddress,\n channels: addressChannels,\n });\n }\n\n if (normalized) {\n this.sendToTransport({\n action: 'subscribe',\n address: normalized,\n channels: addressChannels,\n });\n }\n }\n\n subscribe<C extends PearWsChannel>(\n channel: C,\n handler: ChannelHandler<C>,\n ): void {\n const wasActive = this.handlers.has(channel);\n this.handlers.set(channel, handler as ChannelHandler<any>);\n\n if (!wasActive && this.transport.connected) {\n this.sendSubscribe([channel]);\n }\n }\n\n unsubscribe(channel: PearWsChannel): void {\n if (!this.handlers.has(channel)) return;\n\n this.handlers.delete(channel);\n\n if (this.transport.connected) {\n this.sendUnsubscribe([channel]);\n }\n }\n\n destroy(): void {\n if (this.messageListenerId) {\n this.transport.removeMessageListener(this.messageListenerId);\n this.messageListenerId = null;\n }\n if (this.openListenerId) {\n this.transport.removeOpenListener(this.openListenerId);\n this.openListenerId = null;\n }\n this.handlers.clear();\n this.address = null;\n }\n\n private handleMessage(raw: string): void {\n let parsed: any;\n try {\n parsed = JSON.parse(raw);\n } catch {\n return;\n }\n\n if (('success' in parsed || 'error' in parsed) && !('channel' in parsed)) {\n return;\n }\n\n if (!('channel' in parsed) || !('data' in parsed)) return;\n\n const msg = parsed as PearWsDataMessage;\n if (msg.data === null || msg.data === undefined) return;\n\n const handler = this.handlers.get(msg.channel);\n if (handler) {\n try {\n handler(msg.data as PearWsChannelDataMap[typeof msg.channel]);\n } catch {}\n }\n }\n\n private resubscribeAll(): void {\n if (this.handlers.size === 0) return;\n\n const globalChannels: PearWsChannel[] = [];\n const addressChannels: PearWsChannel[] = [];\n\n for (const ch of this.handlers.keys()) {\n if (ADDRESS_SPECIFIC_CHANNELS.has(ch)) {\n addressChannels.push(ch);\n } else {\n globalChannels.push(ch);\n }\n }\n\n if (globalChannels.length > 0) {\n this.sendToTransport({\n action: 'subscribe',\n channels: globalChannels,\n });\n }\n\n if (addressChannels.length > 0 && this.address) {\n this.sendToTransport({\n action: 'subscribe',\n address: this.address,\n channels: addressChannels,\n });\n }\n }\n\n private sendSubscribe(channels: PearWsChannel[]): void {\n const needsAddress = channels.some((ch) => ADDRESS_SPECIFIC_CHANNELS.has(ch));\n this.sendToTransport({\n action: 'subscribe',\n ...(needsAddress && this.address ? { address: this.address } : {}),\n channels,\n });\n }\n\n private sendUnsubscribe(channels: PearWsChannel[]): void {\n const needsAddress = channels.some((ch) => ADDRESS_SPECIFIC_CHANNELS.has(ch));\n this.sendToTransport({\n action: 'unsubscribe',\n ...(needsAddress && this.address ? { address: this.address } : {}),\n channels,\n });\n }\n\n private sendToTransport(msg: object): void {\n this.transport.send(JSON.stringify(msg));\n }\n\n private getActiveAddressChannels(): PearWsChannel[] {\n return Array.from(this.handlers.keys()).filter((ch) => ADDRESS_SPECIFIC_CHANNELS.has(ch));\n }\n}\n","import type { PearTransport } from '../transport';\nimport type {\n HyperliquidSubscription,\n HyperliquidChannel,\n HyperliquidChannelHandler,\n} from './types';\n\ninterface ActiveSubscription {\n channel: string;\n subscription: HyperliquidSubscription;\n}\n\nexport class HyperliquidWs {\n private transport: PearTransport;\n private subscriptions = new Map<string, ActiveSubscription>();\n private channelHandlers = new Map<string, Map<string, HyperliquidChannelHandler<any>>>();\n private messageListenerId: string | null = null;\n private openListenerId: string | null = null;\n private nextHandlerId = 0;\n\n constructor(transport: PearTransport) {\n this.transport = transport;\n }\n\n public get connected(): boolean {\n return this.transport.connected;\n }\n\n public start(): void {\n if (this.messageListenerId) return;\n\n this.messageListenerId = this.transport.addMessageListener((data: string) => {\n this.handleMessage(data);\n });\n\n this.openListenerId = this.transport.addOpenListener(() => {\n this.resubscribeAll();\n });\n\n if (this.transport.connected) {\n this.resubscribeAll();\n }\n }\n\n public stop(): void {\n if (this.messageListenerId) {\n this.transport.removeMessageListener(this.messageListenerId);\n this.messageListenerId = null;\n }\n\n if (this.openListenerId) {\n this.transport.removeOpenListener(this.openListenerId);\n this.openListenerId = null;\n }\n\n for (const [, sub] of this.subscriptions) {\n this.sendUnsubscribe(sub.subscription);\n }\n\n this.subscriptions.clear();\n }\n\n public subscribe(id: string, subscription: HyperliquidSubscription): void {\n if (this.subscriptions.has(id)) return;\n\n this.subscriptions.set(id, {\n channel: subscription.type,\n subscription,\n });\n\n if (this.transport.connected) {\n this.sendSubscribe(subscription);\n }\n }\n\n public unsubscribe(id: string): void {\n const sub = this.subscriptions.get(id);\n if (!sub) return;\n\n this.subscriptions.delete(id);\n if (this.transport.connected) {\n this.sendUnsubscribe(sub.subscription);\n }\n }\n\n public addChannelHandler<C extends HyperliquidChannel>(\n channel: C,\n handler: HyperliquidChannelHandler<C>,\n ): string {\n const handlerId = String(++this.nextHandlerId);\n let handlers = this.channelHandlers.get(channel);\n if (!handlers) {\n handlers = new Map();\n this.channelHandlers.set(channel, handlers);\n }\n handlers.set(handlerId, handler);\n return handlerId;\n }\n\n public removeChannelHandler(channel: HyperliquidChannel, handlerId: string): void {\n const handlers = this.channelHandlers.get(channel);\n if (handlers) {\n handlers.delete(handlerId);\n if (handlers.size === 0) {\n this.channelHandlers.delete(channel);\n }\n }\n }\n\n public destroy(): void {\n this.stop();\n this.channelHandlers.clear();\n }\n\n private handleMessage(raw: string): void {\n let msg: Record<string, unknown>;\n try {\n msg = JSON.parse(raw) as Record<string, unknown>;\n } catch {\n return;\n }\n\n const channel = msg.channel as string | undefined;\n if (!channel || !('data' in msg)) return;\n\n const handlers = this.channelHandlers.get(channel);\n if (!handlers) return;\n\n for (const handler of handlers.values()) {\n try {\n handler(msg.data);\n } catch {}\n }\n }\n\n private resubscribeAll(): void {\n for (const [, sub] of this.subscriptions) {\n this.sendSubscribe(sub.subscription);\n }\n }\n\n private sendSubscribe(subscription: HyperliquidSubscription): void {\n this.transport.send(JSON.stringify({ method: 'subscribe', subscription }));\n }\n\n private sendUnsubscribe(subscription: HyperliquidSubscription): void {\n this.transport.send(JSON.stringify({ method: 'unsubscribe', subscription }));\n }\n}\n","import { PearApi } from './api';\nimport { MarketSubscriptions } from './market/subscriptions';\nimport { UserSubscriptions } from './user';\nimport { FillsSyncer } from './user/sync';\nimport { PearDefaultTransport } from './ws/transport';\nimport { PearWs } from './ws/pear/pear-ws';\nimport { HyperliquidWs } from './ws/hyperliquid';\n\nexport class PearSdk {\n public readonly api: PearApi;\n public readonly pear: PearWs;\n public readonly hyperliquid: HyperliquidWs;\n public readonly market: MarketSubscriptions;\n public readonly user: UserSubscriptions;\n\n private pearTransport: PearDefaultTransport;\n private hlTransport: PearDefaultTransport;\n private syncer: FillsSyncer;\n private address: string | null = null;\n\n constructor() {\n this.api = new PearApi();\n\n this.pearTransport = new PearDefaultTransport({\n url: 'wss://hl-v2.pearprotocol.io/ws',\n });\n\n this.hlTransport = new PearDefaultTransport({\n url: 'wss://api.hyperliquid.xyz/ws',\n });\n\n this.pear = new PearWs(this.pearTransport);\n\n this.hyperliquid = new HyperliquidWs(this.hlTransport);\n this.hyperliquid.start();\n\n this.market = new MarketSubscriptions(this.hyperliquid, this.pear);\n this.user = new UserSubscriptions(\n this.api,\n this.pear,\n this.hyperliquid,\n () => this.market.getPrices(),\n () => this.address,\n );\n this.syncer = new FillsSyncer(this.api, this.hyperliquid);\n\n this.market.setOnPricesUpdated(() => {\n this.user.recomputePositions();\n });\n }\n\n setAddress(address: string): void {\n const normalized = address.toLowerCase();\n this.address = normalized;\n this.pear.setAddress(normalized);\n\n this.hyperliquid.subscribe('allDexsClearinghouseState', {\n type: 'allDexsClearinghouseState',\n user: normalized,\n });\n\n this.syncer.start(normalized);\n }\n\n destroy(): void {\n this.syncer.stop();\n this.market.destroy();\n this.pear.destroy();\n this.hyperliquid.destroy();\n this.pearTransport.close();\n this.hlTransport.close();\n }\n}\n","import type {\n AccountSummaryResponseDto,\n ActiveAssetsResponse,\n MarketDataV2Response,\n OpenOrderDto,\n OpenPositionProcessedDto,\n PairAssetDto,\n TradeHistoryDataDto,\n TwapMonitoringDto,\n} from '../../api';\nimport type { RawPositionDto } from '../../user/positions/types';\n\nexport type PearWsChannel =\n | 'trade-histories'\n | 'open-positions'\n | 'positions'\n | 'account-summary'\n | 'open-orders'\n | 'twap-details'\n | 'fills-checkpoint'\n | 'notifications'\n | 'trades'\n | 'twap-trades'\n | 'trades-all'\n | 'twap-trades-all'\n | 'market-data'\n | 'market-data/v2';\n\nexport interface TradeEventDto {\n side: 'OPEN' | 'CLOSE';\n longAssets: PairAssetDto[];\n shortAssets: PairAssetDto[];\n usdValue: number;\n leverage?: number;\n}\n\nexport interface TwapTradeEventDto extends TradeEventDto {\n interval: number;\n sizePerExecution: number;\n duration: number;\n}\n\nexport interface PearWsChannelDataMap {\n 'trade-histories': TradeHistoryDataDto[];\n 'open-positions': RawPositionDto[];\n 'positions': OpenPositionProcessedDto[];\n 'account-summary': AccountSummaryResponseDto;\n 'open-orders': OpenOrderDto[];\n 'twap-details': TwapMonitoringDto[];\n 'fills-checkpoint': Record<string, unknown>;\n 'notifications': NotificationDto[];\n 'trades': TradeEventDto;\n 'twap-trades': TwapTradeEventDto;\n 'trades-all': TradeEventDto & { address: string };\n 'twap-trades-all': TwapTradeEventDto & { address: string };\n 'market-data': ActiveAssetsResponse;\n 'market-data/v2': MarketDataV2Response;\n}\n\nexport interface PearWsDataMessage<C extends PearWsChannel = PearWsChannel> {\n channel: C;\n data: PearWsChannelDataMap[C];\n}\n\nexport interface PearWsSubscribeMessage {\n action: 'subscribe';\n address?: string;\n channels: PearWsChannel[];\n}\n\nexport interface PearWsUnsubscribeMessage {\n action: 'unsubscribe';\n address?: string;\n channels: PearWsChannel[];\n}\n\nexport type PearWsOutgoingMessage = PearWsSubscribeMessage | PearWsUnsubscribeMessage;\n\nexport interface PearWsSuccessResponse {\n success: true;\n message: string;\n subscribedChannels: string[];\n}\n\nexport interface PearWsErrorResponse {\n error: string;\n [key: string]: unknown;\n}\n\nexport type NotificationCategory =\n | 'TRADE_OPENED_OUTSIDE_PEAR'\n | 'TRADE_CLOSED_OUTSIDE_PEAR'\n | 'POSITION_LIQUIDATED'\n | 'LIMIT_ORDER_FILLED'\n | 'LIMIT_ORDER_FAILED'\n | 'TP_ORDER_FILLED'\n | 'TP_ORDER_FAILED'\n | 'SL_ORDER_FILLED'\n | 'SL_ORDER_FAILED'\n | 'TRIGGER_ORDER_FILLED'\n | 'TRIGGER_ORDER_FAILED';\n\nexport interface NotificationAsset {\n asset: string;\n side: 'LONG' | 'SHORT';\n weight?: number;\n}\n\nexport interface TradeOutsideNotificationParams {\n time: number;\n clientId: string;\n address: string;\n usd_value: number;\n assets: NotificationAsset[];\n}\n\nexport interface LiquidationNotificationParams {\n time: number;\n total_events: number;\n liquidation_assets: string[];\n}\n\nexport interface TpSlNotificationParams {\n order_id?: string;\n position_id: string;\n client_id: string;\n trigger_type: string;\n trigger_value: number | string | null;\n direction?: string | null;\n pnl_percentage: number;\n pnl_amount: number;\n current_position_value: number;\n error?: string;\n}\n\nexport type TriggerOrderType =\n | 'PRICE'\n | 'PRICE_RATIO'\n | 'WEIGHTED_RATIO'\n | 'CROSS_ASSET_PRICE'\n | 'PREDICTION_MARKET_OUTCOME'\n | 'BTC_DOM';\n\nexport interface TriggerOrderNotificationParams {\n order_id: string;\n client_id: string;\n order_type: string;\n trigger_type: TriggerOrderType;\n direction?: string | null;\n trigger_value: number | string | null;\n usd_value: number;\n leverage: number;\n assets: NotificationAsset[];\n asset_name?: string;\n market_code?: string;\n result?: string;\n current_btc_dominance?: number;\n error?: string;\n}\n\nexport type NotificationParams =\n | TradeOutsideNotificationParams\n | LiquidationNotificationParams\n | TpSlNotificationParams\n | TriggerOrderNotificationParams;\n\nexport interface NotificationDto {\n id: string;\n address: string;\n category: NotificationCategory;\n parameters: NotificationParams;\n is_read: boolean;\n created_at: string;\n updated_at: string;\n}\n\nexport type ChannelHandler<C extends PearWsChannel = PearWsChannel> = (\n data: PearWsChannelDataMap[C],\n) => void;\n\nexport enum ReadyState {\n CONNECTING = 0,\n OPEN = 1,\n CLOSING = 2,\n CLOSED = 3,\n}\n\nexport interface PearWsConfig {\n url: string;\n reconnect?: boolean;\n reconnectDelay?: number;\n maxReconnectAttempts?: number;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/api/errors.ts","../src/api/generated/base.ts","../src/api/generated/common.ts","../src/api/generated/api.ts","../src/api/generated/configuration.ts","../src/api/index.ts","../src/market/chart/utils.ts","../src/market/chart/cache/index.ts","../src/market/chart/candle-ws.ts","../src/market/chart/collector/fetch-candles.ts","../src/market/chart/collector/index.ts","../src/market/chart/compute/asset.ts","../src/market/chart/compute/performance.ts","../src/market/chart/compute/price-ratio.ts","../src/market/chart/compute/weighted-ratio.ts","../src/market/chart/chart.ts","../src/user/positions/utils.ts","../src/market/utils.ts","../src/market/subscriptions.ts","../src/user/orders/utils.ts","../src/user/positions/processor.ts","../src/user/subscriptions.ts","../src/user/sync.ts","../src/ws/transport.ts","../src/ws/pear/pear-ws.ts","../src/ws/hyperliquid/hyperliquid-ws.ts","../src/sdk.ts","../src/ws/pear/types.ts"],"names":["PearErrorCode","PearApiError","message","statusCode","code","originalError","BASE_PATH","BaseAPI","configuration","basePath","axios","globalAxios","RequiredError","field","msg","operationServerMap","DUMMY_BASE_URL","assertParamExists","functionName","paramName","paramValue","setBearerAuthToObject","object","accessToken","setFlattenedQueryParams","urlSearchParams","parameter","key","item","currentKey","setSearchParams","url","objects","searchParams","serializeDataIfNeeded","value","requestOptions","nonString","toPathString","createRequestFunction","axiosArgs","axiosRequestArgs","AdjustPositionRequestDtoAdjustmentTypeEnum","AdjustPositionRequestDtoExecutionTypeEnum","AdjustPositionResponseDtoAdjustmentTypeEnum","AuthenticateRequestDtoMethodEnum","BtcDomMetaDtoKindEnum","ClosePositionRequestDtoExecutionTypeEnum","ClosePositionRequestDtoTriggerTypeEnum","ClosePositionRequestDtoDirectionEnum","CreatePositionRequestDtoExecutionTypeEnum","CreatePositionRequestDtoTriggerTypeEnum","CreatePositionRequestDtoDirectionEnum","CreatePositionRequestDtoMarketSourceEnum","ExternalFillDtoSideEnum","MarketDataV2BasketDtoCategoryEnum","MarketTriggerMetaDtoKindEnum","MarketTriggerMetaDtoTypeEnum","MarketTriggerMetaDtoStatusEnum","OpenOrderDtoOrderTypeEnum","OpenOrderDtoStatusEnum","OpenPositionProcessedDtoPearExecutionFlagEnum","OracleValueDtoUnitEnum","RebalanceAssetPlanDtoSideEnum","SpotOrderResponseDtoStatusEnum","TpSlOrderParametersTriggerTypeEnum","TpSlThresholdTypeEnum","TriggerDtoCategoryEnum","TriggerDtoSourceEnum","TriggerOrderParametersTriggerTypeEnum","TriggerOrderParametersDirectionEnum","TriggerOrderParametersMarketSourceEnum","TwapChunkStatusDtoStatusEnum","TwapMonitoringDtoStatusEnum","APIKeysApiAxiosParamCreator","apiKeysControllerCreateApiKeyRequest","options","localVarPath","localVarUrlObj","baseOptions","localVarRequestOptions","localVarHeaderParameter","localVarQueryParameter","headersFromBaseOptions","APIKeysApiFp","localVarAxiosParamCreator","localVarAxiosArgs","localVarOperationServerIndex","localVarOperationServerBasePath","APIKeysApiFactory","localVarFp","request","APIKeysApi","AccountsApiAxiosParamCreator","AccountsApiFp","AccountsApiFactory","AccountsApi","AgentWalletApiAxiosParamCreator","AgentWalletApiFp","AgentWalletApiFactory","AgentWalletApi","AuthenticationApiAxiosParamCreator","authenticateRequestDto","address","clientId","chainId","logoutRequestDto","refreshTokenRequestDto","AuthenticationApiFp","AuthenticationApiFactory","AuthenticationApi","FillsApiAxiosParamCreator","assetName","isPearTrade","startTime","endTime","FillsApiFp","FillsApiFactory","FillsApi","HealthApiAxiosParamCreator","HealthApiFp","HealthApiFactory","HealthApi","LegacySupportApiAxiosParamCreator","period","startDate","endDate","timestamp","LegacySupportApiFp","LegacySupportApiFactory","LegacySupportApi","MarketsApiAxiosParamCreator","offset","page","pageSize","engine","minVolume","change24h","netFunding","searchText","sort","excludeText","active","MarketsApiFp","MarketsApiFactory","MarketsApi","NotificationsApiAxiosParamCreator","limit","markNotificationsReadDto","NotificationsApiFp","NotificationsApiFactory","NotificationsApi","OrdersApiAxiosParamCreator","orderId","status","orderType","category","search","cursor","spotOrderRequestDto","OrdersApiFp","OrdersApiFactory","OrdersApi","OrdersControllerGetAllOrdersStatusEnum","OrdersControllerGetAllOrdersOrderTypeEnum","OrdersControllerGetTriggersCategoryEnum","PortfolioApiAxiosParamCreator","interval","rollingWindowDays","includeSeries","PortfolioApiFp","PortfolioApiFactory","PortfolioApi","PortfolioControllerGetAnalyticsIntervalEnum","PositionsApiAxiosParamCreator","positionId","adjustAdvanceItemDto","adjustLeverageRequestDto","adjustPositionRequestDto","closePositionRequestDto","createPositionRequestDto","rebalancePositionRequestDto","updateRiskParametersRequestDto","PositionsApiFp","PositionsApiFactory","PositionsApi","PublicStatsApiAxiosParamCreator","addresses","startFrom","PublicStatsApiFp","PublicStatsApiFactory","PublicStatsApi","SyncApiAxiosParamCreator","syncFillsRequestDto","SyncApiFp","SyncApiFactory","SyncApi","TradeHistoryApiAxiosParamCreator","TradeHistoryApiFp","TradeHistoryApiFactory","TradeHistoryApi","VaultWalletApiAxiosParamCreator","createVaultWalletRequestDto","vaultAddress","name","swapAndTransferRequestDto","transferPerpToSpotRequestDto","transferSpotToPerpRequestDto","VaultWalletApiFp","VaultWalletApiFactory","VaultWalletApi","WatchlistApiAxiosParamCreator","toggleWatchlistDto","WatchlistApiFp","WatchlistApiFactory","WatchlistApi","Configuration","param","mime","jsonMime","DEFAULT_BASE_PATH","PearApi","config","body","response","params","error","originalRequest","resolve","reject","newToken","e","data","refreshErr","token","cb","ApiClass","refreshToken","createKey","symbol","getIntervalSeconds","mergeRanges","ranges","newRange","all","a","b","merged","last","createCandleLookups","tokenCandles","lookups","candles","lookup","candle","getCompleteTimestamps","candleLookups","requiredSymbols","baseSymbol","baseLookup","baseSize","size","result","ok","CandleCache","range","existing","sortedCandles","noDataBefore","existingTimes","c","newCandles","mergedCandles","oldestTime","latestTime","mergedRanges","tokenData","intervalMs","hasStartCoverage","hasEndCoverage","symbols","maxBoundary","boundary","HyperliquidCandleWs","ws","onCandle","_symbol","_interval","_candles","d","fetchHistoricalCandles","DataCollector","longTokens","shortTokens","prevInterval","latestCandle","id","allTokens","t","callback","emptyResult","tokensToFetch","cachedData","fetchPromises","allData","currentSymbols","computeAssetBars","computeRealtimeAssetBar","snapshot","computePerformanceCandles","empty","allSymbols","completeTimestamps","baselinePrices","firstTimestamp","initialPortfolioValue","longSet","bars","portfolioValue","missing","baselinePrice","allocation","priceRatio","computeRealtimePerformanceBar","time","computePriceRatioCandles","longSumO","longSumH","longSumL","longSumC","shortSumO","shortSumH","shortSumL","shortSumC","w","computeRealtimePriceRatioBar","pow","base","exponent","computeWeightedRatioCandles","longOpen","longHigh","longLow","longClose","shortOpen","shortHigh","shortLow","shortClose","computeRealtimeWeightedRatioBar","Chart","chartType","formatTokens","tokens","bar","buildTokenMetadataMap","perpMetasByDex","assetCtxsByDex","map","dexName","assets","ctxs","i","asset","ctx","markPrice","currentPrice","prevDayPrice","priceChange24h","buildPriceMap","metadataMap","prices","meta","parsePerpMetas","perpMetas","perpDexNames","parseAssetCtxs","dexKey","getMarkPrice","coin","getLiquidationPrice","clearinghouseState","px","p","parsed","getLeverage","fallback","calculateAsset","totalInitialSize","totalCurrentSize","leverage","isLong","liquidationPrice","entryNotional","currentNotional","effectiveLeverage","marginUsed","entryMarginUsed","unrealizedPnl","aggregateClearinghouseStates","states","s","sum","values","acc","v","toStr","n","computeWeightedRatio","metadata","ratio","price","computePriceRatio","longPrice","shortPrice","computePrice","computeWeightedRatio24hAgo","computePriceRatio24hAgo","computePrice24hAgo","computeNetFundingRate","total","funding","computeMaxLeverage","min","lev","computeBasketSnapshot","MarketSubscriptions","hlWs","pearWs","metasRes","dexsRes","dexNames","handler","sub","enrichOrders","orders","positionsById","ord","isTpSl","hasAssets","pos","buildPositionValue","rawPositions","hideExternalPosition","position","detail","_","assetDetail","long","short","longMark","shortMark","_UserSubscriptions","api","getPrices","getAddress","addr","hlRes","pearRes","agentAddress","agent","UserSubscriptions","fetchFills","user","allFills","seenTids","batchSize","batch","fill","twapBatch","FillsSyncer","summary","fills","PearDefaultTransport","ReconnectingWebSocket","listener","event","ADDRESS_SPECIFIC_CHANNELS","PearWs","transport","raw","normalized","oldAddress","addressChannels","channel","wasActive","globalChannels","ch","channels","needsAddress","HyperliquidWs","subscription","handlerId","handlers","PearSdk","ReadyState"],"mappings":"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","file":"index.js","sourcesContent":["export enum PearErrorCode {\n POSITION_NOT_FOUND = 'POSITION_NOT_FOUND',\n POSITION_NOT_OPEN = 'POSITION_NOT_OPEN',\n POSITION_UNAUTHORIZED = 'POSITION_UNAUTHORIZED',\n ORDER_NOT_FOUND = 'ORDER_NOT_FOUND',\n INVALID_ORDER_STATUS = 'INVALID_ORDER_STATUS',\n INVALID_ORDER_TYPE = 'INVALID_ORDER_TYPE',\n ACTIVE_TRADE_TIMEOUT = 'ACTIVE_TRADE_TIMEOUT',\n UNSUPPORTED_EXECUTION_TYPE = 'UNSUPPORTED_EXECUTION_TYPE',\n DUPLICATE_TRIGGER = 'DUPLICATE_TRIGGER',\n HL_CANCEL_FAILED = 'HL_CANCEL_FAILED',\n HL_INSUFFICIENT_MARGIN = 'HL_INSUFFICIENT_MARGIN',\n HL_AGENT_WALLET_REVOKED = 'HL_AGENT_WALLET_REVOKED',\n HL_TICK_SIZE = 'HL_TICK_SIZE',\n HL_MIN_TRADE_VALUE = 'HL_MIN_TRADE_VALUE',\n HL_REDUCE_ONLY = 'HL_REDUCE_ONLY',\n HL_POST_ONLY_WOULD_MATCH = 'HL_POST_ONLY_WOULD_MATCH',\n HL_IOC_NO_MATCH = 'HL_IOC_NO_MATCH',\n HL_BAD_TRIGGER_PRICE = 'HL_BAD_TRIGGER_PRICE',\n HL_NO_LIQUIDITY = 'HL_NO_LIQUIDITY',\n HL_OPEN_INTEREST_CAP = 'HL_OPEN_INTEREST_CAP',\n HL_OPEN_INTEREST_RATE = 'HL_OPEN_INTEREST_RATE',\n HL_INSUFFICIENT_SPOT_BALANCE = 'HL_INSUFFICIENT_SPOT_BALANCE',\n HL_PRICE_TOO_FAR_FROM_ORACLE = 'HL_PRICE_TOO_FAR_FROM_ORACLE',\n HL_MAX_POSITION_EXCEEDED = 'HL_MAX_POSITION_EXCEEDED',\n HL_ORDER_MISSING = 'HL_ORDER_MISSING',\n HL_ORDER_FAILED = 'HL_ORDER_FAILED',\n INVALID_ADDRESS = 'INVALID_ADDRESS',\n MISSING_REQUIRED_FIELD = 'MISSING_REQUIRED_FIELD',\n INVALID_FIELD_VALUE = 'INVALID_FIELD_VALUE',\n UNSUPPORTED_TRIGGER_TYPE = 'UNSUPPORTED_TRIGGER_TYPE',\n INVALID_POSITION_STRUCTURE = 'INVALID_POSITION_STRUCTURE',\n INVALID_LADDER_CONFIG = 'INVALID_LADDER_CONFIG',\n LADDER_CREATION_FAILED = 'LADDER_CREATION_FAILED',\n TWAP_DURATION_REQUIRED = 'TWAP_DURATION_REQUIRED',\n TWAP_INSUFFICIENT_VALUE = 'TWAP_INSUFFICIENT_VALUE',\n TWAP_CHUNK_SCHEDULING_FAILED = 'TWAP_CHUNK_SCHEDULING_FAILED',\n LEVERAGE_CONFIG_FAILED = 'LEVERAGE_CONFIG_FAILED',\n INVALID_RISK_PARAMETERS = 'INVALID_RISK_PARAMETERS',\n VAULT_WALLET_NOT_FOUND = 'VAULT_WALLET_NOT_FOUND',\n VAULT_UNAUTHORIZED = 'VAULT_UNAUTHORIZED',\n VAULT_UNSUPPORTED_TOKEN = 'VAULT_UNSUPPORTED_TOKEN',\n VAULT_MISSING_CONFIG = 'VAULT_MISSING_CONFIG',\n INVALID_NOTIFICATION_PARAMS = 'INVALID_NOTIFICATION_PARAMS',\n INTERNAL_ERROR = 'INTERNAL_ERROR',\n NETWORK_ERROR = 'NETWORK_ERROR',\n UNKNOWN = 'UNKNOWN',\n}\n\nexport class PearApiError extends Error {\n constructor(\n message: string,\n public readonly statusCode: number,\n public readonly code: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = 'PearApiError';\n }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Pear Protocol Trading API\n * API for managing pair trading positions and orders on the Pear Protocol platform for Hyperliquid Engine.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: dev@pearprotocol.io\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport type { Configuration } from './configuration';\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';\nimport globalAxios from 'axios';\n\nexport const BASE_PATH = \"https://hl-v2.pearprotocol.io\".replace(/\\/+$/, \"\");\n\n/**\n *\n * @export\n */\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\n/**\n *\n * @export\n * @interface RequestArgs\n */\nexport interface RequestArgs {\n url: string;\n options: RawAxiosRequestConfig;\n}\n\n/**\n *\n * @export\n * @class BaseAPI\n */\nexport class BaseAPI {\n protected configuration: Configuration | undefined;\n\n constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {\n if (configuration) {\n this.configuration = configuration;\n this.basePath = configuration.basePath ?? basePath;\n }\n }\n};\n\n/**\n *\n * @export\n * @class RequiredError\n * @extends {Error}\n */\nexport class RequiredError extends Error {\n constructor(public field: string, msg?: string) {\n super(msg);\n this.name = \"RequiredError\"\n }\n}\n\ninterface ServerMap {\n [key: string]: {\n url: string,\n description: string,\n }[];\n}\n\n/**\n *\n * @export\n */\nexport const operationServerMap: ServerMap = {\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Pear Protocol Trading API\n * API for managing pair trading positions and orders on the Pear Protocol platform for Hyperliquid Engine.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: dev@pearprotocol.io\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport type { Configuration } from \"./configuration\";\nimport type { RequestArgs } from \"./base\";\nimport type { AxiosInstance, AxiosResponse } from 'axios';\nimport { RequiredError } from \"./base\";\n\n/**\n *\n * @export\n */\nexport const DUMMY_BASE_URL = 'https://example.com'\n\n/**\n *\n * @throws {RequiredError}\n * @export\n */\nexport const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {\n if (paramValue === null || paramValue === undefined) {\n throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);\n }\n}\n\n/**\n *\n * @export\n */\nexport const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {\n if (configuration && configuration.apiKey) {\n const localVarApiKeyValue = typeof configuration.apiKey === 'function'\n ? await configuration.apiKey(keyParamName)\n : await configuration.apiKey;\n object[keyParamName] = localVarApiKeyValue;\n }\n}\n\n/**\n *\n * @export\n */\nexport const setBasicAuthToObject = function (object: any, configuration?: Configuration) {\n if (configuration && (configuration.username || configuration.password)) {\n object[\"auth\"] = { username: configuration.username, password: configuration.password };\n }\n}\n\n/**\n *\n * @export\n */\nexport const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {\n if (configuration && configuration.accessToken) {\n const accessToken = typeof configuration.accessToken === 'function'\n ? await configuration.accessToken()\n : await configuration.accessToken;\n object[\"Authorization\"] = \"Bearer \" + accessToken;\n }\n}\n\n/**\n *\n * @export\n */\nexport const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {\n if (configuration && configuration.accessToken) {\n const localVarAccessTokenValue = typeof configuration.accessToken === 'function'\n ? await configuration.accessToken(name, scopes)\n : await configuration.accessToken;\n object[\"Authorization\"] = \"Bearer \" + localVarAccessTokenValue;\n }\n}\n\nfunction setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: any, key: string = \"\"): void {\n if (parameter == null) return;\n if (typeof parameter === \"object\") {\n if (Array.isArray(parameter)) {\n (parameter as any[]).forEach(item => setFlattenedQueryParams(urlSearchParams, item, key));\n }\n else {\n Object.keys(parameter).forEach(currentKey =>\n setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`)\n );\n }\n }\n else {\n if (urlSearchParams.has(key)) {\n urlSearchParams.append(key, parameter);\n }\n else {\n urlSearchParams.set(key, parameter);\n }\n }\n}\n\n/**\n *\n * @export\n */\nexport const setSearchParams = function (url: URL, ...objects: any[]) {\n const searchParams = new URLSearchParams(url.search);\n setFlattenedQueryParams(searchParams, objects);\n url.search = searchParams.toString();\n}\n\n/**\n *\n * @export\n */\nexport const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {\n const nonString = typeof value !== 'string';\n const needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(requestOptions.headers['Content-Type'])\n : nonString;\n return needsSerialization\n ? JSON.stringify(value !== undefined ? value : {})\n : (value || \"\");\n}\n\n/**\n *\n * @export\n */\nexport const toPathString = function (url: URL) {\n return url.pathname + url.search + url.hash\n}\n\n/**\n *\n * @export\n */\nexport const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {\n return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...axiosArgs.options, url: (axios.defaults.baseURL ? '' : configuration?.basePath ?? basePath) + axiosArgs.url};\n return axios.request<T, R>(axiosRequestArgs);\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Pear Protocol Trading API\n * API for managing pair trading positions and orders on the Pear Protocol platform for Hyperliquid Engine.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: dev@pearprotocol.io\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport type { Configuration } from './configuration';\nimport type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';\nimport globalAxios from 'axios';\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';\nimport type { RequestArgs } from './base';\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS, BaseAPI, RequiredError, operationServerMap } from './base';\n\n/**\n * \n * @export\n * @interface AccountSummaryResponseDto\n */\nexport interface AccountSummaryResponseDto {\n /**\n * Agent wallet address\n * @type {string}\n * @memberof AccountSummaryResponseDto\n */\n 'agentWalletAddress': string;\n /**\n * Total number of closed trades\n * @type {number}\n * @memberof AccountSummaryResponseDto\n */\n 'totalClosedTrades': number;\n /**\n * Total USD value of open trigger orders\n * @type {number}\n * @memberof AccountSummaryResponseDto\n */\n 'totalTriggerOrderUsdValue'?: number;\n /**\n * Total USD value of open TWAP chunks\n * @type {number}\n * @memberof AccountSummaryResponseDto\n */\n 'totalTwapChunkUsdValue'?: number;\n /**\n * Last synced timestamp in milliseconds\n * @type {number}\n * @memberof AccountSummaryResponseDto\n */\n 'lastSyncedAt'?: number;\n}\n/**\n * \n * @export\n * @interface ActiveAssetGroupItem\n */\nexport interface ActiveAssetGroupItem {\n /**\n * Unique identifier for the order group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'key': string;\n /**\n * Distinct long assets in the order group with weights\n * @type {Array<PairAssetDto>}\n * @memberof ActiveAssetGroupItem\n */\n 'longAssets': Array<PairAssetDto>;\n /**\n * Distinct short assets in the order group with weights\n * @type {Array<PairAssetDto>}\n * @memberof ActiveAssetGroupItem\n */\n 'shortAssets': Array<PairAssetDto>;\n /**\n * Open interest in USD for all assets in this group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'openInterest': string;\n /**\n * 24h traded volume in USD for this order group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'volume': string;\n /**\n * Current long/short ratio for this group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'ratio'?: string;\n /**\n * Previous day long/short ratio for this group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'prevRatio'?: string;\n /**\n * 24h change as decimal (e.g. 0.05 = +5%)\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'change24h'?: string;\n /**\n * Weighted (synthetic 50/50) current ratio for this group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'weightedRatio'?: string;\n /**\n * Weighted (synthetic 50/50) previous day ratio for this group\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'weightedPrevRatio'?: string;\n /**\n * Weighted (synthetic 50/50) 24h change as decimal\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'weightedChange24h'?: string;\n /**\n * Net funding for the basket, weighted by allocation (longs negative, shorts positive)\n * @type {string}\n * @memberof ActiveAssetGroupItem\n */\n 'netFunding': string;\n}\n/**\n * \n * @export\n * @interface ActiveAssetsResponse\n */\nexport interface ActiveAssetsResponse {\n /**\n * List of actively traded order-asset groups\n * @type {Array<ActiveAssetGroupItem>}\n * @memberof ActiveAssetsResponse\n */\n 'active': Array<ActiveAssetGroupItem>;\n /**\n * Top gaining long/short pairs over 24h\n * @type {Array<ActiveAssetGroupItem>}\n * @memberof ActiveAssetsResponse\n */\n 'topGainers': Array<ActiveAssetGroupItem>;\n /**\n * Top losing long/short pairs over 24h\n * @type {Array<ActiveAssetGroupItem>}\n * @memberof ActiveAssetsResponse\n */\n 'topLosers': Array<ActiveAssetGroupItem>;\n /**\n * Highlighted long/short pairs\n * @type {Array<ActiveAssetGroupItem>}\n * @memberof ActiveAssetsResponse\n */\n 'highlighted': Array<ActiveAssetGroupItem>;\n /**\n * User watchlist long/short pairs\n * @type {Array<ActiveAssetGroupItem>}\n * @memberof ActiveAssetsResponse\n */\n 'watchlist': Array<ActiveAssetGroupItem>;\n}\n/**\n * \n * @export\n * @interface AddressStatsItemDto\n */\nexport interface AddressStatsItemDto {\n /**\n * Wallet address\n * @type {string}\n * @memberof AddressStatsItemDto\n */\n 'address': string;\n /**\n * Total external fees paid (USD)\n * @type {number}\n * @memberof AddressStatsItemDto\n */\n 'totalExternalFeePaid': number;\n /**\n * Total builder fees paid (USD)\n * @type {number}\n * @memberof AddressStatsItemDto\n */\n 'totalBuilderFeePaid': number;\n /**\n * Total volume (size * price) in USD\n * @type {number}\n * @memberof AddressStatsItemDto\n */\n 'totalVolume': number;\n}\n/**\n * \n * @export\n * @interface AddressStatsResponseDto\n */\nexport interface AddressStatsResponseDto {\n /**\n * \n * @type {Array<AddressStatsItemDto>}\n * @memberof AddressStatsResponseDto\n */\n 'data': Array<AddressStatsItemDto>;\n}\n/**\n * \n * @export\n * @interface AdjustAdvanceAssetDto\n */\nexport interface AdjustAdvanceAssetDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof AdjustAdvanceAssetDto\n */\n 'asset': string;\n /**\n * Target absolute size for this asset\n * @type {number}\n * @memberof AdjustAdvanceAssetDto\n */\n 'size': number;\n}\n/**\n * \n * @export\n * @interface AdjustAdvanceItemDto\n */\nexport interface AdjustAdvanceItemDto {\n /**\n * Target long assets with absolute sizes\n * @type {Array<AdjustAdvanceAssetDto>}\n * @memberof AdjustAdvanceItemDto\n */\n 'longAssets': Array<AdjustAdvanceAssetDto>;\n /**\n * Target short assets with absolute sizes\n * @type {Array<AdjustAdvanceAssetDto>}\n * @memberof AdjustAdvanceItemDto\n */\n 'shortAssets': Array<AdjustAdvanceAssetDto>;\n}\n/**\n * \n * @export\n * @interface AdjustAdvanceResponseDto\n */\nexport interface AdjustAdvanceResponseDto {\n /**\n * Order identifier\n * @type {string}\n * @memberof AdjustAdvanceResponseDto\n */\n 'orderId': string;\n /**\n * Order status\n * @type {string}\n * @memberof AdjustAdvanceResponseDto\n */\n 'status': string;\n /**\n * Execution timestamp\n * @type {string}\n * @memberof AdjustAdvanceResponseDto\n */\n 'executedAt': string;\n}\n/**\n * \n * @export\n * @interface AdjustLeverageRequestDto\n */\nexport interface AdjustLeverageRequestDto {\n /**\n * Applied leverage\n * @type {number}\n * @memberof AdjustLeverageRequestDto\n */\n 'leverage': number;\n}\n/**\n * \n * @export\n * @interface AdjustPositionRequestDto\n */\nexport interface AdjustPositionRequestDto {\n /**\n * Type of position adjustment (reduce or increase)\n * @type {string}\n * @memberof AdjustPositionRequestDto\n */\n 'adjustmentType': AdjustPositionRequestDtoAdjustmentTypeEnum;\n /**\n * Percentage of position to adjust (1-100%)\n * @type {number}\n * @memberof AdjustPositionRequestDto\n */\n 'adjustmentSize': number;\n /**\n * Type of execution for the adjustment\n * @type {string}\n * @memberof AdjustPositionRequestDto\n */\n 'executionType': AdjustPositionRequestDtoExecutionTypeEnum;\n /**\n * Required if executionType is LIMIT\n * @type {number}\n * @memberof AdjustPositionRequestDto\n */\n 'limitRatio'?: number;\n /**\n * Referral code to be attached to user address if user has no referral code\n * @type {string}\n * @memberof AdjustPositionRequestDto\n */\n 'referralCode'?: string;\n}\n\nexport const AdjustPositionRequestDtoAdjustmentTypeEnum = {\n Reduce: 'REDUCE',\n Increase: 'INCREASE'\n} as const;\n\nexport type AdjustPositionRequestDtoAdjustmentTypeEnum = typeof AdjustPositionRequestDtoAdjustmentTypeEnum[keyof typeof AdjustPositionRequestDtoAdjustmentTypeEnum];\nexport const AdjustPositionRequestDtoExecutionTypeEnum = {\n Market: 'MARKET',\n Limit: 'LIMIT'\n} as const;\n\nexport type AdjustPositionRequestDtoExecutionTypeEnum = typeof AdjustPositionRequestDtoExecutionTypeEnum[keyof typeof AdjustPositionRequestDtoExecutionTypeEnum];\n\n/**\n * \n * @export\n * @interface AdjustPositionResponseDto\n */\nexport interface AdjustPositionResponseDto {\n /**\n * Unique identifier for the adjustment order\n * @type {string}\n * @memberof AdjustPositionResponseDto\n */\n 'orderId': string;\n /**\n * Status of the adjustment order\n * @type {string}\n * @memberof AdjustPositionResponseDto\n */\n 'status': string;\n /**\n * Type of adjustment that was made\n * @type {string}\n * @memberof AdjustPositionResponseDto\n */\n 'adjustmentType': AdjustPositionResponseDtoAdjustmentTypeEnum;\n /**\n * Percentage used for position adjustment\n * @type {number}\n * @memberof AdjustPositionResponseDto\n */\n 'adjustmentSize': number;\n /**\n * New position size after adjustment\n * @type {number}\n * @memberof AdjustPositionResponseDto\n */\n 'newSize': number;\n /**\n * Timestamp when the reduction was executed\n * @type {string}\n * @memberof AdjustPositionResponseDto\n */\n 'executedAt': string;\n}\n\nexport const AdjustPositionResponseDtoAdjustmentTypeEnum = {\n Reduce: 'REDUCE',\n Increase: 'INCREASE'\n} as const;\n\nexport type AdjustPositionResponseDtoAdjustmentTypeEnum = typeof AdjustPositionResponseDtoAdjustmentTypeEnum[keyof typeof AdjustPositionResponseDtoAdjustmentTypeEnum];\n\n/**\n * \n * @export\n * @interface ApiKeyAuthDetailsDto\n */\nexport interface ApiKeyAuthDetailsDto {\n /**\n * API key for authentication\n * @type {string}\n * @memberof ApiKeyAuthDetailsDto\n */\n 'apiKey': string;\n}\n/**\n * \n * @export\n * @interface ApiKeysControllerCreateApiKey201Response\n */\nexport interface ApiKeysControllerCreateApiKey201Response {\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerCreateApiKey201Response\n */\n 'id'?: string;\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerCreateApiKey201Response\n */\n 'apiKey'?: string;\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerCreateApiKey201Response\n */\n 'name'?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerCreateApiKey201Response\n */\n 'createdAt'?: string;\n}\n/**\n * \n * @export\n * @interface ApiKeysControllerCreateApiKeyRequest\n */\nexport interface ApiKeysControllerCreateApiKeyRequest {\n /**\n * Optional name for the API key\n * @type {string}\n * @memberof ApiKeysControllerCreateApiKeyRequest\n */\n 'name'?: string;\n}\n/**\n * \n * @export\n * @interface ApiKeysControllerGetUserApiKeys200Response\n */\nexport interface ApiKeysControllerGetUserApiKeys200Response {\n /**\n * \n * @type {Array<ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner>}\n * @memberof ApiKeysControllerGetUserApiKeys200Response\n */\n 'apiKeys'?: Array<ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner>;\n}\n/**\n * \n * @export\n * @interface ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner\n */\nexport interface ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner {\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner\n */\n 'id'?: string;\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner\n */\n 'name'?: string | null;\n /**\n * \n * @type {boolean}\n * @memberof ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner\n */\n 'isActive'?: boolean;\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner\n */\n 'lastUsedAt'?: string | null;\n /**\n * \n * @type {string}\n * @memberof ApiKeysControllerGetUserApiKeys200ResponseApiKeysInner\n */\n 'createdAt'?: string;\n}\n/**\n * \n * @export\n * @interface AssetAnalyticsDto\n */\nexport interface AssetAnalyticsDto {\n /**\n * Asset symbol (e.g. BTC)\n * @type {string}\n * @memberof AssetAnalyticsDto\n */\n 'asset': string;\n /**\n * \n * @type {MetricVariantDto}\n * @memberof AssetAnalyticsDto\n */\n 'realizedOnly': MetricVariantDto;\n /**\n * \n * @type {MetricVariantDto}\n * @memberof AssetAnalyticsDto\n */\n 'realizedPlusUnrealized': MetricVariantDto;\n /**\n * Unrealized PnL / max(1, days open)\n * @type {number}\n * @memberof AssetAnalyticsDto\n */\n 'unrealizedReturnPerDay': number | null;\n}\n/**\n * \n * @export\n * @interface AuthenticateRequestDto\n */\nexport interface AuthenticateRequestDto {\n /**\n * Authentication method\n * @type {string}\n * @memberof AuthenticateRequestDto\n */\n 'method': AuthenticateRequestDtoMethodEnum;\n /**\n * User wallet address\n * @type {string}\n * @memberof AuthenticateRequestDto\n */\n 'address': string;\n /**\n * Client identifier\n * @type {string}\n * @memberof AuthenticateRequestDto\n */\n 'clientId': string;\n /**\n * \n * @type {AuthenticateRequestDtoDetails}\n * @memberof AuthenticateRequestDto\n */\n 'details': AuthenticateRequestDtoDetails;\n}\n\nexport const AuthenticateRequestDtoMethodEnum = {\n Eip712: 'eip712',\n ApiKey: 'api_key',\n PrivyAccessToken: 'privy_access_token'\n} as const;\n\nexport type AuthenticateRequestDtoMethodEnum = typeof AuthenticateRequestDtoMethodEnum[keyof typeof AuthenticateRequestDtoMethodEnum];\n\n/**\n * @type AuthenticateRequestDtoDetails\n * Authentication method specific details\n * @export\n */\nexport type AuthenticateRequestDtoDetails = ApiKeyAuthDetailsDto | EIP712AuthDetailsDto | PrivyAuthDetailsDto;\n\n/**\n * \n * @export\n * @interface AuthenticateResponseDto\n */\nexport interface AuthenticateResponseDto {\n /**\n * JWT access token\n * @type {string}\n * @memberof AuthenticateResponseDto\n */\n 'accessToken': string;\n /**\n * Refresh token for obtaining new access tokens\n * @type {string}\n * @memberof AuthenticateResponseDto\n */\n 'refreshToken': string;\n /**\n * Token type\n * @type {string}\n * @memberof AuthenticateResponseDto\n */\n 'tokenType': string;\n /**\n * Token expiration time in seconds\n * @type {number}\n * @memberof AuthenticateResponseDto\n */\n 'expiresIn': number;\n /**\n * User wallet address\n * @type {string}\n * @memberof AuthenticateResponseDto\n */\n 'address': string;\n /**\n * Client identifier\n * @type {string}\n * @memberof AuthenticateResponseDto\n */\n 'clientId': string;\n}\n/**\n * \n * @export\n * @interface BtcDomMetaDto\n */\nexport interface BtcDomMetaDto {\n /**\n * \n * @type {string}\n * @memberof BtcDomMetaDto\n */\n 'kind': BtcDomMetaDtoKindEnum;\n /**\n * \n * @type {number}\n * @memberof BtcDomMetaDto\n */\n 'btcDominance': number;\n /**\n * \n * @type {number}\n * @memberof BtcDomMetaDto\n */\n 'ethDominance': number;\n /**\n * \n * @type {number}\n * @memberof BtcDomMetaDto\n */\n 'totalMarketCapUsd': number;\n /**\n * \n * @type {number}\n * @memberof BtcDomMetaDto\n */\n 'marketCapChange24hPercent': number;\n /**\n * Unix timestamp from CoinGecko\n * @type {number}\n * @memberof BtcDomMetaDto\n */\n 'updatedAt': number;\n}\n\nexport const BtcDomMetaDtoKindEnum = {\n PredictionMarket: 'prediction_market',\n Btcdom: 'btcdom'\n} as const;\n\nexport type BtcDomMetaDtoKindEnum = typeof BtcDomMetaDtoKindEnum[keyof typeof BtcDomMetaDtoKindEnum];\n\n/**\n * \n * @export\n * @interface CancelOrderResponseDto\n */\nexport interface CancelOrderResponseDto {\n /**\n * Order identifier\n * @type {string}\n * @memberof CancelOrderResponseDto\n */\n 'orderId': string;\n /**\n * Order status after cancellation\n * @type {string}\n * @memberof CancelOrderResponseDto\n */\n 'status': string;\n /**\n * Cancellation timestamp\n * @type {string}\n * @memberof CancelOrderResponseDto\n */\n 'cancelledAt': string;\n}\n/**\n * \n * @export\n * @interface CancelTwapResponseDto\n */\nexport interface CancelTwapResponseDto {\n /**\n * Order identifier that was cancelled\n * @type {string}\n * @memberof CancelTwapResponseDto\n */\n 'orderId': string;\n /**\n * Status of the cancellation operation\n * @type {string}\n * @memberof CancelTwapResponseDto\n */\n 'status': string;\n /**\n * Cancellation timestamp\n * @type {string}\n * @memberof CancelTwapResponseDto\n */\n 'cancelledAt': string;\n}\n/**\n * \n * @export\n * @interface ChunkFillDto\n */\nexport interface ChunkFillDto {\n /**\n * Fill identifier\n * @type {string}\n * @memberof ChunkFillDto\n */\n 'fillId': string;\n /**\n * Asset name\n * @type {string}\n * @memberof ChunkFillDto\n */\n 'assetName': string;\n /**\n * Fill price\n * @type {number}\n * @memberof ChunkFillDto\n */\n 'price': number;\n /**\n * Fill size\n * @type {number}\n * @memberof ChunkFillDto\n */\n 'size': number;\n /**\n * Fill execution timestamp\n * @type {string}\n * @memberof ChunkFillDto\n */\n 'executedAt': string;\n}\n/**\n * \n * @export\n * @interface CloseAllPositionsResponseDto\n */\nexport interface CloseAllPositionsResponseDto {\n /**\n * Results for each position close action\n * @type {Array<CloseAllPositionsResultDto>}\n * @memberof CloseAllPositionsResponseDto\n */\n 'results': Array<CloseAllPositionsResultDto>;\n}\n/**\n * \n * @export\n * @interface CloseAllPositionsResultDto\n */\nexport interface CloseAllPositionsResultDto {\n /**\n * Position identifier\n * @type {string}\n * @memberof CloseAllPositionsResultDto\n */\n 'positionId': string;\n /**\n * Whether the close action succeeded\n * @type {boolean}\n * @memberof CloseAllPositionsResultDto\n */\n 'success': boolean;\n /**\n * Order ID created for the close action\n * @type {string}\n * @memberof CloseAllPositionsResultDto\n */\n 'orderId'?: string;\n /**\n * Error message if the close action failed\n * @type {string}\n * @memberof CloseAllPositionsResultDto\n */\n 'error'?: string;\n}\n/**\n * \n * @export\n * @interface ClosePositionRequestDto\n */\nexport interface ClosePositionRequestDto {\n /**\n * Type of close order\n * @type {string}\n * @memberof ClosePositionRequestDto\n */\n 'executionType': ClosePositionRequestDtoExecutionTypeEnum;\n /**\n * TWAP duration in minutes - required if executionType is TWAP\n * @type {number}\n * @memberof ClosePositionRequestDto\n */\n 'twapDuration'?: number;\n /**\n * TWAP interval in seconds (time between close chunks). Defaults to 30 seconds if not provided.\n * @type {number}\n * @memberof ClosePositionRequestDto\n */\n 'twapIntervalSeconds'?: number;\n /**\n * Randomize TWAP execution times - optional for TWAP orders\n * @type {boolean}\n * @memberof ClosePositionRequestDto\n */\n 'randomizeExecution'?: boolean;\n /**\n * Trigger threshold for TRIGGER close orders\n * @type {string}\n * @memberof ClosePositionRequestDto\n */\n 'triggerValue'?: string;\n /**\n * Trigger type for TRIGGER close orders\n * @type {string}\n * @memberof ClosePositionRequestDto\n */\n 'triggerType'?: ClosePositionRequestDtoTriggerTypeEnum;\n /**\n * Direction for TRIGGER close orders\n * @type {string}\n * @memberof ClosePositionRequestDto\n */\n 'direction'?: ClosePositionRequestDtoDirectionEnum;\n /**\n * Referral code to be attached to user address if user has no referral code\n * @type {string}\n * @memberof ClosePositionRequestDto\n */\n 'referralCode'?: string;\n}\n\nexport const ClosePositionRequestDtoExecutionTypeEnum = {\n Market: 'MARKET',\n Twap: 'TWAP',\n Trigger: 'TRIGGER'\n} as const;\n\nexport type ClosePositionRequestDtoExecutionTypeEnum = typeof ClosePositionRequestDtoExecutionTypeEnum[keyof typeof ClosePositionRequestDtoExecutionTypeEnum];\nexport const ClosePositionRequestDtoTriggerTypeEnum = {\n Price: 'PRICE',\n PriceRatio: 'PRICE_RATIO',\n WeightedRatio: 'WEIGHTED_RATIO',\n Percentage: 'PERCENTAGE',\n Dollar: 'DOLLAR',\n PositionValue: 'POSITION_VALUE'\n} as const;\n\nexport type ClosePositionRequestDtoTriggerTypeEnum = typeof ClosePositionRequestDtoTriggerTypeEnum[keyof typeof ClosePositionRequestDtoTriggerTypeEnum];\nexport const ClosePositionRequestDtoDirectionEnum = {\n MoreThan: 'MORE_THAN',\n LessThan: 'LESS_THAN'\n} as const;\n\nexport type ClosePositionRequestDtoDirectionEnum = typeof ClosePositionRequestDtoDirectionEnum[keyof typeof ClosePositionRequestDtoDirectionEnum];\n\n/**\n * \n * @export\n * @interface ClosePositionResponseDto\n */\nexport interface ClosePositionResponseDto {\n /**\n * Unique identifier for the close order\n * @type {string}\n * @memberof ClosePositionResponseDto\n */\n 'orderId': string;\n /**\n * Execution time for the order\n * @type {string}\n * @memberof ClosePositionResponseDto\n */\n 'executionTime'?: string;\n /**\n * Created trigger order identifiers for TRIGGER close requests\n * @type {Array<string>}\n * @memberof ClosePositionResponseDto\n */\n 'orderIds'?: Array<string>;\n /**\n * Number of TWAP chunks scheduled (only for TWAP orders)\n * @type {number}\n * @memberof ClosePositionResponseDto\n */\n 'chunksScheduled'?: number;\n}\n/**\n * \n * @export\n * @interface CreateAgentWalletResponseDto\n */\nexport interface CreateAgentWalletResponseDto {\n /**\n * Newly created agent wallet address - user must approve this on Hyperliquid\n * @type {string}\n * @memberof CreateAgentWalletResponseDto\n */\n 'agentWalletAddress': string;\n /**\n * Next steps instruction for user\n * @type {string}\n * @memberof CreateAgentWalletResponseDto\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface CreatePositionRequestDto\n */\nexport interface CreatePositionRequestDto {\n /**\n * Slippage tolerance percentage (0.01 = 1%)\n * @type {number}\n * @memberof CreatePositionRequestDto\n */\n 'slippage': number;\n /**\n * Order execution type\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'executionType': CreatePositionRequestDtoExecutionTypeEnum;\n /**\n * Applied leverage\n * @type {number}\n * @memberof CreatePositionRequestDto\n */\n 'leverage': number;\n /**\n * Position size in USD\n * @type {number}\n * @memberof CreatePositionRequestDto\n */\n 'usdValue': number;\n /**\n * Long assets configuration - array of assets to go long on. Can be empty for short-only positions.\n * @type {Array<PairAssetDto>}\n * @memberof CreatePositionRequestDto\n */\n 'longAssets'?: Array<PairAssetDto>;\n /**\n * Short assets configuration - array of assets to go short on. Can be empty for long-only positions.\n * @type {Array<PairAssetDto>}\n * @memberof CreatePositionRequestDto\n */\n 'shortAssets'?: Array<PairAssetDto>;\n /**\n * Required trigger threshold for TRIGGER orders (price, dominance, ratios, etc.)\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'triggerValue'?: string;\n /**\n * Trigger type for TRIGGER orders (PRICE, PRICE_RATIO, WEIGHTED_RATIO, BTC_DOM, CROSS_ASSET_PRICE, PREDICTION_MARKET_OUTCOME)\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'triggerType'?: CreatePositionRequestDtoTriggerTypeEnum;\n /**\n * Direction for TRIGGER orders\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'direction'?: CreatePositionRequestDtoDirectionEnum;\n /**\n * Asset to monitor when triggerType is CROSS_ASSET_PRICE\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'assetName'?: string;\n /**\n * Market code to monitor when triggerType is PREDICTION_MARKET_OUTCOME\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'marketCode'?: string;\n /**\n * Market source for prediction market orders\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'marketSource'?: CreatePositionRequestDtoMarketSourceEnum;\n /**\n * TWAP duration in minutes (required for TWAP orders)\n * @type {number}\n * @memberof CreatePositionRequestDto\n */\n 'twapDuration'?: number;\n /**\n * TWAP interval in seconds (time between chunks). Defaults to 30 seconds if not provided.\n * @type {number}\n * @memberof CreatePositionRequestDto\n */\n 'twapIntervalSeconds'?: number;\n /**\n * Randomize TWAP execution timing\n * @type {boolean}\n * @memberof CreatePositionRequestDto\n */\n 'randomizeExecution'?: boolean;\n /**\n * Ladder order configuration\n * @type {LadderConfigDto}\n * @memberof CreatePositionRequestDto\n */\n 'ladderConfig'?: LadderConfigDto;\n /**\n * Stop loss trigger. PERCENTAGE: % change vs entry; DOLLAR: fixed USD change; POSITION_VALUE: % change of position value.\n * @type {TpSlThreshold}\n * @memberof CreatePositionRequestDto\n */\n 'stopLoss'?: TpSlThreshold | null;\n /**\n * Take profit trigger. PERCENTAGE: % change vs entry; DOLLAR: fixed USD change; POSITION_VALUE: % change of position value.\n * @type {TpSlThreshold}\n * @memberof CreatePositionRequestDto\n */\n 'takeProfit'?: TpSlThreshold | null;\n /**\n * Referral code to be attached to user address if user has no referral code\n * @type {string}\n * @memberof CreatePositionRequestDto\n */\n 'referralCode'?: string;\n}\n\nexport const CreatePositionRequestDtoExecutionTypeEnum = {\n Sync: 'SYNC',\n Market: 'MARKET',\n Trigger: 'TRIGGER',\n Twap: 'TWAP',\n Ladder: 'LADDER',\n Tp: 'TP',\n Sl: 'SL',\n SpotMarket: 'SPOT_MARKET',\n SpotLimit: 'SPOT_LIMIT',\n SpotTwap: 'SPOT_TWAP'\n} as const;\n\nexport type CreatePositionRequestDtoExecutionTypeEnum = typeof CreatePositionRequestDtoExecutionTypeEnum[keyof typeof CreatePositionRequestDtoExecutionTypeEnum];\nexport const CreatePositionRequestDtoTriggerTypeEnum = {\n Price: 'PRICE',\n PriceLimit: 'PRICE_LIMIT',\n PriceRatio: 'PRICE_RATIO',\n WeightedRatio: 'WEIGHTED_RATIO',\n BtcDom: 'BTC_DOM',\n CrossAssetPrice: 'CROSS_ASSET_PRICE',\n PredictionMarketOutcome: 'PREDICTION_MARKET_OUTCOME'\n} as const;\n\nexport type CreatePositionRequestDtoTriggerTypeEnum = typeof CreatePositionRequestDtoTriggerTypeEnum[keyof typeof CreatePositionRequestDtoTriggerTypeEnum];\nexport const CreatePositionRequestDtoDirectionEnum = {\n MoreThan: 'MORE_THAN',\n LessThan: 'LESS_THAN'\n} as const;\n\nexport type CreatePositionRequestDtoDirectionEnum = typeof CreatePositionRequestDtoDirectionEnum[keyof typeof CreatePositionRequestDtoDirectionEnum];\nexport const CreatePositionRequestDtoMarketSourceEnum = {\n Kalshi: 'KALSHI',\n Hyperliquid: 'HYPERLIQUID'\n} as const;\n\nexport type CreatePositionRequestDtoMarketSourceEnum = typeof CreatePositionRequestDtoMarketSourceEnum[keyof typeof CreatePositionRequestDtoMarketSourceEnum];\n\n/**\n * \n * @export\n * @interface CreatePositionResponseDto\n */\nexport interface CreatePositionResponseDto {\n /**\n * Unique identifier for the initial order\n * @type {string}\n * @memberof CreatePositionResponseDto\n */\n 'orderId': string;\n /**\n * Fills returned from Hyperliquid for the order\n * @type {Array<ExternalFillDto>}\n * @memberof CreatePositionResponseDto\n */\n 'fills'?: Array<ExternalFillDto>;\n}\n/**\n * \n * @export\n * @interface CreateVaultWalletRequestDto\n */\nexport interface CreateVaultWalletRequestDto {\n /**\n * Leader/owner address of the vault\n * @type {string}\n * @memberof CreateVaultWalletRequestDto\n */\n 'leader_address': string;\n /**\n * Name for the vault wallet\n * @type {string}\n * @memberof CreateVaultWalletRequestDto\n */\n 'name': string;\n /**\n * Description/about text for the vault wallet\n * @type {string}\n * @memberof CreateVaultWalletRequestDto\n */\n 'about'?: string;\n /**\n * Image URL for the vault wallet\n * @type {string}\n * @memberof CreateVaultWalletRequestDto\n */\n 'imageUrl': string;\n /**\n * Configuration ID for the vault from frontend (0-based index)\n * @type {number}\n * @memberof CreateVaultWalletRequestDto\n */\n 'configId': number;\n}\n/**\n * \n * @export\n * @interface CreateVaultWalletResponseDto\n */\nexport interface CreateVaultWalletResponseDto {\n /**\n * Unique identifier for the vault wallet\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'id': string;\n /**\n * Leader/owner address\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'leader_address': string;\n /**\n * Generated vault contract address from blockchain\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'vaultAddress': string;\n /**\n * Privy agent wallet address\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'agentAddress': string;\n /**\n * Whether the vault wallet is approved for trading\n * @type {boolean}\n * @memberof CreateVaultWalletResponseDto\n */\n 'isApproved': boolean;\n /**\n * Vault wallet name\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'name': string;\n /**\n * Vault wallet description/about\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'about': string;\n /**\n * Image URL for the vault wallet\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'imageUrl': string;\n /**\n * Transaction hash from vault creation\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'transactionHash': string;\n /**\n * Timestamp when the vault wallet was created\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'createdAt': string;\n /**\n * Success message\n * @type {string}\n * @memberof CreateVaultWalletResponseDto\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface EIP712AuthDetailsDto\n */\nexport interface EIP712AuthDetailsDto {\n /**\n * EIP712 signature\n * @type {string}\n * @memberof EIP712AuthDetailsDto\n */\n 'signature': string;\n /**\n * Unix timestamp used in the signed message\n * @type {number}\n * @memberof EIP712AuthDetailsDto\n */\n 'timestamp': number;\n /**\n * EIP-155 chain ID used in the EIP712 domain when signing. Optional; falls back to server default (EIP712_CHAIN_ID) for backward compatibility.\n * @type {number}\n * @memberof EIP712AuthDetailsDto\n */\n 'chainId'?: number;\n}\n/**\n * \n * @export\n * @interface ExternalFillDto\n */\nexport interface ExternalFillDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'coin': string;\n /**\n * Fill price\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'px': string;\n /**\n * Fill size\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'sz': string;\n /**\n * Side\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'side': ExternalFillDtoSideEnum;\n /**\n * Timestamp in ms\n * @type {number}\n * @memberof ExternalFillDto\n */\n 'time': number;\n /**\n * Direction (e.g. Open Long, Close Short)\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'dir': string;\n /**\n * Fee amount\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'fee': string;\n /**\n * Builder fee\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'builderFee'?: string;\n /**\n * Start position size\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'startPosition'?: string;\n /**\n * Order ID\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'oid'?: string;\n /**\n * Trade ID\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'tid'?: string;\n /**\n * Client order ID\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'cloid'?: string | null;\n /**\n * Transaction hash\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'hash'?: string | null;\n /**\n * Fee token\n * @type {string}\n * @memberof ExternalFillDto\n */\n 'feeToken'?: string | null;\n /**\n * Liquidation details\n * @type {ExternalLiquidationDto}\n * @memberof ExternalFillDto\n */\n 'liquidation'?: ExternalLiquidationDto | null;\n /**\n * Closed PnL\n * @type {object}\n * @memberof ExternalFillDto\n */\n 'closedPnl'?: object | null;\n /**\n * Whether fill crossed the spread\n * @type {object}\n * @memberof ExternalFillDto\n */\n 'crossed'?: object | null;\n /**\n * TWAP order ID\n * @type {object}\n * @memberof ExternalFillDto\n */\n 'twapId'?: object | null;\n}\n\nexport const ExternalFillDtoSideEnum = {\n B: 'B',\n A: 'A'\n} as const;\n\nexport type ExternalFillDtoSideEnum = typeof ExternalFillDtoSideEnum[keyof typeof ExternalFillDtoSideEnum];\n\n/**\n * \n * @export\n * @interface ExternalLiquidationDto\n */\nexport interface ExternalLiquidationDto {\n /**\n * Liquidated user address\n * @type {string}\n * @memberof ExternalLiquidationDto\n */\n 'liquidatedUser': string;\n /**\n * Mark price at liquidation\n * @type {string}\n * @memberof ExternalLiquidationDto\n */\n 'markPx': string;\n /**\n * Liquidation method\n * @type {string}\n * @memberof ExternalLiquidationDto\n */\n 'method': string;\n}\n/**\n * \n * @export\n * @interface FillItemDto\n */\nexport interface FillItemDto {\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'id': string;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'clientId': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'orderId': string;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'chunkId': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'externalOrderId': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'assetName': string;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'address': string;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'fillTime': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'side': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'dir': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'feeToken': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'cloid': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'tid': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'txHash': string | null;\n /**\n * \n * @type {number}\n * @memberof FillItemDto\n */\n 'price': number;\n /**\n * \n * @type {number}\n * @memberof FillItemDto\n */\n 'size': number;\n /**\n * \n * @type {number}\n * @memberof FillItemDto\n */\n 'externalFeePaid': number;\n /**\n * \n * @type {number}\n * @memberof FillItemDto\n */\n 'builderFeePaid': number;\n /**\n * \n * @type {boolean}\n * @memberof FillItemDto\n */\n 'isPearTrade': boolean;\n /**\n * \n * @type {boolean}\n * @memberof FillItemDto\n */\n 'isLiquidation': boolean;\n /**\n * \n * @type {number}\n * @memberof FillItemDto\n */\n 'liqMarkPx': number | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'liqMethod': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'liquidatedUser': string | null;\n /**\n * \n * @type {string}\n * @memberof FillItemDto\n */\n 'createdAt': string;\n}\n/**\n * \n * @export\n * @interface GetAgentWalletResponseDto\n */\nexport interface GetAgentWalletResponseDto {\n /**\n * Agent wallet address for Hyperliquid operations\n * @type {string}\n * @memberof GetAgentWalletResponseDto\n */\n 'agentWalletAddress': string;\n}\n/**\n * \n * @export\n * @interface GetBalancesResponseDto\n */\nexport interface GetBalancesResponseDto {\n /**\n * Spot account balances\n * @type {object}\n * @memberof GetBalancesResponseDto\n */\n 'spotBalances': object;\n /**\n * Perp account balances\n * @type {object}\n * @memberof GetBalancesResponseDto\n */\n 'perpBalances': object;\n /**\n * Total account value in USD\n * @type {string}\n * @memberof GetBalancesResponseDto\n */\n 'totalValue': string;\n}\n/**\n * \n * @export\n * @interface GetEIP712MessageResponseDto\n */\nexport interface GetEIP712MessageResponseDto {\n /**\n * EIP712 domain\n * @type {object}\n * @memberof GetEIP712MessageResponseDto\n */\n 'domain': object;\n /**\n * EIP712 types\n * @type {object}\n * @memberof GetEIP712MessageResponseDto\n */\n 'types': object;\n /**\n * Primary type for EIP712 signing\n * @type {string}\n * @memberof GetEIP712MessageResponseDto\n */\n 'primaryType': string;\n /**\n * Message to sign\n * @type {object}\n * @memberof GetEIP712MessageResponseDto\n */\n 'message': object;\n /**\n * Unix timestamp used in message\n * @type {number}\n * @memberof GetEIP712MessageResponseDto\n */\n 'timestamp': number;\n}\n/**\n * \n * @export\n * @interface GetVaultWalletResponseDto\n */\nexport interface GetVaultWalletResponseDto {\n /**\n * Unique identifier for the vault wallet\n * @type {string}\n * @memberof GetVaultWalletResponseDto\n */\n 'id': string;\n /**\n * Vault wallet address\n * @type {object}\n * @memberof GetVaultWalletResponseDto\n */\n 'vaultAddress': object;\n /**\n * Vault wallet address\n * @type {string}\n * @memberof GetVaultWalletResponseDto\n */\n 'leader_address': string;\n /**\n * Public address\n * @type {string}\n * @memberof GetVaultWalletResponseDto\n */\n 'agentAddress': string;\n /**\n * Whether the vault wallet is approved for trading\n * @type {boolean}\n * @memberof GetVaultWalletResponseDto\n */\n 'isApproved': boolean;\n /**\n * Timestamp when the vault wallet was created\n * @type {string}\n * @memberof GetVaultWalletResponseDto\n */\n 'createdAt': string;\n /**\n * Timestamp when the vault wallet was last updated\n * @type {string}\n * @memberof GetVaultWalletResponseDto\n */\n 'updatedAt': string;\n /**\n * Privy wallet ID for creating the signer\n * @type {string}\n * @memberof GetVaultWalletResponseDto\n */\n 'privyWalletId': string;\n /**\n * Vault wallet name\n * @type {object}\n * @memberof GetVaultWalletResponseDto\n */\n 'name'?: object | null;\n /**\n * Vault wallet description/about\n * @type {object}\n * @memberof GetVaultWalletResponseDto\n */\n 'about'?: object | null;\n /**\n * Image URL for the vault wallet\n * @type {object}\n * @memberof GetVaultWalletResponseDto\n */\n 'imageUrl'?: object | null;\n /**\n * Transaction hash from vault creation\n * @type {object}\n * @memberof GetVaultWalletResponseDto\n */\n 'transactionHash'?: object | null;\n}\n/**\n * \n * @export\n * @interface HealthControllerGetHealth200Response\n */\nexport interface HealthControllerGetHealth200Response {\n /**\n * \n * @type {string}\n * @memberof HealthControllerGetHealth200Response\n */\n 'status'?: string;\n /**\n * \n * @type {string}\n * @memberof HealthControllerGetHealth200Response\n */\n 'timestamp'?: string;\n /**\n * \n * @type {number}\n * @memberof HealthControllerGetHealth200Response\n */\n 'uptime'?: number;\n}\n/**\n * \n * @export\n * @interface KalshiTriggersResponseDto\n */\nexport interface KalshiTriggersResponseDto {\n /**\n * \n * @type {Array<TriggerDto>}\n * @memberof KalshiTriggersResponseDto\n */\n 'triggers': Array<TriggerDto>;\n /**\n * \n * @type {string}\n * @memberof KalshiTriggersResponseDto\n */\n 'nextCursor'?: string | null;\n}\n/**\n * \n * @export\n * @interface LadderConfigDto\n */\nexport interface LadderConfigDto {\n /**\n * Starting ratio for the ladder\n * @type {number}\n * @memberof LadderConfigDto\n */\n 'ratioStart': number;\n /**\n * Ending ratio for the ladder\n * @type {number}\n * @memberof LadderConfigDto\n */\n 'ratioEnd': number;\n /**\n * Number of levels in the ladder\n * @type {number}\n * @memberof LadderConfigDto\n */\n 'numberOfLevels': number;\n}\n/**\n * \n * @export\n * @interface LadderOrderParameters\n */\nexport interface LadderOrderParameters {\n /**\n * Leverage multiplier\n * @type {number}\n * @memberof LadderOrderParameters\n */\n 'leverage': number;\n /**\n * Order value in USD\n * @type {number}\n * @memberof LadderOrderParameters\n */\n 'usdValue': number;\n /**\n * Starting ratio\n * @type {number}\n * @memberof LadderOrderParameters\n */\n 'ratioStart': number;\n /**\n * Ending ratio\n * @type {number}\n * @memberof LadderOrderParameters\n */\n 'ratioEnd': number;\n /**\n * Number of ladder levels\n * @type {number}\n * @memberof LadderOrderParameters\n */\n 'numberOfLevels': number;\n /**\n * Whether this is a reduce-only order\n * @type {boolean}\n * @memberof LadderOrderParameters\n */\n 'reduceOnly'?: boolean;\n}\n/**\n * \n * @export\n * @interface LegacySupportControllerGetLegacyMetrics200Response\n */\nexport interface LegacySupportControllerGetLegacyMetrics200Response {\n /**\n * \n * @type {number}\n * @memberof LegacySupportControllerGetLegacyMetrics200Response\n */\n 'totalVolume'?: number;\n /**\n * \n * @type {number}\n * @memberof LegacySupportControllerGetLegacyMetrics200Response\n */\n 'totalUsers'?: number;\n /**\n * \n * @type {number}\n * @memberof LegacySupportControllerGetLegacyMetrics200Response\n */\n 'dailyVolume'?: number;\n /**\n * \n * @type {number}\n * @memberof LegacySupportControllerGetLegacyMetrics200Response\n */\n 'dailyFees'?: number;\n /**\n * \n * @type {number}\n * @memberof LegacySupportControllerGetLegacyMetrics200Response\n */\n 'totalFees'?: number;\n}\n/**\n * \n * @export\n * @interface LogoutRequestDto\n */\nexport interface LogoutRequestDto {\n /**\n * Refresh token to invalidate\n * @type {string}\n * @memberof LogoutRequestDto\n */\n 'refreshToken': string;\n}\n/**\n * \n * @export\n * @interface LogoutResponseDto\n */\nexport interface LogoutResponseDto {\n /**\n * Logout status message\n * @type {string}\n * @memberof LogoutResponseDto\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface MarkNotificationsReadDto\n */\nexport interface MarkNotificationsReadDto {\n /**\n * Notification id to mark as read (takes precedence if provided).\n * @type {string}\n * @memberof MarkNotificationsReadDto\n */\n 'id'?: string;\n /**\n * Unix timestamp in milliseconds. Marks notifications created at or before this time as read.\n * @type {number}\n * @memberof MarkNotificationsReadDto\n */\n 'timestamp'?: number;\n}\n/**\n * \n * @export\n * @interface MarketDataV2AssetDto\n */\nexport interface MarketDataV2AssetDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof MarketDataV2AssetDto\n */\n 'asset': string;\n /**\n * Weight allocation\n * @type {number}\n * @memberof MarketDataV2AssetDto\n */\n 'weight': number;\n}\n/**\n * \n * @export\n * @interface MarketDataV2BasketDto\n */\nexport interface MarketDataV2BasketDto {\n /**\n * Long assets with weights\n * @type {Array<MarketDataV2AssetDto>}\n * @memberof MarketDataV2BasketDto\n */\n 'longAssets': Array<MarketDataV2AssetDto>;\n /**\n * Short assets with weights\n * @type {Array<MarketDataV2AssetDto>}\n * @memberof MarketDataV2BasketDto\n */\n 'shortAssets': Array<MarketDataV2AssetDto>;\n /**\n * Basket category\n * @type {string}\n * @memberof MarketDataV2BasketDto\n */\n 'category': MarketDataV2BasketDtoCategoryEnum;\n /**\n * Optional basket name\n * @type {string}\n * @memberof MarketDataV2BasketDto\n */\n 'name'?: string;\n}\n\nexport const MarketDataV2BasketDtoCategoryEnum = {\n Active: 'active',\n Watchlist: 'watchlist',\n AiPicks: 'ai-picks'\n} as const;\n\nexport type MarketDataV2BasketDtoCategoryEnum = typeof MarketDataV2BasketDtoCategoryEnum[keyof typeof MarketDataV2BasketDtoCategoryEnum];\n\n/**\n * \n * @export\n * @interface MarketDataV2Response\n */\nexport interface MarketDataV2Response {\n /**\n * List of baskets\n * @type {Array<MarketDataV2BasketDto>}\n * @memberof MarketDataV2Response\n */\n 'baskets': Array<MarketDataV2BasketDto>;\n}\n/**\n * \n * @export\n * @interface MarketOrderParameters\n */\nexport interface MarketOrderParameters {\n /**\n * Leverage multiplier\n * @type {number}\n * @memberof MarketOrderParameters\n */\n 'leverage'?: number;\n /**\n * Order value in USD\n * @type {number}\n * @memberof MarketOrderParameters\n */\n 'usdValue': number;\n /**\n * Whether this is a reduce-only order\n * @type {boolean}\n * @memberof MarketOrderParameters\n */\n 'reduceOnly'?: boolean;\n}\n/**\n * \n * @export\n * @interface MarketTriggerMetaDto\n */\nexport interface MarketTriggerMetaDto {\n /**\n * \n * @type {string}\n * @memberof MarketTriggerMetaDto\n */\n 'kind': MarketTriggerMetaDtoKindEnum;\n /**\n * \n * @type {string}\n * @memberof MarketTriggerMetaDto\n */\n 'type': MarketTriggerMetaDtoTypeEnum;\n /**\n * \n * @type {string}\n * @memberof MarketTriggerMetaDto\n */\n 'title': string;\n /**\n * \n * @type {string}\n * @memberof MarketTriggerMetaDto\n */\n 'status'?: MarketTriggerMetaDtoStatusEnum | null;\n /**\n * ISO 8601 expiry time\n * @type {string}\n * @memberof MarketTriggerMetaDto\n */\n 'expiryTime'?: string | null;\n /**\n * \n * @type {string}\n * @memberof MarketTriggerMetaDto\n */\n 'imageUrl'?: string | null;\n /**\n * Kalshi total volume\n * @type {number}\n * @memberof MarketTriggerMetaDto\n */\n 'popularity'?: number | null;\n /**\n * \n * @type {Array<TriggerOutcomeDto>}\n * @memberof MarketTriggerMetaDto\n */\n 'outcomes': Array<TriggerOutcomeDto>;\n}\n\nexport const MarketTriggerMetaDtoKindEnum = {\n PredictionMarket: 'prediction_market',\n Btcdom: 'btcdom'\n} as const;\n\nexport type MarketTriggerMetaDtoKindEnum = typeof MarketTriggerMetaDtoKindEnum[keyof typeof MarketTriggerMetaDtoKindEnum];\nexport const MarketTriggerMetaDtoTypeEnum = {\n Binary: 'binary',\n Multi: 'multi'\n} as const;\n\nexport type MarketTriggerMetaDtoTypeEnum = typeof MarketTriggerMetaDtoTypeEnum[keyof typeof MarketTriggerMetaDtoTypeEnum];\nexport const MarketTriggerMetaDtoStatusEnum = {\n Open: 'open',\n Closed: 'closed',\n Settled: 'settled'\n} as const;\n\nexport type MarketTriggerMetaDtoStatusEnum = typeof MarketTriggerMetaDtoStatusEnum[keyof typeof MarketTriggerMetaDtoStatusEnum];\n\n/**\n * \n * @export\n * @interface MarketsGroupItem\n */\nexport interface MarketsGroupItem {\n /**\n * Distinct long assets in the order group with weights\n * @type {Array<PairAssetDto>}\n * @memberof MarketsGroupItem\n */\n 'longAssets': Array<PairAssetDto>;\n /**\n * Distinct short assets in the order group with weights\n * @type {Array<PairAssetDto>}\n * @memberof MarketsGroupItem\n */\n 'shortAssets': Array<PairAssetDto>;\n /**\n * Open interest in USD for all assets in this group\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'openInterest': string;\n /**\n * 24h traded volume in USD for this order group\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'volume': string;\n /**\n * Current long/short ratio for this group\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'ratio'?: string;\n /**\n * Previous day long/short ratio for this group\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'prevRatio'?: string;\n /**\n * 24h change as decimal (e.g. 0.05 = +5%)\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'change24h'?: string;\n /**\n * Weighted (synthetic 50/50) current ratio for this group\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'weightedRatio'?: string;\n /**\n * Weighted (synthetic 50/50) previous day ratio for this group\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'weightedPrevRatio'?: string;\n /**\n * Weighted (synthetic 50/50) 24h change as decimal\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'weightedChange24h'?: string;\n /**\n * Net funding for the basket, weighted by allocation (longs negative, shorts positive)\n * @type {string}\n * @memberof MarketsGroupItem\n */\n 'netFunding': string;\n}\n/**\n * \n * @export\n * @interface MarketsResponse\n */\nexport interface MarketsResponse {\n /**\n * List of active order-asset groups\n * @type {Array<MarketsGroupItem>}\n * @memberof MarketsResponse\n */\n 'markets': Array<MarketsGroupItem>;\n /**\n * Total number of markets (after filters)\n * @type {number}\n * @memberof MarketsResponse\n */\n 'total': number;\n /**\n * Page number for pagination\n * @type {number}\n * @memberof MarketsResponse\n */\n 'page': number;\n /**\n * Page size (items per page)\n * @type {number}\n * @memberof MarketsResponse\n */\n 'pageSize': number;\n /**\n * Total number of pages\n * @type {number}\n * @memberof MarketsResponse\n */\n 'totalPages': number;\n}\n/**\n * \n * @export\n * @interface MetricVariantDto\n */\nexport interface MetricVariantDto {\n /**\n * Absolute PnL in USD\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'pnlAbsolute': number;\n /**\n * PnL as decimal fraction of capital base (0.12 = 12%)\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'pnlPercent': number | null;\n /**\n * Fraction of profitable events (0.6 = 60%)\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'hitRate': number | null;\n /**\n * Gross profit / gross loss (absolute)\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'profitFactor': number | null;\n /**\n * Mean positive PnL value in USD\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'avgWinSize': number | null;\n /**\n * Mean negative PnL value in USD\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'avgLossSize': number | null;\n /**\n * Mean return of winning trades\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'avgReturnPerWin': number | null;\n /**\n * Mean return of losing trades\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'avgReturnPerLoss': number | null;\n /**\n * Maximum drawdown as decimal fraction\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'maxDrawdown': number | null;\n /**\n * Annualized Sharpe ratio (sqrt(365))\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'sharpeRatio': number | null;\n /**\n * Annualized Sortino ratio (sqrt(365))\n * @type {number}\n * @memberof MetricVariantDto\n */\n 'sortinoRatio': number | null;\n}\n/**\n * \n * @export\n * @interface OpenOrderDto\n */\nexport interface OpenOrderDto {\n /**\n * Order identifier\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'orderId': string;\n /**\n * User wallet address\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'address': string;\n /**\n * Client identifier\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'clientId': string | null;\n /**\n * Associated position identifier\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'positionId': string | null;\n /**\n * \n * @type {OpenOrderDtoParameters}\n * @memberof OpenOrderDto\n */\n 'parameters': OpenOrderDtoParameters;\n /**\n * Order type\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'orderType': OpenOrderDtoOrderTypeEnum;\n /**\n * Order status\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'status': OpenOrderDtoStatusEnum;\n /**\n * Long assets in the order\n * @type {Array<OrderAssetDto>}\n * @memberof OpenOrderDto\n */\n 'longAssets': Array<OrderAssetDto>;\n /**\n * Short assets in the order\n * @type {Array<OrderAssetDto>}\n * @memberof OpenOrderDto\n */\n 'shortAssets': Array<OrderAssetDto>;\n /**\n * Order creation timestamp\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'createdAt': string;\n /**\n * Last update timestamp\n * @type {string}\n * @memberof OpenOrderDto\n */\n 'updatedAt': string;\n}\n\nexport const OpenOrderDtoOrderTypeEnum = {\n Sync: 'SYNC',\n Market: 'MARKET',\n Trigger: 'TRIGGER',\n Twap: 'TWAP',\n Ladder: 'LADDER',\n Tp: 'TP',\n Sl: 'SL',\n SpotMarket: 'SPOT_MARKET',\n SpotLimit: 'SPOT_LIMIT',\n SpotTwap: 'SPOT_TWAP'\n} as const;\n\nexport type OpenOrderDtoOrderTypeEnum = typeof OpenOrderDtoOrderTypeEnum[keyof typeof OpenOrderDtoOrderTypeEnum];\nexport const OpenOrderDtoStatusEnum = {\n Open: 'OPEN',\n Processing: 'PROCESSING',\n Executed: 'EXECUTED',\n Cancelled: 'CANCELLED',\n Failed: 'FAILED',\n PartiallyFilled: 'PARTIALLY_FILLED'\n} as const;\n\nexport type OpenOrderDtoStatusEnum = typeof OpenOrderDtoStatusEnum[keyof typeof OpenOrderDtoStatusEnum];\n\n/**\n * @type OpenOrderDtoParameters\n * Order parameters (varies by order type)\n * @export\n */\nexport type OpenOrderDtoParameters = LadderOrderParameters | MarketOrderParameters | TpSlOrderParameters | TriggerOrderParameters | TwapOrderParameters;\n\n/**\n * \n * @export\n * @interface OpenPositionProcessedDto\n */\nexport interface OpenPositionProcessedDto {\n /**\n * Position identifier\n * @type {string}\n * @memberof OpenPositionProcessedDto\n */\n 'positionId': string;\n /**\n * User wallet address\n * @type {string}\n * @memberof OpenPositionProcessedDto\n */\n 'address': string;\n /**\n * Pear execution flag\n * @type {string}\n * @memberof OpenPositionProcessedDto\n */\n 'pearExecutionFlag': OpenPositionProcessedDtoPearExecutionFlagEnum;\n /**\n * Stop loss trigger\n * @type {TpSlThreshold}\n * @memberof OpenPositionProcessedDto\n */\n 'stopLoss': TpSlThreshold | null;\n /**\n * Take profit trigger\n * @type {TpSlThreshold}\n * @memberof OpenPositionProcessedDto\n */\n 'takeProfit': TpSlThreshold | null;\n /**\n * Weighted entry ratio\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'entryRatio': number;\n /**\n * Weighted mark ratio\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'markRatio': number;\n /**\n * Entry price ratio (only for 1 long x 1 short)\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'entryPriceRatio'?: number;\n /**\n * Mark price ratio (only for 1 long x 1 short)\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'markPriceRatio'?: number;\n /**\n * Total entry USD value\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'entryPositionValue': number;\n /**\n * Total current USD value\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'positionValue': number;\n /**\n * Total margin used\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'marginUsed': number;\n /**\n * Total unrealized PnL (USD)\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'unrealizedPnl': number;\n /**\n * Unrealized PnL percentage relative to margin used\n * @type {number}\n * @memberof OpenPositionProcessedDto\n */\n 'unrealizedPnlPercentage': number;\n /**\n * Long assets\n * @type {Array<PositionAssetDetailProcessedDto>}\n * @memberof OpenPositionProcessedDto\n */\n 'longAssets': Array<PositionAssetDetailProcessedDto>;\n /**\n * Short assets\n * @type {Array<PositionAssetDetailProcessedDto>}\n * @memberof OpenPositionProcessedDto\n */\n 'shortAssets': Array<PositionAssetDetailProcessedDto>;\n /**\n * Creation timestamp\n * @type {string}\n * @memberof OpenPositionProcessedDto\n */\n 'createdAt': string;\n /**\n * Last update timestamp\n * @type {string}\n * @memberof OpenPositionProcessedDto\n */\n 'updatedAt': string;\n}\n\nexport const OpenPositionProcessedDtoPearExecutionFlagEnum = {\n FullyPear: 'FULLY_PEAR',\n Partial: 'PARTIAL',\n FullyExternal: 'FULLY_EXTERNAL'\n} as const;\n\nexport type OpenPositionProcessedDtoPearExecutionFlagEnum = typeof OpenPositionProcessedDtoPearExecutionFlagEnum[keyof typeof OpenPositionProcessedDtoPearExecutionFlagEnum];\n\n/**\n * \n * @export\n * @interface OracleValueDto\n */\nexport interface OracleValueDto {\n /**\n * Latest oracle value\n * @type {number}\n * @memberof OracleValueDto\n */\n 'value': number;\n /**\n * Unit of the oracle value\n * @type {string}\n * @memberof OracleValueDto\n */\n 'unit': OracleValueDtoUnitEnum;\n}\n\nexport const OracleValueDtoUnitEnum = {\n Cent: 'cent',\n Percent: 'percent'\n} as const;\n\nexport type OracleValueDtoUnitEnum = typeof OracleValueDtoUnitEnum[keyof typeof OracleValueDtoUnitEnum];\n\n/**\n * \n * @export\n * @interface OrderAssetDto\n */\nexport interface OrderAssetDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof OrderAssetDto\n */\n 'asset': string;\n /**\n * Asset weight in order\n * @type {number}\n * @memberof OrderAssetDto\n */\n 'weight': number;\n /**\n * Order size in asset units\n * @type {string}\n * @memberof OrderAssetDto\n */\n 'size'?: string | null;\n /**\n * Filled size in asset units\n * @type {string}\n * @memberof OrderAssetDto\n */\n 'filledSize'?: string | null;\n}\n/**\n * \n * @export\n * @interface PaginatedOrdersResponseDto\n */\nexport interface PaginatedOrdersResponseDto {\n /**\n * List of orders\n * @type {Array<OpenOrderDto>}\n * @memberof PaginatedOrdersResponseDto\n */\n 'data': Array<OpenOrderDto>;\n /**\n * Total number of matching orders\n * @type {number}\n * @memberof PaginatedOrdersResponseDto\n */\n 'total': number;\n /**\n * Current page number\n * @type {number}\n * @memberof PaginatedOrdersResponseDto\n */\n 'page': number;\n /**\n * Items per page\n * @type {number}\n * @memberof PaginatedOrdersResponseDto\n */\n 'limit': number;\n /**\n * Total number of pages\n * @type {number}\n * @memberof PaginatedOrdersResponseDto\n */\n 'totalPages': number;\n}\n/**\n * \n * @export\n * @interface PairAssetDto\n */\nexport interface PairAssetDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof PairAssetDto\n */\n 'asset': string;\n /**\n * Weight allocation for this asset (0.0001 to 1.0). If not provided, weights will be evenly distributed.\n * @type {number}\n * @memberof PairAssetDto\n */\n 'weight'?: number;\n}\n/**\n * \n * @export\n * @interface PairBreakdownDto\n */\nexport interface PairBreakdownDto {\n /**\n * Stable basket key, formatted as L:BTC,ETH|S:SOL\n * @type {string}\n * @memberof PairBreakdownDto\n */\n 'key': string;\n /**\n * Long-side assets in the basket\n * @type {Array<string>}\n * @memberof PairBreakdownDto\n */\n 'longAssets': Array<string>;\n /**\n * Short-side assets in the basket\n * @type {Array<string>}\n * @memberof PairBreakdownDto\n */\n 'shortAssets': Array<string>;\n /**\n * Closed trade count for this basket\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'trades': number;\n /**\n * Winning closed trade count for this basket\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'wins': number;\n /**\n * Losing closed trade count for this basket\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'losses': number;\n /**\n * Winning trades / total trades\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'hitRate': number | null;\n /**\n * Mean positive trade PnL in USD\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'avgWinSize': number | null;\n /**\n * Mean negative trade PnL in USD\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'avgLossSize': number | null;\n /**\n * Average PnL per trade in USD\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'expectancy': number | null;\n /**\n * Total realized PnL in USD for this basket\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'totalPnl': number;\n /**\n * Basket total PnL / portfolio total realized PnL\n * @type {number}\n * @memberof PairBreakdownDto\n */\n 'bookPercent': number | null;\n}\n/**\n * \n * @export\n * @interface PortfolioAnalyticsConfigDto\n */\nexport interface PortfolioAnalyticsConfigDto {\n /**\n * Rolling window size in days\n * @type {number}\n * @memberof PortfolioAnalyticsConfigDto\n */\n 'rollingWindowDays': number;\n /**\n * Start date ISO string\n * @type {string}\n * @memberof PortfolioAnalyticsConfigDto\n */\n 'startDate': string;\n /**\n * End date ISO string\n * @type {string}\n * @memberof PortfolioAnalyticsConfigDto\n */\n 'endDate': string;\n}\n/**\n * \n * @export\n * @interface PortfolioAnalyticsResponseDto\n */\nexport interface PortfolioAnalyticsResponseDto {\n /**\n * \n * @type {PortfolioAnalyticsConfigDto}\n * @memberof PortfolioAnalyticsResponseDto\n */\n 'config': PortfolioAnalyticsConfigDto;\n /**\n * \n * @type {PortfolioMetricsDto}\n * @memberof PortfolioAnalyticsResponseDto\n */\n 'portfolio': PortfolioMetricsDto;\n /**\n * \n * @type {Array<AssetAnalyticsDto>}\n * @memberof PortfolioAnalyticsResponseDto\n */\n 'assets': Array<AssetAnalyticsDto>;\n /**\n * \n * @type {Array<PairBreakdownDto>}\n * @memberof PortfolioAnalyticsResponseDto\n */\n 'pairs': Array<PairBreakdownDto>;\n /**\n * \n * @type {Array<SeriesPointDto>}\n * @memberof PortfolioAnalyticsResponseDto\n */\n 'series'?: Array<SeriesPointDto>;\n}\n/**\n * \n * @export\n * @interface PortfolioBucketDto\n */\nexport interface PortfolioBucketDto {\n /**\n * Period start ISO timestamp\n * @type {string}\n * @memberof PortfolioBucketDto\n */\n 'periodStart': string;\n /**\n * Period end ISO timestamp\n * @type {string}\n * @memberof PortfolioBucketDto\n */\n 'periodEnd': string;\n /**\n * Total traded volume (USD) within the bucket\n * @type {number}\n * @memberof PortfolioBucketDto\n */\n 'volume': number;\n /**\n * Open interest snapshot (USD). Uses current snapshot.\n * @type {number}\n * @memberof PortfolioBucketDto\n */\n 'openInterest': number;\n /**\n * Number of winning trades (net realized > 0) within the bucket\n * @type {number}\n * @memberof PortfolioBucketDto\n */\n 'winningTradesCount': number;\n /**\n * Total USD from winning trades within the bucket (sum of positive net realized PnL)\n * @type {number}\n * @memberof PortfolioBucketDto\n */\n 'winningTradesUsd': number;\n /**\n * Number of losing trades (net realized < 0) within the bucket\n * @type {number}\n * @memberof PortfolioBucketDto\n */\n 'losingTradesCount': number;\n /**\n * Total USD from losing trades within the bucket (sum of absolute value of negative net realized PnL)\n * @type {number}\n * @memberof PortfolioBucketDto\n */\n 'losingTradesUsd': number;\n}\n/**\n * \n * @export\n * @interface PortfolioIntervalsDto\n */\nexport interface PortfolioIntervalsDto {\n /**\n * \n * @type {Array<PortfolioBucketDto>}\n * @memberof PortfolioIntervalsDto\n */\n 'oneDay': Array<PortfolioBucketDto>;\n /**\n * \n * @type {Array<PortfolioBucketDto>}\n * @memberof PortfolioIntervalsDto\n */\n 'oneWeek': Array<PortfolioBucketDto>;\n /**\n * \n * @type {Array<PortfolioBucketDto>}\n * @memberof PortfolioIntervalsDto\n */\n 'oneMonth': Array<PortfolioBucketDto>;\n /**\n * \n * @type {Array<PortfolioBucketDto>}\n * @memberof PortfolioIntervalsDto\n */\n 'oneYear': Array<PortfolioBucketDto>;\n /**\n * \n * @type {Array<PortfolioBucketDto>}\n * @memberof PortfolioIntervalsDto\n */\n 'all': Array<PortfolioBucketDto>;\n}\n/**\n * \n * @export\n * @interface PortfolioMetricsDto\n */\nexport interface PortfolioMetricsDto {\n /**\n * Metrics from closed trades only\n * @type {MetricVariantDto}\n * @memberof PortfolioMetricsDto\n */\n 'realizedOnly': MetricVariantDto;\n /**\n * Metrics including unrealized PnL from open positions\n * @type {MetricVariantDto}\n * @memberof PortfolioMetricsDto\n */\n 'realizedPlusUnrealized': MetricVariantDto;\n /**\n * Profitable closed trades / total closed trades\n * @type {number}\n * @memberof PortfolioMetricsDto\n */\n 'realizedHitRate': number | null;\n /**\n * Portfolio-level profit factor (gross profit / gross loss)\n * @type {number}\n * @memberof PortfolioMetricsDto\n */\n 'profitFactor': number | null;\n /**\n * Portfolio-level average winning trade size in USD\n * @type {number}\n * @memberof PortfolioMetricsDto\n */\n 'avgWinSize': number | null;\n /**\n * Portfolio-level average losing trade size in USD\n * @type {number}\n * @memberof PortfolioMetricsDto\n */\n 'avgLossSize': number | null;\n /**\n * Required hit rate to break even from average win/loss sizes\n * @type {number}\n * @memberof PortfolioMetricsDto\n */\n 'breakevenHitRate': number | null;\n /**\n * Realized hit rate minus breakeven hit rate\n * @type {number}\n * @memberof PortfolioMetricsDto\n */\n 'cushion': number | null;\n}\n/**\n * \n * @export\n * @interface PortfolioOverallDto\n */\nexport interface PortfolioOverallDto {\n /**\n * Total winning trades (net realized > 0) across the selected period\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'totalWinningTradesCount': number;\n /**\n * Total losing trades (net realized < 0) across the selected period\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'totalLosingTradesCount': number;\n /**\n * Total USD from winning trades across the selected period (sum of positive net realized PnL)\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'totalWinningUsd': number;\n /**\n * Total USD from losing trades across the selected period (sum of absolute value of negative net realized PnL)\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'totalLosingUsd': number;\n /**\n * Current total open interest (USD) across open positions\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'currentOpenInterest': number;\n /**\n * Trading volume (USD) for the selected period filtered to PEAR fills\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'currentTotalVolume': number;\n /**\n * Unrealized PnL (USD) from current open positions\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'unrealizedPnl': number;\n /**\n * Total trades for the selected period (open/close/reduce/increase counted as one trade each)\n * @type {number}\n * @memberof PortfolioOverallDto\n */\n 'totalTrades': number;\n}\n/**\n * \n * @export\n * @interface PortfolioResponseDto\n */\nexport interface PortfolioResponseDto {\n /**\n * \n * @type {PortfolioIntervalsDto}\n * @memberof PortfolioResponseDto\n */\n 'intervals'?: PortfolioIntervalsDto | null;\n /**\n * \n * @type {PortfolioOverallDto}\n * @memberof PortfolioResponseDto\n */\n 'overall': PortfolioOverallDto;\n}\n/**\n * \n * @export\n * @interface PositionAssetDetailProcessedDto\n */\nexport interface PositionAssetDetailProcessedDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'coin': string;\n /**\n * Entry price\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'entryPrice': number;\n /**\n * Actual size filled\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'actualSize': number;\n /**\n * Leverage applied to this asset\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'leverage': number;\n /**\n * Margin used for this asset (USD)\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'marginUsed': number;\n /**\n * Current USD value\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'positionValue': number;\n /**\n * Unrealized PnL (USD)\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'unrealizedPnl': number;\n /**\n * Entry USD value\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'entryPositionValue': number;\n /**\n * Total funding paid/received for this asset (USD)\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'fundingPaid'?: number;\n /**\n * Target weight of asset in position (decimal, 0-1)\n * @type {number}\n * @memberof PositionAssetDetailProcessedDto\n */\n 'targetWeight': number;\n}\n/**\n * \n * @export\n * @interface PrivyAuthDetailsDto\n */\nexport interface PrivyAuthDetailsDto {\n /**\n * Privy App ID\n * @type {string}\n * @memberof PrivyAuthDetailsDto\n */\n 'appId': string;\n /**\n * Privy access token (JWT)\n * @type {string}\n * @memberof PrivyAuthDetailsDto\n */\n 'accessToken': string;\n}\n/**\n * \n * @export\n * @interface RebalanceAssetPlanDto\n */\nexport interface RebalanceAssetPlanDto {\n /**\n * Asset ticker symbol\n * @type {string}\n * @memberof RebalanceAssetPlanDto\n */\n 'coin': string;\n /**\n * Position side\n * @type {string}\n * @memberof RebalanceAssetPlanDto\n */\n 'side': RebalanceAssetPlanDtoSideEnum;\n /**\n * Current weight of asset in position (decimal, 0-1)\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'currentWeight': number;\n /**\n * Desired target weight (decimal, 0-1)\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'targetWeight': number;\n /**\n * Current notional value in USD\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'currentValue': number;\n /**\n * Target notional value in USD after rebalance\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'targetValue': number;\n /**\n * Difference between target and current value in USD\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'deltaValue': number;\n /**\n * Current position size in asset units\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'currentSize': number;\n /**\n * Position size in asset units after rebalance\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'newSize': number;\n /**\n * Size change required in asset units\n * @type {number}\n * @memberof RebalanceAssetPlanDto\n */\n 'deltaSize': number;\n /**\n * Whether this asset will be skipped during rebalance\n * @type {boolean}\n * @memberof RebalanceAssetPlanDto\n */\n 'skipped': boolean;\n /**\n * Reason for skipping (e.g. trade below minimum size)\n * @type {string}\n * @memberof RebalanceAssetPlanDto\n */\n 'skipReason'?: string;\n}\n\nexport const RebalanceAssetPlanDtoSideEnum = {\n Long: 'long',\n Short: 'short'\n} as const;\n\nexport type RebalanceAssetPlanDtoSideEnum = typeof RebalanceAssetPlanDtoSideEnum[keyof typeof RebalanceAssetPlanDtoSideEnum];\n\n/**\n * \n * @export\n * @interface RebalancePlanDto\n */\nexport interface RebalancePlanDto {\n /**\n * Position ID being rebalanced\n * @type {string}\n * @memberof RebalancePlanDto\n */\n 'positionId': string;\n /**\n * Per-asset rebalance details\n * @type {Array<RebalanceAssetPlanDto>}\n * @memberof RebalancePlanDto\n */\n 'assets': Array<RebalanceAssetPlanDto>;\n /**\n * Whether any asset has a non-skipped trade to execute\n * @type {boolean}\n * @memberof RebalancePlanDto\n */\n 'canExecute': boolean;\n}\n/**\n * \n * @export\n * @interface RebalancePositionRequestDto\n */\nexport interface RebalancePositionRequestDto {\n /**\n * Optional target weight overrides per asset coin (decimal, should sum to 1.0 per side). If omitted, uses existing targetWeight from position.\n * @type {{ [key: string]: number; }}\n * @memberof RebalancePositionRequestDto\n */\n 'targetWeights': { [key: string]: number; };\n}\n/**\n * \n * @export\n * @interface RebalancePositionResponseDto\n */\nexport interface RebalancePositionResponseDto {\n /**\n * Rebalance order ID\n * @type {string}\n * @memberof RebalancePositionResponseDto\n */\n 'orderId': string;\n /**\n * Execution status\n * @type {string}\n * @memberof RebalancePositionResponseDto\n */\n 'status': string;\n /**\n * ISO 8601 timestamp of execution\n * @type {string}\n * @memberof RebalancePositionResponseDto\n */\n 'executedAt': string;\n /**\n * Rebalance plan that was executed\n * @type {RebalancePlanDto}\n * @memberof RebalancePositionResponseDto\n */\n 'plan': RebalancePlanDto;\n}\n/**\n * \n * @export\n * @interface RefreshApiForVaultResponseDto\n */\nexport interface RefreshApiForVaultResponseDto {\n /**\n * Unique identifier for the vault wallet\n * @type {string}\n * @memberof RefreshApiForVaultResponseDto\n */\n 'id': string;\n /**\n * Owner wallet address\n * @type {string}\n * @memberof RefreshApiForVaultResponseDto\n */\n 'leader_address': string;\n /**\n * Vault contract address\n * @type {string}\n * @memberof RefreshApiForVaultResponseDto\n */\n 'vaultAddress': string;\n /**\n * New agent wallet address for backend trading\n * @type {string}\n * @memberof RefreshApiForVaultResponseDto\n */\n 'newAgentWalletAddress': string;\n /**\n * Success message\n * @type {string}\n * @memberof RefreshApiForVaultResponseDto\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface RefreshTokenRequestDto\n */\nexport interface RefreshTokenRequestDto {\n /**\n * Refresh token\n * @type {string}\n * @memberof RefreshTokenRequestDto\n */\n 'refreshToken': string;\n}\n/**\n * \n * @export\n * @interface RefreshTokenResponseDto\n */\nexport interface RefreshTokenResponseDto {\n /**\n * New JWT access token\n * @type {string}\n * @memberof RefreshTokenResponseDto\n */\n 'accessToken': string;\n /**\n * New refresh token\n * @type {string}\n * @memberof RefreshTokenResponseDto\n */\n 'refreshToken': string;\n /**\n * Token type\n * @type {string}\n * @memberof RefreshTokenResponseDto\n */\n 'tokenType': string;\n /**\n * Token expiration time in seconds\n * @type {number}\n * @memberof RefreshTokenResponseDto\n */\n 'expiresIn': number;\n}\n/**\n * \n * @export\n * @interface SeriesPointDto\n */\nexport interface SeriesPointDto {\n /**\n * UTC date string (YYYY-MM-DD)\n * @type {string}\n * @memberof SeriesPointDto\n */\n 'date': string;\n /**\n * Closed trades on this day\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'trades': number;\n /**\n * Winning closed trades on this day\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'wins': number;\n /**\n * Losing closed trades on this day\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'losses': number;\n /**\n * Realized PnL on this day in USD\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'dayPnl': number;\n /**\n * Winning trades / total trades on this day\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'hitRate': number | null;\n /**\n * Average winning trade size / average losing trade size on this day\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'winLossRatio': number | null;\n /**\n * Rolling winning trades / rolling total trades\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'rollingHitRate': number | null;\n /**\n * Rolling average winning trade size / rolling average losing trade size\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'rollingWinLossRatio': number | null;\n /**\n * Daily portfolio return\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'dailyReturn': number | null;\n /**\n * Cumulative return from start\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'cumulativeReturn': number;\n /**\n * Equity value\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'equity': number;\n /**\n * Current drawdown from peak\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'drawdown': number;\n /**\n * Rolling Sharpe ratio\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'rollingSharpe': number | null;\n /**\n * Rolling Sortino ratio\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'rollingSortino': number | null;\n /**\n * Rolling annualized volatility\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'rollingVolatility': number | null;\n /**\n * Rolling annualized net funding rate\n * @type {number}\n * @memberof SeriesPointDto\n */\n 'rollingFunding': number | null;\n}\n/**\n * \n * @export\n * @interface SpotOrderRequestDto\n */\nexport interface SpotOrderRequestDto {\n /**\n * Asset to buy\n * @type {string}\n * @memberof SpotOrderRequestDto\n */\n 'asset': string;\n /**\n * To buy/sell Asset\n * @type {boolean}\n * @memberof SpotOrderRequestDto\n */\n 'isBuy': boolean;\n /**\n * Asset size to buy\n * @type {number}\n * @memberof SpotOrderRequestDto\n */\n 'amount': number;\n}\n/**\n * \n * @export\n * @interface SpotOrderResponseDto\n */\nexport interface SpotOrderResponseDto {\n /**\n * Unique identifier for the initial order\n * @type {string}\n * @memberof SpotOrderResponseDto\n */\n 'orderId': string;\n /**\n * Current status of the position/order\n * @type {string}\n * @memberof SpotOrderResponseDto\n */\n 'status': SpotOrderResponseDtoStatusEnum;\n /**\n * Creation timestamp\n * @type {string}\n * @memberof SpotOrderResponseDto\n */\n 'createdAt': string;\n /**\n * Spot Asset\n * @type {string}\n * @memberof SpotOrderResponseDto\n */\n 'asset': string;\n /**\n * Raw response from Hyperliquid\n * @type {object}\n * @memberof SpotOrderResponseDto\n */\n 'hyperliquidResult'?: object;\n}\n\nexport const SpotOrderResponseDtoStatusEnum = {\n Open: 'OPEN',\n Processing: 'PROCESSING',\n Executed: 'EXECUTED',\n Cancelled: 'CANCELLED',\n Failed: 'FAILED',\n PartiallyFilled: 'PARTIALLY_FILLED'\n} as const;\n\nexport type SpotOrderResponseDtoStatusEnum = typeof SpotOrderResponseDtoStatusEnum[keyof typeof SpotOrderResponseDtoStatusEnum];\n\n/**\n * \n * @export\n * @interface SwapAndTransferRequestDto\n */\nexport interface SwapAndTransferRequestDto {\n /**\n * Asset to swap from (e.g., ETH, SOL, BTC)\n * @type {string}\n * @memberof SwapAndTransferRequestDto\n */\n 'fromAsset': string;\n /**\n * Amount of the source asset to swap\n * @type {string}\n * @memberof SwapAndTransferRequestDto\n */\n 'amount': string;\n /**\n * Asset to swap to (default: USDC)\n * @type {string}\n * @memberof SwapAndTransferRequestDto\n */\n 'toAsset'?: string;\n}\n/**\n * \n * @export\n * @interface SwapAndTransferResponseDto\n */\nexport interface SwapAndTransferResponseDto {\n /**\n * Amount of source asset swapped\n * @type {string}\n * @memberof SwapAndTransferResponseDto\n */\n 'fromAmount': string;\n /**\n * Amount of target asset received\n * @type {string}\n * @memberof SwapAndTransferResponseDto\n */\n 'toAmount': string;\n /**\n * Exchange rate used\n * @type {number}\n * @memberof SwapAndTransferResponseDto\n */\n 'exchangeRate': number;\n /**\n * Source asset\n * @type {string}\n * @memberof SwapAndTransferResponseDto\n */\n 'fromAsset': string;\n /**\n * Target asset\n * @type {string}\n * @memberof SwapAndTransferResponseDto\n */\n 'toAsset': string;\n /**\n * Success message\n * @type {string}\n * @memberof SwapAndTransferResponseDto\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface SyncFillsRequestDto\n */\nexport interface SyncFillsRequestDto {\n /**\n * User EVM address\n * @type {string}\n * @memberof SyncFillsRequestDto\n */\n 'user': string;\n /**\n * External fills to sync\n * @type {Array<ExternalFillDto>}\n * @memberof SyncFillsRequestDto\n */\n 'fills': Array<ExternalFillDto>;\n /**\n * Current asset positions from clearinghouse state\n * @type {Array<string>}\n * @memberof SyncFillsRequestDto\n */\n 'assetPositions'?: Array<string>;\n}\n/**\n * \n * @export\n * @interface ToggleWatchlistDto\n */\nexport interface ToggleWatchlistDto {\n /**\n * Long assets for the basket (order preserved)\n * @type {Array<WatchlistAssetDto>}\n * @memberof ToggleWatchlistDto\n */\n 'longAssets': Array<WatchlistAssetDto>;\n /**\n * Short assets for the basket (order preserved)\n * @type {Array<WatchlistAssetDto>}\n * @memberof ToggleWatchlistDto\n */\n 'shortAssets': Array<WatchlistAssetDto>;\n}\n/**\n * \n * @export\n * @interface TpSlOrderParameters\n */\nexport interface TpSlOrderParameters {\n /**\n * TP/SL trigger type\n * @type {string}\n * @memberof TpSlOrderParameters\n */\n 'triggerType': TpSlOrderParametersTriggerTypeEnum;\n /**\n * Trigger value\n * @type {number}\n * @memberof TpSlOrderParameters\n */\n 'triggerValue'?: number;\n /**\n * Whether this is a trailing stop\n * @type {boolean}\n * @memberof TpSlOrderParameters\n */\n 'isTrailing'?: boolean;\n /**\n * Trailing delta value\n * @type {number}\n * @memberof TpSlOrderParameters\n */\n 'trailingDeltaValue'?: number;\n /**\n * Trailing activation value\n * @type {number}\n * @memberof TpSlOrderParameters\n */\n 'trailingActivationValue'?: number;\n /**\n * Whether this is a reduce-only order\n * @type {boolean}\n * @memberof TpSlOrderParameters\n */\n 'reduceOnly'?: boolean;\n}\n\nexport const TpSlOrderParametersTriggerTypeEnum = {\n Percentage: 'PERCENTAGE',\n Dollar: 'DOLLAR',\n PositionValue: 'POSITION_VALUE',\n Price: 'PRICE',\n PriceRatio: 'PRICE_RATIO',\n WeightedRatio: 'WEIGHTED_RATIO'\n} as const;\n\nexport type TpSlOrderParametersTriggerTypeEnum = typeof TpSlOrderParametersTriggerTypeEnum[keyof typeof TpSlOrderParametersTriggerTypeEnum];\n\n/**\n * \n * @export\n * @interface TpSlThreshold\n */\nexport interface TpSlThreshold {\n /**\n * Trigger type\n * @type {string}\n * @memberof TpSlThreshold\n */\n 'type': TpSlThresholdTypeEnum;\n /**\n * Trigger value for the specified type\n * @type {number}\n * @memberof TpSlThreshold\n */\n 'value'?: number;\n /**\n * Enable trailing behavior for this TP/SL\n * @type {boolean}\n * @memberof TpSlThreshold\n */\n 'isTrailing'?: boolean;\n /**\n * Trailing delta value based on trigger type\n * @type {number}\n * @memberof TpSlThreshold\n */\n 'trailingDeltaValue'?: number;\n /**\n * Activation value to start trailing\n * @type {number}\n * @memberof TpSlThreshold\n */\n 'trailingActivationValue'?: number;\n}\n\nexport const TpSlThresholdTypeEnum = {\n Percentage: 'PERCENTAGE',\n Dollar: 'DOLLAR',\n PositionValue: 'POSITION_VALUE',\n Price: 'PRICE',\n PriceRatio: 'PRICE_RATIO',\n WeightedRatio: 'WEIGHTED_RATIO'\n} as const;\n\nexport type TpSlThresholdTypeEnum = typeof TpSlThresholdTypeEnum[keyof typeof TpSlThresholdTypeEnum];\n\n/**\n * \n * @export\n * @interface TradeHistoryAssetDataDto\n */\nexport interface TradeHistoryAssetDataDto {\n /**\n * Asset symbol\n * @type {string}\n * @memberof TradeHistoryAssetDataDto\n */\n 'coin': string;\n /**\n * Leverage used for this asset\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'leverage': number;\n /**\n * Entry price for this asset\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'entryPrice': number;\n /**\n * Entry weight for this asset\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'entryWeight': number;\n /**\n * Limit price for this asset\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'limitPrice': number;\n /**\n * Trade size for this asset\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'size': number;\n /**\n * Fee paid to DEX Engine\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'externalFeePaid': number;\n /**\n * Fee paid to builder\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'builderFeePaid': number;\n /**\n * Realized PnL percentage for this asset\n * @type {number}\n * @memberof TradeHistoryAssetDataDto\n */\n 'realizedPnl': number;\n}\n/**\n * \n * @export\n * @interface TradeHistoryDataDto\n */\nexport interface TradeHistoryDataDto {\n /**\n * Trade history ID\n * @type {string}\n * @memberof TradeHistoryDataDto\n */\n 'tradeHistoryId': string;\n /**\n * Associated position ID\n * @type {string}\n * @memberof TradeHistoryDataDto\n */\n 'positionId': string;\n /**\n * User wallet address\n * @type {string}\n * @memberof TradeHistoryDataDto\n */\n 'address': string;\n /**\n * Total fee paid to DEX Engine\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'externalFeePaid': number;\n /**\n * Total fee paid to builder\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'builderFeePaid': number;\n /**\n * Total realized PnL value\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'realizedPnl': number;\n /**\n * Total realized PnL percentage\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'realizedPnlPercentage': number;\n /**\n * Total trade value in USD\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'totalValue': number;\n /**\n * Total entry value in USD (sum of size * entry price per asset)\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'totalEntryValue': number;\n /**\n * Entry ratio for the trade\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'entryRatio': number;\n /**\n * Exit ratio for the trade\n * @type {number}\n * @memberof TradeHistoryDataDto\n */\n 'exitRatio': number;\n /**\n * Long assets in the trade\n * @type {Array<TradeHistoryAssetDataDto>}\n * @memberof TradeHistoryDataDto\n */\n 'closedLongAssets': Array<TradeHistoryAssetDataDto>;\n /**\n * Short assets in the trade\n * @type {Array<TradeHistoryAssetDataDto>}\n * @memberof TradeHistoryDataDto\n */\n 'closedShortAssets'?: Array<TradeHistoryAssetDataDto>;\n /**\n * List of long token symbols from position at time of trade\n * @type {Array<string>}\n * @memberof TradeHistoryDataDto\n */\n 'positionLongAssets'?: Array<string>;\n /**\n * List of short token symbols from position at time of trade\n * @type {Array<string>}\n * @memberof TradeHistoryDataDto\n */\n 'positionShortAssets'?: Array<string>;\n /**\n * Trade timestamp\n * @type {string}\n * @memberof TradeHistoryDataDto\n */\n 'createdAt': string;\n}\n/**\n * \n * @export\n * @interface TransferPerpToSpotRequestDto\n */\nexport interface TransferPerpToSpotRequestDto {\n /**\n * Amount of USDC to transfer from perp to spot account\n * @type {string}\n * @memberof TransferPerpToSpotRequestDto\n */\n 'amount': string;\n /**\n * Asset to transfer (default: USDC)\n * @type {string}\n * @memberof TransferPerpToSpotRequestDto\n */\n 'asset'?: string;\n}\n/**\n * \n * @export\n * @interface TransferResponseDto\n */\nexport interface TransferResponseDto {\n /**\n * Transfer success status\n * @type {boolean}\n * @memberof TransferResponseDto\n */\n 'success': boolean;\n /**\n * Amount transferred\n * @type {string}\n * @memberof TransferResponseDto\n */\n 'amount': string;\n /**\n * Asset transferred\n * @type {string}\n * @memberof TransferResponseDto\n */\n 'asset': string;\n /**\n * Transfer direction\n * @type {string}\n * @memberof TransferResponseDto\n */\n 'direction': string;\n /**\n * Success message\n * @type {string}\n * @memberof TransferResponseDto\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface TransferSpotToPerpRequestDto\n */\nexport interface TransferSpotToPerpRequestDto {\n /**\n * Amount of USDC to transfer from spot to perp account\n * @type {string}\n * @memberof TransferSpotToPerpRequestDto\n */\n 'amount': string;\n /**\n * Asset to transfer (default: USDC)\n * @type {string}\n * @memberof TransferSpotToPerpRequestDto\n */\n 'asset'?: string;\n}\n/**\n * \n * @export\n * @interface TriggerDto\n */\nexport interface TriggerDto {\n /**\n * Raw market ticker / outcome id\n * @type {string}\n * @memberof TriggerDto\n */\n 'id': string;\n /**\n * \n * @type {string}\n * @memberof TriggerDto\n */\n 'category': TriggerDtoCategoryEnum;\n /**\n * \n * @type {string}\n * @memberof TriggerDto\n */\n 'source': TriggerDtoSourceEnum;\n /**\n * \n * @type {OracleValueDto}\n * @memberof TriggerDto\n */\n 'oracle'?: OracleValueDto | null;\n /**\n * \n * @type {TriggerDtoMetadata}\n * @memberof TriggerDto\n */\n 'metadata': TriggerDtoMetadata;\n}\n\nexport const TriggerDtoCategoryEnum = {\n PredictionMarket: 'prediction_market',\n Btcdom: 'btcdom'\n} as const;\n\nexport type TriggerDtoCategoryEnum = typeof TriggerDtoCategoryEnum[keyof typeof TriggerDtoCategoryEnum];\nexport const TriggerDtoSourceEnum = {\n Kalshi: 'kalshi',\n Hyperliquid: 'hyperliquid',\n Coingecko: 'coingecko'\n} as const;\n\nexport type TriggerDtoSourceEnum = typeof TriggerDtoSourceEnum[keyof typeof TriggerDtoSourceEnum];\n\n/**\n * @type TriggerDtoMetadata\n * Category-specific metadata\n * @export\n */\nexport type TriggerDtoMetadata = BtcDomMetaDto | MarketTriggerMetaDto;\n\n/**\n * \n * @export\n * @interface TriggerOrderParameters\n */\nexport interface TriggerOrderParameters {\n /**\n * Leverage multiplier\n * @type {number}\n * @memberof TriggerOrderParameters\n */\n 'leverage': number;\n /**\n * Order value in USD\n * @type {number}\n * @memberof TriggerOrderParameters\n */\n 'usdValue': number;\n /**\n * Trigger type\n * @type {string}\n * @memberof TriggerOrderParameters\n */\n 'triggerType': TriggerOrderParametersTriggerTypeEnum;\n /**\n * \n * @type {TriggerOrderParametersTriggerValue}\n * @memberof TriggerOrderParameters\n */\n 'triggerValue': TriggerOrderParametersTriggerValue;\n /**\n * Order direction\n * @type {string}\n * @memberof TriggerOrderParameters\n */\n 'direction': TriggerOrderParametersDirectionEnum;\n /**\n * Whether this is a reduce-only order\n * @type {boolean}\n * @memberof TriggerOrderParameters\n */\n 'reduceOnly'?: boolean;\n /**\n * Asset name\n * @type {string}\n * @memberof TriggerOrderParameters\n */\n 'assetName'?: string;\n /**\n * Market code\n * @type {string}\n * @memberof TriggerOrderParameters\n */\n 'marketCode'?: string;\n /**\n * Market name\n * @type {string}\n * @memberof TriggerOrderParameters\n */\n 'marketName'?: string;\n /**\n * Market source\n * @type {string}\n * @memberof TriggerOrderParameters\n */\n 'marketSource'?: TriggerOrderParametersMarketSourceEnum;\n}\n\nexport const TriggerOrderParametersTriggerTypeEnum = {\n Price: 'PRICE',\n PriceLimit: 'PRICE_LIMIT',\n PriceRatio: 'PRICE_RATIO',\n WeightedRatio: 'WEIGHTED_RATIO',\n BtcDom: 'BTC_DOM',\n CrossAssetPrice: 'CROSS_ASSET_PRICE',\n PredictionMarketOutcome: 'PREDICTION_MARKET_OUTCOME',\n Price2: 'PRICE',\n PriceRatio2: 'PRICE_RATIO',\n WeightedRatio2: 'WEIGHTED_RATIO',\n Percentage: 'PERCENTAGE',\n Dollar: 'DOLLAR',\n PositionValue: 'POSITION_VALUE'\n} as const;\n\nexport type TriggerOrderParametersTriggerTypeEnum = typeof TriggerOrderParametersTriggerTypeEnum[keyof typeof TriggerOrderParametersTriggerTypeEnum];\nexport const TriggerOrderParametersDirectionEnum = {\n MoreThan: 'MORE_THAN',\n LessThan: 'LESS_THAN'\n} as const;\n\nexport type TriggerOrderParametersDirectionEnum = typeof TriggerOrderParametersDirectionEnum[keyof typeof TriggerOrderParametersDirectionEnum];\nexport const TriggerOrderParametersMarketSourceEnum = {\n Kalshi: 'KALSHI',\n Hyperliquid: 'HYPERLIQUID'\n} as const;\n\nexport type TriggerOrderParametersMarketSourceEnum = typeof TriggerOrderParametersMarketSourceEnum[keyof typeof TriggerOrderParametersMarketSourceEnum];\n\n/**\n * @type TriggerOrderParametersTriggerValue\n * Trigger value (price or ratio)\n * @export\n */\nexport type TriggerOrderParametersTriggerValue = number | string;\n\n/**\n * \n * @export\n * @interface TriggerOutcomeDto\n */\nexport interface TriggerOutcomeDto {\n /**\n * Tradeable outcome ticker\n * @type {string}\n * @memberof TriggerOutcomeDto\n */\n 'id': string;\n /**\n * Outcome label\n * @type {string}\n * @memberof TriggerOutcomeDto\n */\n 'label': string;\n /**\n * \n * @type {OracleValueDto}\n * @memberof TriggerOutcomeDto\n */\n 'oracle'?: OracleValueDto | null;\n /**\n * \n * @type {string}\n * @memberof TriggerOutcomeDto\n */\n 'yesSubtitle'?: string | null;\n /**\n * \n * @type {string}\n * @memberof TriggerOutcomeDto\n */\n 'noSubtitle'?: string | null;\n}\n/**\n * \n * @export\n * @interface TriggersResponseDto\n */\nexport interface TriggersResponseDto {\n /**\n * \n * @type {Array<TriggerDto>}\n * @memberof TriggersResponseDto\n */\n 'triggers': Array<TriggerDto>;\n}\n/**\n * \n * @export\n * @interface TwapChunkStatusDto\n */\nexport interface TwapChunkStatusDto {\n /**\n * TWAP chunk identifier\n * @type {string}\n * @memberof TwapChunkStatusDto\n */\n 'chunkId': string;\n /**\n * Chunk index in sequence\n * @type {number}\n * @memberof TwapChunkStatusDto\n */\n 'chunkIndex': number;\n /**\n * Scheduled execution time\n * @type {string}\n * @memberof TwapChunkStatusDto\n */\n 'scheduledTime': string;\n /**\n * Actual execution time\n * @type {string}\n * @memberof TwapChunkStatusDto\n */\n 'executedTime': string | null;\n /**\n * Chunk execution status\n * @type {string}\n * @memberof TwapChunkStatusDto\n */\n 'status': TwapChunkStatusDtoStatusEnum;\n /**\n * Planned chunk size in USD\n * @type {number}\n * @memberof TwapChunkStatusDto\n */\n 'chunkSize': number;\n /**\n * Individual fills in this chunk\n * @type {Array<ChunkFillDto>}\n * @memberof TwapChunkStatusDto\n */\n 'fills': Array<ChunkFillDto>;\n /**\n * Error message if chunk failed\n * @type {string}\n * @memberof TwapChunkStatusDto\n */\n 'errorMessage': string | null;\n}\n\nexport const TwapChunkStatusDtoStatusEnum = {\n Pending: 'PENDING',\n Scheduled: 'SCHEDULED',\n Executing: 'EXECUTING',\n Completed: 'COMPLETED',\n Failed: 'FAILED',\n Cancelled: 'CANCELLED'\n} as const;\n\nexport type TwapChunkStatusDtoStatusEnum = typeof TwapChunkStatusDtoStatusEnum[keyof typeof TwapChunkStatusDtoStatusEnum];\n\n/**\n * \n * @export\n * @interface TwapMonitoringDto\n */\nexport interface TwapMonitoringDto {\n /**\n * TWAP order identifier\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'orderId': string;\n /**\n * Associated position ID (for close orders)\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'positionId': string | null;\n /**\n * User wallet address\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'address': string;\n /**\n * Order type (TWAP)\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'orderType': string;\n /**\n * Long assets in the order\n * @type {Array<OrderAssetDto>}\n * @memberof TwapMonitoringDto\n */\n 'longAssets': Array<OrderAssetDto>;\n /**\n * Short assets in the order\n * @type {Array<OrderAssetDto>}\n * @memberof TwapMonitoringDto\n */\n 'shortAssets': Array<OrderAssetDto>;\n /**\n * Overall order status\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'status': TwapMonitoringDtoStatusEnum;\n /**\n * Total order value in USD\n * @type {number}\n * @memberof TwapMonitoringDto\n */\n 'totalUsdValue': number;\n /**\n * USD value already filled\n * @type {number}\n * @memberof TwapMonitoringDto\n */\n 'filledUsdValue': number;\n /**\n * USD value remaining to fill\n * @type {number}\n * @memberof TwapMonitoringDto\n */\n 'remainingUsdValue': number;\n /**\n * TWAP duration setting\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'twapDuration': string;\n /**\n * TWAP interval in seconds (effective)\n * @type {number}\n * @memberof TwapMonitoringDto\n */\n 'twapIntervalSeconds'?: number | null;\n /**\n * Base USD value per TWAP chunk\n * @type {number}\n * @memberof TwapMonitoringDto\n */\n 'twapChunkUsdValue'?: number | null;\n /**\n * Whether execution timing is randomized\n * @type {boolean}\n * @memberof TwapMonitoringDto\n */\n 'randomizeExecution': boolean;\n /**\n * Is this a reduce-only order (close position)\n * @type {boolean}\n * @memberof TwapMonitoringDto\n */\n 'reduceOnly': boolean;\n /**\n * Breakdown of each execution chunk\n * @type {Array<TwapChunkStatusDto>}\n * @memberof TwapMonitoringDto\n */\n 'chunks': Array<TwapChunkStatusDto>;\n /**\n * Estimated completion time\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'estimatedCompletionTime': string | null;\n /**\n * Actual completion time\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'actualCompletionTime': string | null;\n /**\n * Number of chunks remaining to execute\n * @type {number}\n * @memberof TwapMonitoringDto\n */\n 'remainingChunks': number;\n /**\n * Order creation timestamp\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'createdAt': string;\n /**\n * Last update timestamp\n * @type {string}\n * @memberof TwapMonitoringDto\n */\n 'updatedAt': string;\n}\n\nexport const TwapMonitoringDtoStatusEnum = {\n Open: 'OPEN',\n Executing: 'EXECUTING',\n Completed: 'COMPLETED',\n PartiallyCompleted: 'PARTIALLY_COMPLETED',\n Failed: 'FAILED',\n Cancelled: 'CANCELLED'\n} as const;\n\nexport type TwapMonitoringDtoStatusEnum = typeof TwapMonitoringDtoStatusEnum[keyof typeof TwapMonitoringDtoStatusEnum];\n\n/**\n * \n * @export\n * @interface TwapOrderParameters\n */\nexport interface TwapOrderParameters {\n /**\n * Leverage multiplier\n * @type {number}\n * @memberof TwapOrderParameters\n */\n 'leverage': number;\n /**\n * Order value in USD\n * @type {number}\n * @memberof TwapOrderParameters\n */\n 'usdValue': number;\n /**\n * TWAP duration (e.g. 5m, 1h, 24h)\n * @type {string}\n * @memberof TwapOrderParameters\n */\n 'duration': string;\n /**\n * Interval between chunks in seconds\n * @type {number}\n * @memberof TwapOrderParameters\n */\n 'intervalSeconds'?: number;\n /**\n * Calculated base chunk size in USD\n * @type {number}\n * @memberof TwapOrderParameters\n */\n 'chunkUsdValue': number;\n /**\n * Whether execution timing is randomized\n * @type {boolean}\n * @memberof TwapOrderParameters\n */\n 'randomizeExecution'?: boolean;\n /**\n * Whether this is a reduce-only order\n * @type {boolean}\n * @memberof TwapOrderParameters\n */\n 'reduceOnly'?: boolean;\n}\n/**\n * \n * @export\n * @interface UpdateRiskParametersRequestDto\n */\nexport interface UpdateRiskParametersRequestDto {\n /**\n * Stop loss configuration. Set to null to remove existing stop loss.\n * @type {TpSlThreshold}\n * @memberof UpdateRiskParametersRequestDto\n */\n 'stopLoss'?: TpSlThreshold | null;\n /**\n * Take profit configuration. Set to null to remove existing take profit.\n * @type {TpSlThreshold}\n * @memberof UpdateRiskParametersRequestDto\n */\n 'takeProfit'?: TpSlThreshold | null;\n}\n/**\n * \n * @export\n * @interface UpdateRiskParametersResponseDto\n */\nexport interface UpdateRiskParametersResponseDto {\n /**\n * Position identifier\n * @type {string}\n * @memberof UpdateRiskParametersResponseDto\n */\n 'positionId': string;\n /**\n * Updated stop loss configuration\n * @type {TpSlThreshold}\n * @memberof UpdateRiskParametersResponseDto\n */\n 'stopLoss': TpSlThreshold | null;\n /**\n * Updated take profit configuration\n * @type {TpSlThreshold}\n * @memberof UpdateRiskParametersResponseDto\n */\n 'takeProfit': TpSlThreshold | null;\n /**\n * Update timestamp\n * @type {string}\n * @memberof UpdateRiskParametersResponseDto\n */\n 'updatedAt': string;\n}\n/**\n * \n * @export\n * @interface WatchlistAssetDto\n */\nexport interface WatchlistAssetDto {\n /**\n * \n * @type {string}\n * @memberof WatchlistAssetDto\n */\n 'asset': string;\n /**\n * \n * @type {number}\n * @memberof WatchlistAssetDto\n */\n 'weight': number;\n}\n/**\n * \n * @export\n * @interface WatchlistBasketDto\n */\nexport interface WatchlistBasketDto {\n /**\n * Basket ID\n * @type {string}\n * @memberof WatchlistBasketDto\n */\n 'id': string;\n /**\n * Long assets in the basket\n * @type {Array<WatchlistAssetDto>}\n * @memberof WatchlistBasketDto\n */\n 'longAssets': Array<WatchlistAssetDto>;\n /**\n * Short assets in the basket\n * @type {Array<WatchlistAssetDto>}\n * @memberof WatchlistBasketDto\n */\n 'shortAssets': Array<WatchlistAssetDto>;\n}\n/**\n * \n * @export\n * @interface WatchlistResponseDto\n */\nexport interface WatchlistResponseDto {\n /**\n * List of watchlist baskets\n * @type {Array<WatchlistBasketDto>}\n * @memberof WatchlistResponseDto\n */\n 'items': Array<WatchlistBasketDto>;\n}\n\n/**\n * APIKeysApi - axios parameter creator\n * @export\n */\nexport const APIKeysApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Create a new API key for the authenticated user\n * @summary Create API key\n * @param {ApiKeysControllerCreateApiKeyRequest} apiKeysControllerCreateApiKeyRequest API key creation request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n apiKeysControllerCreateApiKey: async (apiKeysControllerCreateApiKeyRequest: ApiKeysControllerCreateApiKeyRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'apiKeysControllerCreateApiKeyRequest' is not null or undefined\n assertParamExists('apiKeysControllerCreateApiKey', 'apiKeysControllerCreateApiKeyRequest', apiKeysControllerCreateApiKeyRequest)\n const localVarPath = `/api-keys`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(apiKeysControllerCreateApiKeyRequest, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Get all API keys for the authenticated user\n * @summary Get user API keys\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n apiKeysControllerGetUserApiKeys: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/api-keys`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * APIKeysApi - functional programming interface\n * @export\n */\nexport const APIKeysApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = APIKeysApiAxiosParamCreator(configuration)\n return {\n /**\n * Create a new API key for the authenticated user\n * @summary Create API key\n * @param {ApiKeysControllerCreateApiKeyRequest} apiKeysControllerCreateApiKeyRequest API key creation request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async apiKeysControllerCreateApiKey(apiKeysControllerCreateApiKeyRequest: ApiKeysControllerCreateApiKeyRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApiKeysControllerCreateApiKey201Response>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.apiKeysControllerCreateApiKey(apiKeysControllerCreateApiKeyRequest, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['APIKeysApi.apiKeysControllerCreateApiKey']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Get all API keys for the authenticated user\n * @summary Get user API keys\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async apiKeysControllerGetUserApiKeys(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ApiKeysControllerGetUserApiKeys200Response>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.apiKeysControllerGetUserApiKeys(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['APIKeysApi.apiKeysControllerGetUserApiKeys']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * APIKeysApi - factory interface\n * @export\n */\nexport const APIKeysApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = APIKeysApiFp(configuration)\n return {\n /**\n * Create a new API key for the authenticated user\n * @summary Create API key\n * @param {ApiKeysControllerCreateApiKeyRequest} apiKeysControllerCreateApiKeyRequest API key creation request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n apiKeysControllerCreateApiKey(apiKeysControllerCreateApiKeyRequest: ApiKeysControllerCreateApiKeyRequest, options?: RawAxiosRequestConfig): AxiosPromise<ApiKeysControllerCreateApiKey201Response> {\n return localVarFp.apiKeysControllerCreateApiKey(apiKeysControllerCreateApiKeyRequest, options).then((request) => request(axios, basePath));\n },\n /**\n * Get all API keys for the authenticated user\n * @summary Get user API keys\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n apiKeysControllerGetUserApiKeys(options?: RawAxiosRequestConfig): AxiosPromise<ApiKeysControllerGetUserApiKeys200Response> {\n return localVarFp.apiKeysControllerGetUserApiKeys(options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * APIKeysApi - object-oriented interface\n * @export\n * @class APIKeysApi\n * @extends {BaseAPI}\n */\nexport class APIKeysApi extends BaseAPI {\n /**\n * Create a new API key for the authenticated user\n * @summary Create API key\n * @param {ApiKeysControllerCreateApiKeyRequest} apiKeysControllerCreateApiKeyRequest API key creation request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof APIKeysApi\n */\n public apiKeysControllerCreateApiKey(apiKeysControllerCreateApiKeyRequest: ApiKeysControllerCreateApiKeyRequest, options?: RawAxiosRequestConfig) {\n return APIKeysApiFp(this.configuration).apiKeysControllerCreateApiKey(apiKeysControllerCreateApiKeyRequest, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Get all API keys for the authenticated user\n * @summary Get user API keys\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof APIKeysApi\n */\n public apiKeysControllerGetUserApiKeys(options?: RawAxiosRequestConfig) {\n return APIKeysApiFp(this.configuration).apiKeysControllerGetUserApiKeys(options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * AccountsApi - axios parameter creator\n * @export\n */\nexport const AccountsApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Retrieve account summary including margin information and agent wallet details for the authenticated user\n * @summary Get account summary\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountsControllerGetAccountSummary: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/accounts`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * AccountsApi - functional programming interface\n * @export\n */\nexport const AccountsApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = AccountsApiAxiosParamCreator(configuration)\n return {\n /**\n * Retrieve account summary including margin information and agent wallet details for the authenticated user\n * @summary Get account summary\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async accountsControllerGetAccountSummary(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AccountSummaryResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountsControllerGetAccountSummary(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AccountsApi.accountsControllerGetAccountSummary']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * AccountsApi - factory interface\n * @export\n */\nexport const AccountsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = AccountsApiFp(configuration)\n return {\n /**\n * Retrieve account summary including margin information and agent wallet details for the authenticated user\n * @summary Get account summary\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountsControllerGetAccountSummary(options?: RawAxiosRequestConfig): AxiosPromise<AccountSummaryResponseDto> {\n return localVarFp.accountsControllerGetAccountSummary(options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * AccountsApi - object-oriented interface\n * @export\n * @class AccountsApi\n * @extends {BaseAPI}\n */\nexport class AccountsApi extends BaseAPI {\n /**\n * Retrieve account summary including margin information and agent wallet details for the authenticated user\n * @summary Get account summary\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountsApi\n */\n public accountsControllerGetAccountSummary(options?: RawAxiosRequestConfig) {\n return AccountsApiFp(this.configuration).accountsControllerGetAccountSummary(options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * AgentWalletApi - axios parameter creator\n * @export\n */\nexport const AgentWalletApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Create a new agent wallet for the authenticated user. The wallet private key is securely stored and encrypted within Pear Protocol. After creation, the user must approve the wallet through Hyperliquid\\'s agent wallet approval process.\n * @summary Create a new agent wallet\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n agentWalletControllerCreateAgentWallet: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/agentWallet`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Check if an agent wallet exists for the authenticated user and retrieve its status. Agent wallets are used to execute trades on Hyperliquid Exchange on behalf of users and are valid for 180 days with automatic 30-day rotations.\n * @summary Get agent wallet status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n agentWalletControllerGetAgentWallet: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/agentWallet`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * AgentWalletApi - functional programming interface\n * @export\n */\nexport const AgentWalletApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = AgentWalletApiAxiosParamCreator(configuration)\n return {\n /**\n * Create a new agent wallet for the authenticated user. The wallet private key is securely stored and encrypted within Pear Protocol. After creation, the user must approve the wallet through Hyperliquid\\'s agent wallet approval process.\n * @summary Create a new agent wallet\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async agentWalletControllerCreateAgentWallet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateAgentWalletResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.agentWalletControllerCreateAgentWallet(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AgentWalletApi.agentWalletControllerCreateAgentWallet']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Check if an agent wallet exists for the authenticated user and retrieve its status. Agent wallets are used to execute trades on Hyperliquid Exchange on behalf of users and are valid for 180 days with automatic 30-day rotations.\n * @summary Get agent wallet status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async agentWalletControllerGetAgentWallet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetAgentWalletResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.agentWalletControllerGetAgentWallet(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AgentWalletApi.agentWalletControllerGetAgentWallet']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * AgentWalletApi - factory interface\n * @export\n */\nexport const AgentWalletApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = AgentWalletApiFp(configuration)\n return {\n /**\n * Create a new agent wallet for the authenticated user. The wallet private key is securely stored and encrypted within Pear Protocol. After creation, the user must approve the wallet through Hyperliquid\\'s agent wallet approval process.\n * @summary Create a new agent wallet\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n agentWalletControllerCreateAgentWallet(options?: RawAxiosRequestConfig): AxiosPromise<CreateAgentWalletResponseDto> {\n return localVarFp.agentWalletControllerCreateAgentWallet(options).then((request) => request(axios, basePath));\n },\n /**\n * Check if an agent wallet exists for the authenticated user and retrieve its status. Agent wallets are used to execute trades on Hyperliquid Exchange on behalf of users and are valid for 180 days with automatic 30-day rotations.\n * @summary Get agent wallet status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n agentWalletControllerGetAgentWallet(options?: RawAxiosRequestConfig): AxiosPromise<GetAgentWalletResponseDto> {\n return localVarFp.agentWalletControllerGetAgentWallet(options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * AgentWalletApi - object-oriented interface\n * @export\n * @class AgentWalletApi\n * @extends {BaseAPI}\n */\nexport class AgentWalletApi extends BaseAPI {\n /**\n * Create a new agent wallet for the authenticated user. The wallet private key is securely stored and encrypted within Pear Protocol. After creation, the user must approve the wallet through Hyperliquid\\'s agent wallet approval process.\n * @summary Create a new agent wallet\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AgentWalletApi\n */\n public agentWalletControllerCreateAgentWallet(options?: RawAxiosRequestConfig) {\n return AgentWalletApiFp(this.configuration).agentWalletControllerCreateAgentWallet(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Check if an agent wallet exists for the authenticated user and retrieve its status. Agent wallets are used to execute trades on Hyperliquid Exchange on behalf of users and are valid for 180 days with automatic 30-day rotations.\n * @summary Get agent wallet status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AgentWalletApi\n */\n public agentWalletControllerGetAgentWallet(options?: RawAxiosRequestConfig) {\n return AgentWalletApiFp(this.configuration).agentWalletControllerGetAgentWallet(options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * AuthenticationApi - axios parameter creator\n * @export\n */\nexport const AuthenticationApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Authenticate a user using EIP712 signature or API key and return access/refresh tokens\n * @summary Authenticate user\n * @param {AuthenticateRequestDto} authenticateRequestDto Authentication request with EIP712 signature or API key\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerAuthenticate: async (authenticateRequestDto: AuthenticateRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'authenticateRequestDto' is not null or undefined\n assertParamExists('authControllerAuthenticate', 'authenticateRequestDto', authenticateRequestDto)\n const localVarPath = `/auth/login`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(authenticateRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Generate EIP712 structured data for client-side signing\n * @summary Get EIP712 message to sign\n * @param {string} address User wallet address\n * @param {string} clientId Client identifier\n * @param {number} chainId \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerGetEIP712Message: async (address: string, clientId: string, chainId: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'address' is not null or undefined\n assertParamExists('authControllerGetEIP712Message', 'address', address)\n // verify required parameter 'clientId' is not null or undefined\n assertParamExists('authControllerGetEIP712Message', 'clientId', clientId)\n // verify required parameter 'chainId' is not null or undefined\n assertParamExists('authControllerGetEIP712Message', 'chainId', chainId)\n const localVarPath = `/auth/eip712-message`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (address !== undefined) {\n localVarQueryParameter['address'] = address;\n }\n\n if (clientId !== undefined) {\n localVarQueryParameter['clientId'] = clientId;\n }\n\n if (chainId !== undefined) {\n localVarQueryParameter['chainId'] = chainId;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Invalidate refresh token and log out the user\n * @summary Logout user\n * @param {LogoutRequestDto} logoutRequestDto Logout request with refresh token\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerLogout: async (logoutRequestDto: LogoutRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'logoutRequestDto' is not null or undefined\n assertParamExists('authControllerLogout', 'logoutRequestDto', logoutRequestDto)\n const localVarPath = `/auth/logout`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(logoutRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Use a valid refresh token to obtain a new access token and refresh token\n * @summary Refresh access token\n * @param {RefreshTokenRequestDto} refreshTokenRequestDto Refresh token request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerRefreshToken: async (refreshTokenRequestDto: RefreshTokenRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'refreshTokenRequestDto' is not null or undefined\n assertParamExists('authControllerRefreshToken', 'refreshTokenRequestDto', refreshTokenRequestDto)\n const localVarPath = `/auth/refresh`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(refreshTokenRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * AuthenticationApi - functional programming interface\n * @export\n */\nexport const AuthenticationApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = AuthenticationApiAxiosParamCreator(configuration)\n return {\n /**\n * Authenticate a user using EIP712 signature or API key and return access/refresh tokens\n * @summary Authenticate user\n * @param {AuthenticateRequestDto} authenticateRequestDto Authentication request with EIP712 signature or API key\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async authControllerAuthenticate(authenticateRequestDto: AuthenticateRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AuthenticateResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.authControllerAuthenticate(authenticateRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AuthenticationApi.authControllerAuthenticate']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Generate EIP712 structured data for client-side signing\n * @summary Get EIP712 message to sign\n * @param {string} address User wallet address\n * @param {string} clientId Client identifier\n * @param {number} chainId \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async authControllerGetEIP712Message(address: string, clientId: string, chainId: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetEIP712MessageResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.authControllerGetEIP712Message(address, clientId, chainId, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AuthenticationApi.authControllerGetEIP712Message']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Invalidate refresh token and log out the user\n * @summary Logout user\n * @param {LogoutRequestDto} logoutRequestDto Logout request with refresh token\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async authControllerLogout(logoutRequestDto: LogoutRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<LogoutResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.authControllerLogout(logoutRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AuthenticationApi.authControllerLogout']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Use a valid refresh token to obtain a new access token and refresh token\n * @summary Refresh access token\n * @param {RefreshTokenRequestDto} refreshTokenRequestDto Refresh token request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async authControllerRefreshToken(refreshTokenRequestDto: RefreshTokenRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RefreshTokenResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.authControllerRefreshToken(refreshTokenRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['AuthenticationApi.authControllerRefreshToken']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * AuthenticationApi - factory interface\n * @export\n */\nexport const AuthenticationApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = AuthenticationApiFp(configuration)\n return {\n /**\n * Authenticate a user using EIP712 signature or API key and return access/refresh tokens\n * @summary Authenticate user\n * @param {AuthenticateRequestDto} authenticateRequestDto Authentication request with EIP712 signature or API key\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerAuthenticate(authenticateRequestDto: AuthenticateRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<AuthenticateResponseDto> {\n return localVarFp.authControllerAuthenticate(authenticateRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Generate EIP712 structured data for client-side signing\n * @summary Get EIP712 message to sign\n * @param {string} address User wallet address\n * @param {string} clientId Client identifier\n * @param {number} chainId \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerGetEIP712Message(address: string, clientId: string, chainId: number, options?: RawAxiosRequestConfig): AxiosPromise<GetEIP712MessageResponseDto> {\n return localVarFp.authControllerGetEIP712Message(address, clientId, chainId, options).then((request) => request(axios, basePath));\n },\n /**\n * Invalidate refresh token and log out the user\n * @summary Logout user\n * @param {LogoutRequestDto} logoutRequestDto Logout request with refresh token\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerLogout(logoutRequestDto: LogoutRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<LogoutResponseDto> {\n return localVarFp.authControllerLogout(logoutRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Use a valid refresh token to obtain a new access token and refresh token\n * @summary Refresh access token\n * @param {RefreshTokenRequestDto} refreshTokenRequestDto Refresh token request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n authControllerRefreshToken(refreshTokenRequestDto: RefreshTokenRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<RefreshTokenResponseDto> {\n return localVarFp.authControllerRefreshToken(refreshTokenRequestDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * AuthenticationApi - object-oriented interface\n * @export\n * @class AuthenticationApi\n * @extends {BaseAPI}\n */\nexport class AuthenticationApi extends BaseAPI {\n /**\n * Authenticate a user using EIP712 signature or API key and return access/refresh tokens\n * @summary Authenticate user\n * @param {AuthenticateRequestDto} authenticateRequestDto Authentication request with EIP712 signature or API key\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AuthenticationApi\n */\n public authControllerAuthenticate(authenticateRequestDto: AuthenticateRequestDto, options?: RawAxiosRequestConfig) {\n return AuthenticationApiFp(this.configuration).authControllerAuthenticate(authenticateRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Generate EIP712 structured data for client-side signing\n * @summary Get EIP712 message to sign\n * @param {string} address User wallet address\n * @param {string} clientId Client identifier\n * @param {number} chainId \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AuthenticationApi\n */\n public authControllerGetEIP712Message(address: string, clientId: string, chainId: number, options?: RawAxiosRequestConfig) {\n return AuthenticationApiFp(this.configuration).authControllerGetEIP712Message(address, clientId, chainId, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Invalidate refresh token and log out the user\n * @summary Logout user\n * @param {LogoutRequestDto} logoutRequestDto Logout request with refresh token\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AuthenticationApi\n */\n public authControllerLogout(logoutRequestDto: LogoutRequestDto, options?: RawAxiosRequestConfig) {\n return AuthenticationApiFp(this.configuration).authControllerLogout(logoutRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Use a valid refresh token to obtain a new access token and refresh token\n * @summary Refresh access token\n * @param {RefreshTokenRequestDto} refreshTokenRequestDto Refresh token request\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AuthenticationApi\n */\n public authControllerRefreshToken(refreshTokenRequestDto: RefreshTokenRequestDto, options?: RawAxiosRequestConfig) {\n return AuthenticationApiFp(this.configuration).authControllerRefreshToken(refreshTokenRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * FillsApi - axios parameter creator\n * @export\n */\nexport const FillsApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Retrieve fills with optional filters for address, asset, client, Pear trade status, and time range.\n * @summary Get fills\n * @param {string} [address] Filter by wallet address (case-insensitive)\n * @param {string} [assetName] Filter by asset name\n * @param {string} [clientId] Filter by client ID\n * @param {string} [isPearTrade] Filter by Pear trade (cloid prefix 0x50454152). Defaults to true.\n * @param {string} [startTime] Filter fills with fillTime >= this value (unix ms)\n * @param {string} [endTime] Filter fills with fillTime <= this value (unix ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n fillsControllerGetFills: async (address?: string, assetName?: string, clientId?: string, isPearTrade?: string, startTime?: string, endTime?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/fills`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (address !== undefined) {\n localVarQueryParameter['address'] = address;\n }\n\n if (assetName !== undefined) {\n localVarQueryParameter['assetName'] = assetName;\n }\n\n if (clientId !== undefined) {\n localVarQueryParameter['clientId'] = clientId;\n }\n\n if (isPearTrade !== undefined) {\n localVarQueryParameter['isPearTrade'] = isPearTrade;\n }\n\n if (startTime !== undefined) {\n localVarQueryParameter['startTime'] = startTime;\n }\n\n if (endTime !== undefined) {\n localVarQueryParameter['endTime'] = endTime;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * FillsApi - functional programming interface\n * @export\n */\nexport const FillsApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = FillsApiAxiosParamCreator(configuration)\n return {\n /**\n * Retrieve fills with optional filters for address, asset, client, Pear trade status, and time range.\n * @summary Get fills\n * @param {string} [address] Filter by wallet address (case-insensitive)\n * @param {string} [assetName] Filter by asset name\n * @param {string} [clientId] Filter by client ID\n * @param {string} [isPearTrade] Filter by Pear trade (cloid prefix 0x50454152). Defaults to true.\n * @param {string} [startTime] Filter fills with fillTime >= this value (unix ms)\n * @param {string} [endTime] Filter fills with fillTime <= this value (unix ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async fillsControllerGetFills(address?: string, assetName?: string, clientId?: string, isPearTrade?: string, startTime?: string, endTime?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<FillItemDto>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.fillsControllerGetFills(address, assetName, clientId, isPearTrade, startTime, endTime, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['FillsApi.fillsControllerGetFills']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * FillsApi - factory interface\n * @export\n */\nexport const FillsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = FillsApiFp(configuration)\n return {\n /**\n * Retrieve fills with optional filters for address, asset, client, Pear trade status, and time range.\n * @summary Get fills\n * @param {string} [address] Filter by wallet address (case-insensitive)\n * @param {string} [assetName] Filter by asset name\n * @param {string} [clientId] Filter by client ID\n * @param {string} [isPearTrade] Filter by Pear trade (cloid prefix 0x50454152). Defaults to true.\n * @param {string} [startTime] Filter fills with fillTime >= this value (unix ms)\n * @param {string} [endTime] Filter fills with fillTime <= this value (unix ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n fillsControllerGetFills(address?: string, assetName?: string, clientId?: string, isPearTrade?: string, startTime?: string, endTime?: string, options?: RawAxiosRequestConfig): AxiosPromise<Array<FillItemDto>> {\n return localVarFp.fillsControllerGetFills(address, assetName, clientId, isPearTrade, startTime, endTime, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * FillsApi - object-oriented interface\n * @export\n * @class FillsApi\n * @extends {BaseAPI}\n */\nexport class FillsApi extends BaseAPI {\n /**\n * Retrieve fills with optional filters for address, asset, client, Pear trade status, and time range.\n * @summary Get fills\n * @param {string} [address] Filter by wallet address (case-insensitive)\n * @param {string} [assetName] Filter by asset name\n * @param {string} [clientId] Filter by client ID\n * @param {string} [isPearTrade] Filter by Pear trade (cloid prefix 0x50454152). Defaults to true.\n * @param {string} [startTime] Filter fills with fillTime >= this value (unix ms)\n * @param {string} [endTime] Filter fills with fillTime <= this value (unix ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FillsApi\n */\n public fillsControllerGetFills(address?: string, assetName?: string, clientId?: string, isPearTrade?: string, startTime?: string, endTime?: string, options?: RawAxiosRequestConfig) {\n return FillsApiFp(this.configuration).fillsControllerGetFills(address, assetName, clientId, isPearTrade, startTime, endTime, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * HealthApi - axios parameter creator\n * @export\n */\nexport const HealthApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Health check endpoint\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n healthControllerGetHealth: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/health`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * HealthApi - functional programming interface\n * @export\n */\nexport const HealthApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = HealthApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Health check endpoint\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async healthControllerGetHealth(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<HealthControllerGetHealth200Response>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.healthControllerGetHealth(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['HealthApi.healthControllerGetHealth']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * HealthApi - factory interface\n * @export\n */\nexport const HealthApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = HealthApiFp(configuration)\n return {\n /**\n * \n * @summary Health check endpoint\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n healthControllerGetHealth(options?: RawAxiosRequestConfig): AxiosPromise<HealthControllerGetHealth200Response> {\n return localVarFp.healthControllerGetHealth(options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * HealthApi - object-oriented interface\n * @export\n * @class HealthApi\n * @extends {BaseAPI}\n */\nexport class HealthApi extends BaseAPI {\n /**\n * \n * @summary Health check endpoint\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof HealthApi\n */\n public healthControllerGetHealth(options?: RawAxiosRequestConfig) {\n return HealthApiFp(this.configuration).healthControllerGetHealth(options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * LegacySupportApi - axios parameter creator\n * @export\n */\nexport const LegacySupportApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Get legacy daily stats (volume, fees, users, new_traders) for compatibility with pear-backend /statsData\n * @param {string} [period] Period label, e.g., daily\n * @param {string} [startDate] Start date ISO string\n * @param {string} [endDate] End date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyDailyStats: async (period?: string, startDate?: string, endDate?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/legacysupport/dailyStats`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (period !== undefined) {\n localVarQueryParameter['period'] = period;\n }\n\n if (startDate !== undefined) {\n localVarQueryParameter['startDate'] = startDate;\n }\n\n if (endDate !== undefined) {\n localVarQueryParameter['endDate'] = endDate;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Get hyperliquid user stats for legacy support (V2)\n * @param {string} address User address\n * @param {string} [period] Period label (e.g., daily)\n * @param {string} [startDate] Start date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyHyperliquidStats: async (address: string, period?: string, startDate?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'address' is not null or undefined\n assertParamExists('legacySupportControllerGetLegacyHyperliquidStats', 'address', address)\n const localVarPath = `/legacysupport/stats/hyperliquid`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (address !== undefined) {\n localVarQueryParameter['address'] = address;\n }\n\n if (period !== undefined) {\n localVarQueryParameter['period'] = period;\n }\n\n if (startDate !== undefined) {\n localVarQueryParameter['startDate'] = startDate;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Get legacy metrics (daily and total) for compatibility with pear-backend metric service\n * @param {number} [timestamp] Start of day timestamp (in seconds). Defaults to previous day window.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyMetrics: async (timestamp?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/legacysupport/metric`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (timestamp !== undefined) {\n localVarQueryParameter['timestamp'] = timestamp;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Get weekly and monthly volumes for legacy support\n * @param {number} [timestamp] Start of day timestamp (in seconds). Aligns end of windows the same as /metric.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyWeeklyVolume: async (timestamp?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/legacysupport/weeklyVolume`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (timestamp !== undefined) {\n localVarQueryParameter['timestamp'] = timestamp;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * LegacySupportApi - functional programming interface\n * @export\n */\nexport const LegacySupportApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = LegacySupportApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Get legacy daily stats (volume, fees, users, new_traders) for compatibility with pear-backend /statsData\n * @param {string} [period] Period label, e.g., daily\n * @param {string} [startDate] Start date ISO string\n * @param {string} [endDate] End date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async legacySupportControllerGetLegacyDailyStats(period?: string, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.legacySupportControllerGetLegacyDailyStats(period, startDate, endDate, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['LegacySupportApi.legacySupportControllerGetLegacyDailyStats']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Get hyperliquid user stats for legacy support (V2)\n * @param {string} address User address\n * @param {string} [period] Period label (e.g., daily)\n * @param {string} [startDate] Start date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async legacySupportControllerGetLegacyHyperliquidStats(address: string, period?: string, startDate?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.legacySupportControllerGetLegacyHyperliquidStats(address, period, startDate, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['LegacySupportApi.legacySupportControllerGetLegacyHyperliquidStats']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Get legacy metrics (daily and total) for compatibility with pear-backend metric service\n * @param {number} [timestamp] Start of day timestamp (in seconds). Defaults to previous day window.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async legacySupportControllerGetLegacyMetrics(timestamp?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<LegacySupportControllerGetLegacyMetrics200Response>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.legacySupportControllerGetLegacyMetrics(timestamp, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['LegacySupportApi.legacySupportControllerGetLegacyMetrics']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Get weekly and monthly volumes for legacy support\n * @param {number} [timestamp] Start of day timestamp (in seconds). Aligns end of windows the same as /metric.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async legacySupportControllerGetLegacyWeeklyVolume(timestamp?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.legacySupportControllerGetLegacyWeeklyVolume(timestamp, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['LegacySupportApi.legacySupportControllerGetLegacyWeeklyVolume']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * LegacySupportApi - factory interface\n * @export\n */\nexport const LegacySupportApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = LegacySupportApiFp(configuration)\n return {\n /**\n * \n * @summary Get legacy daily stats (volume, fees, users, new_traders) for compatibility with pear-backend /statsData\n * @param {string} [period] Period label, e.g., daily\n * @param {string} [startDate] Start date ISO string\n * @param {string} [endDate] End date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyDailyStats(period?: string, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {\n return localVarFp.legacySupportControllerGetLegacyDailyStats(period, startDate, endDate, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Get hyperliquid user stats for legacy support (V2)\n * @param {string} address User address\n * @param {string} [period] Period label (e.g., daily)\n * @param {string} [startDate] Start date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyHyperliquidStats(address: string, period?: string, startDate?: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {\n return localVarFp.legacySupportControllerGetLegacyHyperliquidStats(address, period, startDate, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Get legacy metrics (daily and total) for compatibility with pear-backend metric service\n * @param {number} [timestamp] Start of day timestamp (in seconds). Defaults to previous day window.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyMetrics(timestamp?: number, options?: RawAxiosRequestConfig): AxiosPromise<LegacySupportControllerGetLegacyMetrics200Response> {\n return localVarFp.legacySupportControllerGetLegacyMetrics(timestamp, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Get weekly and monthly volumes for legacy support\n * @param {number} [timestamp] Start of day timestamp (in seconds). Aligns end of windows the same as /metric.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n legacySupportControllerGetLegacyWeeklyVolume(timestamp?: number, options?: RawAxiosRequestConfig): AxiosPromise<void> {\n return localVarFp.legacySupportControllerGetLegacyWeeklyVolume(timestamp, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * LegacySupportApi - object-oriented interface\n * @export\n * @class LegacySupportApi\n * @extends {BaseAPI}\n */\nexport class LegacySupportApi extends BaseAPI {\n /**\n * \n * @summary Get legacy daily stats (volume, fees, users, new_traders) for compatibility with pear-backend /statsData\n * @param {string} [period] Period label, e.g., daily\n * @param {string} [startDate] Start date ISO string\n * @param {string} [endDate] End date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof LegacySupportApi\n */\n public legacySupportControllerGetLegacyDailyStats(period?: string, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig) {\n return LegacySupportApiFp(this.configuration).legacySupportControllerGetLegacyDailyStats(period, startDate, endDate, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Get hyperliquid user stats for legacy support (V2)\n * @param {string} address User address\n * @param {string} [period] Period label (e.g., daily)\n * @param {string} [startDate] Start date ISO string\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof LegacySupportApi\n */\n public legacySupportControllerGetLegacyHyperliquidStats(address: string, period?: string, startDate?: string, options?: RawAxiosRequestConfig) {\n return LegacySupportApiFp(this.configuration).legacySupportControllerGetLegacyHyperliquidStats(address, period, startDate, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Get legacy metrics (daily and total) for compatibility with pear-backend metric service\n * @param {number} [timestamp] Start of day timestamp (in seconds). Defaults to previous day window.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof LegacySupportApi\n */\n public legacySupportControllerGetLegacyMetrics(timestamp?: number, options?: RawAxiosRequestConfig) {\n return LegacySupportApiFp(this.configuration).legacySupportControllerGetLegacyMetrics(timestamp, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Get weekly and monthly volumes for legacy support\n * @param {number} [timestamp] Start of day timestamp (in seconds). Aligns end of windows the same as /metric.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof LegacySupportApi\n */\n public legacySupportControllerGetLegacyWeeklyVolume(timestamp?: number, options?: RawAxiosRequestConfig) {\n return LegacySupportApiFp(this.configuration).legacySupportControllerGetLegacyWeeklyVolume(timestamp, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * MarketsApi - axios parameter creator\n * @export\n */\nexport const MarketsApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Get active market assets and pairs\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n marketsControllerGetActiveMarket: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/markets/active`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Get market data v2 (actives + watchlist baskets)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n marketsControllerGetMarketDataV2: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/markets/v2`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve market groups including active markets, top gainers, top losers, highlighted markets, and watchlist\n * @summary Get markets data\n * @param {string} [offset] Offset for pagination\n * @param {string} [page] Page number for pagination (minimum 1)\n * @param {string} [pageSize] Page size (items per page, maximum 100)\n * @param {string} [engine] Filter by engine type\n * @param {string} [minVolume] Filter by minimum volume\n * @param {string} [change24h] Filter by price change\n * @param {string} [netFunding] Filter by either positive or negative funding rate\n * @param {string} [searchText] Search text to filter markets\n * @param {string} [sort] Sort field and direction (e.g., volume:desc)\n * @param {string} [excludeText] Text to exclude from results\n * @param {string} [active] Filter by active status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n marketsControllerGetMarkets: async (offset?: string, page?: string, pageSize?: string, engine?: string, minVolume?: string, change24h?: string, netFunding?: string, searchText?: string, sort?: string, excludeText?: string, active?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/markets`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (offset !== undefined) {\n localVarQueryParameter['offset'] = offset;\n }\n\n if (page !== undefined) {\n localVarQueryParameter['page'] = page;\n }\n\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n\n if (engine !== undefined) {\n localVarQueryParameter['engine'] = engine;\n }\n\n if (minVolume !== undefined) {\n localVarQueryParameter['minVolume'] = minVolume;\n }\n\n if (change24h !== undefined) {\n localVarQueryParameter['change24h'] = change24h;\n }\n\n if (netFunding !== undefined) {\n localVarQueryParameter['netFunding'] = netFunding;\n }\n\n if (searchText !== undefined) {\n localVarQueryParameter['searchText'] = searchText;\n }\n\n if (sort !== undefined) {\n localVarQueryParameter['sort'] = sort;\n }\n\n if (excludeText !== undefined) {\n localVarQueryParameter['excludeText'] = excludeText;\n }\n\n if (active !== undefined) {\n localVarQueryParameter['active'] = active;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * MarketsApi - functional programming interface\n * @export\n */\nexport const MarketsApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = MarketsApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Get active market assets and pairs\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async marketsControllerGetActiveMarket(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ActiveAssetsResponse>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.marketsControllerGetActiveMarket(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['MarketsApi.marketsControllerGetActiveMarket']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Get market data v2 (actives + watchlist baskets)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async marketsControllerGetMarketDataV2(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketDataV2Response>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.marketsControllerGetMarketDataV2(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['MarketsApi.marketsControllerGetMarketDataV2']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve market groups including active markets, top gainers, top losers, highlighted markets, and watchlist\n * @summary Get markets data\n * @param {string} [offset] Offset for pagination\n * @param {string} [page] Page number for pagination (minimum 1)\n * @param {string} [pageSize] Page size (items per page, maximum 100)\n * @param {string} [engine] Filter by engine type\n * @param {string} [minVolume] Filter by minimum volume\n * @param {string} [change24h] Filter by price change\n * @param {string} [netFunding] Filter by either positive or negative funding rate\n * @param {string} [searchText] Search text to filter markets\n * @param {string} [sort] Sort field and direction (e.g., volume:desc)\n * @param {string} [excludeText] Text to exclude from results\n * @param {string} [active] Filter by active status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async marketsControllerGetMarkets(offset?: string, page?: string, pageSize?: string, engine?: string, minVolume?: string, change24h?: string, netFunding?: string, searchText?: string, sort?: string, excludeText?: string, active?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketsResponse>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.marketsControllerGetMarkets(offset, page, pageSize, engine, minVolume, change24h, netFunding, searchText, sort, excludeText, active, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['MarketsApi.marketsControllerGetMarkets']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * MarketsApi - factory interface\n * @export\n */\nexport const MarketsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = MarketsApiFp(configuration)\n return {\n /**\n * \n * @summary Get active market assets and pairs\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n marketsControllerGetActiveMarket(options?: RawAxiosRequestConfig): AxiosPromise<ActiveAssetsResponse> {\n return localVarFp.marketsControllerGetActiveMarket(options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Get market data v2 (actives + watchlist baskets)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n marketsControllerGetMarketDataV2(options?: RawAxiosRequestConfig): AxiosPromise<MarketDataV2Response> {\n return localVarFp.marketsControllerGetMarketDataV2(options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve market groups including active markets, top gainers, top losers, highlighted markets, and watchlist\n * @summary Get markets data\n * @param {string} [offset] Offset for pagination\n * @param {string} [page] Page number for pagination (minimum 1)\n * @param {string} [pageSize] Page size (items per page, maximum 100)\n * @param {string} [engine] Filter by engine type\n * @param {string} [minVolume] Filter by minimum volume\n * @param {string} [change24h] Filter by price change\n * @param {string} [netFunding] Filter by either positive or negative funding rate\n * @param {string} [searchText] Search text to filter markets\n * @param {string} [sort] Sort field and direction (e.g., volume:desc)\n * @param {string} [excludeText] Text to exclude from results\n * @param {string} [active] Filter by active status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n marketsControllerGetMarkets(offset?: string, page?: string, pageSize?: string, engine?: string, minVolume?: string, change24h?: string, netFunding?: string, searchText?: string, sort?: string, excludeText?: string, active?: string, options?: RawAxiosRequestConfig): AxiosPromise<MarketsResponse> {\n return localVarFp.marketsControllerGetMarkets(offset, page, pageSize, engine, minVolume, change24h, netFunding, searchText, sort, excludeText, active, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * MarketsApi - object-oriented interface\n * @export\n * @class MarketsApi\n * @extends {BaseAPI}\n */\nexport class MarketsApi extends BaseAPI {\n /**\n * \n * @summary Get active market assets and pairs\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof MarketsApi\n */\n public marketsControllerGetActiveMarket(options?: RawAxiosRequestConfig) {\n return MarketsApiFp(this.configuration).marketsControllerGetActiveMarket(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Get market data v2 (actives + watchlist baskets)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof MarketsApi\n */\n public marketsControllerGetMarketDataV2(options?: RawAxiosRequestConfig) {\n return MarketsApiFp(this.configuration).marketsControllerGetMarketDataV2(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve market groups including active markets, top gainers, top losers, highlighted markets, and watchlist\n * @summary Get markets data\n * @param {string} [offset] Offset for pagination\n * @param {string} [page] Page number for pagination (minimum 1)\n * @param {string} [pageSize] Page size (items per page, maximum 100)\n * @param {string} [engine] Filter by engine type\n * @param {string} [minVolume] Filter by minimum volume\n * @param {string} [change24h] Filter by price change\n * @param {string} [netFunding] Filter by either positive or negative funding rate\n * @param {string} [searchText] Search text to filter markets\n * @param {string} [sort] Sort field and direction (e.g., volume:desc)\n * @param {string} [excludeText] Text to exclude from results\n * @param {string} [active] Filter by active status\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof MarketsApi\n */\n public marketsControllerGetMarkets(offset?: string, page?: string, pageSize?: string, engine?: string, minVolume?: string, change24h?: string, netFunding?: string, searchText?: string, sort?: string, excludeText?: string, active?: string, options?: RawAxiosRequestConfig) {\n return MarketsApiFp(this.configuration).marketsControllerGetMarkets(offset, page, pageSize, engine, minVolume, change24h, netFunding, searchText, sort, excludeText, active, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * NotificationsApi - axios parameter creator\n * @export\n */\nexport const NotificationsApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Get notifications for the authenticated user\n * @param {number} [limit] Maximum number of records to return (maximum 100)\n * @param {string} [startDate] Filter notifications created on/after this time (ISO or ms)\n * @param {string} [endDate] Filter notifications created on/before this time (ISO or ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n notificationsControllerGetNotifications: async (limit?: number, startDate?: string, endDate?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/notifications`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n\n if (startDate !== undefined) {\n localVarQueryParameter['startDate'] = startDate;\n }\n\n if (endDate !== undefined) {\n localVarQueryParameter['endDate'] = endDate;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Mark a notification by id as read or all up to a timestamp (ms)\n * @param {MarkNotificationsReadDto} markNotificationsReadDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n notificationsControllerMarkRead: async (markNotificationsReadDto: MarkNotificationsReadDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'markNotificationsReadDto' is not null or undefined\n assertParamExists('notificationsControllerMarkRead', 'markNotificationsReadDto', markNotificationsReadDto)\n const localVarPath = `/notifications/read`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(markNotificationsReadDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * NotificationsApi - functional programming interface\n * @export\n */\nexport const NotificationsApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = NotificationsApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Get notifications for the authenticated user\n * @param {number} [limit] Maximum number of records to return (maximum 100)\n * @param {string} [startDate] Filter notifications created on/after this time (ISO or ms)\n * @param {string} [endDate] Filter notifications created on/before this time (ISO or ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async notificationsControllerGetNotifications(limit?: number, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<object>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.notificationsControllerGetNotifications(limit, startDate, endDate, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['NotificationsApi.notificationsControllerGetNotifications']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Mark a notification by id as read or all up to a timestamp (ms)\n * @param {MarkNotificationsReadDto} markNotificationsReadDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async notificationsControllerMarkRead(markNotificationsReadDto: MarkNotificationsReadDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.notificationsControllerMarkRead(markNotificationsReadDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['NotificationsApi.notificationsControllerMarkRead']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * NotificationsApi - factory interface\n * @export\n */\nexport const NotificationsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = NotificationsApiFp(configuration)\n return {\n /**\n * \n * @summary Get notifications for the authenticated user\n * @param {number} [limit] Maximum number of records to return (maximum 100)\n * @param {string} [startDate] Filter notifications created on/after this time (ISO or ms)\n * @param {string} [endDate] Filter notifications created on/before this time (ISO or ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n notificationsControllerGetNotifications(limit?: number, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): AxiosPromise<Array<object>> {\n return localVarFp.notificationsControllerGetNotifications(limit, startDate, endDate, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Mark a notification by id as read or all up to a timestamp (ms)\n * @param {MarkNotificationsReadDto} markNotificationsReadDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n notificationsControllerMarkRead(markNotificationsReadDto: MarkNotificationsReadDto, options?: RawAxiosRequestConfig): AxiosPromise<object> {\n return localVarFp.notificationsControllerMarkRead(markNotificationsReadDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * NotificationsApi - object-oriented interface\n * @export\n * @class NotificationsApi\n * @extends {BaseAPI}\n */\nexport class NotificationsApi extends BaseAPI {\n /**\n * \n * @summary Get notifications for the authenticated user\n * @param {number} [limit] Maximum number of records to return (maximum 100)\n * @param {string} [startDate] Filter notifications created on/after this time (ISO or ms)\n * @param {string} [endDate] Filter notifications created on/before this time (ISO or ms)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsApi\n */\n public notificationsControllerGetNotifications(limit?: number, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig) {\n return NotificationsApiFp(this.configuration).notificationsControllerGetNotifications(limit, startDate, endDate, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Mark a notification by id as read or all up to a timestamp (ms)\n * @param {MarkNotificationsReadDto} markNotificationsReadDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof NotificationsApi\n */\n public notificationsControllerMarkRead(markNotificationsReadDto: MarkNotificationsReadDto, options?: RawAxiosRequestConfig) {\n return NotificationsApiFp(this.configuration).notificationsControllerMarkRead(markNotificationsReadDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * OrdersApi - axios parameter creator\n * @export\n */\nexport const OrdersApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Cancel a pending order\n * @param {string} orderId Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerCancelOrder: async (orderId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'orderId' is not null or undefined\n assertParamExists('ordersControllerCancelOrder', 'orderId', orderId)\n const localVarPath = `/orders/{orderId}/cancel`\n .replace(`{${\"orderId\"}}`, encodeURIComponent(String(orderId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Cancel a TWAP order and all its pending chunks\n * @param {string} orderId TWAP Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerCancelTwapOrder: async (orderId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'orderId' is not null or undefined\n assertParamExists('ordersControllerCancelTwapOrder', 'orderId', orderId)\n const localVarPath = `/orders/{orderId}/twap/cancel`\n .replace(`{${\"orderId\"}}`, encodeURIComponent(String(orderId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve all orders for the authenticated user with optional filtering by status and order type\n * @summary Get all orders\n * @param {number} [page] Page number (default: 1)\n * @param {number} [limit] Items per page (default: 50, max: 100)\n * @param {OrdersControllerGetAllOrdersStatusEnum} [status] Filter by order status\n * @param {OrdersControllerGetAllOrdersOrderTypeEnum} [orderType] Filter by order type\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetAllOrders: async (page?: number, limit?: number, status?: OrdersControllerGetAllOrdersStatusEnum, orderType?: OrdersControllerGetAllOrdersOrderTypeEnum, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/orders`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (page !== undefined) {\n localVarQueryParameter['page'] = page;\n }\n\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n\n if (status !== undefined) {\n localVarQueryParameter['status'] = status;\n }\n\n if (orderType !== undefined) {\n localVarQueryParameter['orderType'] = orderType;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Get Kalshi prediction market triggers (paginated)\n * @param {string} [category] Kalshi category (Crypto, Politics, etc.)\n * @param {string} [search] Search term\n * @param {string} [cursor] Pagination cursor\n * @param {number} [pageSize] Page size\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetKalshiTriggers: async (category?: string, search?: string, cursor?: string, pageSize?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/orders/triggers/kalshi`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (category !== undefined) {\n localVarQueryParameter['category'] = category;\n }\n\n if (search !== undefined) {\n localVarQueryParameter['search'] = search;\n }\n\n if (cursor !== undefined) {\n localVarQueryParameter['cursor'] = cursor;\n }\n\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve all open orders (LIMIT, TP, SL) for the authenticated user with detailed order information including target ratios and asset allocations\n * @summary Get all open orders\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetOpenOrders: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/orders/open`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Get prediction triggers (Hyperliquid + BTC dominance)\n * @param {OrdersControllerGetTriggersCategoryEnum} [category] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetTriggers: async (category?: OrdersControllerGetTriggersCategoryEnum, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/orders/triggers`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (category !== undefined) {\n localVarQueryParameter['category'] = category;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve list of TWAP orders with detailed execution progress, chunk status, and fill information\n * @summary Get TWAP orders with monitoring data\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetTwapOrders: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/orders/twap`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Execute a spot order\n * @param {SpotOrderRequestDto} spotOrderRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerSpotOrder: async (spotOrderRequestDto: SpotOrderRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'spotOrderRequestDto' is not null or undefined\n assertParamExists('ordersControllerSpotOrder', 'spotOrderRequestDto', spotOrderRequestDto)\n const localVarPath = `/orders/spot`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(spotOrderRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * OrdersApi - functional programming interface\n * @export\n */\nexport const OrdersApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = OrdersApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Cancel a pending order\n * @param {string} orderId Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerCancelOrder(orderId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CancelOrderResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerCancelOrder(orderId, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerCancelOrder']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Cancel a TWAP order and all its pending chunks\n * @param {string} orderId TWAP Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerCancelTwapOrder(orderId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CancelTwapResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerCancelTwapOrder(orderId, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerCancelTwapOrder']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve all orders for the authenticated user with optional filtering by status and order type\n * @summary Get all orders\n * @param {number} [page] Page number (default: 1)\n * @param {number} [limit] Items per page (default: 50, max: 100)\n * @param {OrdersControllerGetAllOrdersStatusEnum} [status] Filter by order status\n * @param {OrdersControllerGetAllOrdersOrderTypeEnum} [orderType] Filter by order type\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerGetAllOrders(page?: number, limit?: number, status?: OrdersControllerGetAllOrdersStatusEnum, orderType?: OrdersControllerGetAllOrdersOrderTypeEnum, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PaginatedOrdersResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerGetAllOrders(page, limit, status, orderType, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerGetAllOrders']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Get Kalshi prediction market triggers (paginated)\n * @param {string} [category] Kalshi category (Crypto, Politics, etc.)\n * @param {string} [search] Search term\n * @param {string} [cursor] Pagination cursor\n * @param {number} [pageSize] Page size\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerGetKalshiTriggers(category?: string, search?: string, cursor?: string, pageSize?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<KalshiTriggersResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerGetKalshiTriggers(category, search, cursor, pageSize, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerGetKalshiTriggers']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve all open orders (LIMIT, TP, SL) for the authenticated user with detailed order information including target ratios and asset allocations\n * @summary Get all open orders\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerGetOpenOrders(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<OpenOrderDto>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerGetOpenOrders(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerGetOpenOrders']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Get prediction triggers (Hyperliquid + BTC dominance)\n * @param {OrdersControllerGetTriggersCategoryEnum} [category] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerGetTriggers(category?: OrdersControllerGetTriggersCategoryEnum, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TriggersResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerGetTriggers(category, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerGetTriggers']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve list of TWAP orders with detailed execution progress, chunk status, and fill information\n * @summary Get TWAP orders with monitoring data\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerGetTwapOrders(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<TwapMonitoringDto>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerGetTwapOrders(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerGetTwapOrders']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Execute a spot order\n * @param {SpotOrderRequestDto} spotOrderRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ordersControllerSpotOrder(spotOrderRequestDto: SpotOrderRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SpotOrderResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ordersControllerSpotOrder(spotOrderRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['OrdersApi.ordersControllerSpotOrder']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * OrdersApi - factory interface\n * @export\n */\nexport const OrdersApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = OrdersApiFp(configuration)\n return {\n /**\n * \n * @summary Cancel a pending order\n * @param {string} orderId Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerCancelOrder(orderId: string, options?: RawAxiosRequestConfig): AxiosPromise<CancelOrderResponseDto> {\n return localVarFp.ordersControllerCancelOrder(orderId, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Cancel a TWAP order and all its pending chunks\n * @param {string} orderId TWAP Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerCancelTwapOrder(orderId: string, options?: RawAxiosRequestConfig): AxiosPromise<CancelTwapResponseDto> {\n return localVarFp.ordersControllerCancelTwapOrder(orderId, options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve all orders for the authenticated user with optional filtering by status and order type\n * @summary Get all orders\n * @param {number} [page] Page number (default: 1)\n * @param {number} [limit] Items per page (default: 50, max: 100)\n * @param {OrdersControllerGetAllOrdersStatusEnum} [status] Filter by order status\n * @param {OrdersControllerGetAllOrdersOrderTypeEnum} [orderType] Filter by order type\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetAllOrders(page?: number, limit?: number, status?: OrdersControllerGetAllOrdersStatusEnum, orderType?: OrdersControllerGetAllOrdersOrderTypeEnum, options?: RawAxiosRequestConfig): AxiosPromise<PaginatedOrdersResponseDto> {\n return localVarFp.ordersControllerGetAllOrders(page, limit, status, orderType, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Get Kalshi prediction market triggers (paginated)\n * @param {string} [category] Kalshi category (Crypto, Politics, etc.)\n * @param {string} [search] Search term\n * @param {string} [cursor] Pagination cursor\n * @param {number} [pageSize] Page size\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetKalshiTriggers(category?: string, search?: string, cursor?: string, pageSize?: number, options?: RawAxiosRequestConfig): AxiosPromise<KalshiTriggersResponseDto> {\n return localVarFp.ordersControllerGetKalshiTriggers(category, search, cursor, pageSize, options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve all open orders (LIMIT, TP, SL) for the authenticated user with detailed order information including target ratios and asset allocations\n * @summary Get all open orders\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetOpenOrders(options?: RawAxiosRequestConfig): AxiosPromise<Array<OpenOrderDto>> {\n return localVarFp.ordersControllerGetOpenOrders(options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Get prediction triggers (Hyperliquid + BTC dominance)\n * @param {OrdersControllerGetTriggersCategoryEnum} [category] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetTriggers(category?: OrdersControllerGetTriggersCategoryEnum, options?: RawAxiosRequestConfig): AxiosPromise<TriggersResponseDto> {\n return localVarFp.ordersControllerGetTriggers(category, options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve list of TWAP orders with detailed execution progress, chunk status, and fill information\n * @summary Get TWAP orders with monitoring data\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerGetTwapOrders(options?: RawAxiosRequestConfig): AxiosPromise<Array<TwapMonitoringDto>> {\n return localVarFp.ordersControllerGetTwapOrders(options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Execute a spot order\n * @param {SpotOrderRequestDto} spotOrderRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ordersControllerSpotOrder(spotOrderRequestDto: SpotOrderRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<SpotOrderResponseDto> {\n return localVarFp.ordersControllerSpotOrder(spotOrderRequestDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * OrdersApi - object-oriented interface\n * @export\n * @class OrdersApi\n * @extends {BaseAPI}\n */\nexport class OrdersApi extends BaseAPI {\n /**\n * \n * @summary Cancel a pending order\n * @param {string} orderId Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerCancelOrder(orderId: string, options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerCancelOrder(orderId, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Cancel a TWAP order and all its pending chunks\n * @param {string} orderId TWAP Order identifier\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerCancelTwapOrder(orderId: string, options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerCancelTwapOrder(orderId, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve all orders for the authenticated user with optional filtering by status and order type\n * @summary Get all orders\n * @param {number} [page] Page number (default: 1)\n * @param {number} [limit] Items per page (default: 50, max: 100)\n * @param {OrdersControllerGetAllOrdersStatusEnum} [status] Filter by order status\n * @param {OrdersControllerGetAllOrdersOrderTypeEnum} [orderType] Filter by order type\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerGetAllOrders(page?: number, limit?: number, status?: OrdersControllerGetAllOrdersStatusEnum, orderType?: OrdersControllerGetAllOrdersOrderTypeEnum, options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerGetAllOrders(page, limit, status, orderType, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Get Kalshi prediction market triggers (paginated)\n * @param {string} [category] Kalshi category (Crypto, Politics, etc.)\n * @param {string} [search] Search term\n * @param {string} [cursor] Pagination cursor\n * @param {number} [pageSize] Page size\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerGetKalshiTriggers(category?: string, search?: string, cursor?: string, pageSize?: number, options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerGetKalshiTriggers(category, search, cursor, pageSize, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve all open orders (LIMIT, TP, SL) for the authenticated user with detailed order information including target ratios and asset allocations\n * @summary Get all open orders\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerGetOpenOrders(options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerGetOpenOrders(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Get prediction triggers (Hyperliquid + BTC dominance)\n * @param {OrdersControllerGetTriggersCategoryEnum} [category] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerGetTriggers(category?: OrdersControllerGetTriggersCategoryEnum, options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerGetTriggers(category, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve list of TWAP orders with detailed execution progress, chunk status, and fill information\n * @summary Get TWAP orders with monitoring data\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerGetTwapOrders(options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerGetTwapOrders(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Execute a spot order\n * @param {SpotOrderRequestDto} spotOrderRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersApi\n */\n public ordersControllerSpotOrder(spotOrderRequestDto: SpotOrderRequestDto, options?: RawAxiosRequestConfig) {\n return OrdersApiFp(this.configuration).ordersControllerSpotOrder(spotOrderRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n/**\n * @export\n */\nexport const OrdersControllerGetAllOrdersStatusEnum = {\n Open: 'OPEN',\n Processing: 'PROCESSING',\n Executed: 'EXECUTED',\n Cancelled: 'CANCELLED',\n Failed: 'FAILED',\n PartiallyFilled: 'PARTIALLY_FILLED'\n} as const;\nexport type OrdersControllerGetAllOrdersStatusEnum = typeof OrdersControllerGetAllOrdersStatusEnum[keyof typeof OrdersControllerGetAllOrdersStatusEnum];\n/**\n * @export\n */\nexport const OrdersControllerGetAllOrdersOrderTypeEnum = {\n Sync: 'SYNC',\n Market: 'MARKET',\n Trigger: 'TRIGGER',\n Twap: 'TWAP',\n Ladder: 'LADDER',\n Tp: 'TP',\n Sl: 'SL',\n SpotMarket: 'SPOT_MARKET',\n SpotLimit: 'SPOT_LIMIT',\n SpotTwap: 'SPOT_TWAP'\n} as const;\nexport type OrdersControllerGetAllOrdersOrderTypeEnum = typeof OrdersControllerGetAllOrdersOrderTypeEnum[keyof typeof OrdersControllerGetAllOrdersOrderTypeEnum];\n/**\n * @export\n */\nexport const OrdersControllerGetTriggersCategoryEnum = {\n PredictionMarket: 'prediction_market',\n Btcdom: 'btcdom',\n All: 'all'\n} as const;\nexport type OrdersControllerGetTriggersCategoryEnum = typeof OrdersControllerGetTriggersCategoryEnum[keyof typeof OrdersControllerGetTriggersCategoryEnum];\n\n\n/**\n * PortfolioApi - axios parameter creator\n * @export\n */\nexport const PortfolioApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Returns portfolio and per-asset performance analytics including risk-adjusted metrics, rolling windows, and both realized-only and realized+unrealized variants.\n * @summary Get portfolio analytics with risk-adjusted metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {PortfolioControllerGetAnalyticsIntervalEnum} [interval] Display interval for date range\n * @param {number} [rollingWindowDays] Rolling window size in days (default 30, min 7, max 365)\n * @param {boolean} [includeSeries] Include daily/rolling time series (default true)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n portfolioControllerGetAnalytics: async (startDate?: string, endDate?: string, interval?: PortfolioControllerGetAnalyticsIntervalEnum, rollingWindowDays?: number, includeSeries?: boolean, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/portfolio/analytics`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (startDate !== undefined) {\n localVarQueryParameter['startDate'] = startDate;\n }\n\n if (endDate !== undefined) {\n localVarQueryParameter['endDate'] = endDate;\n }\n\n if (interval !== undefined) {\n localVarQueryParameter['interval'] = interval;\n }\n\n if (rollingWindowDays !== undefined) {\n localVarQueryParameter['rollingWindowDays'] = rollingWindowDays;\n }\n\n if (includeSeries !== undefined) {\n localVarQueryParameter['includeSeries'] = includeSeries;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Returns bucketed volume, open interest snapshot, win/loss trade counts, and overall metrics derived from trade history, trade history assets, and current open positions. Records marked as FULLY_EXTERNAL are excluded. When startDate or endDate is provided, only period-scoped overall metrics are returned.\n * @summary Get portfolio summary buckets and overall metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n portfolioControllerGetPortfolio: async (startDate?: string, endDate?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/portfolio`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (startDate !== undefined) {\n localVarQueryParameter['startDate'] = startDate;\n }\n\n if (endDate !== undefined) {\n localVarQueryParameter['endDate'] = endDate;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * PortfolioApi - functional programming interface\n * @export\n */\nexport const PortfolioApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = PortfolioApiAxiosParamCreator(configuration)\n return {\n /**\n * Returns portfolio and per-asset performance analytics including risk-adjusted metrics, rolling windows, and both realized-only and realized+unrealized variants.\n * @summary Get portfolio analytics with risk-adjusted metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {PortfolioControllerGetAnalyticsIntervalEnum} [interval] Display interval for date range\n * @param {number} [rollingWindowDays] Rolling window size in days (default 30, min 7, max 365)\n * @param {boolean} [includeSeries] Include daily/rolling time series (default true)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async portfolioControllerGetAnalytics(startDate?: string, endDate?: string, interval?: PortfolioControllerGetAnalyticsIntervalEnum, rollingWindowDays?: number, includeSeries?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PortfolioAnalyticsResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.portfolioControllerGetAnalytics(startDate, endDate, interval, rollingWindowDays, includeSeries, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PortfolioApi.portfolioControllerGetAnalytics']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Returns bucketed volume, open interest snapshot, win/loss trade counts, and overall metrics derived from trade history, trade history assets, and current open positions. Records marked as FULLY_EXTERNAL are excluded. When startDate or endDate is provided, only period-scoped overall metrics are returned.\n * @summary Get portfolio summary buckets and overall metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async portfolioControllerGetPortfolio(startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PortfolioResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.portfolioControllerGetPortfolio(startDate, endDate, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PortfolioApi.portfolioControllerGetPortfolio']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * PortfolioApi - factory interface\n * @export\n */\nexport const PortfolioApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = PortfolioApiFp(configuration)\n return {\n /**\n * Returns portfolio and per-asset performance analytics including risk-adjusted metrics, rolling windows, and both realized-only and realized+unrealized variants.\n * @summary Get portfolio analytics with risk-adjusted metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {PortfolioControllerGetAnalyticsIntervalEnum} [interval] Display interval for date range\n * @param {number} [rollingWindowDays] Rolling window size in days (default 30, min 7, max 365)\n * @param {boolean} [includeSeries] Include daily/rolling time series (default true)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n portfolioControllerGetAnalytics(startDate?: string, endDate?: string, interval?: PortfolioControllerGetAnalyticsIntervalEnum, rollingWindowDays?: number, includeSeries?: boolean, options?: RawAxiosRequestConfig): AxiosPromise<PortfolioAnalyticsResponseDto> {\n return localVarFp.portfolioControllerGetAnalytics(startDate, endDate, interval, rollingWindowDays, includeSeries, options).then((request) => request(axios, basePath));\n },\n /**\n * Returns bucketed volume, open interest snapshot, win/loss trade counts, and overall metrics derived from trade history, trade history assets, and current open positions. Records marked as FULLY_EXTERNAL are excluded. When startDate or endDate is provided, only period-scoped overall metrics are returned.\n * @summary Get portfolio summary buckets and overall metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n portfolioControllerGetPortfolio(startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): AxiosPromise<PortfolioResponseDto> {\n return localVarFp.portfolioControllerGetPortfolio(startDate, endDate, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * PortfolioApi - object-oriented interface\n * @export\n * @class PortfolioApi\n * @extends {BaseAPI}\n */\nexport class PortfolioApi extends BaseAPI {\n /**\n * Returns portfolio and per-asset performance analytics including risk-adjusted metrics, rolling windows, and both realized-only and realized+unrealized variants.\n * @summary Get portfolio analytics with risk-adjusted metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {PortfolioControllerGetAnalyticsIntervalEnum} [interval] Display interval for date range\n * @param {number} [rollingWindowDays] Rolling window size in days (default 30, min 7, max 365)\n * @param {boolean} [includeSeries] Include daily/rolling time series (default true)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PortfolioApi\n */\n public portfolioControllerGetAnalytics(startDate?: string, endDate?: string, interval?: PortfolioControllerGetAnalyticsIntervalEnum, rollingWindowDays?: number, includeSeries?: boolean, options?: RawAxiosRequestConfig) {\n return PortfolioApiFp(this.configuration).portfolioControllerGetAnalytics(startDate, endDate, interval, rollingWindowDays, includeSeries, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Returns bucketed volume, open interest snapshot, win/loss trade counts, and overall metrics derived from trade history, trade history assets, and current open positions. Records marked as FULLY_EXTERNAL are excluded. When startDate or endDate is provided, only period-scoped overall metrics are returned.\n * @summary Get portfolio summary buckets and overall metrics\n * @param {string} [startDate] Start date (ISO string or ms timestamp)\n * @param {string} [endDate] End date (ISO string or ms timestamp)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PortfolioApi\n */\n public portfolioControllerGetPortfolio(startDate?: string, endDate?: string, options?: RawAxiosRequestConfig) {\n return PortfolioApiFp(this.configuration).portfolioControllerGetPortfolio(startDate, endDate, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n/**\n * @export\n */\nexport const PortfolioControllerGetAnalyticsIntervalEnum = {\n _1d: '1d',\n _1w: '1w',\n _1m: '1m',\n _1y: '1y',\n All: 'all'\n} as const;\nexport type PortfolioControllerGetAnalyticsIntervalEnum = typeof PortfolioControllerGetAnalyticsIntervalEnum[keyof typeof PortfolioControllerGetAnalyticsIntervalEnum];\n\n\n/**\n * PositionsApi - axios parameter creator\n * @export\n */\nexport const PositionsApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Adjust position to target absolute sizes per asset (advance)\n * @param {string} positionId Position identifier\n * @param {Array<AdjustAdvanceItemDto>} adjustAdvanceItemDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerAdjustAdvancePosition: async (positionId: string, adjustAdvanceItemDto: Array<AdjustAdvanceItemDto>, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerAdjustAdvancePosition', 'positionId', positionId)\n // verify required parameter 'adjustAdvanceItemDto' is not null or undefined\n assertParamExists('positionsControllerAdjustAdvancePosition', 'adjustAdvanceItemDto', adjustAdvanceItemDto)\n const localVarPath = `/positions/{positionId}/adjust-advance`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(adjustAdvanceItemDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Adjust leverage for a position\n * @param {string} positionId Position identifier\n * @param {AdjustLeverageRequestDto} adjustLeverageRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerAdjustLeverage: async (positionId: string, adjustLeverageRequestDto: AdjustLeverageRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerAdjustLeverage', 'positionId', positionId)\n // verify required parameter 'adjustLeverageRequestDto' is not null or undefined\n assertParamExists('positionsControllerAdjustLeverage', 'adjustLeverageRequestDto', adjustLeverageRequestDto)\n const localVarPath = `/positions/{positionId}/adjust-leverage`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(adjustLeverageRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Adjust position size by reducing or increasing by a specified amount\n * @param {string} positionId Position identifier\n * @param {AdjustPositionRequestDto} adjustPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerAdjustPosition: async (positionId: string, adjustPositionRequestDto: AdjustPositionRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerAdjustPosition', 'positionId', positionId)\n // verify required parameter 'adjustPositionRequestDto' is not null or undefined\n assertParamExists('positionsControllerAdjustPosition', 'adjustPositionRequestDto', adjustPositionRequestDto)\n const localVarPath = `/positions/{positionId}/adjust`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(adjustPositionRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Fetches all open positions and closes them sequentially using MARKET or TWAP execution\n * @summary Close all open positions\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerCloseAllPositions: async (closePositionRequestDto: ClosePositionRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'closePositionRequestDto' is not null or undefined\n assertParamExists('positionsControllerCloseAllPositions', 'closePositionRequestDto', closePositionRequestDto)\n const localVarPath = `/positions/close-all`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(closePositionRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Close a position using MARKET (immediate execution), TWAP (time-weighted average), or TRIGGER (conditional trigger-close order) execution type\n * @summary Close an entire position\n * @param {string} positionId Position identifier\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerClosePosition: async (positionId: string, closePositionRequestDto: ClosePositionRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerClosePosition', 'positionId', positionId)\n // verify required parameter 'closePositionRequestDto' is not null or undefined\n assertParamExists('positionsControllerClosePosition', 'closePositionRequestDto', closePositionRequestDto)\n const localVarPath = `/positions/{positionId}/close`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(closePositionRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Create a pair trading position with various execution types: MARKET (immediate execution), TRIGGER (conditional execution), TWAP (time-weighted average), or LADDER (multiple ratio levels)\n * @summary Create a new pair trading position with order\n * @param {CreatePositionRequestDto} createPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerCreatePosition: async (createPositionRequestDto: CreatePositionRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'createPositionRequestDto' is not null or undefined\n assertParamExists('positionsControllerCreatePosition', 'createPositionRequestDto', createPositionRequestDto)\n const localVarPath = `/positions`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(createPositionRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Returns processed open positions for the authenticated user\n * @summary List processed open positions\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerGetOpenPositions: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/positions`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Computes weight deltas and returns what would be traded, without placing any orders. Use this to preview before calling the execute endpoint.\n * @summary Preview rebalance plan without executing\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerPlanRebalance: async (positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerPlanRebalance', 'positionId', positionId)\n // verify required parameter 'rebalancePositionRequestDto' is not null or undefined\n assertParamExists('positionsControllerPlanRebalance', 'rebalancePositionRequestDto', rebalancePositionRequestDto)\n const localVarPath = `/positions/{positionId}/rebalance/plan`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(rebalancePositionRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Computes weight deltas and adjusts asset sizes to match target weights. Uses existing targetWeight from position if no overrides provided.\n * @summary Rebalance position assets to target weights\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerRebalancePosition: async (positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerRebalancePosition', 'positionId', positionId)\n // verify required parameter 'rebalancePositionRequestDto' is not null or undefined\n assertParamExists('positionsControllerRebalancePosition', 'rebalancePositionRequestDto', rebalancePositionRequestDto)\n const localVarPath = `/positions/{positionId}/rebalance`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(rebalancePositionRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Update stop loss and take profit values for a position\n * @param {string} positionId Position identifier\n * @param {UpdateRiskParametersRequestDto} updateRiskParametersRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerUpdateRiskParameters: async (positionId: string, updateRiskParametersRequestDto: UpdateRiskParametersRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'positionId' is not null or undefined\n assertParamExists('positionsControllerUpdateRiskParameters', 'positionId', positionId)\n // verify required parameter 'updateRiskParametersRequestDto' is not null or undefined\n assertParamExists('positionsControllerUpdateRiskParameters', 'updateRiskParametersRequestDto', updateRiskParametersRequestDto)\n const localVarPath = `/positions/{positionId}/riskParameters`\n .replace(`{${\"positionId\"}}`, encodeURIComponent(String(positionId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(updateRiskParametersRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * PositionsApi - functional programming interface\n * @export\n */\nexport const PositionsApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = PositionsApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Adjust position to target absolute sizes per asset (advance)\n * @param {string} positionId Position identifier\n * @param {Array<AdjustAdvanceItemDto>} adjustAdvanceItemDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerAdjustAdvancePosition(positionId: string, adjustAdvanceItemDto: Array<AdjustAdvanceItemDto>, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AdjustAdvanceResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerAdjustAdvancePosition(positionId, adjustAdvanceItemDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerAdjustAdvancePosition']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Adjust leverage for a position\n * @param {string} positionId Position identifier\n * @param {AdjustLeverageRequestDto} adjustLeverageRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerAdjustLeverage(positionId: string, adjustLeverageRequestDto: AdjustLeverageRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerAdjustLeverage(positionId, adjustLeverageRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerAdjustLeverage']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Adjust position size by reducing or increasing by a specified amount\n * @param {string} positionId Position identifier\n * @param {AdjustPositionRequestDto} adjustPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerAdjustPosition(positionId: string, adjustPositionRequestDto: AdjustPositionRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AdjustPositionResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerAdjustPosition(positionId, adjustPositionRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerAdjustPosition']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Fetches all open positions and closes them sequentially using MARKET or TWAP execution\n * @summary Close all open positions\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerCloseAllPositions(closePositionRequestDto: ClosePositionRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CloseAllPositionsResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerCloseAllPositions(closePositionRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerCloseAllPositions']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Close a position using MARKET (immediate execution), TWAP (time-weighted average), or TRIGGER (conditional trigger-close order) execution type\n * @summary Close an entire position\n * @param {string} positionId Position identifier\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerClosePosition(positionId: string, closePositionRequestDto: ClosePositionRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ClosePositionResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerClosePosition(positionId, closePositionRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerClosePosition']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Create a pair trading position with various execution types: MARKET (immediate execution), TRIGGER (conditional execution), TWAP (time-weighted average), or LADDER (multiple ratio levels)\n * @summary Create a new pair trading position with order\n * @param {CreatePositionRequestDto} createPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerCreatePosition(createPositionRequestDto: CreatePositionRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreatePositionResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerCreatePosition(createPositionRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerCreatePosition']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Returns processed open positions for the authenticated user\n * @summary List processed open positions\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerGetOpenPositions(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<OpenPositionProcessedDto>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerGetOpenPositions(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerGetOpenPositions']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Computes weight deltas and returns what would be traded, without placing any orders. Use this to preview before calling the execute endpoint.\n * @summary Preview rebalance plan without executing\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerPlanRebalance(positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RebalancePlanDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerPlanRebalance(positionId, rebalancePositionRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerPlanRebalance']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Computes weight deltas and adjusts asset sizes to match target weights. Uses existing targetWeight from position if no overrides provided.\n * @summary Rebalance position assets to target weights\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerRebalancePosition(positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RebalancePositionResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerRebalancePosition(positionId, rebalancePositionRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerRebalancePosition']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Update stop loss and take profit values for a position\n * @param {string} positionId Position identifier\n * @param {UpdateRiskParametersRequestDto} updateRiskParametersRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async positionsControllerUpdateRiskParameters(positionId: string, updateRiskParametersRequestDto: UpdateRiskParametersRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UpdateRiskParametersResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.positionsControllerUpdateRiskParameters(positionId, updateRiskParametersRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PositionsApi.positionsControllerUpdateRiskParameters']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * PositionsApi - factory interface\n * @export\n */\nexport const PositionsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = PositionsApiFp(configuration)\n return {\n /**\n * \n * @summary Adjust position to target absolute sizes per asset (advance)\n * @param {string} positionId Position identifier\n * @param {Array<AdjustAdvanceItemDto>} adjustAdvanceItemDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerAdjustAdvancePosition(positionId: string, adjustAdvanceItemDto: Array<AdjustAdvanceItemDto>, options?: RawAxiosRequestConfig): AxiosPromise<AdjustAdvanceResponseDto> {\n return localVarFp.positionsControllerAdjustAdvancePosition(positionId, adjustAdvanceItemDto, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Adjust leverage for a position\n * @param {string} positionId Position identifier\n * @param {AdjustLeverageRequestDto} adjustLeverageRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerAdjustLeverage(positionId: string, adjustLeverageRequestDto: AdjustLeverageRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<object> {\n return localVarFp.positionsControllerAdjustLeverage(positionId, adjustLeverageRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Adjust position size by reducing or increasing by a specified amount\n * @param {string} positionId Position identifier\n * @param {AdjustPositionRequestDto} adjustPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerAdjustPosition(positionId: string, adjustPositionRequestDto: AdjustPositionRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<AdjustPositionResponseDto> {\n return localVarFp.positionsControllerAdjustPosition(positionId, adjustPositionRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Fetches all open positions and closes them sequentially using MARKET or TWAP execution\n * @summary Close all open positions\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerCloseAllPositions(closePositionRequestDto: ClosePositionRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CloseAllPositionsResponseDto> {\n return localVarFp.positionsControllerCloseAllPositions(closePositionRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Close a position using MARKET (immediate execution), TWAP (time-weighted average), or TRIGGER (conditional trigger-close order) execution type\n * @summary Close an entire position\n * @param {string} positionId Position identifier\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerClosePosition(positionId: string, closePositionRequestDto: ClosePositionRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<ClosePositionResponseDto> {\n return localVarFp.positionsControllerClosePosition(positionId, closePositionRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Create a pair trading position with various execution types: MARKET (immediate execution), TRIGGER (conditional execution), TWAP (time-weighted average), or LADDER (multiple ratio levels)\n * @summary Create a new pair trading position with order\n * @param {CreatePositionRequestDto} createPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerCreatePosition(createPositionRequestDto: CreatePositionRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CreatePositionResponseDto> {\n return localVarFp.positionsControllerCreatePosition(createPositionRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Returns processed open positions for the authenticated user\n * @summary List processed open positions\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerGetOpenPositions(options?: RawAxiosRequestConfig): AxiosPromise<Array<OpenPositionProcessedDto>> {\n return localVarFp.positionsControllerGetOpenPositions(options).then((request) => request(axios, basePath));\n },\n /**\n * Computes weight deltas and returns what would be traded, without placing any orders. Use this to preview before calling the execute endpoint.\n * @summary Preview rebalance plan without executing\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerPlanRebalance(positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<RebalancePlanDto> {\n return localVarFp.positionsControllerPlanRebalance(positionId, rebalancePositionRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Computes weight deltas and adjusts asset sizes to match target weights. Uses existing targetWeight from position if no overrides provided.\n * @summary Rebalance position assets to target weights\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerRebalancePosition(positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<RebalancePositionResponseDto> {\n return localVarFp.positionsControllerRebalancePosition(positionId, rebalancePositionRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Update stop loss and take profit values for a position\n * @param {string} positionId Position identifier\n * @param {UpdateRiskParametersRequestDto} updateRiskParametersRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n positionsControllerUpdateRiskParameters(positionId: string, updateRiskParametersRequestDto: UpdateRiskParametersRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<UpdateRiskParametersResponseDto> {\n return localVarFp.positionsControllerUpdateRiskParameters(positionId, updateRiskParametersRequestDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * PositionsApi - object-oriented interface\n * @export\n * @class PositionsApi\n * @extends {BaseAPI}\n */\nexport class PositionsApi extends BaseAPI {\n /**\n * \n * @summary Adjust position to target absolute sizes per asset (advance)\n * @param {string} positionId Position identifier\n * @param {Array<AdjustAdvanceItemDto>} adjustAdvanceItemDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerAdjustAdvancePosition(positionId: string, adjustAdvanceItemDto: Array<AdjustAdvanceItemDto>, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerAdjustAdvancePosition(positionId, adjustAdvanceItemDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Adjust leverage for a position\n * @param {string} positionId Position identifier\n * @param {AdjustLeverageRequestDto} adjustLeverageRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerAdjustLeverage(positionId: string, adjustLeverageRequestDto: AdjustLeverageRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerAdjustLeverage(positionId, adjustLeverageRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Adjust position size by reducing or increasing by a specified amount\n * @param {string} positionId Position identifier\n * @param {AdjustPositionRequestDto} adjustPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerAdjustPosition(positionId: string, adjustPositionRequestDto: AdjustPositionRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerAdjustPosition(positionId, adjustPositionRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Fetches all open positions and closes them sequentially using MARKET or TWAP execution\n * @summary Close all open positions\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerCloseAllPositions(closePositionRequestDto: ClosePositionRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerCloseAllPositions(closePositionRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Close a position using MARKET (immediate execution), TWAP (time-weighted average), or TRIGGER (conditional trigger-close order) execution type\n * @summary Close an entire position\n * @param {string} positionId Position identifier\n * @param {ClosePositionRequestDto} closePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerClosePosition(positionId: string, closePositionRequestDto: ClosePositionRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerClosePosition(positionId, closePositionRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Create a pair trading position with various execution types: MARKET (immediate execution), TRIGGER (conditional execution), TWAP (time-weighted average), or LADDER (multiple ratio levels)\n * @summary Create a new pair trading position with order\n * @param {CreatePositionRequestDto} createPositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerCreatePosition(createPositionRequestDto: CreatePositionRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerCreatePosition(createPositionRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Returns processed open positions for the authenticated user\n * @summary List processed open positions\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerGetOpenPositions(options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerGetOpenPositions(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Computes weight deltas and returns what would be traded, without placing any orders. Use this to preview before calling the execute endpoint.\n * @summary Preview rebalance plan without executing\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerPlanRebalance(positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerPlanRebalance(positionId, rebalancePositionRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Computes weight deltas and adjusts asset sizes to match target weights. Uses existing targetWeight from position if no overrides provided.\n * @summary Rebalance position assets to target weights\n * @param {string} positionId Position identifier\n * @param {RebalancePositionRequestDto} rebalancePositionRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerRebalancePosition(positionId: string, rebalancePositionRequestDto: RebalancePositionRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerRebalancePosition(positionId, rebalancePositionRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Update stop loss and take profit values for a position\n * @param {string} positionId Position identifier\n * @param {UpdateRiskParametersRequestDto} updateRiskParametersRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PositionsApi\n */\n public positionsControllerUpdateRiskParameters(positionId: string, updateRiskParametersRequestDto: UpdateRiskParametersRequestDto, options?: RawAxiosRequestConfig) {\n return PositionsApiFp(this.configuration).positionsControllerUpdateRiskParameters(positionId, updateRiskParametersRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * PublicStatsApi - axios parameter creator\n * @export\n */\nexport const PublicStatsApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Returns total external_fee_paid, builder_fee_paid, and volume (size * price) for PEAR fills, per address. Supports comma-separated addresses and optional startFrom filter.\n * @summary Get fee and volume stats for addresses\n * @param {string} addresses Comma-separated list of addresses\n * @param {string} [startFrom] ISO timestamp to filter fills from (inclusive)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n publicStatsControllerGetAddressStats: async (addresses: string, startFrom?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'addresses' is not null or undefined\n assertParamExists('publicStatsControllerGetAddressStats', 'addresses', addresses)\n const localVarPath = `/public-stats/address`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (addresses !== undefined) {\n localVarQueryParameter['addresses'] = addresses;\n }\n\n if (startFrom !== undefined) {\n localVarQueryParameter['startFrom'] = startFrom;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * PublicStatsApi - functional programming interface\n * @export\n */\nexport const PublicStatsApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = PublicStatsApiAxiosParamCreator(configuration)\n return {\n /**\n * Returns total external_fee_paid, builder_fee_paid, and volume (size * price) for PEAR fills, per address. Supports comma-separated addresses and optional startFrom filter.\n * @summary Get fee and volume stats for addresses\n * @param {string} addresses Comma-separated list of addresses\n * @param {string} [startFrom] ISO timestamp to filter fills from (inclusive)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async publicStatsControllerGetAddressStats(addresses: string, startFrom?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AddressStatsResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.publicStatsControllerGetAddressStats(addresses, startFrom, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['PublicStatsApi.publicStatsControllerGetAddressStats']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * PublicStatsApi - factory interface\n * @export\n */\nexport const PublicStatsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = PublicStatsApiFp(configuration)\n return {\n /**\n * Returns total external_fee_paid, builder_fee_paid, and volume (size * price) for PEAR fills, per address. Supports comma-separated addresses and optional startFrom filter.\n * @summary Get fee and volume stats for addresses\n * @param {string} addresses Comma-separated list of addresses\n * @param {string} [startFrom] ISO timestamp to filter fills from (inclusive)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n publicStatsControllerGetAddressStats(addresses: string, startFrom?: string, options?: RawAxiosRequestConfig): AxiosPromise<AddressStatsResponseDto> {\n return localVarFp.publicStatsControllerGetAddressStats(addresses, startFrom, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * PublicStatsApi - object-oriented interface\n * @export\n * @class PublicStatsApi\n * @extends {BaseAPI}\n */\nexport class PublicStatsApi extends BaseAPI {\n /**\n * Returns total external_fee_paid, builder_fee_paid, and volume (size * price) for PEAR fills, per address. Supports comma-separated addresses and optional startFrom filter.\n * @summary Get fee and volume stats for addresses\n * @param {string} addresses Comma-separated list of addresses\n * @param {string} [startFrom] ISO timestamp to filter fills from (inclusive)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PublicStatsApi\n */\n public publicStatsControllerGetAddressStats(addresses: string, startFrom?: string, options?: RawAxiosRequestConfig) {\n return PublicStatsApiFp(this.configuration).publicStatsControllerGetAddressStats(addresses, startFrom, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * SyncApi - axios parameter creator\n * @export\n */\nexport const SyncApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Sync external fills into internal state\n * @param {SyncFillsRequestDto} syncFillsRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n syncControllerSyncFills: async (syncFillsRequestDto: SyncFillsRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'syncFillsRequestDto' is not null or undefined\n assertParamExists('syncControllerSyncFills', 'syncFillsRequestDto', syncFillsRequestDto)\n const localVarPath = `/sync/fills`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(syncFillsRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * SyncApi - functional programming interface\n * @export\n */\nexport const SyncApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = SyncApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Sync external fills into internal state\n * @param {SyncFillsRequestDto} syncFillsRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async syncControllerSyncFills(syncFillsRequestDto: SyncFillsRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.syncControllerSyncFills(syncFillsRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['SyncApi.syncControllerSyncFills']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * SyncApi - factory interface\n * @export\n */\nexport const SyncApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = SyncApiFp(configuration)\n return {\n /**\n * \n * @summary Sync external fills into internal state\n * @param {SyncFillsRequestDto} syncFillsRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n syncControllerSyncFills(syncFillsRequestDto: SyncFillsRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<void> {\n return localVarFp.syncControllerSyncFills(syncFillsRequestDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * SyncApi - object-oriented interface\n * @export\n * @class SyncApi\n * @extends {BaseAPI}\n */\nexport class SyncApi extends BaseAPI {\n /**\n * \n * @summary Sync external fills into internal state\n * @param {SyncFillsRequestDto} syncFillsRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof SyncApi\n */\n public syncControllerSyncFills(syncFillsRequestDto: SyncFillsRequestDto, options?: RawAxiosRequestConfig) {\n return SyncApiFp(this.configuration).syncControllerSyncFills(syncFillsRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * TradeHistoryApi - axios parameter creator\n * @export\n */\nexport const TradeHistoryApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Retrieve all trade history for the authenticated user with detailed trade information including fees, PnL, and asset-level data\n * @summary Get all trade history\n * @param {number} [limit] Maximum number of records to return (maximum 100).\n * @param {string} [startDate] Filter trades created on/after this time. Accepts ISO string or ms timestamp.\n * @param {string} [endDate] Filter trades created on/before this time. Accepts ISO string or ms timestamp.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n tradeHistoryControllerGetTradeHistory: async (limit?: number, startDate?: string, endDate?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/trade-history`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (limit !== undefined) {\n localVarQueryParameter['limit'] = limit;\n }\n\n if (startDate !== undefined) {\n localVarQueryParameter['startDate'] = startDate;\n }\n\n if (endDate !== undefined) {\n localVarQueryParameter['endDate'] = endDate;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * TradeHistoryApi - functional programming interface\n * @export\n */\nexport const TradeHistoryApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = TradeHistoryApiAxiosParamCreator(configuration)\n return {\n /**\n * Retrieve all trade history for the authenticated user with detailed trade information including fees, PnL, and asset-level data\n * @summary Get all trade history\n * @param {number} [limit] Maximum number of records to return (maximum 100).\n * @param {string} [startDate] Filter trades created on/after this time. Accepts ISO string or ms timestamp.\n * @param {string} [endDate] Filter trades created on/before this time. Accepts ISO string or ms timestamp.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async tradeHistoryControllerGetTradeHistory(limit?: number, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<TradeHistoryDataDto>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.tradeHistoryControllerGetTradeHistory(limit, startDate, endDate, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['TradeHistoryApi.tradeHistoryControllerGetTradeHistory']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * TradeHistoryApi - factory interface\n * @export\n */\nexport const TradeHistoryApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = TradeHistoryApiFp(configuration)\n return {\n /**\n * Retrieve all trade history for the authenticated user with detailed trade information including fees, PnL, and asset-level data\n * @summary Get all trade history\n * @param {number} [limit] Maximum number of records to return (maximum 100).\n * @param {string} [startDate] Filter trades created on/after this time. Accepts ISO string or ms timestamp.\n * @param {string} [endDate] Filter trades created on/before this time. Accepts ISO string or ms timestamp.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n tradeHistoryControllerGetTradeHistory(limit?: number, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig): AxiosPromise<Array<TradeHistoryDataDto>> {\n return localVarFp.tradeHistoryControllerGetTradeHistory(limit, startDate, endDate, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * TradeHistoryApi - object-oriented interface\n * @export\n * @class TradeHistoryApi\n * @extends {BaseAPI}\n */\nexport class TradeHistoryApi extends BaseAPI {\n /**\n * Retrieve all trade history for the authenticated user with detailed trade information including fees, PnL, and asset-level data\n * @summary Get all trade history\n * @param {number} [limit] Maximum number of records to return (maximum 100).\n * @param {string} [startDate] Filter trades created on/after this time. Accepts ISO string or ms timestamp.\n * @param {string} [endDate] Filter trades created on/before this time. Accepts ISO string or ms timestamp.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TradeHistoryApi\n */\n public tradeHistoryControllerGetTradeHistory(limit?: number, startDate?: string, endDate?: string, options?: RawAxiosRequestConfig) {\n return TradeHistoryApiFp(this.configuration).tradeHistoryControllerGetTradeHistory(limit, startDate, endDate, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * VaultWalletApi - axios parameter creator\n * @export\n */\nexport const VaultWalletApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * This API performs all vault creation steps in one call: 1) Creates a Privy wallet (agent), 2) Deploys vault contract via PearVaultFactory onchain, 3) Saves to database, 4) Creates backend agent wallet for trading. This replaces the old two-step process (createVaultWallet + registerVault).\n * @summary Create a new vault wallet with onchain deployment\n * @param {CreateVaultWalletRequestDto} createVaultWalletRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerCreateVaultWallet: async (createVaultWalletRequestDto: CreateVaultWalletRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'createVaultWalletRequestDto' is not null or undefined\n assertParamExists('vaultWalletControllerCreateVaultWallet', 'createVaultWalletRequestDto', createVaultWalletRequestDto)\n const localVarPath = `/vault-wallet`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(createVaultWalletRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Delete a specific vault wallet by address. This action cannot be undone.\n * @summary Delete vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerDeleteVaultWallet: async (vaultAddress: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'vaultAddress' is not null or undefined\n assertParamExists('vaultWalletControllerDeleteVaultWallet', 'vaultAddress', vaultAddress)\n const localVarPath = `/vault-wallet`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (vaultAddress !== undefined) {\n localVarQueryParameter['vaultAddress'] = vaultAddress;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve all vault wallets for the authenticated user. Supports filtering by name and address.\n * @summary Get all vault wallets\n * @param {string} [name] Filter vault wallets by name (case-insensitive partial match)\n * @param {string} [address] Filter vault wallets by address (matches agent_address or vault_address, case-insensitive partial match)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerGetAllVaultWallets: async (name?: string, address?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/vault-wallet/all`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (name !== undefined) {\n localVarQueryParameter['name'] = name;\n }\n\n if (address !== undefined) {\n localVarQueryParameter['address'] = address;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve balances for both spot and perp accounts\n * @summary Get spot and perp account balances\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerGetBalances: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/vault-wallet/balances`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Retrieve a specific vault wallet by address (agent_address or vault_address)\n * @summary Get vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerGetVaultWallet: async (vaultAddress: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'vaultAddress' is not null or undefined\n assertParamExists('vaultWalletControllerGetVaultWallet', 'vaultAddress', vaultAddress)\n const localVarPath = `/vault-wallet`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (vaultAddress !== undefined) {\n localVarQueryParameter['vaultAddress'] = vaultAddress;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Create a new agent wallet for a specific registered vault. This is useful when the current agent wallet needs to be refreshed or rotated.\n * @summary Refresh agent wallet for vault\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerRefreshApiForVault: async (vaultAddress: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'vaultAddress' is not null or undefined\n assertParamExists('vaultWalletControllerRefreshApiForVault', 'vaultAddress', vaultAddress)\n const localVarPath = `/vault-wallet/refreshAPIforVault`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n if (vaultAddress !== undefined) {\n localVarQueryParameter['vaultAddress'] = vaultAddress;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Swap a spot token (ETH, SOL, etc.) to USDC and transfer the USDC to perp account for trading\n * @summary Swap spot token to USDC and transfer to perp\n * @param {SwapAndTransferRequestDto} swapAndTransferRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerSwapAndTransferToPerp: async (swapAndTransferRequestDto: SwapAndTransferRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'swapAndTransferRequestDto' is not null or undefined\n assertParamExists('vaultWalletControllerSwapAndTransferToPerp', 'swapAndTransferRequestDto', swapAndTransferRequestDto)\n const localVarPath = `/vault-wallet/swap-and-transfer`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(swapAndTransferRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Transfer USDC directly from perp account to spot account\n * @summary Transfer USDC from perp to spot account\n * @param {TransferPerpToSpotRequestDto} transferPerpToSpotRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerTransferPerpToSpot: async (transferPerpToSpotRequestDto: TransferPerpToSpotRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'transferPerpToSpotRequestDto' is not null or undefined\n assertParamExists('vaultWalletControllerTransferPerpToSpot', 'transferPerpToSpotRequestDto', transferPerpToSpotRequestDto)\n const localVarPath = `/vault-wallet/perp-to-spot`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(transferPerpToSpotRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Transfer USDC directly from spot account to perp account for trading\n * @summary Transfer USDC from spot to perp account\n * @param {TransferSpotToPerpRequestDto} transferSpotToPerpRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerTransferSpotToPerp: async (transferSpotToPerpRequestDto: TransferSpotToPerpRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'transferSpotToPerpRequestDto' is not null or undefined\n assertParamExists('vaultWalletControllerTransferSpotToPerp', 'transferSpotToPerpRequestDto', transferSpotToPerpRequestDto)\n const localVarPath = `/vault-wallet/spot-to-perp`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(transferSpotToPerpRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * VaultWalletApi - functional programming interface\n * @export\n */\nexport const VaultWalletApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = VaultWalletApiAxiosParamCreator(configuration)\n return {\n /**\n * This API performs all vault creation steps in one call: 1) Creates a Privy wallet (agent), 2) Deploys vault contract via PearVaultFactory onchain, 3) Saves to database, 4) Creates backend agent wallet for trading. This replaces the old two-step process (createVaultWallet + registerVault).\n * @summary Create a new vault wallet with onchain deployment\n * @param {CreateVaultWalletRequestDto} createVaultWalletRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerCreateVaultWallet(createVaultWalletRequestDto: CreateVaultWalletRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateVaultWalletResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerCreateVaultWallet(createVaultWalletRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerCreateVaultWallet']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Delete a specific vault wallet by address. This action cannot be undone.\n * @summary Delete vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerDeleteVaultWallet(vaultAddress: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerDeleteVaultWallet(vaultAddress, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerDeleteVaultWallet']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve all vault wallets for the authenticated user. Supports filtering by name and address.\n * @summary Get all vault wallets\n * @param {string} [name] Filter vault wallets by name (case-insensitive partial match)\n * @param {string} [address] Filter vault wallets by address (matches agent_address or vault_address, case-insensitive partial match)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerGetAllVaultWallets(name?: string, address?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<GetVaultWalletResponseDto>>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerGetAllVaultWallets(name, address, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerGetAllVaultWallets']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve balances for both spot and perp accounts\n * @summary Get spot and perp account balances\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerGetBalances(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetBalancesResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerGetBalances(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerGetBalances']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Retrieve a specific vault wallet by address (agent_address or vault_address)\n * @summary Get vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerGetVaultWallet(vaultAddress: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetVaultWalletResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerGetVaultWallet(vaultAddress, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerGetVaultWallet']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Create a new agent wallet for a specific registered vault. This is useful when the current agent wallet needs to be refreshed or rotated.\n * @summary Refresh agent wallet for vault\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerRefreshApiForVault(vaultAddress: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RefreshApiForVaultResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerRefreshApiForVault(vaultAddress, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerRefreshApiForVault']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Swap a spot token (ETH, SOL, etc.) to USDC and transfer the USDC to perp account for trading\n * @summary Swap spot token to USDC and transfer to perp\n * @param {SwapAndTransferRequestDto} swapAndTransferRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerSwapAndTransferToPerp(swapAndTransferRequestDto: SwapAndTransferRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SwapAndTransferResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerSwapAndTransferToPerp(swapAndTransferRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerSwapAndTransferToPerp']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Transfer USDC directly from perp account to spot account\n * @summary Transfer USDC from perp to spot account\n * @param {TransferPerpToSpotRequestDto} transferPerpToSpotRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerTransferPerpToSpot(transferPerpToSpotRequestDto: TransferPerpToSpotRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TransferResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerTransferPerpToSpot(transferPerpToSpotRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerTransferPerpToSpot']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * Transfer USDC directly from spot account to perp account for trading\n * @summary Transfer USDC from spot to perp account\n * @param {TransferSpotToPerpRequestDto} transferSpotToPerpRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async vaultWalletControllerTransferSpotToPerp(transferSpotToPerpRequestDto: TransferSpotToPerpRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TransferResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.vaultWalletControllerTransferSpotToPerp(transferSpotToPerpRequestDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['VaultWalletApi.vaultWalletControllerTransferSpotToPerp']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * VaultWalletApi - factory interface\n * @export\n */\nexport const VaultWalletApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = VaultWalletApiFp(configuration)\n return {\n /**\n * This API performs all vault creation steps in one call: 1) Creates a Privy wallet (agent), 2) Deploys vault contract via PearVaultFactory onchain, 3) Saves to database, 4) Creates backend agent wallet for trading. This replaces the old two-step process (createVaultWallet + registerVault).\n * @summary Create a new vault wallet with onchain deployment\n * @param {CreateVaultWalletRequestDto} createVaultWalletRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerCreateVaultWallet(createVaultWalletRequestDto: CreateVaultWalletRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CreateVaultWalletResponseDto> {\n return localVarFp.vaultWalletControllerCreateVaultWallet(createVaultWalletRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Delete a specific vault wallet by address. This action cannot be undone.\n * @summary Delete vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerDeleteVaultWallet(vaultAddress: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {\n return localVarFp.vaultWalletControllerDeleteVaultWallet(vaultAddress, options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve all vault wallets for the authenticated user. Supports filtering by name and address.\n * @summary Get all vault wallets\n * @param {string} [name] Filter vault wallets by name (case-insensitive partial match)\n * @param {string} [address] Filter vault wallets by address (matches agent_address or vault_address, case-insensitive partial match)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerGetAllVaultWallets(name?: string, address?: string, options?: RawAxiosRequestConfig): AxiosPromise<Array<GetVaultWalletResponseDto>> {\n return localVarFp.vaultWalletControllerGetAllVaultWallets(name, address, options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve balances for both spot and perp accounts\n * @summary Get spot and perp account balances\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerGetBalances(options?: RawAxiosRequestConfig): AxiosPromise<GetBalancesResponseDto> {\n return localVarFp.vaultWalletControllerGetBalances(options).then((request) => request(axios, basePath));\n },\n /**\n * Retrieve a specific vault wallet by address (agent_address or vault_address)\n * @summary Get vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerGetVaultWallet(vaultAddress: string, options?: RawAxiosRequestConfig): AxiosPromise<GetVaultWalletResponseDto> {\n return localVarFp.vaultWalletControllerGetVaultWallet(vaultAddress, options).then((request) => request(axios, basePath));\n },\n /**\n * Create a new agent wallet for a specific registered vault. This is useful when the current agent wallet needs to be refreshed or rotated.\n * @summary Refresh agent wallet for vault\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerRefreshApiForVault(vaultAddress: string, options?: RawAxiosRequestConfig): AxiosPromise<RefreshApiForVaultResponseDto> {\n return localVarFp.vaultWalletControllerRefreshApiForVault(vaultAddress, options).then((request) => request(axios, basePath));\n },\n /**\n * Swap a spot token (ETH, SOL, etc.) to USDC and transfer the USDC to perp account for trading\n * @summary Swap spot token to USDC and transfer to perp\n * @param {SwapAndTransferRequestDto} swapAndTransferRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerSwapAndTransferToPerp(swapAndTransferRequestDto: SwapAndTransferRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<SwapAndTransferResponseDto> {\n return localVarFp.vaultWalletControllerSwapAndTransferToPerp(swapAndTransferRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Transfer USDC directly from perp account to spot account\n * @summary Transfer USDC from perp to spot account\n * @param {TransferPerpToSpotRequestDto} transferPerpToSpotRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerTransferPerpToSpot(transferPerpToSpotRequestDto: TransferPerpToSpotRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<TransferResponseDto> {\n return localVarFp.vaultWalletControllerTransferPerpToSpot(transferPerpToSpotRequestDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Transfer USDC directly from spot account to perp account for trading\n * @summary Transfer USDC from spot to perp account\n * @param {TransferSpotToPerpRequestDto} transferSpotToPerpRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vaultWalletControllerTransferSpotToPerp(transferSpotToPerpRequestDto: TransferSpotToPerpRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<TransferResponseDto> {\n return localVarFp.vaultWalletControllerTransferSpotToPerp(transferSpotToPerpRequestDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * VaultWalletApi - object-oriented interface\n * @export\n * @class VaultWalletApi\n * @extends {BaseAPI}\n */\nexport class VaultWalletApi extends BaseAPI {\n /**\n * This API performs all vault creation steps in one call: 1) Creates a Privy wallet (agent), 2) Deploys vault contract via PearVaultFactory onchain, 3) Saves to database, 4) Creates backend agent wallet for trading. This replaces the old two-step process (createVaultWallet + registerVault).\n * @summary Create a new vault wallet with onchain deployment\n * @param {CreateVaultWalletRequestDto} createVaultWalletRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerCreateVaultWallet(createVaultWalletRequestDto: CreateVaultWalletRequestDto, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerCreateVaultWallet(createVaultWalletRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Delete a specific vault wallet by address. This action cannot be undone.\n * @summary Delete vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerDeleteVaultWallet(vaultAddress: string, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerDeleteVaultWallet(vaultAddress, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve all vault wallets for the authenticated user. Supports filtering by name and address.\n * @summary Get all vault wallets\n * @param {string} [name] Filter vault wallets by name (case-insensitive partial match)\n * @param {string} [address] Filter vault wallets by address (matches agent_address or vault_address, case-insensitive partial match)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerGetAllVaultWallets(name?: string, address?: string, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerGetAllVaultWallets(name, address, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve balances for both spot and perp accounts\n * @summary Get spot and perp account balances\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerGetBalances(options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerGetBalances(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Retrieve a specific vault wallet by address (agent_address or vault_address)\n * @summary Get vault wallet\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerGetVaultWallet(vaultAddress: string, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerGetVaultWallet(vaultAddress, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Create a new agent wallet for a specific registered vault. This is useful when the current agent wallet needs to be refreshed or rotated.\n * @summary Refresh agent wallet for vault\n * @param {string} vaultAddress Vault address - can be agent_address (Privy wallet) or vault_address (contract)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerRefreshApiForVault(vaultAddress: string, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerRefreshApiForVault(vaultAddress, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Swap a spot token (ETH, SOL, etc.) to USDC and transfer the USDC to perp account for trading\n * @summary Swap spot token to USDC and transfer to perp\n * @param {SwapAndTransferRequestDto} swapAndTransferRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerSwapAndTransferToPerp(swapAndTransferRequestDto: SwapAndTransferRequestDto, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerSwapAndTransferToPerp(swapAndTransferRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Transfer USDC directly from perp account to spot account\n * @summary Transfer USDC from perp to spot account\n * @param {TransferPerpToSpotRequestDto} transferPerpToSpotRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerTransferPerpToSpot(transferPerpToSpotRequestDto: TransferPerpToSpotRequestDto, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerTransferPerpToSpot(transferPerpToSpotRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Transfer USDC directly from spot account to perp account for trading\n * @summary Transfer USDC from spot to perp account\n * @param {TransferSpotToPerpRequestDto} transferSpotToPerpRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof VaultWalletApi\n */\n public vaultWalletControllerTransferSpotToPerp(transferSpotToPerpRequestDto: TransferSpotToPerpRequestDto, options?: RawAxiosRequestConfig) {\n return VaultWalletApiFp(this.configuration).vaultWalletControllerTransferSpotToPerp(transferSpotToPerpRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n/**\n * WatchlistApi - axios parameter creator\n * @export\n */\nexport const WatchlistApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Get the authenticated user watchlist baskets\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n watchlistControllerGetWatchlist: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n const localVarPath = `/watchlist`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Toggle a basket (pair) in the user watchlist: if exact pair exists, remove it; otherwise, add it. Order and casing are preserved.\n * @param {ToggleWatchlistDto} toggleWatchlistDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n watchlistControllerToggle: async (toggleWatchlistDto: ToggleWatchlistDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {\n // verify required parameter 'toggleWatchlistDto' is not null or undefined\n assertParamExists('watchlistControllerToggle', 'toggleWatchlistDto', toggleWatchlistDto)\n const localVarPath = `/watchlist`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication bearer required\n // http bearer authentication required\n await setBearerAuthToObject(localVarHeaderParameter, configuration)\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(toggleWatchlistDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * WatchlistApi - functional programming interface\n * @export\n */\nexport const WatchlistApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = WatchlistApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Get the authenticated user watchlist baskets\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async watchlistControllerGetWatchlist(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<WatchlistResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.watchlistControllerGetWatchlist(options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['WatchlistApi.watchlistControllerGetWatchlist']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n /**\n * \n * @summary Toggle a basket (pair) in the user watchlist: if exact pair exists, remove it; otherwise, add it. Order and casing are preserved.\n * @param {ToggleWatchlistDto} toggleWatchlistDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async watchlistControllerToggle(toggleWatchlistDto: ToggleWatchlistDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<WatchlistResponseDto>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.watchlistControllerToggle(toggleWatchlistDto, options);\n const localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n const localVarOperationServerBasePath = operationServerMap['WatchlistApi.watchlistControllerToggle']?.[localVarOperationServerIndex]?.url;\n return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n },\n }\n};\n\n/**\n * WatchlistApi - factory interface\n * @export\n */\nexport const WatchlistApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = WatchlistApiFp(configuration)\n return {\n /**\n * \n * @summary Get the authenticated user watchlist baskets\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n watchlistControllerGetWatchlist(options?: RawAxiosRequestConfig): AxiosPromise<WatchlistResponseDto> {\n return localVarFp.watchlistControllerGetWatchlist(options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Toggle a basket (pair) in the user watchlist: if exact pair exists, remove it; otherwise, add it. Order and casing are preserved.\n * @param {ToggleWatchlistDto} toggleWatchlistDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n watchlistControllerToggle(toggleWatchlistDto: ToggleWatchlistDto, options?: RawAxiosRequestConfig): AxiosPromise<WatchlistResponseDto> {\n return localVarFp.watchlistControllerToggle(toggleWatchlistDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * WatchlistApi - object-oriented interface\n * @export\n * @class WatchlistApi\n * @extends {BaseAPI}\n */\nexport class WatchlistApi extends BaseAPI {\n /**\n * \n * @summary Get the authenticated user watchlist baskets\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WatchlistApi\n */\n public watchlistControllerGetWatchlist(options?: RawAxiosRequestConfig) {\n return WatchlistApiFp(this.configuration).watchlistControllerGetWatchlist(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Toggle a basket (pair) in the user watchlist: if exact pair exists, remove it; otherwise, add it. Order and casing are preserved.\n * @param {ToggleWatchlistDto} toggleWatchlistDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WatchlistApi\n */\n public watchlistControllerToggle(toggleWatchlistDto: ToggleWatchlistDto, options?: RawAxiosRequestConfig) {\n return WatchlistApiFp(this.configuration).watchlistControllerToggle(toggleWatchlistDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Pear Protocol Trading API\n * API for managing pair trading positions and orders on the Pear Protocol platform for Hyperliquid Engine.\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: dev@pearprotocol.io\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ConfigurationParameters {\n apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);\n username?: string;\n password?: string;\n accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);\n basePath?: string;\n serverIndex?: number;\n baseOptions?: any;\n formDataCtor?: new () => any;\n}\n\nexport class Configuration {\n /**\n * parameter for apiKey security\n * @param name security name\n * @memberof Configuration\n */\n apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);\n /**\n * parameter for basic security\n *\n * @type {string}\n * @memberof Configuration\n */\n username?: string;\n /**\n * parameter for basic security\n *\n * @type {string}\n * @memberof Configuration\n */\n password?: string;\n /**\n * parameter for oauth2 security\n * @param name security name\n * @param scopes oauth2 scope\n * @memberof Configuration\n */\n accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);\n /**\n * override base path\n *\n * @type {string}\n * @memberof Configuration\n */\n basePath?: string;\n /**\n * override server index\n *\n * @type {number}\n * @memberof Configuration\n */\n serverIndex?: number;\n /**\n * base options for axios calls\n *\n * @type {any}\n * @memberof Configuration\n */\n baseOptions?: any;\n /**\n * The FormData constructor that will be used to create multipart form data\n * requests. You can inject this here so that execution environments that\n * do not support the FormData class can still run the generated client.\n *\n * @type {new () => FormData}\n */\n formDataCtor?: new () => any;\n\n constructor(param: ConfigurationParameters = {}) {\n this.apiKey = param.apiKey;\n this.username = param.username;\n this.password = param.password;\n this.accessToken = param.accessToken;\n this.basePath = param.basePath;\n this.serverIndex = param.serverIndex;\n this.baseOptions = {\n ...param.baseOptions,\n headers: {\n ...param.baseOptions?.headers,\n },\n };\n this.formDataCtor = param.formDataCtor;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import axios, {\n type AxiosInstance,\n type AxiosError,\n type AxiosRequestConfig,\n type InternalAxiosRequestConfig,\n} from 'axios';\nimport { PearApiError } from './errors';\nexport * from './generated';\nexport * from './errors';\n\nimport {\n Configuration,\n AccountsApi,\n AgentWalletApi,\n APIKeysApi,\n AuthenticationApi,\n FillsApi,\n MarketsApi,\n NotificationsApi,\n OrdersApi,\n PortfolioApi,\n PositionsApi,\n PublicStatsApi,\n SyncApi,\n TradeHistoryApi,\n WatchlistApi,\n type AuthenticateRequestDto,\n type RefreshTokenRequestDto,\n type LogoutRequestDto,\n type ApiKeysControllerCreateApiKeyRequest,\n type MarkNotificationsReadDto,\n type SpotOrderRequestDto,\n type CreatePositionRequestDto,\n type ClosePositionRequestDto,\n type AdjustPositionRequestDto,\n type AdjustAdvanceItemDto,\n type AdjustLeverageRequestDto,\n type UpdateRiskParametersRequestDto,\n type RebalancePositionRequestDto,\n type ToggleWatchlistDto,\n type SyncFillsRequestDto,\n} from './generated';\nimport type {\n FillsQuery,\n KalshiTriggersQuery,\n MarketsQuery,\n NotificationsQuery,\n OrdersQuery,\n TradeHistoryQuery,\n TriggersQuery,\n} from '../types';\n\nconst DEFAULT_BASE_PATH = 'https://hl-v2.pearprotocol.io';\n\nexport interface PearApiConfig {\n basePath?: string;\n onTokenRefreshed?: (accessToken: string, refreshToken: string) => void;\n onLogout?: () => void;\n}\n\nexport class PearApi {\n private basePath: string;\n private accessToken: string | null = null;\n private refreshToken: string | null = null;\n private axiosInstance: AxiosInstance;\n private isRefreshing = false;\n private pendingRequests: Array<(token: string | null) => void> = [];\n public onTokenRefreshed?: (accessToken: string, refreshToken: string) => void;\n public onLogout?: () => void;\n\n constructor(config?: PearApiConfig) {\n this.basePath = config?.basePath ?? DEFAULT_BASE_PATH;\n this.onTokenRefreshed = config?.onTokenRefreshed;\n this.onLogout = config?.onLogout;\n this.axiosInstance = axios.create();\n this.setupInterceptors();\n }\n\n private setupInterceptors() {\n this.axiosInstance.interceptors.request.use(\n (config: InternalAxiosRequestConfig) => {\n if (this.accessToken) {\n config.headers = config.headers ?? {};\n config.headers['Authorization'] = `Bearer ${this.accessToken}`;\n }\n return config;\n },\n );\n\n this.axiosInstance.interceptors.response.use(\n (response) => response,\n async (error: AxiosError) => {\n const originalRequest = error.config as AxiosRequestConfig & { _retry?: boolean };\n const status = error.response?.status ?? 0;\n\n if (status !== 401 || !originalRequest) {\n this.transformError(error);\n }\n\n // 401 from refresh endpoint → logout\n if (originalRequest.url?.includes('/auth/refresh')) {\n this.clearTokens();\n this.onLogout?.();\n this.transformError(error);\n }\n\n // Already retried → logout\n if (originalRequest._retry) {\n this.clearTokens();\n this.onLogout?.();\n this.transformError(error);\n }\n\n originalRequest._retry = true;\n\n // If refresh already in progress, queue this request\n if (this.isRefreshing) {\n return new Promise((resolve, reject) => {\n this.pendingRequests.push((newToken) => {\n if (!newToken) {\n try { this.transformError(error as AxiosError); } catch (e) { return reject(e); }\n }\n originalRequest.headers = originalRequest.headers ?? {};\n (originalRequest.headers as Record<string, string>)['Authorization'] = `Bearer ${newToken}`;\n resolve(this.axiosInstance.request(originalRequest));\n });\n });\n }\n\n this.isRefreshing = true;\n\n try {\n if (!this.refreshToken) {\n throw new Error('No refresh token available');\n }\n\n const { data } = await new AuthenticationApi(\n this.createConfig(),\n ).authControllerRefreshToken({ refreshToken: this.refreshToken });\n\n this.accessToken = data.accessToken;\n this.refreshToken = data.refreshToken;\n this.onTokenRefreshed?.(data.accessToken, data.refreshToken);\n\n this.resolvePendingRequests(data.accessToken);\n\n originalRequest.headers = originalRequest.headers ?? {};\n (originalRequest.headers as Record<string, string>)['Authorization'] = `Bearer ${data.accessToken}`;\n return this.axiosInstance.request(originalRequest);\n } catch (refreshErr) {\n this.resolvePendingRequests(null);\n this.clearTokens();\n this.onLogout?.();\n this.transformError(refreshErr as AxiosError);\n } finally {\n this.isRefreshing = false;\n }\n },\n );\n }\n\n private resolvePendingRequests(token: string | null) {\n this.pendingRequests.forEach((cb) => cb(token));\n this.pendingRequests = [];\n }\n\n private clearTokens() {\n this.accessToken = null;\n this.refreshToken = null;\n }\n\n private transformError(error: AxiosError): never {\n if (error.response) {\n const { status, data } = error.response as { status: number; data: any };\n const message = data?.message ?? error.message;\n const code = data?.code ?? 'UNKNOWN';\n throw new PearApiError(message, status, code, error);\n }\n\n throw new PearApiError(error.message ?? 'Network error', 0, 'NETWORK_ERROR', error);\n }\n\n private createConfig(): Configuration {\n return new Configuration({ basePath: this.basePath });\n }\n\n private api<T extends new (config?: Configuration, basePath?: string, axiosInstance?: AxiosInstance) => InstanceType<T>>(\n ApiClass: T,\n ): InstanceType<T> {\n return new ApiClass(this.createConfig(), this.basePath, this.axiosInstance);\n }\n\n setAccessToken(token: string) {\n this.accessToken = token;\n }\n\n setRefreshToken(token: string) {\n this.refreshToken = token;\n }\n\n setTokens(accessToken: string, refreshToken: string) {\n this.accessToken = accessToken;\n this.refreshToken = refreshToken;\n }\n\n getAccessToken(): string | null {\n return this.accessToken;\n }\n\n getRefreshToken(): string | null {\n return this.refreshToken;\n }\n\n public readonly public = {\n auth: {\n login: async (body: AuthenticateRequestDto) => {\n const response = await this.api(AuthenticationApi).authControllerAuthenticate(body);\n this.accessToken = response.data.accessToken;\n this.refreshToken = response.data.refreshToken;\n this.onTokenRefreshed?.(response.data.accessToken, response.data.refreshToken);\n return response;\n },\n\n getEIP712Message: (address: string, clientId: string, chainId: number) =>\n this.api(AuthenticationApi).authControllerGetEIP712Message(address, clientId, chainId),\n\n refresh: async (body: RefreshTokenRequestDto) => {\n const response = await this.api(AuthenticationApi).authControllerRefreshToken(body);\n this.accessToken = response.data.accessToken;\n this.refreshToken = response.data.refreshToken;\n this.onTokenRefreshed?.(response.data.accessToken, response.data.refreshToken);\n return response;\n },\n\n logout: async (body: LogoutRequestDto) => {\n const response = await this.api(AuthenticationApi).authControllerLogout(body);\n this.clearTokens();\n this.onLogout?.();\n return response;\n },\n },\n\n fills: {\n list: (params?: FillsQuery) =>\n this.api(FillsApi).fillsControllerGetFills(\n params?.address, params?.assetName, params?.clientId,\n params?.isPearTrade, params?.startTime, params?.endTime,\n ),\n },\n\n markets: {\n list: (params?: MarketsQuery) =>\n this.api(MarketsApi).marketsControllerGetMarkets(\n params?.offset, params?.page, params?.pageSize, params?.engine,\n params?.minVolume, params?.change24h, params?.netFunding,\n params?.searchText, params?.sort, params?.excludeText, params?.active,\n ),\n\n active: () =>\n this.api(MarketsApi).marketsControllerGetActiveMarket(),\n },\n\n stats: {\n addressStats: (addresses: string, startFrom?: string) =>\n this.api(PublicStatsApi).publicStatsControllerGetAddressStats(addresses, startFrom),\n },\n };\n\n public readonly private = {\n accounts: {\n summary: () =>\n this.api(AccountsApi).accountsControllerGetAccountSummary(),\n },\n\n agentWallet: {\n get: () =>\n this.api(AgentWalletApi).agentWalletControllerGetAgentWallet(),\n\n create: () =>\n this.api(AgentWalletApi).agentWalletControllerCreateAgentWallet(),\n },\n\n apiKeys: {\n list: () =>\n this.api(APIKeysApi).apiKeysControllerGetUserApiKeys(),\n\n create: (body: ApiKeysControllerCreateApiKeyRequest) =>\n this.api(APIKeysApi).apiKeysControllerCreateApiKey(body),\n },\n\n notifications: {\n list: (params?: NotificationsQuery) =>\n this.api(NotificationsApi).notificationsControllerGetNotifications(\n params?.limit, params?.startDate, params?.endDate,\n ),\n\n markRead: (body: MarkNotificationsReadDto) =>\n this.api(NotificationsApi).notificationsControllerMarkRead(body),\n },\n\n orders: {\n list: (params?: OrdersQuery) =>\n this.api(OrdersApi).ordersControllerGetAllOrders(\n params?.page, params?.limit, params?.status, params?.orderType,\n ),\n\n open: () =>\n this.api(OrdersApi).ordersControllerGetOpenOrders(),\n\n twap: () =>\n this.api(OrdersApi).ordersControllerGetTwapOrders(),\n\n cancel: (orderId: string) =>\n this.api(OrdersApi).ordersControllerCancelOrder(orderId),\n\n cancelTwap: (orderId: string) =>\n this.api(OrdersApi).ordersControllerCancelTwapOrder(orderId),\n\n spot: (body: SpotOrderRequestDto) =>\n this.api(OrdersApi).ordersControllerSpotOrder(body),\n\n triggers: (params?: TriggersQuery) =>\n this.api(OrdersApi).ordersControllerGetTriggers(params?.category),\n\n kalshiTriggers: (params?: KalshiTriggersQuery) =>\n this.api(OrdersApi).ordersControllerGetKalshiTriggers(\n params?.category, params?.search, params?.cursor, params?.pageSize,\n ),\n },\n\n portfolio: {\n get: () =>\n this.api(PortfolioApi).portfolioControllerGetPortfolio(),\n },\n\n positions: {\n list: () =>\n this.api(PositionsApi).positionsControllerGetOpenPositions(),\n\n create: (body: CreatePositionRequestDto) =>\n this.api(PositionsApi).positionsControllerCreatePosition(body),\n\n close: (positionId: string, body: ClosePositionRequestDto) =>\n this.api(PositionsApi).positionsControllerClosePosition(positionId, body),\n\n closeAll: (body: ClosePositionRequestDto) =>\n this.api(PositionsApi).positionsControllerCloseAllPositions(body),\n\n adjust: (positionId: string, body: AdjustPositionRequestDto) =>\n this.api(PositionsApi).positionsControllerAdjustPosition(positionId, body),\n\n adjustAdvance: (positionId: string, body: AdjustAdvanceItemDto[]) =>\n this.api(PositionsApi).positionsControllerAdjustAdvancePosition(positionId, body),\n\n adjustLeverage: (positionId: string, body: AdjustLeverageRequestDto) =>\n this.api(PositionsApi).positionsControllerAdjustLeverage(positionId, body),\n\n updateRiskParameters: (positionId: string, body: UpdateRiskParametersRequestDto) =>\n this.api(PositionsApi).positionsControllerUpdateRiskParameters(positionId, body),\n\n planRebalance: (positionId: string, body: RebalancePositionRequestDto) =>\n this.api(PositionsApi).positionsControllerPlanRebalance(positionId, body),\n\n rebalance: (positionId: string, body: RebalancePositionRequestDto) =>\n this.api(PositionsApi).positionsControllerRebalancePosition(positionId, body),\n },\n\n sync: {\n fills: (body: SyncFillsRequestDto) =>\n this.api(SyncApi).syncControllerSyncFills(body),\n },\n\n tradeHistory: {\n list: (params?: TradeHistoryQuery) =>\n this.api(TradeHistoryApi).tradeHistoryControllerGetTradeHistory(\n params?.limit, params?.startDate, params?.endDate,\n ),\n },\n\n watchlist: {\n get: () =>\n this.api(WatchlistApi).watchlistControllerGetWatchlist(),\n\n toggle: (body: ToggleWatchlistDto) =>\n this.api(WatchlistApi).watchlistControllerToggle(body),\n },\n };\n}\n","import type { CandleData, CandleInterval, HistoricalRange } from './types';\n\nexport const createKey = (symbol: string, interval: CandleInterval): string => `${symbol}-${interval}`;\n\nexport const getIntervalSeconds = (interval: CandleInterval): number => {\n switch (interval) {\n case '1m':\n return 60;\n case '3m':\n return 3 * 60;\n case '5m':\n return 5 * 60;\n case '15m':\n return 15 * 60;\n case '30m':\n return 30 * 60;\n case '1h':\n return 60 * 60;\n case '2h':\n return 2 * 60 * 60;\n case '4h':\n return 4 * 60 * 60;\n case '8h':\n return 8 * 60 * 60;\n case '12h':\n return 12 * 60 * 60;\n case '1d':\n return 24 * 60 * 60;\n case '3d':\n return 3 * 24 * 60 * 60;\n case '1w':\n return 7 * 24 * 60 * 60;\n case '1M':\n return 30 * 24 * 60 * 60;\n }\n};\n\nexport const mergeRanges = (ranges: HistoricalRange[], newRange: HistoricalRange): HistoricalRange[] => {\n const all = [...ranges, newRange].sort((a, b) => a.start - b.start);\n const merged: HistoricalRange[] = [];\n\n for (const r of all) {\n const last = merged[merged.length - 1];\n if (merged.length === 0 || !last || r.start > last.end) {\n merged.push({ start: r.start, end: r.end });\n } else {\n last.end = Math.max(last.end, r.end);\n }\n }\n\n return merged;\n};\n\nexport const createCandleLookups = (\n tokenCandles: Record<string, CandleData[]>,\n): Record<string, Map<number, CandleData>> => {\n const lookups: Record<string, Map<number, CandleData>> = {};\n\n for (const [symbol, candles] of Object.entries(tokenCandles)) {\n const lookup = new Map<number, CandleData>();\n for (const candle of candles) {\n lookup.set(candle.t, candle);\n }\n lookups[symbol] = lookup;\n }\n\n return lookups;\n};\n\nexport const getCompleteTimestamps = (\n candleLookups: Record<string, Map<number, CandleData>>,\n requiredSymbols: string[],\n): number[] => {\n if (requiredSymbols.length === 0) return [];\n\n let baseSymbol: string | undefined;\n let baseLookup: Map<number, CandleData> | undefined;\n let baseSize = Infinity;\n\n for (const symbol of requiredSymbols) {\n const lookup = candleLookups[symbol];\n const size = lookup?.size ?? 0;\n if (size === 0) return [];\n if (size < baseSize) {\n baseSize = size;\n baseSymbol = symbol;\n baseLookup = lookup;\n }\n }\n\n if (!baseLookup || !baseSymbol) return [];\n\n const result: number[] = [];\n for (const timestamp of Array.from(baseLookup.keys())) {\n let ok = true;\n for (const symbol of requiredSymbols) {\n if (symbol === baseSymbol) continue;\n const lookup = candleLookups[symbol];\n if (!lookup || !lookup.has(timestamp)) {\n ok = false;\n break;\n }\n }\n if (ok) result.push(timestamp);\n }\n\n result.sort((a, b) => a - b);\n return result;\n};\n","import type { CandleData, CandleInterval, TokenHistoricalPriceData } from '../types';\nimport { createKey, getIntervalSeconds, mergeRanges } from '../utils';\nimport type { HistoricalRange } from '../types';\n\nexport class CandleCache {\n private historicalPriceData: Record<string, TokenHistoricalPriceData> = {};\n private loadingTokens: Set<string> = new Set();\n\n public addLoadingToken(symbol: string): void {\n this.loadingTokens.add(symbol);\n }\n\n public removeLoadingToken(symbol: string): void {\n this.loadingTokens.delete(symbol);\n }\n\n public addHistoricalPriceData(\n symbol: string,\n interval: CandleInterval,\n candles: CandleData[],\n range: HistoricalRange,\n ): void {\n const key = createKey(symbol, interval);\n const existing = this.historicalPriceData[key];\n\n if (!existing) {\n const sortedCandles = [...candles].sort((a, b) => a.t - b.t);\n const noDataBefore = sortedCandles.length === 0 ? range.end : null;\n this.historicalPriceData[key] = {\n symbol,\n interval,\n candles: sortedCandles,\n oldestTime: sortedCandles.length > 0 ? (sortedCandles[0]?.t ?? null) : null,\n latestTime: sortedCandles.length > 0 ? (sortedCandles[sortedCandles.length - 1]?.t ?? null) : null,\n requestedRanges: [range],\n noDataBefore,\n };\n return;\n }\n\n const existingTimes = new Set(existing.candles.map((c) => c.t));\n const newCandles = candles.filter((c) => !existingTimes.has(c.t));\n const mergedCandles = [...existing.candles, ...newCandles].sort((a, b) => a.t - b.t);\n\n const oldestTime = mergedCandles.length > 0 ? (mergedCandles[0]?.t ?? null) : null;\n const latestTime = mergedCandles.length > 0 ? (mergedCandles[mergedCandles.length - 1]?.t ?? null) : null;\n const mergedRanges = mergeRanges(existing.requestedRanges, range);\n\n let noDataBefore = existing.noDataBefore;\n if (candles.length === 0 && existing.oldestTime !== null && range.end <= existing.oldestTime) {\n noDataBefore = existing.oldestTime;\n }\n\n this.historicalPriceData[key] = {\n ...existing,\n candles: mergedCandles,\n oldestTime,\n latestTime,\n requestedRanges: mergedRanges,\n noDataBefore,\n };\n }\n\n public hasData(symbol: string, interval: CandleInterval, startTime: number, endTime: number): boolean {\n const key = createKey(symbol, interval);\n const tokenData = this.historicalPriceData[key];\n\n if (!tokenData) return false;\n\n if (tokenData.noDataBefore !== null && endTime <= tokenData.noDataBefore) {\n return true;\n }\n\n for (const range of tokenData.requestedRanges) {\n if (range.start <= startTime && range.end >= endTime) {\n return true;\n }\n }\n\n if (tokenData.oldestTime === null || tokenData.latestTime === null) {\n return false;\n }\n\n const intervalMs = getIntervalSeconds(interval) * 1000;\n const hasStartCoverage = tokenData.oldestTime <= startTime;\n const hasEndCoverage = tokenData.latestTime >= endTime || tokenData.latestTime + intervalMs >= endTime;\n\n return hasStartCoverage && hasEndCoverage;\n }\n\n public getData(symbol: string, interval: CandleInterval, startTime: number, endTime: number): CandleData[] {\n const key = createKey(symbol, interval);\n const tokenData = this.historicalPriceData[key];\n if (!tokenData) return [];\n return tokenData.candles.filter((candle) => candle.t >= startTime && candle.t < endTime);\n }\n\n public getEffectiveBoundary(symbols: string[], interval: CandleInterval): number | null {\n if (symbols.length === 0) return null;\n\n let maxBoundary: number | null = null;\n\n for (const symbol of symbols) {\n const key = createKey(symbol, interval);\n const tokenData = this.historicalPriceData[key];\n if (!tokenData) continue;\n\n const boundary = tokenData.noDataBefore ?? tokenData.oldestTime;\n if (boundary !== null) {\n if (maxBoundary === null || boundary > maxBoundary) {\n maxBoundary = boundary;\n }\n }\n }\n\n return maxBoundary;\n }\n\n public getLatestCandle(symbol: string, interval: CandleInterval): CandleData | null {\n const key = createKey(symbol, interval);\n const tokenData = this.historicalPriceData[key];\n if (!tokenData || tokenData.candles.length === 0) return null;\n return tokenData.candles[tokenData.candles.length - 1] ?? null;\n }\n\n public removeToken(symbol: string, interval: CandleInterval): void {\n const key = createKey(symbol, interval);\n delete this.historicalPriceData[key];\n this.loadingTokens.delete(symbol);\n }\n\n public clear(): void {\n this.historicalPriceData = {};\n this.loadingTokens = new Set();\n }\n}\n","import type { HyperliquidWs } from '../../ws/hyperliquid';\nimport type { CandleData, CandleInterval } from './types';\n\nexport type CandleHandler = (symbol: string, candle: CandleData) => void;\n\ninterface HyperliquidCandlePayload {\n s: string;\n t: number;\n T: number;\n o: string;\n h: string;\n l: string;\n c: string;\n}\n\nexport class HyperliquidCandleWs {\n private ws: HyperliquidWs;\n private onCandle: CandleHandler;\n private handlerId: string | null = null;\n private subscribedKeys = new Set<string>();\n\n constructor(ws: HyperliquidWs, onCandle: CandleHandler) {\n this.ws = ws;\n this.onCandle = onCandle;\n }\n\n public start(): void {\n if (this.handlerId) return;\n\n this.handlerId = this.ws.addChannelHandler('candle', (data: unknown) => {\n const result = this.parsePayload(data as HyperliquidCandlePayload);\n if (result) {\n this.onCandle(result.symbol, result.candle);\n }\n });\n }\n\n public stop(): void {\n if (this.handlerId) {\n this.ws.removeChannelHandler('candle', this.handlerId);\n this.handlerId = null;\n }\n\n for (const key of this.subscribedKeys) {\n const [symbol, interval] = key.split('::') as [string, CandleInterval];\n this.ws.unsubscribe(key);\n }\n\n this.subscribedKeys.clear();\n }\n\n public subscribe(symbol: string, interval: CandleInterval): void {\n const key = `${symbol}::${interval}`;\n if (this.subscribedKeys.has(key)) return;\n\n this.subscribedKeys.add(key);\n this.ws.subscribe(key, { type: 'candle', coin: symbol, interval });\n }\n\n public onHistoricalDataFetched(_symbol: string, _interval: CandleInterval, _candles: CandleData[]): void {}\n\n public unsubscribe(symbol: string, interval: CandleInterval): void {\n const key = `${symbol}::${interval}`;\n if (!this.subscribedKeys.has(key)) return;\n\n this.subscribedKeys.delete(key);\n this.ws.unsubscribe(key);\n }\n\n private parsePayload(d: HyperliquidCandlePayload): { symbol: string; candle: CandleData } | null {\n if (!d || !d.s) return null;\n return {\n symbol: d.s,\n candle: {\n s: d.s,\n t: d.t,\n T: d.T,\n o: Number(d.o),\n h: Number(d.h),\n l: Number(d.l),\n c: Number(d.c),\n },\n };\n }\n}\n","import axios from 'axios';\nimport type { CandleData, CandleInterval } from '../types';\n\nexport async function fetchHistoricalCandles(\n symbol: string,\n startTime: number,\n endTime: number,\n interval: CandleInterval,\n): Promise<CandleData[]> {\n const request = {\n req: { coin: symbol, startTime, endTime, interval },\n type: 'candleSnapshot' as const,\n };\n\n const { data } = await axios.post<CandleData[]>('https://api.hyperliquid.xyz/info', request);\n return data;\n}\n","import type { HyperliquidWs } from '../../../ws/hyperliquid';\nimport { CandleCache } from '../cache';\nimport { HyperliquidCandleWs } from '../candle-ws';\nimport type { CandleData, CandleInterval, ChartConfig, RealtimeCandleCallback, TokenSelection } from '../types';\nimport { fetchHistoricalCandles } from './fetch-candles';\n\nexport class DataCollector {\n private ws: HyperliquidWs;\n private longTokens: TokenSelection[];\n private shortTokens: TokenSelection[];\n private candleInterval: CandleInterval;\n\n private prevTokenSymbols: Set<string> = new Set();\n private prevInterval: CandleInterval | null = null;\n\n private candleWs: HyperliquidCandleWs | null = null;\n private latestCandles: Map<string, CandleData> = new Map();\n private realtimeListeners: Map<string, RealtimeCandleCallback> = new Map();\n\n private cache = new CandleCache();\n\n constructor(config: ChartConfig) {\n this.ws = config.ws;\n this.longTokens = config.longTokens ?? [];\n this.shortTokens = config.shortTokens ?? [];\n this.candleInterval = config.candleInterval ?? '1h';\n\n this.syncTokenChanges();\n }\n\n public setTokens(longTokens: TokenSelection[], shortTokens: TokenSelection[]): void {\n this.longTokens = longTokens;\n this.shortTokens = shortTokens;\n this.syncWsSubscriptions();\n this.syncTokenChanges();\n }\n\n public setCandleInterval(interval: CandleInterval): void {\n const prevInterval = this.candleInterval;\n this.candleInterval = interval;\n this.syncTokenChanges();\n\n if (this.candleWs && prevInterval !== interval) {\n for (const symbol of this.prevTokenSymbols) {\n this.candleWs.unsubscribe(symbol, prevInterval);\n }\n this.latestCandles.clear();\n for (const symbol of this.prevTokenSymbols) {\n this.candleWs.subscribe(symbol, interval);\n }\n }\n }\n\n public attachCandleWs(): void {\n if (this.candleWs) return;\n\n this.candleWs = new HyperliquidCandleWs(this.ws, (symbol, candle) => {\n this.latestCandles.set(symbol, candle);\n for (const cb of this.realtimeListeners.values()) {\n try {\n cb(symbol, candle);\n } catch (error) {\n console.warn('Error in realtime listener callback', error);\n }\n }\n });\n\n this.candleWs.start();\n\n for (const token of this.getAllTokens()) {\n const latestCandle = this.cache.getLatestCandle(token.symbol, this.candleInterval);\n if (latestCandle && !this.latestCandles.has(token.symbol)) {\n this.latestCandles.set(token.symbol, latestCandle);\n }\n this.candleWs.subscribe(token.symbol, this.candleInterval);\n }\n }\n\n public detachCandleWs(): void {\n if (this.candleWs) {\n this.candleWs.stop();\n this.candleWs = null;\n }\n }\n\n public get isWsAttached(): boolean {\n return this.candleWs !== null;\n }\n\n public addRealtimeListener(id: string, cb: RealtimeCandleCallback): void {\n this.realtimeListeners.set(id, cb);\n }\n\n public removeRealtimeListener(id: string): void {\n this.realtimeListeners.delete(id);\n }\n\n public getLatestCandles(): Record<string, CandleData> | null {\n const allTokens = this.getAllTokens();\n if (allTokens.length === 0) return null;\n\n const result: Record<string, CandleData> = {};\n for (const token of allTokens) {\n const candle = this.latestCandles.get(token.symbol);\n if (!candle) return null;\n result[token.symbol] = candle;\n }\n return result;\n }\n\n public getLongTokens(): TokenSelection[] {\n return this.longTokens;\n }\n\n public getShortTokens(): TokenSelection[] {\n return this.shortTokens;\n }\n\n public getCandleInterval(): CandleInterval {\n return this.candleInterval;\n }\n\n public getEffectiveDataBoundary(interval: CandleInterval): number | null {\n const symbols = this.getAllTokens().map((t) => t.symbol);\n return this.cache.getEffectiveBoundary(symbols, interval);\n }\n\n public clearCache(): void {\n this.cache.clear();\n this.latestCandles.clear();\n }\n\n public async fetchHistoricalPriceData(\n startTime: number,\n endTime: number,\n interval: CandleInterval,\n callback?: (data: Record<string, CandleData[]>) => void,\n ): Promise<Record<string, CandleData[]>> {\n const allTokens = this.getAllTokens();\n\n if (allTokens.length === 0) {\n const emptyResult: Record<string, CandleData[]> = {};\n callback?.(emptyResult);\n return emptyResult;\n }\n\n const tokensToFetch = allTokens.filter((token) => !this.cache.hasData(token.symbol, interval, startTime, endTime));\n\n if (tokensToFetch.length === 0) {\n const cachedData = this.getHistoricalPriceData(startTime, endTime, interval);\n callback?.(cachedData);\n return cachedData;\n }\n\n for (const token of tokensToFetch) {\n this.cache.addLoadingToken(token.symbol);\n }\n\n try {\n const fetchPromises = tokensToFetch.map(async (token) => {\n try {\n const candles = await fetchHistoricalCandles(\n token.symbol,\n startTime,\n endTime,\n interval,\n );\n\n this.cache.addHistoricalPriceData(token.symbol, interval, candles, { start: startTime, end: endTime });\n\n if (candles.length > 0 && !this.latestCandles.has(token.symbol)) {\n this.latestCandles.set(token.symbol, candles[candles.length - 1]);\n }\n\n return { symbol: token.symbol, candles, success: true };\n } catch (error) {\n console.warn(`Failed to fetch historical data for ${token.symbol}:`, error);\n return { symbol: token.symbol, candles: [], success: false };\n }\n });\n\n await Promise.all(fetchPromises);\n\n const allData = this.getHistoricalPriceData(startTime, endTime, interval);\n callback?.(allData);\n return allData;\n } catch (error) {\n console.error('Failed to fetch historical data:', error);\n throw error;\n } finally {\n for (const token of tokensToFetch) {\n this.cache.removeLoadingToken(token.symbol);\n }\n }\n }\n\n public destroy(): void {\n this.detachCandleWs();\n this.realtimeListeners.clear();\n this.latestCandles.clear();\n this.cache.clear();\n }\n\n private getAllTokens(): TokenSelection[] {\n return [...this.longTokens, ...this.shortTokens];\n }\n\n private syncTokenChanges(): void {\n const currentSymbols = new Set(this.getAllTokens().map((t) => t.symbol));\n\n if (this.prevInterval !== null && this.prevInterval !== this.candleInterval) {\n this.cache.clear();\n this.prevTokenSymbols = currentSymbols;\n this.prevInterval = this.candleInterval;\n return;\n }\n\n for (const symbol of this.prevTokenSymbols) {\n if (!currentSymbols.has(symbol)) {\n this.cache.removeToken(symbol, this.candleInterval);\n }\n }\n\n this.prevTokenSymbols = currentSymbols;\n this.prevInterval = this.candleInterval;\n }\n\n private getHistoricalPriceData(\n startTime: number,\n endTime: number,\n interval: CandleInterval,\n ): Record<string, CandleData[]> {\n const allTokens = this.getAllTokens();\n const result: Record<string, CandleData[]> = {};\n for (const token of allTokens) {\n result[token.symbol] = this.cache.getData(token.symbol, interval, startTime, endTime);\n }\n return result;\n }\n\n private syncWsSubscriptions(): void {\n if (!this.candleWs) return;\n\n const currentSymbols = new Set(this.getAllTokens().map((t) => t.symbol));\n for (const symbol of this.prevTokenSymbols) {\n if (!currentSymbols.has(symbol)) {\n this.candleWs.unsubscribe(symbol, this.candleInterval);\n this.latestCandles.delete(symbol);\n }\n }\n\n if (currentSymbols.size === 0) {\n this.detachCandleWs();\n this.latestCandles.clear();\n return;\n }\n\n for (const symbol of currentSymbols) {\n this.candleWs.subscribe(symbol, this.candleInterval);\n }\n }\n}\n","import type { Bar, CandleData } from '../types';\n\nexport function computeAssetBars(tokenCandles: Record<string, CandleData[]>, symbol: string): Bar[] {\n const candles = tokenCandles[symbol];\n if (!candles) return [];\n\n return candles.map((c) => ({\n time: c.t,\n open: c.o,\n high: c.h,\n low: c.l,\n close: c.c,\n }));\n}\n\nexport function computeRealtimeAssetBar(snapshot: Record<string, CandleData>, symbol: string): Bar | null {\n const candle = snapshot[symbol];\n if (!candle) return null;\n\n return {\n time: candle.t,\n open: candle.o,\n high: candle.h,\n low: candle.l,\n close: candle.c,\n };\n}\n","import type { Bar, CandleData, PerformanceResult, TokenSelection } from '../types';\nimport { createCandleLookups, getCompleteTimestamps } from '../utils';\n\nexport function computePerformanceCandles(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n tokenCandles: Record<string, CandleData[]>,\n): PerformanceResult {\n const empty: PerformanceResult = { bars: [], baselinePrices: {} };\n const allTokens = [...longTokens, ...shortTokens];\n if (allTokens.length === 0) return empty;\n\n const candleLookups = createCandleLookups(tokenCandles);\n const allSymbols = allTokens.map((t) => t.symbol);\n const completeTimestamps = getCompleteTimestamps(candleLookups, allSymbols);\n\n if (completeTimestamps.length === 0) return empty;\n\n const baselinePrices: Record<string, number> = {};\n const firstTimestamp = completeTimestamps[0] as number;\n for (const token of allTokens) {\n const candle = candleLookups[token.symbol]?.get(firstTimestamp);\n if (!candle || candle.o <= 0) return empty;\n baselinePrices[token.symbol] = candle.o;\n }\n\n const initialPortfolioValue = 1000;\n const longSet = new Set(longTokens.map((t) => t.symbol));\n const bars: Bar[] = [];\n\n for (const timestamp of completeTimestamps) {\n let portfolioValue = 0;\n let missing = false;\n\n for (const token of allTokens) {\n const candle = candleLookups[token.symbol]?.get(timestamp);\n if (!candle) {\n missing = true;\n break;\n }\n\n const baselinePrice = baselinePrices[token.symbol] as number;\n const allocation = (token.weight) * initialPortfolioValue;\n const priceRatio = candle.c / baselinePrice;\n\n if (longSet.has(token.symbol)) {\n portfolioValue += allocation * priceRatio;\n } else {\n portfolioValue += allocation / priceRatio;\n }\n }\n\n if (missing) continue;\n\n bars.push({\n time: timestamp,\n open: portfolioValue,\n high: portfolioValue,\n low: portfolioValue,\n close: portfolioValue,\n });\n }\n\n return { bars, baselinePrices };\n}\n\nexport function computeRealtimePerformanceBar(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n snapshot: Record<string, CandleData>,\n baselinePrices: Record<string, number>,\n): Bar | null {\n const allTokens = [...longTokens, ...shortTokens];\n if (allTokens.length === 0) return null;\n\n const initialPortfolioValue = 1000;\n const longSet = new Set(longTokens.map((t) => t.symbol));\n let portfolioValue = 0;\n let time: number | null = null;\n\n for (const token of allTokens) {\n const c = snapshot[token.symbol];\n if (!c) return null;\n const baselinePrice = baselinePrices[token.symbol];\n if (!baselinePrice || baselinePrice <= 0) return null;\n\n const allocation = (token.weight) * initialPortfolioValue;\n const priceRatio = c.c / baselinePrice;\n\n if (longSet.has(token.symbol)) {\n portfolioValue += allocation * priceRatio;\n } else {\n portfolioValue += allocation / priceRatio;\n }\n\n if (time === null) time = c.t;\n }\n\n if (time === null) return null;\n\n return {\n time,\n open: portfolioValue,\n high: portfolioValue,\n low: portfolioValue,\n close: portfolioValue,\n };\n}\n","import type { Bar, CandleData, TokenSelection } from '../types';\nimport { createCandleLookups, getCompleteTimestamps } from '../utils';\n\nexport function computePriceRatioCandles(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n tokenCandles: Record<string, CandleData[]>,\n): Bar[] {\n if (longTokens.length === 0 && shortTokens.length === 0) return [];\n\n const candleLookups = createCandleLookups(tokenCandles);\n const allSymbols = [...longTokens, ...shortTokens].map((t) => t.symbol);\n const completeTimestamps = getCompleteTimestamps(candleLookups, allSymbols);\n\n const bars: Bar[] = [];\n\n for (const timestamp of completeTimestamps) {\n let longSumO = 0;\n let longSumH = 0;\n let longSumL = 0;\n let longSumC = 0;\n let shortSumO = 0;\n let shortSumH = 0;\n let shortSumL = 0;\n let shortSumC = 0;\n let missing = false;\n\n for (const token of longTokens) {\n const candle = candleLookups[token.symbol]?.get(timestamp);\n if (!candle) {\n missing = true;\n break;\n }\n if (!(candle.o > 0 && candle.h > 0 && candle.l > 0 && candle.c > 0)) {\n missing = true;\n break;\n }\n const w = token.weight;\n longSumO += w * candle.o;\n longSumH += w * candle.h;\n longSumL += w * candle.l;\n longSumC += w * candle.c;\n }\n if (missing) continue;\n\n for (const token of shortTokens) {\n const candle = candleLookups[token.symbol]?.get(timestamp);\n if (!candle) {\n missing = true;\n break;\n }\n if (!(candle.o > 0 && candle.h > 0 && candle.l > 0 && candle.c > 0)) {\n missing = true;\n break;\n }\n const w = token.weight;\n shortSumO += w * candle.o;\n shortSumH += w * candle.h;\n shortSumL += w * candle.l;\n shortSumC += w * candle.c;\n }\n if (missing) continue;\n\n if (shortSumO <= 0 || shortSumH <= 0 || shortSumL <= 0 || shortSumC <= 0) continue;\n\n bars.push({\n time: timestamp,\n open: longSumO / shortSumO,\n high: longSumH / shortSumH,\n low: longSumL / shortSumL,\n close: longSumC / shortSumC,\n });\n }\n\n return bars;\n}\n\nexport function computeRealtimePriceRatioBar(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n snapshot: Record<string, CandleData>,\n): Bar | null {\n let longSumO = 0;\n let longSumH = 0;\n let longSumL = 0;\n let longSumC = 0;\n let shortSumO = 0;\n let shortSumH = 0;\n let shortSumL = 0;\n let shortSumC = 0;\n let time: number | null = null;\n\n for (const token of longTokens) {\n const c = snapshot[token.symbol];\n if (!c) return null;\n if (!(c.o > 0 && c.h > 0 && c.l > 0 && c.c > 0)) return null;\n const w = token.weight;\n longSumO += w * c.o;\n longSumH += w * c.h;\n longSumL += w * c.l;\n longSumC += w * c.c;\n if (time === null) time = c.t;\n }\n\n for (const token of shortTokens) {\n const c = snapshot[token.symbol];\n if (!c) return null;\n if (!(c.o > 0 && c.h > 0 && c.l > 0 && c.c > 0)) return null;\n const w = token.weight;\n shortSumO += w * c.o;\n shortSumH += w * c.h;\n shortSumL += w * c.l;\n shortSumC += w * c.c;\n if (time === null) time = c.t;\n }\n\n if (time === null) return null;\n if (shortSumO <= 0 || shortSumH <= 0 || shortSumL <= 0 || shortSumC <= 0) return null;\n\n return {\n time,\n open: longSumO / shortSumO,\n high: longSumH / shortSumH,\n low: longSumL / shortSumL,\n close: longSumC / shortSumC,\n };\n}\n","import type { Bar, CandleData, TokenSelection } from '../types';\nimport { createCandleLookups, getCompleteTimestamps } from '../utils';\n\nfunction pow(base: number, exponent: number): number {\n if (base <= 0) return 0;\n return Math.exp(exponent * Math.log(base));\n}\n\nexport function computeWeightedRatioCandles(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n tokenCandles: Record<string, CandleData[]>,\n): Bar[] {\n if (longTokens.length === 0 && shortTokens.length === 0) return [];\n\n const candleLookups = createCandleLookups(tokenCandles);\n const allSymbols = [...longTokens, ...shortTokens].map((t) => t.symbol);\n const completeTimestamps = getCompleteTimestamps(candleLookups, allSymbols);\n\n const bars: Bar[] = [];\n\n for (const timestamp of completeTimestamps) {\n let longOpen = 1;\n let longHigh = 1;\n let longLow = 1;\n let longClose = 1;\n let shortOpen = 1;\n let shortHigh = 1;\n let shortLow = 1;\n let shortClose = 1;\n let missing = false;\n\n for (const token of longTokens) {\n const candle = candleLookups[token.symbol]?.get(timestamp);\n if (!candle) {\n missing = true;\n break;\n }\n const w = token.weight;\n if (!(candle.o > 0 && candle.h > 0 && candle.l > 0 && candle.c > 0)) {\n missing = true;\n break;\n }\n longOpen *= pow(candle.o, w);\n longHigh *= pow(candle.h, w);\n longLow *= pow(candle.l, w);\n longClose *= pow(candle.c, w);\n }\n if (missing) continue;\n\n for (const token of shortTokens) {\n const candle = candleLookups[token.symbol]?.get(timestamp);\n if (!candle) {\n missing = true;\n break;\n }\n const w = -(token.weight);\n if (!(candle.o > 0 && candle.h > 0 && candle.l > 0 && candle.c > 0)) {\n missing = true;\n break;\n }\n shortOpen *= pow(candle.o, w);\n shortHigh *= pow(candle.h, w);\n shortLow *= pow(candle.l, w);\n shortClose *= pow(candle.c, w);\n }\n if (missing) continue;\n\n bars.push({\n time: timestamp,\n open: longOpen * shortOpen,\n high: longHigh * shortHigh,\n low: longLow * shortLow,\n close: longClose * shortClose,\n });\n }\n\n return bars;\n}\n\nexport function computeRealtimeWeightedRatioBar(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n snapshot: Record<string, CandleData>,\n): Bar | null {\n let longOpen = 1;\n let longHigh = 1;\n let longLow = 1;\n let longClose = 1;\n let shortOpen = 1;\n let shortHigh = 1;\n let shortLow = 1;\n let shortClose = 1;\n let time: number | null = null;\n\n for (const token of longTokens) {\n const c = snapshot[token.symbol];\n if (!c) return null;\n if (!(c.o > 0 && c.h > 0 && c.l > 0 && c.c > 0)) return null;\n const w = token.weight;\n longOpen *= pow(c.o, w);\n longHigh *= pow(c.h, w);\n longLow *= pow(c.l, w);\n longClose *= pow(c.c, w);\n if (time === null) time = c.t;\n }\n\n for (const token of shortTokens) {\n const c = snapshot[token.symbol];\n if (!c) return null;\n if (!(c.o > 0 && c.h > 0 && c.l > 0 && c.c > 0)) return null;\n const w = -(token.weight);\n shortOpen *= pow(c.o, w);\n shortHigh *= pow(c.h, w);\n shortLow *= pow(c.l, w);\n shortClose *= pow(c.c, w);\n if (time === null) time = c.t;\n }\n\n if (time === null) return null;\n\n return {\n time,\n open: longOpen * shortOpen,\n high: longHigh * shortHigh,\n low: longLow * shortLow,\n close: longClose * shortClose,\n };\n}\n","import { DataCollector } from './collector';\nimport {\n computeAssetBars,\n computePerformanceCandles,\n computePriceRatioCandles,\n computeRealtimeAssetBar,\n computeRealtimePerformanceBar,\n computeRealtimePriceRatioBar,\n computeRealtimeWeightedRatioBar,\n computeWeightedRatioCandles,\n} from './compute/index';\nimport type { Bar, CandleInterval, ChartConfig, ChartType, RealtimeBarCallback, TokenSelection } from './types';\n\nexport class Chart {\n private collector: DataCollector;\n private baselinePrices: Record<string, number> = {};\n\n constructor(config: ChartConfig) {\n this.collector = new DataCollector(config);\n }\n\n public setTokens(longTokens: TokenSelection[], shortTokens: TokenSelection[]): void {\n this.collector.setTokens(longTokens, shortTokens);\n this.baselinePrices = {};\n }\n\n public setCandleInterval(interval: CandleInterval): void {\n this.collector.setCandleInterval(interval);\n this.baselinePrices = {};\n }\n\n public async getBars(chartType: ChartType, startTime: number, endTime: number): Promise<Bar[]> {\n const interval = this.collector.getCandleInterval();\n const tokenCandles = await this.collector.fetchHistoricalPriceData(startTime, endTime, interval);\n\n switch (chartType) {\n case 'weighted-ratio': {\n return computeWeightedRatioCandles(\n this.collector.getLongTokens(),\n this.collector.getShortTokens(),\n tokenCandles,\n );\n }\n case 'price-ratio': {\n return computePriceRatioCandles(this.collector.getLongTokens(), this.collector.getShortTokens(), tokenCandles);\n }\n case 'performance': {\n const result = computePerformanceCandles(\n this.collector.getLongTokens(),\n this.collector.getShortTokens(),\n tokenCandles,\n );\n\n if (result.bars.length > 0) {\n this.baselinePrices = result.baselinePrices;\n }\n\n return result.bars;\n }\n default:\n throw new Error(`Unsupported chart type: ${chartType}`);\n }\n }\n\n public async getAssetBars(symbol: string, startTime: number, endTime: number): Promise<Bar[]> {\n this.assertTokenExists(symbol);\n const interval = this.collector.getCandleInterval();\n const tokenCandles = await this.collector.fetchHistoricalPriceData(startTime, endTime, interval);\n return computeAssetBars(tokenCandles, symbol);\n }\n\n public getEffectiveDataBoundary(): number | null {\n return this.collector.getEffectiveDataBoundary(this.collector.getCandleInterval());\n }\n\n public subscribeRealtimeBars(chartType: ChartType, callback: RealtimeBarCallback): string {\n if (!this.collector.isWsAttached) {\n this.collector.attachCandleWs();\n }\n\n const formatTokens = (tokens: TokenSelection[]) => tokens.map((t) => `${t.symbol}:${t.weight}`).join(',');\n const id = `${chartType}-${formatTokens(this.collector.getLongTokens())}-${formatTokens(this.collector.getShortTokens())}`;\n\n this.collector.addRealtimeListener(id, () => {\n const snapshot = this.collector.getLatestCandles();\n if (!snapshot) return;\n\n let bar: Bar | null = null;\n switch (chartType) {\n case 'weighted-ratio':\n bar = computeRealtimeWeightedRatioBar(\n this.collector.getLongTokens(),\n this.collector.getShortTokens(),\n snapshot,\n );\n break;\n case 'price-ratio':\n bar = computeRealtimePriceRatioBar(this.collector.getLongTokens(), this.collector.getShortTokens(), snapshot);\n break;\n case 'performance':\n if (Object.keys(this.baselinePrices).length === 0) break;\n bar = computeRealtimePerformanceBar(\n this.collector.getLongTokens(),\n this.collector.getShortTokens(),\n snapshot,\n this.baselinePrices,\n );\n break;\n }\n\n if (bar) {\n try {\n callback(bar);\n } catch (error) {\n console.warn('Error in realtime bar callback, skipping this update', {\n chartType,\n error,\n });\n }\n }\n });\n\n return id;\n }\n\n public subscribeRealtimeAssetBars(symbol: string, callback: RealtimeBarCallback): string {\n this.assertTokenExists(symbol);\n\n if (!this.collector.isWsAttached) {\n this.collector.attachCandleWs();\n }\n\n const id = `price-${symbol}`;\n\n this.collector.addRealtimeListener(id, () => {\n const snapshot = this.collector.getLatestCandles();\n if (!snapshot) return;\n\n const bar = computeRealtimeAssetBar(snapshot, symbol);\n if (bar) {\n try {\n callback(bar);\n } catch (error) {\n console.warn('Error in realtime asset bar callback, skipping this update', {\n symbol,\n error,\n });\n }\n }\n });\n\n return id;\n }\n\n public unsubscribeRealtimeBars(id: string): void {\n this.collector.removeRealtimeListener(id);\n }\n\n private assertTokenExists(symbol: string): void {\n const allTokens = [...this.collector.getLongTokens(), ...this.collector.getShortTokens()];\n if (!allTokens.some((t) => t.symbol === symbol)) {\n throw new Error(`Symbol \"${symbol}\" is not part of the configured long or short tokens`);\n }\n }\n\n public clearCache(): void {\n this.collector.clearCache();\n this.baselinePrices = {};\n }\n\n public destroy(): void {\n this.collector.destroy();\n }\n}\n","import type { ClearinghouseState, AllDexsClearinghouseStateData, AllDexsAssetCtxsData, AssetCtx } from '../../ws/hyperliquid/types';\nimport type { RawAssetDto, PositionAssetDetail } from './types';\n\nexport interface UniverseAsset {\n name: string;\n szDecimals: number;\n maxLeverage: number;\n onlyIsolated?: boolean;\n isDelisted?: boolean;\n}\n\nexport interface AllPerpMetasItem {\n universe: UniverseAsset[];\n collateralToken: number;\n}\n\nexport type AllPerpMetasResponse = AllPerpMetasItem[];\n\nexport interface PerpDex {\n name: string;\n fullName: string;\n deployer: string;\n oracleUpdater: string | null;\n feeRecipient: string | null;\n deployerFeeScale: string;\n assetToStreamingOiCap: [string, string][];\n assetToFundingMultiplier: [string, string][];\n subDeployers: [string, string[]][];\n lastDeployerFeeScaleChangeTime: string;\n}\n\nexport type PerpDexsResponse = (PerpDex | null)[];\n\nexport interface TokenMetadata {\n assetName: string;\n maxLeverage: number;\n szDecimals: number;\n currentPrice: number;\n markPrice: number;\n oraclePrice: number;\n prevDayPrice: number;\n priceChange24h: number;\n priceChange24hPercent: number;\n funding: number;\n}\n\nexport type TokenMetadataMap = Map<string, TokenMetadata>;\n\nexport type PriceMap = Map<string, number>;\n\nexport function buildTokenMetadataMap(\n perpMetasByDex: Map<string, UniverseAsset[]>,\n assetCtxsByDex: Map<string, AssetCtx[]>,\n): TokenMetadataMap {\n const map: TokenMetadataMap = new Map();\n for (const [dexName, assets] of perpMetasByDex) {\n const ctxs = assetCtxsByDex.get(dexName);\n if (!ctxs) continue;\n for (let i = 0; i < assets.length; i++) {\n const asset = assets[i];\n const ctx = ctxs[i];\n if (!ctx) continue;\n const markPrice = parseFloat(ctx.markPx) || 0;\n const currentPrice = parseFloat(ctx.midPx ?? '') || markPrice;\n const prevDayPrice = parseFloat(ctx.prevDayPx) || 0;\n const priceChange24h = currentPrice - prevDayPrice;\n map.set(asset.name, {\n assetName: asset.name,\n maxLeverage: asset.maxLeverage,\n szDecimals: asset.szDecimals,\n currentPrice,\n markPrice,\n oraclePrice: parseFloat(ctx.oraclePx) || 0,\n prevDayPrice,\n priceChange24h,\n priceChange24hPercent: prevDayPrice !== 0 ? (priceChange24h / prevDayPrice) * 100 : 0,\n funding: parseFloat(ctx.funding),\n });\n }\n }\n return map;\n}\n\nexport function buildPriceMap(metadataMap: TokenMetadataMap): PriceMap {\n const prices: PriceMap = new Map();\n for (const [name, meta] of metadataMap) {\n prices.set(name, meta.markPrice);\n }\n return prices;\n}\n\nexport function parsePerpMetas(\n perpMetas: AllPerpMetasResponse,\n perpDexNames: string[],\n): Map<string, UniverseAsset[]> {\n const result = new Map<string, UniverseAsset[]>();\n for (let i = 0; i < perpMetas.length; i++) {\n const dexName = perpDexNames[i] ?? (i === 0 ? 'HYPERLIQUID' : `DEX_${i}`);\n result.set(dexName, perpMetas[i].universe);\n }\n return result;\n}\n\nexport function parseAssetCtxs(\n data: AllDexsAssetCtxsData,\n): Map<string, AssetCtx[]> {\n const result = new Map<string, AssetCtx[]>();\n for (const [dexKey, ctxs] of data.ctxs) {\n const dexName = dexKey === '' ? 'HYPERLIQUID' : dexKey;\n result.set(dexName, ctxs);\n }\n return result;\n}\n\nexport function getMarkPrice(coin: string, prices: PriceMap): number {\n return prices.get(coin) ?? 0;\n}\n\nexport function getLiquidationPrice(\n coin: string,\n clearinghouseState: ClearinghouseState,\n): number | null {\n const ap = clearinghouseState.assetPositions.find(\n (p) => p.position.coin === coin,\n );\n const px = ap?.position.liquidationPx;\n if (px == null) return null;\n const parsed = parseFloat(px);\n return Number.isFinite(parsed) ? parsed : null;\n}\n\nexport function getLeverage(\n coin: string,\n fallback: number,\n clearinghouseState: ClearinghouseState,\n): number {\n const ap = clearinghouseState.assetPositions.find(\n (p) => p.position.coin === coin,\n );\n return ap?.position.leverage?.value ?? fallback ?? 1;\n}\n\nexport function calculateAsset(\n asset: RawAssetDto,\n currentPrice: number,\n totalInitialSize: number,\n totalCurrentSize: number,\n leverage: number,\n isLong: boolean,\n liquidationPrice: number | null,\n): PositionAssetDetail & { entryMarginUsed: number } {\n const entryNotional = asset.entryPrice * asset.size;\n const currentNotional = currentPrice * asset.size;\n const effectiveLeverage = leverage || 1;\n const marginUsed = currentNotional / effectiveLeverage;\n const entryMarginUsed = entryNotional / effectiveLeverage;\n\n const unrealizedPnl = isLong\n ? currentNotional - entryNotional\n : entryNotional - currentNotional;\n\n return {\n coin: asset.coin,\n entryPrice: asset.entryPrice,\n actualSize: asset.size,\n leverage: effectiveLeverage,\n marginUsed,\n positionValue: currentNotional,\n unrealizedPnl,\n entryPositionValue: entryNotional,\n currentWeight: totalCurrentSize > 0 ? currentNotional / totalCurrentSize : 0,\n fundingPaid: asset.fundingPaid ?? 0,\n targetWeight: asset.targetWeight != null ? asset.targetWeight : (totalInitialSize > 0 ? entryNotional / totalInitialSize : 0),\n liquidationPrice,\n entryMarginUsed,\n };\n}\n\nexport function aggregateClearinghouseStates(\n data: AllDexsClearinghouseStateData,\n): ClearinghouseState {\n const states = (data.clearinghouseStates || [])\n .map(([, s]) => s)\n .filter(Boolean);\n\n if (states.length === 0) {\n return {\n assetPositions: [],\n crossMaintenanceMarginUsed: '0',\n crossMarginSummary: { accountValue: '0', totalMarginUsed: '0', totalNtlPos: '0', totalRawUsd: '0' },\n marginSummary: { accountValue: '0', totalMarginUsed: '0', totalNtlPos: '0', totalRawUsd: '0' },\n time: 0,\n withdrawable: '0',\n };\n }\n\n if (states.length === 1) return states[0];\n\n const sum = (values: (string | undefined)[]) =>\n values.reduce((acc, v) => acc + (parseFloat(v || '0') || 0), 0);\n const toStr = (n: number) => (Number.isFinite(n) ? n.toString() : '0');\n\n return {\n assetPositions: states.flatMap((s) => s.assetPositions || []),\n crossMaintenanceMarginUsed: toStr(sum(states.map((s) => s.crossMaintenanceMarginUsed))),\n crossMarginSummary: {\n accountValue: toStr(sum(states.map((s) => s.crossMarginSummary?.accountValue))),\n totalMarginUsed: toStr(sum(states.map((s) => s.crossMarginSummary?.totalMarginUsed))),\n totalNtlPos: toStr(sum(states.map((s) => s.crossMarginSummary?.totalNtlPos))),\n totalRawUsd: toStr(sum(states.map((s) => s.crossMarginSummary?.totalRawUsd))),\n },\n marginSummary: {\n accountValue: toStr(sum(states.map((s) => s.marginSummary?.accountValue))),\n totalMarginUsed: toStr(sum(states.map((s) => s.marginSummary?.totalMarginUsed))),\n totalNtlPos: toStr(sum(states.map((s) => s.marginSummary?.totalNtlPos))),\n totalRawUsd: toStr(sum(states.map((s) => s.marginSummary?.totalRawUsd))),\n },\n withdrawable: toStr(sum(states.map((s) => s.withdrawable))),\n time: Math.max(0, ...states.map((s) => s.time || 0)),\n };\n}\n","import type { TokenMetadataMap } from '../user/positions/utils';\nimport type { TokenSelection, BasketSnapshot } from './types';\n\nfunction pow(base: number, exponent: number): number {\n if (base <= 0) return 0;\n return Math.exp(exponent * Math.log(base));\n}\n\nexport function computeWeightedRatio(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number {\n let ratio = 1;\n for (const t of longTokens) {\n const price = metadata.get(t.symbol)?.markPrice ?? 0;\n ratio *= pow(price, t.weight);\n }\n for (const t of shortTokens) {\n const price = metadata.get(t.symbol)?.markPrice ?? 0;\n ratio *= pow(price, -(t.weight));\n }\n return ratio;\n}\n\nexport function computePriceRatio(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number | null {\n if (longTokens.length !== 1 || shortTokens.length !== 1) return null;\n\n const longPrice = metadata.get(longTokens[0].symbol)?.markPrice ?? 0;\n const shortPrice = metadata.get(shortTokens[0].symbol)?.markPrice ?? 0;\n if (shortPrice <= 0) return null;\n return longPrice / shortPrice;\n}\n\nexport function computePrice(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number | null {\n if (longTokens.length === 1 && shortTokens.length === 0) {\n return metadata.get(longTokens[0].symbol)?.markPrice ?? null;\n }\n if (longTokens.length === 0 && shortTokens.length === 1) {\n return metadata.get(shortTokens[0].symbol)?.markPrice ?? null;\n }\n return null;\n}\n\nexport function computeWeightedRatio24hAgo(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number {\n let ratio = 1;\n for (const t of longTokens) {\n const price = metadata.get(t.symbol)?.prevDayPrice ?? 0;\n ratio *= pow(price, t.weight);\n }\n for (const t of shortTokens) {\n const price = metadata.get(t.symbol)?.prevDayPrice ?? 0;\n ratio *= pow(price, -(t.weight));\n }\n return ratio;\n}\n\nexport function computePriceRatio24hAgo(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number | null {\n if (longTokens.length !== 1 || shortTokens.length !== 1) return null;\n\n const longPrice = metadata.get(longTokens[0].symbol)?.prevDayPrice ?? 0;\n const shortPrice = metadata.get(shortTokens[0].symbol)?.prevDayPrice ?? 0;\n if (shortPrice <= 0) return null;\n return longPrice / shortPrice;\n}\n\nexport function computePrice24hAgo(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number | null {\n if (longTokens.length === 1 && shortTokens.length === 0) {\n return metadata.get(longTokens[0].symbol)?.prevDayPrice ?? null;\n }\n if (longTokens.length === 0 && shortTokens.length === 1) {\n return metadata.get(shortTokens[0].symbol)?.prevDayPrice ?? null;\n }\n return null;\n}\n\nexport function computeNetFundingRate(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number {\n let total = 0;\n for (const t of longTokens) {\n const funding = metadata.get(t.symbol)?.funding;\n if (funding !== undefined && t.weight > 0) {\n total += -funding * (t.weight);\n }\n }\n for (const t of shortTokens) {\n const funding = metadata.get(t.symbol)?.funding;\n if (funding !== undefined && t.weight > 0) {\n total += funding * (t.weight);\n }\n }\n return total;\n}\n\nexport function computeMaxLeverage(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): number {\n const allTokens = [...longTokens, ...shortTokens];\n if (allTokens.length === 0) return 0;\n let min = Infinity;\n for (const t of allTokens) {\n const lev = metadata.get(t.symbol)?.maxLeverage;\n if (lev !== undefined && lev < min) min = lev;\n }\n return min === Infinity ? 1 : min;\n}\n\nexport function computeBasketSnapshot(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n metadata: TokenMetadataMap,\n): BasketSnapshot {\n return {\n weightedRatio: computeWeightedRatio(longTokens, shortTokens, metadata),\n priceRatio: computePriceRatio(longTokens, shortTokens, metadata),\n price: computePrice(longTokens, shortTokens, metadata),\n weightedRatio24hAgo: computeWeightedRatio24hAgo(longTokens, shortTokens, metadata),\n priceRatio24hAgo: computePriceRatio24hAgo(longTokens, shortTokens, metadata),\n price24hAgo: computePrice24hAgo(longTokens, shortTokens, metadata),\n netFundingRate: computeNetFundingRate(longTokens, shortTokens, metadata),\n maxLeverage: computeMaxLeverage(longTokens, shortTokens, metadata),\n };\n}\n","import axios from 'axios';\nimport { Chart } from './chart';\nimport {\n buildTokenMetadataMap,\n buildPriceMap,\n parsePerpMetas,\n parseAssetCtxs,\n type PriceMap,\n type TokenMetadataMap,\n type TokenMetadata,\n type UniverseAsset,\n type AllPerpMetasResponse,\n type PerpDexsResponse,\n} from '../user/positions/utils';\nimport type { HyperliquidWs } from '../ws/hyperliquid';\nimport type { PearWs } from '../ws/pear/pear-ws';\nimport type { MarketDataV2BasketDto } from '../api';\nimport { computeBasketSnapshot } from './utils';\nimport type { TokenSelection, BasketSnapshot, PickBasket } from './types';\n\ninterface BasketSub {\n longTokens: TokenSelection[];\n shortTokens: TokenSelection[];\n handler: (snapshot: BasketSnapshot) => void;\n}\n\nexport class MarketSubscriptions {\n public readonly chart: Chart;\n\n private hlWs: HyperliquidWs;\n private pearWs: PearWs;\n\n private perpMetasByDex: Map<string, UniverseAsset[]> | null = null;\n private metadata: TokenMetadataMap = new Map();\n private prices: PriceMap = new Map();\n private assetCtxsHandlerId: string | null = null;\n\n private instrumentHandler: ((data: TokenMetadata[]) => void) | null = null;\n private basketSubs = new Map<number, BasketSub>();\n private nextBasketId = 0;\n\n private picksHandler: ((data: PickBasket[]) => void) | null = null;\n private lastPicksData: MarketDataV2BasketDto[] = [];\n\n private onPricesUpdated: (() => void) | null = null;\n\n constructor(hlWs: HyperliquidWs, pearWs: PearWs) {\n this.hlWs = hlWs;\n this.pearWs = pearWs;\n this.chart = new Chart({ ws: hlWs });\n this.init();\n }\n\n private async init(): Promise<void> {\n try {\n const [metasRes, dexsRes] = await Promise.all([\n axios.post<AllPerpMetasResponse>('https://api.hyperliquid.xyz/info', { type: 'allPerpMetas' }),\n axios.post<PerpDexsResponse>('https://api.hyperliquid.xyz/info', { type: 'perpDexs' }),\n ]);\n\n const dexNames = dexsRes.data.map((d, i) =>\n i === 0 ? 'HYPERLIQUID' : (d?.name ?? `DEX_${i}`),\n );\n\n this.perpMetasByDex = parsePerpMetas(metasRes.data, dexNames);\n\n this.hlWs.subscribe('allDexsAssetCtxs', { type: 'allDexsAssetCtxs' });\n\n this.assetCtxsHandlerId = this.hlWs.addChannelHandler(\n 'allDexsAssetCtxs',\n (data) => {\n if (!this.perpMetasByDex) return;\n this.metadata = buildTokenMetadataMap(this.perpMetasByDex, parseAssetCtxs(data));\n this.prices = buildPriceMap(this.metadata);\n this.notifyInstrument();\n this.notifyBaskets();\n this.notifyPicks();\n this.onPricesUpdated?.();\n },\n );\n } catch {\n setTimeout(() => this.init(), 5000);\n }\n }\n\n getMetadata(): TokenMetadataMap {\n return this.metadata;\n }\n\n getPrices(): PriceMap {\n return this.prices;\n }\n\n setOnPricesUpdated(callback: () => void): void {\n this.onPricesUpdated = callback;\n }\n\n instrument(handler: (data: TokenMetadata[]) => void): () => void {\n this.instrumentHandler = handler;\n\n if (this.metadata.size > 0) {\n handler(Array.from(this.metadata.values()));\n }\n\n return () => {\n this.instrumentHandler = null;\n };\n }\n\n basket(\n longTokens: TokenSelection[],\n shortTokens: TokenSelection[],\n handler: (snapshot: BasketSnapshot) => void,\n ): () => void {\n const id = ++this.nextBasketId;\n this.basketSubs.set(id, { longTokens, shortTokens, handler });\n\n if (this.metadata.size > 0) {\n handler(computeBasketSnapshot(longTokens, shortTokens, this.metadata));\n }\n\n return () => {\n this.basketSubs.delete(id);\n };\n }\n\n picks(handler: (data: PickBasket[]) => void): () => void {\n this.picksHandler = handler;\n\n this.pearWs.subscribe('market-data/v2', (data) => {\n this.lastPicksData = data.baskets || [];\n this.notifyPicks();\n });\n\n return () => {\n this.picksHandler = null;\n this.lastPicksData = [];\n this.pearWs.unsubscribe('market-data/v2');\n };\n }\n\n private notifyInstrument(): void {\n if (!this.instrumentHandler || this.metadata.size === 0) return;\n this.instrumentHandler(Array.from(this.metadata.values()));\n }\n\n private notifyBaskets(): void {\n if (this.metadata.size === 0) return;\n for (const sub of this.basketSubs.values()) {\n sub.handler(computeBasketSnapshot(sub.longTokens, sub.shortTokens, this.metadata));\n }\n }\n\n private notifyPicks(): void {\n if (!this.picksHandler || this.lastPicksData.length === 0) return;\n this.picksHandler(this.lastPicksData.map((b) => this.enrichBasket(b)));\n }\n\n private enrichBasket(b: MarketDataV2BasketDto): PickBasket {\n const longTokens: TokenSelection[] = b.longAssets.map((a) => ({\n symbol: a.asset,\n weight: a.weight,\n }));\n const shortTokens: TokenSelection[] = b.shortAssets.map((a) => ({\n symbol: a.asset,\n weight: a.weight,\n }));\n\n const snapshot = computeBasketSnapshot(longTokens, shortTokens, this.metadata);\n\n return {\n ...snapshot,\n longTokens,\n shortTokens,\n category: b.category,\n name: b.name,\n };\n }\n\n destroy(): void {\n this.chart.destroy();\n if (this.assetCtxsHandlerId) {\n this.hlWs.removeChannelHandler('allDexsAssetCtxs', this.assetCtxsHandlerId);\n this.assetCtxsHandlerId = null;\n }\n if (this.picksHandler) {\n this.pearWs.unsubscribe('market-data/v2');\n this.picksHandler = null;\n }\n this.instrumentHandler = null;\n this.basketSubs.clear();\n }\n}\n","import type { OpenOrderDto } from '../../api';\nimport type { EnrichedPositionDto } from '../positions/types';\n\nexport function enrichOrders(\n orders: OpenOrderDto[],\n positionsById: Map<string, EnrichedPositionDto>,\n): OpenOrderDto[] {\n return orders.map((ord) => {\n const isTpSl = ord.orderType === 'TP' || ord.orderType === 'SL';\n const hasAssets =\n (ord.longAssets?.length ?? 0) > 0 || (ord.shortAssets?.length ?? 0) > 0;\n const pos = positionsById.get(String(ord.positionId ?? ''));\n\n if (isTpSl && !hasAssets && pos) {\n return {\n ...ord,\n longAssets: pos.longAssets.map((a) => ({ asset: a.coin, weight: a.targetWeight })),\n shortAssets: pos.shortAssets.map((a) => ({ asset: a.coin, weight: a.targetWeight })),\n };\n }\n\n return ord;\n });\n}\n","import type { ClearinghouseState } from '../../ws/hyperliquid/types';\nimport type { RawPositionDto, EnrichedPositionDto } from './types';\nimport { OpenPositionProcessedDtoPearExecutionFlagEnum } from '../../api/generated';\nimport { getMarkPrice, getLeverage, getLiquidationPrice, calculateAsset, type PriceMap } from './utils';\n\nexport function buildPositionValue(\n rawPositions: RawPositionDto[],\n clearinghouseState: ClearinghouseState,\n prices: PriceMap,\n hideExternalPosition: boolean = true,\n): EnrichedPositionDto[] {\n return rawPositions\n .filter(\n (p) =>\n !p.longAssets.some((a) => a.coin.startsWith('#')) &&\n !p.shortAssets.some((a) => a.coin.startsWith('#')) &&\n (!hideExternalPosition || p.pearExecutionFlag !== OpenPositionProcessedDtoPearExecutionFlagEnum.FullyExternal),\n )\n .map((position) => {\n const result: EnrichedPositionDto = {\n positionId: position.positionId,\n address: position.address,\n pearExecutionFlag: position.pearExecutionFlag,\n stopLoss: position.stopLoss,\n takeProfit: position.takeProfit,\n entryRatio: 1,\n markRatio: 1,\n entryPositionValue: 0,\n positionValue: 0,\n marginUsed: 0,\n unrealizedPnl: 0,\n unrealizedPnlPercentage: 0,\n longAssets: [],\n shortAssets: [],\n createdAt: position.createdAt,\n updatedAt: position.updatedAt,\n };\n\n let entryMarginUsed = 0;\n\n const totalInitialSize =\n position.longAssets.reduce((acc, a) => acc + a.entryPrice * a.size, 0) +\n position.shortAssets.reduce((acc, a) => acc + a.entryPrice * a.size, 0);\n\n const totalCurrentSize =\n position.longAssets.reduce(\n (acc, a) => acc + getMarkPrice(a.coin, prices) * a.size, 0,\n ) +\n position.shortAssets.reduce(\n (acc, a) => acc + getMarkPrice(a.coin, prices) * a.size, 0,\n );\n\n result.longAssets = position.longAssets.map((asset) => {\n const currentPrice = getMarkPrice(asset.coin, prices);\n const leverage = getLeverage(asset.coin, asset.leverage ?? 1, clearinghouseState);\n const liquidationPrice = getLiquidationPrice(asset.coin, clearinghouseState);\n\n const detail = calculateAsset(\n asset, currentPrice, totalInitialSize, totalCurrentSize, leverage, true, liquidationPrice,\n );\n\n result.entryPositionValue += detail.entryPositionValue;\n result.unrealizedPnl += detail.unrealizedPnl;\n result.positionValue += detail.positionValue;\n result.marginUsed += detail.marginUsed;\n entryMarginUsed += detail.entryMarginUsed;\n\n result.entryRatio *= Math.pow(asset.entryPrice, detail.targetWeight);\n result.markRatio *= Math.pow(currentPrice, detail.targetWeight);\n\n const { entryMarginUsed: _, ...assetDetail } = detail;\n return assetDetail;\n });\n\n result.shortAssets = position.shortAssets.map((asset) => {\n const currentPrice = getMarkPrice(asset.coin, prices);\n const leverage = getLeverage(asset.coin, asset.leverage ?? 1, clearinghouseState);\n const liquidationPrice = getLiquidationPrice(asset.coin, clearinghouseState);\n\n const detail = calculateAsset(\n asset, currentPrice, totalInitialSize, totalCurrentSize, leverage, false, liquidationPrice,\n );\n\n result.entryPositionValue += detail.entryPositionValue;\n result.unrealizedPnl += detail.unrealizedPnl;\n result.positionValue += detail.positionValue;\n result.marginUsed += detail.marginUsed;\n entryMarginUsed += detail.entryMarginUsed;\n\n result.entryRatio *= Math.pow(asset.entryPrice, -detail.targetWeight);\n result.markRatio *= Math.pow(currentPrice, -detail.currentWeight);\n\n const { entryMarginUsed: _, ...assetDetail } = detail;\n return assetDetail;\n });\n\n result.positionValue = result.entryPositionValue + result.unrealizedPnl;\n\n if (position.longAssets.length === 1 && position.shortAssets.length === 1) {\n const long = position.longAssets[0];\n const short = position.shortAssets[0];\n const longMark = getMarkPrice(long.coin, prices);\n const shortMark = getMarkPrice(short.coin, prices);\n\n if (long.size > 0 && short.size > 0) {\n result.entryPriceRatio = long.entryPrice / short.entryPrice;\n result.markPriceRatio = longMark / shortMark;\n } else if (long.size > 0) {\n result.entryPriceRatio = long.entryPrice;\n result.markPriceRatio = longMark;\n } else if (short.size > 0) {\n result.entryPriceRatio = short.entryPrice;\n result.markPriceRatio = shortMark;\n }\n }\n\n if (position.longAssets.length === 1 && position.shortAssets.length === 0) {\n const long = position.longAssets[0];\n result.entryPriceRatio = long.entryPrice;\n result.markPriceRatio = getMarkPrice(long.coin, prices);\n }\n\n if (position.longAssets.length === 0 && position.shortAssets.length === 1) {\n const short = position.shortAssets[0];\n result.entryPriceRatio = short.entryPrice;\n result.markPriceRatio = getMarkPrice(short.coin, prices);\n }\n\n result.unrealizedPnlPercentage =\n entryMarginUsed > 0 ? result.unrealizedPnl / entryMarginUsed : 0;\n\n return result;\n });\n}\n","import axios from 'axios';\nimport type { PearApi } from '../api';\nimport type {\n OpenOrderDto,\n TradeHistoryDataDto,\n TwapMonitoringDto,\n AccountSummaryResponseDto,\n PositionsApi,\n} from '../api';\nimport { enrichOrders } from './orders/utils';\nimport type { RawPositionDto, EnrichedPositionDto } from './positions/types';\nimport { buildPositionValue } from './positions/processor';\nimport { aggregateClearinghouseStates, type PriceMap } from './positions/utils';\nimport type { PearWs } from '../ws/pear/pear-ws';\nimport type { NotificationDto } from '../ws/pear/types';\nimport type { HyperliquidWs } from '../ws/hyperliquid';\nimport type { ClearinghouseState } from '../ws/hyperliquid/types';\n\nexport class UserSubscriptions {\n private api: PearApi;\n private pearWs: PearWs;\n private hlWs: HyperliquidWs;\n private getPrices: () => PriceMap;\n\n private rawPositions: RawPositionDto[] | null = null;\n private clearinghouseState: ClearinghouseState | null = null;\n private enrichedPositions: EnrichedPositionDto[] | null = null;\n private positionHandler: ((data: EnrichedPositionDto[]) => void) | null = null;\n private chStateHandlerId: string | null = null;\n private hideExternalPosition: boolean = true;\n\n private rawOrders: OpenOrderDto[] | null = null;\n private orderHandler: ((data: OpenOrderDto[]) => void) | null = null;\n\n private getAddress: () => string | null;\n\n constructor(api: PearApi, pearWs: PearWs, hlWs: HyperliquidWs, getPrices: () => PriceMap, getAddress: () => string | null) {\n this.api = api;\n this.pearWs = pearWs;\n this.hlWs = hlWs;\n this.getPrices = getPrices;\n this.getAddress = getAddress;\n }\n\n static readonly BUILDER_ADDRESS = '0xa47d4d99191db54a4829cdf3de2417e527c3b042';\n\n async isBuilderApproved(): Promise<boolean> {\n const address = this.getAddress();\n if (!address) return false;\n const { data } = await axios.post<string[]>(\n 'https://api.hyperliquid.xyz/info',\n { type: 'approvedBuilders', user: address },\n );\n return data.some((addr) => addr.toLowerCase() === UserSubscriptions.BUILDER_ADDRESS);\n }\n\n async isAgentApproved(): Promise<boolean> {\n const address = this.getAddress();\n if (!address) return false;\n const [hlRes, pearRes] = await Promise.all([\n axios.post<{ address: string }[]>(\n 'https://api.hyperliquid.xyz/info',\n { type: 'extraAgents', user: address },\n ),\n this.api.private.agentWallet.get(),\n ]);\n\n const agentAddress = pearRes.data.agentWalletAddress.toLowerCase();\n return hlRes.data.some((agent) => agent.address.toLowerCase() === agentAddress);\n }\n\n positions(handler: (data: EnrichedPositionDto[]) => void, hideExternalPosition: boolean = true): () => void {\n this.positionHandler = handler;\n this.hideExternalPosition = hideExternalPosition;\n\n this.pearWs.subscribe('open-positions', (data) => {\n this.rawPositions = data;\n this.recomputePositions();\n });\n\n if (!this.chStateHandlerId) {\n this.chStateHandlerId = this.hlWs.addChannelHandler(\n 'allDexsClearinghouseState',\n (data) => {\n this.clearinghouseState = aggregateClearinghouseStates(data);\n this.recomputePositions();\n },\n );\n }\n\n return () => {\n this.positionHandler = null;\n };\n }\n\n orders(handler: (data: OpenOrderDto[]) => void): () => void {\n this.orderHandler = handler;\n\n this.pearWs.subscribe('open-orders', (data) => {\n this.rawOrders = data;\n this.recomputeOrders();\n });\n\n return () => {\n this.orderHandler = null;\n };\n }\n\n tradeHistories(handler: (data: TradeHistoryDataDto[]) => void): () => void {\n this.pearWs.subscribe('trade-histories', handler);\n return () => { this.pearWs.unsubscribe('trade-histories'); };\n }\n\n twapDetails(handler: (data: TwapMonitoringDto[]) => void): () => void {\n this.pearWs.subscribe('twap-details', handler);\n return () => { this.pearWs.unsubscribe('twap-details'); };\n }\n\n accountSummary(handler: (data: AccountSummaryResponseDto) => void): () => void {\n this.pearWs.subscribe('account-summary', handler);\n return () => { this.pearWs.unsubscribe('account-summary'); };\n }\n\n notifications(handler: (data: NotificationDto[]) => void): () => void {\n this.pearWs.subscribe('notifications', handler);\n return () => { this.pearWs.unsubscribe('notifications'); };\n }\n\n recomputePositions(): void {\n const prices = this.getPrices();\n if (!this.rawPositions || !this.clearinghouseState || prices.size === 0) return;\n this.enrichedPositions = buildPositionValue(this.rawPositions, this.clearinghouseState, prices, this.hideExternalPosition);\n this.positionHandler?.(this.enrichedPositions);\n this.recomputeOrders();\n }\n\n private recomputeOrders(): void {\n if (!this.orderHandler || !this.rawOrders) return;\n const positionsById = new Map<string, EnrichedPositionDto>();\n if (this.enrichedPositions) {\n for (const p of this.enrichedPositions) positionsById.set(p.positionId, p);\n }\n this.orderHandler(enrichOrders(this.rawOrders, positionsById));\n }\n}\n","import axios from 'axios';\nimport type { PearApi } from '../api';\nimport type { HyperliquidWs } from '../ws/hyperliquid';\nimport type { ClearinghouseState } from '../ws/hyperliquid/types';\nimport { aggregateClearinghouseStates } from './positions/utils';\n\ninterface HlFillDto {\n coin: string;\n px: string;\n sz: string;\n side: 'B' | 'A';\n time: number;\n dir: string;\n fee: string;\n builderFee?: string;\n startPosition?: string;\n oid?: string | number;\n tid?: string | number;\n cloid?: string | null;\n hash?: string | null;\n feeToken?: string | null;\n}\n\ninterface TwapSliceFillItem {\n fill: HlFillDto;\n}\n\nasync function fetchFills(user: string, startTime: number): Promise<HlFillDto[]> {\n const allFills: HlFillDto[] = [];\n const seenTids = new Set<string | number>();\n\n let cursor = startTime;\n let batchSize = 0;\n\n do {\n const { data: batch } = await axios.post<HlFillDto[]>(\n 'https://api.hyperliquid.xyz/info',\n { type: 'userFillsByTime', user, startTime: cursor, aggregateByTime: true },\n );\n batchSize = batch.length;\n\n for (const fill of batch) {\n if (fill.tid !== undefined && !seenTids.has(fill.tid)) {\n seenTids.add(fill.tid);\n allFills.push(fill);\n }\n }\n\n if (batchSize === 2000) {\n cursor = batch[batch.length - 1].time;\n }\n } while (batchSize === 2000);\n\n cursor = startTime;\n batchSize = 0;\n\n do {\n const { data: twapBatch } = await axios.post<TwapSliceFillItem[]>(\n 'https://api.hyperliquid.xyz/info',\n { type: 'userTwapSliceFillsByTime', user, startTime: cursor, aggregateByTime: true },\n );\n batchSize = twapBatch.length;\n\n for (const item of twapBatch) {\n const fill = item.fill;\n if (fill.tid !== undefined && !seenTids.has(fill.tid)) {\n seenTids.add(fill.tid);\n allFills.push(fill);\n }\n }\n\n if (batchSize === 2000) {\n cursor = twapBatch[twapBatch.length - 1].fill.time;\n }\n } while (batchSize === 2000);\n\n return allFills.sort((a, b) => a.time - b.time);\n}\n\nexport class FillsSyncer {\n private api: PearApi;\n private hlWs: HyperliquidWs;\n private address: string | null = null;\n private clearinghouseState: ClearinghouseState | null = null;\n private syncing = false;\n private userFillsHandlerId: string | null = null;\n private chStateHandlerId: string | null = null;\n private initialSyncDone = false;\n\n constructor(api: PearApi, hlWs: HyperliquidWs) {\n this.api = api;\n this.hlWs = hlWs;\n }\n\n start(address: string): void {\n this.stop();\n this.address = address.toLowerCase();\n this.initialSyncDone = false;\n\n this.hlWs.subscribe('userFills', {\n type: 'userFills',\n user: this.address,\n });\n\n this.userFillsHandlerId = this.hlWs.addChannelHandler('userFills', () => {\n this.sync();\n });\n\n this.chStateHandlerId = this.hlWs.addChannelHandler(\n 'allDexsClearinghouseState',\n (data) => {\n this.clearinghouseState = aggregateClearinghouseStates(data);\n\n if (!this.initialSyncDone && this.clearinghouseState) {\n this.initialSyncDone = true;\n this.sync();\n }\n },\n );\n }\n\n stop(): void {\n if (this.userFillsHandlerId) {\n this.hlWs.removeChannelHandler('userFills', this.userFillsHandlerId);\n this.userFillsHandlerId = null;\n }\n if (this.chStateHandlerId) {\n this.hlWs.removeChannelHandler('allDexsClearinghouseState', this.chStateHandlerId);\n this.chStateHandlerId = null;\n }\n if (this.address) {\n this.hlWs.unsubscribe('userFills');\n }\n this.address = null;\n this.clearinghouseState = null;\n this.initialSyncDone = false;\n }\n\n private async sync(): Promise<void> {\n if (this.syncing || !this.address || !this.clearinghouseState) return;\n if (!this.api.getAccessToken()) return;\n\n this.syncing = true;\n try {\n const { data: summary } = await this.api.private.accounts.summary();\n const startTime = summary.lastSyncedAt ? Number(summary.lastSyncedAt) + 1 : 0;\n\n const fills = await fetchFills(this.address, startTime);\n if (fills.length === 0) return;\n\n await this.api.private.sync.fills({\n user: this.address,\n fills: fills as any,\n assetPositions: this.clearinghouseState.assetPositions as any,\n });\n } catch {\n // retry on next userFills event\n } finally {\n this.syncing = false;\n }\n }\n}\n","import { WebSocket as ReconnectingWebSocket } from 'partysocket';\n\nexport interface PearTransport {\n readonly connected: boolean;\n send(data: string): void;\n addMessageListener(listener: (data: string) => void): string;\n removeMessageListener(id: string): void;\n addOpenListener(listener: () => void): string;\n removeOpenListener(id: string): void;\n}\n\nexport interface PearDefaultTransportConfig {\n url: string;\n maxReconnectionDelay?: number;\n minReconnectionDelay?: number;\n connectionTimeout?: number;\n}\n\nexport class PearDefaultTransport implements PearTransport {\n private ws: ReconnectingWebSocket;\n private messageListeners = new Map<string, (data: string) => void>();\n private openListeners = new Map<string, () => void>();\n private nextId = 0;\n\n constructor(config: PearDefaultTransportConfig) {\n this.ws = new ReconnectingWebSocket(config.url, [], {\n maxReconnectionDelay: config.maxReconnectionDelay ?? 30_000,\n minReconnectionDelay: config.minReconnectionDelay ?? 1_000,\n reconnectionDelayGrowFactor: 2,\n connectionTimeout: config.connectionTimeout ?? 10_000,\n });\n\n this.ws.addEventListener('open', () => {\n for (const listener of this.openListeners.values()) {\n try { listener(); } catch {}\n }\n });\n\n this.ws.addEventListener('message', (event: MessageEvent<string>) => {\n for (const listener of this.messageListeners.values()) {\n try { listener(event.data); } catch {}\n }\n });\n }\n\n get connected(): boolean {\n return this.ws.readyState === ReconnectingWebSocket.OPEN;\n }\n\n send(data: string): void {\n if (this.ws.readyState === ReconnectingWebSocket.OPEN) {\n this.ws.send(data);\n }\n }\n\n addMessageListener(listener: (data: string) => void): string {\n const id = String(++this.nextId);\n this.messageListeners.set(id, listener);\n return id;\n }\n\n removeMessageListener(id: string): void {\n this.messageListeners.delete(id);\n }\n\n addOpenListener(listener: () => void): string {\n const id = String(++this.nextId);\n this.openListeners.set(id, listener);\n return id;\n }\n\n removeOpenListener(id: string): void {\n this.openListeners.delete(id);\n }\n\n close(): void {\n this.ws.close();\n this.messageListeners.clear();\n this.openListeners.clear();\n }\n}\n","import type { PearTransport } from '../transport';\nimport type {\n PearWsChannel,\n PearWsChannelDataMap,\n PearWsDataMessage,\n ChannelHandler,\n} from './types';\n\nconst ADDRESS_SPECIFIC_CHANNELS = new Set<PearWsChannel>([\n 'trade-histories',\n 'open-positions',\n 'positions',\n 'account-summary',\n 'open-orders',\n 'twap-details',\n 'fills-checkpoint',\n 'notifications',\n 'trades',\n 'twap-trades',\n]);\n\nexport class PearWs {\n private transport: PearTransport;\n private handlers = new Map<PearWsChannel, ChannelHandler<any>>();\n private address: string | null = null;\n private messageListenerId: string | null = null;\n private openListenerId: string | null = null;\n\n constructor(transport: PearTransport) {\n this.transport = transport;\n this.messageListenerId = this.transport.addMessageListener((raw) => this.handleMessage(raw));\n this.openListenerId = this.transport.addOpenListener(() => this.resubscribeAll());\n }\n\n setAddress(address: string | null): void {\n const normalized = address?.toLowerCase() ?? null;\n if (normalized === this.address) return;\n\n const oldAddress = this.address;\n this.address = normalized;\n\n if (!this.transport.connected) return;\n\n const addressChannels = this.getActiveAddressChannels();\n if (addressChannels.length === 0) return;\n\n if (oldAddress) {\n this.sendToTransport({\n action: 'unsubscribe',\n address: oldAddress,\n channels: addressChannels,\n });\n }\n\n if (normalized) {\n this.sendToTransport({\n action: 'subscribe',\n address: normalized,\n channels: addressChannels,\n });\n }\n }\n\n subscribe<C extends PearWsChannel>(\n channel: C,\n handler: ChannelHandler<C>,\n ): void {\n const wasActive = this.handlers.has(channel);\n this.handlers.set(channel, handler as ChannelHandler<any>);\n\n if (!wasActive && this.transport.connected) {\n this.sendSubscribe([channel]);\n }\n }\n\n unsubscribe(channel: PearWsChannel): void {\n if (!this.handlers.has(channel)) return;\n\n this.handlers.delete(channel);\n\n if (this.transport.connected) {\n this.sendUnsubscribe([channel]);\n }\n }\n\n destroy(): void {\n if (this.messageListenerId) {\n this.transport.removeMessageListener(this.messageListenerId);\n this.messageListenerId = null;\n }\n if (this.openListenerId) {\n this.transport.removeOpenListener(this.openListenerId);\n this.openListenerId = null;\n }\n this.handlers.clear();\n this.address = null;\n }\n\n private handleMessage(raw: string): void {\n let parsed: any;\n try {\n parsed = JSON.parse(raw);\n } catch {\n return;\n }\n\n if (('success' in parsed || 'error' in parsed) && !('channel' in parsed)) {\n return;\n }\n\n if (!('channel' in parsed) || !('data' in parsed)) return;\n\n const msg = parsed as PearWsDataMessage;\n if (msg.data === null || msg.data === undefined) return;\n\n const handler = this.handlers.get(msg.channel);\n if (handler) {\n try {\n handler(msg.data as PearWsChannelDataMap[typeof msg.channel]);\n } catch {}\n }\n }\n\n private resubscribeAll(): void {\n if (this.handlers.size === 0) return;\n\n const globalChannels: PearWsChannel[] = [];\n const addressChannels: PearWsChannel[] = [];\n\n for (const ch of this.handlers.keys()) {\n if (ADDRESS_SPECIFIC_CHANNELS.has(ch)) {\n addressChannels.push(ch);\n } else {\n globalChannels.push(ch);\n }\n }\n\n if (globalChannels.length > 0) {\n this.sendToTransport({\n action: 'subscribe',\n channels: globalChannels,\n });\n }\n\n if (addressChannels.length > 0 && this.address) {\n this.sendToTransport({\n action: 'subscribe',\n address: this.address,\n channels: addressChannels,\n });\n }\n }\n\n private sendSubscribe(channels: PearWsChannel[]): void {\n const needsAddress = channels.some((ch) => ADDRESS_SPECIFIC_CHANNELS.has(ch));\n this.sendToTransport({\n action: 'subscribe',\n ...(needsAddress && this.address ? { address: this.address } : {}),\n channels,\n });\n }\n\n private sendUnsubscribe(channels: PearWsChannel[]): void {\n const needsAddress = channels.some((ch) => ADDRESS_SPECIFIC_CHANNELS.has(ch));\n this.sendToTransport({\n action: 'unsubscribe',\n ...(needsAddress && this.address ? { address: this.address } : {}),\n channels,\n });\n }\n\n private sendToTransport(msg: object): void {\n this.transport.send(JSON.stringify(msg));\n }\n\n private getActiveAddressChannels(): PearWsChannel[] {\n return Array.from(this.handlers.keys()).filter((ch) => ADDRESS_SPECIFIC_CHANNELS.has(ch));\n }\n}\n","import type { PearTransport } from '../transport';\nimport type {\n HyperliquidSubscription,\n HyperliquidChannel,\n HyperliquidChannelHandler,\n} from './types';\n\ninterface ActiveSubscription {\n channel: string;\n subscription: HyperliquidSubscription;\n}\n\nexport class HyperliquidWs {\n private transport: PearTransport;\n private subscriptions = new Map<string, ActiveSubscription>();\n private channelHandlers = new Map<string, Map<string, HyperliquidChannelHandler<any>>>();\n private messageListenerId: string | null = null;\n private openListenerId: string | null = null;\n private nextHandlerId = 0;\n\n constructor(transport: PearTransport) {\n this.transport = transport;\n }\n\n public get connected(): boolean {\n return this.transport.connected;\n }\n\n public start(): void {\n if (this.messageListenerId) return;\n\n this.messageListenerId = this.transport.addMessageListener((data: string) => {\n this.handleMessage(data);\n });\n\n this.openListenerId = this.transport.addOpenListener(() => {\n this.resubscribeAll();\n });\n\n if (this.transport.connected) {\n this.resubscribeAll();\n }\n }\n\n public stop(): void {\n if (this.messageListenerId) {\n this.transport.removeMessageListener(this.messageListenerId);\n this.messageListenerId = null;\n }\n\n if (this.openListenerId) {\n this.transport.removeOpenListener(this.openListenerId);\n this.openListenerId = null;\n }\n\n for (const [, sub] of this.subscriptions) {\n this.sendUnsubscribe(sub.subscription);\n }\n\n this.subscriptions.clear();\n }\n\n public subscribe(id: string, subscription: HyperliquidSubscription): void {\n if (this.subscriptions.has(id)) return;\n\n this.subscriptions.set(id, {\n channel: subscription.type,\n subscription,\n });\n\n if (this.transport.connected) {\n this.sendSubscribe(subscription);\n }\n }\n\n public unsubscribe(id: string): void {\n const sub = this.subscriptions.get(id);\n if (!sub) return;\n\n this.subscriptions.delete(id);\n if (this.transport.connected) {\n this.sendUnsubscribe(sub.subscription);\n }\n }\n\n public addChannelHandler<C extends HyperliquidChannel>(\n channel: C,\n handler: HyperliquidChannelHandler<C>,\n ): string {\n const handlerId = String(++this.nextHandlerId);\n let handlers = this.channelHandlers.get(channel);\n if (!handlers) {\n handlers = new Map();\n this.channelHandlers.set(channel, handlers);\n }\n handlers.set(handlerId, handler);\n return handlerId;\n }\n\n public removeChannelHandler(channel: HyperliquidChannel, handlerId: string): void {\n const handlers = this.channelHandlers.get(channel);\n if (handlers) {\n handlers.delete(handlerId);\n if (handlers.size === 0) {\n this.channelHandlers.delete(channel);\n }\n }\n }\n\n public destroy(): void {\n this.stop();\n this.channelHandlers.clear();\n }\n\n private handleMessage(raw: string): void {\n let msg: Record<string, unknown>;\n try {\n msg = JSON.parse(raw) as Record<string, unknown>;\n } catch {\n return;\n }\n\n const channel = msg.channel as string | undefined;\n if (!channel || !('data' in msg)) return;\n\n const handlers = this.channelHandlers.get(channel);\n if (!handlers) return;\n\n for (const handler of handlers.values()) {\n try {\n handler(msg.data);\n } catch {}\n }\n }\n\n private resubscribeAll(): void {\n for (const [, sub] of this.subscriptions) {\n this.sendSubscribe(sub.subscription);\n }\n }\n\n private sendSubscribe(subscription: HyperliquidSubscription): void {\n this.transport.send(JSON.stringify({ method: 'subscribe', subscription }));\n }\n\n private sendUnsubscribe(subscription: HyperliquidSubscription): void {\n this.transport.send(JSON.stringify({ method: 'unsubscribe', subscription }));\n }\n}\n","import { PearApi } from './api';\nimport { MarketSubscriptions } from './market/subscriptions';\nimport { UserSubscriptions } from './user';\nimport { FillsSyncer } from './user/sync';\nimport { PearDefaultTransport } from './ws/transport';\nimport { PearWs } from './ws/pear/pear-ws';\nimport { HyperliquidWs } from './ws/hyperliquid';\n\nexport class PearSdk {\n public readonly api: PearApi;\n public readonly pear: PearWs;\n public readonly hyperliquid: HyperliquidWs;\n public readonly market: MarketSubscriptions;\n public readonly user: UserSubscriptions;\n\n private pearTransport: PearDefaultTransport;\n private hlTransport: PearDefaultTransport;\n private syncer: FillsSyncer;\n private address: string | null = null;\n\n constructor() {\n this.api = new PearApi();\n\n this.pearTransport = new PearDefaultTransport({\n url: 'wss://hl-v2.pearprotocol.io/ws',\n });\n\n this.hlTransport = new PearDefaultTransport({\n url: 'wss://api.hyperliquid.xyz/ws',\n });\n\n this.pear = new PearWs(this.pearTransport);\n\n this.hyperliquid = new HyperliquidWs(this.hlTransport);\n this.hyperliquid.start();\n\n this.market = new MarketSubscriptions(this.hyperliquid, this.pear);\n this.user = new UserSubscriptions(\n this.api,\n this.pear,\n this.hyperliquid,\n () => this.market.getPrices(),\n () => this.address,\n );\n this.syncer = new FillsSyncer(this.api, this.hyperliquid);\n\n this.market.setOnPricesUpdated(() => {\n this.user.recomputePositions();\n });\n }\n\n setAddress(address: string): void {\n const normalized = address.toLowerCase();\n this.address = normalized;\n this.pear.setAddress(normalized);\n\n this.hyperliquid.subscribe('allDexsClearinghouseState', {\n type: 'allDexsClearinghouseState',\n user: normalized,\n });\n\n this.syncer.start(normalized);\n }\n\n destroy(): void {\n this.syncer.stop();\n this.market.destroy();\n this.pear.destroy();\n this.hyperliquid.destroy();\n this.pearTransport.close();\n this.hlTransport.close();\n }\n}\n","import type {\n AccountSummaryResponseDto,\n ActiveAssetsResponse,\n MarketDataV2Response,\n OpenOrderDto,\n OpenPositionProcessedDto,\n PairAssetDto,\n TradeHistoryDataDto,\n TwapMonitoringDto,\n} from '../../api';\nimport type { RawPositionDto } from '../../user/positions/types';\n\nexport type PearWsChannel =\n | 'trade-histories'\n | 'open-positions'\n | 'positions'\n | 'account-summary'\n | 'open-orders'\n | 'twap-details'\n | 'fills-checkpoint'\n | 'notifications'\n | 'trades'\n | 'twap-trades'\n | 'trades-all'\n | 'twap-trades-all'\n | 'market-data'\n | 'market-data/v2';\n\nexport interface TradeEventDto {\n side: 'OPEN' | 'CLOSE';\n longAssets: PairAssetDto[];\n shortAssets: PairAssetDto[];\n usdValue: number;\n leverage?: number;\n}\n\nexport interface TwapTradeEventDto extends TradeEventDto {\n interval: number;\n sizePerExecution: number;\n duration: number;\n}\n\nexport interface PearWsChannelDataMap {\n 'trade-histories': TradeHistoryDataDto[];\n 'open-positions': RawPositionDto[];\n 'positions': OpenPositionProcessedDto[];\n 'account-summary': AccountSummaryResponseDto;\n 'open-orders': OpenOrderDto[];\n 'twap-details': TwapMonitoringDto[];\n 'fills-checkpoint': Record<string, unknown>;\n 'notifications': NotificationDto[];\n 'trades': TradeEventDto;\n 'twap-trades': TwapTradeEventDto;\n 'trades-all': TradeEventDto & { address: string };\n 'twap-trades-all': TwapTradeEventDto & { address: string };\n 'market-data': ActiveAssetsResponse;\n 'market-data/v2': MarketDataV2Response;\n}\n\nexport interface PearWsDataMessage<C extends PearWsChannel = PearWsChannel> {\n channel: C;\n data: PearWsChannelDataMap[C];\n}\n\nexport interface PearWsSubscribeMessage {\n action: 'subscribe';\n address?: string;\n channels: PearWsChannel[];\n}\n\nexport interface PearWsUnsubscribeMessage {\n action: 'unsubscribe';\n address?: string;\n channels: PearWsChannel[];\n}\n\nexport type PearWsOutgoingMessage = PearWsSubscribeMessage | PearWsUnsubscribeMessage;\n\nexport interface PearWsSuccessResponse {\n success: true;\n message: string;\n subscribedChannels: string[];\n}\n\nexport interface PearWsErrorResponse {\n error: string;\n [key: string]: unknown;\n}\n\nexport type NotificationCategory =\n | 'TRADE_OPENED_OUTSIDE_PEAR'\n | 'TRADE_CLOSED_OUTSIDE_PEAR'\n | 'POSITION_LIQUIDATED'\n | 'LIMIT_ORDER_FILLED'\n | 'LIMIT_ORDER_FAILED'\n | 'TP_ORDER_FILLED'\n | 'TP_ORDER_FAILED'\n | 'SL_ORDER_FILLED'\n | 'SL_ORDER_FAILED'\n | 'TRIGGER_ORDER_FILLED'\n | 'TRIGGER_ORDER_FAILED';\n\nexport interface NotificationAsset {\n asset: string;\n side: 'LONG' | 'SHORT';\n weight?: number;\n}\n\nexport interface TradeOutsideNotificationParams {\n time: number;\n clientId: string;\n address: string;\n usd_value: number;\n assets: NotificationAsset[];\n}\n\nexport interface LiquidationNotificationParams {\n time: number;\n total_events: number;\n liquidation_assets: string[];\n}\n\nexport interface TpSlNotificationParams {\n order_id?: string;\n position_id: string;\n client_id: string;\n trigger_type: string;\n trigger_value: number | string | null;\n direction?: string | null;\n pnl_percentage: number;\n pnl_amount: number;\n current_position_value: number;\n error?: string;\n}\n\nexport type TriggerOrderType =\n | 'PRICE'\n | 'PRICE_RATIO'\n | 'WEIGHTED_RATIO'\n | 'CROSS_ASSET_PRICE'\n | 'PREDICTION_MARKET_OUTCOME'\n | 'BTC_DOM';\n\nexport interface TriggerOrderNotificationParams {\n order_id: string;\n client_id: string;\n order_type: string;\n trigger_type: TriggerOrderType;\n direction?: string | null;\n trigger_value: number | string | null;\n usd_value: number;\n leverage: number;\n assets: NotificationAsset[];\n asset_name?: string;\n market_code?: string;\n result?: string;\n current_btc_dominance?: number;\n error?: string;\n}\n\nexport type NotificationParams =\n | TradeOutsideNotificationParams\n | LiquidationNotificationParams\n | TpSlNotificationParams\n | TriggerOrderNotificationParams;\n\nexport interface NotificationDto {\n id: string;\n address: string;\n category: NotificationCategory;\n parameters: NotificationParams;\n is_read: boolean;\n created_at: string;\n updated_at: string;\n}\n\nexport type ChannelHandler<C extends PearWsChannel = PearWsChannel> = (\n data: PearWsChannelDataMap[C],\n) => void;\n\nexport enum ReadyState {\n CONNECTING = 0,\n OPEN = 1,\n CLOSING = 2,\n CLOSED = 3,\n}\n\nexport interface PearWsConfig {\n url: string;\n reconnect?: boolean;\n reconnectDelay?: number;\n maxReconnectAttempts?: number;\n}\n"]}
|