@metamask-previews/perps-controller 1.3.0-preview-3ce0062c4 → 1.3.0-preview-dbd93752f

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 (158) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/PerpsController-method-action-types.cjs +3 -0
  3. package/dist/PerpsController-method-action-types.cjs.map +1 -0
  4. package/dist/PerpsController-method-action-types.d.cts +147 -0
  5. package/dist/PerpsController-method-action-types.d.cts.map +1 -0
  6. package/dist/PerpsController-method-action-types.d.mts +147 -0
  7. package/dist/PerpsController-method-action-types.d.mts.map +1 -0
  8. package/dist/PerpsController-method-action-types.mjs +2 -0
  9. package/dist/PerpsController-method-action-types.mjs.map +1 -0
  10. package/dist/PerpsController.cjs +488 -183
  11. package/dist/PerpsController.cjs.map +1 -1
  12. package/dist/PerpsController.d.cts +91 -131
  13. package/dist/PerpsController.d.cts.map +1 -1
  14. package/dist/PerpsController.d.mts +91 -131
  15. package/dist/PerpsController.d.mts.map +1 -1
  16. package/dist/PerpsController.mjs +485 -182
  17. package/dist/PerpsController.mjs.map +1 -1
  18. package/dist/constants/eventNames.cjs +26 -0
  19. package/dist/constants/eventNames.cjs.map +1 -1
  20. package/dist/constants/eventNames.d.cts +19 -0
  21. package/dist/constants/eventNames.d.cts.map +1 -1
  22. package/dist/constants/eventNames.d.mts +19 -0
  23. package/dist/constants/eventNames.d.mts.map +1 -1
  24. package/dist/constants/eventNames.mjs +26 -0
  25. package/dist/constants/eventNames.mjs.map +1 -1
  26. package/dist/constants/hyperLiquidConfig.cjs +24 -4
  27. package/dist/constants/hyperLiquidConfig.cjs.map +1 -1
  28. package/dist/constants/hyperLiquidConfig.d.cts +8 -3
  29. package/dist/constants/hyperLiquidConfig.d.cts.map +1 -1
  30. package/dist/constants/hyperLiquidConfig.d.mts +8 -3
  31. package/dist/constants/hyperLiquidConfig.d.mts.map +1 -1
  32. package/dist/constants/hyperLiquidConfig.mjs +23 -3
  33. package/dist/constants/hyperLiquidConfig.mjs.map +1 -1
  34. package/dist/constants/myxConfig.cjs +75 -51
  35. package/dist/constants/myxConfig.cjs.map +1 -1
  36. package/dist/constants/myxConfig.d.cts +58 -19
  37. package/dist/constants/myxConfig.d.cts.map +1 -1
  38. package/dist/constants/myxConfig.d.mts +58 -19
  39. package/dist/constants/myxConfig.d.mts.map +1 -1
  40. package/dist/constants/myxConfig.mjs +74 -50
  41. package/dist/constants/myxConfig.mjs.map +1 -1
  42. package/dist/constants/perpsConfig.cjs +6 -2
  43. package/dist/constants/perpsConfig.cjs.map +1 -1
  44. package/dist/constants/perpsConfig.d.cts +5 -1
  45. package/dist/constants/perpsConfig.d.cts.map +1 -1
  46. package/dist/constants/perpsConfig.d.mts +5 -1
  47. package/dist/constants/perpsConfig.d.mts.map +1 -1
  48. package/dist/constants/perpsConfig.mjs +5 -1
  49. package/dist/constants/perpsConfig.mjs.map +1 -1
  50. package/dist/index.cjs +243 -25
  51. package/dist/index.cjs.map +1 -1
  52. package/dist/index.d.cts +48 -5
  53. package/dist/index.d.cts.map +1 -1
  54. package/dist/index.d.mts +48 -5
  55. package/dist/index.d.mts.map +1 -1
  56. package/dist/index.mjs +36 -10
  57. package/dist/index.mjs.map +1 -1
  58. package/dist/providers/AggregatedPerpsProvider.cjs +24 -0
  59. package/dist/providers/AggregatedPerpsProvider.cjs.map +1 -1
  60. package/dist/providers/AggregatedPerpsProvider.d.cts +4 -0
  61. package/dist/providers/AggregatedPerpsProvider.d.cts.map +1 -1
  62. package/dist/providers/AggregatedPerpsProvider.d.mts +4 -0
  63. package/dist/providers/AggregatedPerpsProvider.d.mts.map +1 -1
  64. package/dist/providers/AggregatedPerpsProvider.mjs +24 -0
  65. package/dist/providers/AggregatedPerpsProvider.mjs.map +1 -1
  66. package/dist/providers/HyperLiquidProvider.cjs +470 -154
  67. package/dist/providers/HyperLiquidProvider.cjs.map +1 -1
  68. package/dist/providers/HyperLiquidProvider.d.cts +11 -2
  69. package/dist/providers/HyperLiquidProvider.d.cts.map +1 -1
  70. package/dist/providers/HyperLiquidProvider.d.mts +11 -2
  71. package/dist/providers/HyperLiquidProvider.d.mts.map +1 -1
  72. package/dist/providers/HyperLiquidProvider.mjs +471 -155
  73. package/dist/providers/HyperLiquidProvider.mjs.map +1 -1
  74. package/dist/selectors.cjs +1 -1
  75. package/dist/selectors.cjs.map +1 -1
  76. package/dist/selectors.mjs +1 -1
  77. package/dist/selectors.mjs.map +1 -1
  78. package/dist/services/AccountService.cjs +1 -1
  79. package/dist/services/AccountService.cjs.map +1 -1
  80. package/dist/services/AccountService.d.cts.map +1 -1
  81. package/dist/services/AccountService.d.mts.map +1 -1
  82. package/dist/services/AccountService.mjs +2 -2
  83. package/dist/services/AccountService.mjs.map +1 -1
  84. package/dist/services/DepositService.cjs +2 -1
  85. package/dist/services/DepositService.cjs.map +1 -1
  86. package/dist/services/DepositService.d.cts.map +1 -1
  87. package/dist/services/DepositService.d.mts.map +1 -1
  88. package/dist/services/DepositService.mjs +2 -1
  89. package/dist/services/DepositService.mjs.map +1 -1
  90. package/dist/services/EligibilityService.cjs +8 -103
  91. package/dist/services/EligibilityService.cjs.map +1 -1
  92. package/dist/services/EligibilityService.d.cts +4 -15
  93. package/dist/services/EligibilityService.d.cts.map +1 -1
  94. package/dist/services/EligibilityService.d.mts +4 -15
  95. package/dist/services/EligibilityService.d.mts.map +1 -1
  96. package/dist/services/EligibilityService.mjs +8 -103
  97. package/dist/services/EligibilityService.mjs.map +1 -1
  98. package/dist/services/HyperLiquidSubscriptionService.cjs +252 -46
  99. package/dist/services/HyperLiquidSubscriptionService.cjs.map +1 -1
  100. package/dist/services/HyperLiquidSubscriptionService.d.cts +1 -0
  101. package/dist/services/HyperLiquidSubscriptionService.d.cts.map +1 -1
  102. package/dist/services/HyperLiquidSubscriptionService.d.mts +1 -0
  103. package/dist/services/HyperLiquidSubscriptionService.d.mts.map +1 -1
  104. package/dist/services/HyperLiquidSubscriptionService.mjs +252 -46
  105. package/dist/services/HyperLiquidSubscriptionService.mjs.map +1 -1
  106. package/dist/services/MarketDataService.cjs +2 -4
  107. package/dist/services/MarketDataService.cjs.map +1 -1
  108. package/dist/services/MarketDataService.d.cts.map +1 -1
  109. package/dist/services/MarketDataService.d.mts.map +1 -1
  110. package/dist/services/MarketDataService.mjs +2 -4
  111. package/dist/services/MarketDataService.mjs.map +1 -1
  112. package/dist/services/TradingService.cjs +72 -6
  113. package/dist/services/TradingService.cjs.map +1 -1
  114. package/dist/services/TradingService.d.cts.map +1 -1
  115. package/dist/services/TradingService.d.mts.map +1 -1
  116. package/dist/services/TradingService.mjs +72 -6
  117. package/dist/services/TradingService.mjs.map +1 -1
  118. package/dist/types/index.cjs.map +1 -1
  119. package/dist/types/index.d.cts +51 -3
  120. package/dist/types/index.d.cts.map +1 -1
  121. package/dist/types/index.d.mts +51 -3
  122. package/dist/types/index.d.mts.map +1 -1
  123. package/dist/types/index.mjs.map +1 -1
  124. package/dist/types/messenger.cjs.map +1 -1
  125. package/dist/types/messenger.d.cts +2 -1
  126. package/dist/types/messenger.d.cts.map +1 -1
  127. package/dist/types/messenger.d.mts +2 -1
  128. package/dist/types/messenger.d.mts.map +1 -1
  129. package/dist/types/messenger.mjs.map +1 -1
  130. package/dist/types/myx-types.cjs +19 -3
  131. package/dist/types/myx-types.cjs.map +1 -1
  132. package/dist/types/myx-types.d.cts +33 -2
  133. package/dist/types/myx-types.d.cts.map +1 -1
  134. package/dist/types/myx-types.d.mts +33 -2
  135. package/dist/types/myx-types.d.mts.map +1 -1
  136. package/dist/types/myx-types.mjs +6 -2
  137. package/dist/types/myx-types.mjs.map +1 -1
  138. package/dist/types/perps-types.cjs +3 -0
  139. package/dist/types/perps-types.cjs.map +1 -1
  140. package/dist/types/perps-types.d.cts +3 -3
  141. package/dist/types/perps-types.d.cts.map +1 -1
  142. package/dist/types/perps-types.d.mts +3 -3
  143. package/dist/types/perps-types.d.mts.map +1 -1
  144. package/dist/types/perps-types.mjs +3 -0
  145. package/dist/types/perps-types.mjs.map +1 -1
  146. package/dist/utils/accountUtils.cjs.map +1 -1
  147. package/dist/utils/accountUtils.d.cts.map +1 -1
  148. package/dist/utils/accountUtils.d.mts.map +1 -1
  149. package/dist/utils/accountUtils.mjs.map +1 -1
  150. package/dist/utils/myxAdapter.cjs +360 -15
  151. package/dist/utils/myxAdapter.cjs.map +1 -1
  152. package/dist/utils/myxAdapter.d.cts +94 -7
  153. package/dist/utils/myxAdapter.d.cts.map +1 -1
  154. package/dist/utils/myxAdapter.d.mts +94 -7
  155. package/dist/utils/myxAdapter.d.mts.map +1 -1
  156. package/dist/utils/myxAdapter.mjs +351 -16
  157. package/dist/utils/myxAdapter.mjs.map +1 -1
  158. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"file":"hyperLiquidConfig.mjs","sourceRoot":"","sources":["../../src/constants/hyperLiquidConfig.ts"],"names":[],"mappings":"AAaA,oBAAoB;AACpB,MAAM,CAAC,MAAM,6BAA6B,GAAG,QAAQ,CAAC;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AACjD,MAAM,CAAC,MAAM,yBAAyB,GAAG,QAAQ,CAAC;AAClD,MAAM,CAAC,MAAM,8BAA8B,GAAG,UAAU,yBAAyB,EAAE,CAAC;AACpF,MAAM,CAAC,MAAM,8BAA8B,GAAG,UAAU,yBAAyB,EAAE,CAAC;AAEpF,8BAA8B;AAC9B,MAAM,CAAC,MAAM,4BAA4B,GAAG,OAAO,CAAC,CAAC,iBAAiB;AACtE,MAAM,CAAC,MAAM,4BAA4B,GAAG,OAAO,CAAC,CAAC,2BAA2B;AAChF,MAAM,CAAC,MAAM,iCAAiC,GAAG,YAA2B,CAAC;AAC7E,MAAM,CAAC,MAAM,iCAAiC,GAAG,YAA2B,CAAC;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,aAAa,CAAC;AAEtD,kBAAkB;AAClB,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC;AAClC,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,4CAA4C,CAAC;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAElC,oBAAoB;AACpB,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC,CAAC,oBAAoB;AAExE,uBAAuB;AACvB,MAAM,CAAC,MAAM,6BAA6B,GACxC,4CAA4C,CAAC;AAC/C,MAAM,CAAC,MAAM,6BAA6B,GACxC,4CAA4C,CAAC;AAC/C,MAAM,CAAC,MAAM,6BAA6B,GACxC,4CAA4C,CAAC;AAE/C,gEAAgE;AAChE,0FAA0F;AAC1F,oFAAoF;AACpF,MAAM,CAAC,MAAM,mBAAmB,GAAG,qDAAqD,6BAA6B,MAAM,CAAC;AAE5H,sBAAsB;AACtB,MAAM,CAAC,MAAM,qBAAqB,GAAyB;IACzD,OAAO,EAAE,8BAA8B;IACvC,OAAO,EAAE,sCAAsC;CAChD,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,gCAAgC,GAC3C,oCAAoC,CAAC;AAEvC,qDAAqD;AACrD,iGAAiG;AACjG,yEAAyE;AACzE,wDAAwD;AACxD,MAAM,CAAC,MAAM,6BAA6B,GACxC,uFAAuF,CAAC;AAE1F,kDAAkD;AAClD,MAAM,CAAC,MAAM,yBAAyB,GAA4B;IAChE,IAAI,EAAE;QACJ,OAAO,EAAE,GAAG,8BAA8B,2DAA2D;QACrG,OAAO,EAAE,GAAG,8BAA8B,2DAA2D;KACtG;CACF,CAAC;AAEF,iEAAiE;AACjE,uGAAuG;AACvG,MAAM,CAAC,MAAM,4BAA4B,GAA+B;IACtE,OAAO,EAAE;QACP,OAAO,EAAE,8BAA8B;QACvC,eAAe,EAAE,4CAA4C;KAC9D;IACD,OAAO,EAAE;QACP,OAAO,EAAE,8BAA8B;QACvC,eAAe,EAAE,4CAA4C;KAC9D;CACF,CAAC;AAEF,8BAA8B;AAC9B,MAAM,CAAC,MAAM,4BAA4B,GAA+B;IACtE,OAAO,EAAE,KAAM;IACf,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAM,EAAE;IAC/B,SAAS,EAAE;QACT,UAAU,EAAE,CAAC;QACb,iBAAiB,EAAE,KAAM;KAC1B;CACF,CAAC;AAEF,kCAAkC;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAA0B;IACrD,QAAQ,EAAE,CAAC,EAAE,sBAAsB;IACnC,aAAa,EAAE,EAAE,EAAE,2BAA2B;IAC9C,iBAAiB,EAAE,GAAG,EAAE,kBAAkB;IAC1C,eAAe,EAAE,GAAG,EAAE,gBAAgB;IACtC,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,EAAE,yBAAyB;QACtC,OAAO,EAAE,EAAE,EAAE,yBAAyB;KACvC;CACF,CAAC;AAEF,oBAAoB;AACpB,oDAAoD;AACpD,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAmB;IACvC,KAAK,EAAE,OAAO,EAAE,qDAAqD;IACrE,KAAK,EAAE,OAAO,EAAE,2CAA2C;CAC5D,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;;;OAGG;IACH,eAAe,EAAE,GAAG;IAEpB;;;OAGG;IACH,uBAAuB,EAAE,GAAG;IAE5B;;;OAGG;IACH,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAEjC;;;OAGG;IACH,aAAa,EAAE,CAAC;CACR,CAAC;AAEX,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,4BAA4B;AAC5B,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,sBAAsB;IACtB,cAAc,EAAE,4CAAmD;IACnE,4BAA4B;IAC5B,cAAc,EAAE,4CAAmD;IACnE,gCAAgC;IAChC,aAAa,EAAE,2BAA2B;IAC1C,eAAe,EAAE,2BAA2B,GAAG,MAAM;IACrD,UAAU,EAAE,GAAG,CAAC,2BAA2B,GAAG,GAAG,CAAC;SAC/C,OAAO,CAAC,CAAC,CAAC;SACV,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG;CAC7B,CAAC;AAEF,8BAA8B;AAC9B,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,2BAA2B;IAC3B,WAAW,EAAE,OAAO;IACpB,oCAAoC;IACpC,WAAW,EAAE,WAAW;CACzB,CAAC;AAEF,oBAAoB;AACpB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,iBAAiB,EAAE,MAAM,EAAE,yCAAyC;IACpE,eAAe,EAAE,CAAC,EAAE,wCAAwC;IAC5D,kBAAkB,EAAE,IAAI,EAAE,qCAAqC;IAC/D,WAAW,EAAE,KAAK,EAAE,gCAAgC;IACpD,aAAa,EAAE;QACb,aAAa,EAAE,aAAa,EAAE,kCAAkC;QAChE,aAAa,EAAE,eAAe,EAAE,oCAAoC;KACrE;CACF,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,CAAC,oDAAoD;AAKrG,wBAAwB;AACxB,MAAM,UAAU,oBAAoB,CAAC,SAAkB;IACrD,OAAO,SAAS;QACd,CAAC,CAAC,qBAAqB,CAAC,OAAO;QAC/B,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAkB;IAC3C,OAAO,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,yBAAyB,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAkB;IAC/C,MAAM,OAAO,GAAuB,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,OAAO,4BAA4B,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAkB;IAC9C,MAAM,OAAO,GAAuB,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,OAAO,4BAA4B,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAmB;IACpD,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,OAAO,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CACjD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,iCAAiC;AACjC,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,KAAK,EAAE,OAAO;CACN,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,+CAA+C;IAC/C,+DAA+D;IAC/D,YAAY,EAAE,QAAQ;CACd,CAAC;AAEX;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,2CAA2C;IAC3C,+DAA+D;IAC/D,WAAW,EAAE,MAAM;IAEnB,2DAA2D;IAC3D,kDAAkD;IAClD,aAAa,EAAE,KAAK;CACZ,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAE1C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAGhC;IACF,qBAAqB;IACrB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,YAAY,EAAE,QAAQ;IACtB,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IAEpB,wBAAwB;IACxB,UAAU,EAAE,WAAW;IACvB,YAAY,EAAE,WAAW;IACzB,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,WAAW;IACzB,eAAe,EAAE,WAAW;IAC5B,aAAa,EAAE,WAAW;IAC1B,UAAU,EAAE,WAAW;IACvB,YAAY,EAAE,WAAW;IACzB,cAAc,EAAE,WAAW;IAE3B,kBAAkB;IAClB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;CACV,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC;;;;OAIG;IACH,WAAW,EAAE,CAAC,KAAK,CAAa;IAEhC;;;OAGG;IACH,eAAe,EAAE,KAAK;CACd,CAAC;AAEX;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC;;;;OAIG;IACH,eAAe,EAAE,KAAK;CACd,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC;;;OAGG;IACH,gBAAgB,EAAE,KAAK;IAEvB;;;OAGG;IACH,sBAAsB,EAAE,GAAG;IAE3B;;;OAGG;IACH,qBAAqB,EAAE,GAAG;CAClB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,qCAAqC;IACrC,SAAS,EAAE,MAAM;IAEjB;;;;OAIG;IACH,eAAe,EAAE,EAAE;CACX,CAAC;AAEX,yBAAyB;AACzB,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CACvC,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAC","sourcesContent":["import type { CaipAssetId, CaipChainId, Hex } from '@metamask/utils';\n\nimport type {\n HyperLiquidNetwork,\n HyperLiquidEndpoints,\n HyperLiquidAssetConfigs,\n BridgeContractConfig,\n HyperLiquidBridgeContracts,\n HyperLiquidTransportConfig,\n TradingDefaultsConfig,\n FeeRatesConfig,\n} from '../types/perps-types';\n\n// Network constants\nexport const ARBITRUM_MAINNET_CHAIN_ID_HEX = '0xa4b1';\nexport const ARBITRUM_MAINNET_CHAIN_ID = '42161';\nexport const ARBITRUM_TESTNET_CHAIN_ID = '421614';\nexport const ARBITRUM_MAINNET_CAIP_CHAIN_ID = `eip155:${ARBITRUM_MAINNET_CHAIN_ID}`;\nexport const ARBITRUM_TESTNET_CAIP_CHAIN_ID = `eip155:${ARBITRUM_TESTNET_CHAIN_ID}`;\n\n// Hyperliquid chain constants\nexport const HYPERLIQUID_MAINNET_CHAIN_ID = '0x3e7'; // 999 in decimal\nexport const HYPERLIQUID_TESTNET_CHAIN_ID = '0x3e6'; // 998 in decimal (assumed)\nexport const HYPERLIQUID_MAINNET_CAIP_CHAIN_ID = 'eip155:999' as CaipChainId;\nexport const HYPERLIQUID_TESTNET_CAIP_CHAIN_ID = 'eip155:998' as CaipChainId;\nexport const HYPERLIQUID_NETWORK_NAME = 'Hyperliquid';\n\n// Token constants\nexport const USDC_SYMBOL = 'USDC';\nexport const USDC_NAME = 'USD Coin';\nexport const USDC_DECIMALS = 6;\nexport const TOKEN_DECIMALS = 18;\nexport const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';\nexport const ZERO_BALANCE = '0x0';\n\n// Network constants\nexport const ARBITRUM_SEPOLIA_CHAIN_ID = '0x66eee'; // 421614 in decimal\n\n// USDC token addresses\nexport const USDC_ETHEREUM_MAINNET_ADDRESS =\n '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';\nexport const USDC_ARBITRUM_MAINNET_ADDRESS =\n '0xaf88d065e77c8cC2239327C5EDb3A432268e5831';\nexport const USDC_ARBITRUM_TESTNET_ADDRESS =\n '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d';\n\n// USDC token icon URL using MetaMask's official Token Icons API\n// Format: https://static.cx.metamask.io/api/v1/tokenIcons/{chainId}/{contractAddress}.png\n// This URL follows the same pattern used throughout MetaMask (bridges, swaps, etc.)\nexport const USDC_TOKEN_ICON_URL = `https://static.cx.metamask.io/api/v1/tokenIcons/1/${USDC_ETHEREUM_MAINNET_ADDRESS}.png`;\n\n// WebSocket endpoints\nexport const HYPERLIQUID_ENDPOINTS: HyperLiquidEndpoints = {\n mainnet: 'wss://api.hyperliquid.xyz/ws',\n testnet: 'wss://api.hyperliquid-testnet.xyz/ws',\n};\n\n// Asset icons base URL (HyperLiquid CDN - fallback source)\nexport const HYPERLIQUID_ASSET_ICONS_BASE_URL =\n 'https://app.hyperliquid.xyz/coins/';\n\n// MetaMask-hosted Perps asset icons (primary source)\n// Assets uploaded to: https://github.com/MetaMask/contract-metadata/tree/master/icons/eip155:999\n// HIP-3 assets use format: hip3:dex_SYMBOL.svg (e.g., hip3:xyz_AAPL.svg)\n// Regular assets use format: SYMBOL.svg (e.g., BTC.svg)\nexport const METAMASK_PERPS_ICONS_BASE_URL =\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/icons/eip155:999/';\n\n// Asset configurations for multichain abstraction\nexport const HYPERLIQUID_ASSET_CONFIGS: HyperLiquidAssetConfigs = {\n usdc: {\n mainnet: `${ARBITRUM_MAINNET_CAIP_CHAIN_ID}/erc20:0xaf88d065e77c8cC2239327C5EDb3A432268e5831/default`,\n testnet: `${ARBITRUM_TESTNET_CAIP_CHAIN_ID}/erc20:0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d/default`,\n },\n};\n\n// HyperLiquid bridge contract addresses for direct USDC deposits\n// These are the official bridge contracts where USDC must be sent to credit user's HyperLiquid account\nexport const HYPERLIQUID_BRIDGE_CONTRACTS: HyperLiquidBridgeContracts = {\n mainnet: {\n chainId: ARBITRUM_MAINNET_CAIP_CHAIN_ID,\n contractAddress: '0x2df1c51e09aecf9cacb7bc98cb1742757f163df7',\n },\n testnet: {\n chainId: ARBITRUM_TESTNET_CAIP_CHAIN_ID,\n contractAddress: '0x08cfc1B6b2dCF36A1480b99353A354AA8AC56f89',\n },\n};\n\n// SDK transport configuration\nexport const HYPERLIQUID_TRANSPORT_CONFIG: HyperLiquidTransportConfig = {\n timeout: 10_000,\n keepAlive: { interval: 30_000 },\n reconnect: {\n maxRetries: 5,\n connectionTimeout: 10_000,\n },\n};\n\n// Trading configuration constants\nexport const TRADING_DEFAULTS: TradingDefaultsConfig = {\n leverage: 3, // 3x default leverage\n marginPercent: 10, // 10% fixed margin default\n takeProfitPercent: 0.3, // 30% take profit\n stopLossPercent: 0.1, // 10% stop loss\n amount: {\n mainnet: 10, // $10 minimum order size\n testnet: 10, // $10 minimum order size\n },\n};\n\n// Fee configuration\n// Note: These are base rates (Tier 0, no discounts)\n// Actual fees will be calculated based on user's volume tier and staking\nexport const FEE_RATES: FeeRatesConfig = {\n taker: 0.00045, // 0.045% - Market orders and aggressive limit orders\n maker: 0.00015, // 0.015% - Limit orders that add liquidity\n};\n\n/**\n * HIP-3 dynamic fee calculation configuration\n *\n * HIP-3 (builder-deployed) perpetual markets have variable fees based on:\n * 1. deployerFeeScale - Per-DEX fee multiplier (fetched from perpDexs API)\n * 2. growthMode - Per-asset 90% fee reduction (fetched from meta API)\n *\n * Fee Formula (from HyperLiquid docs):\n * - scaleIfHip3 = deployerFeeScale < 1 ? deployerFeeScale + 1 : deployerFeeScale * 2\n * - growthModeScale = growthMode ? 0.1 : 1\n * - finalRate = baseRate * scaleIfHip3 * growthModeScale\n *\n * Example: For xyz:TSLA with deployerFeeScale=1.0 and growthMode=\"enabled\":\n * - scaleIfHip3 = 1.0 * 2 = 2.0\n * - growthModeScale = 0.1 (90% reduction)\n * - Final multiplier = 2.0 * 0.1 = 0.2 (effectively 80% off standard 2x HIP-3 fees)\n *\n * @see https://hyperliquid.gitbook.io/hyperliquid-docs/trading/fees#fee-formula-for-developers\n * @see parseAssetName() in HyperLiquidProvider for HIP-3 asset detection\n */\nexport const HIP3_FEE_CONFIG = {\n /**\n * Growth Mode multiplier - 90% fee reduction for assets in growth phase\n * This is a protocol constant from HyperLiquid's fee formula\n */\n GrowthModeScale: 0.1,\n\n /**\n * Default deployerFeeScale when API is unavailable\n * Most HIP-3 DEXs use 1.0, which results in 2x base fees\n */\n DefaultDeployerFeeScale: 1.0,\n\n /**\n * Cache TTL for perpDexs data (5 minutes)\n * Fee scales rarely change, so longer cache is acceptable\n */\n PerpDexsCacheTtlMs: 5 * 60 * 1000,\n\n /**\n * @deprecated Use dynamic calculation via calculateHip3FeeMultiplier()\n * Kept for backwards compatibility during migration\n */\n FeeMultiplier: 2,\n} as const;\n\nconst BUILDER_FEE_MAX_FEE_DECIMAL = 0.001;\n\n// Builder fee configuration\nexport const BUILDER_FEE_CONFIG = {\n // Test builder wallet\n TestnetBuilder: '0x724e57771ba749650875bd8adb2e29a85d0cacfa' as Hex,\n // Production builder wallet\n MainnetBuilder: '0xe95a5e31904e005066614247d309e00d8ad753aa' as Hex,\n // Fee in decimal (10 bp = 0.1%)\n MaxFeeDecimal: BUILDER_FEE_MAX_FEE_DECIMAL,\n MaxFeeTenthsBps: BUILDER_FEE_MAX_FEE_DECIMAL * 100000,\n MaxFeeRate: `${(BUILDER_FEE_MAX_FEE_DECIMAL * 100)\n .toFixed(4)\n .replace(/\\.?0+$/u, '')}%`,\n};\n\n// Referral code configuration\nexport const REFERRAL_CONFIG = {\n // Production referral code\n MainnetCode: 'MMCSI',\n // Development/testnet referral code\n TestnetCode: 'MMCSITEST',\n};\n\n// Deposit constants\nexport const DEPOSIT_CONFIG = {\n EstimatedGasLimit: 150000, // Estimated gas limit for bridge deposit\n DefaultSlippage: 1, // 1% default slippage for bridge quotes\n BridgeQuoteTimeout: 1000, // 1 second timeout for bridge quotes\n RefreshRate: 30000, // 30 seconds quote refresh rate\n EstimatedTime: {\n DirectDeposit: '3-5 seconds', // Direct USDC deposit on Arbitrum\n SameChainSwap: '30-60 seconds', // Swap on same chain before deposit\n },\n};\n\n// Withdrawal constants (HyperLiquid-specific)\nexport const HYPERLIQUID_WITHDRAWAL_MINUTES = 5; // HyperLiquid withdrawal processing time in minutes\n\n// Type helpers\nexport type SupportedAsset = keyof typeof HYPERLIQUID_ASSET_CONFIGS;\n\n// Configuration helpers\nexport function getWebSocketEndpoint(isTestnet: boolean): string {\n return isTestnet\n ? HYPERLIQUID_ENDPOINTS.testnet\n : HYPERLIQUID_ENDPOINTS.mainnet;\n}\n\nexport function getChainId(isTestnet: boolean): string {\n return isTestnet ? ARBITRUM_TESTNET_CHAIN_ID : ARBITRUM_MAINNET_CHAIN_ID;\n}\n\nexport function getCaipChainId(isTestnet: boolean): CaipChainId {\n const network: HyperLiquidNetwork = isTestnet ? 'testnet' : 'mainnet';\n return HYPERLIQUID_BRIDGE_CONTRACTS[network].chainId;\n}\n\nexport function getBridgeInfo(isTestnet: boolean): BridgeContractConfig {\n const network: HyperLiquidNetwork = isTestnet ? 'testnet' : 'mainnet';\n return HYPERLIQUID_BRIDGE_CONTRACTS[network];\n}\n\nexport function getSupportedAssets(isTestnet?: boolean): CaipAssetId[] {\n const network = isTestnet ? 'testnet' : 'mainnet';\n return Object.values(HYPERLIQUID_ASSET_CONFIGS).map(\n (config) => config[network],\n );\n}\n\n// CAIP asset namespace constants\nexport const CAIP_ASSET_NAMESPACES = {\n Erc20: 'erc20',\n} as const;\n\n/**\n * HyperLiquid protocol-specific configuration\n * Contains constants specific to HyperLiquid's perps exchange\n */\nexport const HYPERLIQUID_CONFIG = {\n // Exchange name used in predicted funding data\n // HyperLiquid uses 'HlPerp' as their perps exchange identifier\n ExchangeName: 'HlPerp',\n} as const;\n\n/**\n * HIP-3 multi-DEX asset ID calculation constants\n * Per HIP-3-IMPLEMENTATION.md:\n * - Main DEX: assetId = index (0, 1, 2, ...)\n * - HIP-3 DEX: assetId = BASE_ASSET_ID + (perpDexIndex × DEX_MULTIPLIER) + index\n *\n * This formula enables proper order routing across multiple DEXs:\n * - Main DEX (perpDexIndex=0): Uses index directly (BTC=0, ETH=1, SOL=2, etc.)\n * - xyz DEX (perpDexIndex=1): 100000 + (1 × 10000) + index = 110000-110999\n * - abc DEX (perpDexIndex=2): 100000 + (2 × 10000) + index = 120000-120999\n *\n * Supports up to 10 HIP-3 DEXs with 10000 assets each.\n */\nexport const HIP3_ASSET_ID_CONFIG = {\n // Base offset for HIP-3 asset IDs (100000)\n // Ensures HIP-3 asset IDs don't conflict with main DEX indices\n BaseAssetId: 100000,\n\n // Multiplier for DEX index in asset ID calculation (10000)\n // Allocates 10000 asset ID slots per DEX (0-9999)\n DexMultiplier: 10000,\n} as const;\n\n/**\n * Basis points conversion constant\n * 1 basis point (bp) = 0.01% = 0.0001 as decimal\n * Used for fee discount calculations (e.g., 6500 bps = 65%)\n */\nexport const BASIS_POINTS_DIVISOR = 10000;\n\n/**\n * HIP-3 asset market type classifications (PRODUCTION DEFAULT)\n *\n * This is the production default configuration, can be overridden via feature flag\n * (remoteFeatureFlags.perpsAssetMarketTypes) for dynamic control.\n *\n * Maps asset symbols (e.g., \"xyz:TSLA\") to their market type for badge display.\n *\n * Market type determines the badge shown in the UI:\n * - 'equity': STOCK badge (stocks like TSLA, NVDA)\n * - 'commodity': COMMODITY badge (commodities like GOLD)\n * - 'forex': FOREX badge (forex pairs)\n * - undefined: No badge for crypto or unmapped assets\n *\n * Format: 'dex:SYMBOL' → MarketType\n * This allows flexible per-asset classification.\n * Assets not listed here will have no market type (undefined).\n */\nexport const HIP3_ASSET_MARKET_TYPES: Record<\n string,\n 'equity' | 'commodity' | 'forex' | 'crypto'\n> = {\n // xyz DEX - Equities\n 'xyz:TSLA': 'equity',\n 'xyz:NVDA': 'equity',\n 'xyz:XYZ100': 'equity',\n 'xyz:INTC': 'equity',\n 'xyz:MU': 'equity',\n 'xyz:CRCL': 'equity',\n 'xyz:HOOD': 'equity',\n 'xyz:SNDK': 'equity',\n 'xyz:GOOGL': 'equity',\n 'xyz:COIN': 'equity',\n 'xyz:ORCL': 'equity',\n 'xyz:AMZN': 'equity',\n 'xyz:PLTR': 'equity',\n 'xyz:AAPL': 'equity',\n 'xyz:META': 'equity',\n 'xyz:AMD': 'equity',\n 'xyz:MSFT': 'equity',\n 'xyz:BABA': 'equity',\n 'xyz:RIVN': 'equity',\n 'xyz:NFLX': 'equity',\n 'xyz:COST': 'equity',\n 'xyz:LLY': 'equity',\n 'xyz:TSM': 'equity',\n 'xyz:SKHX': 'equity',\n 'xyz:MSTR': 'equity',\n 'xyz:CRWV': 'equity',\n 'xyz:SMSN': 'equity',\n\n // xyz DEX - Commodities\n 'xyz:GOLD': 'commodity',\n 'xyz:SILVER': 'commodity',\n 'xyz:CL': 'commodity',\n 'xyz:COPPER': 'commodity',\n 'xyz:ALUMINIUM': 'commodity',\n 'xyz:URANIUM': 'commodity',\n 'xyz:USAR': 'commodity',\n 'xyz:NATGAS': 'commodity',\n 'xyz:PLATINUM': 'commodity',\n\n // xyz DEX - Forex\n 'xyz:EUR': 'forex',\n 'xyz:JPY': 'forex',\n} as const;\n\n/**\n * Testnet-specific HIP-3 DEX configuration\n *\n * On testnet, there are many HIP-3 DEXs (test deployments from various builders).\n * Subscribing to all of them causes connection/subscription overload and instability.\n * This configuration limits which DEXs are discovered and subscribed to on testnet.\n */\nexport const TESTNET_HIP3_CONFIG = {\n /**\n * Allowed DEX names for testnet\n * Empty array = main DEX only (no HIP-3 DEXs)\n * Add specific DEX names to test with particular HIP-3 DEXs: ['testdex1', 'testdex2']\n */\n EnabledDexs: ['xyz'] as string[],\n\n /**\n * Set to true to enable full HIP-3 discovery on testnet (not recommended)\n * When false, only DEXs in ENABLED_DEXS are used\n */\n AutoDiscoverAll: false,\n} as const;\n\n/**\n * Mainnet-specific HIP-3 DEX configuration\n *\n * On mainnet, DEX filtering is dynamically determined from the allowlist markets\n * feature flag. This avoids hardcoding DEX names and ensures consistency with\n * the market filtering logic.\n *\n * When AutoDiscoverAll is false and no allowlist is provided, only the main DEX is used.\n * When an allowlist is provided, DEXs are extracted from the allowlist patterns.\n */\nexport const MAINNET_HIP3_CONFIG = {\n /**\n * Set to true to enable full HIP-3 discovery on mainnet\n * When false, DEXs are filtered based on the allowlist markets feature flag\n * (recommended for production to reduce subscription overhead)\n */\n AutoDiscoverAll: false,\n} as const;\n\n/**\n * HIP-3 margin management configuration\n * Controls margin buffers and auto-rebalance behavior for HIP-3 DEXes with isolated margin\n *\n * Background: HyperLiquid validates availableBalance >= totalRequiredMargin BEFORE reallocating\n * existing locked margin. This requires temporary over-funding when increasing positions,\n * followed by automatic cleanup to minimize locked capital.\n */\nexport const HIP3_MARGIN_CONFIG = {\n /**\n * Margin buffer multiplier for fees and slippage (0.3% = multiply by 1.003)\n * Covers HyperLiquid's max taker fee (0.035%) with comfortable margin\n */\n BufferMultiplier: 1.003,\n\n /**\n * Desired buffer to keep on HIP-3 DEX after auto-rebalance (USDC amount)\n * Small buffer allows quick follow-up orders without transfers\n */\n RebalanceDesiredBuffer: 0.1,\n\n /**\n * Minimum excess threshold to trigger auto-rebalance (USDC amount)\n * Prevents unnecessary transfers for tiny amounts\n */\n RebalanceMinThreshold: 0.1,\n} as const;\n\n/**\n * Configuration for USDH collateral handling on HIP-3 DEXs\n * Per HyperLiquid docs: USDH DEXs pull collateral from spot balance automatically\n *\n * USDH is HyperLiquid's native stablecoin pegged 1:1 to USDC\n */\nexport const USDH_CONFIG = {\n /** Token name for USDH collateral */\n TokenName: 'USDH',\n\n /**\n * Maximum slippage for USDC→USDH spot swap in basis points\n * USDH is pegged 1:1 to USDC so slippage should be minimal\n * 10 bps (0.1%) provides small buffer for spread\n */\n SwapSlippageBps: 10,\n} as const;\n\n// Progress bar constants\nexport const INITIAL_AMOUNT_UI_PROGRESS = 10;\nexport const WITHDRAWAL_PROGRESS_STAGES = [\n 25, 35, 45, 55, 65, 75, 85, 90, 95, 98,\n];\nexport const PROGRESS_BAR_COMPLETION_DELAY_MS = 500;\n"]}
1
+ {"version":3,"file":"hyperLiquidConfig.mjs","sourceRoot":"","sources":["../../src/constants/hyperLiquidConfig.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CaipAssetId, CaipChainId, Hex } from '@metamask/utils';\n\nimport type {\n HyperLiquidNetwork,\n HyperLiquidEndpoints,\n HyperLiquidAssetConfigs,\n BridgeContractConfig,\n HyperLiquidBridgeContracts,\n HyperLiquidTransportConfig,\n TradingDefaultsConfig,\n FeeRatesConfig,\n} from '../types/perps-types';\n\n// Network constants\nexport const ARBITRUM_MAINNET_CHAIN_ID_HEX = '0xa4b1' as const;\nexport const ARBITRUM_MAINNET_CHAIN_ID = '42161';\nexport const ARBITRUM_TESTNET_CHAIN_ID = '421614';\nexport const ARBITRUM_MAINNET_CAIP_CHAIN_ID = `eip155:${ARBITRUM_MAINNET_CHAIN_ID}`;\nexport const ARBITRUM_TESTNET_CAIP_CHAIN_ID = `eip155:${ARBITRUM_TESTNET_CHAIN_ID}`;\n\n// Hyperliquid chain constants\nexport const HYPERLIQUID_MAINNET_CHAIN_ID = '0x3e7'; // 999 in decimal\nexport const HYPERLIQUID_TESTNET_CHAIN_ID = '0x3e6'; // 998 in decimal (assumed)\nexport const HYPERLIQUID_MAINNET_CAIP_CHAIN_ID = 'eip155:999' as CaipChainId;\nexport const HYPERLIQUID_TESTNET_CAIP_CHAIN_ID = 'eip155:998' as CaipChainId;\nexport const HYPERLIQUID_NETWORK_NAME = 'Hyperliquid';\n\n// Token constants\nexport const USDC_SYMBOL = 'USDC';\nexport const USDC_NAME = 'USD Coin';\nexport const USDC_DECIMALS = 6;\nexport const TOKEN_DECIMALS = 18;\n\n// Network constants\nexport const ARBITRUM_SEPOLIA_CHAIN_ID = '0x66eee'; // 421614 in decimal\n\n// USDC token addresses\nexport const USDC_ETHEREUM_MAINNET_ADDRESS =\n '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';\nexport const USDC_ARBITRUM_MAINNET_ADDRESS =\n '0xaf88d065e77c8cC2239327C5EDb3A432268e5831';\nexport const USDC_ARBITRUM_TESTNET_ADDRESS =\n '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d';\n\n// USDC token icon URL using MetaMask's official Token Icons API\n// Format: https://static.cx.metamask.io/api/v1/tokenIcons/{chainId}/{contractAddress}.png\n// This URL follows the same pattern used throughout MetaMask (bridges, swaps, etc.)\nexport const USDC_TOKEN_ICON_URL = `https://static.cx.metamask.io/api/v1/tokenIcons/1/${USDC_ETHEREUM_MAINNET_ADDRESS}.png`;\n\n// WebSocket endpoints\nexport const HYPERLIQUID_ENDPOINTS: HyperLiquidEndpoints = {\n mainnet: 'wss://api.hyperliquid.xyz/ws',\n testnet: 'wss://api.hyperliquid-testnet.xyz/ws',\n};\n\n// Asset icons base URL (HyperLiquid CDN - fallback source)\nexport const HYPERLIQUID_ASSET_ICONS_BASE_URL =\n 'https://app.hyperliquid.xyz/coins/';\n\n// MetaMask-hosted Perps asset icons (primary source)\n// Assets uploaded to: https://github.com/MetaMask/contract-metadata/tree/master/icons/eip155:999\n// HIP-3 assets use format: hip3:dex_SYMBOL.svg (e.g., hip3:xyz_AAPL.svg)\n// Regular assets use format: SYMBOL.svg (e.g., BTC.svg)\nexport const METAMASK_PERPS_ICONS_BASE_URL =\n 'https://raw.githubusercontent.com/MetaMask/contract-metadata/master/icons/eip155:999/';\n\n// Asset configurations for multichain abstraction\nexport const HYPERLIQUID_ASSET_CONFIGS: HyperLiquidAssetConfigs = {\n usdc: {\n mainnet: `${ARBITRUM_MAINNET_CAIP_CHAIN_ID}/erc20:0xaf88d065e77c8cC2239327C5EDb3A432268e5831/default`,\n testnet: `${ARBITRUM_TESTNET_CAIP_CHAIN_ID}/erc20:0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d/default`,\n },\n};\n\n// HyperLiquid bridge contract addresses for direct USDC deposits\n// These are the official bridge contracts where USDC must be sent to credit user's HyperLiquid account\nexport const HYPERLIQUID_BRIDGE_CONTRACTS: HyperLiquidBridgeContracts = {\n mainnet: {\n chainId: ARBITRUM_MAINNET_CAIP_CHAIN_ID,\n contractAddress: '0x2df1c51e09aecf9cacb7bc98cb1742757f163df7',\n },\n testnet: {\n chainId: ARBITRUM_TESTNET_CAIP_CHAIN_ID,\n contractAddress: '0x08cfc1B6b2dCF36A1480b99353A354AA8AC56f89',\n },\n};\n\n// SDK transport configuration\nexport const HYPERLIQUID_TRANSPORT_CONFIG: HyperLiquidTransportConfig = {\n timeout: 10_000,\n keepAlive: { interval: 30_000 },\n reconnect: {\n maxRetries: 5,\n connectionTimeout: 10_000,\n },\n};\n\n// Trading configuration constants\nexport const TRADING_DEFAULTS: TradingDefaultsConfig = {\n leverage: 3, // 3x default leverage\n marginPercent: 10, // 10% fixed margin default\n takeProfitPercent: 0.3, // 30% take profit\n stopLossPercent: 0.1, // 10% stop loss\n amount: {\n mainnet: 10, // $10 minimum order size\n testnet: 10, // $10 minimum order size\n },\n};\n\n// Fee configuration\n// Note: These are base rates (Tier 0, no discounts)\n// Actual fees will be calculated based on user's volume tier and staking\nexport const FEE_RATES: FeeRatesConfig = {\n taker: 0.00045, // 0.045% - Market orders and aggressive limit orders\n maker: 0.00015, // 0.015% - Limit orders that add liquidity\n};\n\n/**\n * HIP-3 dynamic fee calculation configuration\n *\n * HIP-3 (builder-deployed) perpetual markets have variable fees based on:\n * 1. deployerFeeScale - Per-DEX fee multiplier (fetched from perpDexs API)\n * 2. growthMode - Per-asset 90% fee reduction (fetched from meta API)\n *\n * Fee Formula (from HyperLiquid docs):\n * - scaleIfHip3 = deployerFeeScale < 1 ? deployerFeeScale + 1 : deployerFeeScale * 2\n * - growthModeScale = growthMode ? 0.1 : 1\n * - finalRate = baseRate * scaleIfHip3 * growthModeScale\n *\n * Example: For xyz:TSLA with deployerFeeScale=1.0 and growthMode=\"enabled\":\n * - scaleIfHip3 = 1.0 * 2 = 2.0\n * - growthModeScale = 0.1 (90% reduction)\n * - Final multiplier = 2.0 * 0.1 = 0.2 (effectively 80% off standard 2x HIP-3 fees)\n *\n * @see https://hyperliquid.gitbook.io/hyperliquid-docs/trading/fees#fee-formula-for-developers\n * @see parseAssetName() in HyperLiquidProvider for HIP-3 asset detection\n */\nexport const HIP3_FEE_CONFIG = {\n /**\n * Growth Mode multiplier - 90% fee reduction for assets in growth phase\n * This is a protocol constant from HyperLiquid's fee formula\n */\n GrowthModeScale: 0.1,\n\n /**\n * Default deployerFeeScale when API is unavailable\n * Most HIP-3 DEXs use 1.0, which results in 2x base fees\n */\n DefaultDeployerFeeScale: 1.0,\n\n /**\n * Cache TTL for perpDexs data (5 minutes)\n * Fee scales rarely change, so longer cache is acceptable\n */\n PerpDexsCacheTtlMs: 5 * 60 * 1000,\n\n /**\n * @deprecated Use dynamic calculation via calculateHip3FeeMultiplier()\n * Kept for backwards compatibility during migration\n */\n FeeMultiplier: 2,\n} as const;\n\nconst BUILDER_FEE_MAX_FEE_DECIMAL = 0.001;\n\n// Builder fee configuration\nexport const BUILDER_FEE_CONFIG = {\n // Test builder wallet\n TestnetBuilder: '0x724e57771ba749650875bd8adb2e29a85d0cacfa' as Hex,\n // Production builder wallet\n MainnetBuilder: '0xe95a5e31904e005066614247d309e00d8ad753aa' as Hex,\n // Fee in decimal (10 bp = 0.1%)\n MaxFeeDecimal: BUILDER_FEE_MAX_FEE_DECIMAL,\n MaxFeeTenthsBps: BUILDER_FEE_MAX_FEE_DECIMAL * 100000,\n MaxFeeRate: `${(BUILDER_FEE_MAX_FEE_DECIMAL * 100)\n .toFixed(4)\n .replace(/\\.?0+$/u, '')}%`,\n};\n\n// Referral code configuration\nexport const REFERRAL_CONFIG = {\n // Production referral code\n MainnetCode: 'MMCSI',\n // Development/testnet referral code\n TestnetCode: 'MMCSITEST',\n};\n\n// Deposit constants\nexport const DEPOSIT_CONFIG = {\n EstimatedGasLimit: 100000, // Estimated gas limit for bridge deposit\n DefaultSlippage: 1, // 1% default slippage for bridge quotes\n BridgeQuoteTimeout: 1000, // 1 second timeout for bridge quotes\n RefreshRate: 30000, // 30 seconds quote refresh rate\n EstimatedTime: {\n DirectDeposit: '3-5 seconds', // Direct USDC deposit on Arbitrum\n SameChainSwap: '30-60 seconds', // Swap on same chain before deposit\n },\n};\n\n// Withdrawal constants (HyperLiquid-specific)\nexport const HYPERLIQUID_WITHDRAWAL_MINUTES = 5; // HyperLiquid withdrawal processing time in minutes\nexport const ESTIMATED_FEE_RATE = 0.0009; // 0.09% taker fee estimate for flip operations (close + open)\n\n// Type helpers\nexport type SupportedAsset = keyof typeof HYPERLIQUID_ASSET_CONFIGS;\n\n// Configuration helpers\nexport function getWebSocketEndpoint(isTestnet: boolean): string {\n return isTestnet\n ? HYPERLIQUID_ENDPOINTS.testnet\n : HYPERLIQUID_ENDPOINTS.mainnet;\n}\n\nexport function getChainId(isTestnet: boolean): string {\n return isTestnet ? ARBITRUM_TESTNET_CHAIN_ID : ARBITRUM_MAINNET_CHAIN_ID;\n}\n\nexport function getCaipChainId(isTestnet: boolean): CaipChainId {\n const network: HyperLiquidNetwork = isTestnet ? 'testnet' : 'mainnet';\n return HYPERLIQUID_BRIDGE_CONTRACTS[network].chainId;\n}\n\nexport function getBridgeInfo(isTestnet: boolean): BridgeContractConfig {\n const network: HyperLiquidNetwork = isTestnet ? 'testnet' : 'mainnet';\n return HYPERLIQUID_BRIDGE_CONTRACTS[network];\n}\n\nexport function getSupportedAssets(isTestnet?: boolean): CaipAssetId[] {\n const network = isTestnet ? 'testnet' : 'mainnet';\n return Object.values(HYPERLIQUID_ASSET_CONFIGS).map(\n (config) => config[network],\n );\n}\n\n// CAIP asset namespace constants\nexport const CAIP_ASSET_NAMESPACES = {\n Erc20: 'erc20',\n} as const;\n\n/**\n * HyperLiquid protocol-specific configuration\n * Contains constants specific to HyperLiquid's perps exchange\n */\nexport const HYPERLIQUID_CONFIG = {\n // Exchange name used in predicted funding data\n // HyperLiquid uses 'HlPerp' as their perps exchange identifier\n ExchangeName: 'HlPerp',\n} as const;\n\n/**\n * HIP-3 multi-DEX asset ID calculation constants\n * Per HIP-3-IMPLEMENTATION.md:\n * - Main DEX: assetId = index (0, 1, 2, ...)\n * - HIP-3 DEX: assetId = BASE_ASSET_ID + (perpDexIndex × DEX_MULTIPLIER) + index\n *\n * This formula enables proper order routing across multiple DEXs:\n * - Main DEX (perpDexIndex=0): Uses index directly (BTC=0, ETH=1, SOL=2, etc.)\n * - xyz DEX (perpDexIndex=1): 100000 + (1 × 10000) + index = 110000-110999\n * - abc DEX (perpDexIndex=2): 100000 + (2 × 10000) + index = 120000-120999\n *\n * Supports up to 10 HIP-3 DEXs with 10000 assets each.\n */\nexport const HIP3_ASSET_ID_CONFIG = {\n // Base offset for HIP-3 asset IDs (100000)\n // Ensures HIP-3 asset IDs don't conflict with main DEX indices\n BaseAssetId: 100000,\n\n // Multiplier for DEX index in asset ID calculation (10000)\n // Allocates 10000 asset ID slots per DEX (0-9999)\n DexMultiplier: 10000,\n} as const;\n\n/**\n * Basis points conversion constant\n * 1 basis point (bp) = 0.01% = 0.0001 as decimal\n * Used for fee discount calculations (e.g., 6500 bps = 65%)\n */\nexport const BASIS_POINTS_DIVISOR = 10000;\n\n/**\n * Offset added to spot market pair index to derive the spot asset ID\n * used in HyperLiquid order routing.\n * Per HyperLiquid protocol: spotAssetId = SPOT_ASSET_ID_OFFSET + pairIndex\n */\nexport const SPOT_ASSET_ID_OFFSET = 10000;\n\n/**\n * HIP-3 asset market type classifications (PRODUCTION DEFAULT)\n *\n * This is the production default configuration, can be overridden via feature flag\n * (remoteFeatureFlags.perpsAssetMarketTypes) for dynamic control.\n *\n * Maps asset symbols (e.g., \"xyz:TSLA\") to their market type for badge display.\n *\n * Market type determines the badge shown in the UI:\n * - 'equity': STOCK badge (stocks like TSLA, NVDA)\n * - 'commodity': COMMODITY badge (commodities like GOLD)\n * - 'forex': FOREX badge (forex pairs)\n * - undefined: No badge for crypto or unmapped assets\n *\n * Format: 'dex:SYMBOL' → MarketType\n * This allows flexible per-asset classification.\n * Assets not listed here will have no market type (undefined).\n */\nexport const HIP3_ASSET_MARKET_TYPES: Record<\n string,\n 'equity' | 'commodity' | 'forex' | 'crypto'\n> = {\n // xyz DEX - Equities\n 'xyz:TSLA': 'equity',\n 'xyz:NVDA': 'equity',\n 'xyz:XYZ100': 'equity',\n 'xyz:INTC': 'equity',\n 'xyz:MU': 'equity',\n 'xyz:CRCL': 'equity',\n 'xyz:HOOD': 'equity',\n 'xyz:SNDK': 'equity',\n 'xyz:GOOGL': 'equity',\n 'xyz:COIN': 'equity',\n 'xyz:ORCL': 'equity',\n 'xyz:AMZN': 'equity',\n 'xyz:PLTR': 'equity',\n 'xyz:AAPL': 'equity',\n 'xyz:META': 'equity',\n 'xyz:AMD': 'equity',\n 'xyz:MSFT': 'equity',\n 'xyz:BABA': 'equity',\n 'xyz:RIVN': 'equity',\n 'xyz:NFLX': 'equity',\n 'xyz:COST': 'equity',\n 'xyz:LLY': 'equity',\n 'xyz:TSM': 'equity',\n 'xyz:SKHX': 'equity',\n 'xyz:MSTR': 'equity',\n 'xyz:CRWV': 'equity',\n 'xyz:SMSN': 'equity',\n\n 'xyz:GME': 'equity',\n 'xyz:SOFTBANK': 'equity',\n 'xyz:HYUNDAI': 'equity',\n 'xyz:KIOXIA': 'equity',\n 'xyz:HIMS': 'equity',\n 'xyz:URNM': 'equity',\n 'xyz:EWY': 'equity',\n 'xyz:EWJ': 'equity',\n 'xyz:SP500': 'equity',\n 'xyz:JP225': 'equity',\n 'xyz:KR200': 'equity',\n 'xyz:VIX': 'equity',\n\n // xyz DEX - Commodities\n 'xyz:GOLD': 'commodity',\n 'xyz:SILVER': 'commodity',\n 'xyz:CL': 'commodity',\n 'xyz:COPPER': 'commodity',\n 'xyz:ALUMINIUM': 'commodity',\n 'xyz:URANIUM': 'commodity',\n 'xyz:USAR': 'commodity',\n 'xyz:NATGAS': 'commodity',\n 'xyz:PLATINUM': 'commodity',\n 'xyz:PALLADIUM': 'commodity',\n 'xyz:BRENTOIL': 'commodity',\n\n // xyz DEX - Forex\n 'xyz:EUR': 'forex',\n 'xyz:JPY': 'forex',\n 'xyz:DXY': 'forex',\n} as const;\n\n/**\n * Testnet-specific HIP-3 DEX configuration\n *\n * On testnet, there are many HIP-3 DEXs (test deployments from various builders).\n * Subscribing to all of them causes connection/subscription overload and instability.\n * This configuration limits which DEXs are discovered and subscribed to on testnet.\n */\nexport const TESTNET_HIP3_CONFIG = {\n /**\n * Allowed DEX names for testnet\n * Empty array = main DEX only (no HIP-3 DEXs)\n * Add specific DEX names to test with particular HIP-3 DEXs: ['testdex1', 'testdex2']\n */\n EnabledDexs: ['xyz'] as string[],\n\n /**\n * Set to true to enable full HIP-3 discovery on testnet (not recommended)\n * When false, only DEXs in ENABLED_DEXS are used\n */\n AutoDiscoverAll: false,\n} as const;\n\n/**\n * Mainnet-specific HIP-3 DEX configuration\n *\n * On mainnet, DEX filtering is dynamically determined from the allowlist markets\n * feature flag. This avoids hardcoding DEX names and ensures consistency with\n * the market filtering logic.\n *\n * When AutoDiscoverAll is false and no allowlist is provided, only the main DEX is used.\n * When an allowlist is provided, DEXs are extracted from the allowlist patterns.\n */\nexport const MAINNET_HIP3_CONFIG = {\n /**\n * Set to true to enable full HIP-3 discovery on mainnet\n * When false, DEXs are filtered based on the allowlist markets feature flag\n * (recommended for production to reduce subscription overhead)\n */\n AutoDiscoverAll: false,\n} as const;\n\n/**\n * HIP-3 margin management configuration\n * Controls margin buffers and auto-rebalance behavior for HIP-3 DEXes with isolated margin\n *\n * Background: HyperLiquid validates availableBalance >= totalRequiredMargin BEFORE reallocating\n * existing locked margin. This requires temporary over-funding when increasing positions,\n * followed by automatic cleanup to minimize locked capital.\n */\nexport const HIP3_MARGIN_CONFIG = {\n /**\n * Margin buffer multiplier for fees and slippage (0.3% = multiply by 1.003)\n * Covers HyperLiquid's max taker fee (0.035%) with comfortable margin\n */\n BufferMultiplier: 1.003,\n\n /**\n * Desired buffer to keep on HIP-3 DEX after auto-rebalance (USDC amount)\n * Small buffer allows quick follow-up orders without transfers\n */\n RebalanceDesiredBuffer: 0.1,\n\n /**\n * Minimum excess threshold to trigger auto-rebalance (USDC amount)\n * Prevents unnecessary transfers for tiny amounts\n */\n RebalanceMinThreshold: 0.1,\n} as const;\n\n/**\n * Configuration for USDH collateral handling on HIP-3 DEXs\n * Per HyperLiquid docs: USDH DEXs pull collateral from spot balance automatically\n *\n * USDH is HyperLiquid's native stablecoin pegged 1:1 to USDC\n */\nexport const USDH_CONFIG = {\n /** Token name for USDH collateral */\n TokenName: 'USDH',\n\n /**\n * Maximum slippage for USDC→USDH spot swap in basis points\n * USDH is pegged 1:1 to USDC so slippage should be minimal\n * 10 bps (0.1%) provides small buffer for spread\n */\n SwapSlippageBps: 10,\n} as const;\n\n// Progress bar constants\nexport const INITIAL_AMOUNT_UI_PROGRESS = 10;\nexport const WITHDRAWAL_PROGRESS_STAGES = [\n 25, 35, 45, 55, 65, 75, 85, 90, 95, 98,\n];\nexport const PROGRESS_BAR_COMPLETION_DELAY_MS = 500;\n"]}
@@ -2,22 +2,26 @@
2
2
  /**
3
3
  * MYX Protocol Configuration Constants
4
4
  *
5
- * Stage 1 configuration for market display and price fetching.
6
- * Based on MYX SDK patterns but simplified for read-only operations.
5
+ * Configuration for market display, price fetching, and trading.
6
+ * Based on MYX SDK patterns.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.MYX_MAX_RETRIES = exports.MYX_HTTP_TIMEOUT_MS = exports.MYX_PRICE_POLLING_INTERVAL_MS = exports.fromMYXCollateral = exports.toMYXSize = exports.fromMYXSize = exports.toMYXPrice = exports.fromMYXPrice = exports.MYX_ASSET_CONFIGS = exports.USDT_BNB_MAINNET = exports.USDT_BNB_TESTNET = exports.MYX_COLLATERAL_DECIMALS = exports.MYX_SIZE_DECIMALS = exports.MYX_PRICE_DECIMALS = exports.getMYXHttpEndpoint = exports.MYX_ENDPOINTS = exports.getMYXChainId = exports.BNB_TESTNET_CAIP_CHAIN_ID = exports.BNB_MAINNET_CAIP_CHAIN_ID = exports.BNB_TESTNET_CHAIN_ID = exports.BNB_MAINNET_CHAIN_ID = void 0;
9
+ exports.MYX_EXECUTION_FEE_TOKEN = exports.MYX_PROTOCOL_FEE_RATE = exports.MYX_FEE_RATE = exports.MYX_MINIMUM_ORDER_SIZE_USD = exports.MYX_MAX_LEVERAGE = exports.MYX_DEFAULT_SLIPPAGE_BPS = exports.MYX_MAX_RETRIES = exports.MYX_HTTP_TIMEOUT_MS = exports.MYX_PRICE_POLLING_INTERVAL_MS = exports.fromMYXCollateral = exports.toMYXSize = exports.fromMYXSize = exports.toMYXPrice = exports.fromMYXPrice = exports.MYX_ASSET_CONFIGS = exports.USDT_BNB_MAINNET = exports.USDT_BNB_TESTNET = exports.MYX_COLLATERAL_TOKEN_MAINNET = exports.MYX_COLLATERAL_TOKEN_TESTNET = exports.MYX_COLLATERAL_DECIMALS = exports.MYX_SIZE_DECIMALS = exports.MYX_PRICE_DECIMALS = exports.getMYXHttpEndpoint = exports.MYX_ENDPOINTS = exports.getMYXChainId = exports.MYX_TESTNET_CAIP_CHAIN_ID = exports.MYX_MAINNET_CAIP_CHAIN_ID = exports.MYX_TESTNET_CHAIN_ID = exports.MYX_MAINNET_CHAIN_ID = void 0;
10
10
  const bignumber_js_1 = require("bignumber.js");
11
11
  // ============================================================================
12
12
  // Network Constants
13
13
  // ============================================================================
14
14
  /**
15
- * BNB Chain IDs - MYX's primary network
15
+ * MYX Chain IDs
16
+ * Mainnet: BNB Chain (56)
17
+ * Testnet: Linea Sepolia (59141) — primary testnet chain with most active pools.
18
+ * The testnet API also has one pool on Arbitrum Sepolia (421614) but it has no
19
+ * ticker data, so Linea Sepolia is the effective testnet chain.
16
20
  */
17
- exports.BNB_MAINNET_CHAIN_ID = '56';
18
- exports.BNB_TESTNET_CHAIN_ID = '97';
19
- exports.BNB_MAINNET_CAIP_CHAIN_ID = `eip155:${exports.BNB_MAINNET_CHAIN_ID}`;
20
- exports.BNB_TESTNET_CAIP_CHAIN_ID = `eip155:${exports.BNB_TESTNET_CHAIN_ID}`;
21
+ exports.MYX_MAINNET_CHAIN_ID = '56';
22
+ exports.MYX_TESTNET_CHAIN_ID = '59141';
23
+ exports.MYX_MAINNET_CAIP_CHAIN_ID = `eip155:${exports.MYX_MAINNET_CHAIN_ID}`;
24
+ exports.MYX_TESTNET_CAIP_CHAIN_ID = `eip155:${exports.MYX_TESTNET_CHAIN_ID}`;
21
25
  /**
22
26
  * Get numeric chain ID for MYX network
23
27
  *
@@ -26,8 +30,8 @@ exports.BNB_TESTNET_CAIP_CHAIN_ID = `eip155:${exports.BNB_TESTNET_CHAIN_ID}`;
26
30
  */
27
31
  function getMYXChainId(network) {
28
32
  return network === 'testnet'
29
- ? parseInt(exports.BNB_TESTNET_CHAIN_ID, 10)
30
- : parseInt(exports.BNB_MAINNET_CHAIN_ID, 10);
33
+ ? parseInt(exports.MYX_TESTNET_CHAIN_ID, 10)
34
+ : parseInt(exports.MYX_MAINNET_CHAIN_ID, 10);
31
35
  }
32
36
  exports.getMYXChainId = getMYXChainId;
33
37
  // ============================================================================
@@ -39,11 +43,11 @@ exports.getMYXChainId = getMYXChainId;
39
43
  exports.MYX_ENDPOINTS = {
40
44
  mainnet: {
41
45
  http: 'https://api.myx.finance',
42
- ws: 'wss://ws.myx.finance',
46
+ ws: 'wss://oapi.myx.finance/ws',
43
47
  },
44
48
  testnet: {
45
- http: 'https://api-beta.myx.finance',
46
- ws: 'wss://ws-beta.myx.finance',
49
+ http: 'https://api-test.myx.cash',
50
+ ws: 'wss://oapi-test.myx.cash/ws',
47
51
  },
48
52
  };
49
53
  /**
@@ -60,10 +64,13 @@ exports.getMYXHttpEndpoint = getMYXHttpEndpoint;
60
64
  // Decimal Constants
61
65
  // ============================================================================
62
66
  /**
63
- * MYX uses 30 decimals for price representation
64
- * This is consistent with the SDK's internal format
67
+ * MYX API returns prices as normal floating-point strings (e.g. "64854.76").
68
+ * No decimal scaling is needed for prices from the REST/WS API.
69
+ *
70
+ * Note: The SDK's internal contract layer uses 30 decimals, but the API
71
+ * endpoints (tickers, candles, order history) return human-readable values.
65
72
  */
66
- exports.MYX_PRICE_DECIMALS = 30;
73
+ exports.MYX_PRICE_DECIMALS = 0;
67
74
  /**
68
75
  * MYX uses 18 decimals for position sizes
69
76
  */
@@ -76,25 +83,31 @@ exports.MYX_COLLATERAL_DECIMALS = 18;
76
83
  // Token Addresses
77
84
  // ============================================================================
78
85
  /**
79
- * USDT token address on BNB testnet
86
+ * Collateral token address — testnet (USDC on Linea Sepolia)
87
+ * From SDK: LINEA_SEPOLIA.USDC
80
88
  */
81
- exports.USDT_BNB_TESTNET = '0x337610d27c682e347c9cd60bd4b3b107c9d34ddd';
89
+ exports.MYX_COLLATERAL_TOKEN_TESTNET = '0xD984fd34f91F92DA0586e1bE82E262fF27DC431b';
82
90
  /**
83
- * USDT token address on BNB mainnet
91
+ * Collateral token address — mainnet (BUSD on BNB, per pool quoteToken)
92
+ * Note: individual pools may use different quote tokens
84
93
  */
85
- exports.USDT_BNB_MAINNET = '0x55d398326f99059ff775485246999027b3197955';
94
+ exports.MYX_COLLATERAL_TOKEN_MAINNET = '0x8bfc51e1928e91e47c6734983ac018b2fc0adf4e';
95
+ /** @deprecated Use MYX_COLLATERAL_TOKEN_TESTNET */
96
+ exports.USDT_BNB_TESTNET = exports.MYX_COLLATERAL_TOKEN_TESTNET;
97
+ /** @deprecated Use MYX_COLLATERAL_TOKEN_MAINNET */
98
+ exports.USDT_BNB_MAINNET = exports.MYX_COLLATERAL_TOKEN_MAINNET;
86
99
  /**
87
- * USDT configuration by network
100
+ * Collateral token configuration by network
88
101
  */
89
102
  exports.MYX_ASSET_CONFIGS = {
90
103
  USDT: {
91
104
  mainnet: {
92
- chainId: exports.BNB_MAINNET_CAIP_CHAIN_ID,
93
- tokenAddress: exports.USDT_BNB_MAINNET,
105
+ chainId: exports.MYX_MAINNET_CAIP_CHAIN_ID,
106
+ tokenAddress: exports.MYX_COLLATERAL_TOKEN_MAINNET,
94
107
  },
95
108
  testnet: {
96
- chainId: exports.BNB_TESTNET_CAIP_CHAIN_ID,
97
- tokenAddress: exports.USDT_BNB_TESTNET,
109
+ chainId: exports.MYX_TESTNET_CAIP_CHAIN_ID,
110
+ tokenAddress: exports.MYX_COLLATERAL_TOKEN_TESTNET,
98
111
  },
99
112
  },
100
113
  };
@@ -102,46 +115,33 @@ exports.MYX_ASSET_CONFIGS = {
102
115
  // Decimal Conversion Helpers
103
116
  // ============================================================================
104
117
  /**
105
- * Convert MYX SDK price (30 decimals) to standard number
118
+ * Convert MYX API price string to standard number.
119
+ *
120
+ * MYX API returns normal floating-point price strings (e.g. "64854.76"),
121
+ * NOT 30-decimal scaled integers. This is a simple parseFloat.
106
122
  *
107
- * @param myxPrice - Price string in 30-decimal format from SDK
123
+ * @param myxPrice - Price string from MYX API (e.g. "64854.760266796727")
108
124
  * @returns Standard decimal number
109
125
  */
110
126
  function fromMYXPrice(myxPrice) {
111
127
  if (!myxPrice || myxPrice === '0') {
112
128
  return 0;
113
129
  }
114
- try {
115
- const bn = new bignumber_js_1.BigNumber(myxPrice);
116
- if (bn.isNaN()) {
117
- return 0;
118
- }
119
- const divisor = new bignumber_js_1.BigNumber(10).pow(exports.MYX_PRICE_DECIMALS);
120
- return bn.dividedBy(divisor).toNumber();
121
- }
122
- catch {
123
- return 0;
124
- }
130
+ const parsed = parseFloat(myxPrice);
131
+ return isNaN(parsed) ? 0 : parsed;
125
132
  }
126
133
  exports.fromMYXPrice = fromMYXPrice;
127
134
  /**
128
- * Convert standard number to MYX SDK price format (30 decimals)
135
+ * Convert standard number to MYX API price string.
136
+ *
137
+ * MYX API uses normal floating-point strings, so this is a simple toString.
129
138
  *
130
139
  * @param price - Standard decimal number
131
- * @returns Price string in 30-decimal format for SDK
140
+ * @returns Price string for MYX API
132
141
  */
133
142
  function toMYXPrice(price) {
134
- try {
135
- const bn = new bignumber_js_1.BigNumber(price);
136
- if (bn.isNaN()) {
137
- return '0';
138
- }
139
- const multiplier = new bignumber_js_1.BigNumber(10).pow(exports.MYX_PRICE_DECIMALS);
140
- return bn.multipliedBy(multiplier).toFixed(0);
141
- }
142
- catch {
143
- return '0';
144
- }
143
+ const parsed = typeof price === 'string' ? parseFloat(price) : price;
144
+ return isNaN(parsed) ? '0' : parsed.toString();
145
145
  }
146
146
  exports.toMYXPrice = toMYXPrice;
147
147
  /**
@@ -226,4 +226,28 @@ exports.MYX_HTTP_TIMEOUT_MS = 10000;
226
226
  * Maximum retries for failed API requests
227
227
  */
228
228
  exports.MYX_MAX_RETRIES = 3;
229
+ /**
230
+ * Default slippage in basis points for MYX orders (1% — matches SDK default)
231
+ */
232
+ exports.MYX_DEFAULT_SLIPPAGE_BPS = 100;
233
+ /**
234
+ * Maximum leverage supported by MYX (most markets)
235
+ */
236
+ exports.MYX_MAX_LEVERAGE = 100;
237
+ /**
238
+ * Minimum order size in USD
239
+ */
240
+ exports.MYX_MINIMUM_ORDER_SIZE_USD = 10;
241
+ /**
242
+ * MYX fee rates (placeholder — will be replaced with per-market rates)
243
+ */
244
+ exports.MYX_FEE_RATE = 0.0005; // 0.05% total fee rate
245
+ exports.MYX_PROTOCOL_FEE_RATE = 0.0005; // Protocol taker fee
246
+ /**
247
+ * USDT execution fee token address per network (used for order execution fees)
248
+ */
249
+ exports.MYX_EXECUTION_FEE_TOKEN = {
250
+ testnet: exports.MYX_COLLATERAL_TOKEN_TESTNET,
251
+ mainnet: exports.MYX_COLLATERAL_TOKEN_MAINNET,
252
+ };
229
253
  //# sourceMappingURL=myxConfig.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"myxConfig.cjs","sourceRoot":"","sources":["../../src/constants/myxConfig.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,+CAAyC;AAQzC,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACU,QAAA,oBAAoB,GAAG,IAAa,CAAC;AACrC,QAAA,oBAAoB,GAAG,IAAa,CAAC;AACrC,QAAA,yBAAyB,GACpC,UAAU,4BAAoB,EAAiB,CAAC;AACrC,QAAA,yBAAyB,GACpC,UAAU,4BAAoB,EAAiB,CAAC;AAElD;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,OAAmB;IAC/C,OAAO,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,QAAQ,CAAC,4BAAoB,EAAE,EAAE,CAAC;QACpC,CAAC,CAAC,QAAQ,CAAC,4BAAoB,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAJD,sCAIC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;GAEG;AACU,QAAA,aAAa,GAAiB;IACzC,OAAO,EAAE;QACP,IAAI,EAAE,yBAAyB;QAC/B,EAAE,EAAE,sBAAsB;KAC3B;IACD,OAAO,EAAE;QACP,IAAI,EAAE,8BAA8B;QACpC,EAAE,EAAE,2BAA2B;KAChC;CACF,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,OAAmB;IACpD,OAAO,qBAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAFD,gDAEC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;GAGG;AACU,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAErC;;GAEG;AACU,QAAA,iBAAiB,GAAG,EAAE,CAAC;AAEpC;;GAEG;AACU,QAAA,uBAAuB,GAAG,EAAE,CAAC;AAE1C,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;GAEG;AACU,QAAA,gBAAgB,GAC3B,4CAAqD,CAAC;AAExD;;GAEG;AACU,QAAA,gBAAgB,GAC3B,4CAAqD,CAAC;AAExD;;GAEG;AACU,QAAA,iBAAiB,GAAoB;IAChD,IAAI,EAAE;QACJ,OAAO,EAAE;YACP,OAAO,EAAE,iCAAyB;YAClC,YAAY,EAAE,wBAAgB;SAC/B;QACD,OAAO,EAAE;YACP,OAAO,EAAE,iCAAyB;YAClC,YAAY,EAAE,wBAAgB;SAC/B;KACF;CACF,CAAC;AAEF,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,QAAgB;IAC3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,wBAAS,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,wBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,0BAAkB,CAAC,CAAC;QAC1D,OAAO,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAfD,oCAeC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,KAAsB;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,wBAAS,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YACf,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,wBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,0BAAkB,CAAC,CAAC;QAC7D,OAAO,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAXD,gCAWC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,OAAe;IACzC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,wBAAS,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,wBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,yBAAiB,CAAC,CAAC;QACzD,OAAO,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAfD,kCAeC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,IAAqB;IAC7C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,wBAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YACf,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,wBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,yBAAiB,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAXD,8BAWC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,aAAqB;IACrD,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,GAAG,EAAE,CAAC;QAC5C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,wBAAS,CAAC,aAAa,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,wBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,+BAAuB,CAAC,CAAC;QAC/D,OAAO,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAfD,8CAeC;AAED,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;GAGG;AACU,QAAA,6BAA6B,GAAG,IAAI,CAAC;AAElD;;GAEG;AACU,QAAA,mBAAmB,GAAG,KAAK,CAAC;AAEzC;;GAEG;AACU,QAAA,eAAe,GAAG,CAAC,CAAC","sourcesContent":["/**\n * MYX Protocol Configuration Constants\n *\n * Stage 1 configuration for market display and price fetching.\n * Based on MYX SDK patterns but simplified for read-only operations.\n */\n\nimport type { CaipChainId } from '@metamask/utils';\nimport { BigNumber } from 'bignumber.js';\n\nimport type {\n MYXNetwork,\n MYXEndpoints,\n MYXAssetConfigs,\n} from '../types/myx-types';\n\n// ============================================================================\n// Network Constants\n// ============================================================================\n\n/**\n * BNB Chain IDs - MYX's primary network\n */\nexport const BNB_MAINNET_CHAIN_ID = '56' as const;\nexport const BNB_TESTNET_CHAIN_ID = '97' as const;\nexport const BNB_MAINNET_CAIP_CHAIN_ID =\n `eip155:${BNB_MAINNET_CHAIN_ID}` as CaipChainId;\nexport const BNB_TESTNET_CAIP_CHAIN_ID =\n `eip155:${BNB_TESTNET_CHAIN_ID}` as CaipChainId;\n\n/**\n * Get numeric chain ID for MYX network\n *\n * @param network - The MYX network environment (mainnet or testnet).\n * @returns The numeric chain ID for the specified network.\n */\nexport function getMYXChainId(network: MYXNetwork): number {\n return network === 'testnet'\n ? parseInt(BNB_TESTNET_CHAIN_ID, 10)\n : parseInt(BNB_MAINNET_CHAIN_ID, 10);\n}\n\n// ============================================================================\n// API Endpoints\n// ============================================================================\n\n/**\n * MYX REST and WebSocket endpoints\n */\nexport const MYX_ENDPOINTS: MYXEndpoints = {\n mainnet: {\n http: 'https://api.myx.finance',\n ws: 'wss://ws.myx.finance',\n },\n testnet: {\n http: 'https://api-beta.myx.finance',\n ws: 'wss://ws-beta.myx.finance',\n },\n};\n\n/**\n * Get HTTP endpoint for network\n *\n * @param network - The MYX network environment (mainnet or testnet).\n * @returns The HTTP API endpoint URL for the specified network.\n */\nexport function getMYXHttpEndpoint(network: MYXNetwork): string {\n return MYX_ENDPOINTS[network].http;\n}\n\n// ============================================================================\n// Decimal Constants\n// ============================================================================\n\n/**\n * MYX uses 30 decimals for price representation\n * This is consistent with the SDK's internal format\n */\nexport const MYX_PRICE_DECIMALS = 30;\n\n/**\n * MYX uses 18 decimals for position sizes\n */\nexport const MYX_SIZE_DECIMALS = 18;\n\n/**\n * MYX uses 18 decimals for collateral amounts (USDT on BNB)\n */\nexport const MYX_COLLATERAL_DECIMALS = 18;\n\n// ============================================================================\n// Token Addresses\n// ============================================================================\n\n/**\n * USDT token address on BNB testnet\n */\nexport const USDT_BNB_TESTNET =\n '0x337610d27c682e347c9cd60bd4b3b107c9d34ddd' as const;\n\n/**\n * USDT token address on BNB mainnet\n */\nexport const USDT_BNB_MAINNET =\n '0x55d398326f99059ff775485246999027b3197955' as const;\n\n/**\n * USDT configuration by network\n */\nexport const MYX_ASSET_CONFIGS: MYXAssetConfigs = {\n USDT: {\n mainnet: {\n chainId: BNB_MAINNET_CAIP_CHAIN_ID,\n tokenAddress: USDT_BNB_MAINNET,\n },\n testnet: {\n chainId: BNB_TESTNET_CAIP_CHAIN_ID,\n tokenAddress: USDT_BNB_TESTNET,\n },\n },\n};\n\n// ============================================================================\n// Decimal Conversion Helpers\n// ============================================================================\n\n/**\n * Convert MYX SDK price (30 decimals) to standard number\n *\n * @param myxPrice - Price string in 30-decimal format from SDK\n * @returns Standard decimal number\n */\nexport function fromMYXPrice(myxPrice: string): number {\n if (!myxPrice || myxPrice === '0') {\n return 0;\n }\n\n try {\n const bn = new BigNumber(myxPrice);\n if (bn.isNaN()) {\n return 0;\n }\n const divisor = new BigNumber(10).pow(MYX_PRICE_DECIMALS);\n return bn.dividedBy(divisor).toNumber();\n } catch {\n return 0;\n }\n}\n\n/**\n * Convert standard number to MYX SDK price format (30 decimals)\n *\n * @param price - Standard decimal number\n * @returns Price string in 30-decimal format for SDK\n */\nexport function toMYXPrice(price: number | string): string {\n try {\n const bn = new BigNumber(price);\n if (bn.isNaN()) {\n return '0';\n }\n const multiplier = new BigNumber(10).pow(MYX_PRICE_DECIMALS);\n return bn.multipliedBy(multiplier).toFixed(0);\n } catch {\n return '0';\n }\n}\n\n/**\n * Convert MYX SDK size (18 decimals) to standard number\n *\n * @param myxSize - Size string in 18-decimal format from SDK\n * @returns Standard decimal number\n */\nexport function fromMYXSize(myxSize: string): number {\n if (!myxSize || myxSize === '0') {\n return 0;\n }\n\n try {\n const bn = new BigNumber(myxSize);\n if (bn.isNaN()) {\n return 0;\n }\n const divisor = new BigNumber(10).pow(MYX_SIZE_DECIMALS);\n return bn.dividedBy(divisor).toNumber();\n } catch {\n return 0;\n }\n}\n\n/**\n * Convert standard number to MYX SDK size format (18 decimals)\n *\n * @param size - Standard decimal number\n * @returns Size string in 18-decimal format for SDK\n */\nexport function toMYXSize(size: number | string): string {\n try {\n const bn = new BigNumber(size);\n if (bn.isNaN()) {\n return '0';\n }\n const multiplier = new BigNumber(10).pow(MYX_SIZE_DECIMALS);\n return bn.multipliedBy(multiplier).toFixed(0);\n } catch {\n return '0';\n }\n}\n\n/**\n * Convert MYX SDK collateral (18 decimals) to standard number\n *\n * @param myxCollateral - Collateral string in 18-decimal format from SDK\n * @returns Standard decimal number\n */\nexport function fromMYXCollateral(myxCollateral: string): number {\n if (!myxCollateral || myxCollateral === '0') {\n return 0;\n }\n\n try {\n const bn = new BigNumber(myxCollateral);\n if (bn.isNaN()) {\n return 0;\n }\n const divisor = new BigNumber(10).pow(MYX_COLLATERAL_DECIMALS);\n return bn.dividedBy(divisor).toNumber();\n } catch {\n return 0;\n }\n}\n\n// ============================================================================\n// REST API Configuration\n// ============================================================================\n\n/**\n * Price polling interval in milliseconds\n * Using 5 seconds as a fallback for unreliable WebSocket\n */\nexport const MYX_PRICE_POLLING_INTERVAL_MS = 5000;\n\n/**\n * HTTP request timeout in milliseconds\n */\nexport const MYX_HTTP_TIMEOUT_MS = 10000;\n\n/**\n * Maximum retries for failed API requests\n */\nexport const MYX_MAX_RETRIES = 3;\n"]}
1
+ {"version":3,"file":"myxConfig.cjs","sourceRoot":"","sources":["../../src/constants/myxConfig.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * MYX Protocol Configuration Constants\n *\n * Configuration for market display, price fetching, and trading.\n * Based on MYX SDK patterns.\n */\n\nimport type { CaipChainId } from '@metamask/utils';\nimport { BigNumber } from 'bignumber.js';\n\nimport type {\n MYXNetwork,\n MYXEndpoints,\n MYXAssetConfigs,\n} from '../types/myx-types';\n\n// ============================================================================\n// Network Constants\n// ============================================================================\n\n/**\n * MYX Chain IDs\n * Mainnet: BNB Chain (56)\n * Testnet: Linea Sepolia (59141) — primary testnet chain with most active pools.\n * The testnet API also has one pool on Arbitrum Sepolia (421614) but it has no\n * ticker data, so Linea Sepolia is the effective testnet chain.\n */\nexport const MYX_MAINNET_CHAIN_ID = '56' as const;\nexport const MYX_TESTNET_CHAIN_ID = '59141' as const;\nexport const MYX_MAINNET_CAIP_CHAIN_ID =\n `eip155:${MYX_MAINNET_CHAIN_ID}` as CaipChainId;\nexport const MYX_TESTNET_CAIP_CHAIN_ID =\n `eip155:${MYX_TESTNET_CHAIN_ID}` as CaipChainId;\n\n/**\n * Get numeric chain ID for MYX network\n *\n * @param network - The MYX network environment (mainnet or testnet).\n * @returns The numeric chain ID for the specified network.\n */\nexport function getMYXChainId(network: MYXNetwork): number {\n return network === 'testnet'\n ? parseInt(MYX_TESTNET_CHAIN_ID, 10)\n : parseInt(MYX_MAINNET_CHAIN_ID, 10);\n}\n\n// ============================================================================\n// API Endpoints\n// ============================================================================\n\n/**\n * MYX REST and WebSocket endpoints\n */\nexport const MYX_ENDPOINTS: MYXEndpoints = {\n mainnet: {\n http: 'https://api.myx.finance',\n ws: 'wss://oapi.myx.finance/ws',\n },\n testnet: {\n http: 'https://api-test.myx.cash',\n ws: 'wss://oapi-test.myx.cash/ws',\n },\n};\n\n/**\n * Get HTTP endpoint for network\n *\n * @param network - The MYX network environment (mainnet or testnet).\n * @returns The HTTP API endpoint URL for the specified network.\n */\nexport function getMYXHttpEndpoint(network: MYXNetwork): string {\n return MYX_ENDPOINTS[network].http;\n}\n\n// ============================================================================\n// Decimal Constants\n// ============================================================================\n\n/**\n * MYX API returns prices as normal floating-point strings (e.g. \"64854.76\").\n * No decimal scaling is needed for prices from the REST/WS API.\n *\n * Note: The SDK's internal contract layer uses 30 decimals, but the API\n * endpoints (tickers, candles, order history) return human-readable values.\n */\nexport const MYX_PRICE_DECIMALS = 0;\n\n/**\n * MYX uses 18 decimals for position sizes\n */\nexport const MYX_SIZE_DECIMALS = 18;\n\n/**\n * MYX uses 18 decimals for collateral amounts (USDT on BNB)\n */\nexport const MYX_COLLATERAL_DECIMALS = 18;\n\n// ============================================================================\n// Token Addresses\n// ============================================================================\n\n/**\n * Collateral token address — testnet (USDC on Linea Sepolia)\n * From SDK: LINEA_SEPOLIA.USDC\n */\nexport const MYX_COLLATERAL_TOKEN_TESTNET =\n '0xD984fd34f91F92DA0586e1bE82E262fF27DC431b' as const;\n\n/**\n * Collateral token address — mainnet (BUSD on BNB, per pool quoteToken)\n * Note: individual pools may use different quote tokens\n */\nexport const MYX_COLLATERAL_TOKEN_MAINNET =\n '0x8bfc51e1928e91e47c6734983ac018b2fc0adf4e' as const;\n\n/** @deprecated Use MYX_COLLATERAL_TOKEN_TESTNET */\nexport const USDT_BNB_TESTNET = MYX_COLLATERAL_TOKEN_TESTNET;\n/** @deprecated Use MYX_COLLATERAL_TOKEN_MAINNET */\nexport const USDT_BNB_MAINNET = MYX_COLLATERAL_TOKEN_MAINNET;\n\n/**\n * Collateral token configuration by network\n */\nexport const MYX_ASSET_CONFIGS: MYXAssetConfigs = {\n USDT: {\n mainnet: {\n chainId: MYX_MAINNET_CAIP_CHAIN_ID,\n tokenAddress: MYX_COLLATERAL_TOKEN_MAINNET,\n },\n testnet: {\n chainId: MYX_TESTNET_CAIP_CHAIN_ID,\n tokenAddress: MYX_COLLATERAL_TOKEN_TESTNET,\n },\n },\n};\n\n// ============================================================================\n// Decimal Conversion Helpers\n// ============================================================================\n\n/**\n * Convert MYX API price string to standard number.\n *\n * MYX API returns normal floating-point price strings (e.g. \"64854.76\"),\n * NOT 30-decimal scaled integers. This is a simple parseFloat.\n *\n * @param myxPrice - Price string from MYX API (e.g. \"64854.760266796727\")\n * @returns Standard decimal number\n */\nexport function fromMYXPrice(myxPrice: string): number {\n if (!myxPrice || myxPrice === '0') {\n return 0;\n }\n\n const parsed = parseFloat(myxPrice);\n return isNaN(parsed) ? 0 : parsed;\n}\n\n/**\n * Convert standard number to MYX API price string.\n *\n * MYX API uses normal floating-point strings, so this is a simple toString.\n *\n * @param price - Standard decimal number\n * @returns Price string for MYX API\n */\nexport function toMYXPrice(price: number | string): string {\n const parsed = typeof price === 'string' ? parseFloat(price) : price;\n return isNaN(parsed) ? '0' : parsed.toString();\n}\n\n/**\n * Convert MYX SDK size (18 decimals) to standard number\n *\n * @param myxSize - Size string in 18-decimal format from SDK\n * @returns Standard decimal number\n */\nexport function fromMYXSize(myxSize: string): number {\n if (!myxSize || myxSize === '0') {\n return 0;\n }\n\n try {\n const bn = new BigNumber(myxSize);\n if (bn.isNaN()) {\n return 0;\n }\n const divisor = new BigNumber(10).pow(MYX_SIZE_DECIMALS);\n return bn.dividedBy(divisor).toNumber();\n } catch {\n return 0;\n }\n}\n\n/**\n * Convert standard number to MYX SDK size format (18 decimals)\n *\n * @param size - Standard decimal number\n * @returns Size string in 18-decimal format for SDK\n */\nexport function toMYXSize(size: number | string): string {\n try {\n const bn = new BigNumber(size);\n if (bn.isNaN()) {\n return '0';\n }\n const multiplier = new BigNumber(10).pow(MYX_SIZE_DECIMALS);\n return bn.multipliedBy(multiplier).toFixed(0);\n } catch {\n return '0';\n }\n}\n\n/**\n * Convert MYX SDK collateral (18 decimals) to standard number\n *\n * @param myxCollateral - Collateral string in 18-decimal format from SDK\n * @returns Standard decimal number\n */\nexport function fromMYXCollateral(myxCollateral: string): number {\n if (!myxCollateral || myxCollateral === '0') {\n return 0;\n }\n\n try {\n const bn = new BigNumber(myxCollateral);\n if (bn.isNaN()) {\n return 0;\n }\n const divisor = new BigNumber(10).pow(MYX_COLLATERAL_DECIMALS);\n return bn.dividedBy(divisor).toNumber();\n } catch {\n return 0;\n }\n}\n\n// ============================================================================\n// REST API Configuration\n// ============================================================================\n\n/**\n * Price polling interval in milliseconds\n * Using 5 seconds as a fallback for unreliable WebSocket\n */\nexport const MYX_PRICE_POLLING_INTERVAL_MS = 5000;\n\n/**\n * HTTP request timeout in milliseconds\n */\nexport const MYX_HTTP_TIMEOUT_MS = 10000;\n\n/**\n * Maximum retries for failed API requests\n */\nexport const MYX_MAX_RETRIES = 3;\n\n/**\n * Default slippage in basis points for MYX orders (1% — matches SDK default)\n */\nexport const MYX_DEFAULT_SLIPPAGE_BPS = 100;\n\n/**\n * Maximum leverage supported by MYX (most markets)\n */\nexport const MYX_MAX_LEVERAGE = 100;\n\n/**\n * Minimum order size in USD\n */\nexport const MYX_MINIMUM_ORDER_SIZE_USD = 10;\n\n/**\n * MYX fee rates (placeholder — will be replaced with per-market rates)\n */\nexport const MYX_FEE_RATE = 0.0005; // 0.05% total fee rate\nexport const MYX_PROTOCOL_FEE_RATE = 0.0005; // Protocol taker fee\n\n/**\n * USDT execution fee token address per network (used for order execution fees)\n */\nexport const MYX_EXECUTION_FEE_TOKEN: Record<MYXNetwork, string> = {\n testnet: MYX_COLLATERAL_TOKEN_TESTNET,\n mainnet: MYX_COLLATERAL_TOKEN_MAINNET,\n};\n"]}
@@ -1,17 +1,21 @@
1
1
  /**
2
2
  * MYX Protocol Configuration Constants
3
3
  *
4
- * Stage 1 configuration for market display and price fetching.
5
- * Based on MYX SDK patterns but simplified for read-only operations.
4
+ * Configuration for market display, price fetching, and trading.
5
+ * Based on MYX SDK patterns.
6
6
  */
7
7
  import type { MYXNetwork, MYXEndpoints, MYXAssetConfigs } from "../types/myx-types.cjs";
8
8
  /**
9
- * BNB Chain IDs - MYX's primary network
9
+ * MYX Chain IDs
10
+ * Mainnet: BNB Chain (56)
11
+ * Testnet: Linea Sepolia (59141) — primary testnet chain with most active pools.
12
+ * The testnet API also has one pool on Arbitrum Sepolia (421614) but it has no
13
+ * ticker data, so Linea Sepolia is the effective testnet chain.
10
14
  */
11
- export declare const BNB_MAINNET_CHAIN_ID: "56";
12
- export declare const BNB_TESTNET_CHAIN_ID: "97";
13
- export declare const BNB_MAINNET_CAIP_CHAIN_ID: `${string}:${string}`;
14
- export declare const BNB_TESTNET_CAIP_CHAIN_ID: `${string}:${string}`;
15
+ export declare const MYX_MAINNET_CHAIN_ID: "56";
16
+ export declare const MYX_TESTNET_CHAIN_ID: "59141";
17
+ export declare const MYX_MAINNET_CAIP_CHAIN_ID: `${string}:${string}`;
18
+ export declare const MYX_TESTNET_CAIP_CHAIN_ID: `${string}:${string}`;
15
19
  /**
16
20
  * Get numeric chain ID for MYX network
17
21
  *
@@ -31,10 +35,13 @@ export declare const MYX_ENDPOINTS: MYXEndpoints;
31
35
  */
32
36
  export declare function getMYXHttpEndpoint(network: MYXNetwork): string;
33
37
  /**
34
- * MYX uses 30 decimals for price representation
35
- * This is consistent with the SDK's internal format
38
+ * MYX API returns prices as normal floating-point strings (e.g. "64854.76").
39
+ * No decimal scaling is needed for prices from the REST/WS API.
40
+ *
41
+ * Note: The SDK's internal contract layer uses 30 decimals, but the API
42
+ * endpoints (tickers, candles, order history) return human-readable values.
36
43
  */
37
- export declare const MYX_PRICE_DECIMALS = 30;
44
+ export declare const MYX_PRICE_DECIMALS = 0;
38
45
  /**
39
46
  * MYX uses 18 decimals for position sizes
40
47
  */
@@ -44,29 +51,40 @@ export declare const MYX_SIZE_DECIMALS = 18;
44
51
  */
45
52
  export declare const MYX_COLLATERAL_DECIMALS = 18;
46
53
  /**
47
- * USDT token address on BNB testnet
54
+ * Collateral token address — testnet (USDC on Linea Sepolia)
55
+ * From SDK: LINEA_SEPOLIA.USDC
48
56
  */
49
- export declare const USDT_BNB_TESTNET: "0x337610d27c682e347c9cd60bd4b3b107c9d34ddd";
57
+ export declare const MYX_COLLATERAL_TOKEN_TESTNET: "0xD984fd34f91F92DA0586e1bE82E262fF27DC431b";
50
58
  /**
51
- * USDT token address on BNB mainnet
59
+ * Collateral token address — mainnet (BUSD on BNB, per pool quoteToken)
60
+ * Note: individual pools may use different quote tokens
52
61
  */
53
- export declare const USDT_BNB_MAINNET: "0x55d398326f99059ff775485246999027b3197955";
62
+ export declare const MYX_COLLATERAL_TOKEN_MAINNET: "0x8bfc51e1928e91e47c6734983ac018b2fc0adf4e";
63
+ /** @deprecated Use MYX_COLLATERAL_TOKEN_TESTNET */
64
+ export declare const USDT_BNB_TESTNET: "0xD984fd34f91F92DA0586e1bE82E262fF27DC431b";
65
+ /** @deprecated Use MYX_COLLATERAL_TOKEN_MAINNET */
66
+ export declare const USDT_BNB_MAINNET: "0x8bfc51e1928e91e47c6734983ac018b2fc0adf4e";
54
67
  /**
55
- * USDT configuration by network
68
+ * Collateral token configuration by network
56
69
  */
57
70
  export declare const MYX_ASSET_CONFIGS: MYXAssetConfigs;
58
71
  /**
59
- * Convert MYX SDK price (30 decimals) to standard number
72
+ * Convert MYX API price string to standard number.
73
+ *
74
+ * MYX API returns normal floating-point price strings (e.g. "64854.76"),
75
+ * NOT 30-decimal scaled integers. This is a simple parseFloat.
60
76
  *
61
- * @param myxPrice - Price string in 30-decimal format from SDK
77
+ * @param myxPrice - Price string from MYX API (e.g. "64854.760266796727")
62
78
  * @returns Standard decimal number
63
79
  */
64
80
  export declare function fromMYXPrice(myxPrice: string): number;
65
81
  /**
66
- * Convert standard number to MYX SDK price format (30 decimals)
82
+ * Convert standard number to MYX API price string.
83
+ *
84
+ * MYX API uses normal floating-point strings, so this is a simple toString.
67
85
  *
68
86
  * @param price - Standard decimal number
69
- * @returns Price string in 30-decimal format for SDK
87
+ * @returns Price string for MYX API
70
88
  */
71
89
  export declare function toMYXPrice(price: number | string): string;
72
90
  /**
@@ -103,4 +121,25 @@ export declare const MYX_HTTP_TIMEOUT_MS = 10000;
103
121
  * Maximum retries for failed API requests
104
122
  */
105
123
  export declare const MYX_MAX_RETRIES = 3;
124
+ /**
125
+ * Default slippage in basis points for MYX orders (1% — matches SDK default)
126
+ */
127
+ export declare const MYX_DEFAULT_SLIPPAGE_BPS = 100;
128
+ /**
129
+ * Maximum leverage supported by MYX (most markets)
130
+ */
131
+ export declare const MYX_MAX_LEVERAGE = 100;
132
+ /**
133
+ * Minimum order size in USD
134
+ */
135
+ export declare const MYX_MINIMUM_ORDER_SIZE_USD = 10;
136
+ /**
137
+ * MYX fee rates (placeholder — will be replaced with per-market rates)
138
+ */
139
+ export declare const MYX_FEE_RATE = 0.0005;
140
+ export declare const MYX_PROTOCOL_FEE_RATE = 0.0005;
141
+ /**
142
+ * USDT execution fee token address per network (used for order execution fees)
143
+ */
144
+ export declare const MYX_EXECUTION_FEE_TOKEN: Record<MYXNetwork, string>;
106
145
  //# sourceMappingURL=myxConfig.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"myxConfig.d.cts","sourceRoot":"","sources":["../../src/constants/myxConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,eAAe,EAChB,+BAA2B;AAM5B;;GAEG;AACH,eAAO,MAAM,oBAAoB,MAAgB,CAAC;AAClD,eAAO,MAAM,oBAAoB,MAAgB,CAAC;AAClD,eAAO,MAAM,yBAAyB,uBACW,CAAC;AAClD,eAAO,MAAM,yBAAyB,uBACW,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAIzD;AAMD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,YAS3B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAE9D;AAMD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAM1C;;GAEG;AACH,eAAO,MAAM,gBAAgB,8CAC0B,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,gBAAgB,8CAC0B,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAW/B,CAAC;AAMF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAerD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAWzD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAenD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAWvD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAe/D;AAMD;;;GAGG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"myxConfig.d.cts","sourceRoot":"","sources":["../../src/constants/myxConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,eAAe,EAChB,+BAA2B;AAM5B;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,MAAgB,CAAC;AAClD,eAAO,MAAM,oBAAoB,SAAmB,CAAC;AACrD,eAAO,MAAM,yBAAyB,uBACW,CAAC;AAClD,eAAO,MAAM,yBAAyB,uBACW,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAIzD;AAMD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,YAS3B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAE9D;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAM1C;;;GAGG;AACH,eAAO,MAAM,4BAA4B,8CACc,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,4BAA4B,8CACc,CAAC;AAExD,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,8CAA+B,CAAC;AAC7D,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,8CAA+B,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAW/B,CAAC;AAMF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAGzD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAenD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAWvD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAe/D;AAMD;;;GAGG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAG9D,CAAC"}
@@ -1,17 +1,21 @@
1
1
  /**
2
2
  * MYX Protocol Configuration Constants
3
3
  *
4
- * Stage 1 configuration for market display and price fetching.
5
- * Based on MYX SDK patterns but simplified for read-only operations.
4
+ * Configuration for market display, price fetching, and trading.
5
+ * Based on MYX SDK patterns.
6
6
  */
7
7
  import type { MYXNetwork, MYXEndpoints, MYXAssetConfigs } from "../types/myx-types.mjs";
8
8
  /**
9
- * BNB Chain IDs - MYX's primary network
9
+ * MYX Chain IDs
10
+ * Mainnet: BNB Chain (56)
11
+ * Testnet: Linea Sepolia (59141) — primary testnet chain with most active pools.
12
+ * The testnet API also has one pool on Arbitrum Sepolia (421614) but it has no
13
+ * ticker data, so Linea Sepolia is the effective testnet chain.
10
14
  */
11
- export declare const BNB_MAINNET_CHAIN_ID: "56";
12
- export declare const BNB_TESTNET_CHAIN_ID: "97";
13
- export declare const BNB_MAINNET_CAIP_CHAIN_ID: `${string}:${string}`;
14
- export declare const BNB_TESTNET_CAIP_CHAIN_ID: `${string}:${string}`;
15
+ export declare const MYX_MAINNET_CHAIN_ID: "56";
16
+ export declare const MYX_TESTNET_CHAIN_ID: "59141";
17
+ export declare const MYX_MAINNET_CAIP_CHAIN_ID: `${string}:${string}`;
18
+ export declare const MYX_TESTNET_CAIP_CHAIN_ID: `${string}:${string}`;
15
19
  /**
16
20
  * Get numeric chain ID for MYX network
17
21
  *
@@ -31,10 +35,13 @@ export declare const MYX_ENDPOINTS: MYXEndpoints;
31
35
  */
32
36
  export declare function getMYXHttpEndpoint(network: MYXNetwork): string;
33
37
  /**
34
- * MYX uses 30 decimals for price representation
35
- * This is consistent with the SDK's internal format
38
+ * MYX API returns prices as normal floating-point strings (e.g. "64854.76").
39
+ * No decimal scaling is needed for prices from the REST/WS API.
40
+ *
41
+ * Note: The SDK's internal contract layer uses 30 decimals, but the API
42
+ * endpoints (tickers, candles, order history) return human-readable values.
36
43
  */
37
- export declare const MYX_PRICE_DECIMALS = 30;
44
+ export declare const MYX_PRICE_DECIMALS = 0;
38
45
  /**
39
46
  * MYX uses 18 decimals for position sizes
40
47
  */
@@ -44,29 +51,40 @@ export declare const MYX_SIZE_DECIMALS = 18;
44
51
  */
45
52
  export declare const MYX_COLLATERAL_DECIMALS = 18;
46
53
  /**
47
- * USDT token address on BNB testnet
54
+ * Collateral token address — testnet (USDC on Linea Sepolia)
55
+ * From SDK: LINEA_SEPOLIA.USDC
48
56
  */
49
- export declare const USDT_BNB_TESTNET: "0x337610d27c682e347c9cd60bd4b3b107c9d34ddd";
57
+ export declare const MYX_COLLATERAL_TOKEN_TESTNET: "0xD984fd34f91F92DA0586e1bE82E262fF27DC431b";
50
58
  /**
51
- * USDT token address on BNB mainnet
59
+ * Collateral token address — mainnet (BUSD on BNB, per pool quoteToken)
60
+ * Note: individual pools may use different quote tokens
52
61
  */
53
- export declare const USDT_BNB_MAINNET: "0x55d398326f99059ff775485246999027b3197955";
62
+ export declare const MYX_COLLATERAL_TOKEN_MAINNET: "0x8bfc51e1928e91e47c6734983ac018b2fc0adf4e";
63
+ /** @deprecated Use MYX_COLLATERAL_TOKEN_TESTNET */
64
+ export declare const USDT_BNB_TESTNET: "0xD984fd34f91F92DA0586e1bE82E262fF27DC431b";
65
+ /** @deprecated Use MYX_COLLATERAL_TOKEN_MAINNET */
66
+ export declare const USDT_BNB_MAINNET: "0x8bfc51e1928e91e47c6734983ac018b2fc0adf4e";
54
67
  /**
55
- * USDT configuration by network
68
+ * Collateral token configuration by network
56
69
  */
57
70
  export declare const MYX_ASSET_CONFIGS: MYXAssetConfigs;
58
71
  /**
59
- * Convert MYX SDK price (30 decimals) to standard number
72
+ * Convert MYX API price string to standard number.
73
+ *
74
+ * MYX API returns normal floating-point price strings (e.g. "64854.76"),
75
+ * NOT 30-decimal scaled integers. This is a simple parseFloat.
60
76
  *
61
- * @param myxPrice - Price string in 30-decimal format from SDK
77
+ * @param myxPrice - Price string from MYX API (e.g. "64854.760266796727")
62
78
  * @returns Standard decimal number
63
79
  */
64
80
  export declare function fromMYXPrice(myxPrice: string): number;
65
81
  /**
66
- * Convert standard number to MYX SDK price format (30 decimals)
82
+ * Convert standard number to MYX API price string.
83
+ *
84
+ * MYX API uses normal floating-point strings, so this is a simple toString.
67
85
  *
68
86
  * @param price - Standard decimal number
69
- * @returns Price string in 30-decimal format for SDK
87
+ * @returns Price string for MYX API
70
88
  */
71
89
  export declare function toMYXPrice(price: number | string): string;
72
90
  /**
@@ -103,4 +121,25 @@ export declare const MYX_HTTP_TIMEOUT_MS = 10000;
103
121
  * Maximum retries for failed API requests
104
122
  */
105
123
  export declare const MYX_MAX_RETRIES = 3;
124
+ /**
125
+ * Default slippage in basis points for MYX orders (1% — matches SDK default)
126
+ */
127
+ export declare const MYX_DEFAULT_SLIPPAGE_BPS = 100;
128
+ /**
129
+ * Maximum leverage supported by MYX (most markets)
130
+ */
131
+ export declare const MYX_MAX_LEVERAGE = 100;
132
+ /**
133
+ * Minimum order size in USD
134
+ */
135
+ export declare const MYX_MINIMUM_ORDER_SIZE_USD = 10;
136
+ /**
137
+ * MYX fee rates (placeholder — will be replaced with per-market rates)
138
+ */
139
+ export declare const MYX_FEE_RATE = 0.0005;
140
+ export declare const MYX_PROTOCOL_FEE_RATE = 0.0005;
141
+ /**
142
+ * USDT execution fee token address per network (used for order execution fees)
143
+ */
144
+ export declare const MYX_EXECUTION_FEE_TOKEN: Record<MYXNetwork, string>;
106
145
  //# sourceMappingURL=myxConfig.d.mts.map