@myx-trade/sdk 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -32,43 +32,66 @@ var index_exports = {};
32
32
  __export(index_exports, {
33
33
  COMMON_LP_AMOUNT_DECIMALS: () => COMMON_LP_AMOUNT_DECIMALS,
34
34
  COMMON_PRICE_DECIMALS: () => COMMON_PRICE_DECIMALS,
35
+ ChainId: () => ChainId,
35
36
  Direction: () => Direction,
37
+ DirectionEnum: () => DirectionEnum,
36
38
  ErrorCode: () => ErrorCode2,
39
+ ExecTypeEnum: () => ExecTypeEnum,
37
40
  HttpKlineIntervalEnum: () => HttpKlineIntervalEnum,
38
41
  Market: () => Market,
42
+ MarketCapType: () => MarketCapType,
39
43
  MarketPoolState: () => MarketPoolState,
44
+ MarketType: () => MarketType,
40
45
  MyxClient: () => MyxClient,
46
+ OperationEnum: () => OperationEnum,
41
47
  OperationType: () => OperationType,
42
48
  OracleType: () => OracleType,
43
49
  OrderStatus: () => OrderStatus,
50
+ OrderStatusEnum: () => OrderStatusEnum,
44
51
  OrderType: () => OrderType,
52
+ OrderTypeEnum: () => OrderTypeEnum,
53
+ SearchSecondTypeEnum: () => SearchSecondTypeEnum,
54
+ SearchTypeEnum: () => SearchTypeEnum,
45
55
  TimeInForce: () => TimeInForce2,
46
56
  TriggerType: () => TriggerType2,
57
+ TriggerTypeEnum: () => TriggerTypeEnum,
58
+ addFavorite: () => addFavorite,
47
59
  approve: () => approve,
48
60
  base: () => base_exports,
61
+ baseUrl: () => baseUrl,
49
62
  bigintAmountSlipperCalculator: () => bigintAmountSlipperCalculator,
50
63
  bigintTradingGasPriceWithRatio: () => bigintTradingGasPriceWithRatio,
51
64
  bigintTradingGasToRatioCalculator: () => bigintTradingGasToRatioCalculator,
52
- formatUnits: () => import_ethers23.formatUnits,
65
+ formatUnits: () => import_ethers24.formatUnits,
53
66
  getAllTickers: () => getAllTickers,
54
67
  getAllowanceApproved: () => getAllowanceApproved,
55
68
  getBalanceOf: () => getBalanceOf,
69
+ getBaseDetail: () => getBaseDetail,
70
+ getFavoritesList: () => getFavoritesList,
71
+ getHistoryOrders: () => getHistoryOrders,
56
72
  getKlineData: () => getKlineData,
57
73
  getKlineLatestBar: () => getKlineLatestBar,
74
+ getMarketDetail: () => getMarketDetail,
58
75
  getOraclePrice: () => getOraclePrice,
59
76
  getOrders: () => getOrders,
60
77
  getPoolDetail: () => getPoolDetail,
61
78
  getPoolLevelConfig: () => getPoolLevelConfig,
62
79
  getPoolOpenOrders: () => getPoolOpenOrders,
63
80
  getPools: () => getPools,
81
+ getPositionHistory: () => getPositionHistory,
64
82
  getPositions: () => getPositions,
65
83
  getPriceData: () => getPriceData,
66
84
  getPricesData: () => getPricesData,
67
85
  getTickerData: () => getTickerData,
86
+ getTokenInfo: () => getTokenInfo,
87
+ getTradeFlow: () => getTradeFlow,
68
88
  market: () => market_exports,
69
- parseUnits: () => import_ethers23.parseUnits,
89
+ parseUnits: () => import_ethers24.parseUnits,
70
90
  pool: () => pool_exports,
71
- quote: () => quote_exports
91
+ quote: () => quote_exports,
92
+ removeFavorite: () => removeFavorite,
93
+ searchMarket: () => searchMarket,
94
+ searchMarketAuth: () => searchMarketAuth
72
95
  });
73
96
  module.exports = __toCommonJS(index_exports);
74
97
 
@@ -1424,6 +1447,18 @@ var LiquidityRouter_default = [
1424
1447
  ];
1425
1448
 
1426
1449
  // src/config/chain.ts
1450
+ var ChainId = /* @__PURE__ */ ((ChainId3) => {
1451
+ ChainId3[ChainId3["LINEA_SEPOLIA"] = 59141] = "LINEA_SEPOLIA";
1452
+ ChainId3[ChainId3["LINEA_MAINNET"] = 59144] = "LINEA_MAINNET";
1453
+ ChainId3[ChainId3["ARB_TESTNET"] = 421614] = "ARB_TESTNET";
1454
+ ChainId3[ChainId3["ARB_MAINNET"] = 42161] = "ARB_MAINNET";
1455
+ ChainId3[ChainId3["OPBNB_TESTNET"] = 5611] = "OPBNB_TESTNET";
1456
+ ChainId3[ChainId3["OPBNB_MAINNET"] = 204] = "OPBNB_MAINNET";
1457
+ ChainId3[ChainId3["SCROLL_MAINNET"] = 534352] = "SCROLL_MAINNET";
1458
+ ChainId3[ChainId3["BSC_TESTNET"] = 97] = "BSC_TESTNET";
1459
+ ChainId3[ChainId3["BSC_MAINNET"] = 56] = "BSC_MAINNET";
1460
+ return ChainId3;
1461
+ })(ChainId || {});
1427
1462
  var SupportedChainIds = [421614 /* ARB_TESTNET */];
1428
1463
  function isSupportedChainFn(chainId2) {
1429
1464
  return !!chainId2 && SupportedChainIds.includes(chainId2);
@@ -1791,8 +1826,12 @@ var RotationProvider = class extends import_providers.BaseProvider {
1791
1826
 
1792
1827
  // package.json
1793
1828
  var package_default = {
1794
- name: "@myx-trade/sdk-test",
1795
- version: "1.0.0",
1829
+ name: "@myx-trade/sdk",
1830
+ version: "0.1.4",
1831
+ private: false,
1832
+ publishConfig: {
1833
+ access: "public"
1834
+ },
1796
1835
  description: "MYX Trade SDK for trading operations",
1797
1836
  main: "dist/index.js",
1798
1837
  module: "dist/index.mjs",
@@ -1812,7 +1851,16 @@ var package_default = {
1812
1851
  dev: "tsup src/index.ts --format cjs,esm --dts --watch",
1813
1852
  clean: "rm -rf dist",
1814
1853
  prebuild: "npm run clean",
1815
- "gen:abi": "typechain --target ethers-v6 --out-dir ./src/abi/types './src/abi/**/*.json'"
1854
+ "gen:abi": "typechain --target ethers-v6 --out-dir ./src/abi/types './src/abi/**/*.json'",
1855
+ "version:bump": "node scripts/bump-version.js",
1856
+ "version:patch": "node scripts/bump-version.js patch",
1857
+ "version:minor": "node scripts/bump-version.js minor",
1858
+ "version:major": "node scripts/bump-version.js major",
1859
+ prepublishOnly: "npm run build",
1860
+ publish: "node scripts/publish.js patch",
1861
+ "publish:patch": "node scripts/publish.js patch",
1862
+ "publish:minor": "node scripts/publish.js minor",
1863
+ "publish:major": "node scripts/publish.js major"
1816
1864
  },
1817
1865
  keywords: [
1818
1866
  "trading",
@@ -4885,6 +4933,11 @@ var BasePool_default = [
4885
4933
 
4886
4934
  // src/abi/Broker.json
4887
4935
  var Broker_default = [
4936
+ {
4937
+ type: "constructor",
4938
+ payable: false,
4939
+ inputs: []
4940
+ },
4888
4941
  {
4889
4942
  type: "error",
4890
4943
  name: "ECDSAInvalidSignature",
@@ -4920,11 +4973,6 @@ var Broker_default = [
4920
4973
  name: "InvalidFeeRate",
4921
4974
  inputs: []
4922
4975
  },
4923
- {
4924
- type: "error",
4925
- name: "InvalidFeeTier",
4926
- inputs: []
4927
- },
4928
4976
  {
4929
4977
  type: "error",
4930
4978
  name: "InvalidInitialization",
@@ -5223,19 +5271,6 @@ var Broker_default = [
5223
5271
  }
5224
5272
  ]
5225
5273
  },
5226
- {
5227
- type: "function",
5228
- name: "activeSpecialFeeTierList",
5229
- constant: true,
5230
- stateMutability: "view",
5231
- payable: false,
5232
- inputs: [],
5233
- outputs: [
5234
- {
5235
- type: "uint256[]"
5236
- }
5237
- ]
5238
- },
5239
5274
  {
5240
5275
  type: "function",
5241
5276
  name: "addressManager",
@@ -5412,29 +5447,6 @@ var Broker_default = [
5412
5447
  }
5413
5448
  ]
5414
5449
  },
5415
- {
5416
- type: "function",
5417
- name: "getSpecialFeeTier",
5418
- constant: true,
5419
- stateMutability: "view",
5420
- payable: false,
5421
- inputs: [
5422
- {
5423
- type: "uint8",
5424
- name: "feeTier"
5425
- }
5426
- ],
5427
- outputs: [
5428
- {
5429
- type: "int32",
5430
- name: "makerFeeRate"
5431
- },
5432
- {
5433
- type: "uint32",
5434
- name: "takerFeeRate"
5435
- }
5436
- ]
5437
- },
5438
5450
  {
5439
5451
  type: "function",
5440
5452
  name: "getUserFeeRate",
@@ -5820,27 +5832,6 @@ var Broker_default = [
5820
5832
  ],
5821
5833
  outputs: []
5822
5834
  },
5823
- {
5824
- type: "function",
5825
- name: "setSpecialFeeTier",
5826
- constant: false,
5827
- payable: false,
5828
- inputs: [
5829
- {
5830
- type: "uint8",
5831
- name: "feeTier"
5832
- },
5833
- {
5834
- type: "int32",
5835
- name: "makerFeeRate"
5836
- },
5837
- {
5838
- type: "uint32",
5839
- name: "takerFeeRate"
5840
- }
5841
- ],
5842
- outputs: []
5843
- },
5844
5835
  {
5845
5836
  type: "function",
5846
5837
  name: "setUserFeeData",
@@ -5884,23 +5875,6 @@ var Broker_default = [
5884
5875
  ],
5885
5876
  outputs: []
5886
5877
  },
5887
- {
5888
- type: "function",
5889
- name: "setUserSpecialFeeTier",
5890
- constant: false,
5891
- payable: false,
5892
- inputs: [
5893
- {
5894
- type: "address",
5895
- name: "user"
5896
- },
5897
- {
5898
- type: "uint8",
5899
- name: "feeTier"
5900
- }
5901
- ],
5902
- outputs: []
5903
- },
5904
5878
  {
5905
5879
  type: "function",
5906
5880
  name: "supportedAssetClasses",
@@ -6072,12 +6046,8 @@ var Broker_default = [
6072
6046
  name: "executionFeeToken"
6073
6047
  },
6074
6048
  {
6075
- type: "bool",
6076
- name: "useOrderCollateral"
6077
- },
6078
- {
6079
- type: "bool",
6080
- name: "useAccountBalance"
6049
+ type: "uint8",
6050
+ name: "paymentType"
6081
6051
  }
6082
6052
  ]
6083
6053
  }
@@ -6101,6 +6071,10 @@ var Broker_default = [
6101
6071
  type: "bytes32",
6102
6072
  name: "poolId"
6103
6073
  },
6074
+ {
6075
+ type: "uint8",
6076
+ name: "oracleType"
6077
+ },
6104
6078
  {
6105
6079
  type: "uint256",
6106
6080
  name: "referencePrice"
@@ -9191,6 +9165,10 @@ var DataProvider_default = [
9191
9165
  ];
9192
9166
 
9193
9167
  // src/web3/providers.ts
9168
+ var getTokenContract = async (chainId2, tokenAddress) => {
9169
+ const provider = getJSONProvider(chainId2);
9170
+ return getContract(tokenAddress, IERC20Metadata_default, provider);
9171
+ };
9194
9172
  var getERC20Contract = async (chainId2, tokenAddress) => {
9195
9173
  const provider = await getSignerProvider(chainId2);
9196
9174
  return getContract(tokenAddress, IERC20Metadata_default, provider);
@@ -9732,6 +9710,110 @@ var HttpKlineIntervalEnum = /* @__PURE__ */ ((HttpKlineIntervalEnum2) => {
9732
9710
  HttpKlineIntervalEnum2[HttpKlineIntervalEnum2["Month1"] = 40320] = "Month1";
9733
9711
  return HttpKlineIntervalEnum2;
9734
9712
  })(HttpKlineIntervalEnum || {});
9713
+ var MarketType = /* @__PURE__ */ ((MarketType2) => {
9714
+ MarketType2[MarketType2["Contract"] = 1] = "Contract";
9715
+ MarketType2[MarketType2["Cook"] = 2] = "Cook";
9716
+ MarketType2[MarketType2["Earn"] = 3] = "Earn";
9717
+ return MarketType2;
9718
+ })(MarketType || {});
9719
+ var SearchTypeEnum = /* @__PURE__ */ ((SearchTypeEnum2) => {
9720
+ SearchTypeEnum2[SearchTypeEnum2["All"] = 0] = "All";
9721
+ SearchTypeEnum2[SearchTypeEnum2["Contract"] = 1 /* Contract */] = "Contract";
9722
+ SearchTypeEnum2[SearchTypeEnum2["Cook"] = 2 /* Cook */] = "Cook";
9723
+ SearchTypeEnum2[SearchTypeEnum2["Earn"] = 3 /* Earn */] = "Earn";
9724
+ return SearchTypeEnum2;
9725
+ })(SearchTypeEnum || {});
9726
+ var MarketCapType = /* @__PURE__ */ ((MarketCapType2) => {
9727
+ MarketCapType2[MarketCapType2["BlueChips"] = 1] = "BlueChips";
9728
+ MarketCapType2[MarketCapType2["Alpha"] = 2] = "Alpha";
9729
+ return MarketCapType2;
9730
+ })(MarketCapType || {});
9731
+ var SearchSecondTypeEnum = /* @__PURE__ */ ((SearchSecondTypeEnum2) => {
9732
+ SearchSecondTypeEnum2[SearchSecondTypeEnum2["BlueChips"] = 1 /* BlueChips */] = "BlueChips";
9733
+ SearchSecondTypeEnum2[SearchSecondTypeEnum2["Alpha"] = 2 /* Alpha */] = "Alpha";
9734
+ SearchSecondTypeEnum2[SearchSecondTypeEnum2["Favorite"] = 3] = "Favorite";
9735
+ return SearchSecondTypeEnum2;
9736
+ })(SearchSecondTypeEnum || {});
9737
+
9738
+ // src/api/account/index.ts
9739
+ var OrderTypeEnum = /* @__PURE__ */ ((OrderTypeEnum2) => {
9740
+ OrderTypeEnum2[OrderTypeEnum2["Market"] = 0] = "Market";
9741
+ OrderTypeEnum2[OrderTypeEnum2["Limit"] = 1] = "Limit";
9742
+ OrderTypeEnum2[OrderTypeEnum2["Stop"] = 2] = "Stop";
9743
+ OrderTypeEnum2[OrderTypeEnum2["Conditional"] = 3] = "Conditional";
9744
+ return OrderTypeEnum2;
9745
+ })(OrderTypeEnum || {});
9746
+ var OperationEnum = /* @__PURE__ */ ((OperationEnum2) => {
9747
+ OperationEnum2[OperationEnum2["Increase"] = 0] = "Increase";
9748
+ OperationEnum2[OperationEnum2["Decrease"] = 1] = "Decrease";
9749
+ return OperationEnum2;
9750
+ })(OperationEnum || {});
9751
+ var TriggerTypeEnum = /* @__PURE__ */ ((TriggerTypeEnum2) => {
9752
+ TriggerTypeEnum2[TriggerTypeEnum2["Unknown"] = 0] = "Unknown";
9753
+ TriggerTypeEnum2[TriggerTypeEnum2["GTE"] = 1] = "GTE";
9754
+ TriggerTypeEnum2[TriggerTypeEnum2["LTE"] = 2] = "LTE";
9755
+ return TriggerTypeEnum2;
9756
+ })(TriggerTypeEnum || {});
9757
+ var DirectionEnum = /* @__PURE__ */ ((DirectionEnum2) => {
9758
+ DirectionEnum2[DirectionEnum2["Long"] = 0] = "Long";
9759
+ DirectionEnum2[DirectionEnum2["Short"] = 1] = "Short";
9760
+ return DirectionEnum2;
9761
+ })(DirectionEnum || {});
9762
+ var OrderStatusEnum = /* @__PURE__ */ ((OrderStatusEnum2) => {
9763
+ OrderStatusEnum2[OrderStatusEnum2["Cancelled"] = 1] = "Cancelled";
9764
+ OrderStatusEnum2[OrderStatusEnum2["Expired"] = 2] = "Expired";
9765
+ OrderStatusEnum2[OrderStatusEnum2["Successful"] = 9] = "Successful";
9766
+ return OrderStatusEnum2;
9767
+ })(OrderStatusEnum || {});
9768
+ var ExecTypeEnum = /* @__PURE__ */ ((ExecTypeEnum2) => {
9769
+ ExecTypeEnum2[ExecTypeEnum2["UserEntrust"] = 0] = "UserEntrust";
9770
+ ExecTypeEnum2[ExecTypeEnum2["Liquidation"] = 1] = "Liquidation";
9771
+ ExecTypeEnum2[ExecTypeEnum2["Adl"] = 2] = "Adl";
9772
+ ExecTypeEnum2[ExecTypeEnum2["AdlTrigger"] = 3] = "AdlTrigger";
9773
+ return ExecTypeEnum2;
9774
+ })(ExecTypeEnum || {});
9775
+ var getHistoryOrders = async ({
9776
+ accessToken,
9777
+ ...params
9778
+ }) => {
9779
+ return http.get(
9780
+ `${baseUrl}/openapi/gateway/scan/order/closed`,
9781
+ params,
9782
+ {
9783
+ headers: {
9784
+ myx_openapi_access_token: accessToken
9785
+ }
9786
+ }
9787
+ );
9788
+ };
9789
+ var getPositionHistory = async ({
9790
+ accessToken,
9791
+ ...params
9792
+ }) => {
9793
+ return http.get(
9794
+ `${baseUrl}/openapi/gateway/scan/position/closed`,
9795
+ params,
9796
+ {
9797
+ headers: {
9798
+ myx_openapi_access_token: accessToken
9799
+ }
9800
+ }
9801
+ );
9802
+ };
9803
+ var getTradeFlow = async ({
9804
+ accessToken,
9805
+ ...params
9806
+ }) => {
9807
+ return http.get(
9808
+ `${baseUrl}/openapi/gateway/scan/trade/flow`,
9809
+ params,
9810
+ {
9811
+ headers: {
9812
+ myx_openapi_access_token: accessToken
9813
+ }
9814
+ }
9815
+ );
9816
+ };
9735
9817
 
9736
9818
  // src/api/index.ts
9737
9819
  var baseUrl = "https://api-test.myx.cash";
@@ -9830,6 +9912,80 @@ var getAllTickers = async () => {
9830
9912
  `${baseUrl}/v2/mx-gateway/quote/candle/all_tickers`
9831
9913
  );
9832
9914
  };
9915
+ var searchMarketAuth = async ({
9916
+ accessToken,
9917
+ ...params
9918
+ }) => {
9919
+ return http.get(
9920
+ `${baseUrl}/openapi/gateway/scan/market/ac-search`,
9921
+ params,
9922
+ {
9923
+ headers: {
9924
+ myx_openapi_access_token: accessToken
9925
+ }
9926
+ }
9927
+ );
9928
+ };
9929
+ var searchMarket = async ({ ...params }) => {
9930
+ return http.get(
9931
+ `${baseUrl}/openapi/gateway/scan/market/search`,
9932
+ params
9933
+ );
9934
+ };
9935
+ var addFavorite = async ({
9936
+ accessToken,
9937
+ ...params
9938
+ }) => {
9939
+ return http.get(
9940
+ `${baseUrl}/openapi/gateway/scan/market/add-favorites`,
9941
+ params,
9942
+ {
9943
+ headers: {
9944
+ myx_openapi_access_token: accessToken
9945
+ }
9946
+ }
9947
+ );
9948
+ };
9949
+ var removeFavorite = async ({
9950
+ accessToken,
9951
+ ...params
9952
+ }) => {
9953
+ return http.get(
9954
+ `${baseUrl}/openapi/gateway/scan/market/cancel-favorites`,
9955
+ params,
9956
+ {
9957
+ headers: {
9958
+ myx_openapi_access_token: accessToken
9959
+ }
9960
+ }
9961
+ );
9962
+ };
9963
+ var getFavoritesList = async ({
9964
+ accessToken,
9965
+ ...params
9966
+ }) => {
9967
+ return http.get(
9968
+ `${baseUrl}/openapi/gateway/scan/market/favorites`,
9969
+ params,
9970
+ {
9971
+ headers: {
9972
+ myx_openapi_access_token: accessToken
9973
+ }
9974
+ }
9975
+ );
9976
+ };
9977
+ var getBaseDetail = async (params) => {
9978
+ return http.get(
9979
+ `${baseUrl}/openapi/gateway/scan/market/base-details`,
9980
+ params
9981
+ );
9982
+ };
9983
+ var getMarketDetail = async (params) => {
9984
+ return http.get(
9985
+ `${baseUrl}/openapi/gateway/scan/market/detail`,
9986
+ params
9987
+ );
9988
+ };
9833
9989
 
9834
9990
  // src/common/price.ts
9835
9991
  var import_lodash_es2 = require("lodash-es");
@@ -10720,7 +10876,10 @@ var getMarketInfo = (chainId2) => {
10720
10876
  const marketId2 = Market[chainId2].marketId;
10721
10877
  return marketId2;
10722
10878
  };
10723
- var getMarketPoolId = async ({ chainId: chainId2, baseToken }) => {
10879
+ var getMarketPoolId = async ({
10880
+ chainId: chainId2,
10881
+ baseToken
10882
+ }) => {
10724
10883
  try {
10725
10884
  const marketId2 = getMarketInfo(chainId2);
10726
10885
  if (!baseToken) {
@@ -10752,7 +10911,6 @@ var getMarketPools = async (chainId2) => {
10752
10911
  var getPoolInfo2 = async (chainId2, poolId, marketPrice = 0n) => {
10753
10912
  try {
10754
10913
  const contract = await getDataProviderContract(chainId2);
10755
- console.log("DataProvider.getPoolInfo,", poolId, marketPrice);
10756
10914
  const request = await contract.getPoolInfo(poolId, marketPrice);
10757
10915
  const info = {
10758
10916
  quotePool: {
@@ -10777,6 +10935,12 @@ var getPoolInfo2 = async (chainId2, poolId, marketPrice = 0n) => {
10777
10935
  nextFundingRate: request.fundingInfo.nextFundingRate,
10778
10936
  lastFundingFeeTracker: request.fundingInfo.lastFundingFeeTracker,
10779
10937
  nextEpochTime: request.fundingInfo.nextEpochTime
10938
+ },
10939
+ ioTracker: {
10940
+ tracker: request.oi.tracker,
10941
+ longSize: request.oi.longSize,
10942
+ shortSize: request.oi.shortSize,
10943
+ poolEntryPrice: request.oi.poolEntryPrice
10780
10944
  }
10781
10945
  };
10782
10946
  console.log(info);
@@ -10896,6 +11060,51 @@ var cancelTpSl = async (params) => {
10896
11060
  }
10897
11061
  };
10898
11062
 
11063
+ // src/common/tokenInfo.ts
11064
+ var import_ethers22 = require("ethers");
11065
+ async function checkImageExists(url) {
11066
+ try {
11067
+ const res = await fetch(url, { method: "HEAD" });
11068
+ return res.ok;
11069
+ } catch {
11070
+ return false;
11071
+ }
11072
+ }
11073
+ var getTokenInfo = async (chainId2, tokenAddress, account) => {
11074
+ try {
11075
+ const token = await getTokenContract(chainId2, tokenAddress);
11076
+ const _name = await token.name();
11077
+ console.log(_name);
11078
+ const [name, symbol, decimals, totalSupply] = await Promise.all([
11079
+ token.name(),
11080
+ token.symbol(),
11081
+ token.decimals(),
11082
+ token.totalSupply()
11083
+ ]);
11084
+ const normalized = import_ethers22.ethers.getAddress(tokenAddress);
11085
+ const iconUrl = `https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/${chainId2}/assets/${normalized}/logo.png`;
11086
+ const fallbackIcon = "";
11087
+ const icon = await checkImageExists(iconUrl) ? iconUrl : fallbackIcon;
11088
+ let balance;
11089
+ if (account) {
11090
+ const rawBalance = await token.balanceOf(account);
11091
+ balance = Number(import_ethers22.ethers.formatUnits(rawBalance, decimals));
11092
+ }
11093
+ return {
11094
+ address: tokenAddress,
11095
+ name,
11096
+ symbol,
11097
+ decimals,
11098
+ icon,
11099
+ totalSupply: Number(import_ethers22.ethers.formatUnits(totalSupply, decimals)),
11100
+ ...account ? { balance } : {}
11101
+ };
11102
+ } catch (e) {
11103
+ console.error(e);
11104
+ throw e;
11105
+ }
11106
+ };
11107
+
10899
11108
  // src/lp/market/index.ts
10900
11109
  var market_exports = {};
10901
11110
  __export(market_exports, {
@@ -10934,7 +11143,7 @@ var getOracleFee = async (chainId2, marketId2) => {
10934
11143
  };
10935
11144
 
10936
11145
  // src/lp/pool/reprime.ts
10937
- var import_ethers22 = require("ethers");
11146
+ var import_ethers23 = require("ethers");
10938
11147
  var reprime = async (chainId2, poolId) => {
10939
11148
  try {
10940
11149
  await checkParams({ chainId: chainId2 });
@@ -10948,14 +11157,14 @@ var reprime = async (chainId2, poolId) => {
10948
11157
  if (!_amount) {
10949
11158
  throw new Error("Invalid Market");
10950
11159
  }
10951
- console.log(Number((0, import_ethers22.formatUnits)(_amount, pool.quoteDecimals)));
11160
+ console.log(Number((0, import_ethers23.formatUnits)(_amount, pool.quoteDecimals)));
10952
11161
  await checkParams({
10953
11162
  tokenAddress: pool.quoteToken,
10954
11163
  contractAddress: address_default[chainId2].ORACLE_RESERVE,
10955
11164
  decimals: pool.quoteDecimals,
10956
11165
  account,
10957
11166
  chainId: chainId2,
10958
- amount: Number((0, import_ethers22.formatUnits)(_amount, pool.quoteDecimals))
11167
+ amount: Number((0, import_ethers23.formatUnits)(_amount, pool.quoteDecimals))
10959
11168
  });
10960
11169
  const chainInfo = CHAIN_INFO[chainId2];
10961
11170
  const contract = await getPoolManagerContract(chainId2);
@@ -11005,7 +11214,7 @@ var TriggerType = /* @__PURE__ */ ((TriggerType3) => {
11005
11214
  })(TriggerType || {});
11006
11215
 
11007
11216
  // src/lp/index.ts
11008
- var import_ethers23 = require("ethers");
11217
+ var import_ethers24 = require("ethers");
11009
11218
 
11010
11219
  // src/manager/subscription/websocket/socket.ts
11011
11220
  var import_mitt = __toESM(require("mitt"));
@@ -11913,6 +12122,88 @@ var Markets = class {
11913
12122
  /**
11914
12123
  * ticker end
11915
12124
  */
12125
+ /**
12126
+ * search by access token
12127
+ * (only for authenticated users)
12128
+ *
12129
+ */
12130
+ async searchMarketAuth(params) {
12131
+ const accessToken = await this.configManager.getAccessToken();
12132
+ if (!accessToken) {
12133
+ throw new MyxSDKError(
12134
+ "INVALID_ACCESS_TOKEN" /* InvalidAccessToken */,
12135
+ "Invalid access token"
12136
+ );
12137
+ }
12138
+ return (await searchMarketAuth({
12139
+ ...params,
12140
+ accessToken
12141
+ })).data;
12142
+ }
12143
+ /**
12144
+ * search by unauthenticated users
12145
+ */
12146
+ async searchMarket(params) {
12147
+ return (await searchMarket(params)).data;
12148
+ }
12149
+ /**
12150
+ * get favorites list
12151
+ * (only for authenticated users)
12152
+ */
12153
+ async getFavoritesList(params) {
12154
+ const accessToken = await this.configManager.getAccessToken();
12155
+ if (!accessToken) {
12156
+ throw new MyxSDKError(
12157
+ "INVALID_ACCESS_TOKEN" /* InvalidAccessToken */,
12158
+ "Invalid access token"
12159
+ );
12160
+ }
12161
+ return (await getFavoritesList({
12162
+ ...params,
12163
+ accessToken
12164
+ })).data;
12165
+ }
12166
+ /**
12167
+ * favorite
12168
+ */
12169
+ async addFavorite(params) {
12170
+ const accessToken = await this.configManager.getAccessToken();
12171
+ if (!accessToken) {
12172
+ throw new MyxSDKError(
12173
+ "INVALID_ACCESS_TOKEN" /* InvalidAccessToken */,
12174
+ "Invalid access token"
12175
+ );
12176
+ }
12177
+ return (await addFavorite({
12178
+ ...params,
12179
+ accessToken
12180
+ })).data;
12181
+ }
12182
+ async removeFavorite(params) {
12183
+ const accessToken = await this.configManager.getAccessToken();
12184
+ if (!accessToken) {
12185
+ throw new MyxSDKError(
12186
+ "INVALID_ACCESS_TOKEN" /* InvalidAccessToken */,
12187
+ "Invalid access token"
12188
+ );
12189
+ }
12190
+ return (await removeFavorite({
12191
+ ...params,
12192
+ accessToken
12193
+ })).data;
12194
+ }
12195
+ /**
12196
+ * base detail
12197
+ */
12198
+ async getBaseDetail(params) {
12199
+ return (await getBaseDetail(params)).data;
12200
+ }
12201
+ /**
12202
+ * get market detail
12203
+ */
12204
+ async getMarketDetail(params) {
12205
+ return (await getMarketDetail(params)).data;
12206
+ }
11916
12207
  };
11917
12208
 
11918
12209
  // src/config/address/index.ts
@@ -11926,7 +12217,7 @@ var getContractAddressByChainId = (chainId2) => {
11926
12217
  };
11927
12218
 
11928
12219
  // src/manager/position/index.ts
11929
- var import_ethers24 = require("ethers");
12220
+ var import_ethers25 = require("ethers");
11930
12221
  var Position = class {
11931
12222
  constructor(configManager, logger, utils) {
11932
12223
  this.configManager = configManager;
@@ -11956,6 +12247,20 @@ var Position = class {
11956
12247
  };
11957
12248
  }
11958
12249
  }
12250
+ async getPositionHistory(params) {
12251
+ const accessToken = await this.configManager.getAccessToken();
12252
+ if (!accessToken) {
12253
+ throw new MyxSDKError(
12254
+ "INVALID_ACCESS_TOKEN" /* InvalidAccessToken */,
12255
+ "Invalid access token"
12256
+ );
12257
+ }
12258
+ const res = await getPositionHistory({ accessToken, ...params });
12259
+ return {
12260
+ code: 0,
12261
+ data: res.data
12262
+ };
12263
+ }
11959
12264
  /**
11960
12265
  * @desc temp skip eip7702
11961
12266
  * @todo adjustCollateral 调整保证金
@@ -12097,7 +12402,7 @@ var Position = class {
12097
12402
  }
12098
12403
  const updateParams = {
12099
12404
  poolId,
12100
- referencePrice: import_ethers24.ethers.parseUnits(priceData?.price ?? "0", 30),
12405
+ referencePrice: import_ethers25.ethers.parseUnits(priceData?.price ?? "0", 30),
12101
12406
  oracleUpdateData: priceData?.vaa ?? "0",
12102
12407
  publishTime: priceData.publishTime
12103
12408
  };
@@ -12119,12 +12424,12 @@ var Position = class {
12119
12424
  if (needsApproval) {
12120
12425
  this.logger.debug("adjust collateral approve-->", {
12121
12426
  quoteToken,
12122
- amount: import_ethers24.ethers.MaxUint256.toString(),
12427
+ amount: import_ethers25.ethers.MaxUint256.toString(),
12123
12428
  spenderAddress: contractAddress.POSITION_MANAGER
12124
12429
  });
12125
12430
  const approvalResult = await this.utils.approveAuthorization({
12126
12431
  quoteAddress: quoteToken,
12127
- amount: import_ethers24.ethers.MaxUint256.toString(),
12432
+ amount: import_ethers25.ethers.MaxUint256.toString(),
12128
12433
  spenderAddress: contractAddress.POSITION_MANAGER
12129
12434
  });
12130
12435
  if (approvalResult.code !== 0) {
@@ -12240,7 +12545,9 @@ var Order = class {
12240
12545
  params.chainId,
12241
12546
  config.signer
12242
12547
  );
12243
- const networkFee = await this.utils.getNetworkFee(params.executionFeeToken);
12548
+ const networkFee = await this.utils.getNetworkFee(
12549
+ params.executionFeeToken
12550
+ );
12244
12551
  const collateralWithNetworkFee = BigInt(params.collateralAmount) + BigInt(networkFee);
12245
12552
  console.log("createIncreaseOrder params--->", {
12246
12553
  user: params.address,
@@ -12354,7 +12661,9 @@ var Order = class {
12354
12661
  params.chainId,
12355
12662
  config.signer
12356
12663
  );
12357
- const networkFee = await this.utils.getNetworkFee(params.executionFeeToken);
12664
+ const networkFee = await this.utils.getNetworkFee(
12665
+ params.executionFeeToken
12666
+ );
12358
12667
  const collateralWithNetworkFee = BigInt(params.collateralAmount) + BigInt(networkFee);
12359
12668
  console.log("createDecreaseOrder", params);
12360
12669
  console.log("createDecreaseOrder params--->", {
@@ -12465,7 +12774,9 @@ var Order = class {
12465
12774
  config.signer
12466
12775
  );
12467
12776
  try {
12468
- const networkFee = await this.utils.getNetworkFee(params.executionFeeToken);
12777
+ const networkFee = await this.utils.getNetworkFee(
12778
+ params.executionFeeToken
12779
+ );
12469
12780
  if (params.tpSize !== "0" && params.slSize !== "0") {
12470
12781
  const data2 = [
12471
12782
  {
@@ -12515,16 +12826,16 @@ var Order = class {
12515
12826
  ];
12516
12827
  console.log("createPositionTpSlOrder data--->", data2);
12517
12828
  const gasLimit2 = await brokerContract.placeOrders.estimateGas(data2);
12518
- const transaction2 = await brokerContract.placeOrders(
12519
- data2,
12520
- {
12521
- gasLimit: gasLimit2 * 120n / 100n
12522
- }
12523
- );
12829
+ const transaction2 = await brokerContract.placeOrders(data2, {
12830
+ gasLimit: gasLimit2 * 120n / 100n
12831
+ });
12524
12832
  this.logger.info("Transaction sent:", transaction2.hash);
12525
12833
  this.logger.info("Waiting for confirmation...");
12526
12834
  const receipt2 = await transaction2.wait();
12527
- this.logger.info("Transaction confirmed in block:", receipt2?.blockNumber);
12835
+ this.logger.info(
12836
+ "Transaction confirmed in block:",
12837
+ receipt2?.blockNumber
12838
+ );
12528
12839
  this.logger.info("createDecreaseOrder receipt--->", receipt2);
12529
12840
  const orderId2 = this.utils.getOrderIdFromTransaction(receipt2);
12530
12841
  const result2 = {
@@ -12572,16 +12883,16 @@ var Order = class {
12572
12883
  };
12573
12884
  console.log("createPositionTpSlOrder data--->", data);
12574
12885
  const gasLimit = await brokerContract.placeOrder.estimateGas(data);
12575
- const transaction = await brokerContract.placeOrder(
12576
- data,
12577
- {
12578
- gasLimit: gasLimit * 120n / 100n
12579
- }
12580
- );
12886
+ const transaction = await brokerContract.placeOrder(data, {
12887
+ gasLimit: gasLimit * 120n / 100n
12888
+ });
12581
12889
  this.logger.info("Transaction sent:", transaction.hash);
12582
12890
  this.logger.info("Waiting for confirmation...");
12583
12891
  const receipt = await transaction.wait();
12584
- this.logger.info("Transaction confirmed in block:", receipt?.blockNumber);
12892
+ this.logger.info(
12893
+ "Transaction confirmed in block:",
12894
+ receipt?.blockNumber
12895
+ );
12585
12896
  this.logger.info("createDecreaseOrder receipt--->", receipt);
12586
12897
  const orderId = this.utils.getOrderIdFromTransaction(receipt);
12587
12898
  const result = {
@@ -12724,10 +13035,24 @@ var Order = class {
12724
13035
  };
12725
13036
  }
12726
13037
  }
13038
+ async getOrderHistory(params) {
13039
+ const accessToken = await this.configManager.getAccessToken();
13040
+ if (!accessToken) {
13041
+ throw new MyxSDKError(
13042
+ "INVALID_ACCESS_TOKEN" /* InvalidAccessToken */,
13043
+ "Invalid access token"
13044
+ );
13045
+ }
13046
+ const res = await getHistoryOrders({ accessToken, ...params });
13047
+ return {
13048
+ code: 0,
13049
+ data: res.data
13050
+ };
13051
+ }
12727
13052
  };
12728
13053
 
12729
13054
  // src/manager/utils/index.ts
12730
- var import_ethers25 = require("ethers");
13055
+ var import_ethers26 = require("ethers");
12731
13056
 
12732
13057
  // src/abi/Emiter.json
12733
13058
  var Emiter_default = [
@@ -16409,7 +16734,7 @@ var Utils = class {
16409
16734
  if (!receipt || !receipt.logs) {
16410
16735
  return null;
16411
16736
  }
16412
- const emiterInterface = new import_ethers25.ethers.Interface(Emiter_default);
16737
+ const emiterInterface = new import_ethers26.ethers.Interface(Emiter_default);
16413
16738
  const orderPlacedEvent = Emiter_default.find(
16414
16739
  (item) => item.type === "event" && item.name === "OrderPlaced"
16415
16740
  );
@@ -16417,7 +16742,7 @@ var Utils = class {
16417
16742
  this.logger.error("OrderPlaced event not found in Emiter ABI");
16418
16743
  return null;
16419
16744
  }
16420
- const eventTopic = import_ethers25.ethers.id(
16745
+ const eventTopic = import_ethers26.ethers.id(
16421
16746
  "OrderPlaced(address,address,bytes32,uint256,uint256,uint8,uint8,uint8,uint8,uint256,uint256,uint256,uint8,bool,uint16,address,uint256,uint16)"
16422
16747
  );
16423
16748
  this.logger.info("Looking for OrderPlaced events with topic:", eventTopic);
@@ -16461,7 +16786,7 @@ var Utils = class {
16461
16786
  const config = this.configManager.getConfig();
16462
16787
  const owner = await config.signer.getAddress();
16463
16788
  const spender = spenderAddress ?? getContractAddressByChainId(config.chainId).ORDER_MANAGER;
16464
- const tokenContract = new import_ethers25.ethers.Contract(
16789
+ const tokenContract = new import_ethers26.ethers.Contract(
16465
16790
  quoteAddress,
16466
16791
  erc20Abi,
16467
16792
  config.signer
@@ -16483,8 +16808,8 @@ var Utils = class {
16483
16808
  spenderAddress
16484
16809
  );
16485
16810
  const currentAllowance = currentAllowanceRes.data;
16486
- const allowanceBigInt = import_ethers25.ethers.getBigInt(currentAllowance);
16487
- const requiredBigInt = import_ethers25.ethers.getBigInt(requiredAmount);
16811
+ const allowanceBigInt = import_ethers26.ethers.getBigInt(currentAllowance);
16812
+ const requiredBigInt = import_ethers26.ethers.getBigInt(requiredAmount);
16488
16813
  const needsApproval = allowanceBigInt < requiredBigInt;
16489
16814
  return needsApproval;
16490
16815
  } catch (error) {
@@ -16502,12 +16827,12 @@ var Utils = class {
16502
16827
  "function approve(address spender, uint256 amount) external returns (bool)"
16503
16828
  ];
16504
16829
  const config = this.configManager.getConfig();
16505
- const usdcContract = new import_ethers25.ethers.Contract(
16830
+ const usdcContract = new import_ethers26.ethers.Contract(
16506
16831
  quoteAddress,
16507
16832
  erc20Abi,
16508
16833
  config.signer
16509
16834
  );
16510
- const approveAmount = amount ?? import_ethers25.ethers.MaxUint256;
16835
+ const approveAmount = amount ?? import_ethers26.ethers.MaxUint256;
16511
16836
  const spender = spenderAddress ?? getContractAddressByChainId(config.chainId).ORDER_MANAGER;
16512
16837
  const tx = await usdcContract.approve(spender, approveAmount);
16513
16838
  await tx.wait();
@@ -16529,7 +16854,7 @@ var Utils = class {
16529
16854
  const orderManagerAddress = getContractAddressByChainId(
16530
16855
  config.chainId
16531
16856
  ).ORDER_MANAGER;
16532
- const orderManagerContract = new import_ethers25.ethers.Contract(
16857
+ const orderManagerContract = new import_ethers26.ethers.Contract(
16533
16858
  orderManagerAddress,
16534
16859
  OrderManager_default,
16535
16860
  config.signer
@@ -16609,7 +16934,7 @@ var Utils = class {
16609
16934
  };
16610
16935
 
16611
16936
  // src/manager/account/index.ts
16612
- var import_ethers26 = require("ethers");
16937
+ var import_ethers27 = require("ethers");
16613
16938
 
16614
16939
  // src/abi/Account.json
16615
16940
  var Account_default = [
@@ -17242,27 +17567,13 @@ var Account = class {
17242
17567
  this.logger = logger;
17243
17568
  this.utils = utils;
17244
17569
  }
17245
- /**
17246
- * get locked assets
17247
- */
17248
- async getUserAssets() {
17249
- const config = this.configManager.getConfig();
17250
- const contractAddress = getContractAddressByChainId(config.chainId);
17251
- const accountContract = new import_ethers26.ethers.Contract(
17252
- contractAddress.Account,
17253
- Account_default,
17254
- config.signer
17255
- );
17256
- const assets = await accountContract.getUserAssets(config.signer.getAddress());
17257
- return assets;
17258
- }
17259
17570
  /**
17260
17571
  * get tradable amount
17261
17572
  */
17262
17573
  async getTradableAmount({ poolId }) {
17263
17574
  const config = this.configManager.getConfig();
17264
17575
  const contractAddress = getContractAddressByChainId(config.chainId);
17265
- const accountContract = new import_ethers26.ethers.Contract(
17576
+ const accountContract = new import_ethers27.ethers.Contract(
17266
17577
  contractAddress.Account,
17267
17578
  Account_default,
17268
17579
  config.signer
@@ -17270,10 +17581,24 @@ var Account = class {
17270
17581
  const assets = await accountContract.getTradableAmount(config.signer.getAddress(), poolId);
17271
17582
  return assets;
17272
17583
  }
17584
+ async getTradeFlow(params) {
17585
+ const accessToken = await this.configManager.getAccessToken();
17586
+ if (!accessToken) {
17587
+ throw new MyxSDKError(
17588
+ "INVALID_ACCESS_TOKEN" /* InvalidAccessToken */,
17589
+ "Invalid access token"
17590
+ );
17591
+ }
17592
+ const res = await getTradeFlow({ accessToken, ...params });
17593
+ return {
17594
+ code: 0,
17595
+ data: res.data
17596
+ };
17597
+ }
17273
17598
  };
17274
17599
 
17275
17600
  // src/manager/index.ts
17276
- var import_ethers27 = require("ethers");
17601
+ var import_ethers28 = require("ethers");
17277
17602
  var MyxClient = class {
17278
17603
  /**
17279
17604
  * 获取配置管理器(用于访问 accessToken 相关方法)
@@ -17294,7 +17619,7 @@ var MyxClient = class {
17294
17619
  this.subscription = new SubScription(this.configManager, this.logger);
17295
17620
  const lp = MxSDK.getInstance();
17296
17621
  if (options.walletClient?.transport) {
17297
- const provider = new import_ethers27.BrowserProvider(options.walletClient?.transport);
17622
+ const provider = new import_ethers28.BrowserProvider(options.walletClient?.transport);
17298
17623
  if (provider) {
17299
17624
  lp.setProvider(provider);
17300
17625
  }
@@ -17306,20 +17631,33 @@ var MyxClient = class {
17306
17631
  0 && (module.exports = {
17307
17632
  COMMON_LP_AMOUNT_DECIMALS,
17308
17633
  COMMON_PRICE_DECIMALS,
17634
+ ChainId,
17309
17635
  Direction,
17636
+ DirectionEnum,
17310
17637
  ErrorCode,
17638
+ ExecTypeEnum,
17311
17639
  HttpKlineIntervalEnum,
17312
17640
  Market,
17641
+ MarketCapType,
17313
17642
  MarketPoolState,
17643
+ MarketType,
17314
17644
  MyxClient,
17645
+ OperationEnum,
17315
17646
  OperationType,
17316
17647
  OracleType,
17317
17648
  OrderStatus,
17649
+ OrderStatusEnum,
17318
17650
  OrderType,
17651
+ OrderTypeEnum,
17652
+ SearchSecondTypeEnum,
17653
+ SearchTypeEnum,
17319
17654
  TimeInForce,
17320
17655
  TriggerType,
17656
+ TriggerTypeEnum,
17657
+ addFavorite,
17321
17658
  approve,
17322
17659
  base,
17660
+ baseUrl,
17323
17661
  bigintAmountSlipperCalculator,
17324
17662
  bigintTradingGasPriceWithRatio,
17325
17663
  bigintTradingGasToRatioCalculator,
@@ -17327,22 +17665,32 @@ var MyxClient = class {
17327
17665
  getAllTickers,
17328
17666
  getAllowanceApproved,
17329
17667
  getBalanceOf,
17668
+ getBaseDetail,
17669
+ getFavoritesList,
17670
+ getHistoryOrders,
17330
17671
  getKlineData,
17331
17672
  getKlineLatestBar,
17673
+ getMarketDetail,
17332
17674
  getOraclePrice,
17333
17675
  getOrders,
17334
17676
  getPoolDetail,
17335
17677
  getPoolLevelConfig,
17336
17678
  getPoolOpenOrders,
17337
17679
  getPools,
17680
+ getPositionHistory,
17338
17681
  getPositions,
17339
17682
  getPriceData,
17340
17683
  getPricesData,
17341
17684
  getTickerData,
17685
+ getTokenInfo,
17686
+ getTradeFlow,
17342
17687
  market,
17343
17688
  parseUnits,
17344
17689
  pool,
17345
- quote
17690
+ quote,
17691
+ removeFavorite,
17692
+ searchMarket,
17693
+ searchMarketAuth
17346
17694
  });
17347
17695
  /**
17348
17696
  * MyxLogger