@strkfarm/sdk 2.0.0-dev.35 → 2.0.0-dev.37

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.
Files changed (50) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/cli.mjs +2 -2
  3. package/dist/index.browser.global.js +19596 -28786
  4. package/dist/index.browser.mjs +8559 -17931
  5. package/dist/index.d.ts +578 -2746
  6. package/dist/index.js +8649 -18059
  7. package/dist/index.mjs +8577 -17949
  8. package/package.json +3 -3
  9. package/src/data/universal-vault.abi.json +8 -7
  10. package/src/dataTypes/bignumber.browser.ts +5 -1
  11. package/src/dataTypes/bignumber.node.ts +5 -0
  12. package/src/global.ts +21 -1
  13. package/src/interfaces/common.tsx +39 -4
  14. package/src/modules/avnu.ts +19 -10
  15. package/src/modules/index.ts +1 -1
  16. package/src/strategies/base-strategy.ts +92 -8
  17. package/src/strategies/constants.ts +8 -3
  18. package/src/strategies/ekubo-cl-vault.tsx +150 -16
  19. package/src/strategies/factory.ts +21 -1
  20. package/src/strategies/index.ts +2 -7
  21. package/src/strategies/registry.ts +28 -5
  22. package/src/strategies/sensei.ts +29 -13
  23. package/src/strategies/svk-strategy.ts +26 -2
  24. package/src/strategies/token-boosted-xstrk-carry-strategy.tsx +1223 -0
  25. package/src/strategies/universal-adapters/avnu-adapter.ts +16 -8
  26. package/src/strategies/universal-adapters/index.ts +1 -2
  27. package/src/strategies/universal-adapters/svk-troves-adapter.ts +19 -6
  28. package/src/strategies/universal-adapters/vesu-modify-position-adapter.ts +22 -3
  29. package/src/strategies/universal-adapters/vesu-multiply-adapter.ts +75 -52
  30. package/src/strategies/universal-adapters/vesu-position-common.ts +38 -31
  31. package/src/strategies/universal-lst-muliplier-strategy.tsx +222 -269
  32. package/src/strategies/universal-strategy.tsx +166 -105
  33. package/src/strategies/vesu-rebalance.tsx +3 -6
  34. package/src/strategies/yoloVault.ts +1084 -0
  35. package/src/utils/health-factor-math.ts +29 -0
  36. package/src/modules/ExtendedWrapperSDk/index.ts +0 -62
  37. package/src/modules/ExtendedWrapperSDk/types.ts +0 -334
  38. package/src/modules/ExtendedWrapperSDk/wrapper.ts +0 -611
  39. package/src/strategies/universal-adapters/extended-adapter.ts +0 -860
  40. package/src/strategies/universal-adapters/usdc<>usdce-adapter.ts +0 -200
  41. package/src/strategies/usdc-boosted-strategy.tsx +0 -693
  42. package/src/strategies/vesu-extended-strategy/services/executionService.ts +0 -2234
  43. package/src/strategies/vesu-extended-strategy/services/extended-vesu-state-manager.ts +0 -4254
  44. package/src/strategies/vesu-extended-strategy/services/ltv-imbalance-rebalance-math.ts +0 -783
  45. package/src/strategies/vesu-extended-strategy/services/operationService.ts +0 -56
  46. package/src/strategies/vesu-extended-strategy/types/transaction-metadata.ts +0 -88
  47. package/src/strategies/vesu-extended-strategy/utils/config.runtime.ts +0 -78
  48. package/src/strategies/vesu-extended-strategy/utils/constants.ts +0 -48
  49. package/src/strategies/vesu-extended-strategy/utils/helper.ts +0 -528
  50. package/src/strategies/vesu-extended-strategy/vesu-extended-strategy.tsx +0 -1014
@@ -1,200 +0,0 @@
1
- import {
2
- BaseAdapter,
3
- DepositParams,
4
- WithdrawParams,
5
- BaseAdapterConfig,
6
- } from "./baseAdapter";
7
- import { toBigInt } from "./adapter-utils";
8
- import { Protocols } from "@/interfaces";
9
- import { SupportedPosition } from "./baseAdapter";
10
- import { PositionAPY, APYType, PositionAmount } from "./baseAdapter";
11
- import { Web3Number } from "@/dataTypes";
12
- import { PositionInfo } from "./baseAdapter";
13
- import { ManageCall } from "./baseAdapter";
14
- import { ContractAddr } from "@/dataTypes";
15
- import { AVNU_EXCHANGE } from "./adapter-utils";
16
- import { hash, uint256 } from "starknet";
17
- import { AVNU_EXCHANGE_FOR_LEGACY_USDC } from "./adapter-utils";
18
- import { AVNU_LEGACY_SANITIZER } from "./adapter-utils";
19
- import { assert, logger } from "@/utils";
20
- import { ERC20 } from "@/modules";
21
-
22
- export class UsdcToUsdceAdapter extends BaseAdapter<
23
- DepositParams,
24
- WithdrawParams
25
- > {
26
- readonly config: BaseAdapterConfig;
27
-
28
- private _approveProofReadableId(usdcToUsdce: boolean): string {
29
- const method = usdcToUsdce ? "swap_to_legacy" : "swap_to_new";
30
- return `approve_${method}`;
31
- }
32
-
33
- private _swapProofReadableId(usdcToUsdce: boolean): string {
34
- const method = usdcToUsdce ? "swap_to_legacy" : "swap_to_new";
35
- const target = usdcToUsdce
36
- ? this.config.supportedPositions[0].asset
37
- : this.config.supportedPositions[1].asset;
38
- return `${method}_${target.symbol}`;
39
- }
40
-
41
- private buildSwapLeafConfigs(usdcToUsdce: boolean): {
42
- target: ContractAddr;
43
- method: string;
44
- packedArguments: bigint[];
45
- sanitizer: ContractAddr;
46
- id: string;
47
- }[] {
48
- const method = usdcToUsdce ? "swap_to_legacy" : "swap_to_new";
49
- const target = usdcToUsdce
50
- ? this.config.supportedPositions[0].asset
51
- : this.config.supportedPositions[1].asset;
52
- return [
53
- {
54
- target: target.address,
55
- method: "approve",
56
- packedArguments: [AVNU_EXCHANGE_FOR_LEGACY_USDC.toBigInt()],
57
- id: this._approveProofReadableId(usdcToUsdce),
58
- sanitizer: AVNU_LEGACY_SANITIZER,
59
- },
60
- {
61
- target: AVNU_EXCHANGE_FOR_LEGACY_USDC,
62
- method: method,
63
- packedArguments: [],
64
- id: this._swapProofReadableId(usdcToUsdce),
65
- sanitizer: AVNU_LEGACY_SANITIZER,
66
- },
67
- ];
68
- }
69
-
70
- private async buildSwapCalls(
71
- params: DepositParams | WithdrawParams,
72
- usdcToUsdce: boolean,
73
- ): Promise<ManageCall[]> {
74
- const approveAmount = uint256.bnToUint256(params.amount.toWei());
75
- const target = usdcToUsdce
76
- ? this.config.supportedPositions[0].asset
77
- : this.config.supportedPositions[1].asset;
78
- const method = usdcToUsdce ? "swap_to_legacy" : "swap_to_new";
79
- return [
80
- {
81
- proofReadableId: this._approveProofReadableId(usdcToUsdce),
82
- sanitizer: AVNU_LEGACY_SANITIZER,
83
- call: {
84
- contractAddress: target.address,
85
- selector: hash.getSelectorFromName("approve"),
86
- calldata: [
87
- AVNU_EXCHANGE_FOR_LEGACY_USDC.toBigInt(),
88
- toBigInt(approveAmount.low.toString()),
89
- toBigInt(approveAmount.high.toString()),
90
- ],
91
- },
92
- },
93
- {
94
- proofReadableId: this._swapProofReadableId(usdcToUsdce),
95
- sanitizer: AVNU_LEGACY_SANITIZER,
96
- call: {
97
- contractAddress: AVNU_EXCHANGE_FOR_LEGACY_USDC,
98
- selector: hash.getSelectorFromName(method),
99
- calldata: [
100
- toBigInt(approveAmount.low.toString()), // amount low
101
- toBigInt(approveAmount.high.toString()), // amount high
102
- ],
103
- },
104
- },
105
- ];
106
- }
107
-
108
- constructor(config: BaseAdapterConfig) {
109
- super(config, UsdcToUsdceAdapter.name, Protocols.AVNU);
110
- this.config = config as BaseAdapterConfig;
111
- assert(this.config.supportedPositions.length === 2, "UsdcToUsdceAdapter must have 2 supported positions");
112
- assert(this.config.supportedPositions[0].asset.symbol === "USDC", "UsdcToUsdceAdapter must have USDC as the first supported position");
113
- assert(this.config.supportedPositions[1].asset.symbol === "USDC.e", "UsdcToUsdceAdapter must have USDCE as the second supported position");
114
- }
115
- //abstract means the method has no implementation in this class; instead, child classes must implement it.
116
- protected async getAPY(
117
- supportedPosition: SupportedPosition,
118
- ): Promise<PositionAPY> {
119
- return Promise.resolve({ apy: 0, type: APYType.BASE });
120
- }
121
-
122
- protected async getPosition(
123
- supportedPosition: SupportedPosition,
124
- ): Promise<PositionAmount | null> {
125
- const toToken = this.config.supportedPositions[1].asset;
126
- if (supportedPosition.asset.symbol != toToken.symbol) {
127
- return null;
128
- }
129
- try {
130
- // only measure balance of toToken, bcz from token usually gets trakced in unused balance or a previous avnu adapter
131
- const balance = await new ERC20(this.config.networkConfig).balanceOf(
132
- toToken.address,
133
- this.config.vaultAllocator.address,
134
- toToken.decimals,
135
- );
136
- return { amount: balance, remarks: `USDC.e unused balance (VA)` };
137
- } catch (_e) {
138
- logger.error(`${UsdcToUsdceAdapter.name}::getPosition: failed for ${toToken.symbol}`);
139
- throw new Error(`${UsdcToUsdceAdapter.name}: failed to get balance for ${toToken.symbol}`);
140
- }
141
- }
142
-
143
- async maxDeposit(amount?: Web3Number): Promise<PositionInfo> {
144
- return Promise.resolve({
145
- tokenInfo: this.config.baseToken,
146
- amount: new Web3Number(0, 0),
147
- usdValue: 0,
148
- apy: { apy: 0, type: APYType.BASE },
149
- protocol: Protocols.AVNU,
150
- remarks: "",
151
- });
152
- }
153
-
154
- async maxWithdraw(): Promise<PositionInfo> {
155
- return Promise.resolve({
156
- tokenInfo: this.config.baseToken,
157
- amount: new Web3Number(0, 0),
158
- usdValue: 0,
159
- apy: { apy: 0, type: APYType.BASE },
160
- protocol: Protocols.AVNU,
161
- remarks: "",
162
- });
163
- }
164
-
165
- protected _getDepositLeaf(): {
166
- // considering deposit is converting usdc to usdce
167
- target: ContractAddr;
168
- method: string;
169
- packedArguments: bigint[];
170
- sanitizer: ContractAddr;
171
- id: string;
172
- }[] {
173
- return this.buildSwapLeafConfigs(true);
174
- }
175
-
176
- protected _getWithdrawLeaf(): {
177
- target: ContractAddr;
178
- method: string;
179
- packedArguments: bigint[];
180
- sanitizer: ContractAddr;
181
- id: string;
182
- }[] {
183
- return this.buildSwapLeafConfigs(false);
184
- }
185
-
186
- async getDepositCall(params: DepositParams): Promise<ManageCall[]> {
187
- const calls = await this.buildSwapCalls(params, true);
188
- return calls;
189
- }
190
-
191
- //Swap wbtc to usdc
192
- async getWithdrawCall(params: WithdrawParams): Promise<ManageCall[]> {
193
- const calls = await this.buildSwapCalls(params, false);
194
- return calls;
195
- }
196
-
197
- async getHealthFactor(): Promise<number> {
198
- return Promise.resolve(1);
199
- }
200
- }