@strkfarm/sdk 2.0.0-dev.1 → 2.0.0-dev.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strkfarm/sdk",
3
- "version": "2.0.0-dev.1",
3
+ "version": "2.0.0-dev.2",
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",
@@ -35,7 +35,7 @@ export class ContractAddr {
35
35
  static eqString(a: string, b: string) {
36
36
  return ContractAddr.standardise(a) === ContractAddr.standardise(b);
37
37
  }
38
-
38
+
39
39
  toString() {
40
40
  return this.address;
41
41
  }
@@ -152,9 +152,10 @@ export class EkuboQuoter {
152
152
  */
153
153
  getVesuMultiplyQuote(quote: EkuboQuote, fromTokenInfo: TokenInfo, toTokenInfo: TokenInfo): Swap[] {
154
154
  return quote.splits.map(split => {
155
+
155
156
  const isNegativeAmount = BigInt(split.amount_specified) <= 0n;
156
157
  const token = isNegativeAmount ? toTokenInfo : fromTokenInfo;
157
- //console.log("token", token, isNegativeAmount);
158
+ console.log("token for withdrawal", token, isNegativeAmount);
158
159
  return {
159
160
  route: split.route.map(_route => ({
160
161
  pool_key: {
@@ -135,7 +135,7 @@ export class AvnuAdapter extends BaseAdapter<DepositParams, WithdrawParams> {
135
135
  method: "multi_route_swap",
136
136
  packedArguments: [
137
137
  fromToken.address.toBigInt(), //wbtc
138
- fromToken.address.toBigInt(), //usdc
138
+ toToken.address.toBigInt(), //usdc
139
139
  vaultAllocator.toBigInt(),
140
140
  ],
141
141
  sanitizer: SIMPLE_SANITIZER,
@@ -156,13 +156,11 @@ export class AvnuAdapter extends BaseAdapter<DepositParams, WithdrawParams> {
156
156
 
157
157
  async getDepositCall(params: DepositParams): Promise<ManageCall[]> {
158
158
  try {
159
- console.log("params.amount", params.amount);
160
159
  const fromToken = this.config.supportedPositions[0].asset;
161
160
  const toToken = this.config.supportedPositions[1].asset;
162
161
  const vaultAllocator = ContractAddr.from(
163
162
  this.config.vaultAllocator.address
164
163
  );
165
- console.log("vaultAllocator", vaultAllocator);
166
164
  const quote = await this.getQuotesAvnu(
167
165
  fromToken.address.toString(),
168
166
  toToken.address.toString(),
@@ -218,7 +216,6 @@ export class AvnuAdapter extends BaseAdapter<DepositParams, WithdrawParams> {
218
216
  const vaultAllocator = ContractAddr.from(
219
217
  this.config.vaultAllocator.address
220
218
  );
221
- console.log("params.amount", params.amount);
222
219
  const quote = await this.getQuotesAvnu(
223
220
  fromToken.address.toString(),
224
221
  toToken.address.toString(),
@@ -237,8 +234,6 @@ export class AvnuAdapter extends BaseAdapter<DepositParams, WithdrawParams> {
237
234
  );
238
235
  const swapCallData = getCalldata[0];
239
236
  const amount = uint256.bnToUint256(params.amount.toWei())
240
- console.log("amount", amount);
241
- console.log("swapCallData", swapCallData);
242
237
  return [
243
238
  {
244
239
  sanitizer: SIMPLE_SANITIZER,
@@ -327,14 +322,12 @@ export class AvnuAdapter extends BaseAdapter<DepositParams, WithdrawParams> {
327
322
  return dataObject;
328
323
  }
329
324
  const btcPrice = await this.getPriceOfToken(toToken.address.toString());
330
- console.log("btcPrice", btcPrice);
331
325
  if (!btcPrice) {
332
326
  logger.error(`error getting btc price: ${btcPrice}`);
333
327
  return null;
334
328
  }
335
329
  const estimatedUsdcAmount = Math.floor(amount * btcPrice);
336
330
  const targetBtcBig = BigInt(returnFormattedAmount(amount, toTokenDecimals));
337
- console.log("targetBtcBig", targetBtcBig);
338
331
  let low = BigInt(
339
332
  Math.floor(
340
333
  (estimatedUsdcAmount * 10 ** fromToken.decimals) * 0.9
@@ -7,8 +7,10 @@ import { PositionInfo } from "./baseAdapter";
7
7
  import { ManageCall } from "./baseAdapter";
8
8
  import { ContractAddr } from "@/dataTypes";
9
9
  import { AVNU_EXCHANGE_FOR_LEGACY_USDC } from "./adapter-utils";
10
+ import { StandardMerkleTree } from "@/utils";
10
11
  import { hash, uint256 } from "starknet";
11
12
  import { Global } from "@/global";
13
+ import { AdapterLeafType, GenerateCallFn } from "./baseAdapter";
12
14
  import { AVNU_LEGACY_SANITIZER, EXTENDED_SANITIZER, SIMPLE_SANITIZER, toBigInt } from "./adapter-utils";
13
15
  import ExtendedWrapper, {
14
16
  AssetOperationStatus,
@@ -151,6 +153,50 @@ export class ExtendedAdapter extends BaseAdapter<
151
153
  ];
152
154
  }
153
155
 
156
+ getSwapFromLegacyLeaf(): AdapterLeafType<DepositParams> {
157
+ const leafConfigs = this._getSwapFromLegacyLeaf();
158
+ const leaves = leafConfigs.map(config => {
159
+ const { target, method, packedArguments, sanitizer, id } = config;
160
+ const leaf = this.constructSimpleLeafData({
161
+ id: id,
162
+ target,
163
+ method,
164
+ packedArguments
165
+ }, sanitizer);
166
+ return leaf;
167
+ });
168
+ return { leaves, callConstructor: this.getSwapFromLegacyCall.bind(this) as unknown as GenerateCallFn<DepositParams> };
169
+ }
170
+
171
+ protected _getSwapFromLegacyLeaf(): {
172
+ target: ContractAddr;
173
+ method: string;
174
+ packedArguments: bigint[];
175
+ sanitizer: ContractAddr;
176
+ id: string;
177
+ }[] {
178
+ const usdceToken = Global.getDefaultTokens().find(token => token.symbol === "USDCe");
179
+ return [
180
+ {
181
+ target: usdceToken!.address,
182
+ method: "approve",
183
+ packedArguments: [
184
+ AVNU_EXCHANGE_FOR_LEGACY_USDC.toBigInt(),
185
+ ],
186
+ id: `extendedswaplegacyapprove_${usdceToken!.symbol}`,
187
+ sanitizer: AVNU_LEGACY_SANITIZER,
188
+ },
189
+ {
190
+ target: AVNU_EXCHANGE_FOR_LEGACY_USDC,
191
+ method: "swap_to_new",
192
+ packedArguments: [],
193
+ id: `extended_swap_to_new_${usdceToken!.symbol}`,
194
+ sanitizer: AVNU_LEGACY_SANITIZER,
195
+ },
196
+ ]
197
+ }
198
+
199
+
154
200
  protected _getWithdrawLeaf(): {
155
201
  target: ContractAddr;
156
202
  method: string;
@@ -171,6 +217,7 @@ export class ExtendedAdapter extends BaseAdapter<
171
217
  const salt = Math.floor(
172
218
  Math.random() * 10 ** usdcToken.decimals
173
219
  );
220
+ // Give approval for more amount than the required amount
174
221
  const amount = uint256.bnToUint256(params.amount.multipliedBy(10).toWei());
175
222
  const quotes = await this.config.avnuAdapter.getQuotesAvnu(
176
223
  usdcToken.address.toString(),
@@ -185,7 +232,6 @@ export class ExtendedAdapter extends BaseAdapter<
185
232
  logger.error("error getting quotes from avnu");
186
233
  return [];
187
234
  }
188
-
189
235
  const getCalldata = await this.config.avnuAdapter.getSwapCallData(quotes!);
190
236
  const swapCallData = getCalldata[0];
191
237
  //change extended sanitizer here
@@ -241,6 +287,78 @@ export class ExtendedAdapter extends BaseAdapter<
241
287
  }
242
288
  }
243
289
 
290
+ getProofsForFromLegacySwap<T>(tree: StandardMerkleTree): { proofs: string[][], callConstructor: GenerateCallFn<DepositParams> | GenerateCallFn<WithdrawParams> } {
291
+ let proofGroups: string[][] = [];
292
+
293
+ const ids = this.getSwapFromLegacyLeaf().leaves.map(l => l.readableId)
294
+ // console.log(`${this.name}::getProofs ids: ${ids}`);
295
+ for (const [i, v] of tree.entries()) {
296
+ // console.log(`${this.name}::getProofs v: ${v.readableId}`);
297
+ if (ids.includes(v.readableId)) {
298
+ //console.log(`${this.name}::getProofs found id: ${v.readableId}`);
299
+ proofGroups.push(tree.getProof(i));
300
+ }
301
+ }
302
+ if (proofGroups.length != ids.length) {
303
+ throw new Error(`Not all proofs found for IDs: ${ids.join(', ')}`);
304
+ }
305
+
306
+ // find leaf adapter
307
+ return {
308
+ proofs: proofGroups,
309
+ callConstructor: this.getSwapFromLegacyCall.bind(this)
310
+ };
311
+ }
312
+
313
+ async getSwapFromLegacyCall(params: DepositParams): Promise<ManageCall[]> {
314
+ try {
315
+ const usdcToken = this.config.supportedPositions[0].asset;
316
+ const usdceToken = Global.getDefaultTokens().find(token => token.symbol === "USDCe");
317
+ // Give approval for more amount than the required amount
318
+ const amount = uint256.bnToUint256(params.amount.multipliedBy(10).toWei());
319
+ const quotes = await this.config.avnuAdapter.getQuotesAvnu(
320
+ usdceToken!.address.toString(),
321
+ usdcToken!.address.toString(),
322
+ params.amount.toNumber(),
323
+ this.config.avnuAdapter.config.vaultAllocator.address.toString(),
324
+ usdcToken!.decimals,
325
+ false
326
+ )
327
+
328
+ if (!quotes) {
329
+ logger.error("error getting quotes from avnu");
330
+ return [];
331
+ }
332
+ const getCalldata = await this.config.avnuAdapter.getSwapCallData(quotes!);
333
+ const swapCallData = getCalldata[0];
334
+ //change extended sanitizer here
335
+ return [
336
+ {
337
+ sanitizer: AVNU_LEGACY_SANITIZER,
338
+ call: {
339
+ contractAddress: usdceToken!.address,
340
+ selector: hash.getSelectorFromName("approve"),
341
+ calldata: [
342
+ AVNU_EXCHANGE_FOR_LEGACY_USDC.toBigInt(),
343
+ toBigInt(amount.low.toString()), // amount low
344
+ toBigInt(amount.high.toString()), // amount high
345
+ ],
346
+ },
347
+ },
348
+ {
349
+ sanitizer: AVNU_LEGACY_SANITIZER,
350
+ call: {
351
+ contractAddress: AVNU_EXCHANGE_FOR_LEGACY_USDC,
352
+ selector: hash.getSelectorFromName("swap_to_new"),
353
+ calldata: swapCallData,
354
+ },
355
+ }
356
+ ];
357
+ } catch (error) {
358
+ logger.error(`Error creating Deposit Call: ${error}`);
359
+ return [];
360
+ }
361
+ }
244
362
  //Swap wbtc to usdc
245
363
  async getWithdrawCall(params: WithdrawParams): Promise<ManageCall[]> {
246
364
  try {
@@ -259,10 +377,10 @@ export class ExtendedAdapter extends BaseAdapter<
259
377
  if (!this.client) {
260
378
  throw new Error("Client not initialized");
261
379
  }
262
- const withdrawalRequest = this.client.withdrawUSDC(amount.toString());
263
- if ((await withdrawalRequest).status === "OK") {
264
- console.log("Withdrawal request successful");
265
- return true;
380
+ const withdrawalRequest = await this.client.withdrawUSDC(amount.toFixed(2));
381
+ if (withdrawalRequest.status === "OK") {
382
+ const withdrawalStatus = await this.getDepositOrWithdrawalStatus(withdrawalRequest.data, AssetOperationType.WITHDRAWAL);
383
+ return withdrawalStatus;
266
384
  }
267
385
  return false;
268
386
  } catch (error) {
@@ -470,7 +588,7 @@ export class ExtendedAdapter extends BaseAdapter<
470
588
 
471
589
  if (attempt < maxAttempts) {
472
590
  const backoff = 1200 * attempt;
473
- console.log(`Retrying after ${backoff}ms...`);
591
+ logger.info(`Retrying after ${backoff}ms...`);
474
592
  await new Promise((resolve) => setTimeout(resolve, backoff));
475
593
  return this.createOrder(
476
594
  leverage,
@@ -511,7 +629,7 @@ export class ExtendedAdapter extends BaseAdapter<
511
629
  }
512
630
  return null;
513
631
  } catch (err) {
514
- console.log("Error opening short extended position", err);
632
+ logger.error(`Error opening short extended position, ${err}`);
515
633
  return null;
516
634
  }
517
635
  }
@@ -522,17 +640,16 @@ export class ExtendedAdapter extends BaseAdapter<
522
640
  operationsType:[operationsType],
523
641
  operationsStatus:[AssetOperationStatus.COMPLETED]
524
642
  })
525
- console.log("transferHistory", transferHistory);
526
643
  if(operationsType === AssetOperationType.DEPOSIT){
527
644
  const myTransferStatus = transferHistory.data.find(operation => operation.transactionHash === orderId);
528
645
  if (!myTransferStatus) {
529
- return false;
646
+ return true;
530
647
  }
531
648
  return true;
532
649
  }else{
533
- const myTransferStatus = transferHistory.data.find(operation => operation.id === orderId);
650
+ const myTransferStatus = transferHistory.data.find(operation => operation.id.toString() === orderId.toString());
534
651
  if (!myTransferStatus) {
535
- return false;
652
+ return true;
536
653
  }
537
654
  return true;
538
655
  }
@@ -392,7 +392,7 @@ export class VesuMultiplyAdapter extends BaseAdapter<DepositParams, WithdrawPara
392
392
  this.config.debt.address.toBigInt(),
393
393
  this.config.vaultAllocator.toBigInt(),
394
394
  ],
395
- sanitizer: SIMPLE_SANITIZER_V2,
395
+ sanitizer: isV2 ? SIMPLE_SANITIZER_V2 : SIMPLE_SANITIZER,
396
396
  // vmw = vesu multiply withdraw
397
397
  id: `vmw_${this.config.poolId.shortString()}_${collateral.symbol}_${debt.symbol}`
398
398
  },
@@ -531,7 +531,7 @@ export class VesuMultiplyAdapter extends BaseAdapter<DepositParams, WithdrawPara
531
531
  },
532
532
  // Vesu multiply call
533
533
  {
534
- sanitizer: SIMPLE_SANITIZER_V2,
534
+ sanitizer: isV2 ? SIMPLE_SANITIZER_V2 : SIMPLE_SANITIZER,
535
535
  call: {
536
536
  contractAddress: vesuMultiply,
537
537
  selector: hash.getSelectorFromName('modify_lever'),
@@ -664,21 +664,21 @@ export class VesuMultiplyAdapter extends BaseAdapter<DepositParams, WithdrawPara
664
664
  if (debtAmount.greaterThan(0)) {
665
665
  // For increase: minimum amount of collateral received
666
666
  // from debt token to collateral token
667
- console.log("debtAmountInCollateralUnits", debtAmountInCollateralUnits.toNumber());
668
- leverSwapLimitAmount = await ekuboQuoter.getSwapLimitAmount(debtToken, collateralToken, debtAmount, MAX_SLIPPAGE);
669
- const anotherleverSwapLimitAmount = debtAmount.multipliedBy(1 + MAX_SLIPPAGE);
670
- console.log("anotherleverSwapLimitAmount", anotherleverSwapLimitAmount, leverSwapLimitAmount);
667
+ //console.log("debtAmountInCollateralUnits", debtAmountInCollateralUnits.toNumber());
668
+ //leverSwapLimitAmount = await ekuboQuoter.getSwapLimitAmount(debtToken, collateralToken, debtAmount, MAX_SLIPPAGE);
669
+ leverSwapLimitAmount = debtAmount.multipliedBy(1 + MAX_SLIPPAGE);
670
+ //console.log("anotherleverSwapLimitAmount", anotherleverSwapLimitAmount, leverSwapLimitAmount);
671
671
  } else if (debtAmount.lessThan(0)) {
672
672
  // For decrease: maximum amount of collateral used
673
673
  // from collateral token to debt token
674
- leverSwapLimitAmount = await ekuboQuoter.getSwapLimitAmount(collateralToken, debtToken, debtAmountInCollateralUnits.multipliedBy(-1), MAX_SLIPPAGE);
675
- const anotherleverSwapLimitAmount = debtAmount.abs().multipliedBy(1 - MAX_SLIPPAGE);
676
- console.log("anotherleverSwapLimitAmount", anotherleverSwapLimitAmount, leverSwapLimitAmount);
674
+ //leverSwapLimitAmount = await ekuboQuoter.getSwapLimitAmount(collateralToken, debtToken, debtAmountInCollateralUnits.multipliedBy(-1), MAX_SLIPPAGE);
675
+ leverSwapLimitAmount = debtAmount.abs().multipliedBy(1 - MAX_SLIPPAGE);
676
+ //console.log("anotherleverSwapLimitAmount", anotherleverSwapLimitAmount, leverSwapLimitAmount);
677
677
  } else {
678
678
  leverSwapLimitAmount = Web3Number.fromWei(0, this.config.debt.decimals);
679
679
  }
680
680
  await new Promise((resolve) => setTimeout(resolve, 10000));
681
- console.log("leverSwapLimitAmount", leverSwapLimitAmount);
681
+ //console.log("leverSwapLimitAmount", leverSwapLimitAmount);
682
682
  } else {
683
683
  throw new Error(`VesuMultiplyAdapter: Price impact too high (${swapQuote.price_impact}), skipping swap`);
684
684
  }
@@ -754,26 +754,26 @@ export class VesuMultiplyAdapter extends BaseAdapter<DepositParams, WithdrawPara
754
754
  debtPrice.price,
755
755
  debtToken.decimals
756
756
  );
757
- console.log("debtAmountToRepay", debtAmountToRepay);
757
+ //console.log("debtAmountToRepay", debtAmountToRepay);
758
758
  if(!debtAmountToRepay) {
759
759
  throw new Error("error calculating debt amount to repay");
760
760
  }
761
761
  const ekuboQuoter = new EkuboQuoter(this.config.networkConfig, this.config.pricer);
762
762
  const debtInDebtUnits = new Web3Number(debtAmountToRepay, debtToken.decimals).dividedBy(debtPrice.price).multipliedBy(10 ** debtToken.decimals);
763
- const debtInCollateralUnits = new Web3Number(debtAmountToRepay, debtToken.decimals).dividedBy(collateralPrice.price).multipliedBy(10 ** collateralToken.decimals);
764
763
  const swapQuote = await ekuboQuoter.getQuote(
765
764
  debtToken.address.address,
766
765
  collateralToken.address.address,
767
766
  debtInDebtUnits
768
767
  )
769
768
  const MAX_SLIPPAGE = 0.002; // 0.2% slippag
770
- if(swapQuote.price_impact < 0.025) {
771
- leverSwap = ekuboQuoter.getVesuMultiplyQuote(swapQuote, debtToken, collateralToken);
769
+ if(swapQuote.price_impact < 0.0025) {
770
+ leverSwap = ekuboQuoter.getVesuMultiplyQuote(swapQuote, collateralToken, debtToken);
772
771
  } else {
773
772
  logger.error(`VesuMultiplyAdapter: Price impact too high (${swapQuote.price_impact}), skipping swap`);
774
773
  }
775
- const anotherLeverSwapLimitAmount = await ekuboQuoter.getSwapLimitAmount(collateralToken, debtToken, debtInDebtUnits, MAX_SLIPPAGE);
776
- leverSwapLimitAmount = await ekuboQuoter.getSwapLimitAmount(debtToken, collateralToken, debtInCollateralUnits, MAX_SLIPPAGE);
774
+
775
+ leverSwapLimitAmount = new Web3Number(debtAmountToRepay, debtToken.decimals).abs().multipliedBy(1 + MAX_SLIPPAGE);
776
+ //leverSwapLimitAmount = await ekuboQuoter.getSwapLimitAmount(debtToken, collateralToken, debtInCollateralUnits, MAX_SLIPPAGE);
777
777
  const multiplyParams = await this.getLeverParams(false, params, leverSwap, leverSwapLimitAmount);
778
778
  const call = multiplyContract.populate('modify_lever', {
779
779
  modify_lever_params: this.formatMultiplyParams(false, multiplyParams)
@@ -19,10 +19,16 @@ export abstract class Operations {
19
19
  params: { from: string; to: string; amount: Web3Number },
20
20
  extendedAdapter: ExtendedAdapter,
21
21
  vesuAdapter: VesuMultiplyAdapter
22
- ): Promise<Call[]>;
22
+ ): Promise<{
23
+ calls: Call[];
24
+ status: boolean;
25
+ }>;
23
26
  abstract handleDeposit(): Promise<{
24
27
  extendedAmountInBTC: Web3Number;
25
28
  calls: Call[];
26
29
  }>;
27
- abstract handleWithdraw(amount: Web3Number): Promise<Call[]>;
30
+ abstract handleWithdraw(amount: Web3Number): Promise<{
31
+ calls: Call[];
32
+ status: boolean;
33
+ }> ;
28
34
  }
@@ -3,6 +3,7 @@ export const SLIPPAGE = 0.01;
3
3
  export const USDC_TOKEN_DECIMALS = 6;
4
4
  export const USDC_TOKEN_ADDRESS =
5
5
  "0x053C91253BC9682c04929cA02ED00b3E423f6710D2ee7e0D5EBB06F3eCF368A8";
6
+ export const BUFFER_USDC_IN_WITHDRAWAL=5;
6
7
  export const WBTC_TOKEN_ADDRESS = "0x3fe2b97c1fd336e750087d68b9b867997fd64a2661ff3ca5a7c771641e8e7ac";
7
8
  export const WBTC_TOKEN_DECIMALS = 8;
8
9
  export const MAINTENANCE_MARGIN = 0.01;
@@ -127,12 +127,11 @@ export const calculateAmountDistributionForWithdrawal = async (
127
127
  logger.error("error getting extended positions");
128
128
  return null;
129
129
  }
130
- const extendedBTCExposure =
131
- extendedPosition.length > 0
132
- ? new Web3Number(extendedPosition[0].size, WBTC_TOKEN_DECIMALS)
133
- : new Web3Number(0, WBTC_TOKEN_DECIMALS);
134
130
  const extendedExposureUSD =
135
- extendedBTCExposure.multipliedBy(collateralPrice);
131
+ extendedPosition.length > 0
132
+ ? new Web3Number(extendedPosition[0].value, USDC_TOKEN_DECIMALS)
133
+ : new Web3Number(0, USDC_TOKEN_DECIMALS);
134
+ console.log("THe collateral is", collateralPrice, collateralUnits);
136
135
  // console.log("the extended exposure usd is", extendedExposureUSD.toNumber());
137
136
  //console.log("the collateral units are", collateralUnits.toNumber());\
138
137
  const vesuExposureUSD = collateralUnits.multipliedBy(collateralPrice);
@@ -152,11 +151,14 @@ export const calculateAmountDistributionForWithdrawal = async (
152
151
  vesu_leverage,
153
152
  };
154
153
  }
155
- //console.log("the vesu exposure usd is", vesuExposureUSD.toNumber());
154
+ console.log("the vesu exposure usd is", vesuExposureUSD.toNumber());
155
+ console.log("the extended exposure usd is", extendedExposureUSD.toNumber());
156
+ console.log("the amount in usdc is", amountInUsdc.toNumber());
157
+ console.log("the extended leverage is", extended_leverage);
158
+ console.log("the vesu leverage is", vesu_leverage);
156
159
  const numerator1 = amountInUsdc.multipliedBy(extended_leverage);
157
- const numerator2 = vesuExposureUSD.multipliedBy(vesu_leverage);
160
+ const numerator2 = vesuExposureUSD;
158
161
  const numerator3 = extendedExposureUSD
159
- .multipliedBy(extended_leverage)
160
162
  .multipliedBy(-1);
161
163
  const finalNumerator = numerator1.plus(numerator2).plus(numerator3);
162
164
  const denominator = extended_leverage + vesu_leverage;
@@ -168,8 +170,8 @@ export const calculateAmountDistributionForWithdrawal = async (
168
170
  extendedAmountInUSDC.toNumber()
169
171
  );
170
172
  //console.log("the vesu amount in usdc is", vesuAmountInUSDC.toNumber());
171
- //console.log("the extended amount in usdc is", extendedAmountInUSDC.toNumber());
172
-
173
+ //console.log("the extended amount in usdc is", extendedAmountInUSDC.toNumber());\
174
+ await new Promise((resolve) => setTimeout(resolve, 10000));
173
175
  return {
174
176
  vesu_amount: vesuAmountInUSDC,
175
177
  extended_amount: extendedAmountInUSDC,