@strkfarm/sdk 2.0.0-dev.19 → 2.0.0-dev.20

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.
@@ -4744,11 +4744,13 @@ var ExtendedWrapper = class {
4744
4744
  * @param marketName - The name of the market to get funding rates for
4745
4745
  * @returns The funding rates for the specified market
4746
4746
  */
4747
- async getFundingRates(marketName, side) {
4747
+ async getFundingRates(marketName, side, startTime, endTime) {
4748
+ const endTimeParam = endTime !== void 0 ? `&end_time=${endTime}` : "";
4749
+ const startTimeParam = startTime !== void 0 ? `&start_time=${startTime}` : "";
4748
4750
  return this.makeRequest(
4749
4751
  `/api/v1/markets/funding-rates?market_name=${encodeURIComponent(
4750
4752
  marketName
4751
- )}&side=${encodeURIComponent(side)}`
4753
+ )}&side=${encodeURIComponent(side)}${startTimeParam}${endTimeParam}`
4752
4754
  );
4753
4755
  }
4754
4756
  };
@@ -29637,8 +29639,8 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
29637
29639
  super(config, _ExtendedAdapter.name, Protocols.EXTENDED);
29638
29640
  this.config = config;
29639
29641
  const client = new wrapper_default({
29640
- baseUrl: this.config.extendedBackendUrl,
29641
- apiKey: this.config.extendedApiKey,
29642
+ baseUrl: this.config.extendedBackendWriteUrl,
29643
+ apiKey: "",
29642
29644
  timeout: this.config.extendedTimeout,
29643
29645
  retries: this.config.extendedRetries
29644
29646
  });
@@ -29649,11 +29651,8 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
29649
29651
  //abstract means the method has no implementation in this class; instead, child classes must implement it.
29650
29652
  async getAPY(supportedPosition) {
29651
29653
  const side = supportedPosition.isDebt ? "LONG" : "SHORT";
29652
- const fundingRates = await this.client.getFundingRates(
29653
- this.config.extendedMarketName,
29654
- side
29655
- );
29656
- if (fundingRates.status !== "OK") {
29654
+ const fundingRates = await this.getFundingRates(side);
29655
+ if (!fundingRates.success) {
29657
29656
  logger.error("error getting funding rates", fundingRates);
29658
29657
  return { apy: 0, type: "base" /* BASE */ };
29659
29658
  }
@@ -29661,10 +29660,26 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
29661
29660
  const apy = Number(fundingRate.f) * 365 * 24;
29662
29661
  return { apy, type: "base" /* BASE */ };
29663
29662
  }
29664
- async getPosition(supportedPosition) {
29665
- if (!this.client) {
29666
- throw new Error("Client not initialized");
29663
+ async getFundingRates(side, startTime, endTime) {
29664
+ try {
29665
+ const response = await axios9.get(`${this.config.extendedBackendReadUrl}/fundingRates/${this.config.extendedMarketName}/${side}`, {
29666
+ params: {
29667
+ startTime: startTime ? startTime.toString() : void 0,
29668
+ endTime: endTime ? endTime.toString() : void 0
29669
+ }
29670
+ });
29671
+ if (!response.data.success) {
29672
+ logger.error("error getting funding rates", response.data);
29673
+ return { success: false, data: [] };
29674
+ }
29675
+ logger.info("success getting funding rates", response.data.data);
29676
+ return { success: true, data: response.data.data };
29677
+ } catch (err) {
29678
+ logger.error("error getting funding rates", err);
29679
+ return { success: false, data: [] };
29667
29680
  }
29681
+ }
29682
+ async getPosition(supportedPosition) {
29668
29683
  const holdings = await this.getExtendedDepositAmount();
29669
29684
  if (!holdings) {
29670
29685
  throw new Error("No position found");
@@ -30034,22 +30049,18 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
30034
30049
  }
30035
30050
  async getExtendedDepositAmount() {
30036
30051
  try {
30037
- if (this.client === null) {
30038
- logger.error("error initializing client - client is null");
30039
- return void 0;
30040
- }
30041
- const result = await this.client.getHoldings();
30042
- if (!result) {
30052
+ const result = await axios9.get(`${this.config.extendedBackendReadUrl}/holdings`);
30053
+ if (!result.data) {
30043
30054
  logger.error("error getting holdings - API returned null/undefined");
30044
30055
  return void 0;
30045
30056
  }
30046
- if (result.status && result.status !== "OK") {
30057
+ if (!result.data.success) {
30047
30058
  logger.error(
30048
30059
  `error getting holdings - API returned status: ${result.status}`
30049
30060
  );
30050
30061
  return void 0;
30051
30062
  }
30052
- const holdings = result.data;
30063
+ const holdings = result.data.data;
30053
30064
  if (!holdings) {
30054
30065
  logger.warn(
30055
30066
  "holdings data is null/undefined - treating as zero balance"
@@ -30087,29 +30098,32 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
30087
30098
  return false;
30088
30099
  }
30089
30100
  async getAllOpenPositions() {
30090
- if (this.client === null) {
30091
- logger.error("error initializing client");
30092
- return null;
30093
- }
30094
- const response = await this.client.getPositionsForMarket(
30095
- this.config.extendedMarketName
30096
- );
30097
- if (response.status === "OK") {
30098
- if (response.data.length === 0) {
30099
- return [];
30100
- } else {
30101
- return response.data;
30101
+ try {
30102
+ const response = await axios9.get(`${this.config.extendedBackendReadUrl}/positions`);
30103
+ if (response.data.success) {
30104
+ if (response.data.data.length === 0) {
30105
+ return [];
30106
+ } else {
30107
+ return response.data.data;
30108
+ }
30102
30109
  }
30110
+ return null;
30111
+ } catch (err) {
30112
+ logger.error("error getting all open positions", err);
30113
+ return null;
30103
30114
  }
30104
- return null;
30105
30115
  }
30106
30116
  async getOrderHistory(marketName) {
30107
- if (this.client === null) {
30108
- logger.error("error initializing client");
30117
+ try {
30118
+ const result = await axios9.get(`${this.config.extendedBackendReadUrl}/marketOrders/${marketName}`);
30119
+ if (!result.data.success) {
30120
+ return null;
30121
+ }
30122
+ return result.data.data;
30123
+ } catch (err) {
30124
+ logger.error("error getting order history", err);
30109
30125
  return null;
30110
30126
  }
30111
- const result = await this.client.getOrderHistory(marketName);
30112
- return result.data;
30113
30127
  }
30114
30128
  async getOrderStatus(orderId, marketName) {
30115
30129
  try {
@@ -34378,7 +34392,7 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
34378
34392
  WALLET_ADDRESS,
34379
34393
  usdceToken.decimals
34380
34394
  );
34381
- logger.info(`${_VesuExtendedMultiplierStrategy.name}::moveAssetsToVaultAllocator walletBalance: ${walletBalance.toNumber()}`);
34395
+ logger.info(`${_VesuExtendedMultiplierStrategy.name}::moveAssetsToVaultAllocator walletBalance: ${walletBalance}`);
34382
34396
  const amountToBeTransferred = amount.minimum(walletBalance);
34383
34397
  logger.info(`${_VesuExtendedMultiplierStrategy.name}::moveAssetsToVaultAllocator amountToBeTransferred: ${amountToBeTransferred.toNumber()}`);
34384
34398
  if (amountToBeTransferred.lessThan(0)) {
@@ -35398,7 +35412,7 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
35398
35412
  ];
35399
35413
  }
35400
35414
  };
35401
- function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
35415
+ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1, extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
35402
35416
  vaultSettings.leafAdapters = [];
35403
35417
  const wbtcToken = Global.getDefaultTokens().find(
35404
35418
  (token) => token.symbol === lstSymbol
@@ -35433,8 +35447,8 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1, e
35433
35447
  ],
35434
35448
  vaultIdExtended,
35435
35449
  extendedContract: EXTENDED_CONTRACT,
35436
- extendedBackendUrl,
35437
- extendedApiKey,
35450
+ extendedBackendWriteUrl,
35451
+ extendedBackendReadUrl,
35438
35452
  extendedTimeout: 3e4,
35439
35453
  extendedRetries: 3,
35440
35454
  extendedBaseUrl: "https://api.starknet.extended.exchange",
@@ -35574,12 +35588,12 @@ var re7UsdcPrimeDevansh = {
35574
35588
  minimumWBTCDifferenceForAvnuSwap: MINIMUM_WBTC_DIFFERENCE_FOR_AVNU_SWAP,
35575
35589
  walletAddress: WALLET_ADDRESS
35576
35590
  };
35577
- var VesuExtendedTestStrategies = (extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) => {
35591
+ var VesuExtendedTestStrategies = (extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) => {
35578
35592
  return [
35579
- getStrategySettingsVesuExtended("WBTC", "USDC", re7UsdcPrimeDevansh, false, false, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing)
35593
+ getStrategySettingsVesuExtended("WBTC", "USDC", re7UsdcPrimeDevansh, false, false, extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing)
35580
35594
  ];
35581
35595
  };
35582
- function getStrategySettingsVesuExtended(lstSymbol, underlyingSymbol, addresses, isPreview = false, isLST, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
35596
+ function getStrategySettingsVesuExtended(lstSymbol, underlyingSymbol, addresses, isPreview = false, isLST, extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
35583
35597
  return {
35584
35598
  name: `Extended Test ${underlyingSymbol}`,
35585
35599
  description: getDescription2(lstSymbol, underlyingSymbol),
@@ -35587,7 +35601,7 @@ function getStrategySettingsVesuExtended(lstSymbol, underlyingSymbol, addresses,
35587
35601
  launchBlock: 0,
35588
35602
  type: "Other",
35589
35603
  depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === underlyingSymbol)],
35590
- additionalInfo: getLooperSettings2(lstSymbol, underlyingSymbol, addresses, VesuPools.Re7USDCPrime, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing),
35604
+ additionalInfo: getLooperSettings2(lstSymbol, underlyingSymbol, addresses, VesuPools.Re7USDCPrime, extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing),
35591
35605
  risk: {
35592
35606
  riskFactor: _riskFactor3,
35593
35607
  netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
package/dist/index.d.ts CHANGED
@@ -1393,7 +1393,7 @@ declare class ExtendedWrapper {
1393
1393
  * @param marketName - The name of the market to get funding rates for
1394
1394
  * @returns The funding rates for the specified market
1395
1395
  */
1396
- getFundingRates(marketName: string, side: string): Promise<ExtendedApiResponse<FundingRate[]>>;
1396
+ getFundingRates(marketName: string, side: string, startTime: number, endTime?: number): Promise<ExtendedApiResponse<FundingRate[]>>;
1397
1397
  }
1398
1398
 
1399
1399
  interface Route {
@@ -1470,8 +1470,8 @@ declare class AvnuAdapter extends BaseAdapter<DepositParams, WithdrawParams> {
1470
1470
  interface ExtendedAdapterConfig extends BaseAdapterConfig {
1471
1471
  vaultIdExtended: number;
1472
1472
  extendedContract: ContractAddr;
1473
- extendedBackendUrl: string;
1474
- extendedApiKey: string;
1473
+ extendedBackendReadUrl: string;
1474
+ extendedBackendWriteUrl: string;
1475
1475
  extendedTimeout: number;
1476
1476
  extendedRetries: number;
1477
1477
  extendedBaseUrl: string;
@@ -1488,6 +1488,10 @@ declare class ExtendedAdapter extends BaseAdapter<DepositParams, WithdrawParams>
1488
1488
  readonly minimumExtendedMovementAmount: number;
1489
1489
  constructor(config: ExtendedAdapterConfig);
1490
1490
  protected getAPY(supportedPosition: SupportedPosition): Promise<PositionAPY>;
1491
+ getFundingRates(side: string, startTime?: number, endTime?: number): Promise<{
1492
+ success: boolean;
1493
+ data: FundingRate[];
1494
+ }>;
1491
1495
  protected getPosition(supportedPosition: SupportedPosition): Promise<PositionAmount>;
1492
1496
  maxDeposit(amount?: Web3Number): Promise<PositionInfo>;
1493
1497
  maxWithdraw(): Promise<PositionInfo>;
@@ -2330,7 +2334,7 @@ declare class VesuExtendedMultiplierStrategy<S extends VesuExtendedStrategySetti
2330
2334
  usdValue: number;
2331
2335
  }[]>;
2332
2336
  }
2333
- declare const VesuExtendedTestStrategies: (extendedBackendUrl: string, extendedApiKey: string, vaultIdExtended: number, minimumExtendedMovementAmount: number, minimumVesuMovementAmount: number, minimumExtendedRetriesDelayForOrderStatus: number, minimumExtendedPriceDifferenceForSwapOpen: number, maximumExtendedPriceDifferenceForSwapClosing: number) => IStrategyMetadata<VesuExtendedStrategySettings>[];
2337
+ declare const VesuExtendedTestStrategies: (extendedBackendReadUrl: string, extendedBackendWriteUrl: string, vaultIdExtended: number, minimumExtendedMovementAmount: number, minimumVesuMovementAmount: number, minimumExtendedRetriesDelayForOrderStatus: number, minimumExtendedPriceDifferenceForSwapOpen: number, maximumExtendedPriceDifferenceForSwapClosing: number) => IStrategyMetadata<VesuExtendedStrategySettings>[];
2334
2338
 
2335
2339
  declare const AddressesConfig: {
2336
2340
  readonly tokens: {
package/dist/index.js CHANGED
@@ -29777,11 +29777,13 @@ var ExtendedWrapper = class {
29777
29777
  * @param marketName - The name of the market to get funding rates for
29778
29778
  * @returns The funding rates for the specified market
29779
29779
  */
29780
- async getFundingRates(marketName, side) {
29780
+ async getFundingRates(marketName, side, startTime, endTime) {
29781
+ const endTimeParam = endTime !== void 0 ? `&end_time=${endTime}` : "";
29782
+ const startTimeParam = startTime !== void 0 ? `&start_time=${startTime}` : "";
29781
29783
  return this.makeRequest(
29782
29784
  `/api/v1/markets/funding-rates?market_name=${encodeURIComponent(
29783
29785
  marketName
29784
- )}&side=${encodeURIComponent(side)}`
29786
+ )}&side=${encodeURIComponent(side)}${startTimeParam}${endTimeParam}`
29785
29787
  );
29786
29788
  }
29787
29789
  };
@@ -29794,8 +29796,8 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
29794
29796
  super(config, _ExtendedAdapter.name, Protocols.EXTENDED);
29795
29797
  this.config = config;
29796
29798
  const client = new wrapper_default({
29797
- baseUrl: this.config.extendedBackendUrl,
29798
- apiKey: this.config.extendedApiKey,
29799
+ baseUrl: this.config.extendedBackendWriteUrl,
29800
+ apiKey: "",
29799
29801
  timeout: this.config.extendedTimeout,
29800
29802
  retries: this.config.extendedRetries
29801
29803
  });
@@ -29806,11 +29808,8 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
29806
29808
  //abstract means the method has no implementation in this class; instead, child classes must implement it.
29807
29809
  async getAPY(supportedPosition) {
29808
29810
  const side = supportedPosition.isDebt ? "LONG" : "SHORT";
29809
- const fundingRates = await this.client.getFundingRates(
29810
- this.config.extendedMarketName,
29811
- side
29812
- );
29813
- if (fundingRates.status !== "OK") {
29811
+ const fundingRates = await this.getFundingRates(side);
29812
+ if (!fundingRates.success) {
29814
29813
  logger.error("error getting funding rates", fundingRates);
29815
29814
  return { apy: 0, type: "base" /* BASE */ };
29816
29815
  }
@@ -29818,10 +29817,26 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
29818
29817
  const apy = Number(fundingRate.f) * 365 * 24;
29819
29818
  return { apy, type: "base" /* BASE */ };
29820
29819
  }
29821
- async getPosition(supportedPosition) {
29822
- if (!this.client) {
29823
- throw new Error("Client not initialized");
29820
+ async getFundingRates(side, startTime, endTime) {
29821
+ try {
29822
+ const response = await import_axios8.default.get(`${this.config.extendedBackendReadUrl}/fundingRates/${this.config.extendedMarketName}/${side}`, {
29823
+ params: {
29824
+ startTime: startTime ? startTime.toString() : void 0,
29825
+ endTime: endTime ? endTime.toString() : void 0
29826
+ }
29827
+ });
29828
+ if (!response.data.success) {
29829
+ logger.error("error getting funding rates", response.data);
29830
+ return { success: false, data: [] };
29831
+ }
29832
+ logger.info("success getting funding rates", response.data.data);
29833
+ return { success: true, data: response.data.data };
29834
+ } catch (err) {
29835
+ logger.error("error getting funding rates", err);
29836
+ return { success: false, data: [] };
29824
29837
  }
29838
+ }
29839
+ async getPosition(supportedPosition) {
29825
29840
  const holdings = await this.getExtendedDepositAmount();
29826
29841
  if (!holdings) {
29827
29842
  throw new Error("No position found");
@@ -30191,22 +30206,18 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
30191
30206
  }
30192
30207
  async getExtendedDepositAmount() {
30193
30208
  try {
30194
- if (this.client === null) {
30195
- logger.error("error initializing client - client is null");
30196
- return void 0;
30197
- }
30198
- const result = await this.client.getHoldings();
30199
- if (!result) {
30209
+ const result = await import_axios8.default.get(`${this.config.extendedBackendReadUrl}/holdings`);
30210
+ if (!result.data) {
30200
30211
  logger.error("error getting holdings - API returned null/undefined");
30201
30212
  return void 0;
30202
30213
  }
30203
- if (result.status && result.status !== "OK") {
30214
+ if (!result.data.success) {
30204
30215
  logger.error(
30205
30216
  `error getting holdings - API returned status: ${result.status}`
30206
30217
  );
30207
30218
  return void 0;
30208
30219
  }
30209
- const holdings = result.data;
30220
+ const holdings = result.data.data;
30210
30221
  if (!holdings) {
30211
30222
  logger.warn(
30212
30223
  "holdings data is null/undefined - treating as zero balance"
@@ -30244,29 +30255,32 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
30244
30255
  return false;
30245
30256
  }
30246
30257
  async getAllOpenPositions() {
30247
- if (this.client === null) {
30248
- logger.error("error initializing client");
30249
- return null;
30250
- }
30251
- const response = await this.client.getPositionsForMarket(
30252
- this.config.extendedMarketName
30253
- );
30254
- if (response.status === "OK") {
30255
- if (response.data.length === 0) {
30256
- return [];
30257
- } else {
30258
- return response.data;
30258
+ try {
30259
+ const response = await import_axios8.default.get(`${this.config.extendedBackendReadUrl}/positions`);
30260
+ if (response.data.success) {
30261
+ if (response.data.data.length === 0) {
30262
+ return [];
30263
+ } else {
30264
+ return response.data.data;
30265
+ }
30259
30266
  }
30267
+ return null;
30268
+ } catch (err) {
30269
+ logger.error("error getting all open positions", err);
30270
+ return null;
30260
30271
  }
30261
- return null;
30262
30272
  }
30263
30273
  async getOrderHistory(marketName) {
30264
- if (this.client === null) {
30265
- logger.error("error initializing client");
30274
+ try {
30275
+ const result = await import_axios8.default.get(`${this.config.extendedBackendReadUrl}/marketOrders/${marketName}`);
30276
+ if (!result.data.success) {
30277
+ return null;
30278
+ }
30279
+ return result.data.data;
30280
+ } catch (err) {
30281
+ logger.error("error getting order history", err);
30266
30282
  return null;
30267
30283
  }
30268
- const result = await this.client.getOrderHistory(marketName);
30269
- return result.data;
30270
30284
  }
30271
30285
  async getOrderStatus(orderId, marketName) {
30272
30286
  try {
@@ -34535,7 +34549,7 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
34535
34549
  WALLET_ADDRESS,
34536
34550
  usdceToken.decimals
34537
34551
  );
34538
- logger.info(`${_VesuExtendedMultiplierStrategy.name}::moveAssetsToVaultAllocator walletBalance: ${walletBalance.toNumber()}`);
34552
+ logger.info(`${_VesuExtendedMultiplierStrategy.name}::moveAssetsToVaultAllocator walletBalance: ${walletBalance}`);
34539
34553
  const amountToBeTransferred = amount.minimum(walletBalance);
34540
34554
  logger.info(`${_VesuExtendedMultiplierStrategy.name}::moveAssetsToVaultAllocator amountToBeTransferred: ${amountToBeTransferred.toNumber()}`);
34541
34555
  if (amountToBeTransferred.lessThan(0)) {
@@ -35555,7 +35569,7 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
35555
35569
  ];
35556
35570
  }
35557
35571
  };
35558
- function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
35572
+ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1, extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
35559
35573
  vaultSettings.leafAdapters = [];
35560
35574
  const wbtcToken = Global.getDefaultTokens().find(
35561
35575
  (token) => token.symbol === lstSymbol
@@ -35590,8 +35604,8 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1, e
35590
35604
  ],
35591
35605
  vaultIdExtended,
35592
35606
  extendedContract: EXTENDED_CONTRACT,
35593
- extendedBackendUrl,
35594
- extendedApiKey,
35607
+ extendedBackendWriteUrl,
35608
+ extendedBackendReadUrl,
35595
35609
  extendedTimeout: 3e4,
35596
35610
  extendedRetries: 3,
35597
35611
  extendedBaseUrl: "https://api.starknet.extended.exchange",
@@ -35731,12 +35745,12 @@ var re7UsdcPrimeDevansh = {
35731
35745
  minimumWBTCDifferenceForAvnuSwap: MINIMUM_WBTC_DIFFERENCE_FOR_AVNU_SWAP,
35732
35746
  walletAddress: WALLET_ADDRESS
35733
35747
  };
35734
- var VesuExtendedTestStrategies = (extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) => {
35748
+ var VesuExtendedTestStrategies = (extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) => {
35735
35749
  return [
35736
- getStrategySettingsVesuExtended("WBTC", "USDC", re7UsdcPrimeDevansh, false, false, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing)
35750
+ getStrategySettingsVesuExtended("WBTC", "USDC", re7UsdcPrimeDevansh, false, false, extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing)
35737
35751
  ];
35738
35752
  };
35739
- function getStrategySettingsVesuExtended(lstSymbol, underlyingSymbol, addresses, isPreview = false, isLST, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
35753
+ function getStrategySettingsVesuExtended(lstSymbol, underlyingSymbol, addresses, isPreview = false, isLST, extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
35740
35754
  return {
35741
35755
  name: `Extended Test ${underlyingSymbol}`,
35742
35756
  description: getDescription2(lstSymbol, underlyingSymbol),
@@ -35744,7 +35758,7 @@ function getStrategySettingsVesuExtended(lstSymbol, underlyingSymbol, addresses,
35744
35758
  launchBlock: 0,
35745
35759
  type: "Other",
35746
35760
  depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === underlyingSymbol)],
35747
- additionalInfo: getLooperSettings2(lstSymbol, underlyingSymbol, addresses, VesuPools.Re7USDCPrime, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing),
35761
+ additionalInfo: getLooperSettings2(lstSymbol, underlyingSymbol, addresses, VesuPools.Re7USDCPrime, extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing),
35748
35762
  risk: {
35749
35763
  riskFactor: _riskFactor3,
35750
35764
  netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
package/dist/index.mjs CHANGED
@@ -29631,11 +29631,13 @@ var ExtendedWrapper = class {
29631
29631
  * @param marketName - The name of the market to get funding rates for
29632
29632
  * @returns The funding rates for the specified market
29633
29633
  */
29634
- async getFundingRates(marketName, side) {
29634
+ async getFundingRates(marketName, side, startTime, endTime) {
29635
+ const endTimeParam = endTime !== void 0 ? `&end_time=${endTime}` : "";
29636
+ const startTimeParam = startTime !== void 0 ? `&start_time=${startTime}` : "";
29635
29637
  return this.makeRequest(
29636
29638
  `/api/v1/markets/funding-rates?market_name=${encodeURIComponent(
29637
29639
  marketName
29638
- )}&side=${encodeURIComponent(side)}`
29640
+ )}&side=${encodeURIComponent(side)}${startTimeParam}${endTimeParam}`
29639
29641
  );
29640
29642
  }
29641
29643
  };
@@ -29648,8 +29650,8 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
29648
29650
  super(config, _ExtendedAdapter.name, Protocols.EXTENDED);
29649
29651
  this.config = config;
29650
29652
  const client = new wrapper_default({
29651
- baseUrl: this.config.extendedBackendUrl,
29652
- apiKey: this.config.extendedApiKey,
29653
+ baseUrl: this.config.extendedBackendWriteUrl,
29654
+ apiKey: "",
29653
29655
  timeout: this.config.extendedTimeout,
29654
29656
  retries: this.config.extendedRetries
29655
29657
  });
@@ -29660,11 +29662,8 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
29660
29662
  //abstract means the method has no implementation in this class; instead, child classes must implement it.
29661
29663
  async getAPY(supportedPosition) {
29662
29664
  const side = supportedPosition.isDebt ? "LONG" : "SHORT";
29663
- const fundingRates = await this.client.getFundingRates(
29664
- this.config.extendedMarketName,
29665
- side
29666
- );
29667
- if (fundingRates.status !== "OK") {
29665
+ const fundingRates = await this.getFundingRates(side);
29666
+ if (!fundingRates.success) {
29668
29667
  logger.error("error getting funding rates", fundingRates);
29669
29668
  return { apy: 0, type: "base" /* BASE */ };
29670
29669
  }
@@ -29672,10 +29671,26 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
29672
29671
  const apy = Number(fundingRate.f) * 365 * 24;
29673
29672
  return { apy, type: "base" /* BASE */ };
29674
29673
  }
29675
- async getPosition(supportedPosition) {
29676
- if (!this.client) {
29677
- throw new Error("Client not initialized");
29674
+ async getFundingRates(side, startTime, endTime) {
29675
+ try {
29676
+ const response = await axios8.get(`${this.config.extendedBackendReadUrl}/fundingRates/${this.config.extendedMarketName}/${side}`, {
29677
+ params: {
29678
+ startTime: startTime ? startTime.toString() : void 0,
29679
+ endTime: endTime ? endTime.toString() : void 0
29680
+ }
29681
+ });
29682
+ if (!response.data.success) {
29683
+ logger.error("error getting funding rates", response.data);
29684
+ return { success: false, data: [] };
29685
+ }
29686
+ logger.info("success getting funding rates", response.data.data);
29687
+ return { success: true, data: response.data.data };
29688
+ } catch (err) {
29689
+ logger.error("error getting funding rates", err);
29690
+ return { success: false, data: [] };
29678
29691
  }
29692
+ }
29693
+ async getPosition(supportedPosition) {
29679
29694
  const holdings = await this.getExtendedDepositAmount();
29680
29695
  if (!holdings) {
29681
29696
  throw new Error("No position found");
@@ -30045,22 +30060,18 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
30045
30060
  }
30046
30061
  async getExtendedDepositAmount() {
30047
30062
  try {
30048
- if (this.client === null) {
30049
- logger.error("error initializing client - client is null");
30050
- return void 0;
30051
- }
30052
- const result = await this.client.getHoldings();
30053
- if (!result) {
30063
+ const result = await axios8.get(`${this.config.extendedBackendReadUrl}/holdings`);
30064
+ if (!result.data) {
30054
30065
  logger.error("error getting holdings - API returned null/undefined");
30055
30066
  return void 0;
30056
30067
  }
30057
- if (result.status && result.status !== "OK") {
30068
+ if (!result.data.success) {
30058
30069
  logger.error(
30059
30070
  `error getting holdings - API returned status: ${result.status}`
30060
30071
  );
30061
30072
  return void 0;
30062
30073
  }
30063
- const holdings = result.data;
30074
+ const holdings = result.data.data;
30064
30075
  if (!holdings) {
30065
30076
  logger.warn(
30066
30077
  "holdings data is null/undefined - treating as zero balance"
@@ -30098,29 +30109,32 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
30098
30109
  return false;
30099
30110
  }
30100
30111
  async getAllOpenPositions() {
30101
- if (this.client === null) {
30102
- logger.error("error initializing client");
30103
- return null;
30104
- }
30105
- const response = await this.client.getPositionsForMarket(
30106
- this.config.extendedMarketName
30107
- );
30108
- if (response.status === "OK") {
30109
- if (response.data.length === 0) {
30110
- return [];
30111
- } else {
30112
- return response.data;
30112
+ try {
30113
+ const response = await axios8.get(`${this.config.extendedBackendReadUrl}/positions`);
30114
+ if (response.data.success) {
30115
+ if (response.data.data.length === 0) {
30116
+ return [];
30117
+ } else {
30118
+ return response.data.data;
30119
+ }
30113
30120
  }
30121
+ return null;
30122
+ } catch (err) {
30123
+ logger.error("error getting all open positions", err);
30124
+ return null;
30114
30125
  }
30115
- return null;
30116
30126
  }
30117
30127
  async getOrderHistory(marketName) {
30118
- if (this.client === null) {
30119
- logger.error("error initializing client");
30128
+ try {
30129
+ const result = await axios8.get(`${this.config.extendedBackendReadUrl}/marketOrders/${marketName}`);
30130
+ if (!result.data.success) {
30131
+ return null;
30132
+ }
30133
+ return result.data.data;
30134
+ } catch (err) {
30135
+ logger.error("error getting order history", err);
30120
30136
  return null;
30121
30137
  }
30122
- const result = await this.client.getOrderHistory(marketName);
30123
- return result.data;
30124
30138
  }
30125
30139
  async getOrderStatus(orderId, marketName) {
30126
30140
  try {
@@ -34389,7 +34403,7 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
34389
34403
  WALLET_ADDRESS,
34390
34404
  usdceToken.decimals
34391
34405
  );
34392
- logger.info(`${_VesuExtendedMultiplierStrategy.name}::moveAssetsToVaultAllocator walletBalance: ${walletBalance.toNumber()}`);
34406
+ logger.info(`${_VesuExtendedMultiplierStrategy.name}::moveAssetsToVaultAllocator walletBalance: ${walletBalance}`);
34393
34407
  const amountToBeTransferred = amount.minimum(walletBalance);
34394
34408
  logger.info(`${_VesuExtendedMultiplierStrategy.name}::moveAssetsToVaultAllocator amountToBeTransferred: ${amountToBeTransferred.toNumber()}`);
34395
34409
  if (amountToBeTransferred.lessThan(0)) {
@@ -35409,7 +35423,7 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
35409
35423
  ];
35410
35424
  }
35411
35425
  };
35412
- function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
35426
+ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1, extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
35413
35427
  vaultSettings.leafAdapters = [];
35414
35428
  const wbtcToken = Global.getDefaultTokens().find(
35415
35429
  (token) => token.symbol === lstSymbol
@@ -35444,8 +35458,8 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1, e
35444
35458
  ],
35445
35459
  vaultIdExtended,
35446
35460
  extendedContract: EXTENDED_CONTRACT,
35447
- extendedBackendUrl,
35448
- extendedApiKey,
35461
+ extendedBackendWriteUrl,
35462
+ extendedBackendReadUrl,
35449
35463
  extendedTimeout: 3e4,
35450
35464
  extendedRetries: 3,
35451
35465
  extendedBaseUrl: "https://api.starknet.extended.exchange",
@@ -35585,12 +35599,12 @@ var re7UsdcPrimeDevansh = {
35585
35599
  minimumWBTCDifferenceForAvnuSwap: MINIMUM_WBTC_DIFFERENCE_FOR_AVNU_SWAP,
35586
35600
  walletAddress: WALLET_ADDRESS
35587
35601
  };
35588
- var VesuExtendedTestStrategies = (extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) => {
35602
+ var VesuExtendedTestStrategies = (extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) => {
35589
35603
  return [
35590
- getStrategySettingsVesuExtended("WBTC", "USDC", re7UsdcPrimeDevansh, false, false, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing)
35604
+ getStrategySettingsVesuExtended("WBTC", "USDC", re7UsdcPrimeDevansh, false, false, extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing)
35591
35605
  ];
35592
35606
  };
35593
- function getStrategySettingsVesuExtended(lstSymbol, underlyingSymbol, addresses, isPreview = false, isLST, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
35607
+ function getStrategySettingsVesuExtended(lstSymbol, underlyingSymbol, addresses, isPreview = false, isLST, extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
35594
35608
  return {
35595
35609
  name: `Extended Test ${underlyingSymbol}`,
35596
35610
  description: getDescription2(lstSymbol, underlyingSymbol),
@@ -35598,7 +35612,7 @@ function getStrategySettingsVesuExtended(lstSymbol, underlyingSymbol, addresses,
35598
35612
  launchBlock: 0,
35599
35613
  type: "Other",
35600
35614
  depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === underlyingSymbol)],
35601
- additionalInfo: getLooperSettings2(lstSymbol, underlyingSymbol, addresses, VesuPools.Re7USDCPrime, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing),
35615
+ additionalInfo: getLooperSettings2(lstSymbol, underlyingSymbol, addresses, VesuPools.Re7USDCPrime, extendedBackendReadUrl, extendedBackendWriteUrl, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing),
35602
35616
  risk: {
35603
35617
  riskFactor: _riskFactor3,
35604
35618
  netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strkfarm/sdk",
3
- "version": "2.0.0-dev.19",
3
+ "version": "2.0.0-dev.20",
4
4
  "description": "STRKFarm TS SDK (Meant for our internal use, but feel free to use it)",
5
5
  "typings": "dist/index.d.ts",
6
6
  "types": "dist/index.d.ts",