@metamask-previews/perps-controller 15.1.0-preview-00a181c → 15.1.0-preview-a302de5c3

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.
Files changed (130) hide show
  1. package/CHANGELOG.md +0 -14
  2. package/dist/PerpsController-method-action-types.cjs.map +1 -1
  3. package/dist/PerpsController-method-action-types.d.cts +1 -20
  4. package/dist/PerpsController-method-action-types.d.cts.map +1 -1
  5. package/dist/PerpsController-method-action-types.d.mts +1 -20
  6. package/dist/PerpsController-method-action-types.d.mts.map +1 -1
  7. package/dist/PerpsController-method-action-types.mjs.map +1 -1
  8. package/dist/PerpsController.cjs +154 -65
  9. package/dist/PerpsController.cjs.map +1 -1
  10. package/dist/PerpsController.d.cts +43 -37
  11. package/dist/PerpsController.d.cts.map +1 -1
  12. package/dist/PerpsController.d.mts +43 -37
  13. package/dist/PerpsController.d.mts.map +1 -1
  14. package/dist/PerpsController.mjs +151 -64
  15. package/dist/PerpsController.mjs.map +1 -1
  16. package/dist/aggregation/SubscriptionMultiplexer.cjs +1 -1
  17. package/dist/aggregation/SubscriptionMultiplexer.cjs.map +1 -1
  18. package/dist/aggregation/SubscriptionMultiplexer.d.cts +1 -1
  19. package/dist/aggregation/SubscriptionMultiplexer.d.mts +1 -1
  20. package/dist/aggregation/SubscriptionMultiplexer.mjs +1 -1
  21. package/dist/aggregation/SubscriptionMultiplexer.mjs.map +1 -1
  22. package/dist/constants/index.cjs +1 -0
  23. package/dist/constants/index.cjs.map +1 -1
  24. package/dist/constants/index.d.cts +1 -0
  25. package/dist/constants/index.d.cts.map +1 -1
  26. package/dist/constants/index.d.mts +1 -0
  27. package/dist/constants/index.d.mts.map +1 -1
  28. package/dist/constants/index.mjs +1 -0
  29. package/dist/constants/index.mjs.map +1 -1
  30. package/dist/constants/myxConfig.cjs +253 -0
  31. package/dist/constants/myxConfig.cjs.map +1 -0
  32. package/dist/constants/myxConfig.d.cts +145 -0
  33. package/dist/constants/myxConfig.d.cts.map +1 -0
  34. package/dist/constants/myxConfig.d.mts +145 -0
  35. package/dist/constants/myxConfig.d.mts.map +1 -0
  36. package/dist/constants/myxConfig.mjs +243 -0
  37. package/dist/constants/myxConfig.mjs.map +1 -0
  38. package/dist/constants/perpsConfig.cjs +9 -4
  39. package/dist/constants/perpsConfig.cjs.map +1 -1
  40. package/dist/constants/perpsConfig.d.cts +5 -3
  41. package/dist/constants/perpsConfig.d.cts.map +1 -1
  42. package/dist/constants/perpsConfig.d.mts +5 -3
  43. package/dist/constants/perpsConfig.d.mts.map +1 -1
  44. package/dist/constants/perpsConfig.mjs +9 -4
  45. package/dist/constants/perpsConfig.mjs.map +1 -1
  46. package/dist/index.cjs +175 -146
  47. package/dist/index.cjs.map +1 -1
  48. package/dist/index.d.cts +2 -2
  49. package/dist/index.d.cts.map +1 -1
  50. package/dist/index.d.mts +2 -2
  51. package/dist/index.d.mts.map +1 -1
  52. package/dist/index.mjs +1 -0
  53. package/dist/index.mjs.map +1 -1
  54. package/dist/providers/AggregatedPerpsProvider.cjs +2 -8
  55. package/dist/providers/AggregatedPerpsProvider.cjs.map +1 -1
  56. package/dist/providers/AggregatedPerpsProvider.d.cts +2 -3
  57. package/dist/providers/AggregatedPerpsProvider.d.cts.map +1 -1
  58. package/dist/providers/AggregatedPerpsProvider.d.mts +2 -3
  59. package/dist/providers/AggregatedPerpsProvider.d.mts.map +1 -1
  60. package/dist/providers/AggregatedPerpsProvider.mjs +2 -8
  61. package/dist/providers/AggregatedPerpsProvider.mjs.map +1 -1
  62. package/dist/providers/HyperLiquidProvider.cjs +22 -118
  63. package/dist/providers/HyperLiquidProvider.cjs.map +1 -1
  64. package/dist/providers/HyperLiquidProvider.d.cts +0 -31
  65. package/dist/providers/HyperLiquidProvider.d.cts.map +1 -1
  66. package/dist/providers/HyperLiquidProvider.d.mts +0 -31
  67. package/dist/providers/HyperLiquidProvider.d.mts.map +1 -1
  68. package/dist/providers/HyperLiquidProvider.mjs +22 -118
  69. package/dist/providers/HyperLiquidProvider.mjs.map +1 -1
  70. package/dist/providers/LighterProvider.cjs +1 -1
  71. package/dist/providers/LighterProvider.cjs.map +1 -1
  72. package/dist/providers/LighterProvider.mjs +1 -1
  73. package/dist/providers/LighterProvider.mjs.map +1 -1
  74. package/dist/routing/ProviderRouter.cjs +1 -1
  75. package/dist/routing/ProviderRouter.cjs.map +1 -1
  76. package/dist/routing/ProviderRouter.d.cts +1 -1
  77. package/dist/routing/ProviderRouter.d.mts +1 -1
  78. package/dist/routing/ProviderRouter.mjs +1 -1
  79. package/dist/routing/ProviderRouter.mjs.map +1 -1
  80. package/dist/services/HyperLiquidClientService.cjs.map +1 -1
  81. package/dist/services/HyperLiquidClientService.d.cts +16 -26
  82. package/dist/services/HyperLiquidClientService.d.cts.map +1 -1
  83. package/dist/services/HyperLiquidClientService.d.mts +16 -26
  84. package/dist/services/HyperLiquidClientService.d.mts.map +1 -1
  85. package/dist/services/HyperLiquidClientService.mjs.map +1 -1
  86. package/dist/services/HyperLiquidWalletService.cjs +30 -80
  87. package/dist/services/HyperLiquidWalletService.cjs.map +1 -1
  88. package/dist/services/HyperLiquidWalletService.d.cts +22 -48
  89. package/dist/services/HyperLiquidWalletService.d.cts.map +1 -1
  90. package/dist/services/HyperLiquidWalletService.d.mts +22 -48
  91. package/dist/services/HyperLiquidWalletService.d.mts.map +1 -1
  92. package/dist/services/HyperLiquidWalletService.mjs +30 -80
  93. package/dist/services/HyperLiquidWalletService.mjs.map +1 -1
  94. package/dist/services/LighterWalletService.cjs +1 -1
  95. package/dist/services/LighterWalletService.cjs.map +1 -1
  96. package/dist/services/LighterWalletService.d.cts +1 -1
  97. package/dist/services/LighterWalletService.d.mts +1 -1
  98. package/dist/services/LighterWalletService.mjs +1 -1
  99. package/dist/services/LighterWalletService.mjs.map +1 -1
  100. package/dist/types/index.cjs.map +1 -1
  101. package/dist/types/index.d.cts +16 -10
  102. package/dist/types/index.d.cts.map +1 -1
  103. package/dist/types/index.d.mts +16 -10
  104. package/dist/types/index.d.mts.map +1 -1
  105. package/dist/types/index.mjs.map +1 -1
  106. package/dist/types/myx-types.cjs +41 -0
  107. package/dist/types/myx-types.cjs.map +1 -0
  108. package/dist/types/myx-types.d.cts +94 -0
  109. package/dist/types/myx-types.d.cts.map +1 -0
  110. package/dist/types/myx-types.d.mts +94 -0
  111. package/dist/types/myx-types.d.mts.map +1 -0
  112. package/dist/types/myx-types.mjs +26 -0
  113. package/dist/types/myx-types.mjs.map +1 -0
  114. package/dist/utils/lighterAdapter.cjs +2 -1
  115. package/dist/utils/lighterAdapter.cjs.map +1 -1
  116. package/dist/utils/lighterAdapter.d.cts +2 -1
  117. package/dist/utils/lighterAdapter.d.cts.map +1 -1
  118. package/dist/utils/lighterAdapter.d.mts +2 -1
  119. package/dist/utils/lighterAdapter.d.mts.map +1 -1
  120. package/dist/utils/lighterAdapter.mjs +2 -1
  121. package/dist/utils/lighterAdapter.mjs.map +1 -1
  122. package/dist/utils/myxAdapter.cjs +569 -0
  123. package/dist/utils/myxAdapter.cjs.map +1 -0
  124. package/dist/utils/myxAdapter.d.cts +168 -0
  125. package/dist/utils/myxAdapter.d.cts.map +1 -0
  126. package/dist/utils/myxAdapter.d.mts +168 -0
  127. package/dist/utils/myxAdapter.d.mts.map +1 -0
  128. package/dist/utils/myxAdapter.mjs +548 -0
  129. package/dist/utils/myxAdapter.mjs.map +1 -0
  130. package/package.json +8 -2
@@ -0,0 +1,168 @@
1
+ /**
2
+ * MYX SDK Adapter Utilities
3
+ *
4
+ * Adapters for transforming between MetaMask Perps API types and MYX SDK types.
5
+ * Includes adapters for market display, positions, orders, account state, and fills.
6
+ *
7
+ * Portable: no mobile-specific imports.
8
+ * Formatters are injected via MarketDataFormatters interface (same pattern as marketDataTransform.ts).
9
+ *
10
+ * Key differences from HyperLiquid:
11
+ * - API prices are normal floats (SDK contract layer uses 30 decimals internally)
12
+ * - Sizes use 18 decimals (vs HyperLiquid's szDecimals per asset)
13
+ * - Multiple pools can exist per symbol (MPM model)
14
+ * - USDT collateral (vs USDC)
15
+ */
16
+ import type { AccountState, CandleStick, Funding, MarketInfo, Order, OrderFill, PerpsMarketData, Position, MarketDataFormatters, UserHistoryItem } from "../types/index.cjs";
17
+ import type { MYXPoolSymbol, MYXTicker, MYXPositionType, MYXHistoryOrderItem, MYXTradeFlowItem, MYXKlineData, MYXKlineWsData } from "../types/myx-types.cjs";
18
+ /**
19
+ * Transform MYX Pool/Market info to MetaMask Perps API MarketInfo format
20
+ *
21
+ * @param pool - Pool symbol data from MYX SDK (PoolSymbolAllResponse)
22
+ * @returns MetaMask Perps API market info object
23
+ */
24
+ export declare function adaptMarketFromMYX(pool: MYXPoolSymbol): MarketInfo;
25
+ /**
26
+ * Convert MYX ticker data to price and change values
27
+ *
28
+ * @param ticker - Ticker data from MYX SDK
29
+ * @returns Object with price string and 24h change percentage
30
+ */
31
+ export declare function adaptPriceFromMYX(ticker: MYXTicker): {
32
+ price: string;
33
+ change24h: number;
34
+ };
35
+ /**
36
+ * Transform MYX pool and ticker to PerpsMarketData for UI display
37
+ *
38
+ * @param pool - Pool symbol data from MYX SDK
39
+ * @param ticker - Optional ticker data for price info
40
+ * @param formatters - Injectable formatters for platform-agnostic formatting
41
+ * @returns Formatted market data for UI display
42
+ */
43
+ export declare function adaptMarketDataFromMYX(pool: MYXPoolSymbol, ticker: MYXTicker | undefined, formatters: MarketDataFormatters): PerpsMarketData;
44
+ /**
45
+ * Filter MYX markets to only include MYX-exclusive markets
46
+ * Removes markets that overlap with HyperLiquid
47
+ *
48
+ * @param pools - Array of MYX pool symbols
49
+ * @returns Filtered array with only MYX-exclusive markets
50
+ */
51
+ export declare function filterMYXExclusiveMarkets(pools: MYXPoolSymbol[]): MYXPoolSymbol[];
52
+ /**
53
+ * Check if a symbol overlaps with HyperLiquid markets
54
+ *
55
+ * @param symbol - Market symbol to check
56
+ * @returns true if the symbol is available on both MYX and HyperLiquid
57
+ */
58
+ export declare function isOverlappingMarket(symbol: string): boolean;
59
+ /**
60
+ * Build a map of poolId to symbol for quick lookup
61
+ *
62
+ * @param pools - Array of MYX pool symbols
63
+ * @returns Map of poolId to symbol
64
+ */
65
+ export declare function buildPoolSymbolMap(pools: MYXPoolSymbol[]): Map<string, string>;
66
+ /**
67
+ * Build a map of symbol to poolIds (for multi-pool support)
68
+ *
69
+ * @param pools - Array of MYX pool symbols
70
+ * @returns Map of symbol to array of poolIds
71
+ */
72
+ export declare function buildSymbolPoolsMap(pools: MYXPoolSymbol[]): Map<string, string[]>;
73
+ /**
74
+ * Extract symbol from pool ID
75
+ * Pool IDs typically contain the symbol as a suffix or can be parsed.
76
+ * When baseSymbol is unavailable, returns a truncated address for UI display.
77
+ *
78
+ * @param poolId - MYX pool ID string
79
+ * @returns Extracted symbol or truncated poolId as fallback
80
+ */
81
+ export declare function extractSymbolFromPoolId(poolId: string): string;
82
+ /**
83
+ * Adapt MYX SDK PositionType to MetaMask Position
84
+ *
85
+ * @param pos - MYX position from SDK
86
+ * @param poolSymbolMap - Map of poolId to symbol
87
+ * @returns MetaMask Position object
88
+ */
89
+ export declare function adaptPositionFromMYX(pos: MYXPositionType, poolSymbolMap: Map<string, string>): Position;
90
+ /**
91
+ * Adapt MYX SDK open order (PositionType-shaped from getOrders) to MetaMask Order.
92
+ * Note: getOrders returns PositionType[] per the SDK types.
93
+ * For richer order data, use getOrderHistory.
94
+ *
95
+ * @param historyOrder - MYX history order item
96
+ * @param poolSymbolMap - Map of poolId to symbol
97
+ * @returns MetaMask Order object
98
+ */
99
+ export declare function adaptOrderFromMYX(historyOrder: MYXHistoryOrderItem, poolSymbolMap: Map<string, string>): Order;
100
+ /**
101
+ * Adapt MYX account info response to MetaMask AccountState.
102
+ *
103
+ * @param accountInfo - Raw account info from MYX SDK
104
+ * @param walletBalance - Wallet USDT balance (from getWalletQuoteTokenBalance)
105
+ * @returns MetaMask AccountState
106
+ */
107
+ export declare function adaptAccountStateFromMYX(accountInfo: Record<string, unknown> | undefined, walletBalance?: string): AccountState;
108
+ /**
109
+ * Adapt MYX history order item (filled) to MetaMask OrderFill
110
+ *
111
+ * @param order - MYX history order item
112
+ * @param poolSymbolMap - Map of poolId to symbol
113
+ * @returns MetaMask OrderFill
114
+ */
115
+ export declare function adaptOrderFillFromMYX(order: MYXHistoryOrderItem, poolSymbolMap: Map<string, string>): OrderFill;
116
+ /**
117
+ * Adapt MYX trade flow items (funding type) to MetaMask Funding
118
+ *
119
+ * @param flows - MYX trade flow items filtered to funding type
120
+ * @param poolSymbolMap - Map of poolId to symbol
121
+ * @returns Array of MetaMask Funding objects
122
+ */
123
+ export declare function adaptFundingFromMYX(flows: MYXTradeFlowItem[], poolSymbolMap: Map<string, string>): Funding[];
124
+ /**
125
+ * Adapt MYX trade flow items to MetaMask UserHistoryItem
126
+ *
127
+ * @param flows - MYX trade flow items
128
+ * @returns Array of UserHistoryItem
129
+ */
130
+ export declare function adaptUserHistoryFromMYX(flows: MYXTradeFlowItem[]): UserHistoryItem[];
131
+ /**
132
+ * Adapt MYX KlineDataItemType to MetaMask CandleStick.
133
+ * KlineDataItemType fields (time, open, close, high, low) are already
134
+ * human-readable strings — no 30-decimal conversion needed.
135
+ *
136
+ * @param item - MYX kline data item from SDK
137
+ * @returns MetaMask CandleStick object
138
+ */
139
+ export declare function adaptCandleFromMYX(item: MYXKlineData): CandleStick;
140
+ /**
141
+ * Adapt MYX WebSocket KlineData to MetaMask CandleStick.
142
+ * WS KlineData uses single-letter fields: {t, o, h, l, c, v}.
143
+ *
144
+ * @param data - MYX WebSocket kline data
145
+ * @returns MetaMask CandleStick object
146
+ */
147
+ export declare function adaptCandleFromMYXWebSocket(data: MYXKlineWsData): CandleStick;
148
+ /**
149
+ * Convert a CandlePeriod string to MYX KlineResolution.
150
+ *
151
+ * @param period - CandlePeriod value (e.g., '1m', '3m', '1h')
152
+ * @returns MYX KlineResolution string
153
+ */
154
+ export declare function toMYXKlineResolution(period: string): string;
155
+ /**
156
+ * Assert MYX API response is successful.
157
+ * MYX uses code 9200 or 0 for success.
158
+ *
159
+ * @param response - MYX API response with code field
160
+ * @param response.code - Response code (9200 or 0 = success)
161
+ * @param response.message - Optional error message
162
+ * @param context - Context string for error messages
163
+ */
164
+ export declare function assertMYXSuccess(response: {
165
+ code: number;
166
+ message?: string | null;
167
+ }, context: string): void;
168
+ //# sourceMappingURL=myxAdapter.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"myxAdapter.d.cts","sourceRoot":"","sources":["../../src/utils/myxAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * MYX SDK Adapter Utilities
3
+ *
4
+ * Adapters for transforming between MetaMask Perps API types and MYX SDK types.
5
+ * Includes adapters for market display, positions, orders, account state, and fills.
6
+ *
7
+ * Portable: no mobile-specific imports.
8
+ * Formatters are injected via MarketDataFormatters interface (same pattern as marketDataTransform.ts).
9
+ *
10
+ * Key differences from HyperLiquid:
11
+ * - API prices are normal floats (SDK contract layer uses 30 decimals internally)
12
+ * - Sizes use 18 decimals (vs HyperLiquid's szDecimals per asset)
13
+ * - Multiple pools can exist per symbol (MPM model)
14
+ * - USDT collateral (vs USDC)
15
+ */
16
+ import type { AccountState, CandleStick, Funding, MarketInfo, Order, OrderFill, PerpsMarketData, Position, MarketDataFormatters, UserHistoryItem } from "../types/index.mjs";
17
+ import type { MYXPoolSymbol, MYXTicker, MYXPositionType, MYXHistoryOrderItem, MYXTradeFlowItem, MYXKlineData, MYXKlineWsData } from "../types/myx-types.mjs";
18
+ /**
19
+ * Transform MYX Pool/Market info to MetaMask Perps API MarketInfo format
20
+ *
21
+ * @param pool - Pool symbol data from MYX SDK (PoolSymbolAllResponse)
22
+ * @returns MetaMask Perps API market info object
23
+ */
24
+ export declare function adaptMarketFromMYX(pool: MYXPoolSymbol): MarketInfo;
25
+ /**
26
+ * Convert MYX ticker data to price and change values
27
+ *
28
+ * @param ticker - Ticker data from MYX SDK
29
+ * @returns Object with price string and 24h change percentage
30
+ */
31
+ export declare function adaptPriceFromMYX(ticker: MYXTicker): {
32
+ price: string;
33
+ change24h: number;
34
+ };
35
+ /**
36
+ * Transform MYX pool and ticker to PerpsMarketData for UI display
37
+ *
38
+ * @param pool - Pool symbol data from MYX SDK
39
+ * @param ticker - Optional ticker data for price info
40
+ * @param formatters - Injectable formatters for platform-agnostic formatting
41
+ * @returns Formatted market data for UI display
42
+ */
43
+ export declare function adaptMarketDataFromMYX(pool: MYXPoolSymbol, ticker: MYXTicker | undefined, formatters: MarketDataFormatters): PerpsMarketData;
44
+ /**
45
+ * Filter MYX markets to only include MYX-exclusive markets
46
+ * Removes markets that overlap with HyperLiquid
47
+ *
48
+ * @param pools - Array of MYX pool symbols
49
+ * @returns Filtered array with only MYX-exclusive markets
50
+ */
51
+ export declare function filterMYXExclusiveMarkets(pools: MYXPoolSymbol[]): MYXPoolSymbol[];
52
+ /**
53
+ * Check if a symbol overlaps with HyperLiquid markets
54
+ *
55
+ * @param symbol - Market symbol to check
56
+ * @returns true if the symbol is available on both MYX and HyperLiquid
57
+ */
58
+ export declare function isOverlappingMarket(symbol: string): boolean;
59
+ /**
60
+ * Build a map of poolId to symbol for quick lookup
61
+ *
62
+ * @param pools - Array of MYX pool symbols
63
+ * @returns Map of poolId to symbol
64
+ */
65
+ export declare function buildPoolSymbolMap(pools: MYXPoolSymbol[]): Map<string, string>;
66
+ /**
67
+ * Build a map of symbol to poolIds (for multi-pool support)
68
+ *
69
+ * @param pools - Array of MYX pool symbols
70
+ * @returns Map of symbol to array of poolIds
71
+ */
72
+ export declare function buildSymbolPoolsMap(pools: MYXPoolSymbol[]): Map<string, string[]>;
73
+ /**
74
+ * Extract symbol from pool ID
75
+ * Pool IDs typically contain the symbol as a suffix or can be parsed.
76
+ * When baseSymbol is unavailable, returns a truncated address for UI display.
77
+ *
78
+ * @param poolId - MYX pool ID string
79
+ * @returns Extracted symbol or truncated poolId as fallback
80
+ */
81
+ export declare function extractSymbolFromPoolId(poolId: string): string;
82
+ /**
83
+ * Adapt MYX SDK PositionType to MetaMask Position
84
+ *
85
+ * @param pos - MYX position from SDK
86
+ * @param poolSymbolMap - Map of poolId to symbol
87
+ * @returns MetaMask Position object
88
+ */
89
+ export declare function adaptPositionFromMYX(pos: MYXPositionType, poolSymbolMap: Map<string, string>): Position;
90
+ /**
91
+ * Adapt MYX SDK open order (PositionType-shaped from getOrders) to MetaMask Order.
92
+ * Note: getOrders returns PositionType[] per the SDK types.
93
+ * For richer order data, use getOrderHistory.
94
+ *
95
+ * @param historyOrder - MYX history order item
96
+ * @param poolSymbolMap - Map of poolId to symbol
97
+ * @returns MetaMask Order object
98
+ */
99
+ export declare function adaptOrderFromMYX(historyOrder: MYXHistoryOrderItem, poolSymbolMap: Map<string, string>): Order;
100
+ /**
101
+ * Adapt MYX account info response to MetaMask AccountState.
102
+ *
103
+ * @param accountInfo - Raw account info from MYX SDK
104
+ * @param walletBalance - Wallet USDT balance (from getWalletQuoteTokenBalance)
105
+ * @returns MetaMask AccountState
106
+ */
107
+ export declare function adaptAccountStateFromMYX(accountInfo: Record<string, unknown> | undefined, walletBalance?: string): AccountState;
108
+ /**
109
+ * Adapt MYX history order item (filled) to MetaMask OrderFill
110
+ *
111
+ * @param order - MYX history order item
112
+ * @param poolSymbolMap - Map of poolId to symbol
113
+ * @returns MetaMask OrderFill
114
+ */
115
+ export declare function adaptOrderFillFromMYX(order: MYXHistoryOrderItem, poolSymbolMap: Map<string, string>): OrderFill;
116
+ /**
117
+ * Adapt MYX trade flow items (funding type) to MetaMask Funding
118
+ *
119
+ * @param flows - MYX trade flow items filtered to funding type
120
+ * @param poolSymbolMap - Map of poolId to symbol
121
+ * @returns Array of MetaMask Funding objects
122
+ */
123
+ export declare function adaptFundingFromMYX(flows: MYXTradeFlowItem[], poolSymbolMap: Map<string, string>): Funding[];
124
+ /**
125
+ * Adapt MYX trade flow items to MetaMask UserHistoryItem
126
+ *
127
+ * @param flows - MYX trade flow items
128
+ * @returns Array of UserHistoryItem
129
+ */
130
+ export declare function adaptUserHistoryFromMYX(flows: MYXTradeFlowItem[]): UserHistoryItem[];
131
+ /**
132
+ * Adapt MYX KlineDataItemType to MetaMask CandleStick.
133
+ * KlineDataItemType fields (time, open, close, high, low) are already
134
+ * human-readable strings — no 30-decimal conversion needed.
135
+ *
136
+ * @param item - MYX kline data item from SDK
137
+ * @returns MetaMask CandleStick object
138
+ */
139
+ export declare function adaptCandleFromMYX(item: MYXKlineData): CandleStick;
140
+ /**
141
+ * Adapt MYX WebSocket KlineData to MetaMask CandleStick.
142
+ * WS KlineData uses single-letter fields: {t, o, h, l, c, v}.
143
+ *
144
+ * @param data - MYX WebSocket kline data
145
+ * @returns MetaMask CandleStick object
146
+ */
147
+ export declare function adaptCandleFromMYXWebSocket(data: MYXKlineWsData): CandleStick;
148
+ /**
149
+ * Convert a CandlePeriod string to MYX KlineResolution.
150
+ *
151
+ * @param period - CandlePeriod value (e.g., '1m', '3m', '1h')
152
+ * @returns MYX KlineResolution string
153
+ */
154
+ export declare function toMYXKlineResolution(period: string): string;
155
+ /**
156
+ * Assert MYX API response is successful.
157
+ * MYX uses code 9200 or 0 for success.
158
+ *
159
+ * @param response - MYX API response with code field
160
+ * @param response.code - Response code (9200 or 0 = success)
161
+ * @param response.message - Optional error message
162
+ * @param context - Context string for error messages
163
+ */
164
+ export declare function assertMYXSuccess(response: {
165
+ code: number;
166
+ message?: string | null;
167
+ }, context: string): void;
168
+ //# sourceMappingURL=myxAdapter.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"myxAdapter.d.mts","sourceRoot":"","sources":["../../src/utils/myxAdapter.ts"],"names":[],"mappings":"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"}