@sodax/sdk 0.0.1-rc.32 → 0.0.1-rc.34

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.cjs CHANGED
@@ -6141,6 +6141,12 @@ var FEE_PERCENTAGE_SCALE = 10000n;
6141
6141
  var STELLAR_PRIORITY_FEE = "10000";
6142
6142
  var STELLAR_DEFAULT_TX_TIMEOUT_SECONDS = 100;
6143
6143
  var DEFAULT_DEADLINE_OFFSET = 300n;
6144
+ var DEFAULT_BACKEND_API_ENDPOINT = "https://apiv1.coolify.iconblockchain.xyz";
6145
+ var DEFAULT_BACKEND_API_TIMEOUT = 3e4;
6146
+ var DEFAULT_BACKEND_API_HEADERS = {
6147
+ "Content-Type": "application/json",
6148
+ Accept: "application/json"
6149
+ };
6144
6150
  var VAULT_TOKEN_DECIMALS = 18;
6145
6151
  var INTENT_RELAY_CHAIN_IDS = {
6146
6152
  AVAX: 6n,
@@ -6378,6 +6384,7 @@ var hubChainConfig = {
6378
6384
  icxMigration: "0x8294DE9fc60F5ABCc19245E5857071d7C42B9875",
6379
6385
  balnSwap: "0x610a90B61b89a98b954d5750E94834Aa45d08d10",
6380
6386
  sodaToken: "0x7c7d53eecda37a87ce0d5bf8e0b24512a48dc963"
6387
+ // SODA token on Sonic
6381
6388
  },
6382
6389
  nativeToken: "0x0000000000000000000000000000000000000000",
6383
6390
  wrappedNativeToken: "0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38",
@@ -6476,6 +6483,13 @@ var spokeChainConfig = {
6476
6483
  decimals: 6,
6477
6484
  address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
6478
6485
  xChainId: types.SOLANA_MAINNET_CHAIN_ID
6486
+ },
6487
+ SODA: {
6488
+ symbol: "SODA",
6489
+ name: "SODAX",
6490
+ decimals: 9,
6491
+ address: "8Bj8gSbga8My8qRkT1RrvgxFBExiGFgdRNHFaR9o2T3Q",
6492
+ xChainId: types.SOLANA_MAINNET_CHAIN_ID
6479
6493
  }
6480
6494
  },
6481
6495
  gasPrice: "500000",
@@ -6522,6 +6536,13 @@ var spokeChainConfig = {
6522
6536
  decimals: 6,
6523
6537
  address: "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",
6524
6538
  xChainId: types.AVALANCHE_MAINNET_CHAIN_ID
6539
+ },
6540
+ SODA: {
6541
+ symbol: "SODA",
6542
+ name: "SODAX",
6543
+ decimals: 18,
6544
+ address: "0x390ceed555905ec225Da330A188EA04e85570f00",
6545
+ xChainId: types.AVALANCHE_MAINNET_CHAIN_ID
6525
6546
  }
6526
6547
  }
6527
6548
  },
@@ -6551,6 +6572,13 @@ var spokeChainConfig = {
6551
6572
  decimals: 18,
6552
6573
  address: "0x043fb7e23350Dd5b77dE5E228B528763DEcb9131",
6553
6574
  xChainId: types.NIBIRU_MAINNET_CHAIN_ID
6575
+ },
6576
+ SODA: {
6577
+ symbol: "SODA",
6578
+ name: "SODAX",
6579
+ decimals: 18,
6580
+ address: "0x5bda87f18109CA85fa7ADDf1D48B97734e9dc6F5",
6581
+ xChainId: types.NIBIRU_MAINNET_CHAIN_ID
6554
6582
  }
6555
6583
  }
6556
6584
  },
@@ -6622,6 +6650,13 @@ var spokeChainConfig = {
6622
6650
  decimals: 6,
6623
6651
  address: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
6624
6652
  xChainId: types.ARBITRUM_MAINNET_CHAIN_ID
6653
+ },
6654
+ SODA: {
6655
+ symbol: "SODA",
6656
+ name: "SODAX",
6657
+ decimals: 18,
6658
+ address: "0x6958a4CBFe11406E2a1c1d3a71A1971aD8B3b92F",
6659
+ xChainId: types.ARBITRUM_MAINNET_CHAIN_ID
6625
6660
  }
6626
6661
  }
6627
6662
  },
@@ -6679,6 +6714,13 @@ var spokeChainConfig = {
6679
6714
  decimals: 8,
6680
6715
  address: "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf",
6681
6716
  xChainId: types.BASE_MAINNET_CHAIN_ID
6717
+ },
6718
+ SODA: {
6719
+ symbol: "SODA",
6720
+ name: "SODAX",
6721
+ decimals: 18,
6722
+ address: "0xdc5B4b00F98347E95b9F94911213DAB4C687e1e3",
6723
+ xChainId: types.BASE_MAINNET_CHAIN_ID
6682
6724
  }
6683
6725
  }
6684
6726
  },
@@ -6736,6 +6778,13 @@ var spokeChainConfig = {
6736
6778
  decimals: 6,
6737
6779
  address: "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58",
6738
6780
  xChainId: types.OPTIMISM_MAINNET_CHAIN_ID
6781
+ },
6782
+ SODA: {
6783
+ symbol: "SODA",
6784
+ name: "SODAX",
6785
+ decimals: 18,
6786
+ address: "0x1f22279C89B213944b7Ea41daCB0a868DdCDFd13",
6787
+ xChainId: types.OPTIMISM_MAINNET_CHAIN_ID
6739
6788
  }
6740
6789
  }
6741
6790
  },
@@ -6786,6 +6835,13 @@ var spokeChainConfig = {
6786
6835
  decimals: 18,
6787
6836
  address: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
6788
6837
  xChainId: types.BSC_MAINNET_CHAIN_ID
6838
+ },
6839
+ SODA: {
6840
+ symbol: "SODA",
6841
+ name: "SODAX",
6842
+ decimals: 18,
6843
+ address: "0xdc5B4b00F98347E95b9F94911213DAB4C687e1e3",
6844
+ xChainId: types.BSC_MAINNET_CHAIN_ID
6789
6845
  }
6790
6846
  }
6791
6847
  },
@@ -6822,6 +6878,13 @@ var spokeChainConfig = {
6822
6878
  decimals: 6,
6823
6879
  address: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
6824
6880
  xChainId: types.POLYGON_MAINNET_CHAIN_ID
6881
+ },
6882
+ SODA: {
6883
+ symbol: "SODA",
6884
+ name: "SODAX",
6885
+ decimals: 18,
6886
+ address: "0xDDF645F33eDAD18fC23E01416eD0267A1bF59D45",
6887
+ xChainId: types.POLYGON_MAINNET_CHAIN_ID
6825
6888
  }
6826
6889
  }
6827
6890
  },
@@ -6862,6 +6925,13 @@ var spokeChainConfig = {
6862
6925
  decimals: 6,
6863
6926
  address: "ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E",
6864
6927
  xChainId: types.INJECTIVE_MAINNET_CHAIN_ID
6928
+ },
6929
+ SODA: {
6930
+ symbol: "SODA",
6931
+ name: "SODAX",
6932
+ decimals: 18,
6933
+ address: "factory/inj1d036ftaatxpkqsu9hja8r24rv3v33chz3appxp/soda",
6934
+ xChainId: types.INJECTIVE_MAINNET_CHAIN_ID
6865
6935
  }
6866
6936
  },
6867
6937
  gasPrice: "500000000inj",
@@ -6907,6 +6977,13 @@ var spokeChainConfig = {
6907
6977
  decimals: 18,
6908
6978
  address: "CCT4ZYIYZ3TUO2AWQFEOFGBZ6HQP3GW5TA37CK7CRZVFRDXYTHTYX7KP",
6909
6979
  xChainId: types.STELLAR_MAINNET_CHAIN_ID
6980
+ },
6981
+ SODA: {
6982
+ symbol: "SODA",
6983
+ name: "SODAX",
6984
+ decimals: 7,
6985
+ address: "CAH5LKJC2ZB4RVUVEVL2QWJWNJLHQE2UF767ILLQ5EQ4O3OURR2XIUGM",
6986
+ xChainId: types.STELLAR_MAINNET_CHAIN_ID
6910
6987
  }
6911
6988
  },
6912
6989
  nativeToken: "CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA",
@@ -6998,6 +7075,13 @@ var spokeChainConfig = {
6998
7075
  decimals: 9,
6999
7076
  address: "0x502867b177303bf1bf226245fcdd3403c177e78d175a55a56c0602c7ff51c7fa::trevin_sui::TREVIN_SUI",
7000
7077
  xChainId: types.SUI_MAINNET_CHAIN_ID
7078
+ },
7079
+ SODA: {
7080
+ symbol: "SODA",
7081
+ name: "SODAX",
7082
+ decimals: 9,
7083
+ address: "0x0a0393721732617a2a771535e83c0a46f04aeef7d03239bbbb1249bc0981b952::soda::SODA",
7084
+ xChainId: types.SUI_MAINNET_CHAIN_ID
7001
7085
  }
7002
7086
  },
7003
7087
  nativeToken: "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
@@ -7391,6 +7475,13 @@ var hubAssets = {
7391
7475
  symbol: "bnUSD",
7392
7476
  name: "bnUSD",
7393
7477
  vault: hubVaults.bnUSD.address
7478
+ },
7479
+ [spokeChainConfig[types.AVALANCHE_MAINNET_CHAIN_ID].supportedTokens.SODA.address]: {
7480
+ asset: "0xf51d7082375cdca8C19C74e1A0c77dA482aFDa4e",
7481
+ decimal: 18,
7482
+ symbol: "SODA",
7483
+ name: "SODAX",
7484
+ vault: hubVaults.sodaSODA.address
7394
7485
  }
7395
7486
  },
7396
7487
  [types.ARBITRUM_MAINNET_CHAIN_ID]: {
@@ -7451,6 +7542,13 @@ var hubAssets = {
7451
7542
  symbol: "bnUSD",
7452
7543
  name: "bnUSD",
7453
7544
  vault: hubVaults.bnUSD.address
7545
+ },
7546
+ [spokeChainConfig[types.ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.SODA.address]: {
7547
+ asset: "0x93a367E5B37a1B9E8D04ef25a6Af40d181a3DfFF",
7548
+ decimal: 18,
7549
+ symbol: "SODA",
7550
+ name: "SODAX",
7551
+ vault: hubVaults.sodaSODA.address
7454
7552
  }
7455
7553
  },
7456
7554
  [types.BASE_MAINNET_CHAIN_ID]: {
@@ -7497,6 +7595,13 @@ var hubAssets = {
7497
7595
  name: "Wrapped Staked Ethereum",
7498
7596
  vault: "0x"
7499
7597
  // no vault yet
7598
+ },
7599
+ [spokeChainConfig[types.BASE_MAINNET_CHAIN_ID].supportedTokens.SODA.address]: {
7600
+ asset: "0x17fF8Ad5EBe6CA8B15751067cD0c89f0E580CD17",
7601
+ decimal: 18,
7602
+ symbol: "SODA",
7603
+ name: "SODAX",
7604
+ vault: hubVaults.sodaSODA.address
7500
7605
  }
7501
7606
  },
7502
7607
  [types.OPTIMISM_MAINNET_CHAIN_ID]: {
@@ -7543,6 +7648,13 @@ var hubAssets = {
7543
7648
  symbol: "USDT",
7544
7649
  name: "Tether USD",
7545
7650
  vault: hubVaults.sodaUSDT.address
7651
+ },
7652
+ [spokeChainConfig[types.OPTIMISM_MAINNET_CHAIN_ID].supportedTokens.SODA.address]: {
7653
+ asset: "0x0eD0d274dC77ef460DC96b9fBaFF3EDB074e0471",
7654
+ decimal: 18,
7655
+ symbol: "SODA",
7656
+ name: "SODAX",
7657
+ vault: hubVaults.sodaSODA.address
7546
7658
  }
7547
7659
  },
7548
7660
  [types.NIBIRU_MAINNET_CHAIN_ID]: {
@@ -7559,6 +7671,13 @@ var hubAssets = {
7559
7671
  symbol: "bnUSD",
7560
7672
  name: "bnUSD",
7561
7673
  vault: hubVaults.bnUSD.address
7674
+ },
7675
+ [spokeChainConfig[types.NIBIRU_MAINNET_CHAIN_ID].supportedTokens.SODA.address]: {
7676
+ asset: "0x26cd76cB5622Dc8638670A16E0Da5a51394A8DB1",
7677
+ decimal: 18,
7678
+ symbol: "SODA",
7679
+ name: "SODAX",
7680
+ vault: hubVaults.sodaSODA.address
7562
7681
  }
7563
7682
  },
7564
7683
  [types.BSC_MAINNET_CHAIN_ID]: {
@@ -7596,6 +7715,13 @@ var hubAssets = {
7596
7715
  symbol: "USDC",
7597
7716
  name: "USD Coin",
7598
7717
  vault: hubVaults.sodaUSDC.address
7718
+ },
7719
+ [spokeChainConfig[types.BSC_MAINNET_CHAIN_ID].supportedTokens.SODA.address]: {
7720
+ asset: "0x4d12c72A8633588097D10e57b559ed642588e4C6",
7721
+ decimal: 18,
7722
+ symbol: "SODA",
7723
+ name: "SODAX",
7724
+ vault: hubVaults.sodaSODA.address
7599
7725
  }
7600
7726
  },
7601
7727
  [types.POLYGON_MAINNET_CHAIN_ID]: {
@@ -7619,6 +7745,13 @@ var hubAssets = {
7619
7745
  symbol: "USDC",
7620
7746
  name: "USD Coin",
7621
7747
  vault: hubVaults.sodaUSDC.address
7748
+ },
7749
+ [spokeChainConfig[types.POLYGON_MAINNET_CHAIN_ID].supportedTokens.SODA.address]: {
7750
+ asset: "0x8D78A620E009Ba751Eb40d77A5e9Db48A3F2016b",
7751
+ decimal: 18,
7752
+ symbol: "SODA",
7753
+ name: "SODAX",
7754
+ vault: hubVaults.sodaSODA.address
7622
7755
  }
7623
7756
  },
7624
7757
  [types.INJECTIVE_MAINNET_CHAIN_ID]: {
@@ -7642,6 +7775,13 @@ var hubAssets = {
7642
7775
  symbol: "USDC",
7643
7776
  name: "USD Coin",
7644
7777
  vault: hubVaults.sodaUSDC.address
7778
+ },
7779
+ [spokeChainConfig[types.INJECTIVE_MAINNET_CHAIN_ID].supportedTokens.SODA.address]: {
7780
+ asset: "0x20Ce75CdcEe44B1308365447b91B9c26e2b71Ffd",
7781
+ decimal: 18,
7782
+ symbol: "SODA",
7783
+ name: "SODAX",
7784
+ vault: hubVaults.sodaSODA.address
7645
7785
  }
7646
7786
  },
7647
7787
  [types.STELLAR_MAINNET_CHAIN_ID]: {
@@ -7672,6 +7812,13 @@ var hubAssets = {
7672
7812
  symbol: "legacybnUSD",
7673
7813
  name: "legacybnUSD",
7674
7814
  vault: hubVaults.IbnUSD.address
7815
+ },
7816
+ [spokeChainConfig[types.STELLAR_MAINNET_CHAIN_ID].supportedTokens.SODA.address]: {
7817
+ asset: "0xD749B5FfFED7cEDaa3239abDd16D677179C29AEc",
7818
+ decimal: 7,
7819
+ symbol: "SODA",
7820
+ name: "SODAX",
7821
+ vault: hubVaults.sodaSODA.address
7675
7822
  }
7676
7823
  },
7677
7824
  [types.SUI_MAINNET_CHAIN_ID]: {
@@ -7750,6 +7897,13 @@ var hubAssets = {
7750
7897
  symbol: "bnUSD",
7751
7898
  name: "legacybnUSD",
7752
7899
  vault: hubVaults.IbnUSD.address
7900
+ },
7901
+ [spokeChainConfig[types.SUI_MAINNET_CHAIN_ID].supportedTokens.SODA.address]: {
7902
+ asset: "0x5Db9CEc919f40C50809D9490DC3BbA4F05b0a1D7",
7903
+ decimal: 9,
7904
+ symbol: "SODA",
7905
+ name: "SODAX",
7906
+ vault: hubVaults.sodaSODA.address
7753
7907
  }
7754
7908
  },
7755
7909
  [types.SOLANA_MAINNET_CHAIN_ID]: {
@@ -7773,6 +7927,13 @@ var hubAssets = {
7773
7927
  symbol: "USDC",
7774
7928
  name: "USD Coin",
7775
7929
  vault: hubVaults.sodaUSDC.address
7930
+ },
7931
+ [spokeChainConfig[types.SOLANA_MAINNET_CHAIN_ID].supportedTokens.SODA.address]: {
7932
+ asset: "0x07Db7b1a96ebE474B20F52fF487cEE415adee79e",
7933
+ decimal: 9,
7934
+ symbol: "SODA",
7935
+ name: "SODAX",
7936
+ vault: hubVaults.sodaSODA.address
7776
7937
  }
7777
7938
  },
7778
7939
  [types.ICON_MAINNET_CHAIN_ID]: {
@@ -13086,6 +13247,23 @@ var MigrationService = class {
13086
13247
  invariant12__default.default(params.amount > 0n, "Amount must be greater than 0");
13087
13248
  invariant12__default.default(params.to.length > 0, "To address is required");
13088
13249
  invariant12__default.default(isIcxCreateRevertMigrationParams(params) || isUnifiedBnUSDMigrateParams(params), "Invalid params");
13250
+ if (isUnifiedBnUSDMigrateParams(params) && spokeProvider.chainConfig.chain.type === "EVM") {
13251
+ const evmSpokeProvider = spokeProvider;
13252
+ let spender;
13253
+ const wallet = await spokeProvider.walletProvider.getWalletAddress();
13254
+ if (spokeProvider instanceof SonicSpokeProvider) {
13255
+ spender = await SonicSpokeService.getUserRouter(wallet, spokeProvider);
13256
+ } else {
13257
+ spender = evmSpokeProvider.chainConfig.addresses.assetManager;
13258
+ }
13259
+ return await Erc20Service.isAllowanceValid(
13260
+ params.srcbnUSD,
13261
+ params.amount,
13262
+ wallet,
13263
+ spender,
13264
+ evmSpokeProvider
13265
+ );
13266
+ }
13089
13267
  if (spokeProvider instanceof SonicSpokeProvider && isIcxCreateRevertMigrationParams(params)) {
13090
13268
  const wallet = await spokeProvider.walletProvider.getWalletAddress();
13091
13269
  const userRouter = await SonicSpokeService.getUserRouter(wallet, spokeProvider);
@@ -13097,16 +13275,6 @@ var MigrationService = class {
13097
13275
  spokeProvider
13098
13276
  );
13099
13277
  }
13100
- if (isUnifiedBnUSDMigrateParams(params) && spokeProvider.chainConfig.chain.type === "EVM") {
13101
- const evmSpokeProvider = spokeProvider;
13102
- return await Erc20Service.isAllowanceValid(
13103
- params.srcbnUSD,
13104
- params.amount,
13105
- await evmSpokeProvider.walletProvider.getWalletAddress(),
13106
- evmSpokeProvider instanceof EvmSpokeProvider ? evmSpokeProvider.chainConfig.addresses.assetManager : evmSpokeProvider.chainConfig.bnUSD,
13107
- evmSpokeProvider
13108
- );
13109
- }
13110
13278
  }
13111
13279
  return {
13112
13280
  ok: false,
@@ -13167,14 +13335,20 @@ var MigrationService = class {
13167
13335
  invariant12__default.default(params.amount > 0n, "Amount must be greater than 0");
13168
13336
  invariant12__default.default(params.to.length > 0, "To address is required");
13169
13337
  invariant12__default.default(isIcxCreateRevertMigrationParams(params) || isUnifiedBnUSDMigrateParams(params), "Invalid params");
13170
- if (spokeProvider instanceof SonicSpokeProvider && isIcxCreateRevertMigrationParams(params)) {
13338
+ if (isUnifiedBnUSDMigrateParams(params) && spokeProvider.chainConfig.chain.type === "EVM") {
13339
+ const evmSpokeProvider = spokeProvider;
13340
+ let spender;
13171
13341
  const wallet = await spokeProvider.walletProvider.getWalletAddress();
13172
- const userRouter = await SonicSpokeService.getUserRouter(wallet, spokeProvider);
13342
+ if (spokeProvider instanceof SonicSpokeProvider) {
13343
+ spender = await SonicSpokeService.getUserRouter(wallet, spokeProvider);
13344
+ } else {
13345
+ spender = evmSpokeProvider.chainConfig.addresses.assetManager;
13346
+ }
13173
13347
  const result = await Erc20Service.approve(
13174
- this.hubProvider.chainConfig.addresses.sodaToken,
13348
+ params.srcbnUSD,
13175
13349
  params.amount,
13176
- userRouter,
13177
- spokeProvider,
13350
+ spender,
13351
+ evmSpokeProvider,
13178
13352
  raw
13179
13353
  );
13180
13354
  return {
@@ -13182,13 +13356,14 @@ var MigrationService = class {
13182
13356
  value: result
13183
13357
  };
13184
13358
  }
13185
- if (isUnifiedBnUSDMigrateParams(params) && spokeProvider.chainConfig.chain.type === "EVM") {
13186
- const evmSpokeProvider = spokeProvider;
13359
+ if (spokeProvider instanceof SonicSpokeProvider && isIcxCreateRevertMigrationParams(params)) {
13360
+ const wallet = await spokeProvider.walletProvider.getWalletAddress();
13361
+ const userRouter = await SonicSpokeService.getUserRouter(wallet, spokeProvider);
13187
13362
  const result = await Erc20Service.approve(
13188
- params.srcbnUSD,
13363
+ this.hubProvider.chainConfig.addresses.sodaToken,
13189
13364
  params.amount,
13190
- evmSpokeProvider instanceof EvmSpokeProvider ? evmSpokeProvider.chainConfig.addresses.assetManager : evmSpokeProvider.chainConfig.bnUSD,
13191
- evmSpokeProvider,
13365
+ userRouter,
13366
+ spokeProvider,
13192
13367
  raw
13193
13368
  );
13194
13369
  return {
@@ -14123,6 +14298,168 @@ var BalnSwapService = class {
14123
14298
  return spokeProvider.walletProvider.sendTransaction(tx);
14124
14299
  }
14125
14300
  };
14301
+
14302
+ // src/services/backend/BackendApiService.ts
14303
+ var BackendApiService = class {
14304
+ baseURL;
14305
+ defaultHeaders;
14306
+ timeout;
14307
+ constructor(config) {
14308
+ this.baseURL = config?.baseURL ?? DEFAULT_BACKEND_API_ENDPOINT;
14309
+ this.timeout = config?.timeout ?? DEFAULT_BACKEND_API_TIMEOUT;
14310
+ this.defaultHeaders = config?.headers ?? DEFAULT_BACKEND_API_HEADERS;
14311
+ }
14312
+ /**
14313
+ * Make HTTP request using fetch API
14314
+ * @param endpoint - API endpoint path
14315
+ * @param config - Request configuration
14316
+ * @returns Promise<T>
14317
+ */
14318
+ async makeRequest(endpoint, config) {
14319
+ const url = `${this.baseURL}${endpoint}`;
14320
+ const headers = { ...this.defaultHeaders, ...config.headers };
14321
+ const controller = new AbortController();
14322
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
14323
+ try {
14324
+ const response = await fetch(url, {
14325
+ method: config.method,
14326
+ headers,
14327
+ body: config.body,
14328
+ signal: controller.signal
14329
+ });
14330
+ clearTimeout(timeoutId);
14331
+ if (!response.ok) {
14332
+ const errorText = await response.text();
14333
+ throw new Error(`HTTP ${response.status}: ${errorText}`);
14334
+ }
14335
+ const data = await response.json();
14336
+ return data;
14337
+ } catch (error) {
14338
+ clearTimeout(timeoutId);
14339
+ if (error instanceof Error) {
14340
+ if (error.name === "AbortError") {
14341
+ throw new Error(`Request timeout after ${this.timeout}ms`);
14342
+ }
14343
+ console.error("[BackendApiService] Request error:", error.message);
14344
+ throw error;
14345
+ }
14346
+ console.error("[BackendApiService] Unknown error:", error);
14347
+ throw new Error("Unknown error occurred");
14348
+ }
14349
+ }
14350
+ // Intent endpoints
14351
+ /**
14352
+ * Get intent details by transaction hash
14353
+ * @param txHash - Transaction hash
14354
+ * @returns Promise<IntentResponse>
14355
+ */
14356
+ async getIntentByTxHash(txHash) {
14357
+ return this.makeRequest(`/intent/tx/${txHash}`, { method: "GET" });
14358
+ }
14359
+ /**
14360
+ * Get intent details by intent hash
14361
+ * @param intentHash - Intent hash
14362
+ * @returns Promise<IntentResponse>
14363
+ */
14364
+ async getIntentByHash(intentHash) {
14365
+ return this.makeRequest(`/intent/${intentHash}`, { method: "GET" });
14366
+ }
14367
+ // Solver endpoints
14368
+ /**
14369
+ * Get the solver orderbook
14370
+ * @param params - Object containing offset and limit parameters for pagination
14371
+ * @returns Promise<OrderbookResponse>
14372
+ */
14373
+ async getOrderbook(params) {
14374
+ const queryParams = new URLSearchParams();
14375
+ queryParams.append("offset", params.offset);
14376
+ queryParams.append("limit", params.limit);
14377
+ const queryString = queryParams.toString();
14378
+ const endpoint = `/solver/orderbook?${queryString}`;
14379
+ return this.makeRequest(endpoint, { method: "GET" });
14380
+ }
14381
+ // Money Market endpoints
14382
+ /**
14383
+ * Get money market position for a specific user
14384
+ * @param userAddress - User's wallet address
14385
+ * @returns Promise<MoneyMarketPosition>
14386
+ */
14387
+ async getMoneyMarketPosition(userAddress) {
14388
+ return this.makeRequest(`/moneymarket/position/${userAddress}`, { method: "GET" });
14389
+ }
14390
+ /**
14391
+ * Get all money market assets
14392
+ * @returns Promise<MoneyMarketAsset[]>
14393
+ */
14394
+ async getAllMoneyMarketAssets() {
14395
+ return this.makeRequest("/moneymarket/asset/all", { method: "GET" });
14396
+ }
14397
+ /**
14398
+ * Get specific money market asset details
14399
+ * @param reserveAddress - Reserve contract address
14400
+ * @returns Promise<MoneyMarketAsset>
14401
+ */
14402
+ async getMoneyMarketAsset(reserveAddress) {
14403
+ return this.makeRequest(`/moneymarket/asset/${reserveAddress}`, { method: "GET" });
14404
+ }
14405
+ /**
14406
+ * Get borrowers for a specific money market asset
14407
+ * @param reserveAddress - Reserve contract address
14408
+ * @param params - Object containing offset and limit parameters for pagination
14409
+ * @returns Promise<MoneyMarketAssetBorrowers>
14410
+ */
14411
+ async getMoneyMarketAssetBorrowers(reserveAddress, params) {
14412
+ const queryParams = new URLSearchParams();
14413
+ queryParams.append("offset", params.offset);
14414
+ queryParams.append("limit", params.limit);
14415
+ const queryString = queryParams.toString();
14416
+ const endpoint = `/moneymarket/asset/${reserveAddress}/borrowers?${queryString}`;
14417
+ return this.makeRequest(endpoint, { method: "GET" });
14418
+ }
14419
+ /**
14420
+ * Get suppliers for a specific money market asset
14421
+ * @param reserveAddress - Reserve contract address
14422
+ * @param params - Object containing offset and limit parameters for pagination
14423
+ * @returns Promise<MoneyMarketAssetSuppliers>
14424
+ */
14425
+ async getMoneyMarketAssetSuppliers(reserveAddress, params) {
14426
+ const queryParams = new URLSearchParams();
14427
+ queryParams.append("offset", params.offset);
14428
+ queryParams.append("limit", params.limit);
14429
+ const queryString = queryParams.toString();
14430
+ const endpoint = `/moneymarket/asset/${reserveAddress}/suppliers?${queryString}`;
14431
+ return this.makeRequest(endpoint, { method: "GET" });
14432
+ }
14433
+ /**
14434
+ * Get all money market borrowers
14435
+ * @param params - Object containing offset and limit parameters for pagination
14436
+ * @returns Promise<MoneyMarketBorrowers>
14437
+ */
14438
+ async getAllMoneyMarketBorrowers(params) {
14439
+ const queryParams = new URLSearchParams();
14440
+ queryParams.append("offset", params.offset);
14441
+ queryParams.append("limit", params.limit);
14442
+ const queryString = queryParams.toString();
14443
+ const endpoint = `/moneymarket/borrowers?${queryString}`;
14444
+ return this.makeRequest(endpoint, { method: "GET" });
14445
+ }
14446
+ /**
14447
+ * Set custom headers for API requests
14448
+ * @param headers - Object containing header key-value pairs
14449
+ */
14450
+ setHeaders(headers) {
14451
+ Object.entries(headers).forEach(([key, value]) => {
14452
+ this.defaultHeaders[key] = value;
14453
+ });
14454
+ }
14455
+ /**
14456
+ * Get the current base URL
14457
+ * @returns string
14458
+ */
14459
+ getBaseURL() {
14460
+ return this.baseURL;
14461
+ }
14462
+ };
14126
14463
  var BridgeService = class {
14127
14464
  hubProvider;
14128
14465
  relayerApiEndpoint;
@@ -14624,6 +14961,8 @@ var Sodax = class {
14624
14961
  // Money Market service enabling cross-chain lending and borrowing
14625
14962
  migration;
14626
14963
  // ICX migration service enabling ICX migration to SODA
14964
+ backendApiService;
14965
+ // backend API service enabling backend API endpoints
14627
14966
  bridge;
14628
14967
  // Bridge service enabling cross-chain transfers
14629
14968
  hubProvider;
@@ -14638,6 +14977,7 @@ var Sodax = class {
14638
14977
  this.moneyMarket = config && config.moneyMarket ? new MoneyMarketService(config.moneyMarket, this.hubProvider, this.relayerApiEndpoint) : new MoneyMarketService(void 0, this.hubProvider, this.relayerApiEndpoint);
14639
14978
  this.migration = config && config.migration ? new MigrationService(this.hubProvider, config.migration) : new MigrationService(this.hubProvider);
14640
14979
  this.bridge = config && config.bridge ? new BridgeService(this.hubProvider, this.relayerApiEndpoint, config.bridge) : new BridgeService(this.hubProvider, this.relayerApiEndpoint);
14980
+ this.backendApiService = new BackendApiService(config?.backendApiConfig);
14641
14981
  }
14642
14982
  };
14643
14983
 
@@ -17466,12 +17806,16 @@ var SolverIntentErrorCode = /* @__PURE__ */ ((SolverIntentErrorCode2) => {
17466
17806
  return SolverIntentErrorCode2;
17467
17807
  })(SolverIntentErrorCode || {});
17468
17808
 
17809
+ exports.BackendApiService = BackendApiService;
17469
17810
  exports.BalnSwapService = BalnSwapService;
17470
17811
  exports.BigIntToHex = BigIntToHex;
17471
17812
  exports.BigNumberZeroDecimal = BigNumberZeroDecimal;
17472
17813
  exports.BnUSDMigrationService = BnUSDMigrationService;
17473
17814
  exports.BridgeService = BridgeService;
17474
17815
  exports.ChainIdToIntentRelayChainId = ChainIdToIntentRelayChainId;
17816
+ exports.DEFAULT_BACKEND_API_ENDPOINT = DEFAULT_BACKEND_API_ENDPOINT;
17817
+ exports.DEFAULT_BACKEND_API_HEADERS = DEFAULT_BACKEND_API_HEADERS;
17818
+ exports.DEFAULT_BACKEND_API_TIMEOUT = DEFAULT_BACKEND_API_TIMEOUT;
17475
17819
  exports.DEFAULT_DEADLINE_OFFSET = DEFAULT_DEADLINE_OFFSET;
17476
17820
  exports.DEFAULT_MAX_RETRY = DEFAULT_MAX_RETRY;
17477
17821
  exports.DEFAULT_RELAYER_API_ENDPOINT = DEFAULT_RELAYER_API_ENDPOINT;