@strkfarm/sdk 2.0.0-dev.5 → 2.0.0-dev.7
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.browser.global.js +121 -61
- package/dist/index.browser.mjs +121 -61
- package/dist/index.d.ts +7 -1
- package/dist/index.js +121 -61
- package/dist/index.mjs +121 -61
- package/package.json +1 -1
- package/src/strategies/universal-adapters/avnu-adapter.ts +1 -1
- package/src/strategies/universal-adapters/extended-adapter.ts +157 -74
- package/src/strategies/universal-adapters/vesu-multiply-adapter.ts +3 -1
- package/src/strategies/universal-lst-muliplier-strategy.tsx +2 -1
- package/src/strategies/vesu-extended-strategy/utils/constants.ts +1 -1
- package/src/strategies/vesu-extended-strategy/utils/helper.ts +2 -4
- package/src/strategies/vesu-extended-strategy/vesu-extended-strategy.tsx +22 -16
|
@@ -92380,7 +92380,7 @@ spurious results.`);
|
|
|
92380
92380
|
var MAX_RETRIES = Number(process.env.MAX_RETRIES ?? 3);
|
|
92381
92381
|
var MAX_DELAY = Number(process.env.MAX_DELAY ?? 100);
|
|
92382
92382
|
var EXTEND_MARKET_NAME = "BTC-USD";
|
|
92383
|
-
var LIMIT_BALANCE = Number(process.env.LIMIT_BALANCE ??
|
|
92383
|
+
var LIMIT_BALANCE = Number(process.env.LIMIT_BALANCE ?? 0.05);
|
|
92384
92384
|
var REBALANCER_INTERVAL = Number(process.env.REBALANCER_INTERVAL ?? 18e4);
|
|
92385
92385
|
var WITHDRAWAL_INTERVAL = Number(process.env.WITHDRAWAL_INTERVAL ?? 18e6);
|
|
92386
92386
|
var INVESTING_INTERVAL = Number(process.env.INVESTING_INTERVAL ?? 18e4);
|
|
@@ -92419,8 +92419,7 @@ spurious results.`);
|
|
|
92419
92419
|
vesu_leverage: 0
|
|
92420
92420
|
};
|
|
92421
92421
|
}
|
|
92422
|
-
const
|
|
92423
|
-
const extendedExposureUSD = extendedBTCExposure.multipliedBy(collateralPrice);
|
|
92422
|
+
const extendedExposureUSD = extendedPosition.length > 0 ? new Web3Number(extendedPosition[0].value, WBTC_TOKEN_DECIMALS) : new Web3Number(0, WBTC_TOKEN_DECIMALS);
|
|
92424
92423
|
const vesuBTCExposureUSD = collateralUnits.multipliedBy(collateralPrice);
|
|
92425
92424
|
const numerator1 = vesu_leverage * amount + vesuBTCExposureUSD.toNumber();
|
|
92426
92425
|
const numerator2 = extendedExposureUSD.toNumber();
|
|
@@ -92638,6 +92637,7 @@ spurious results.`);
|
|
|
92638
92637
|
vaultAllocator: config3.vaultAllocator,
|
|
92639
92638
|
id: ""
|
|
92640
92639
|
});
|
|
92640
|
+
this.minimumVesuMovementAmount = config3.minimumVesuMovementAmount ?? 5;
|
|
92641
92641
|
this.tokenMarketData = new TokenMarketData(
|
|
92642
92642
|
this.config.pricer,
|
|
92643
92643
|
this.config.networkConfig
|
|
@@ -93646,12 +93646,17 @@ spurious results.`);
|
|
|
93646
93646
|
timeout: this.config.extendedTimeout,
|
|
93647
93647
|
retries: this.config.extendedRetries
|
|
93648
93648
|
});
|
|
93649
|
+
this.minimumExtendedMovementAmount = this.config.minimumExtendedMovementAmount ?? 5;
|
|
93649
93650
|
this.client = client;
|
|
93651
|
+
this.retryDelayForOrderStatus = this.config.retryDelayForOrderStatus ?? 3e3;
|
|
93650
93652
|
}
|
|
93651
93653
|
//abstract means the method has no implementation in this class; instead, child classes must implement it.
|
|
93652
93654
|
async getAPY(supportedPosition) {
|
|
93653
93655
|
const side = supportedPosition.isDebt ? "LONG" : "SHORT";
|
|
93654
|
-
const fundingRates = await this.client.getFundingRates(
|
|
93656
|
+
const fundingRates = await this.client.getFundingRates(
|
|
93657
|
+
this.config.extendedMarketName,
|
|
93658
|
+
side
|
|
93659
|
+
);
|
|
93655
93660
|
if (fundingRates.status !== "OK") {
|
|
93656
93661
|
logger2.error("error getting funding rates", fundingRates);
|
|
93657
93662
|
return { apy: 0, type: "base" /* BASE */ };
|
|
@@ -93695,14 +93700,14 @@ spurious results.`);
|
|
|
93695
93700
|
});
|
|
93696
93701
|
}
|
|
93697
93702
|
_getDepositLeaf() {
|
|
93698
|
-
const usdceToken = Global.getDefaultTokens().find(
|
|
93703
|
+
const usdceToken = Global.getDefaultTokens().find(
|
|
93704
|
+
(token) => token.symbol === "USDCe"
|
|
93705
|
+
);
|
|
93699
93706
|
return [
|
|
93700
93707
|
{
|
|
93701
93708
|
target: this.config.supportedPositions[0].asset.address,
|
|
93702
93709
|
method: "approve",
|
|
93703
|
-
packedArguments: [
|
|
93704
|
-
AVNU_EXCHANGE_FOR_LEGACY_USDC.toBigInt()
|
|
93705
|
-
],
|
|
93710
|
+
packedArguments: [AVNU_EXCHANGE_FOR_LEGACY_USDC.toBigInt()],
|
|
93706
93711
|
id: `extended_approve_${this.config.supportedPositions[0].asset.symbol}`,
|
|
93707
93712
|
sanitizer: AVNU_LEGACY_SANITIZER
|
|
93708
93713
|
},
|
|
@@ -93733,25 +93738,33 @@ spurious results.`);
|
|
|
93733
93738
|
const leafConfigs = this._getSwapFromLegacyLeaf();
|
|
93734
93739
|
const leaves = leafConfigs.map((config3) => {
|
|
93735
93740
|
const { target, method, packedArguments, sanitizer, id } = config3;
|
|
93736
|
-
const leaf = this.constructSimpleLeafData(
|
|
93737
|
-
|
|
93738
|
-
|
|
93739
|
-
|
|
93740
|
-
|
|
93741
|
-
|
|
93741
|
+
const leaf = this.constructSimpleLeafData(
|
|
93742
|
+
{
|
|
93743
|
+
id,
|
|
93744
|
+
target,
|
|
93745
|
+
method,
|
|
93746
|
+
packedArguments
|
|
93747
|
+
},
|
|
93748
|
+
sanitizer
|
|
93749
|
+
);
|
|
93742
93750
|
return leaf;
|
|
93743
93751
|
});
|
|
93744
|
-
return {
|
|
93752
|
+
return {
|
|
93753
|
+
leaves,
|
|
93754
|
+
callConstructor: this.getSwapFromLegacyCall.bind(
|
|
93755
|
+
this
|
|
93756
|
+
)
|
|
93757
|
+
};
|
|
93745
93758
|
}
|
|
93746
93759
|
_getSwapFromLegacyLeaf() {
|
|
93747
|
-
const usdceToken = Global.getDefaultTokens().find(
|
|
93760
|
+
const usdceToken = Global.getDefaultTokens().find(
|
|
93761
|
+
(token) => token.symbol === "USDCe"
|
|
93762
|
+
);
|
|
93748
93763
|
return [
|
|
93749
93764
|
{
|
|
93750
93765
|
target: usdceToken.address,
|
|
93751
93766
|
method: "approve",
|
|
93752
|
-
packedArguments: [
|
|
93753
|
-
AVNU_EXCHANGE_FOR_LEGACY_USDC.toBigInt()
|
|
93754
|
-
],
|
|
93767
|
+
packedArguments: [AVNU_EXCHANGE_FOR_LEGACY_USDC.toBigInt()],
|
|
93755
93768
|
id: `extendedswaplegacyapprove_${usdceToken.symbol}`,
|
|
93756
93769
|
sanitizer: AVNU_LEGACY_SANITIZER
|
|
93757
93770
|
},
|
|
@@ -93770,11 +93783,13 @@ spurious results.`);
|
|
|
93770
93783
|
async getDepositCall(params) {
|
|
93771
93784
|
try {
|
|
93772
93785
|
const usdcToken = this.config.supportedPositions[0].asset;
|
|
93773
|
-
const usdceToken = Global.getDefaultTokens().find(
|
|
93774
|
-
|
|
93775
|
-
|
|
93786
|
+
const usdceToken = Global.getDefaultTokens().find(
|
|
93787
|
+
(token) => token.symbol === "USDCe"
|
|
93788
|
+
);
|
|
93789
|
+
const salt = Math.floor(Math.random() * 10 ** usdcToken.decimals);
|
|
93790
|
+
const amount = uint256_exports.bnToUint256(
|
|
93791
|
+
params.amount.multipliedBy(10).toWei()
|
|
93776
93792
|
);
|
|
93777
|
-
const amount = uint256_exports.bnToUint256(params.amount.multipliedBy(10).toWei());
|
|
93778
93793
|
const quotes = await this.config.avnuAdapter.getQuotesAvnu(
|
|
93779
93794
|
usdcToken.address.toString(),
|
|
93780
93795
|
usdceToken.address.toString(),
|
|
@@ -93787,7 +93802,9 @@ spurious results.`);
|
|
|
93787
93802
|
logger2.error("error getting quotes from avnu");
|
|
93788
93803
|
return [];
|
|
93789
93804
|
}
|
|
93790
|
-
const getCalldata = await this.config.avnuAdapter.getSwapCallData(
|
|
93805
|
+
const getCalldata = await this.config.avnuAdapter.getSwapCallData(
|
|
93806
|
+
quotes
|
|
93807
|
+
);
|
|
93791
93808
|
const swapCallData = getCalldata[0];
|
|
93792
93809
|
return [
|
|
93793
93810
|
{
|
|
@@ -93863,8 +93880,12 @@ spurious results.`);
|
|
|
93863
93880
|
async getSwapFromLegacyCall(params) {
|
|
93864
93881
|
try {
|
|
93865
93882
|
const usdcToken = this.config.supportedPositions[0].asset;
|
|
93866
|
-
const usdceToken = Global.getDefaultTokens().find(
|
|
93867
|
-
|
|
93883
|
+
const usdceToken = Global.getDefaultTokens().find(
|
|
93884
|
+
(token) => token.symbol === "USDCe"
|
|
93885
|
+
);
|
|
93886
|
+
const amount = uint256_exports.bnToUint256(
|
|
93887
|
+
params.amount.multipliedBy(10).toWei()
|
|
93888
|
+
);
|
|
93868
93889
|
const quotes = await this.config.avnuAdapter.getQuotesAvnu(
|
|
93869
93890
|
usdceToken.address.toString(),
|
|
93870
93891
|
usdcToken.address.toString(),
|
|
@@ -93877,7 +93898,9 @@ spurious results.`);
|
|
|
93877
93898
|
logger2.error("error getting quotes from avnu");
|
|
93878
93899
|
return [];
|
|
93879
93900
|
}
|
|
93880
|
-
const getCalldata = await this.config.avnuAdapter.getSwapCallData(
|
|
93901
|
+
const getCalldata = await this.config.avnuAdapter.getSwapCallData(
|
|
93902
|
+
quotes
|
|
93903
|
+
);
|
|
93881
93904
|
const swapCallData = getCalldata[0];
|
|
93882
93905
|
return [
|
|
93883
93906
|
{
|
|
@@ -93925,9 +93948,14 @@ spurious results.`);
|
|
|
93925
93948
|
if (!this.client) {
|
|
93926
93949
|
throw new Error("Client not initialized");
|
|
93927
93950
|
}
|
|
93928
|
-
const withdrawalRequest = await this.client.withdrawUSDC(
|
|
93951
|
+
const withdrawalRequest = await this.client.withdrawUSDC(
|
|
93952
|
+
amount.toFixed(2)
|
|
93953
|
+
);
|
|
93929
93954
|
if (withdrawalRequest.status === "OK") {
|
|
93930
|
-
const withdrawalStatus = await this.getDepositOrWithdrawalStatus(
|
|
93955
|
+
const withdrawalStatus = await this.getDepositOrWithdrawalStatus(
|
|
93956
|
+
withdrawalRequest.data,
|
|
93957
|
+
"WITHDRAWAL" /* WITHDRAWAL */
|
|
93958
|
+
);
|
|
93931
93959
|
return withdrawalStatus;
|
|
93932
93960
|
}
|
|
93933
93961
|
return false;
|
|
@@ -94000,18 +94028,34 @@ spurious results.`);
|
|
|
94000
94028
|
logger2.error("error initializing client");
|
|
94001
94029
|
return null;
|
|
94002
94030
|
}
|
|
94003
|
-
|
|
94004
|
-
const orderhistory = await this.getOrderHistory(marketName);
|
|
94031
|
+
let orderhistory = await this.getOrderHistory(marketName);
|
|
94005
94032
|
if (!orderhistory || orderhistory.length === 0) {
|
|
94006
|
-
logger2.error(`error getting order: ${orderId}`);
|
|
94007
|
-
|
|
94033
|
+
logger2.error(`error getting order history: ${orderId}`);
|
|
94034
|
+
} else {
|
|
94035
|
+
const order = orderhistory.slice(0, 10).find((order2) => order2.id.toString() === orderId);
|
|
94036
|
+
if (order) {
|
|
94037
|
+
return order;
|
|
94038
|
+
}
|
|
94008
94039
|
}
|
|
94009
|
-
|
|
94010
|
-
|
|
94011
|
-
|
|
94012
|
-
|
|
94040
|
+
for (let attempt = 1; attempt <= 5; attempt++) {
|
|
94041
|
+
await new Promise((resolve) => setTimeout(resolve, this.retryDelayForOrderStatus));
|
|
94042
|
+
orderhistory = await this.getOrderHistory(marketName);
|
|
94043
|
+
if (!orderhistory || orderhistory.length === 0) {
|
|
94044
|
+
logger2.error(
|
|
94045
|
+
`error getting order history on retry ${attempt}: ${orderId}`
|
|
94046
|
+
);
|
|
94047
|
+
continue;
|
|
94048
|
+
}
|
|
94049
|
+
const order = orderhistory.slice(0, 5).find((order2) => order2.id.toString() === orderId);
|
|
94050
|
+
if (order && order.status === "FILLED" /* FILLED */) {
|
|
94051
|
+
return order;
|
|
94052
|
+
}
|
|
94053
|
+
logger2.error(
|
|
94054
|
+
`order not found in top 15 entries on retry ${attempt}: ${orderId}`
|
|
94055
|
+
);
|
|
94013
94056
|
}
|
|
94014
|
-
|
|
94057
|
+
logger2.error(`error getting order after all retries: ${orderId}`);
|
|
94058
|
+
return null;
|
|
94015
94059
|
}
|
|
94016
94060
|
async fetchOrderBookBTCUSDC() {
|
|
94017
94061
|
try {
|
|
@@ -94084,8 +94128,11 @@ spurious results.`);
|
|
|
94084
94128
|
return null;
|
|
94085
94129
|
}
|
|
94086
94130
|
await new Promise((resolve) => setTimeout(resolve, 5e3));
|
|
94087
|
-
const openOrder = await this.getOrderStatus(
|
|
94088
|
-
|
|
94131
|
+
const openOrder = await this.getOrderStatus(
|
|
94132
|
+
result2.position_id,
|
|
94133
|
+
this.config.extendedMarketName
|
|
94134
|
+
);
|
|
94135
|
+
if (!openOrder) {
|
|
94089
94136
|
if (attempt >= maxAttempts) {
|
|
94090
94137
|
logger2.error("Max retries reached \u2014 could not verify open position");
|
|
94091
94138
|
return null;
|
|
@@ -94107,7 +94154,9 @@ spurious results.`);
|
|
|
94107
94154
|
};
|
|
94108
94155
|
}
|
|
94109
94156
|
} catch (err2) {
|
|
94110
|
-
logger2.error(
|
|
94157
|
+
logger2.error(
|
|
94158
|
+
`createShortOrder failed on attempt ${attempt}: ${err2.message}`
|
|
94159
|
+
);
|
|
94111
94160
|
if (attempt < maxAttempts) {
|
|
94112
94161
|
const backoff = 1200 * attempt;
|
|
94113
94162
|
logger2.info(`Retrying after ${backoff}ms...`);
|
|
@@ -94152,13 +94201,17 @@ spurious results.`);
|
|
|
94152
94201
|
operationsStatus: ["COMPLETED" /* COMPLETED */]
|
|
94153
94202
|
});
|
|
94154
94203
|
if (operationsType === "DEPOSIT" /* DEPOSIT */) {
|
|
94155
|
-
const myTransferStatus = transferHistory.data.find(
|
|
94204
|
+
const myTransferStatus = transferHistory.data.find(
|
|
94205
|
+
(operation) => operation.transactionHash === orderId
|
|
94206
|
+
);
|
|
94156
94207
|
if (!myTransferStatus) {
|
|
94157
94208
|
return true;
|
|
94158
94209
|
}
|
|
94159
94210
|
return true;
|
|
94160
94211
|
} else {
|
|
94161
|
-
const myTransferStatus = transferHistory.data.find(
|
|
94212
|
+
const myTransferStatus = transferHistory.data.find(
|
|
94213
|
+
(operation) => operation.id.toString() === orderId.toString()
|
|
94214
|
+
);
|
|
94162
94215
|
if (!myTransferStatus) {
|
|
94163
94216
|
return true;
|
|
94164
94217
|
}
|
|
@@ -97430,7 +97483,8 @@ spurious results.`);
|
|
|
97430
97483
|
minHealthFactor: vaultSettings.minHealthFactor,
|
|
97431
97484
|
quoteAmountToFetchPrice: vaultSettings.quoteAmountToFetchPrice,
|
|
97432
97485
|
...baseAdapterConfig,
|
|
97433
|
-
supportedPositions: [{ asset: lstToken, isDebt: false }, { asset: Global.getDefaultTokens().find((token) => token.symbol === position), isDebt: true }]
|
|
97486
|
+
supportedPositions: [{ asset: lstToken, isDebt: false }, { asset: Global.getDefaultTokens().find((token) => token.symbol === position), isDebt: true }],
|
|
97487
|
+
minimumVesuMovementAmount: 0
|
|
97434
97488
|
}));
|
|
97435
97489
|
const unusedBalanceAdapter = new UnusedBalanceAdapter({
|
|
97436
97490
|
...baseAdapterConfig
|
|
@@ -97889,7 +97943,7 @@ spurious results.`);
|
|
|
97889
97943
|
}
|
|
97890
97944
|
throw new Error("Failed to fetch quote after retries");
|
|
97891
97945
|
}
|
|
97892
|
-
async getQuotesAvnu(from_token_address, to_token_address, amount, takerAddress, toTokenDecimals, usdcToBtc, maxIterations = 5, tolerance =
|
|
97946
|
+
async getQuotesAvnu(from_token_address, to_token_address, amount, takerAddress, toTokenDecimals, usdcToBtc, maxIterations = 5, tolerance = 5e3) {
|
|
97893
97947
|
try {
|
|
97894
97948
|
const fromToken = this.config.supportedPositions[0].asset;
|
|
97895
97949
|
const toToken = this.config.supportedPositions[1].asset;
|
|
@@ -98129,7 +98183,8 @@ spurious results.`);
|
|
|
98129
98183
|
}
|
|
98130
98184
|
const balance = await this.getUnusedBalance();
|
|
98131
98185
|
const usdcBalanceOnExtended = await extendedAdapter.getExtendedDepositAmount();
|
|
98132
|
-
const amountToInvest = balance.
|
|
98186
|
+
const amountToInvest = new Web3Number(balance.usdValue, USDC_TOKEN_DECIMALS).plus(usdcBalanceOnExtended?.availableForWithdrawal ?? 0).multipliedBy(1 - LIMIT_BALANCE);
|
|
98187
|
+
logger2.info(`${_VesuExtendedMultiplierStrategy.name}::shouldInvest amountToInvest: ${amountToInvest.toNumber()}`);
|
|
98133
98188
|
if (amountToInvest.lessThan(0)) {
|
|
98134
98189
|
return {
|
|
98135
98190
|
shouldInvest: false,
|
|
@@ -98182,6 +98237,7 @@ spurious results.`);
|
|
|
98182
98237
|
vesuLeverage: 0
|
|
98183
98238
|
};
|
|
98184
98239
|
}
|
|
98240
|
+
logger2.info(`${_VesuExtendedMultiplierStrategy.name}::shouldInvest vesu_amount: ${vesu_amount.toNumber()}, extended_amount: ${extended_amount.toNumber()}`);
|
|
98185
98241
|
return {
|
|
98186
98242
|
shouldInvest: true,
|
|
98187
98243
|
vesuAmount: vesu_amount,
|
|
@@ -98215,7 +98271,7 @@ spurious results.`);
|
|
|
98215
98271
|
);
|
|
98216
98272
|
return calls;
|
|
98217
98273
|
}
|
|
98218
|
-
if (extendedAmount.
|
|
98274
|
+
if (extendedAmount.isNegative() && extendedAmount.abs().greaterThan(extendedAdapter.minimumExtendedMovementAmount)) {
|
|
98219
98275
|
try {
|
|
98220
98276
|
const { calls: extendedCalls, status: extendedStatus } = await this.moveAssets(
|
|
98221
98277
|
{
|
|
@@ -98235,7 +98291,7 @@ spurious results.`);
|
|
|
98235
98291
|
logger2.error(`Failed moving assets to vault: ${err2}`);
|
|
98236
98292
|
}
|
|
98237
98293
|
}
|
|
98238
|
-
if (vesuAmount.lessThan(
|
|
98294
|
+
if (vesuAmount.isNegative() && vesuAmount.lessThan(vesuAdapter.minimumVesuMovementAmount)) {
|
|
98239
98295
|
try {
|
|
98240
98296
|
const { calls: vesuCalls, status: vesuStatus } = await this.moveAssets(
|
|
98241
98297
|
{
|
|
@@ -98261,15 +98317,15 @@ spurious results.`);
|
|
|
98261
98317
|
}
|
|
98262
98318
|
const usdcAmountInWallet = (await this.getUnusedBalance()).amount;
|
|
98263
98319
|
const usdcAmountOnExtended = parseFloat(
|
|
98264
|
-
extendedHoldings.
|
|
98320
|
+
extendedHoldings.availableForWithdrawal
|
|
98265
98321
|
);
|
|
98266
|
-
if (extendedAmount.
|
|
98322
|
+
if (extendedAmount.minus(usdcAmountOnExtended).greaterThan(extendedAdapter.minimumExtendedMovementAmount)) {
|
|
98267
98323
|
try {
|
|
98268
98324
|
const { calls: extendedCalls } = await this.moveAssets(
|
|
98269
98325
|
{
|
|
98270
98326
|
to: Protocols.EXTENDED.name,
|
|
98271
98327
|
from: Protocols.VAULT.name,
|
|
98272
|
-
amount: extendedAmount.
|
|
98328
|
+
amount: extendedAmount.minus(usdcAmountOnExtended)
|
|
98273
98329
|
},
|
|
98274
98330
|
extendedAdapter,
|
|
98275
98331
|
vesuAdapter
|
|
@@ -98279,7 +98335,7 @@ spurious results.`);
|
|
|
98279
98335
|
logger2.error(`Failed moving assets to extended: ${err2}`);
|
|
98280
98336
|
}
|
|
98281
98337
|
}
|
|
98282
|
-
if (vesuAmount.minus(usdcAmountInWallet).greaterThan(
|
|
98338
|
+
if (vesuAmount.minus(usdcAmountInWallet).greaterThan(vesuAdapter.minimumVesuMovementAmount)) {
|
|
98283
98339
|
try {
|
|
98284
98340
|
const { calls: vesuCalls, status: vesuStatus } = await this.moveAssets(
|
|
98285
98341
|
{
|
|
@@ -98507,7 +98563,7 @@ spurious results.`);
|
|
|
98507
98563
|
};
|
|
98508
98564
|
}
|
|
98509
98565
|
const extendedHoldingAmount = new Web3Number(
|
|
98510
|
-
extendedHoldings.
|
|
98566
|
+
extendedHoldings.availableForWithdrawal,
|
|
98511
98567
|
USDC_TOKEN_DECIMALS
|
|
98512
98568
|
);
|
|
98513
98569
|
const {
|
|
@@ -98567,7 +98623,6 @@ spurious results.`);
|
|
|
98567
98623
|
extendedAmountInBTC: new Web3Number(0, 0),
|
|
98568
98624
|
calls: []
|
|
98569
98625
|
};
|
|
98570
|
-
;
|
|
98571
98626
|
}
|
|
98572
98627
|
}
|
|
98573
98628
|
async checkPriceDifferenceBetweenAvnuAndExtended(extendedAdapter, vesuAdapter, avnuAdapter) {
|
|
@@ -98745,7 +98800,7 @@ spurious results.`);
|
|
|
98745
98800
|
};
|
|
98746
98801
|
}
|
|
98747
98802
|
};
|
|
98748
|
-
function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1, extendedBackendUrl, extendedApiKey, vaultIdExtended) {
|
|
98803
|
+
function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus) {
|
|
98749
98804
|
vaultSettings.leafAdapters = [];
|
|
98750
98805
|
const wbtcToken = Global.getDefaultTokens().find(
|
|
98751
98806
|
(token) => token.symbol === lstSymbol
|
|
@@ -98785,7 +98840,10 @@ spurious results.`);
|
|
|
98785
98840
|
extendedBaseUrl: "https://api.starknet.extended.exchange",
|
|
98786
98841
|
extendedMarketName: "BTC-USD",
|
|
98787
98842
|
extendedPrecision: 5,
|
|
98788
|
-
avnuAdapter
|
|
98843
|
+
avnuAdapter,
|
|
98844
|
+
retryDelayForOrderStatus: minimumExtendedRetriesDelayForOrderStatus ?? 3e3,
|
|
98845
|
+
minimumExtendedMovementAmount: minimumExtendedMovementAmount ?? 5
|
|
98846
|
+
//5 usdcs
|
|
98789
98847
|
});
|
|
98790
98848
|
const vesuMultiplyAdapter = new VesuMultiplyAdapter({
|
|
98791
98849
|
poolId: pool1,
|
|
@@ -98798,7 +98856,9 @@ spurious results.`);
|
|
|
98798
98856
|
supportedPositions: [
|
|
98799
98857
|
{ asset: wbtcToken, isDebt: false },
|
|
98800
98858
|
{ asset: usdcToken, isDebt: true }
|
|
98801
|
-
]
|
|
98859
|
+
],
|
|
98860
|
+
minimumVesuMovementAmount: minimumVesuMovementAmount ?? 5
|
|
98861
|
+
//5 usdc
|
|
98802
98862
|
});
|
|
98803
98863
|
const unusedBalanceAdapter = new UnusedBalanceAdapter({
|
|
98804
98864
|
...baseAdapterConfig
|
|
@@ -98913,12 +98973,12 @@ spurious results.`);
|
|
|
98913
98973
|
borrowable_assets: [Global.getDefaultTokens().find((token) => token.symbol === "WBTC")],
|
|
98914
98974
|
minimumWBTCDifferenceForAvnuSwap: MINIMUM_WBTC_DIFFERENCE_FOR_AVNU_SWAP
|
|
98915
98975
|
};
|
|
98916
|
-
var VesuExtendedTestStrategies = (extendedBackendUrl, extendedApiKey, vaultIdExtended) => {
|
|
98976
|
+
var VesuExtendedTestStrategies = (extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus) => {
|
|
98917
98977
|
return [
|
|
98918
|
-
getStrategySettingsVesuExtended("WBTC", "USDC", re7UsdcPrimeDevansh, false, false, extendedBackendUrl, extendedApiKey, vaultIdExtended)
|
|
98978
|
+
getStrategySettingsVesuExtended("WBTC", "USDC", re7UsdcPrimeDevansh, false, false, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus)
|
|
98919
98979
|
];
|
|
98920
98980
|
};
|
|
98921
|
-
function getStrategySettingsVesuExtended(lstSymbol, underlyingSymbol, addresses, isPreview = false, isLST, extendedBackendUrl, extendedApiKey, vaultIdExtended) {
|
|
98981
|
+
function getStrategySettingsVesuExtended(lstSymbol, underlyingSymbol, addresses, isPreview = false, isLST, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus) {
|
|
98922
98982
|
return {
|
|
98923
98983
|
name: `Extended Test ${underlyingSymbol}`,
|
|
98924
98984
|
description: getDescription2(lstSymbol, underlyingSymbol),
|
|
@@ -98926,7 +98986,7 @@ spurious results.`);
|
|
|
98926
98986
|
launchBlock: 0,
|
|
98927
98987
|
type: "Other",
|
|
98928
98988
|
depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === underlyingSymbol)],
|
|
98929
|
-
additionalInfo: getLooperSettings2(lstSymbol, underlyingSymbol, addresses, VesuPools.Re7USDCPrime, extendedBackendUrl, extendedApiKey, vaultIdExtended),
|
|
98989
|
+
additionalInfo: getLooperSettings2(lstSymbol, underlyingSymbol, addresses, VesuPools.Re7USDCPrime, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus),
|
|
98930
98990
|
risk: {
|
|
98931
98991
|
riskFactor: _riskFactor3,
|
|
98932
98992
|
netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
|