@strkfarm/sdk 2.0.0-staging.6 → 2.0.0-staging.60
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/cli.js +9 -5
- package/dist/cli.mjs +9 -5
- package/dist/index.browser.global.js +2994 -990
- package/dist/index.browser.mjs +2669 -658
- package/dist/index.d.ts +323 -47
- package/dist/index.js +2772 -746
- package/dist/index.mjs +2680 -663
- package/package.json +4 -4
- package/src/data/universal-vault.abi.json +143 -27
- package/src/dataTypes/_bignumber.ts +5 -0
- package/src/dataTypes/bignumber.browser.ts +5 -0
- package/src/dataTypes/bignumber.node.ts +5 -0
- package/src/global.ts +48 -1
- package/src/interfaces/common.tsx +83 -26
- package/src/modules/avnu.ts +1 -1
- package/src/modules/erc20.ts +18 -2
- package/src/modules/index.ts +2 -1
- package/src/strategies/base-strategy.ts +153 -8
- package/src/strategies/constants.ts +2 -2
- package/src/strategies/ekubo-cl-vault.tsx +266 -103
- package/src/strategies/factory.ts +21 -1
- package/src/strategies/index.ts +2 -0
- package/src/strategies/registry.ts +15 -30
- package/src/strategies/sensei.ts +54 -11
- package/src/strategies/types.ts +4 -0
- package/src/strategies/universal-adapters/vesu-adapter.ts +48 -27
- package/src/strategies/universal-lst-muliplier-strategy.tsx +1461 -580
- package/src/strategies/universal-strategy.tsx +144 -77
- package/src/strategies/vesu-rebalance.tsx +27 -12
- package/src/strategies/yoloVault.ts +1063 -0
- package/src/utils/logger.node.ts +11 -4
- package/src/utils/strategy-utils.ts +6 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import BigNumber from 'bignumber.js';
|
|
2
1
|
import * as starknet from 'starknet';
|
|
3
|
-
import { RpcProvider, BlockIdentifier, Contract,
|
|
2
|
+
import { Uint256, RpcProvider, BlockIdentifier, Contract, Call, Account, CairoCustomEnum, RawArgs } from 'starknet';
|
|
3
|
+
import BigNumber from 'bignumber.js';
|
|
4
4
|
import React, { ReactNode } from 'react';
|
|
5
5
|
import { Quote, AvnuOptions } from '@avnu/avnu-sdk';
|
|
6
6
|
import { HexString, BytesLike } from '@ericnordelo/strk-merkle-tree/dist/bytes';
|
|
@@ -31,10 +31,12 @@ declare class _Web3Number<T extends _Web3Number<T>> extends BigNumber {
|
|
|
31
31
|
mag: bigint;
|
|
32
32
|
sign: 0 | 1;
|
|
33
33
|
};
|
|
34
|
+
toUint256(): starknet.Uint256;
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
declare class Web3Number extends _Web3Number<Web3Number> {
|
|
37
38
|
static fromWei(weiNumber: string | number, decimals: number): Web3Number;
|
|
39
|
+
static fromUint256(uint256Value: Uint256): Web3Number;
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
/**
|
|
@@ -123,20 +125,23 @@ interface IProtocol {
|
|
|
123
125
|
name: string;
|
|
124
126
|
logo: string;
|
|
125
127
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
META_VAULTS = "meta-vaults"
|
|
128
|
+
interface ICurator {
|
|
129
|
+
name: string;
|
|
130
|
+
logo: string;
|
|
130
131
|
}
|
|
131
132
|
declare enum StrategyTag {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
VESU = "Vesu",
|
|
136
|
-
SENSEI = "Sensei",
|
|
137
|
-
ENDUR = "Endur",
|
|
133
|
+
META_VAULT = "Meta Vaults",
|
|
134
|
+
LEVERED = "Maxx",
|
|
135
|
+
AUTOMATED_LP = "Ekubo",
|
|
138
136
|
BTC = "BTC"
|
|
139
137
|
}
|
|
138
|
+
declare enum VaultType {
|
|
139
|
+
LOOPING = "Looping",
|
|
140
|
+
META_VAULT = "Meta Vault",
|
|
141
|
+
DELTA_NEUTRAL = "Delta Neutral",
|
|
142
|
+
AUTOMATED_LP = "Automated LP",
|
|
143
|
+
TVA = "Troves Value Averaging"
|
|
144
|
+
}
|
|
140
145
|
declare enum AuditStatus {
|
|
141
146
|
AUDITED = "Audited",
|
|
142
147
|
NOT_AUDITED = "Not Audited"
|
|
@@ -147,7 +152,8 @@ declare enum SourceCodeType {
|
|
|
147
152
|
}
|
|
148
153
|
declare enum AccessControlType {
|
|
149
154
|
MULTISIG_ACCOUNT = "Multisig Account",
|
|
150
|
-
STANDARD_ACCOUNT = "Standard Account"
|
|
155
|
+
STANDARD_ACCOUNT = "Standard Account",
|
|
156
|
+
ROLE_BASED_ACCESS = "Role Based Access"
|
|
151
157
|
}
|
|
152
158
|
declare enum InstantWithdrawalVault {
|
|
153
159
|
YES = "Yes",
|
|
@@ -160,21 +166,20 @@ interface SourceCodeInfo {
|
|
|
160
166
|
interface AccessControlInfo {
|
|
161
167
|
type: AccessControlType;
|
|
162
168
|
addresses: ContractAddr[];
|
|
163
|
-
timeLock
|
|
169
|
+
timeLock?: string;
|
|
164
170
|
}
|
|
165
171
|
interface SecurityMetadata {
|
|
166
172
|
auditStatus: AuditStatus;
|
|
167
173
|
sourceCode: SourceCodeInfo;
|
|
168
174
|
accessControl: AccessControlInfo;
|
|
169
175
|
}
|
|
170
|
-
interface RedemptionExpectedTime {
|
|
171
|
-
upto1M: string;
|
|
172
|
-
upto10M: string;
|
|
173
|
-
above10M: string;
|
|
174
|
-
}
|
|
175
176
|
interface RedemptionInfo {
|
|
176
177
|
instantWithdrawalVault: InstantWithdrawalVault;
|
|
177
|
-
|
|
178
|
+
redemptionsInfo: {
|
|
179
|
+
title: string;
|
|
180
|
+
description: string;
|
|
181
|
+
}[];
|
|
182
|
+
alerts: StrategyAlert[];
|
|
178
183
|
}
|
|
179
184
|
declare enum FlowChartColors {
|
|
180
185
|
Green = "purple",
|
|
@@ -189,7 +194,8 @@ declare enum StrategyLiveStatus {
|
|
|
189
194
|
ACTIVE = "Active",
|
|
190
195
|
NEW = "New",
|
|
191
196
|
COMING_SOON = "Coming Soon",
|
|
192
|
-
|
|
197
|
+
DEPRECATED = "Deprecated",// active but not recommended
|
|
198
|
+
RETIRED = "Retired",// not active anymore
|
|
193
199
|
HOT = "Hot & New \uD83D\uDD25"
|
|
194
200
|
}
|
|
195
201
|
interface StrategyAlert {
|
|
@@ -198,7 +204,6 @@ interface StrategyAlert {
|
|
|
198
204
|
tab: "all" | "deposit" | "withdraw";
|
|
199
205
|
}
|
|
200
206
|
interface StrategySettings {
|
|
201
|
-
maxTVL?: Web3Number;
|
|
202
207
|
liveStatus?: StrategyLiveStatus;
|
|
203
208
|
isPaused?: boolean;
|
|
204
209
|
isInMaintenance?: boolean;
|
|
@@ -213,6 +218,10 @@ interface StrategySettings {
|
|
|
213
218
|
alerts?: StrategyAlert[];
|
|
214
219
|
tags?: StrategyTag[];
|
|
215
220
|
}
|
|
221
|
+
interface StrategyApyHistoryUIConfig {
|
|
222
|
+
showApyHistory?: boolean;
|
|
223
|
+
noApyHistoryMessage?: string;
|
|
224
|
+
}
|
|
216
225
|
/**
|
|
217
226
|
* @property risk.riskFactor.factor - The risk factors that are considered for the strategy.
|
|
218
227
|
* @property risk.riskFactor.factor - The value of the risk factor from 0 to 10, 0 being the lowest and 10 being the highest.
|
|
@@ -223,9 +232,26 @@ interface IStrategyMetadata<T> {
|
|
|
223
232
|
id: string;
|
|
224
233
|
name: string;
|
|
225
234
|
description: string | React.ReactNode;
|
|
235
|
+
/**
|
|
236
|
+
* Optional UI sort priority. Higher shows earlier.
|
|
237
|
+
* Intended for pinning flagship parent vaults (e.g. BTC above STRK).
|
|
238
|
+
*/
|
|
239
|
+
priority?: number;
|
|
240
|
+
/**
|
|
241
|
+
* Optional UI config for the variant intro popup (strategy page).
|
|
242
|
+
* Should be identical across strategies that share the same `parentId`.
|
|
243
|
+
*/
|
|
244
|
+
variantIntro?: {
|
|
245
|
+
title: string;
|
|
246
|
+
description: string;
|
|
247
|
+
};
|
|
226
248
|
address: ContractAddr;
|
|
227
249
|
launchBlock: number;
|
|
228
250
|
type: "ERC4626" | "ERC721" | "Other";
|
|
251
|
+
vaultType: {
|
|
252
|
+
type: VaultType;
|
|
253
|
+
description: string;
|
|
254
|
+
};
|
|
229
255
|
depositTokens: TokenInfo[];
|
|
230
256
|
protocols: IProtocol[];
|
|
231
257
|
auditUrl?: string;
|
|
@@ -235,6 +261,7 @@ interface IStrategyMetadata<T> {
|
|
|
235
261
|
notARisks: RiskType[];
|
|
236
262
|
};
|
|
237
263
|
apyMethodology?: string;
|
|
264
|
+
realizedApyMethodology?: string;
|
|
238
265
|
additionalInfo: T;
|
|
239
266
|
contractDetails: {
|
|
240
267
|
address: ContractAddr;
|
|
@@ -249,16 +276,20 @@ interface IStrategyMetadata<T> {
|
|
|
249
276
|
}[];
|
|
250
277
|
docs?: string;
|
|
251
278
|
investmentSteps: string[];
|
|
252
|
-
curator?:
|
|
253
|
-
name: string;
|
|
254
|
-
logo: string;
|
|
255
|
-
};
|
|
279
|
+
curator?: ICurator;
|
|
256
280
|
isPreview?: boolean;
|
|
257
|
-
category: StrategyCategory;
|
|
258
281
|
tags?: StrategyTag[];
|
|
259
282
|
security: SecurityMetadata;
|
|
260
283
|
redemptionInfo: RedemptionInfo;
|
|
284
|
+
usualTimeToEarnings: null | string;
|
|
285
|
+
usualTimeToEarningsDescription: null | string;
|
|
286
|
+
discontinuationInfo?: {
|
|
287
|
+
date?: Date;
|
|
288
|
+
reason?: React.ReactNode | string;
|
|
289
|
+
info?: React.ReactNode | string;
|
|
290
|
+
};
|
|
261
291
|
settings?: StrategySettings;
|
|
292
|
+
apyHistoryUIConfig?: StrategyApyHistoryUIConfig;
|
|
262
293
|
actions?: Array<{
|
|
263
294
|
name?: string;
|
|
264
295
|
pool?: {
|
|
@@ -278,6 +309,8 @@ interface IStrategyMetadata<T> {
|
|
|
278
309
|
amount?: string | number;
|
|
279
310
|
isDeposit?: boolean;
|
|
280
311
|
}>;
|
|
312
|
+
parentId?: string;
|
|
313
|
+
parentName?: string;
|
|
281
314
|
}
|
|
282
315
|
interface IInvestmentFlow {
|
|
283
316
|
id?: string;
|
|
@@ -290,6 +323,8 @@ interface IInvestmentFlow {
|
|
|
290
323
|
style?: any;
|
|
291
324
|
}
|
|
292
325
|
declare function getMainnetConfig(rpcUrl?: string, blockIdentifier?: BlockIdentifier): IConfig;
|
|
326
|
+
declare const getStrategyTagDesciption: (tag: StrategyTag) => string;
|
|
327
|
+
declare const getAllStrategyTags: () => StrategyTag[];
|
|
293
328
|
declare const getRiskExplaination: (riskType: RiskType) => "The risk of the market moving against the position." | "The temporary loss of value experienced by liquidity providers in AMMs when asset prices diverge compared to simply holding them." | "The risk of losing funds due to the position being liquidated." | "The risk of low liquidity in the pool, which can lead to high slippages or reduced in-abilities to quickly exit the position." | "The risk of the oracle being manipulated or incorrect." | "The risk of the smart contract being vulnerable to attacks." | "The risk of technical issues e.g. backend failure." | "The risk of the counterparty defaulting e.g. bad debt on lending platforms." | "The risk of a token losing its peg to the underlying asset, leading to potential losses for holders.";
|
|
294
329
|
declare const getRiskColor: (risk: RiskFactor) => "light_green_2" | "yellow" | "red";
|
|
295
330
|
declare const getNoRiskTags: (risks: RiskFactor[]) => RiskType[];
|
|
@@ -330,6 +365,7 @@ declare const Protocols: {
|
|
|
330
365
|
ENDUR: IProtocol;
|
|
331
366
|
EXTENDED: IProtocol;
|
|
332
367
|
};
|
|
368
|
+
declare const UnwrapLabsCurator: ICurator;
|
|
333
369
|
|
|
334
370
|
interface ILendingMetadata {
|
|
335
371
|
name: string;
|
|
@@ -487,6 +523,7 @@ declare class ERC20 {
|
|
|
487
523
|
contract(addr: string | ContractAddr): Contract;
|
|
488
524
|
balanceOf(token: string | ContractAddr, address: string | ContractAddr, tokenDecimals: number): Promise<Web3Number>;
|
|
489
525
|
allowance(token: string | ContractAddr, owner: string | ContractAddr, spender: string | ContractAddr, tokenDecimals: number): Promise<Web3Number>;
|
|
526
|
+
approve(token: string | ContractAddr, spender: string | ContractAddr, amount: Web3Number): starknet.Call;
|
|
490
527
|
}
|
|
491
528
|
|
|
492
529
|
interface Route {
|
|
@@ -584,6 +621,8 @@ interface DualTokenInfo {
|
|
|
584
621
|
token0: SingleTokenInfo;
|
|
585
622
|
token1: SingleTokenInfo;
|
|
586
623
|
}
|
|
624
|
+
type StrategyInputMode = "single" | "dual";
|
|
625
|
+
type InputModeFromAction<T> = T extends DualActionAmount ? "dual" : "single";
|
|
587
626
|
interface NetAPYSplit {
|
|
588
627
|
apy: number;
|
|
589
628
|
id: string;
|
|
@@ -592,22 +631,75 @@ interface NetAPYDetails {
|
|
|
592
631
|
net: number;
|
|
593
632
|
splits: NetAPYSplit[];
|
|
594
633
|
}
|
|
634
|
+
type UserPositionCardSubValueColor = "default" | "positive" | "negative" | "info";
|
|
635
|
+
interface UserPositionCard {
|
|
636
|
+
title: string;
|
|
637
|
+
value: string;
|
|
638
|
+
tooltip?: string;
|
|
639
|
+
subValue?: string;
|
|
640
|
+
subValueColor?: UserPositionCardSubValueColor;
|
|
641
|
+
}
|
|
642
|
+
interface UserPositionCardsInput {
|
|
643
|
+
user: ContractAddr;
|
|
644
|
+
investmentFlows?: Array<{
|
|
645
|
+
amount: string;
|
|
646
|
+
type: string;
|
|
647
|
+
timestamp: number;
|
|
648
|
+
tx_hash: string;
|
|
649
|
+
}>;
|
|
650
|
+
usualTimeToEarnings?: string | null;
|
|
651
|
+
usualTimeToEarningsDescription?: string | null;
|
|
652
|
+
}
|
|
595
653
|
interface CacheData {
|
|
596
654
|
timestamp: number;
|
|
597
655
|
ttl: number;
|
|
598
656
|
data: any;
|
|
599
657
|
}
|
|
600
|
-
declare class BaseStrategy<TVLInfo,
|
|
658
|
+
declare class BaseStrategy<TVLInfo, DepositActionInfo, WithdrawActionInfo = DepositActionInfo> extends CacheClass {
|
|
601
659
|
readonly config: IConfig;
|
|
602
660
|
readonly cache: Map<string, CacheData>;
|
|
603
|
-
|
|
661
|
+
private readonly _depositInputMode;
|
|
662
|
+
private readonly _withdrawInputMode;
|
|
663
|
+
constructor(config: IConfig, inputModes?: {
|
|
664
|
+
depositInputMode?: InputModeFromAction<DepositActionInfo>;
|
|
665
|
+
withdrawInputMode?: InputModeFromAction<WithdrawActionInfo>;
|
|
666
|
+
});
|
|
667
|
+
depositInputMode(): InputModeFromAction<DepositActionInfo>;
|
|
668
|
+
withdrawInputMode(): InputModeFromAction<WithdrawActionInfo>;
|
|
604
669
|
getUserTVL(user: ContractAddr, blockIdentifier?: BlockIdentifier): Promise<TVLInfo>;
|
|
605
670
|
getTVL(): Promise<TVLInfo>;
|
|
606
|
-
depositCall(amountInfo:
|
|
607
|
-
withdrawCall(amountInfo:
|
|
671
|
+
depositCall(amountInfo: DepositActionInfo, receiver: ContractAddr): Promise<Call[]>;
|
|
672
|
+
withdrawCall(amountInfo: WithdrawActionInfo, receiver: ContractAddr, owner: ContractAddr): Promise<Call[]>;
|
|
608
673
|
getVaultPositions(): Promise<VaultPosition[]>;
|
|
609
|
-
netAPY(blockIdentifier?: BlockIdentifier, sinceBlocks?: number, timeperiod?: "24h" | "7d" | "30d" | "3m"): Promise<number | NetAPYDetails>;
|
|
674
|
+
netAPY(blockIdentifier?: BlockIdentifier, sinceBlocks?: number, timeperiod?: "24h" | "7d" | "30d" | "3m"): Promise<number | string | NetAPYDetails>;
|
|
610
675
|
getPendingRewards(): Promise<HarvestInfo[]>;
|
|
676
|
+
getUserRealizedAPY(blockIdentifier?: BlockIdentifier, sinceBlocks?: number): Promise<number>;
|
|
677
|
+
getUserPositionCards(_input: UserPositionCardsInput): Promise<UserPositionCard[]>;
|
|
678
|
+
getMaxTVL(): Promise<Web3Number>;
|
|
679
|
+
protected formatTokenAmountForCard(amount: Web3Number, tokenInfo: TokenInfo): string;
|
|
680
|
+
protected formatPercentForCard(value: number): string;
|
|
681
|
+
protected formatUSDForCard(value: number): string;
|
|
682
|
+
protected getSubValueColorFromSignedNumber(value: number): UserPositionCardSubValueColor;
|
|
683
|
+
/**
|
|
684
|
+
* Calculate lifetime earnings for a user based on provided data from client
|
|
685
|
+
* Formula: lifetimeEarnings = currentValue + totalWithdrawals - totalDeposits
|
|
686
|
+
*
|
|
687
|
+
* @param userTVL - The user's current TVL (SingleTokenInfo with amount, usdValue, tokenInfo)
|
|
688
|
+
* @param investmentFlows - Array of investment flow transactions from client
|
|
689
|
+
* @returns Object containing lifetime earnings, current value, and total deposits/withdrawals
|
|
690
|
+
*/
|
|
691
|
+
getLifetimeEarnings(userTVL: SingleTokenInfo, investmentFlows: Array<{
|
|
692
|
+
amount: string;
|
|
693
|
+
type: string;
|
|
694
|
+
timestamp: number;
|
|
695
|
+
tx_hash: string;
|
|
696
|
+
}>): {
|
|
697
|
+
tokenInfo: SingleTokenInfo;
|
|
698
|
+
lifetimeEarnings: Web3Number;
|
|
699
|
+
currentValue: Web3Number;
|
|
700
|
+
totalDeposits: Web3Number;
|
|
701
|
+
totalWithdrawals: Web3Number;
|
|
702
|
+
};
|
|
611
703
|
}
|
|
612
704
|
|
|
613
705
|
interface PoolProps {
|
|
@@ -893,17 +985,32 @@ declare class EkuboCLVault extends BaseStrategy<DualTokenInfo, DualActionAmount>
|
|
|
893
985
|
rebalanceCall(newBounds: EkuboBounds, swapParams: SwapInfo): Call[];
|
|
894
986
|
handleUnusedCall(swapParams: SwapInfo): Call[];
|
|
895
987
|
handleFeesCall(): Call[];
|
|
896
|
-
getFeeHistory(timePeriod?: '24h' | '7d' | '30d' | '3m'
|
|
988
|
+
getFeeHistory(timePeriod?: '24h' | '7d' | '30d' | '3m' | '6m', range?: {
|
|
989
|
+
startTimestamp?: number;
|
|
990
|
+
endTimestamp?: number;
|
|
991
|
+
}): Promise<{
|
|
897
992
|
summary: DualTokenInfo;
|
|
898
993
|
history: FeeHistory[];
|
|
899
994
|
}>;
|
|
900
995
|
netSharesBasedTrueAPY(blockIdentifier?: BlockIdentifier, sinceBlocks?: number): Promise<number>;
|
|
996
|
+
/**
|
|
997
|
+
* Calculate lifetime earnings for a user
|
|
998
|
+
* Not yet implemented for Ekubo CL Vault strategy
|
|
999
|
+
*/
|
|
1000
|
+
getLifetimeEarnings(userTVL: SingleTokenInfo, investmentFlows: Array<{
|
|
1001
|
+
amount: string;
|
|
1002
|
+
type: string;
|
|
1003
|
+
timestamp: number;
|
|
1004
|
+
tx_hash: string;
|
|
1005
|
+
}>): any;
|
|
901
1006
|
/**
|
|
902
1007
|
* Calculates realized APY based on TVL per share growth, always valued in USDC.
|
|
903
1008
|
* This is a vault-level metric (same for all users) and works for all strategies,
|
|
904
1009
|
* regardless of quote asset configuration.
|
|
905
1010
|
*/
|
|
906
1011
|
getUserRealizedAPY(blockIdentifier?: BlockIdentifier, sinceBlocks?: number): Promise<number>;
|
|
1012
|
+
getMaxTVL(): Promise<Web3Number>;
|
|
1013
|
+
getUserPositionCards(input: UserPositionCardsInput): Promise<UserPositionCard[]>;
|
|
907
1014
|
feeBasedAPY(timeperiod?: '24h' | '7d' | '30d' | '3m'): Promise<number>;
|
|
908
1015
|
/**
|
|
909
1016
|
* Calculates assets before and now in a given token of TVL per share to observe growth
|
|
@@ -1099,15 +1206,122 @@ declare class SenseiVault extends BaseStrategy<SingleTokenInfo, SingleActionAmou
|
|
|
1099
1206
|
}>;
|
|
1100
1207
|
getSecondaryTokenPriceRelativeToMain(retry?: number): Promise<number>;
|
|
1101
1208
|
getSettings: () => Promise<starknet.CallResult>;
|
|
1209
|
+
/**
|
|
1210
|
+
* Calculate lifetime earnings for a user
|
|
1211
|
+
* Not yet implemented for Sensei Vault strategy
|
|
1212
|
+
*/
|
|
1213
|
+
getLifetimeEarnings(userTVL: SingleTokenInfo, investmentFlows: Array<{
|
|
1214
|
+
amount: string;
|
|
1215
|
+
type: string;
|
|
1216
|
+
timestamp: number;
|
|
1217
|
+
tx_hash: string;
|
|
1218
|
+
}>): any;
|
|
1102
1219
|
netAPY(): Promise<number>;
|
|
1103
1220
|
/**
|
|
1104
1221
|
* Calculates user realized APY based on position growth accounting for deposits and withdrawals.
|
|
1105
1222
|
* Returns the APY as a number.
|
|
1223
|
+
* Not implemented for Sensei Strategy yet.
|
|
1106
1224
|
*/
|
|
1107
|
-
getUserRealizedAPY(
|
|
1225
|
+
getUserRealizedAPY(blockIdentifier?: BlockIdentifier, sinceBlocks?: number): Promise<number>;
|
|
1226
|
+
getUserPositionCards(_input: UserPositionCardsInput): Promise<UserPositionCard[]>;
|
|
1108
1227
|
}
|
|
1109
1228
|
declare const SenseiStrategies: IStrategyMetadata<SenseiVaultSettings>[];
|
|
1110
1229
|
|
|
1230
|
+
interface YoloVaultSettings {
|
|
1231
|
+
startDate: string;
|
|
1232
|
+
expiryDate: string;
|
|
1233
|
+
mainToken: TokenInfo;
|
|
1234
|
+
secondaryToken: TokenInfo;
|
|
1235
|
+
totalEpochs: number;
|
|
1236
|
+
minEpochDurationSeconds: number;
|
|
1237
|
+
spendingLevels: YoloSpendingLevel[];
|
|
1238
|
+
feeBps: number;
|
|
1239
|
+
/** When true, base token is ERC-4626 (e.g. vUSDC); amounts for TVL / user info use `convert_to_assets` into `baseUnderlying`. */
|
|
1240
|
+
isBaseERC4626?: boolean;
|
|
1241
|
+
/** When true, second token is ERC-4626 (e.g. xSTRK); amounts use `convert_to_assets` into `secondUnderlying`. */
|
|
1242
|
+
isSecondERC4626?: boolean;
|
|
1243
|
+
/** Required when `isBaseERC4626` is true (e.g. USDC). */
|
|
1244
|
+
baseUnderlying?: TokenInfo;
|
|
1245
|
+
/** Required when `isSecondERC4626` is true (e.g. STRK / WBTC for xSTRK / xWBTC). */
|
|
1246
|
+
secondUnderlying?: TokenInfo;
|
|
1247
|
+
}
|
|
1248
|
+
interface YoloSpendingLevel {
|
|
1249
|
+
minPrice?: number;
|
|
1250
|
+
maxPrice?: number;
|
|
1251
|
+
spendPercent: number;
|
|
1252
|
+
}
|
|
1253
|
+
interface UserYoloInfo {
|
|
1254
|
+
shares: bigint;
|
|
1255
|
+
claimable_second_tokens: bigint;
|
|
1256
|
+
base_token_balance: bigint;
|
|
1257
|
+
base_token_consumed: bigint;
|
|
1258
|
+
base_consumed_last_index: bigint;
|
|
1259
|
+
second_token_last_index: bigint;
|
|
1260
|
+
second_token_balance: bigint;
|
|
1261
|
+
}
|
|
1262
|
+
interface YoloVaultStatus {
|
|
1263
|
+
current_epoch: bigint;
|
|
1264
|
+
total_epochs: bigint;
|
|
1265
|
+
remaining_base: bigint;
|
|
1266
|
+
total_second_tokens: bigint;
|
|
1267
|
+
global_second_token_index: bigint;
|
|
1268
|
+
cumulative_spend_index: bigint;
|
|
1269
|
+
total_shares: bigint;
|
|
1270
|
+
base_token_assets_per_share: bigint;
|
|
1271
|
+
}
|
|
1272
|
+
interface YoloSettings {
|
|
1273
|
+
base_token: bigint;
|
|
1274
|
+
second_token: bigint;
|
|
1275
|
+
total_epochs: bigint;
|
|
1276
|
+
min_time_per_epoch: bigint;
|
|
1277
|
+
max_spend_units_per_epoch: bigint;
|
|
1278
|
+
base_token_assets_per_share: bigint;
|
|
1279
|
+
oracle: bigint;
|
|
1280
|
+
}
|
|
1281
|
+
type YoloErc4626RuntimeConfig = {
|
|
1282
|
+
isBaseERC4626: boolean;
|
|
1283
|
+
isSecondERC4626: boolean;
|
|
1284
|
+
baseUnderlying?: TokenInfo;
|
|
1285
|
+
secondUnderlying?: TokenInfo;
|
|
1286
|
+
};
|
|
1287
|
+
declare class YoLoVault extends BaseStrategy<DualTokenInfo, SingleActionAmount, DualActionAmount> {
|
|
1288
|
+
readonly address: ContractAddr;
|
|
1289
|
+
readonly metadata: IStrategyMetadata<YoloVaultSettings>;
|
|
1290
|
+
readonly pricer: PricerBase;
|
|
1291
|
+
/** Resolves to a `Contract` built from `provider.getClassAt` at the vault address (no checked-in vault ABI). */
|
|
1292
|
+
readonly contract: Promise<Contract>;
|
|
1293
|
+
readonly primaryToken: TokenInfo;
|
|
1294
|
+
readonly secondaryToken: TokenInfo;
|
|
1295
|
+
readonly erc4626: YoloErc4626RuntimeConfig;
|
|
1296
|
+
constructor(config: IConfig, pricer: PricerBase, metadata: IStrategyMetadata<YoloVaultSettings>);
|
|
1297
|
+
/** Underlying (or base token) used for pricing / swap sell leg when base is ERC-4626. */
|
|
1298
|
+
tokenForPrimaryPricing(): TokenInfo;
|
|
1299
|
+
/** Underlying (or second token) for price ratios when second leg is ERC-4626 (e.g. STRK for xSTRK). */
|
|
1300
|
+
tokenForSecondaryPricing(): TokenInfo;
|
|
1301
|
+
private primaryAmountDecimals;
|
|
1302
|
+
private secondaryAmountDecimals;
|
|
1303
|
+
private convertWrapperSharesToUnderlying;
|
|
1304
|
+
private getNormalizedUserInfo;
|
|
1305
|
+
private resolveWithdrawRequest;
|
|
1306
|
+
getUserTVL(user: ContractAddr, blockIdentifier?: BlockIdentifier): Promise<DualTokenInfo>;
|
|
1307
|
+
getVaultPositions(): Promise<VaultPosition[]>;
|
|
1308
|
+
getTVL(): Promise<DualTokenInfo>;
|
|
1309
|
+
depositCall(amountInfo: SingleActionAmount, receiver: ContractAddr): Promise<Call[]>;
|
|
1310
|
+
getVaultStatus(): Promise<YoloVaultStatus>;
|
|
1311
|
+
matchInputAmounts(amountInfo: DualActionAmount, user: ContractAddr): Promise<DualActionAmount>;
|
|
1312
|
+
withdrawCall(amountInfo: DualActionAmount, receiver: ContractAddr, owner: ContractAddr): Promise<Call[]>;
|
|
1313
|
+
netAPY(): Promise<number | string | NetAPYDetails>;
|
|
1314
|
+
getSwapAmounts(spendUnits: Web3Number): Promise<{
|
|
1315
|
+
grossSpend: Web3Number;
|
|
1316
|
+
netSpend: Web3Number;
|
|
1317
|
+
isReadyForNextSwap: boolean;
|
|
1318
|
+
}>;
|
|
1319
|
+
getSettings: () => Promise<YoloSettings>;
|
|
1320
|
+
getMaxTVL(): Promise<Web3Number>;
|
|
1321
|
+
getUserPositionCards(input: UserPositionCardsInput): Promise<UserPositionCard[]>;
|
|
1322
|
+
}
|
|
1323
|
+
declare const YoloVaultStrategies: IStrategyMetadata<YoloVaultSettings>[];
|
|
1324
|
+
|
|
1111
1325
|
interface LeveledLogMethod {
|
|
1112
1326
|
(message: string, ...meta: any[]): void;
|
|
1113
1327
|
(message: any): void;
|
|
@@ -1361,6 +1575,24 @@ declare const VesuPools: {
|
|
|
1361
1575
|
Re7xSTRK: ContractAddr;
|
|
1362
1576
|
Re7xBTC: ContractAddr;
|
|
1363
1577
|
Prime: ContractAddr;
|
|
1578
|
+
Re7STRK: ContractAddr;
|
|
1579
|
+
};
|
|
1580
|
+
declare const VesuPoolMetadata: {
|
|
1581
|
+
[VesuPools.Genesis.address]: {
|
|
1582
|
+
name: string;
|
|
1583
|
+
};
|
|
1584
|
+
[VesuPools.Re7xSTRK.address]: {
|
|
1585
|
+
name: string;
|
|
1586
|
+
};
|
|
1587
|
+
[VesuPools.Re7xBTC.address]: {
|
|
1588
|
+
name: string;
|
|
1589
|
+
};
|
|
1590
|
+
[VesuPools.Prime.address]: {
|
|
1591
|
+
name: string;
|
|
1592
|
+
};
|
|
1593
|
+
[VesuPools.Re7STRK.address]: {
|
|
1594
|
+
name: string;
|
|
1595
|
+
};
|
|
1364
1596
|
};
|
|
1365
1597
|
declare const extensionMap: {
|
|
1366
1598
|
[key: string]: ContractAddr;
|
|
@@ -1403,8 +1635,15 @@ declare class VesuAdapter extends BaseAdapter {
|
|
|
1403
1635
|
getModifyPositionCall: (params: VesuModifyPositionCallParams) => ManageCall;
|
|
1404
1636
|
getMultiplyAdapter: (id: string) => LeafAdapterFn<VesuMultiplyCallParams>;
|
|
1405
1637
|
getMultiplyCall: (params: VesuMultiplyCallParams) => ManageCall;
|
|
1406
|
-
getVesuModifyDelegationAdapter: (id: string) => LeafAdapterFn<VesuModifyDelegationCallParams>;
|
|
1407
|
-
getVesuModifyDelegationCall: (params: VesuModifyDelegationCallParams) =>
|
|
1638
|
+
getVesuModifyDelegationAdapter: (id: string, delegatee: ContractAddr) => LeafAdapterFn<VesuModifyDelegationCallParams>;
|
|
1639
|
+
getVesuModifyDelegationCall: (delegatee: ContractAddr) => (params: VesuModifyDelegationCallParams) => {
|
|
1640
|
+
sanitizer: ContractAddr;
|
|
1641
|
+
call: {
|
|
1642
|
+
contractAddress: ContractAddr;
|
|
1643
|
+
selector: string;
|
|
1644
|
+
calldata: bigint[];
|
|
1645
|
+
};
|
|
1646
|
+
};
|
|
1408
1647
|
getDefispringRewardsAdapter: (id: string) => () => AdapterLeafType<VesuDefiSpringRewardsCallParams>;
|
|
1409
1648
|
getDefiSpringClaimCall: () => GenerateCallFn<VesuDefiSpringRewardsCallParams>;
|
|
1410
1649
|
formatAmountTypeEnum(amountType: VesuAmountType): CairoCustomEnum;
|
|
@@ -1459,6 +1698,11 @@ declare const AVNU_EXCHANGE: ContractAddr;
|
|
|
1459
1698
|
declare const VESU_SINGLETON: ContractAddr;
|
|
1460
1699
|
declare function toBigInt(value: string | number): bigint;
|
|
1461
1700
|
|
|
1701
|
+
declare enum LSTPriceType {
|
|
1702
|
+
ENDUR_PRICE = "ENDUR_PRICE",
|
|
1703
|
+
AVNU_PRICE = "AVNU_PRICE"
|
|
1704
|
+
}
|
|
1705
|
+
|
|
1462
1706
|
interface UniversalManageCall {
|
|
1463
1707
|
proofs: string[];
|
|
1464
1708
|
manageCall: ManageCall;
|
|
@@ -1543,6 +1787,7 @@ declare class UniversalStrategy<S extends UniversalStrategySettings> extends Bas
|
|
|
1543
1787
|
* Returns the APY as a number.
|
|
1544
1788
|
*/
|
|
1545
1789
|
getUserRealizedAPY(blockIdentifier?: BlockIdentifier, sinceBlocks?: number): Promise<number>;
|
|
1790
|
+
getUserPositionCards(input: UserPositionCardsInput): Promise<UserPositionCard[]>;
|
|
1546
1791
|
/**
|
|
1547
1792
|
* Calculates the total TVL of the strategy.
|
|
1548
1793
|
* @returns Object containing the total amount in token units and USD value
|
|
@@ -1552,10 +1797,11 @@ declare class UniversalStrategy<S extends UniversalStrategySettings> extends Bas
|
|
|
1552
1797
|
amount: Web3Number;
|
|
1553
1798
|
usdValue: number;
|
|
1554
1799
|
}>;
|
|
1800
|
+
getMaxTVL(): Promise<Web3Number>;
|
|
1555
1801
|
getUnusedBalance(): Promise<SingleTokenInfo>;
|
|
1556
|
-
protected getVesuAUM(adapter: VesuAdapter): Promise<Web3Number>;
|
|
1802
|
+
protected getVesuAUM(adapter: VesuAdapter, _priceType?: LSTPriceType): Promise<Web3Number>;
|
|
1557
1803
|
getPrevAUM(): Promise<Web3Number>;
|
|
1558
|
-
getAUM(): Promise<{
|
|
1804
|
+
getAUM(unrealizedAUM?: boolean): Promise<{
|
|
1559
1805
|
net: SingleTokenInfo;
|
|
1560
1806
|
prevAum: Web3Number;
|
|
1561
1807
|
splits: {
|
|
@@ -1634,10 +1880,12 @@ declare function getContractDetails(settings: UniversalStrategySettings): {
|
|
|
1634
1880
|
declare const UniversalStrategies: IStrategyMetadata<UniversalStrategySettings>[];
|
|
1635
1881
|
|
|
1636
1882
|
interface HyperLSTStrategySettings extends UniversalStrategySettings {
|
|
1637
|
-
borrowable_assets:
|
|
1883
|
+
borrowable_assets: {
|
|
1884
|
+
token: TokenInfo;
|
|
1885
|
+
poolId: ContractAddr;
|
|
1886
|
+
}[];
|
|
1638
1887
|
underlyingToken: TokenInfo;
|
|
1639
1888
|
defaultPoolId: ContractAddr;
|
|
1640
|
-
altSupportedPoolIds: ContractAddr[];
|
|
1641
1889
|
}
|
|
1642
1890
|
declare class UniversalLstMultiplierStrategy extends UniversalStrategy<HyperLSTStrategySettings> {
|
|
1643
1891
|
private quoteAmountToFetchPrice;
|
|
@@ -1672,7 +1920,22 @@ declare class UniversalLstMultiplierStrategy extends UniversalStrategy<HyperLSTS
|
|
|
1672
1920
|
shouldRebalance: boolean;
|
|
1673
1921
|
manageCall: Call | undefined;
|
|
1674
1922
|
}>;
|
|
1675
|
-
protected getVesuAUM(adapter: VesuAdapter): Promise<Web3Number>;
|
|
1923
|
+
protected getVesuAUM(adapter: VesuAdapter, priceType?: LSTPriceType): Promise<Web3Number>;
|
|
1924
|
+
getTVLUnrealized(): Promise<{
|
|
1925
|
+
net: SingleTokenInfo;
|
|
1926
|
+
prevAum: Web3Number;
|
|
1927
|
+
splits: {
|
|
1928
|
+
id: string;
|
|
1929
|
+
aum: Web3Number;
|
|
1930
|
+
}[];
|
|
1931
|
+
}>;
|
|
1932
|
+
getUserUnrealizedGains(user: ContractAddr): Promise<{
|
|
1933
|
+
unrealizedGains: Web3Number;
|
|
1934
|
+
userShare: number;
|
|
1935
|
+
tokenInfo: TokenInfo;
|
|
1936
|
+
}>;
|
|
1937
|
+
getMaxTVL(): Promise<Web3Number>;
|
|
1938
|
+
getUserPositionCards(input: UserPositionCardsInput): Promise<UserPositionCard[]>;
|
|
1676
1939
|
private _getMinOutputAmountLSTBuy;
|
|
1677
1940
|
private _getMinOutputAmountLSTSell;
|
|
1678
1941
|
/**
|
|
@@ -1697,6 +1960,7 @@ declare class UniversalLstMultiplierStrategy extends UniversalStrategy<HyperLSTS
|
|
|
1697
1960
|
maxBorrowableAmount: Web3Number;
|
|
1698
1961
|
borrowableAsset: TokenInfo;
|
|
1699
1962
|
ltv: number;
|
|
1963
|
+
poolId: ContractAddr;
|
|
1700
1964
|
}[];
|
|
1701
1965
|
}>;
|
|
1702
1966
|
getMaxSwappableWithMaxSlippage(fromToken: TokenInfo, toToken: TokenInfo, maxSlippage: number, maxAmount: Web3Number): Promise<Web3Number>;
|
|
@@ -1725,6 +1989,7 @@ declare class UniversalLstMultiplierStrategy extends UniversalStrategy<HyperLSTS
|
|
|
1725
1989
|
apy: number;
|
|
1726
1990
|
weight: number;
|
|
1727
1991
|
}>;
|
|
1992
|
+
getLSTAvnuRate(): Promise<number>;
|
|
1728
1993
|
getLSTExchangeRate(): Promise<number>;
|
|
1729
1994
|
/**
|
|
1730
1995
|
*
|
|
@@ -1755,7 +2020,6 @@ interface FilterOption {
|
|
|
1755
2020
|
interface StrategyFilterMetadata {
|
|
1756
2021
|
assets: FilterOption[];
|
|
1757
2022
|
protocols: FilterOption[];
|
|
1758
|
-
categories: FilterOption[];
|
|
1759
2023
|
quickFilters: FilterOption[];
|
|
1760
2024
|
}
|
|
1761
2025
|
/**
|
|
@@ -1766,7 +2030,8 @@ declare enum StrategyType {
|
|
|
1766
2030
|
UNIVERSAL = "universal",
|
|
1767
2031
|
HYPER_LST = "hyper-lst",
|
|
1768
2032
|
VESU_REBALANCE = "vesu-rebalance",
|
|
1769
|
-
SENSEI = "sensei"
|
|
2033
|
+
SENSEI = "sensei",
|
|
2034
|
+
YOLO_VAULT = "yolo-vault"
|
|
1770
2035
|
}
|
|
1771
2036
|
/**
|
|
1772
2037
|
* Strategy metadata extracted from IStrategyMetadata
|
|
@@ -1777,7 +2042,6 @@ interface StrategyMetadata {
|
|
|
1777
2042
|
type: StrategyType;
|
|
1778
2043
|
assets: string[];
|
|
1779
2044
|
protocols: string[];
|
|
1780
|
-
category: string;
|
|
1781
2045
|
tags: string[];
|
|
1782
2046
|
curator?: {
|
|
1783
2047
|
name: string;
|
|
@@ -1818,10 +2082,12 @@ declare enum FactoryStrategyType {
|
|
|
1818
2082
|
EKUBO_CL = "EKUBO_CL",
|
|
1819
2083
|
HYPER_LST = "HYPER_LST",
|
|
1820
2084
|
VESU_REBALANCE = "VESU_REBALANCE",
|
|
1821
|
-
SENSEI = "SENSEI"
|
|
2085
|
+
SENSEI = "SENSEI",
|
|
2086
|
+
YOLO_VAULT = "YOLO_VAULT"
|
|
1822
2087
|
}
|
|
1823
2088
|
declare function createUniversalStrategy(config: IConfig, pricer: PricerBase, metadata: IStrategyMetadata<UniversalStrategySettings>): UniversalStrategy<UniversalStrategySettings>;
|
|
1824
2089
|
declare function createEkuboCLStrategy(config: IConfig, pricer: PricerBase, metadata: IStrategyMetadata<CLVaultStrategySettings>): EkuboCLVault;
|
|
2090
|
+
declare function createYoloVaultStrategy(config: IConfig, pricer: PricerBase, metadata: IStrategyMetadata<YoloVaultSettings>): YoLoVault;
|
|
1825
2091
|
declare function createHyperLSTStrategy(config: IConfig, pricer: PricerBase, metadata: IStrategyMetadata<HyperLSTStrategySettings>): UniversalLstMultiplierStrategy;
|
|
1826
2092
|
declare function createVesuRebalanceStrategy(config: IConfig, pricer: PricerBase, metadata: IStrategyMetadata<VesuRebalanceSettings>): VesuRebalance;
|
|
1827
2093
|
declare function createSenseiStrategy(config: IConfig, pricer: PricerBase, metadata: IStrategyMetadata<SenseiVaultSettings>): SenseiVault;
|
|
@@ -1832,7 +2098,7 @@ declare function getStrategyTypeFromMetadata(metadata: IStrategyMetadata<any>):
|
|
|
1832
2098
|
/**
|
|
1833
2099
|
* Generic factory function that creates SDK strategy instances based on type
|
|
1834
2100
|
*/
|
|
1835
|
-
declare function createStrategy(type: FactoryStrategyType, config: IConfig, pricer: PricerBase, metadata: IStrategyMetadata<any>): VesuRebalance | EkuboCLVault | SenseiVault | UniversalStrategy<UniversalStrategySettings>;
|
|
2101
|
+
declare function createStrategy(type: FactoryStrategyType, config: IConfig, pricer: PricerBase, metadata: IStrategyMetadata<any>): VesuRebalance | EkuboCLVault | SenseiVault | YoLoVault | UniversalStrategy<UniversalStrategySettings>;
|
|
1836
2102
|
|
|
1837
2103
|
interface EkuboRouteNode {
|
|
1838
2104
|
pool_key: {
|
|
@@ -1956,6 +2222,16 @@ declare class LSTAPRService {
|
|
|
1956
2222
|
static clearCache(): void;
|
|
1957
2223
|
}
|
|
1958
2224
|
|
|
2225
|
+
declare class EkuboPricer extends PricerBase {
|
|
2226
|
+
EKUBO_PRICE_FETCHER_ADDRESS: string;
|
|
2227
|
+
readonly contract: Contract;
|
|
2228
|
+
private readonly USDC_ADDRESS;
|
|
2229
|
+
private readonly USDC_DECIMALS;
|
|
2230
|
+
constructor(config: IConfig, tokens: TokenInfo[]);
|
|
2231
|
+
private div2Power128;
|
|
2232
|
+
getPrice(tokenAddr: string, blockIdentifier?: BlockIdentifier): Promise<PriceInfo>;
|
|
2233
|
+
}
|
|
2234
|
+
|
|
1959
2235
|
declare class TelegramNotif {
|
|
1960
2236
|
private subscribers;
|
|
1961
2237
|
readonly bot: TelegramBot;
|
|
@@ -2108,4 +2384,4 @@ declare class PasswordJsonCryptoUtil {
|
|
|
2108
2384
|
decrypt(encryptedData: string, password: string): any;
|
|
2109
2385
|
}
|
|
2110
2386
|
|
|
2111
|
-
export { APYType, AUMTypes, AVNU_EXCHANGE, AVNU_MIDDLEWARE, type AccessControlInfo, AccessControlType, type AccountInfo, type AdapterLeafType, type AllAccountsStore, type AmountInfo, type AmountsInfo, type ApproveCallParams, AuditStatus, AutoCompounderSTRK, type AvnuSwapCallParams, AvnuWrapper, BaseAdapter, type BaseAdapterConfig, BaseStrategy, type CLVaultStrategySettings, CommonAdapter, type CommonAdapterConfig, ContractAddr, type DecreaseLeverParams, Deployer, type DualActionAmount, type DualTokenInfo, ERC20, type EkuboBounds, EkuboCLVault, EkuboCLVaultStrategies, type EkuboPoolKey, type EkuboQuote, EkuboQuoter, type EkuboRouteNode, type EkuboSplit, type FAQ, FactoryStrategyType, FatalError, type FilterOption, type FlashloanCallParams, FlowChartColors, type GenerateCallFn, Global, HyperLSTStrategies, type HyperLSTStrategySettings, type IConfig, type IInvestmentFlow, ILending, type ILendingMetadata, type ILendingPosition, type IProtocol, type IStrategyMetadata, type IncreaseLeverParams, Initializable, InstantWithdrawalVault, LSTAPRService, type LSTStats, type LeafAdapterFn, type LeafData, type LendingToken, type ManageCall, MarginType, MyNumber, type NetAPYDetails, type NetAPYSplit, Network, PRICE_ROUTER, PasswordJsonCryptoUtil, type PositionAPY, type PositionInfo, Pragma, type PriceInfo, Pricer, PricerFromApi, PricerLST, PricerRedis, Protocols, type
|
|
2387
|
+
export { APYType, AUMTypes, AVNU_EXCHANGE, AVNU_MIDDLEWARE, type AccessControlInfo, AccessControlType, type AccountInfo, type AdapterLeafType, type AllAccountsStore, type AmountInfo, type AmountsInfo, type ApproveCallParams, AuditStatus, AutoCompounderSTRK, type AvnuSwapCallParams, AvnuWrapper, BaseAdapter, type BaseAdapterConfig, BaseStrategy, type CLVaultStrategySettings, CommonAdapter, type CommonAdapterConfig, ContractAddr, type DecreaseLeverParams, Deployer, type DualActionAmount, type DualTokenInfo, ERC20, type EkuboBounds, EkuboCLVault, EkuboCLVaultStrategies, type EkuboPoolKey, EkuboPricer, type EkuboQuote, EkuboQuoter, type EkuboRouteNode, type EkuboSplit, type FAQ, FactoryStrategyType, FatalError, type FilterOption, type FlashloanCallParams, FlowChartColors, type GenerateCallFn, Global, HyperLSTStrategies, type HyperLSTStrategySettings, type IConfig, type ICurator, type IInvestmentFlow, ILending, type ILendingMetadata, type ILendingPosition, type IProtocol, type IStrategyMetadata, type IncreaseLeverParams, Initializable, type InputModeFromAction, InstantWithdrawalVault, LSTAPRService, LSTPriceType, type LSTStats, type LeafAdapterFn, type LeafData, type LendingToken, type ManageCall, MarginType, MyNumber, type NetAPYDetails, type NetAPYSplit, Network, PRICE_ROUTER, PasswordJsonCryptoUtil, type PositionAPY, type PositionInfo, Pragma, type PriceInfo, Pricer, PricerFromApi, PricerLST, PricerRedis, Protocols, type RedemptionInfo, type RequiredFields, type RequiredKeys, type RequiredStoreConfig, type RiskFactor, RiskType, type Route, type RouteNode, SIMPLE_SANITIZER, SIMPLE_SANITIZER_V2, SIMPLE_SANITIZER_VESU_V1_DELEGATIONS, type SecurityMetadata, SenseiStrategies, SenseiVault, type SenseiVaultSettings, type SingleActionAmount, type SingleTokenInfo, type SourceCodeInfo, SourceCodeType, StandardMerkleTree, type StandardMerkleTreeData, Store, type StoreConfig, type StrategyAlert, type StrategyApyHistoryUIConfig, type StrategyCapabilities, type StrategyFilterMetadata, type StrategyInputMode, StrategyLiveStatus, type StrategyMetadata, type StrategyRegistryEntry, type StrategySettings, StrategyTag, StrategyType, type SupportedPosition, type Swap, type SwapInfo, TelegramGroupNotif, TelegramNotif, type TokenAmount, type TokenInfo, UNIVERSAL_ADAPTERS, UNIVERSAL_MANAGE_IDS, UniversalLstMultiplierStrategy, type UniversalManageCall, UniversalStrategies, UniversalStrategy, type UniversalStrategySettings, UnwrapLabsCurator, type UserPositionCard, type UserPositionCardSubValueColor, type UserPositionCardsInput, type UserYoloInfo, VESU_SINGLETON, VESU_V2_MODIFY_POSITION_SANITIZER, type VaultPosition, VaultType, VesuAdapter, type VesuAdapterConfig, type VesuAmount, VesuAmountDenomination, VesuAmountType, type VesuDefiSpringRewardsCallParams, type VesuModifyDelegationCallParams, type VesuModifyPositionCallParams, type VesuMultiplyCallParams, VesuPoolMetadata, VesuPools, VesuRebalance, type VesuRebalanceSettings, VesuRebalanceStrategies, Web3Number, YoLoVault, type YoloSettings, type YoloSpendingLevel, type YoloVaultSettings, type YoloVaultStatus, YoloVaultStrategies, ZkLend, assert, buildStrategyRegistry, createEkuboCLStrategy, createHyperLSTStrategy, createSenseiStrategy, createStrategy, createUniversalStrategy, createVesuRebalanceStrategy, createYoloVaultStrategy, detectCapabilities, extensionMap, getAPIUsingHeadlessBrowser, getAllStrategyMetadata, getAllStrategyTags, getContractDetails, getDefaultStoreConfig, getFilterMetadata, getLiveStrategies, getMainnetConfig, getNoRiskTags, getRiskColor, getRiskExplaination, getStrategiesByType, getStrategyTagDesciption, getStrategyTypeFromMetadata, getTrovesEndpoint, getVesuSingletonAddress, highlightTextWithLinks, type i257, isDualTokenStrategy, logger, toAmountsInfo, toBigInt };
|