@strkfarm/sdk 1.1.3 → 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 +263 -117
- package/dist/index.browser.mjs +210 -66
- package/dist/index.d.ts +6 -1
- package/dist/index.js +213 -71
- package/dist/index.mjs +213 -71
- package/package.json +1 -1
- package/src/global.ts +24 -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)) },
|
|
@@ -49021,7 +49023,8 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
49021
49023
|
address: ContractAddr.from("0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d"),
|
|
49022
49024
|
decimals: 18,
|
|
49023
49025
|
coingeckId: "starknet",
|
|
49024
|
-
displayDecimals: 2
|
|
49026
|
+
displayDecimals: 2,
|
|
49027
|
+
priceCheckAmount: 1e3
|
|
49025
49028
|
}, {
|
|
49026
49029
|
name: "xSTRK",
|
|
49027
49030
|
symbol: "xSTRK",
|
|
@@ -49029,6 +49032,7 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
49029
49032
|
address: ContractAddr.from("0x028d709c875c0ceac3dce7065bec5328186dc89fe254527084d1689910954b0a"),
|
|
49030
49033
|
decimals: 18,
|
|
49031
49034
|
coingeckId: void 0,
|
|
49035
|
+
priceCheckAmount: 1e3,
|
|
49032
49036
|
displayDecimals: 2
|
|
49033
49037
|
}, {
|
|
49034
49038
|
name: "ETH",
|
|
@@ -49037,6 +49041,7 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
49037
49041
|
address: ContractAddr.from("0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7"),
|
|
49038
49042
|
decimals: 18,
|
|
49039
49043
|
coingeckId: void 0,
|
|
49044
|
+
priceCheckAmount: 0.1,
|
|
49040
49045
|
displayDecimals: 6
|
|
49041
49046
|
}, {
|
|
49042
49047
|
name: "USDC",
|
|
@@ -49045,7 +49050,8 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
49045
49050
|
address: ContractAddr.from("0x53c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8"),
|
|
49046
49051
|
decimals: 6,
|
|
49047
49052
|
coingeckId: void 0,
|
|
49048
|
-
displayDecimals: 2
|
|
49053
|
+
displayDecimals: 2,
|
|
49054
|
+
priceCheckAmount: 1e3
|
|
49049
49055
|
}, {
|
|
49050
49056
|
name: "USDT",
|
|
49051
49057
|
symbol: "USDT",
|
|
@@ -49053,12 +49059,13 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
49053
49059
|
address: ContractAddr.from("0x68f5c6a61780768455de69077e07e89787839bf8166decfbf92b645209c0fb8"),
|
|
49054
49060
|
decimals: 6,
|
|
49055
49061
|
coingeckId: void 0,
|
|
49062
|
+
priceCheckAmount: 1e3,
|
|
49056
49063
|
displayDecimals: 2
|
|
49057
49064
|
}, {
|
|
49058
49065
|
name: "WBTC",
|
|
49059
49066
|
symbol: "WBTC",
|
|
49060
49067
|
logo: "https://assets.troves.fi/integrations/tokens/wbtc.svg",
|
|
49061
|
-
address: ContractAddr.from("
|
|
49068
|
+
address: ContractAddr.from("0x03fe2b97c1fd336e750087d68b9b867997fd64a2661ff3ca5a7c771641e8e7ac"),
|
|
49062
49069
|
decimals: 8,
|
|
49063
49070
|
coingeckId: void 0,
|
|
49064
49071
|
displayDecimals: 6,
|
|
@@ -49074,6 +49081,26 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
49074
49081
|
displayDecimals: 6,
|
|
49075
49082
|
priceCheckAmount: 1e-4
|
|
49076
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
|
|
49077
49104
|
}];
|
|
49078
49105
|
var tokens = defaultTokens;
|
|
49079
49106
|
var _Global = class _Global {
|
|
@@ -51029,7 +51056,7 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
51029
51056
|
return "0x" + result;
|
|
51030
51057
|
}
|
|
51031
51058
|
|
|
51032
|
-
// 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
|
|
51033
51060
|
var import_qs = __toESM(require_lib(), 1);
|
|
51034
51061
|
var BASE_URL = "https://starknet.api.avnu.fi";
|
|
51035
51062
|
var ContractError = class {
|
|
@@ -67772,14 +67799,31 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
67772
67799
|
name: "Ekubo",
|
|
67773
67800
|
logo: "https://app.ekubo.org/favicon.ico"
|
|
67774
67801
|
};
|
|
67775
|
-
var
|
|
67776
|
-
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value:
|
|
67777
|
-
{ type: "Impermanent Loss Risk" /* IMPERMANENT_LOSS */, value:
|
|
67778
|
-
{ 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" }
|
|
67779
67806
|
];
|
|
67780
|
-
var
|
|
67781
|
-
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value:
|
|
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" }
|
|
67782
67811
|
];
|
|
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" }
|
|
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
|
+
};
|
|
67783
67827
|
var AUDIT_URL2 = "https://assets.troves.fi/strkfarm/audit_report_vesu_and_ekubo_strats.pdf";
|
|
67784
67828
|
var faqs2 = [
|
|
67785
67829
|
{
|
|
@@ -67794,6 +67838,10 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
67794
67838
|
question: "What happens during withdrawal?",
|
|
67795
67839
|
answer: "During withdrawal, you may receive either or both tokens depending on market conditions and prevailing prices."
|
|
67796
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
|
+
},
|
|
67797
67845
|
{
|
|
67798
67846
|
question: "Is the strategy audited?",
|
|
67799
67847
|
answer: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
|
|
@@ -67828,9 +67876,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
67828
67876
|
auditUrl: AUDIT_URL2,
|
|
67829
67877
|
maxTVL: Web3Number.fromWei("0", 18),
|
|
67830
67878
|
risk: {
|
|
67831
|
-
riskFactor:
|
|
67832
|
-
netRisk:
|
|
67833
|
-
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)
|
|
67834
67882
|
},
|
|
67835
67883
|
apyMethodology: "APY based on 7-day historical performance, including fees and rewards.",
|
|
67836
67884
|
additionalInfo: {
|
|
@@ -67846,7 +67894,8 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
67846
67894
|
customShouldRebalance: async (currentPrice) => true,
|
|
67847
67895
|
minWaitHours: 24,
|
|
67848
67896
|
direction: "uponly"
|
|
67849
|
-
}
|
|
67897
|
+
},
|
|
67898
|
+
quoteAsset: Global.getDefaultTokens().find((t) => t.symbol === "STRK")
|
|
67850
67899
|
},
|
|
67851
67900
|
faqs: [
|
|
67852
67901
|
...faqs2,
|
|
@@ -67863,68 +67912,165 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
67863
67912
|
contractDetails: [],
|
|
67864
67913
|
investmentSteps: []
|
|
67865
67914
|
};
|
|
67866
|
-
var
|
|
67867
|
-
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,
|
|
67868
67956
|
{
|
|
67869
|
-
...
|
|
67957
|
+
...ETHUSDCRe7Strategy,
|
|
67870
67958
|
name: "Ekubo USDC/USDT",
|
|
67871
67959
|
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
67872
67960
|
address: ContractAddr.from(
|
|
67873
|
-
"
|
|
67961
|
+
"0x3a4f8debaf12af97bb911099bc011d63d6c208d4c5ba8e15d7f437785b0aaa2"
|
|
67874
67962
|
),
|
|
67875
|
-
launchBlock:
|
|
67963
|
+
launchBlock: 1501761,
|
|
67876
67964
|
// must be same order as poolKey token0 and token1
|
|
67877
67965
|
depositTokens: [
|
|
67878
67966
|
Global.getDefaultTokens().find((t) => t.symbol === "USDC"),
|
|
67879
67967
|
Global.getDefaultTokens().find((t) => t.symbol === "USDT")
|
|
67880
67968
|
],
|
|
67881
|
-
|
|
67882
|
-
newBounds: {
|
|
67883
|
-
lower: -1,
|
|
67884
|
-
upper: 1
|
|
67885
|
-
},
|
|
67886
|
-
truePrice: 1,
|
|
67887
|
-
feeBps: 1e3,
|
|
67888
|
-
rebalanceConditions: {
|
|
67889
|
-
customShouldRebalance: async (currentPrice) => currentPrice > 0.99 && currentPrice < 1.01,
|
|
67890
|
-
minWaitHours: 6,
|
|
67891
|
-
direction: "any"
|
|
67892
|
-
}
|
|
67893
|
-
}
|
|
67969
|
+
risk: xSTRKSTRK.risk
|
|
67894
67970
|
},
|
|
67895
67971
|
{
|
|
67896
|
-
...
|
|
67972
|
+
...ETHUSDCRe7Strategy,
|
|
67897
67973
|
name: "Ekubo STRK/USDC",
|
|
67898
67974
|
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
67899
67975
|
address: ContractAddr.from(
|
|
67900
|
-
"
|
|
67976
|
+
"0x351b36d0d9d8b40010658825adeeddb1397436cd41acd0ff6c6e23aaa8b5b30"
|
|
67901
67977
|
),
|
|
67902
|
-
launchBlock:
|
|
67978
|
+
launchBlock: 1501762,
|
|
67903
67979
|
// must be same order as poolKey token0 and token1
|
|
67904
67980
|
depositTokens: [
|
|
67905
67981
|
Global.getDefaultTokens().find((t) => t.symbol === "STRK"),
|
|
67906
67982
|
Global.getDefaultTokens().find((t) => t.symbol === "USDC")
|
|
67907
67983
|
],
|
|
67908
|
-
|
|
67909
|
-
|
|
67910
|
-
|
|
67911
|
-
|
|
67912
|
-
|
|
67913
|
-
|
|
67914
|
-
|
|
67915
|
-
|
|
67916
|
-
|
|
67917
|
-
|
|
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
|
|
67918
68060
|
}
|
|
67919
68061
|
];
|
|
68062
|
+
var EkuboCLVaultStrategies = [
|
|
68063
|
+
xSTRKSTRK,
|
|
68064
|
+
...RE7Strategies
|
|
68065
|
+
];
|
|
67920
68066
|
EkuboCLVaultStrategies.forEach((s) => {
|
|
67921
68067
|
s.contractDetails = [
|
|
67922
68068
|
{
|
|
67923
68069
|
address: s.address,
|
|
67924
68070
|
name: "Vault",
|
|
67925
68071
|
sourceCodeUrl: "https://github.com/strkfarm/strkfarm-contracts/tree/main/src/strategies/cl_vault"
|
|
67926
|
-
}
|
|
67927
|
-
...COMMON_CONTRACTS
|
|
68072
|
+
}
|
|
68073
|
+
// ...COMMON_CONTRACTS
|
|
67928
68074
|
];
|
|
67929
68075
|
s.docs = "https://docs.troves.fi/p/ekubo-cl-vaults";
|
|
67930
68076
|
s.description = /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
|
|
@@ -69892,7 +70038,7 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
69892
70038
|
name: "Endur",
|
|
69893
70039
|
logo: "https://app.endur.fi/logo.png"
|
|
69894
70040
|
};
|
|
69895
|
-
var
|
|
70041
|
+
var _riskFactor2 = [
|
|
69896
70042
|
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25, reason: "Audited by CSC" },
|
|
69897
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." },
|
|
69898
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" },
|
|
@@ -69967,9 +70113,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
69967
70113
|
protocols: [endurProtocol, vesuProtocol],
|
|
69968
70114
|
maxTVL: new Web3Number("1500000", 18),
|
|
69969
70115
|
risk: {
|
|
69970
|
-
riskFactor:
|
|
69971
|
-
netRisk:
|
|
69972
|
-
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)
|
|
69973
70119
|
},
|
|
69974
70120
|
additionalInfo: {
|
|
69975
70121
|
mainToken: Global.getDefaultTokens().find((t) => t.symbol === "STRK"),
|
|
@@ -75573,7 +75719,7 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
75573
75719
|
vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, USDCToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */).bind(commonAdapter));
|
|
75574
75720
|
return vaultSettings;
|
|
75575
75721
|
}
|
|
75576
|
-
var
|
|
75722
|
+
var _riskFactor3 = [
|
|
75577
75723
|
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25, reason: "Audited by Zellic" },
|
|
75578
75724
|
{ type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1.5, weight: 50, reason: "Liquidation risk is mitigated by stable price feed on Starknet" },
|
|
75579
75725
|
{ type: "Technical Risk" /* TECHNICAL_RISK */, value: 1, weight: 50, reason: "Technical failures like risk monitoring failures" }
|
|
@@ -75777,9 +75923,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
75777
75923
|
depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === "USDC")],
|
|
75778
75924
|
additionalInfo: getLooperSettings("USDC", "ETH", usdcVaultSettings, VesuPools.Genesis, VesuPools.Genesis),
|
|
75779
75925
|
risk: {
|
|
75780
|
-
riskFactor:
|
|
75781
|
-
netRisk:
|
|
75782
|
-
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)
|
|
75783
75929
|
},
|
|
75784
75930
|
protocols: [Protocols.VESU],
|
|
75785
75931
|
maxTVL: Web3Number.fromWei(0, 6),
|
|
@@ -75796,9 +75942,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
75796
75942
|
depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === "WBTC")],
|
|
75797
75943
|
additionalInfo: getLooperSettings("WBTC", "ETH", wbtcVaultSettings, VesuPools.Genesis, VesuPools.Genesis),
|
|
75798
75944
|
risk: {
|
|
75799
|
-
riskFactor:
|
|
75800
|
-
netRisk:
|
|
75801
|
-
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)
|
|
75802
75948
|
},
|
|
75803
75949
|
protocols: [Protocols.VESU],
|
|
75804
75950
|
maxTVL: Web3Number.fromWei(0, 8),
|
|
@@ -75815,9 +75961,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
75815
75961
|
depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === "ETH")],
|
|
75816
75962
|
additionalInfo: getLooperSettings("ETH", "WBTC", ethVaultSettings, VesuPools.Genesis, VesuPools.Genesis),
|
|
75817
75963
|
risk: {
|
|
75818
|
-
riskFactor:
|
|
75819
|
-
netRisk:
|
|
75820
|
-
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)
|
|
75821
75967
|
},
|
|
75822
75968
|
protocols: [Protocols.VESU],
|
|
75823
75969
|
maxTVL: Web3Number.fromWei(0, 18),
|
|
@@ -75834,9 +75980,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
75834
75980
|
depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === "STRK")],
|
|
75835
75981
|
additionalInfo: getLooperSettings("STRK", "ETH", strkVaultSettings, VesuPools.Genesis, VesuPools.Genesis),
|
|
75836
75982
|
risk: {
|
|
75837
|
-
riskFactor:
|
|
75838
|
-
netRisk:
|
|
75839
|
-
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)
|
|
75840
75986
|
},
|
|
75841
75987
|
protocols: [Protocols.VESU],
|
|
75842
75988
|
maxTVL: Web3Number.fromWei(0, 18),
|
|
@@ -75853,9 +75999,9 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
75853
75999
|
depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === "USDT")],
|
|
75854
76000
|
additionalInfo: getLooperSettings("USDT", "ETH", usdtVaultSettings, VesuPools.Genesis, VesuPools.Genesis),
|
|
75855
76001
|
risk: {
|
|
75856
|
-
riskFactor:
|
|
75857
|
-
netRisk:
|
|
75858
|
-
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)
|
|
75859
76005
|
},
|
|
75860
76006
|
protocols: [Protocols.VESU],
|
|
75861
76007
|
maxTVL: Web3Number.fromWei(0, 6),
|