@strkfarm/sdk 1.1.4 → 1.1.5
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 +256 -115
- package/dist/index.browser.mjs +203 -64
- package/dist/index.d.ts +6 -1
- package/dist/index.js +206 -69
- package/dist/index.mjs +206 -69
- package/package.json +1 -1
- package/src/global.ts +19 -1
- package/src/interfaces/common.tsx +1 -0
- package/src/interfaces/risks.ts +175 -0
- package/src/notifs/telegram.ts +3 -3
- package/src/strategies/ekubo-cl-vault.tsx +201 -71
|
@@ -23128,11 +23128,8 @@ ${r2}}` : "}", l2;
|
|
|
23128
23128
|
}
|
|
23129
23129
|
async fetchEndpoint(method, params) {
|
|
23130
23130
|
try {
|
|
23131
|
-
console.log(`dfsg`);
|
|
23132
23131
|
const rawResult = await this.fetch(method, params, this.requestId += 1);
|
|
23133
|
-
console.log(`dfsg2`);
|
|
23134
23132
|
const { error: error2, result } = await rawResult.json();
|
|
23135
|
-
console.log(`dfsg4`);
|
|
23136
23133
|
this.errorHandler(method, params, error2);
|
|
23137
23134
|
return result;
|
|
23138
23135
|
} catch (error2) {
|
|
@@ -23677,11 +23674,8 @@ ${r2}}` : "}", l2;
|
|
|
23677
23674
|
}
|
|
23678
23675
|
async fetchEndpoint(method, params) {
|
|
23679
23676
|
try {
|
|
23680
|
-
console.log(3435);
|
|
23681
23677
|
const rawResult = await this.fetch(method, params, this.requestId += 1);
|
|
23682
|
-
console.log(3435345);
|
|
23683
23678
|
const { error: error2, result } = await rawResult.json();
|
|
23684
|
-
console.log(343534534256);
|
|
23685
23679
|
this.errorHandler(method, params, error2);
|
|
23686
23680
|
return result;
|
|
23687
23681
|
} catch (error2) {
|
|
@@ -31481,7 +31475,7 @@ ${r2}}` : "}", l2;
|
|
|
31481
31475
|
// node_modules/.pnpm/@starknet-io+types-js@0.8.4/node_modules/@starknet-io/types-js/dist/esm/snip-29/index.js
|
|
31482
31476
|
var snip_29_exports = {};
|
|
31483
31477
|
|
|
31484
|
-
// node_modules/.pnpm/@starknet-io+types-js@0.9.
|
|
31478
|
+
// node_modules/.pnpm/@starknet-io+types-js@0.9.2/node_modules/@starknet-io/types-js/dist/esm/index.js
|
|
31485
31479
|
var esm_exports2 = {};
|
|
31486
31480
|
__export(esm_exports2, {
|
|
31487
31481
|
ABI_TYPE_CONSTRUCTOR: () => ABI_TYPE_CONSTRUCTOR2,
|
|
@@ -31529,7 +31523,7 @@ ${r2}}` : "}", l2;
|
|
|
31529
31523
|
WALLET_API: () => wallet_api_exports2
|
|
31530
31524
|
});
|
|
31531
31525
|
|
|
31532
|
-
// node_modules/.pnpm/@starknet-io+types-js@0.9.
|
|
31526
|
+
// node_modules/.pnpm/@starknet-io+types-js@0.9.2/node_modules/@starknet-io/types-js/dist/esm/api/index.js
|
|
31533
31527
|
var api_exports2 = {};
|
|
31534
31528
|
__export(api_exports2, {
|
|
31535
31529
|
ABI_TYPE_CONSTRUCTOR: () => ABI_TYPE_CONSTRUCTOR2,
|
|
@@ -31572,10 +31566,10 @@ ${r2}}` : "}", l2;
|
|
|
31572
31566
|
TXN_TYPE_L1_HANDLER: () => TXN_TYPE_L1_HANDLER2
|
|
31573
31567
|
});
|
|
31574
31568
|
|
|
31575
|
-
// node_modules/.pnpm/@starknet-io+types-js@0.9.
|
|
31569
|
+
// node_modules/.pnpm/@starknet-io+types-js@0.9.2/node_modules/@starknet-io/types-js/dist/esm/api/contract.js
|
|
31576
31570
|
var contract_exports2 = {};
|
|
31577
31571
|
|
|
31578
|
-
// node_modules/.pnpm/@starknet-io+types-js@0.9.
|
|
31572
|
+
// node_modules/.pnpm/@starknet-io+types-js@0.9.2/node_modules/@starknet-io/types-js/dist/esm/api/constants.js
|
|
31579
31573
|
var STATUS_ACCEPTED_ON_L22 = "ACCEPTED_ON_L2";
|
|
31580
31574
|
var STATUS_ACCEPTED_ON_L12 = "ACCEPTED_ON_L1";
|
|
31581
31575
|
var STATUS_SUCCEEDED2 = "SUCCEEDED";
|
|
@@ -31703,25 +31697,25 @@ ${r2}}` : "}", l2;
|
|
|
31703
31697
|
F3: ETransactionVersion4.F3
|
|
31704
31698
|
};
|
|
31705
31699
|
|
|
31706
|
-
// node_modules/.pnpm/@starknet-io+types-js@0.9.
|
|
31700
|
+
// node_modules/.pnpm/@starknet-io+types-js@0.9.2/node_modules/@starknet-io/types-js/dist/esm/wallet-api/index.js
|
|
31707
31701
|
var wallet_api_exports2 = {};
|
|
31708
31702
|
__export(wallet_api_exports2, {
|
|
31709
31703
|
Permission: () => Permission2,
|
|
31710
31704
|
TypedDataRevision: () => TypedDataRevision3
|
|
31711
31705
|
});
|
|
31712
31706
|
|
|
31713
|
-
// node_modules/.pnpm/@starknet-io+types-js@0.9.
|
|
31707
|
+
// node_modules/.pnpm/@starknet-io+types-js@0.9.2/node_modules/@starknet-io/types-js/dist/esm/wallet-api/constants.js
|
|
31714
31708
|
var Permission2 = {
|
|
31715
31709
|
ACCOUNTS: "accounts"
|
|
31716
31710
|
};
|
|
31717
31711
|
|
|
31718
|
-
// node_modules/.pnpm/@starknet-io+types-js@0.9.
|
|
31712
|
+
// node_modules/.pnpm/@starknet-io+types-js@0.9.2/node_modules/@starknet-io/types-js/dist/esm/wallet-api/typedData.js
|
|
31719
31713
|
var TypedDataRevision3 = {
|
|
31720
31714
|
ACTIVE: "1",
|
|
31721
31715
|
LEGACY: "0"
|
|
31722
31716
|
};
|
|
31723
31717
|
|
|
31724
|
-
// node_modules/.pnpm/@starknet-io+types-js@0.9.
|
|
31718
|
+
// node_modules/.pnpm/@starknet-io+types-js@0.9.2/node_modules/@starknet-io/types-js/dist/esm/snip-29/index.js
|
|
31725
31719
|
var snip_29_exports2 = {};
|
|
31726
31720
|
|
|
31727
31721
|
// node_modules/.pnpm/@scure+base@1.2.1/node_modules/@scure/base/lib/esm/index.js
|
|
@@ -39540,7 +39534,7 @@ ${indent}}` : "}";
|
|
|
39540
39534
|
var _0n6 = BigInt(0);
|
|
39541
39535
|
var Point = secp256k1.ProjectivePoint;
|
|
39542
39536
|
|
|
39543
|
-
// node_modules/.pnpm/starknet@8.5.
|
|
39537
|
+
// node_modules/.pnpm/starknet@8.5.3/node_modules/starknet/dist/index.mjs
|
|
39544
39538
|
init_esm();
|
|
39545
39539
|
var __defProp2 = Object.defineProperty;
|
|
39546
39540
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
@@ -40573,7 +40567,8 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
40573
40567
|
*/
|
|
40574
40568
|
__publicField(this, "data");
|
|
40575
40569
|
_a3.validate(data);
|
|
40576
|
-
|
|
40570
|
+
const processedData = _a3.__processData(data);
|
|
40571
|
+
this.data = processedData.subarray(processedData.findIndex((x) => x > 0));
|
|
40577
40572
|
}
|
|
40578
40573
|
static __processData(data) {
|
|
40579
40574
|
if (isString2(data)) {
|
|
@@ -41155,7 +41150,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
41155
41150
|
constructor(data) {
|
|
41156
41151
|
__publicField(this, "data");
|
|
41157
41152
|
_a6.validate(data);
|
|
41158
|
-
|
|
41153
|
+
const processedData = _a6.__processData(data);
|
|
41154
|
+
this.data = new Uint8Array(_a6.MAX_BYTE_SIZE);
|
|
41155
|
+
this.data.set(processedData, _a6.MAX_BYTE_SIZE - processedData.length);
|
|
41159
41156
|
}
|
|
41160
41157
|
static __processData(data) {
|
|
41161
41158
|
if (isString2(data)) {
|
|
@@ -41176,11 +41173,16 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
41176
41173
|
return uint8ArrayToBigInt(this.data);
|
|
41177
41174
|
}
|
|
41178
41175
|
decodeUtf8() {
|
|
41179
|
-
|
|
41176
|
+
const cutoff = this.data.findIndex((x) => x > 0);
|
|
41177
|
+
const pruned = this.data.subarray(cutoff >= 0 ? cutoff : Infinity);
|
|
41178
|
+
return new TextDecoder().decode(pruned);
|
|
41180
41179
|
}
|
|
41181
|
-
|
|
41182
|
-
|
|
41183
|
-
|
|
41180
|
+
/**
|
|
41181
|
+
* @param padded flag for including leading zeros
|
|
41182
|
+
*/
|
|
41183
|
+
toHexString(padded) {
|
|
41184
|
+
const hex = padded === "padded" ? buf2hex(this.data) : this.toBigInt().toString(16);
|
|
41185
|
+
return addHexPrefix(hex);
|
|
41184
41186
|
}
|
|
41185
41187
|
static validate(data) {
|
|
41186
41188
|
const byteLength = _a6.__processData(data).length;
|
|
@@ -41453,11 +41455,11 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
41453
41455
|
]);
|
|
41454
41456
|
}
|
|
41455
41457
|
decodeUtf8() {
|
|
41456
|
-
const allBytes = this.
|
|
41458
|
+
const allBytes = concatenateArrayBuffer(this.toElements());
|
|
41457
41459
|
return new TextDecoder().decode(allBytes);
|
|
41458
41460
|
}
|
|
41459
41461
|
toBigInt() {
|
|
41460
|
-
const allBytes = this.
|
|
41462
|
+
const allBytes = concatenateArrayBuffer(this.toElements());
|
|
41461
41463
|
if (allBytes.length === 0) {
|
|
41462
41464
|
return 0n;
|
|
41463
41465
|
}
|
|
@@ -41468,15 +41470,39 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
41468
41470
|
return result;
|
|
41469
41471
|
}
|
|
41470
41472
|
toHexString() {
|
|
41471
|
-
const allBytes = this.
|
|
41473
|
+
const allBytes = concatenateArrayBuffer(this.toElements());
|
|
41472
41474
|
const hexValue2 = allBytes.length === 0 ? "0" : buf2hex(allBytes);
|
|
41473
41475
|
return addHexPrefix(hexValue2);
|
|
41474
41476
|
}
|
|
41475
41477
|
toBuffer() {
|
|
41476
|
-
this.
|
|
41477
|
-
const allBytes = this.reconstructBytes();
|
|
41478
|
+
const allBytes = concatenateArrayBuffer(this.toElements());
|
|
41478
41479
|
return buffer_default.from(allBytes);
|
|
41479
41480
|
}
|
|
41481
|
+
/**
|
|
41482
|
+
* returns an array of all the data chunks and the pending word
|
|
41483
|
+
* when concatenated, represents the original bytes sequence
|
|
41484
|
+
*/
|
|
41485
|
+
toElements() {
|
|
41486
|
+
this.assertInitialized();
|
|
41487
|
+
const allChunks = this.data.flatMap((chunk) => chunk.data);
|
|
41488
|
+
const pendingLen = Number(this.pending_word_len.toBigInt());
|
|
41489
|
+
if (pendingLen) {
|
|
41490
|
+
const pending = new Uint8Array(pendingLen);
|
|
41491
|
+
const paddingDifference = pendingLen - this.pending_word.data.length;
|
|
41492
|
+
pending.set(this.pending_word.data, paddingDifference);
|
|
41493
|
+
allChunks.push(pending);
|
|
41494
|
+
}
|
|
41495
|
+
return allChunks;
|
|
41496
|
+
}
|
|
41497
|
+
/**
|
|
41498
|
+
* Private helper to check if the CairoByteArray is properly initialized
|
|
41499
|
+
*/
|
|
41500
|
+
assertInitialized() {
|
|
41501
|
+
assert(
|
|
41502
|
+
this.data && this.pending_word !== void 0 && this.pending_word_len !== void 0,
|
|
41503
|
+
"CairoByteArray is not properly initialized"
|
|
41504
|
+
);
|
|
41505
|
+
}
|
|
41480
41506
|
static validate(data) {
|
|
41481
41507
|
assert(data !== null && data !== void 0, "Invalid input: null or undefined");
|
|
41482
41508
|
assert(
|
|
@@ -41524,30 +41550,6 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
41524
41550
|
static isAbiType(abiType) {
|
|
41525
41551
|
return abiType === _a8.abiSelector;
|
|
41526
41552
|
}
|
|
41527
|
-
/**
|
|
41528
|
-
* Private helper to check if the CairoByteArray is properly initialized
|
|
41529
|
-
*/
|
|
41530
|
-
assertInitialized() {
|
|
41531
|
-
assert(
|
|
41532
|
-
this.data && this.pending_word !== void 0 && this.pending_word_len !== void 0,
|
|
41533
|
-
"CairoByteArray is not properly initialized"
|
|
41534
|
-
);
|
|
41535
|
-
}
|
|
41536
|
-
/**
|
|
41537
|
-
* Private helper to reconstruct the full byte sequence from chunks and pending word
|
|
41538
|
-
*/
|
|
41539
|
-
reconstructBytes() {
|
|
41540
|
-
this.assertInitialized();
|
|
41541
|
-
const allChunks = this.data.flatMap((chunk) => chunk.data);
|
|
41542
|
-
const pendingLen = Number(this.pending_word_len.toBigInt());
|
|
41543
|
-
if (pendingLen) {
|
|
41544
|
-
const pending = new Uint8Array(pendingLen);
|
|
41545
|
-
const paddingDifference = pendingLen - this.pending_word.data.length;
|
|
41546
|
-
pending.set(this.pending_word.data, paddingDifference);
|
|
41547
|
-
allChunks.push(pending);
|
|
41548
|
-
}
|
|
41549
|
-
return concatenateArrayBuffer(allChunks);
|
|
41550
|
-
}
|
|
41551
41553
|
static factoryFromApiResponse(responseIterator) {
|
|
41552
41554
|
const data = Array.from(
|
|
41553
41555
|
{ length: Number(getNext(responseIterator)) },
|
|
@@ -49063,7 +49065,7 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
49063
49065
|
name: "WBTC",
|
|
49064
49066
|
symbol: "WBTC",
|
|
49065
49067
|
logo: "https://assets.troves.fi/integrations/tokens/wbtc.svg",
|
|
49066
|
-
address: ContractAddr.from("
|
|
49068
|
+
address: ContractAddr.from("0x03fe2b97c1fd336e750087d68b9b867997fd64a2661ff3ca5a7c771641e8e7ac"),
|
|
49067
49069
|
decimals: 8,
|
|
49068
49070
|
coingeckId: void 0,
|
|
49069
49071
|
displayDecimals: 6,
|
|
@@ -49079,6 +49081,26 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
49079
49081
|
displayDecimals: 6,
|
|
49080
49082
|
priceCheckAmount: 1e-4
|
|
49081
49083
|
// 112000 * 0.0001 = $11.2
|
|
49084
|
+
}, {
|
|
49085
|
+
name: "solvBTC",
|
|
49086
|
+
symbol: "solvBTC",
|
|
49087
|
+
logo: "https://assets.strkfarm.com/integrations/tokens/solvbtc.svg",
|
|
49088
|
+
address: ContractAddr.from("0x0593e034dda23eea82d2ba9a30960ed42cf4a01502cc2351dc9b9881f9931a68"),
|
|
49089
|
+
decimals: 18,
|
|
49090
|
+
coingeckId: void 0,
|
|
49091
|
+
displayDecimals: 6,
|
|
49092
|
+
priceCheckAmount: 1e-4
|
|
49093
|
+
// 112000 * 0.0001 = $11.2
|
|
49094
|
+
}, {
|
|
49095
|
+
name: "LBTC",
|
|
49096
|
+
symbol: "LBTC",
|
|
49097
|
+
logo: "https://assets.strkfarm.com/integrations/tokens/lbtc.svg",
|
|
49098
|
+
address: ContractAddr.from("0x036834a40984312f7f7de8d31e3f6305b325389eaeea5b1c0664b2fb936461a4"),
|
|
49099
|
+
decimals: 8,
|
|
49100
|
+
coingeckId: void 0,
|
|
49101
|
+
displayDecimals: 6,
|
|
49102
|
+
priceCheckAmount: 1e-4
|
|
49103
|
+
// 112000 * 0.0001 = $11.2
|
|
49082
49104
|
}];
|
|
49083
49105
|
var tokens = defaultTokens;
|
|
49084
49106
|
var _Global = class _Global {
|
|
@@ -51034,7 +51056,7 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
51034
51056
|
return "0x" + result;
|
|
51035
51057
|
}
|
|
51036
51058
|
|
|
51037
|
-
// node_modules/.pnpm/@avnu+avnu-sdk@3.0.2_ethers@6.15.0_moment@2.30.1_qs@6.14.0_starknet@8.5.
|
|
51059
|
+
// node_modules/.pnpm/@avnu+avnu-sdk@3.0.2_ethers@6.15.0_moment@2.30.1_qs@6.14.0_starknet@8.5.3/node_modules/@avnu/avnu-sdk/dist/index.mjs
|
|
51038
51060
|
var import_qs = __toESM(require_lib(), 1);
|
|
51039
51061
|
var BASE_URL = "https://starknet.api.avnu.fi";
|
|
51040
51062
|
var ContractError = class {
|
|
@@ -67777,14 +67799,31 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
67777
67799
|
name: "Ekubo",
|
|
67778
67800
|
logo: "https://app.ekubo.org/favicon.ico"
|
|
67779
67801
|
};
|
|
67780
|
-
var
|
|
67781
|
-
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value:
|
|
67782
|
-
{ type: "Impermanent Loss Risk" /* IMPERMANENT_LOSS */, value:
|
|
67783
|
-
{ type: "Market Risk" /* MARKET_RISK */, value:
|
|
67802
|
+
var _corelatedPoolRiskFactors = [
|
|
67803
|
+
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 2 /* WELL_AUDITED */, weight: 34, reason: "Audited smart contracts" },
|
|
67804
|
+
{ type: "Impermanent Loss Risk" /* IMPERMANENT_LOSS */, value: 1 /* HIGHLY_CORRELATED */, weight: 33, reason: "Low risk due to co-related assets" },
|
|
67805
|
+
{ type: "Market Risk" /* MARKET_RISK */, value: 1 /* VERY_LOW_VOLATILITY */, weight: 33, reason: "Low risk due to co-related assets" }
|
|
67806
|
+
];
|
|
67807
|
+
var mediumVolatilityPoolRiskFactors = [
|
|
67808
|
+
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 2 /* WELL_AUDITED */, weight: 34, reason: "Audited smart contracts" },
|
|
67809
|
+
{ type: "Impermanent Loss Risk" /* IMPERMANENT_LOSS */, value: 3 /* NON_CORRELATED */, weight: 33, reason: "Low risk due to co-related assets" },
|
|
67810
|
+
{ type: "Market Risk" /* MARKET_RISK */, value: 3 /* MODERATE_VOLATILITY */, weight: 33, reason: "Low risk due to co-related assets" }
|
|
67784
67811
|
];
|
|
67785
|
-
var
|
|
67786
|
-
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value:
|
|
67812
|
+
var highVolatilityPoolRiskFactors = [
|
|
67813
|
+
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 2 /* WELL_AUDITED */, weight: 34, reason: "Audited smart contracts" },
|
|
67814
|
+
{ type: "Impermanent Loss Risk" /* IMPERMANENT_LOSS */, value: 3 /* NON_CORRELATED */, weight: 33, reason: "Low risk due to co-related assets" },
|
|
67815
|
+
{ type: "Market Risk" /* MARKET_RISK */, value: 4 /* HIGH_VOLATILITY */, weight: 33, reason: "Low risk due to co-related assets" }
|
|
67787
67816
|
];
|
|
67817
|
+
var mediumRisk = {
|
|
67818
|
+
riskFactor: mediumVolatilityPoolRiskFactors,
|
|
67819
|
+
netRisk: mediumVolatilityPoolRiskFactors.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / mediumVolatilityPoolRiskFactors.reduce((acc, curr) => acc + curr.weight, 0),
|
|
67820
|
+
notARisks: getNoRiskTags(mediumVolatilityPoolRiskFactors)
|
|
67821
|
+
};
|
|
67822
|
+
var highRisk = {
|
|
67823
|
+
riskFactor: highVolatilityPoolRiskFactors,
|
|
67824
|
+
netRisk: highVolatilityPoolRiskFactors.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / highVolatilityPoolRiskFactors.reduce((acc, curr) => acc + curr.weight, 0),
|
|
67825
|
+
notARisks: getNoRiskTags(highVolatilityPoolRiskFactors)
|
|
67826
|
+
};
|
|
67788
67827
|
var AUDIT_URL2 = "https://assets.troves.fi/strkfarm/audit_report_vesu_and_ekubo_strats.pdf";
|
|
67789
67828
|
var faqs2 = [
|
|
67790
67829
|
{
|
|
@@ -67799,6 +67838,10 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
67799
67838
|
question: "What happens during withdrawal?",
|
|
67800
67839
|
answer: "During withdrawal, you may receive either or both tokens depending on market conditions and prevailing prices."
|
|
67801
67840
|
},
|
|
67841
|
+
{
|
|
67842
|
+
question: "Are there any deposit/withdrawal fees?",
|
|
67843
|
+
answer: "No, there are no deposit/withdrawal fees. However, there is a performance fee varying between 10-20% of the fees and rewards generated. The exact fee is determined by the strategy and the APY shown is net of this fee."
|
|
67844
|
+
},
|
|
67802
67845
|
{
|
|
67803
67846
|
question: "Is the strategy audited?",
|
|
67804
67847
|
answer: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
|
|
@@ -67833,9 +67876,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
67833
67876
|
auditUrl: AUDIT_URL2,
|
|
67834
67877
|
maxTVL: Web3Number.fromWei("0", 18),
|
|
67835
67878
|
risk: {
|
|
67836
|
-
riskFactor:
|
|
67837
|
-
netRisk:
|
|
67838
|
-
notARisks: getNoRiskTags(
|
|
67879
|
+
riskFactor: _corelatedPoolRiskFactors,
|
|
67880
|
+
netRisk: _corelatedPoolRiskFactors.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _corelatedPoolRiskFactors.reduce((acc, curr) => acc + curr.weight, 0),
|
|
67881
|
+
notARisks: getNoRiskTags(_corelatedPoolRiskFactors)
|
|
67839
67882
|
},
|
|
67840
67883
|
apyMethodology: "APY based on 7-day historical performance, including fees and rewards.",
|
|
67841
67884
|
additionalInfo: {
|
|
@@ -67851,7 +67894,8 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
67851
67894
|
customShouldRebalance: async (currentPrice) => true,
|
|
67852
67895
|
minWaitHours: 24,
|
|
67853
67896
|
direction: "uponly"
|
|
67854
|
-
}
|
|
67897
|
+
},
|
|
67898
|
+
quoteAsset: Global.getDefaultTokens().find((t) => t.symbol === "STRK")
|
|
67855
67899
|
},
|
|
67856
67900
|
faqs: [
|
|
67857
67901
|
...faqs2,
|
|
@@ -67868,68 +67912,165 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
67868
67912
|
contractDetails: [],
|
|
67869
67913
|
investmentSteps: []
|
|
67870
67914
|
};
|
|
67871
|
-
var
|
|
67872
|
-
xSTRKSTRK,
|
|
67915
|
+
var ETHUSDCRe7Strategy = {
|
|
67916
|
+
...xSTRKSTRK,
|
|
67917
|
+
name: "Ekubo ETH/USDC",
|
|
67918
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
67919
|
+
address: ContractAddr.from(
|
|
67920
|
+
"0x160d8fa4569ef6a12e6bf47cb943d7b5ebba8a41a69a14c1d943050ba5ff947"
|
|
67921
|
+
),
|
|
67922
|
+
launchBlock: 1501761,
|
|
67923
|
+
// must be same order as poolKey token0 and token1
|
|
67924
|
+
depositTokens: [
|
|
67925
|
+
Global.getDefaultTokens().find((t) => t.symbol === "ETH"),
|
|
67926
|
+
Global.getDefaultTokens().find((t) => t.symbol === "USDC")
|
|
67927
|
+
],
|
|
67928
|
+
additionalInfo: {
|
|
67929
|
+
newBounds: "Managed by Re7",
|
|
67930
|
+
truePrice: 1,
|
|
67931
|
+
feeBps: 1e3,
|
|
67932
|
+
rebalanceConditions: {
|
|
67933
|
+
customShouldRebalance: async (currentPrice) => currentPrice > 0.99 && currentPrice < 1.01,
|
|
67934
|
+
minWaitHours: 6,
|
|
67935
|
+
direction: "any"
|
|
67936
|
+
},
|
|
67937
|
+
quoteAsset: Global.getDefaultTokens().find((t) => t.symbol === "USDC")
|
|
67938
|
+
},
|
|
67939
|
+
faqs: [
|
|
67940
|
+
...faqs2,
|
|
67941
|
+
{
|
|
67942
|
+
question: "Who is the curator of this strategy?",
|
|
67943
|
+
answer: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
|
|
67944
|
+
"Re7 Labs is the curator of this strategy. Re7 Labs is a well-known Web3 asset management firm. This strategy is completely managed by them, including ownership of the vault. Troves is developer of the smart contracts and maintains infrastructure to help users access these strategies. You can find more information about them on their website ",
|
|
67945
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { href: "https://www.re7labs.xyz", style: { textDecoration: "underline", marginLeft: "2px" }, target: "_blank", children: "here" }),
|
|
67946
|
+
"."
|
|
67947
|
+
] })
|
|
67948
|
+
}
|
|
67949
|
+
],
|
|
67950
|
+
risk: highRisk,
|
|
67951
|
+
points: [],
|
|
67952
|
+
curator: { name: "Re7 Labs", logo: "https://www.re7labs.xyz/favicon.ico" }
|
|
67953
|
+
};
|
|
67954
|
+
var RE7Strategies = [
|
|
67955
|
+
ETHUSDCRe7Strategy,
|
|
67873
67956
|
{
|
|
67874
|
-
...
|
|
67957
|
+
...ETHUSDCRe7Strategy,
|
|
67875
67958
|
name: "Ekubo USDC/USDT",
|
|
67876
67959
|
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
67877
67960
|
address: ContractAddr.from(
|
|
67878
|
-
"
|
|
67961
|
+
"0x3a4f8debaf12af97bb911099bc011d63d6c208d4c5ba8e15d7f437785b0aaa2"
|
|
67879
67962
|
),
|
|
67880
|
-
launchBlock:
|
|
67963
|
+
launchBlock: 1501761,
|
|
67881
67964
|
// must be same order as poolKey token0 and token1
|
|
67882
67965
|
depositTokens: [
|
|
67883
67966
|
Global.getDefaultTokens().find((t) => t.symbol === "USDC"),
|
|
67884
67967
|
Global.getDefaultTokens().find((t) => t.symbol === "USDT")
|
|
67885
67968
|
],
|
|
67886
|
-
|
|
67887
|
-
newBounds: {
|
|
67888
|
-
lower: -1,
|
|
67889
|
-
upper: 1
|
|
67890
|
-
},
|
|
67891
|
-
truePrice: 1,
|
|
67892
|
-
feeBps: 1e3,
|
|
67893
|
-
rebalanceConditions: {
|
|
67894
|
-
customShouldRebalance: async (currentPrice) => currentPrice > 0.99 && currentPrice < 1.01,
|
|
67895
|
-
minWaitHours: 6,
|
|
67896
|
-
direction: "any"
|
|
67897
|
-
}
|
|
67898
|
-
}
|
|
67969
|
+
risk: xSTRKSTRK.risk
|
|
67899
67970
|
},
|
|
67900
67971
|
{
|
|
67901
|
-
...
|
|
67972
|
+
...ETHUSDCRe7Strategy,
|
|
67902
67973
|
name: "Ekubo STRK/USDC",
|
|
67903
67974
|
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
67904
67975
|
address: ContractAddr.from(
|
|
67905
|
-
"
|
|
67976
|
+
"0x351b36d0d9d8b40010658825adeeddb1397436cd41acd0ff6c6e23aaa8b5b30"
|
|
67906
67977
|
),
|
|
67907
|
-
launchBlock:
|
|
67978
|
+
launchBlock: 1501762,
|
|
67908
67979
|
// must be same order as poolKey token0 and token1
|
|
67909
67980
|
depositTokens: [
|
|
67910
67981
|
Global.getDefaultTokens().find((t) => t.symbol === "STRK"),
|
|
67911
67982
|
Global.getDefaultTokens().find((t) => t.symbol === "USDC")
|
|
67912
67983
|
],
|
|
67913
|
-
|
|
67914
|
-
|
|
67915
|
-
|
|
67916
|
-
|
|
67917
|
-
|
|
67918
|
-
|
|
67919
|
-
|
|
67920
|
-
|
|
67921
|
-
|
|
67922
|
-
|
|
67984
|
+
risk: highRisk
|
|
67985
|
+
},
|
|
67986
|
+
{
|
|
67987
|
+
...ETHUSDCRe7Strategy,
|
|
67988
|
+
name: "Ekubo STRK/ETH",
|
|
67989
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
67990
|
+
address: ContractAddr.from(
|
|
67991
|
+
"0x4ce3024b0ee879009112d7b0e073f8a87153dd35b029347d4247ffe48d28f51"
|
|
67992
|
+
),
|
|
67993
|
+
launchBlock: 1501763,
|
|
67994
|
+
// must be same order as poolKey token0 and token1
|
|
67995
|
+
depositTokens: [
|
|
67996
|
+
Global.getDefaultTokens().find((t) => t.symbol === "STRK"),
|
|
67997
|
+
Global.getDefaultTokens().find((t) => t.symbol === "ETH")
|
|
67998
|
+
],
|
|
67999
|
+
risk: highRisk
|
|
68000
|
+
},
|
|
68001
|
+
{
|
|
68002
|
+
...ETHUSDCRe7Strategy,
|
|
68003
|
+
name: "Ekubo WBTC/USDC",
|
|
68004
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
68005
|
+
address: ContractAddr.from(
|
|
68006
|
+
"0x2bcaef2eb7706875a5fdc6853dd961a0590f850bc3a031c59887189b5e84ba1"
|
|
68007
|
+
),
|
|
68008
|
+
launchBlock: 1501764,
|
|
68009
|
+
// must be same order as poolKey token0 and token1
|
|
68010
|
+
depositTokens: [
|
|
68011
|
+
Global.getDefaultTokens().find((t) => t.symbol === "WBTC"),
|
|
68012
|
+
Global.getDefaultTokens().find((t) => t.symbol === "USDC")
|
|
68013
|
+
],
|
|
68014
|
+
risk: mediumRisk
|
|
68015
|
+
},
|
|
68016
|
+
{
|
|
68017
|
+
...ETHUSDCRe7Strategy,
|
|
68018
|
+
name: "Ekubo tBTC/USDC",
|
|
68019
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
68020
|
+
address: ContractAddr.from(
|
|
68021
|
+
"0x4aad891a2d4432fba06b6558631bb13f6bbd7f6f33ab8c3111e344889ea4456"
|
|
68022
|
+
),
|
|
68023
|
+
launchBlock: 1501764,
|
|
68024
|
+
// must be same order as poolKey token0 and token1
|
|
68025
|
+
depositTokens: [
|
|
68026
|
+
Global.getDefaultTokens().find((t) => t.symbol === "tBTC"),
|
|
68027
|
+
Global.getDefaultTokens().find((t) => t.symbol === "USDC")
|
|
68028
|
+
],
|
|
68029
|
+
risk: mediumRisk
|
|
68030
|
+
},
|
|
68031
|
+
{
|
|
68032
|
+
...ETHUSDCRe7Strategy,
|
|
68033
|
+
name: "Ekubo WBTC/ETH",
|
|
68034
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
68035
|
+
address: ContractAddr.from(
|
|
68036
|
+
"0x1c9232b8186d9317652f05055615f18a120c2ad9e5ee96c39e031c257fb945b"
|
|
68037
|
+
),
|
|
68038
|
+
launchBlock: 1501765,
|
|
68039
|
+
// must be same order as poolKey token0 and token1
|
|
68040
|
+
depositTokens: [
|
|
68041
|
+
Global.getDefaultTokens().find((t) => t.symbol === "WBTC"),
|
|
68042
|
+
Global.getDefaultTokens().find((t) => t.symbol === "ETH")
|
|
68043
|
+
],
|
|
68044
|
+
risk: mediumRisk
|
|
68045
|
+
},
|
|
68046
|
+
{
|
|
68047
|
+
...ETHUSDCRe7Strategy,
|
|
68048
|
+
name: "Ekubo WBTC/STRK",
|
|
68049
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
68050
|
+
address: ContractAddr.from(
|
|
68051
|
+
"0x1248e385c23a929a015ec298a26560fa7745bbd6e41a886550e337b02714b1b"
|
|
68052
|
+
),
|
|
68053
|
+
launchBlock: 1501766,
|
|
68054
|
+
// must be same order as poolKey token0 and token1
|
|
68055
|
+
depositTokens: [
|
|
68056
|
+
Global.getDefaultTokens().find((t) => t.symbol === "WBTC"),
|
|
68057
|
+
Global.getDefaultTokens().find((t) => t.symbol === "STRK")
|
|
68058
|
+
],
|
|
68059
|
+
risk: highRisk
|
|
67923
68060
|
}
|
|
67924
68061
|
];
|
|
68062
|
+
var EkuboCLVaultStrategies = [
|
|
68063
|
+
xSTRKSTRK,
|
|
68064
|
+
...RE7Strategies
|
|
68065
|
+
];
|
|
67925
68066
|
EkuboCLVaultStrategies.forEach((s) => {
|
|
67926
68067
|
s.contractDetails = [
|
|
67927
68068
|
{
|
|
67928
68069
|
address: s.address,
|
|
67929
68070
|
name: "Vault",
|
|
67930
68071
|
sourceCodeUrl: "https://github.com/strkfarm/strkfarm-contracts/tree/main/src/strategies/cl_vault"
|
|
67931
|
-
}
|
|
67932
|
-
...COMMON_CONTRACTS
|
|
68072
|
+
}
|
|
68073
|
+
// ...COMMON_CONTRACTS
|
|
67933
68074
|
];
|
|
67934
68075
|
s.docs = "https://docs.troves.fi/p/ekubo-cl-vaults";
|
|
67935
68076
|
s.description = /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
|
|
@@ -69897,7 +70038,7 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
69897
70038
|
name: "Endur",
|
|
69898
70039
|
logo: "https://app.endur.fi/logo.png"
|
|
69899
70040
|
};
|
|
69900
|
-
var
|
|
70041
|
+
var _riskFactor2 = [
|
|
69901
70042
|
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25, reason: "Audited by CSC" },
|
|
69902
70043
|
{ type: "Depeg Risk" /* DEPEG_RISK */, value: 0.25, weight: 25, reason: "Depending on prevailing market conditions and trading activity, xSTRK may lose its peg to the underlying asset." },
|
|
69903
70044
|
{ type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 0.1, weight: 10, reason: "Liquidation risk is low due to the nature of the Re7 Pool on Vesu" },
|
|
@@ -69972,9 +70113,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
69972
70113
|
protocols: [endurProtocol, vesuProtocol],
|
|
69973
70114
|
maxTVL: new Web3Number("1500000", 18),
|
|
69974
70115
|
risk: {
|
|
69975
|
-
riskFactor:
|
|
69976
|
-
netRisk:
|
|
69977
|
-
notARisks: getNoRiskTags(
|
|
70116
|
+
riskFactor: _riskFactor2,
|
|
70117
|
+
netRisk: _riskFactor2.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor2.reduce((acc, curr) => acc + curr.weight, 0),
|
|
70118
|
+
notARisks: getNoRiskTags(_riskFactor2)
|
|
69978
70119
|
},
|
|
69979
70120
|
additionalInfo: {
|
|
69980
70121
|
mainToken: Global.getDefaultTokens().find((t) => t.symbol === "STRK"),
|
|
@@ -75578,7 +75719,7 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
75578
75719
|
vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, USDCToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */).bind(commonAdapter));
|
|
75579
75720
|
return vaultSettings;
|
|
75580
75721
|
}
|
|
75581
|
-
var
|
|
75722
|
+
var _riskFactor3 = [
|
|
75582
75723
|
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25, reason: "Audited by Zellic" },
|
|
75583
75724
|
{ type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1.5, weight: 50, reason: "Liquidation risk is mitigated by stable price feed on Starknet" },
|
|
75584
75725
|
{ type: "Technical Risk" /* TECHNICAL_RISK */, value: 1, weight: 50, reason: "Technical failures like risk monitoring failures" }
|
|
@@ -75782,9 +75923,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
75782
75923
|
depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === "USDC")],
|
|
75783
75924
|
additionalInfo: getLooperSettings("USDC", "ETH", usdcVaultSettings, VesuPools.Genesis, VesuPools.Genesis),
|
|
75784
75925
|
risk: {
|
|
75785
|
-
riskFactor:
|
|
75786
|
-
netRisk:
|
|
75787
|
-
notARisks: getNoRiskTags(
|
|
75926
|
+
riskFactor: _riskFactor3,
|
|
75927
|
+
netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
|
|
75928
|
+
notARisks: getNoRiskTags(_riskFactor3)
|
|
75788
75929
|
},
|
|
75789
75930
|
protocols: [Protocols.VESU],
|
|
75790
75931
|
maxTVL: Web3Number.fromWei(0, 6),
|
|
@@ -75801,9 +75942,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
75801
75942
|
depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === "WBTC")],
|
|
75802
75943
|
additionalInfo: getLooperSettings("WBTC", "ETH", wbtcVaultSettings, VesuPools.Genesis, VesuPools.Genesis),
|
|
75803
75944
|
risk: {
|
|
75804
|
-
riskFactor:
|
|
75805
|
-
netRisk:
|
|
75806
|
-
notARisks: getNoRiskTags(
|
|
75945
|
+
riskFactor: _riskFactor3,
|
|
75946
|
+
netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
|
|
75947
|
+
notARisks: getNoRiskTags(_riskFactor3)
|
|
75807
75948
|
},
|
|
75808
75949
|
protocols: [Protocols.VESU],
|
|
75809
75950
|
maxTVL: Web3Number.fromWei(0, 8),
|
|
@@ -75820,9 +75961,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
75820
75961
|
depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === "ETH")],
|
|
75821
75962
|
additionalInfo: getLooperSettings("ETH", "WBTC", ethVaultSettings, VesuPools.Genesis, VesuPools.Genesis),
|
|
75822
75963
|
risk: {
|
|
75823
|
-
riskFactor:
|
|
75824
|
-
netRisk:
|
|
75825
|
-
notARisks: getNoRiskTags(
|
|
75964
|
+
riskFactor: _riskFactor3,
|
|
75965
|
+
netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
|
|
75966
|
+
notARisks: getNoRiskTags(_riskFactor3)
|
|
75826
75967
|
},
|
|
75827
75968
|
protocols: [Protocols.VESU],
|
|
75828
75969
|
maxTVL: Web3Number.fromWei(0, 18),
|
|
@@ -75839,9 +75980,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
75839
75980
|
depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === "STRK")],
|
|
75840
75981
|
additionalInfo: getLooperSettings("STRK", "ETH", strkVaultSettings, VesuPools.Genesis, VesuPools.Genesis),
|
|
75841
75982
|
risk: {
|
|
75842
|
-
riskFactor:
|
|
75843
|
-
netRisk:
|
|
75844
|
-
notARisks: getNoRiskTags(
|
|
75983
|
+
riskFactor: _riskFactor3,
|
|
75984
|
+
netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
|
|
75985
|
+
notARisks: getNoRiskTags(_riskFactor3)
|
|
75845
75986
|
},
|
|
75846
75987
|
protocols: [Protocols.VESU],
|
|
75847
75988
|
maxTVL: Web3Number.fromWei(0, 18),
|
|
@@ -75858,9 +75999,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
75858
75999
|
depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === "USDT")],
|
|
75859
76000
|
additionalInfo: getLooperSettings("USDT", "ETH", usdtVaultSettings, VesuPools.Genesis, VesuPools.Genesis),
|
|
75860
76001
|
risk: {
|
|
75861
|
-
riskFactor:
|
|
75862
|
-
netRisk:
|
|
75863
|
-
notARisks: getNoRiskTags(
|
|
76002
|
+
riskFactor: _riskFactor3,
|
|
76003
|
+
netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
|
|
76004
|
+
notARisks: getNoRiskTags(_riskFactor3)
|
|
75864
76005
|
},
|
|
75865
76006
|
protocols: [Protocols.VESU],
|
|
75866
76007
|
maxTVL: Web3Number.fromWei(0, 6),
|