@strkfarm/sdk 1.0.55 → 1.0.57
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 +0 -0
- package/dist/cli.mjs +0 -0
- package/dist/index.browser.global.js +65617 -46434
- package/dist/index.browser.mjs +16547 -8981
- package/dist/index.d.ts +355 -15
- package/dist/index.js +19314 -11582
- package/dist/index.mjs +17620 -9895
- package/package.json +4 -3
- package/src/data/universal-vault.abi.json +1565 -0
- package/src/data/vault-manager.abi.json +634 -0
- package/src/data/vesu-singleton.abi.json +2247 -0
- package/src/dataTypes/address.ts +4 -0
- package/src/global.ts +30 -0
- package/src/interfaces/common.tsx +18 -1
- package/src/modules/pricer.ts +1 -1
- package/src/node/deployer.ts +219 -0
- package/src/node/index.ts +2 -1
- package/src/notifs/telegram.ts +0 -2
- package/src/strategies/base-strategy.ts +3 -23
- package/src/strategies/index.ts +3 -1
- package/src/strategies/sensei.ts +13 -6
- package/src/strategies/universal-adapters/adapter-utils.ts +13 -0
- package/src/strategies/universal-adapters/baseAdapter.ts +41 -0
- package/src/strategies/universal-adapters/common-adapter.ts +96 -0
- package/src/strategies/universal-adapters/index.ts +3 -0
- package/src/strategies/universal-adapters/vesu-adapter.ts +344 -0
- package/src/strategies/universal-strategy.ts +695 -0
- package/src/utils/cacheClass.ts +29 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/oz-merkle.ts +91 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import BigNumber from 'bignumber.js';
|
|
2
2
|
import * as starknet from 'starknet';
|
|
3
|
-
import { RpcProvider, BlockIdentifier, Contract, Uint256, Call, Account } from 'starknet';
|
|
3
|
+
import { RpcProvider, BlockIdentifier, Contract, Uint256, Call, Account, CairoCustomEnum, RawArgs } from 'starknet';
|
|
4
4
|
import React, { ReactNode } from 'react';
|
|
5
5
|
import { Quote } from '@avnu/avnu-sdk';
|
|
6
|
+
import { HexString, BytesLike } from '@ericnordelo/strk-merkle-tree/dist/bytes';
|
|
7
|
+
import { MultiProof } from '@ericnordelo/strk-merkle-tree/dist/core';
|
|
8
|
+
import { MerkleTreeImpl, MerkleTreeData } from '@ericnordelo/strk-merkle-tree/dist/merkletree';
|
|
9
|
+
import { MerkleTreeOptions } from '@ericnordelo/strk-merkle-tree/dist/options';
|
|
10
|
+
import { ValueType } from '@ericnordelo/strk-merkle-tree/dist/serde';
|
|
6
11
|
import TelegramBot from 'node-telegram-bot-api';
|
|
7
12
|
|
|
8
13
|
declare class _Web3Number<T extends _Web3Number<T>> extends BigNumber {
|
|
@@ -40,6 +45,7 @@ declare class ContractAddr {
|
|
|
40
45
|
static standardise(address: string | bigint): string;
|
|
41
46
|
static eqString(a: string, b: string): boolean;
|
|
42
47
|
toString(): string;
|
|
48
|
+
toBigInt(): bigint;
|
|
43
49
|
}
|
|
44
50
|
|
|
45
51
|
declare enum RiskType {
|
|
@@ -67,6 +73,7 @@ interface TokenInfo {
|
|
|
67
73
|
logo: string;
|
|
68
74
|
coingeckId?: string;
|
|
69
75
|
displayDecimals: number;
|
|
76
|
+
priceCheckAmount?: number;
|
|
70
77
|
}
|
|
71
78
|
declare enum Network {
|
|
72
79
|
mainnet = "mainnet",
|
|
@@ -137,7 +144,7 @@ interface IInvestmentFlow {
|
|
|
137
144
|
linkedFlows: IInvestmentFlow[];
|
|
138
145
|
style?: any;
|
|
139
146
|
}
|
|
140
|
-
declare function getMainnetConfig(rpcUrl
|
|
147
|
+
declare function getMainnetConfig(rpcUrl?: string, blockIdentifier?: BlockIdentifier): IConfig;
|
|
141
148
|
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.";
|
|
142
149
|
declare const getRiskColor: (risk: RiskFactor) => "light_green_2" | "yellow" | "red";
|
|
143
150
|
declare const getNoRiskTags: (risks: RiskFactor[]) => RiskType[];
|
|
@@ -146,6 +153,15 @@ interface HighlightLink {
|
|
|
146
153
|
link: string;
|
|
147
154
|
}
|
|
148
155
|
declare function highlightTextWithLinks(put: string, highlights: HighlightLink[]): ReactNode;
|
|
156
|
+
interface VaultPosition {
|
|
157
|
+
amount: Web3Number;
|
|
158
|
+
usdValue: number;
|
|
159
|
+
token: TokenInfo;
|
|
160
|
+
remarks: string;
|
|
161
|
+
}
|
|
162
|
+
declare const Protocols: {
|
|
163
|
+
VESU: IProtocol;
|
|
164
|
+
};
|
|
149
165
|
|
|
150
166
|
interface ILendingMetadata {
|
|
151
167
|
name: string;
|
|
@@ -320,12 +336,19 @@ declare class FatalError extends Error {
|
|
|
320
336
|
* - fatalError: Things to do when a fatal error occurs
|
|
321
337
|
*/
|
|
322
338
|
declare class Global {
|
|
339
|
+
static cache: Record<string, {
|
|
340
|
+
value: any;
|
|
341
|
+
ttl: number;
|
|
342
|
+
timestamp: number;
|
|
343
|
+
}>;
|
|
323
344
|
static fatalError(message: string, err?: Error): void;
|
|
324
345
|
static httpError(url: string, err: Error, message?: string): void;
|
|
325
346
|
static getDefaultTokens(): TokenInfo[];
|
|
326
347
|
static getTokens(): Promise<TokenInfo[]>;
|
|
327
348
|
static assert(condition: any, message: string): void;
|
|
328
349
|
static getTokenInfoFromAddr(addr: ContractAddr): Promise<TokenInfo>;
|
|
350
|
+
static setGlobalCache(key: string, data: any, ttl?: number): void;
|
|
351
|
+
static getGlobalCache<T>(key: string): T | null;
|
|
329
352
|
}
|
|
330
353
|
|
|
331
354
|
declare class AutoCompounderSTRK {
|
|
@@ -357,6 +380,18 @@ declare class AutoCompounderSTRK {
|
|
|
357
380
|
}>;
|
|
358
381
|
}
|
|
359
382
|
|
|
383
|
+
interface CacheData$1 {
|
|
384
|
+
timestamp: number;
|
|
385
|
+
ttl: number;
|
|
386
|
+
data: any;
|
|
387
|
+
}
|
|
388
|
+
declare class CacheClass {
|
|
389
|
+
readonly cache: Map<string, CacheData$1>;
|
|
390
|
+
setCache(key: string, data: any, ttl?: number): void;
|
|
391
|
+
getCache<T>(key: string): T | null;
|
|
392
|
+
isCacheValid(key: string): boolean;
|
|
393
|
+
}
|
|
394
|
+
|
|
360
395
|
interface SingleActionAmount {
|
|
361
396
|
tokenInfo: TokenInfo;
|
|
362
397
|
amount: Web3Number;
|
|
@@ -378,7 +413,7 @@ interface CacheData {
|
|
|
378
413
|
ttl: number;
|
|
379
414
|
data: any;
|
|
380
415
|
}
|
|
381
|
-
declare class BaseStrategy<TVLInfo, ActionInfo> {
|
|
416
|
+
declare class BaseStrategy<TVLInfo, ActionInfo> extends CacheClass {
|
|
382
417
|
readonly config: IConfig;
|
|
383
418
|
readonly cache: Map<string, CacheData>;
|
|
384
419
|
constructor(config: IConfig);
|
|
@@ -386,9 +421,6 @@ declare class BaseStrategy<TVLInfo, ActionInfo> {
|
|
|
386
421
|
getTVL(): Promise<TVLInfo>;
|
|
387
422
|
depositCall(amountInfo: ActionInfo, receiver: ContractAddr): Promise<Call[]>;
|
|
388
423
|
withdrawCall(amountInfo: ActionInfo, receiver: ContractAddr, owner: ContractAddr): Promise<Call[]>;
|
|
389
|
-
setCache(key: string, data: any, ttl?: number): void;
|
|
390
|
-
getCache(key: string): any | null;
|
|
391
|
-
isCacheValid(key: string): boolean;
|
|
392
424
|
}
|
|
393
425
|
|
|
394
426
|
interface PoolProps {
|
|
@@ -815,14 +847,6 @@ declare class SenseiVault extends BaseStrategy<SingleTokenInfo, SingleActionAmou
|
|
|
815
847
|
}
|
|
816
848
|
declare const SenseiStrategies: IStrategyMetadata<SenseiVaultSettings>[];
|
|
817
849
|
|
|
818
|
-
declare class TelegramNotif {
|
|
819
|
-
private subscribers;
|
|
820
|
-
readonly bot: TelegramBot;
|
|
821
|
-
constructor(token: string, shouldPoll: boolean);
|
|
822
|
-
activateChatBot(): void;
|
|
823
|
-
sendMessage(msg: string): void;
|
|
824
|
-
}
|
|
825
|
-
|
|
826
850
|
interface LeveledLogMethod {
|
|
827
851
|
(message: string, ...meta: any[]): void;
|
|
828
852
|
(message: any): void;
|
|
@@ -836,6 +860,26 @@ interface MyLogger {
|
|
|
836
860
|
}
|
|
837
861
|
declare const logger: MyLogger;
|
|
838
862
|
|
|
863
|
+
interface LeafData {
|
|
864
|
+
id: bigint;
|
|
865
|
+
readableId: string;
|
|
866
|
+
data: bigint[];
|
|
867
|
+
}
|
|
868
|
+
interface StandardMerkleTreeData<T extends any> extends MerkleTreeData<T> {
|
|
869
|
+
format: 'standard-v1';
|
|
870
|
+
leafEncoding: ValueType[];
|
|
871
|
+
}
|
|
872
|
+
declare class StandardMerkleTree extends MerkleTreeImpl<LeafData> {
|
|
873
|
+
protected readonly tree: HexString[];
|
|
874
|
+
protected readonly values: StandardMerkleTreeData<LeafData>['values'];
|
|
875
|
+
protected readonly leafEncoding: ValueType[];
|
|
876
|
+
protected constructor(tree: HexString[], values: StandardMerkleTreeData<LeafData>['values'], leafEncoding: ValueType[]);
|
|
877
|
+
static of(values: LeafData[], leafEncoding?: ValueType[], options?: MerkleTreeOptions): StandardMerkleTree;
|
|
878
|
+
static verify<T extends any[]>(root: BytesLike, leafEncoding: ValueType[], leaf: T, proof: BytesLike[]): boolean;
|
|
879
|
+
static verifyMultiProof<T extends any[]>(root: BytesLike, leafEncoding: ValueType[], multiproof: MultiProof<BytesLike, T>): boolean;
|
|
880
|
+
dump(): StandardMerkleTreeData<LeafData>;
|
|
881
|
+
}
|
|
882
|
+
|
|
839
883
|
type RequiredFields<T> = {
|
|
840
884
|
[K in keyof T]-?: T[K];
|
|
841
885
|
};
|
|
@@ -845,6 +889,271 @@ type RequiredKeys<T> = {
|
|
|
845
889
|
declare function assert(condition: boolean, message: string): void;
|
|
846
890
|
declare function getTrovesEndpoint(): string;
|
|
847
891
|
|
|
892
|
+
interface ManageCall {
|
|
893
|
+
sanitizer: ContractAddr;
|
|
894
|
+
call: {
|
|
895
|
+
contractAddress: ContractAddr;
|
|
896
|
+
selector: string;
|
|
897
|
+
calldata: bigint[];
|
|
898
|
+
};
|
|
899
|
+
}
|
|
900
|
+
type GenerateCallFn<T> = (params: T) => ManageCall;
|
|
901
|
+
type AdapterLeafType<T> = {
|
|
902
|
+
leaf: LeafData;
|
|
903
|
+
callConstructor: GenerateCallFn<T>;
|
|
904
|
+
};
|
|
905
|
+
type LeafAdapterFn<T> = () => AdapterLeafType<T>;
|
|
906
|
+
declare class BaseAdapter extends CacheClass {
|
|
907
|
+
protected constructSimpleLeafData(params: {
|
|
908
|
+
id: string;
|
|
909
|
+
target: ContractAddr;
|
|
910
|
+
method: string;
|
|
911
|
+
packedArguments: bigint[];
|
|
912
|
+
}): LeafData;
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
interface FlashloanCallParams {
|
|
916
|
+
amount: Web3Number;
|
|
917
|
+
data: bigint[];
|
|
918
|
+
}
|
|
919
|
+
interface ApproveCallParams {
|
|
920
|
+
amount: Web3Number;
|
|
921
|
+
}
|
|
922
|
+
interface CommonAdapterConfig {
|
|
923
|
+
id: string;
|
|
924
|
+
manager: ContractAddr;
|
|
925
|
+
asset: ContractAddr;
|
|
926
|
+
}
|
|
927
|
+
declare class CommonAdapter extends BaseAdapter {
|
|
928
|
+
config: CommonAdapterConfig;
|
|
929
|
+
constructor(config: CommonAdapterConfig);
|
|
930
|
+
getFlashloanAdapter(): AdapterLeafType<FlashloanCallParams>;
|
|
931
|
+
getFlashloanCall(params: FlashloanCallParams): ManageCall;
|
|
932
|
+
getApproveAdapter(token: ContractAddr, spender: ContractAddr, id: string): () => AdapterLeafType<ApproveCallParams>;
|
|
933
|
+
getApproveCall(token: ContractAddr, spender: ContractAddr): (params: ApproveCallParams) => {
|
|
934
|
+
sanitizer: ContractAddr;
|
|
935
|
+
call: {
|
|
936
|
+
contractAddress: ContractAddr;
|
|
937
|
+
selector: string;
|
|
938
|
+
calldata: bigint[];
|
|
939
|
+
};
|
|
940
|
+
};
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
interface VesuPoolsInfo {
|
|
944
|
+
pools: any[];
|
|
945
|
+
isErrorPoolsAPI: boolean;
|
|
946
|
+
}
|
|
947
|
+
declare enum VesuAmountType {
|
|
948
|
+
Delta = 0,
|
|
949
|
+
Target = 1
|
|
950
|
+
}
|
|
951
|
+
declare enum VesuAmountDenomination {
|
|
952
|
+
Native = 0,
|
|
953
|
+
Assets = 1
|
|
954
|
+
}
|
|
955
|
+
interface i257 {
|
|
956
|
+
abs: Web3Number;
|
|
957
|
+
is_negative: boolean;
|
|
958
|
+
}
|
|
959
|
+
interface VesuAmount {
|
|
960
|
+
amount_type: VesuAmountType;
|
|
961
|
+
denomination: VesuAmountDenomination;
|
|
962
|
+
value: i257;
|
|
963
|
+
}
|
|
964
|
+
interface VesuModifyPositionCallParams {
|
|
965
|
+
collateralAmount: VesuAmount;
|
|
966
|
+
debtAmount: VesuAmount;
|
|
967
|
+
}
|
|
968
|
+
interface VesuAdapterConfig {
|
|
969
|
+
poolId: ContractAddr;
|
|
970
|
+
collateral: TokenInfo;
|
|
971
|
+
debt: TokenInfo;
|
|
972
|
+
vaultAllocator: ContractAddr;
|
|
973
|
+
id: string;
|
|
974
|
+
}
|
|
975
|
+
declare const VesuPools: {
|
|
976
|
+
Genesis: ContractAddr;
|
|
977
|
+
};
|
|
978
|
+
declare class VesuAdapter extends BaseAdapter {
|
|
979
|
+
VESU_SINGLETON: ContractAddr;
|
|
980
|
+
config: VesuAdapterConfig;
|
|
981
|
+
networkConfig: IConfig | undefined;
|
|
982
|
+
pricer: PricerBase | undefined;
|
|
983
|
+
constructor(config: VesuAdapterConfig);
|
|
984
|
+
getModifyPosition: () => AdapterLeafType<VesuModifyPositionCallParams>;
|
|
985
|
+
static getDefaultModifyPositionCallParams(params: {
|
|
986
|
+
collateralAmount: Web3Number;
|
|
987
|
+
isAddCollateral: boolean;
|
|
988
|
+
debtAmount: Web3Number;
|
|
989
|
+
isBorrow: boolean;
|
|
990
|
+
}): {
|
|
991
|
+
collateralAmount: {
|
|
992
|
+
amount_type: VesuAmountType;
|
|
993
|
+
denomination: VesuAmountDenomination;
|
|
994
|
+
value: {
|
|
995
|
+
abs: Web3Number;
|
|
996
|
+
is_negative: boolean;
|
|
997
|
+
};
|
|
998
|
+
};
|
|
999
|
+
debtAmount: {
|
|
1000
|
+
amount_type: VesuAmountType;
|
|
1001
|
+
denomination: VesuAmountDenomination;
|
|
1002
|
+
value: {
|
|
1003
|
+
abs: Web3Number;
|
|
1004
|
+
is_negative: boolean;
|
|
1005
|
+
};
|
|
1006
|
+
};
|
|
1007
|
+
};
|
|
1008
|
+
getModifyPositionCall: (params: VesuModifyPositionCallParams) => ManageCall;
|
|
1009
|
+
formatAmountTypeEnum(amountType: VesuAmountType): CairoCustomEnum;
|
|
1010
|
+
formatAmountDenominationEnum(denomination: VesuAmountDenomination): CairoCustomEnum;
|
|
1011
|
+
getVesuSingletonContract(config: IConfig): Contract;
|
|
1012
|
+
getLTVConfig(config: IConfig): Promise<number>;
|
|
1013
|
+
getPositions(config: IConfig): Promise<VaultPosition[]>;
|
|
1014
|
+
getCollateralization(config: IConfig): Promise<Omit<VaultPosition, 'amount'>[]>;
|
|
1015
|
+
getAssetPrices(): Promise<{
|
|
1016
|
+
collateralTokenAmount: Web3Number;
|
|
1017
|
+
collateralUSDAmount: number;
|
|
1018
|
+
collateralPrice: number;
|
|
1019
|
+
debtTokenAmount: Web3Number;
|
|
1020
|
+
debtUSDAmount: number;
|
|
1021
|
+
debtPrice: number;
|
|
1022
|
+
ltv: number;
|
|
1023
|
+
}>;
|
|
1024
|
+
getHealthFactor(): Promise<number>;
|
|
1025
|
+
static getVesuPools(retry?: number): Promise<VesuPoolsInfo>;
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
interface UniversalStrategySettings {
|
|
1029
|
+
manager: ContractAddr;
|
|
1030
|
+
vaultAllocator: ContractAddr;
|
|
1031
|
+
redeemRequestNFT: ContractAddr;
|
|
1032
|
+
leafAdapters: LeafAdapterFn<any>[];
|
|
1033
|
+
adapters: {
|
|
1034
|
+
id: string;
|
|
1035
|
+
adapter: BaseAdapter;
|
|
1036
|
+
}[];
|
|
1037
|
+
targetHealthFactor: number;
|
|
1038
|
+
minHealthFactor: number;
|
|
1039
|
+
}
|
|
1040
|
+
declare class UniversalStrategy<S extends UniversalStrategySettings> extends BaseStrategy<SingleTokenInfo, SingleActionAmount> {
|
|
1041
|
+
/** Contract address of the strategy */
|
|
1042
|
+
readonly address: ContractAddr;
|
|
1043
|
+
/** Pricer instance for token price calculations */
|
|
1044
|
+
readonly pricer: PricerBase;
|
|
1045
|
+
/** Metadata containing strategy information */
|
|
1046
|
+
readonly metadata: IStrategyMetadata<S>;
|
|
1047
|
+
/** Contract instance for interacting with the strategy */
|
|
1048
|
+
readonly contract: Contract;
|
|
1049
|
+
readonly managerContract: Contract;
|
|
1050
|
+
merkleTree: StandardMerkleTree | undefined;
|
|
1051
|
+
constructor(config: IConfig, pricer: PricerBase, metadata: IStrategyMetadata<S>);
|
|
1052
|
+
getMerkleTree(): StandardMerkleTree;
|
|
1053
|
+
getMerkleRoot(): string;
|
|
1054
|
+
getProofs<T>(id: string): {
|
|
1055
|
+
proofs: string[];
|
|
1056
|
+
callConstructor: GenerateCallFn<T>;
|
|
1057
|
+
};
|
|
1058
|
+
getAdapter(id: string): BaseAdapter;
|
|
1059
|
+
asset(): TokenInfo;
|
|
1060
|
+
depositCall(amountInfo: SingleActionAmount, receiver: ContractAddr): Promise<Call[]>;
|
|
1061
|
+
/**
|
|
1062
|
+
* Calculates the Total Value Locked (TVL) for a specific user.
|
|
1063
|
+
* @param user - Address of the user
|
|
1064
|
+
* @returns Object containing the amount in token units and USD value
|
|
1065
|
+
*/
|
|
1066
|
+
getUserTVL(user: ContractAddr): Promise<{
|
|
1067
|
+
tokenInfo: TokenInfo;
|
|
1068
|
+
amount: Web3Number;
|
|
1069
|
+
usdValue: number;
|
|
1070
|
+
}>;
|
|
1071
|
+
/**
|
|
1072
|
+
* Calculates the weighted average APY across all pools based on USD value.
|
|
1073
|
+
* @returns {Promise<number>} The weighted average APY across all pools
|
|
1074
|
+
*/
|
|
1075
|
+
netAPY(): Promise<{
|
|
1076
|
+
net: number;
|
|
1077
|
+
splits: {
|
|
1078
|
+
apy: number;
|
|
1079
|
+
id: string;
|
|
1080
|
+
}[];
|
|
1081
|
+
}>;
|
|
1082
|
+
private computeAPY;
|
|
1083
|
+
/**
|
|
1084
|
+
* Calculates the total TVL of the strategy.
|
|
1085
|
+
* @returns Object containing the total amount in token units and USD value
|
|
1086
|
+
*/
|
|
1087
|
+
getTVL(): Promise<{
|
|
1088
|
+
tokenInfo: TokenInfo;
|
|
1089
|
+
amount: Web3Number;
|
|
1090
|
+
usdValue: number;
|
|
1091
|
+
}>;
|
|
1092
|
+
getAUM(): Promise<{
|
|
1093
|
+
net: SingleTokenInfo;
|
|
1094
|
+
prevAum: Web3Number;
|
|
1095
|
+
splits: {
|
|
1096
|
+
id: string;
|
|
1097
|
+
aum: Web3Number;
|
|
1098
|
+
}[];
|
|
1099
|
+
}>;
|
|
1100
|
+
getVesuAdapters(): VesuAdapter[];
|
|
1101
|
+
getVaultPositions(): Promise<VaultPosition[]>;
|
|
1102
|
+
getSetManagerCall(strategist: ContractAddr, root?: string): Call;
|
|
1103
|
+
getManageCall(proofIds: string[], manageCalls: ManageCall[]): Call;
|
|
1104
|
+
getVesuModifyPositionCalls(params: {
|
|
1105
|
+
isLeg1: boolean;
|
|
1106
|
+
isDeposit: boolean;
|
|
1107
|
+
depositAmount: Web3Number;
|
|
1108
|
+
debtAmount: Web3Number;
|
|
1109
|
+
}): {
|
|
1110
|
+
proofs: string[];
|
|
1111
|
+
manageCall: ManageCall;
|
|
1112
|
+
step: UNIVERSAL_MANAGE_IDS;
|
|
1113
|
+
}[];
|
|
1114
|
+
getTag(): string;
|
|
1115
|
+
getVesuHealthFactors(): Promise<number[]>;
|
|
1116
|
+
computeRebalanceConditionAndReturnCalls(): Promise<Call[]>;
|
|
1117
|
+
private getNewHealthFactor;
|
|
1118
|
+
/**
|
|
1119
|
+
*
|
|
1120
|
+
* @param vesuAdapter
|
|
1121
|
+
* @param currentHf
|
|
1122
|
+
* @param isDeposit if true, attempt by adding collateral, else by repaying
|
|
1123
|
+
* @returns
|
|
1124
|
+
*/
|
|
1125
|
+
private getLegRebalanceAmount;
|
|
1126
|
+
getVesuMultiplyCall(params: {
|
|
1127
|
+
isDeposit: boolean;
|
|
1128
|
+
leg1DepositAmount: Web3Number;
|
|
1129
|
+
}): Promise<Call>;
|
|
1130
|
+
getRebalanceCall(params: {
|
|
1131
|
+
isLeg1toLeg2: boolean;
|
|
1132
|
+
amount: Web3Number;
|
|
1133
|
+
}): Promise<Call>;
|
|
1134
|
+
}
|
|
1135
|
+
declare enum UNIVERSAL_MANAGE_IDS {
|
|
1136
|
+
FLASH_LOAN = "flash_loan_init",
|
|
1137
|
+
VESU_LEG1 = "vesu_leg1",
|
|
1138
|
+
VESU_LEG2 = "vesu_leg2",
|
|
1139
|
+
APPROVE_TOKEN1 = "approve_token1",
|
|
1140
|
+
APPROVE_TOKEN2 = "approve_token2"
|
|
1141
|
+
}
|
|
1142
|
+
declare enum UNIVERSAL_ADAPTERS {
|
|
1143
|
+
COMMON = "common_adapter",
|
|
1144
|
+
VESU_LEG1 = "vesu_leg1_adapter",
|
|
1145
|
+
VESU_LEG2 = "vesu_leg2_adapter"
|
|
1146
|
+
}
|
|
1147
|
+
declare const UniversalStrategies: IStrategyMetadata<UniversalStrategySettings>[];
|
|
1148
|
+
|
|
1149
|
+
declare class TelegramNotif {
|
|
1150
|
+
private subscribers;
|
|
1151
|
+
readonly bot: TelegramBot;
|
|
1152
|
+
constructor(token: string, shouldPoll: boolean);
|
|
1153
|
+
activateChatBot(): void;
|
|
1154
|
+
sendMessage(msg: string): void;
|
|
1155
|
+
}
|
|
1156
|
+
|
|
848
1157
|
declare class PricerRedis extends Pricer {
|
|
849
1158
|
private redisClient;
|
|
850
1159
|
constructor(config: IConfig, tokens: TokenInfo[]);
|
|
@@ -860,6 +1169,37 @@ declare class PricerRedis extends Pricer {
|
|
|
860
1169
|
|
|
861
1170
|
declare function getAPIUsingHeadlessBrowser(url: string): Promise<any>;
|
|
862
1171
|
|
|
1172
|
+
declare function getAccount(accountKey: string, config: IConfig, password?: string | undefined, accountsFileName?: string, secretFileFolder?: string): Account;
|
|
1173
|
+
declare function myDeclare(contract_name: string, package_name: string | undefined, config: IConfig, acc: Account): Promise<{
|
|
1174
|
+
transaction_hash: string;
|
|
1175
|
+
class_hash: string;
|
|
1176
|
+
}>;
|
|
1177
|
+
declare function deployContract(contract_name: string, classHash: string, constructorData: RawArgs, config: IConfig, acc: Account): Promise<starknet.DeployContractUDCResponse>;
|
|
1178
|
+
interface DeployContractResult {
|
|
1179
|
+
contract_name: string;
|
|
1180
|
+
package_name: string;
|
|
1181
|
+
class_hash: string;
|
|
1182
|
+
call: Call;
|
|
1183
|
+
address: string;
|
|
1184
|
+
}
|
|
1185
|
+
declare function prepareMultiDeployContracts(contracts: Array<{
|
|
1186
|
+
contract_name: string;
|
|
1187
|
+
package_name: string;
|
|
1188
|
+
constructorData: RawArgs;
|
|
1189
|
+
}>, config: IConfig, acc: Account): Promise<DeployContractResult[]>;
|
|
1190
|
+
declare function executeDeployCalls(contractsInfo: DeployContractResult[], acc: Account, provider: RpcProvider): Promise<void>;
|
|
1191
|
+
declare function executeTransactions(calls: Call[], acc: Account, provider: RpcProvider, remarks?: string): Promise<{
|
|
1192
|
+
transaction_hash: string;
|
|
1193
|
+
}>;
|
|
1194
|
+
declare const Deployer: {
|
|
1195
|
+
getAccount: typeof getAccount;
|
|
1196
|
+
myDeclare: typeof myDeclare;
|
|
1197
|
+
deployContract: typeof deployContract;
|
|
1198
|
+
prepareMultiDeployContracts: typeof prepareMultiDeployContracts;
|
|
1199
|
+
executeDeployCalls: typeof executeDeployCalls;
|
|
1200
|
+
executeTransactions: typeof executeTransactions;
|
|
1201
|
+
};
|
|
1202
|
+
|
|
863
1203
|
/**
|
|
864
1204
|
* @description Config to manage storage of files on disk
|
|
865
1205
|
* @param SECRET_FILE_FOLDER - Folder to store secret files (default: ~/.starknet-store)
|
|
@@ -938,4 +1278,4 @@ declare class PasswordJsonCryptoUtil {
|
|
|
938
1278
|
decrypt(encryptedData: string, password: string): any;
|
|
939
1279
|
}
|
|
940
1280
|
|
|
941
|
-
export { type AccountInfo, type AllAccountsStore, AutoCompounderSTRK, AvnuWrapper, BaseStrategy, type CLVaultStrategySettings, ContractAddr, type DualActionAmount, type DualTokenInfo, ERC20, type EkuboBounds, EkuboCLVault, EkuboCLVaultStrategies, type EkuboPoolKey, type FAQ, FatalError, FlowChartColors, Global, type IConfig, type IInvestmentFlow, ILending, type ILendingMetadata, type ILendingPosition, type IProtocol, type IStrategyMetadata, Initializable, type LendingToken, MarginType, Network, PasswordJsonCryptoUtil, Pragma, type PriceInfo, Pricer, PricerFromApi, PricerRedis, type RequiredFields, type RequiredKeys, type RequiredStoreConfig, type RiskFactor, RiskType, type Route, SenseiStrategies, SenseiVault, type SenseiVaultSettings, type SingleActionAmount, type SingleTokenInfo, Store, type StoreConfig, type SwapInfo, TelegramNotif, type TokenInfo, VesuRebalance, type VesuRebalanceSettings, VesuRebalanceStrategies, Web3Number, ZkLend, assert, getAPIUsingHeadlessBrowser, getDefaultStoreConfig, getMainnetConfig, getNoRiskTags, getRiskColor, getRiskExplaination, getTrovesEndpoint, highlightTextWithLinks, logger };
|
|
1281
|
+
export { type AccountInfo, type AdapterLeafType, type AllAccountsStore, type ApproveCallParams, AutoCompounderSTRK, AvnuWrapper, BaseAdapter, BaseStrategy, type CLVaultStrategySettings, CommonAdapter, type CommonAdapterConfig, ContractAddr, Deployer, type DualActionAmount, type DualTokenInfo, ERC20, type EkuboBounds, EkuboCLVault, EkuboCLVaultStrategies, type EkuboPoolKey, type FAQ, FatalError, type FlashloanCallParams, FlowChartColors, type GenerateCallFn, Global, type IConfig, type IInvestmentFlow, ILending, type ILendingMetadata, type ILendingPosition, type IProtocol, type IStrategyMetadata, Initializable, type LeafAdapterFn, type LeafData, type LendingToken, type ManageCall, MarginType, Network, PasswordJsonCryptoUtil, Pragma, type PriceInfo, Pricer, PricerFromApi, PricerRedis, Protocols, type RequiredFields, type RequiredKeys, type RequiredStoreConfig, type RiskFactor, RiskType, type Route, SenseiStrategies, SenseiVault, type SenseiVaultSettings, type SingleActionAmount, type SingleTokenInfo, StandardMerkleTree, type StandardMerkleTreeData, Store, type StoreConfig, type SwapInfo, TelegramNotif, type TokenInfo, UNIVERSAL_ADAPTERS, UNIVERSAL_MANAGE_IDS, UniversalStrategies, UniversalStrategy, type UniversalStrategySettings, type VaultPosition, VesuAdapter, type VesuAdapterConfig, type VesuAmount, VesuAmountDenomination, VesuAmountType, type VesuModifyPositionCallParams, VesuPools, VesuRebalance, type VesuRebalanceSettings, VesuRebalanceStrategies, Web3Number, ZkLend, assert, getAPIUsingHeadlessBrowser, getDefaultStoreConfig, getMainnetConfig, getNoRiskTags, getRiskColor, getRiskExplaination, getTrovesEndpoint, highlightTextWithLinks, type i257, logger };
|