@strkfarm/sdk 2.0.0-staging.17 → 2.0.0-staging.19
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 +212 -178
- package/dist/index.browser.mjs +184 -151
- package/dist/index.d.ts +38 -7
- package/dist/index.js +271 -237
- package/dist/index.mjs +184 -151
- package/package.json +1 -1
- package/src/dataTypes/_bignumber.ts +5 -0
- package/src/strategies/ekubo-cl-vault.tsx +15 -3
- package/src/strategies/universal-adapters/vesu-adapter.ts +46 -25
- package/src/strategies/universal-lst-muliplier-strategy.tsx +58 -63
package/dist/index.js
CHANGED
|
@@ -92,6 +92,7 @@ __export(index_exports, {
|
|
|
92
92
|
VesuAdapter: () => VesuAdapter,
|
|
93
93
|
VesuAmountDenomination: () => VesuAmountDenomination,
|
|
94
94
|
VesuAmountType: () => VesuAmountType,
|
|
95
|
+
VesuPoolMetadata: () => VesuPoolMetadata,
|
|
95
96
|
VesuPools: () => VesuPools,
|
|
96
97
|
VesuRebalance: () => VesuRebalance,
|
|
97
98
|
VesuRebalanceStrategies: () => VesuRebalanceStrategies,
|
|
@@ -142,6 +143,7 @@ var import_util = __toESM(require("util"));
|
|
|
142
143
|
|
|
143
144
|
// src/dataTypes/_bignumber.ts
|
|
144
145
|
var import_bignumber = __toESM(require("bignumber.js"));
|
|
146
|
+
var import_starknet = require("starknet");
|
|
145
147
|
var _Web3Number = class extends import_bignumber.default {
|
|
146
148
|
constructor(value, decimals) {
|
|
147
149
|
super(value);
|
|
@@ -216,6 +218,9 @@ var _Web3Number = class extends import_bignumber.default {
|
|
|
216
218
|
sign
|
|
217
219
|
};
|
|
218
220
|
}
|
|
221
|
+
toUint256() {
|
|
222
|
+
return import_starknet.uint256.bnToUint256(this.toWei());
|
|
223
|
+
}
|
|
219
224
|
};
|
|
220
225
|
import_bignumber.default.config({ DECIMAL_PLACES: 18, ROUNDING_MODE: import_bignumber.default.ROUND_DOWN });
|
|
221
226
|
_Web3Number.config({ DECIMAL_PLACES: 18, ROUNDING_MODE: import_bignumber.default.ROUND_DOWN });
|
|
@@ -238,7 +243,7 @@ var Web3Number = class _Web3Number2 extends _Web3Number {
|
|
|
238
243
|
};
|
|
239
244
|
|
|
240
245
|
// src/dataTypes/address.ts
|
|
241
|
-
var
|
|
246
|
+
var import_starknet2 = require("starknet");
|
|
242
247
|
var ContractAddr = class _ContractAddr {
|
|
243
248
|
constructor(address) {
|
|
244
249
|
this.address = _ContractAddr.standardise(address);
|
|
@@ -257,7 +262,7 @@ var ContractAddr = class _ContractAddr {
|
|
|
257
262
|
if (!address) {
|
|
258
263
|
_a = "0";
|
|
259
264
|
}
|
|
260
|
-
const a =
|
|
265
|
+
const a = import_starknet2.num.getHexString(import_starknet2.num.getDecimalString(_a.toString()));
|
|
261
266
|
return a;
|
|
262
267
|
}
|
|
263
268
|
static eqString(a, b) {
|
|
@@ -267,7 +272,7 @@ var ContractAddr = class _ContractAddr {
|
|
|
267
272
|
return this.address;
|
|
268
273
|
}
|
|
269
274
|
toBigInt() {
|
|
270
|
-
return
|
|
275
|
+
return import_starknet2.num.toBigInt(this.address);
|
|
271
276
|
}
|
|
272
277
|
};
|
|
273
278
|
|
|
@@ -699,7 +704,7 @@ var PricerBase = class {
|
|
|
699
704
|
};
|
|
700
705
|
|
|
701
706
|
// src/modules/avnu.ts
|
|
702
|
-
var
|
|
707
|
+
var import_starknet5 = require("starknet");
|
|
703
708
|
var import_avnu_sdk = require("@avnu/avnu-sdk");
|
|
704
709
|
|
|
705
710
|
// src/utils/oz-merkle.ts
|
|
@@ -707,8 +712,8 @@ var import_bytes = require("@ericnordelo/strk-merkle-tree/dist/bytes");
|
|
|
707
712
|
var import_core = require("@ericnordelo/strk-merkle-tree/dist/core");
|
|
708
713
|
var import_hashes = require("@ericnordelo/strk-merkle-tree/dist/hashes");
|
|
709
714
|
var import_merkletree = require("@ericnordelo/strk-merkle-tree/dist/merkletree");
|
|
710
|
-
var
|
|
711
|
-
var
|
|
715
|
+
var import_starknet3 = require("starknet");
|
|
716
|
+
var import_starknet4 = require("@scure/starknet");
|
|
712
717
|
function hash_leaf(leaf) {
|
|
713
718
|
if (leaf.data.length < 1) {
|
|
714
719
|
throw new Error("Invalid leaf data");
|
|
@@ -718,10 +723,10 @@ function hash_leaf(leaf) {
|
|
|
718
723
|
for (let i = 1; i < leaf.data.length; i++) {
|
|
719
724
|
value = pedersen_hash(value, leaf.data[i]);
|
|
720
725
|
}
|
|
721
|
-
return `0x${
|
|
726
|
+
return `0x${import_starknet3.num.toHexString(value).replace(/^0x/, "").padStart(64, "0")}`;
|
|
722
727
|
}
|
|
723
728
|
function pedersen_hash(a, b) {
|
|
724
|
-
return BigInt((0,
|
|
729
|
+
return BigInt((0, import_starknet4.pedersen)(a, b).toString());
|
|
725
730
|
}
|
|
726
731
|
var StandardMerkleTree = class _StandardMerkleTree extends import_merkletree.MerkleTreeImpl {
|
|
727
732
|
constructor(tree, values, leafEncoding) {
|
|
@@ -844,10 +849,10 @@ var AvnuWrapper = class {
|
|
|
844
849
|
const _minAmount = minAmount || (quote.buyAmount * 95n / 100n).toString();
|
|
845
850
|
const swapInfo = {
|
|
846
851
|
token_from_address: quote.sellTokenAddress,
|
|
847
|
-
token_from_amount:
|
|
852
|
+
token_from_amount: import_starknet5.uint256.bnToUint256(quote.sellAmount),
|
|
848
853
|
token_to_address: quote.buyTokenAddress,
|
|
849
|
-
token_to_amount:
|
|
850
|
-
token_to_min_amount:
|
|
854
|
+
token_to_amount: import_starknet5.uint256.bnToUint256(_minAmount),
|
|
855
|
+
token_to_min_amount: import_starknet5.uint256.bnToUint256(_minAmount),
|
|
851
856
|
beneficiary: taker,
|
|
852
857
|
integrator_fee_amount_bps: integratorFeeBps,
|
|
853
858
|
integrator_fee_recipient: integratorFeeRecipient,
|
|
@@ -858,10 +863,10 @@ var AvnuWrapper = class {
|
|
|
858
863
|
static buildZeroSwap(tokenToSell, beneficiary, tokenToBuy = tokenToSell) {
|
|
859
864
|
return {
|
|
860
865
|
token_from_address: tokenToSell.address,
|
|
861
|
-
token_from_amount:
|
|
866
|
+
token_from_amount: import_starknet5.uint256.bnToUint256(0),
|
|
862
867
|
token_to_address: tokenToBuy.address,
|
|
863
|
-
token_to_amount:
|
|
864
|
-
token_to_min_amount:
|
|
868
|
+
token_to_amount: import_starknet5.uint256.bnToUint256(0),
|
|
869
|
+
token_to_min_amount: import_starknet5.uint256.bnToUint256(0),
|
|
865
870
|
beneficiary,
|
|
866
871
|
integrator_fee_amount_bps: 0,
|
|
867
872
|
integrator_fee_recipient: beneficiary,
|
|
@@ -1079,7 +1084,7 @@ var Pricer = class extends PricerBase {
|
|
|
1079
1084
|
};
|
|
1080
1085
|
|
|
1081
1086
|
// src/modules/pragma.ts
|
|
1082
|
-
var
|
|
1087
|
+
var import_starknet6 = require("starknet");
|
|
1083
1088
|
|
|
1084
1089
|
// src/data/pragma.abi.json
|
|
1085
1090
|
var pragma_abi_default = [
|
|
@@ -1184,7 +1189,7 @@ var Pragma = class extends PricerBase {
|
|
|
1184
1189
|
constructor(config, tokens2) {
|
|
1185
1190
|
super(config, tokens2);
|
|
1186
1191
|
this.contractAddr = "0x023fb3afbff2c0e3399f896dcf7400acf1a161941cfb386e34a123f228c62832";
|
|
1187
|
-
this.contract = new
|
|
1192
|
+
this.contract = new import_starknet6.Contract({
|
|
1188
1193
|
abi: pragma_abi_default,
|
|
1189
1194
|
address: this.contractAddr,
|
|
1190
1195
|
providerOrAccount: config.provider
|
|
@@ -1406,7 +1411,7 @@ var apolloClient = new import_client.ApolloClient({
|
|
|
1406
1411
|
var import_client2 = require("@apollo/client");
|
|
1407
1412
|
|
|
1408
1413
|
// src/modules/ekubo-pricer.ts
|
|
1409
|
-
var
|
|
1414
|
+
var import_starknet7 = require("starknet");
|
|
1410
1415
|
|
|
1411
1416
|
// src/data/ekubo-price-fethcer.abi.json
|
|
1412
1417
|
var ekubo_price_fethcer_abi_default = [
|
|
@@ -1682,7 +1687,7 @@ var EkuboPricer = class extends PricerBase {
|
|
|
1682
1687
|
this.EKUBO_PRICE_FETCHER_ADDRESS = "0x04946fb4ad5237d97bbb1256eba2080c4fe1de156da6a7f83e3b4823bb6d7da1";
|
|
1683
1688
|
this.USDC_ADDRESS = "0x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8";
|
|
1684
1689
|
this.USDC_DECIMALS = 6;
|
|
1685
|
-
this.contract = new
|
|
1690
|
+
this.contract = new import_starknet7.Contract({
|
|
1686
1691
|
abi: ekubo_price_fethcer_abi_default,
|
|
1687
1692
|
address: this.EKUBO_PRICE_FETCHER_ADDRESS,
|
|
1688
1693
|
providerOrAccount: config.provider
|
|
@@ -1893,7 +1898,7 @@ var PricerFromApi = class extends PricerBase {
|
|
|
1893
1898
|
};
|
|
1894
1899
|
|
|
1895
1900
|
// src/modules/erc20.ts
|
|
1896
|
-
var
|
|
1901
|
+
var import_starknet8 = require("starknet");
|
|
1897
1902
|
|
|
1898
1903
|
// src/data/erc20.abi.json
|
|
1899
1904
|
var erc20_abi_default = [
|
|
@@ -3026,7 +3031,7 @@ var ERC20 = class {
|
|
|
3026
3031
|
}
|
|
3027
3032
|
contract(addr) {
|
|
3028
3033
|
const _addr = typeof addr === "string" ? addr : addr.address;
|
|
3029
|
-
return new
|
|
3034
|
+
return new import_starknet8.Contract({ abi: erc20_abi_default, address: _addr, providerOrAccount: this.config.provider });
|
|
3030
3035
|
}
|
|
3031
3036
|
async balanceOf(token, address, tokenDecimals) {
|
|
3032
3037
|
const contract = this.contract(token);
|
|
@@ -3105,7 +3110,7 @@ var EkuboQuoter = class {
|
|
|
3105
3110
|
};
|
|
3106
3111
|
|
|
3107
3112
|
// src/interfaces/common.tsx
|
|
3108
|
-
var
|
|
3113
|
+
var import_starknet9 = require("starknet");
|
|
3109
3114
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
3110
3115
|
var RiskType = /* @__PURE__ */ ((RiskType2) => {
|
|
3111
3116
|
RiskType2["MARKET_RISK"] = "Market Risk";
|
|
@@ -3174,9 +3179,9 @@ var StrategyLiveStatus = /* @__PURE__ */ ((StrategyLiveStatus2) => {
|
|
|
3174
3179
|
StrategyLiveStatus2["HOT"] = "Hot & New \u{1F525}";
|
|
3175
3180
|
return StrategyLiveStatus2;
|
|
3176
3181
|
})(StrategyLiveStatus || {});
|
|
3177
|
-
function getMainnetConfig(rpcUrl = "https://starknet-mainnet.public.blastapi.io", blockIdentifier =
|
|
3182
|
+
function getMainnetConfig(rpcUrl = "https://starknet-mainnet.public.blastapi.io", blockIdentifier = import_starknet9.BlockTag.LATEST) {
|
|
3178
3183
|
return {
|
|
3179
|
-
provider: new
|
|
3184
|
+
provider: new import_starknet9.RpcProvider({
|
|
3180
3185
|
nodeUrl: rpcUrl,
|
|
3181
3186
|
blockIdentifier
|
|
3182
3187
|
// specVersion
|
|
@@ -3285,7 +3290,7 @@ var Initializable = class {
|
|
|
3285
3290
|
};
|
|
3286
3291
|
|
|
3287
3292
|
// src/strategies/autoCompounderStrk.ts
|
|
3288
|
-
var
|
|
3293
|
+
var import_starknet10 = require("starknet");
|
|
3289
3294
|
var AutoCompounderSTRK = class {
|
|
3290
3295
|
constructor(config, pricer) {
|
|
3291
3296
|
this.addr = ContractAddr.from("0x541681b9ad63dff1b35f79c78d8477f64857de29a27902f7298f7b620838ea");
|
|
@@ -3308,7 +3313,7 @@ var AutoCompounderSTRK = class {
|
|
|
3308
3313
|
async init() {
|
|
3309
3314
|
const provider2 = this.config.provider;
|
|
3310
3315
|
const cls = await provider2.getClassAt(this.addr.address);
|
|
3311
|
-
this.contract = new
|
|
3316
|
+
this.contract = new import_starknet10.Contract({ abi: cls.abi, address: this.addr.address, providerOrAccount: provider2 });
|
|
3312
3317
|
this.initialized = true;
|
|
3313
3318
|
}
|
|
3314
3319
|
async waitForInitilisation() {
|
|
@@ -3329,7 +3334,7 @@ var AutoCompounderSTRK = class {
|
|
|
3329
3334
|
/** Returns underlying assets of user */
|
|
3330
3335
|
async balanceOfUnderlying(user) {
|
|
3331
3336
|
const balanceShares = await this.balanceOf(user);
|
|
3332
|
-
const assets = await this.contract.convert_to_assets(
|
|
3337
|
+
const assets = await this.contract.convert_to_assets(import_starknet10.uint256.bnToUint256(balanceShares.toWei()));
|
|
3333
3338
|
return Web3Number.fromWei(assets.toString(), this.metadata.decimals);
|
|
3334
3339
|
}
|
|
3335
3340
|
/** Returns usd value of assets */
|
|
@@ -3345,7 +3350,7 @@ var AutoCompounderSTRK = class {
|
|
|
3345
3350
|
};
|
|
3346
3351
|
|
|
3347
3352
|
// src/strategies/vesu-rebalance.tsx
|
|
3348
|
-
var
|
|
3353
|
+
var import_starknet12 = require("starknet");
|
|
3349
3354
|
|
|
3350
3355
|
// src/data/vesu-rebalance.abi.json
|
|
3351
3356
|
var vesu_rebalance_abi_default = [
|
|
@@ -4887,7 +4892,7 @@ async function getAPIUsingHeadlessBrowser(url) {
|
|
|
4887
4892
|
}
|
|
4888
4893
|
|
|
4889
4894
|
// src/modules/harvests.ts
|
|
4890
|
-
var
|
|
4895
|
+
var import_starknet11 = require("starknet");
|
|
4891
4896
|
var Harvests = class _Harvests {
|
|
4892
4897
|
constructor(config) {
|
|
4893
4898
|
this.config = config;
|
|
@@ -4907,7 +4912,7 @@ var Harvests = class _Harvests {
|
|
|
4907
4912
|
}
|
|
4908
4913
|
const cls = await this.config.provider.getClassAt(sortedRewards[0].rewardsContract.address);
|
|
4909
4914
|
for (const reward of sortedRewards) {
|
|
4910
|
-
const contract = new
|
|
4915
|
+
const contract = new import_starknet11.Contract({ abi: cls.abi, address: reward.rewardsContract.address, providerOrAccount: this.config.provider });
|
|
4911
4916
|
const isClaimed = await contract.call("is_claimed", [reward.claim.id]);
|
|
4912
4917
|
logger.verbose(`${_Harvests.name}: isClaimed: ${isClaimed}, claim id: ${reward.claim.id}, address: ${reward.rewardsContract.address}`);
|
|
4913
4918
|
if (isClaimed) {
|
|
@@ -4961,7 +4966,7 @@ var VesuHarvests = class _VesuHarvests extends Harvests {
|
|
|
4961
4966
|
const _data = await result.json();
|
|
4962
4967
|
const rewardsContract = VESU_REWARDS_CONTRACT;
|
|
4963
4968
|
const cls = await this.config.provider.getClassAt(rewardsContract.address);
|
|
4964
|
-
const contract = new
|
|
4969
|
+
const contract = new import_starknet11.Contract({ abi: cls.abi, address: rewardsContract.address, providerOrAccount: this.config.provider });
|
|
4965
4970
|
const _claimed_amount = await contract.call("amount_already_claimed", [addr.address]);
|
|
4966
4971
|
const claimed_amount = Web3Number.fromWei(_claimed_amount.toString(), 18);
|
|
4967
4972
|
logger.verbose(`${_VesuHarvests.name}: claimed_amount: ${claimed_amount.toString()}`);
|
|
@@ -4979,7 +4984,7 @@ var VesuHarvests = class _VesuHarvests extends Harvests {
|
|
|
4979
4984
|
endDate: /* @__PURE__ */ new Date(0),
|
|
4980
4985
|
claim: {
|
|
4981
4986
|
id: 0,
|
|
4982
|
-
amount: Web3Number.fromWei(
|
|
4987
|
+
amount: Web3Number.fromWei(import_starknet11.num.getDecimalString(data.amount), 18),
|
|
4983
4988
|
claimee: addr
|
|
4984
4989
|
},
|
|
4985
4990
|
actualReward,
|
|
@@ -10472,7 +10477,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
|
10472
10477
|
);
|
|
10473
10478
|
this.metadata = metadata;
|
|
10474
10479
|
this.address = metadata.address;
|
|
10475
|
-
this.contract = new
|
|
10480
|
+
this.contract = new import_starknet12.Contract({
|
|
10476
10481
|
abi: vesu_rebalance_abi_default,
|
|
10477
10482
|
address: this.address.address,
|
|
10478
10483
|
providerOrAccount: this.config.provider
|
|
@@ -10489,17 +10494,17 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
|
10489
10494
|
amountInfo.tokenInfo.address.eq(this.asset().address),
|
|
10490
10495
|
"Deposit token mismatch"
|
|
10491
10496
|
);
|
|
10492
|
-
const assetContract = new
|
|
10497
|
+
const assetContract = new import_starknet12.Contract({
|
|
10493
10498
|
abi: vesu_rebalance_abi_default,
|
|
10494
10499
|
address: this.asset().address.address,
|
|
10495
10500
|
providerOrAccount: this.config.provider
|
|
10496
10501
|
});
|
|
10497
10502
|
const call1 = assetContract.populate("approve", [
|
|
10498
10503
|
this.address.address,
|
|
10499
|
-
|
|
10504
|
+
import_starknet12.uint256.bnToUint256(amountInfo.amount.toWei())
|
|
10500
10505
|
]);
|
|
10501
10506
|
const call2 = this.contract.populate("deposit", [
|
|
10502
|
-
|
|
10507
|
+
import_starknet12.uint256.bnToUint256(amountInfo.amount.toWei()),
|
|
10503
10508
|
receiver.address
|
|
10504
10509
|
]);
|
|
10505
10510
|
return [call1, call2];
|
|
@@ -10514,7 +10519,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
|
10514
10519
|
async withdrawCall(amountInfo, receiver, owner) {
|
|
10515
10520
|
return [
|
|
10516
10521
|
this.contract.populate("withdraw", [
|
|
10517
|
-
|
|
10522
|
+
import_starknet12.uint256.bnToUint256(amountInfo.amount.toWei()),
|
|
10518
10523
|
receiver.address,
|
|
10519
10524
|
owner.address
|
|
10520
10525
|
])
|
|
@@ -10538,7 +10543,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
|
10538
10543
|
const shares = await this.contract.call("balanceOf", [user.address], { blockIdentifier });
|
|
10539
10544
|
const assets = await this.contract.call(
|
|
10540
10545
|
"convert_to_assets",
|
|
10541
|
-
[
|
|
10546
|
+
[import_starknet12.uint256.bnToUint256(shares)],
|
|
10542
10547
|
{ blockIdentifier }
|
|
10543
10548
|
);
|
|
10544
10549
|
const amount = Web3Number.fromWei(
|
|
@@ -10664,7 +10669,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
|
10664
10669
|
);
|
|
10665
10670
|
const _pool = pools.find((d) => {
|
|
10666
10671
|
logger.verbose(
|
|
10667
|
-
`pool check: ${ContractAddr.from(d.id).eq(p.pool_id)}, id: ${d.id}, pool_id: ${
|
|
10672
|
+
`pool check: ${ContractAddr.from(d.id).eq(p.pool_id)}, id: ${d.id}, pool_id: ${import_starknet12.num.getDecimalString(
|
|
10668
10673
|
p.pool_id.address.toString()
|
|
10669
10674
|
)}`
|
|
10670
10675
|
);
|
|
@@ -10689,14 +10694,14 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
|
10689
10694
|
`Asset ${this.asset().address.toString()} not found in pool ${p.pool_id.address.toString()}`
|
|
10690
10695
|
);
|
|
10691
10696
|
}
|
|
10692
|
-
let vTokenContract = new
|
|
10697
|
+
let vTokenContract = new import_starknet12.Contract({
|
|
10693
10698
|
abi: vesu_rebalance_abi_default,
|
|
10694
10699
|
address: p.v_token.address,
|
|
10695
10700
|
providerOrAccount: this.config.provider
|
|
10696
10701
|
});
|
|
10697
10702
|
const bal = await vTokenContract.balanceOf(this.address.address);
|
|
10698
10703
|
const assets = await vTokenContract.convert_to_assets(
|
|
10699
|
-
|
|
10704
|
+
import_starknet12.uint256.bnToUint256(bal.toString())
|
|
10700
10705
|
);
|
|
10701
10706
|
logger.verbose(`Collateral: ${JSON.stringify(vesuPosition?.collateral)}`);
|
|
10702
10707
|
logger.verbose(`supplyApy: ${JSON.stringify(assetInfo?.stats.supplyApy)}`);
|
|
@@ -10998,11 +11003,11 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
|
10998
11003
|
if (p.changeAmt.eq(0)) return null;
|
|
10999
11004
|
actions.push({
|
|
11000
11005
|
pool_id: p.pool_id.address,
|
|
11001
|
-
feature: new
|
|
11006
|
+
feature: new import_starknet12.CairoCustomEnum(
|
|
11002
11007
|
p.isDeposit ? { DEPOSIT: {} } : { WITHDRAW: {} }
|
|
11003
11008
|
),
|
|
11004
11009
|
token: this.asset().address.address,
|
|
11005
|
-
amount:
|
|
11010
|
+
amount: import_starknet12.uint256.bnToUint256(
|
|
11006
11011
|
p.changeAmt.multipliedBy(p.isDeposit ? 1 : -1).toWei()
|
|
11007
11012
|
)
|
|
11008
11013
|
});
|
|
@@ -11061,10 +11066,10 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
|
11061
11066
|
const avnu = new AvnuWrapper();
|
|
11062
11067
|
let swapInfo = {
|
|
11063
11068
|
token_from_address: harvest.token.address,
|
|
11064
|
-
token_from_amount:
|
|
11069
|
+
token_from_amount: import_starknet12.uint256.bnToUint256(harvest.actualReward.toWei()),
|
|
11065
11070
|
token_to_address: this.asset().address.address,
|
|
11066
|
-
token_to_amount:
|
|
11067
|
-
token_to_min_amount:
|
|
11071
|
+
token_to_amount: import_starknet12.uint256.bnToUint256(0),
|
|
11072
|
+
token_to_min_amount: import_starknet12.uint256.bnToUint256(0),
|
|
11068
11073
|
beneficiary: this.address.address,
|
|
11069
11074
|
integrator_fee_amount_bps: 0,
|
|
11070
11075
|
integrator_fee_recipient: this.address.address,
|
|
@@ -11333,7 +11338,7 @@ VesuRebalanceStrategies.forEach((s) => {
|
|
|
11333
11338
|
});
|
|
11334
11339
|
|
|
11335
11340
|
// src/strategies/ekubo-cl-vault.tsx
|
|
11336
|
-
var
|
|
11341
|
+
var import_starknet13 = require("starknet");
|
|
11337
11342
|
|
|
11338
11343
|
// src/data/cl-vault.abi.json
|
|
11339
11344
|
var cl_vault_abi_default = [
|
|
@@ -16350,13 +16355,13 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
16350
16355
|
);
|
|
16351
16356
|
this.metadata = metadata;
|
|
16352
16357
|
this.address = metadata.address;
|
|
16353
|
-
this.contract = new
|
|
16358
|
+
this.contract = new import_starknet13.Contract({
|
|
16354
16359
|
abi: cl_vault_abi_default,
|
|
16355
16360
|
address: this.address.address,
|
|
16356
16361
|
providerOrAccount: this.config.provider
|
|
16357
16362
|
});
|
|
16358
16363
|
if (this.metadata.additionalInfo.lstContract) {
|
|
16359
|
-
this.lstContract = new
|
|
16364
|
+
this.lstContract = new import_starknet13.Contract({
|
|
16360
16365
|
abi: erc4626_abi_default,
|
|
16361
16366
|
address: this.metadata.additionalInfo.lstContract.address,
|
|
16362
16367
|
providerOrAccount: this.config.provider
|
|
@@ -16365,13 +16370,13 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
16365
16370
|
this.lstContract = null;
|
|
16366
16371
|
}
|
|
16367
16372
|
const EKUBO_POSITION = "0x02e0af29598b407c8716b17f6d2795eca1b471413fa03fb145a5e33722184067";
|
|
16368
|
-
this.ekuboPositionsContract = new
|
|
16373
|
+
this.ekuboPositionsContract = new import_starknet13.Contract({
|
|
16369
16374
|
abi: ekubo_positions_abi_default,
|
|
16370
16375
|
address: EKUBO_POSITION,
|
|
16371
16376
|
providerOrAccount: this.config.provider
|
|
16372
16377
|
});
|
|
16373
16378
|
const EKUBO_MATH = "0x04a72e9e166f6c0e9d800af4dc40f6b6fb4404b735d3f528d9250808b2481995";
|
|
16374
|
-
this.ekuboMathContract = new
|
|
16379
|
+
this.ekuboMathContract = new import_starknet13.Contract({
|
|
16375
16380
|
abi: ekubo_math_abi_default,
|
|
16376
16381
|
address: EKUBO_MATH,
|
|
16377
16382
|
providerOrAccount: this.config.provider
|
|
@@ -16402,7 +16407,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
16402
16407
|
const shares = await this.tokensToShares(amountInfo);
|
|
16403
16408
|
const { amount0, amount1 } = await this.contract.call(
|
|
16404
16409
|
"convert_to_assets",
|
|
16405
|
-
[
|
|
16410
|
+
[import_starknet13.uint256.bnToUint256(shares.toWei())]
|
|
16406
16411
|
);
|
|
16407
16412
|
return {
|
|
16408
16413
|
token0: {
|
|
@@ -16423,27 +16428,27 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
16423
16428
|
}
|
|
16424
16429
|
async depositCall(amountInfo, receiver) {
|
|
16425
16430
|
const updateAmountInfo = await this.getMinDepositAmounts(amountInfo);
|
|
16426
|
-
const token0Contract = new
|
|
16431
|
+
const token0Contract = new import_starknet13.Contract({
|
|
16427
16432
|
abi: erc4626_abi_default,
|
|
16428
16433
|
address: amountInfo.token0.tokenInfo.address.address,
|
|
16429
16434
|
providerOrAccount: this.config.provider
|
|
16430
16435
|
});
|
|
16431
|
-
const token1Contract = new
|
|
16436
|
+
const token1Contract = new import_starknet13.Contract({
|
|
16432
16437
|
abi: erc4626_abi_default,
|
|
16433
16438
|
address: amountInfo.token1.tokenInfo.address.address,
|
|
16434
16439
|
providerOrAccount: this.config.provider
|
|
16435
16440
|
});
|
|
16436
16441
|
const call1 = token0Contract.populate("approve", [
|
|
16437
16442
|
this.address.address,
|
|
16438
|
-
|
|
16443
|
+
import_starknet13.uint256.bnToUint256(updateAmountInfo.token0.amount.toWei())
|
|
16439
16444
|
]);
|
|
16440
16445
|
const call2 = token1Contract.populate("approve", [
|
|
16441
16446
|
this.address.address,
|
|
16442
|
-
|
|
16447
|
+
import_starknet13.uint256.bnToUint256(updateAmountInfo.token1.amount.toWei())
|
|
16443
16448
|
]);
|
|
16444
16449
|
const call3 = this.contract.populate("deposit", [
|
|
16445
|
-
|
|
16446
|
-
|
|
16450
|
+
import_starknet13.uint256.bnToUint256(updateAmountInfo.token0.amount.toWei()),
|
|
16451
|
+
import_starknet13.uint256.bnToUint256(updateAmountInfo.token1.amount.toWei()),
|
|
16447
16452
|
receiver.address
|
|
16448
16453
|
]);
|
|
16449
16454
|
const calls = [];
|
|
@@ -16453,8 +16458,8 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
16453
16458
|
}
|
|
16454
16459
|
async tokensToShares(amountInfo) {
|
|
16455
16460
|
const shares = await this.contract.call("convert_to_shares", [
|
|
16456
|
-
|
|
16457
|
-
|
|
16461
|
+
import_starknet13.uint256.bnToUint256(amountInfo.token0.amount.toWei()),
|
|
16462
|
+
import_starknet13.uint256.bnToUint256(amountInfo.token1.amount.toWei())
|
|
16458
16463
|
]);
|
|
16459
16464
|
return Web3Number.fromWei(shares.toString(), 18);
|
|
16460
16465
|
}
|
|
@@ -16465,7 +16470,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
16465
16470
|
);
|
|
16466
16471
|
return [
|
|
16467
16472
|
this.contract.populate("withdraw", [
|
|
16468
|
-
|
|
16473
|
+
import_starknet13.uint256.bnToUint256(shares.toWei()),
|
|
16469
16474
|
receiver.address
|
|
16470
16475
|
])
|
|
16471
16476
|
];
|
|
@@ -16487,14 +16492,21 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
16487
16492
|
handleFeesCall() {
|
|
16488
16493
|
return [this.contract.populate("handle_fees", [])];
|
|
16489
16494
|
}
|
|
16490
|
-
async getFeeHistory(timePeriod = "24h") {
|
|
16495
|
+
async getFeeHistory(timePeriod = "24h", range) {
|
|
16491
16496
|
const { data } = await apollo_client_default.query({
|
|
16492
16497
|
query: import_client4.gql`
|
|
16493
16498
|
query ContractFeeEarnings(
|
|
16494
16499
|
$timeframe: String!
|
|
16495
16500
|
$contract: String!
|
|
16501
|
+
$startTimestamp: Float
|
|
16502
|
+
$endTimestamp: Float
|
|
16496
16503
|
) {
|
|
16497
|
-
contractFeeEarnings(
|
|
16504
|
+
contractFeeEarnings(
|
|
16505
|
+
timeframe: $timeframe
|
|
16506
|
+
contract: $contract
|
|
16507
|
+
startTimestamp: $startTimestamp
|
|
16508
|
+
endTimestamp: $endTimestamp
|
|
16509
|
+
) {
|
|
16498
16510
|
contract
|
|
16499
16511
|
dailyEarnings {
|
|
16500
16512
|
date
|
|
@@ -16507,7 +16519,9 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
16507
16519
|
`,
|
|
16508
16520
|
variables: {
|
|
16509
16521
|
timeframe: timePeriod,
|
|
16510
|
-
contract: this.address.address
|
|
16522
|
+
contract: this.address.address,
|
|
16523
|
+
startTimestamp: range?.startTimestamp,
|
|
16524
|
+
endTimestamp: range?.endTimestamp
|
|
16511
16525
|
},
|
|
16512
16526
|
fetchPolicy: "no-cache"
|
|
16513
16527
|
});
|
|
@@ -16679,7 +16693,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
16679
16693
|
let bal = await this.balanceOf(user, blockIdentifier);
|
|
16680
16694
|
const assets = await this.contract.call(
|
|
16681
16695
|
"convert_to_assets",
|
|
16682
|
-
[
|
|
16696
|
+
[import_starknet13.uint256.bnToUint256(bal.toWei())],
|
|
16683
16697
|
{
|
|
16684
16698
|
blockIdentifier
|
|
16685
16699
|
}
|
|
@@ -16825,7 +16839,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
16825
16839
|
return this.metadata.additionalInfo.truePrice;
|
|
16826
16840
|
} else if (this.lstContract) {
|
|
16827
16841
|
const result = await this.lstContract.call("convert_to_assets", [
|
|
16828
|
-
|
|
16842
|
+
import_starknet13.uint256.bnToUint256(BigInt(1e18).toString())
|
|
16829
16843
|
]);
|
|
16830
16844
|
const truePrice = Number(BigInt(result.toString()) * BigInt(1e9) / BigInt(1e18)) / 1e9;
|
|
16831
16845
|
return truePrice;
|
|
@@ -17326,7 +17340,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17326
17340
|
logger.error(`Rebalance failed after ${MAX_SAME_ERROR_COUNT} same errors`);
|
|
17327
17341
|
throw new Error(`Rebalance failed after ${MAX_SAME_ERROR_COUNT} same errors`);
|
|
17328
17342
|
}
|
|
17329
|
-
const fromAmount =
|
|
17343
|
+
const fromAmount = import_starknet13.uint256.uint256ToBN(swapInfo.token_from_amount);
|
|
17330
17344
|
const fromTokenInfo = await Global.getTokenInfoFromAddr(ContractAddr.from(swapInfo.token_from_address));
|
|
17331
17345
|
logger.verbose(
|
|
17332
17346
|
`Selling ${fromAmount.toString()} of token ${swapInfo.token_from_address}`
|
|
@@ -17355,7 +17369,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17355
17369
|
logger.error("Convergence failed: nextAmount <= lowerLimit");
|
|
17356
17370
|
throw err;
|
|
17357
17371
|
}
|
|
17358
|
-
newSwapInfo.token_from_amount =
|
|
17372
|
+
newSwapInfo.token_from_amount = import_starknet13.uint256.bnToUint256(nextAmount);
|
|
17359
17373
|
} else {
|
|
17360
17374
|
logger.verbose("Increasing swap amount - deficit token0");
|
|
17361
17375
|
let nextAmount = (fromAmount + upperLimit) / 2n;
|
|
@@ -17367,7 +17381,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17367
17381
|
logger.error("Convergence failed: nextAmount >= upperLimit");
|
|
17368
17382
|
throw err;
|
|
17369
17383
|
}
|
|
17370
|
-
newSwapInfo.token_from_amount =
|
|
17384
|
+
newSwapInfo.token_from_amount = import_starknet13.uint256.bnToUint256(nextAmount);
|
|
17371
17385
|
}
|
|
17372
17386
|
} else if (err.message.includes("invalid token1 amount") || err.message.includes("invalid token1 balance")) {
|
|
17373
17387
|
if (isSellTokenToken0) {
|
|
@@ -17378,7 +17392,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17378
17392
|
logger.error("Convergence failed: nextAmount <= lowerLimit");
|
|
17379
17393
|
throw err;
|
|
17380
17394
|
}
|
|
17381
|
-
newSwapInfo.token_from_amount =
|
|
17395
|
+
newSwapInfo.token_from_amount = import_starknet13.uint256.bnToUint256(nextAmount);
|
|
17382
17396
|
} else {
|
|
17383
17397
|
logger.verbose("Increasing swap amount - deficit token1");
|
|
17384
17398
|
let nextAmount = (fromAmount + upperLimit) / 2n;
|
|
@@ -17390,7 +17404,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17390
17404
|
logger.error("Convergence failed: nextAmount >= upperLimit");
|
|
17391
17405
|
throw err;
|
|
17392
17406
|
}
|
|
17393
|
-
newSwapInfo.token_from_amount =
|
|
17407
|
+
newSwapInfo.token_from_amount = import_starknet13.uint256.bnToUint256(nextAmount);
|
|
17394
17408
|
}
|
|
17395
17409
|
} else if (err.message.includes("Residual tokens")) {
|
|
17396
17410
|
logger.error("Residual tokens");
|
|
@@ -17420,7 +17434,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17420
17434
|
logger.error("Unexpected error:", err);
|
|
17421
17435
|
throw err;
|
|
17422
17436
|
}
|
|
17423
|
-
newSwapInfo.token_to_min_amount =
|
|
17437
|
+
newSwapInfo.token_to_min_amount = import_starknet13.uint256.bnToUint256("0");
|
|
17424
17438
|
return this.rebalanceIter(
|
|
17425
17439
|
newSwapInfo,
|
|
17426
17440
|
acc,
|
|
@@ -17471,15 +17485,15 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17471
17485
|
const result = await this.ekuboMathContract.call(
|
|
17472
17486
|
"liquidity_delta_to_amount_delta",
|
|
17473
17487
|
[
|
|
17474
|
-
|
|
17488
|
+
import_starknet13.uint256.bnToUint256(currentPrice.sqrtRatio),
|
|
17475
17489
|
{
|
|
17476
17490
|
mag: liquidity.toWei(),
|
|
17477
17491
|
sign: 0
|
|
17478
17492
|
},
|
|
17479
|
-
|
|
17493
|
+
import_starknet13.uint256.bnToUint256(
|
|
17480
17494
|
_EkuboCLVault.priceToSqrtRatio(lowerPrice).toString()
|
|
17481
17495
|
),
|
|
17482
|
-
|
|
17496
|
+
import_starknet13.uint256.bnToUint256(
|
|
17483
17497
|
_EkuboCLVault.priceToSqrtRatio(upperPrice).toString()
|
|
17484
17498
|
)
|
|
17485
17499
|
],
|
|
@@ -17582,7 +17596,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17582
17596
|
const claimTokenInfo = await Global.getTokenInfoFromAddr(claim.token);
|
|
17583
17597
|
const harvestEstimateCall = async (baseSwapInfo2) => {
|
|
17584
17598
|
let baseSwapAmount = Web3Number.fromWei(
|
|
17585
|
-
|
|
17599
|
+
import_starknet13.uint256.uint256ToBN(baseSwapInfo2.token_from_amount).toString(),
|
|
17586
17600
|
claimTokenInfo.decimals
|
|
17587
17601
|
).minimum(
|
|
17588
17602
|
postFeeAmount.toFixed(claimTokenInfo.decimals)
|
|
@@ -17590,7 +17604,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17590
17604
|
if (baseSwapAmount.lt(1e-4)) {
|
|
17591
17605
|
baseSwapAmount = new Web3Number(0, claimTokenInfo.decimals);
|
|
17592
17606
|
}
|
|
17593
|
-
baseSwapInfo2.token_from_amount =
|
|
17607
|
+
baseSwapInfo2.token_from_amount = import_starknet13.uint256.bnToUint256(baseSwapAmount.toWei());
|
|
17594
17608
|
const isToken0ClaimToken2 = claim.token.eq(poolKey.token0);
|
|
17595
17609
|
logger.verbose(
|
|
17596
17610
|
`${_EkuboCLVault.name}: harvest => isToken0ClaimToken: ${isToken0ClaimToken2}, baseSwapAmount: ${baseSwapAmount}`
|
|
@@ -17600,7 +17614,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17600
17614
|
`${_EkuboCLVault.name}: harvest => remainingAmount: ${remainingAmount}`
|
|
17601
17615
|
);
|
|
17602
17616
|
let dummySwapInfo = AvnuWrapper.buildZeroSwap(claim.token, this.address.address, claim.token);
|
|
17603
|
-
dummySwapInfo.token_from_amount =
|
|
17617
|
+
dummySwapInfo.token_from_amount = import_starknet13.uint256.bnToUint256(remainingAmount.toWei());
|
|
17604
17618
|
logger.verbose(
|
|
17605
17619
|
`${_EkuboCLVault.name}: harvest => dummySwapInfo: ${JSON.stringify(
|
|
17606
17620
|
dummySwapInfo
|
|
@@ -17618,7 +17632,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17618
17632
|
amount: claim.claim.amount.toWei(),
|
|
17619
17633
|
claimee: claim.claim.claimee.address
|
|
17620
17634
|
},
|
|
17621
|
-
claim.proof.map((p) =>
|
|
17635
|
+
claim.proof.map((p) => import_starknet13.num.getDecimalString(p)),
|
|
17622
17636
|
isToken0ClaimToken2 ? dummySwapInfo : baseSwapInfo2,
|
|
17623
17637
|
// is token0 claim token, its just dummy swap
|
|
17624
17638
|
isToken0ClaimToken2 ? baseSwapInfo2 : dummySwapInfo
|
|
@@ -17627,7 +17641,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17627
17641
|
};
|
|
17628
17642
|
const isToken0ClaimToken = claim.token.eq(poolKey.token0);
|
|
17629
17643
|
let baseSwapInfo = AvnuWrapper.buildZeroSwap(claim.token, this.address.address, isToken0ClaimToken ? token1Info.address : token0Info.address);
|
|
17630
|
-
baseSwapInfo.token_from_amount =
|
|
17644
|
+
baseSwapInfo.token_from_amount = import_starknet13.uint256.bnToUint256(postFeeAmount.toWei());
|
|
17631
17645
|
if (postFeeAmount.greaterThan(0) && !isToken0ClaimToken) {
|
|
17632
17646
|
const avnuWrapper = new AvnuWrapper();
|
|
17633
17647
|
const quote = await avnuWrapper.getQuotes(
|
|
@@ -17736,7 +17750,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
17736
17750
|
amount: claim.claim.amount.toWei(),
|
|
17737
17751
|
claimee: claim.claim.claimee.address
|
|
17738
17752
|
},
|
|
17739
|
-
claim.proof.map((p) =>
|
|
17753
|
+
claim.proof.map((p) => import_starknet13.num.getDecimalString(p)),
|
|
17740
17754
|
swapInfo1,
|
|
17741
17755
|
swapInfo2
|
|
17742
17756
|
];
|
|
@@ -18427,7 +18441,7 @@ EkuboCLVaultStrategies.forEach((s) => {
|
|
|
18427
18441
|
});
|
|
18428
18442
|
|
|
18429
18443
|
// src/strategies/sensei.ts
|
|
18430
|
-
var
|
|
18444
|
+
var import_starknet16 = require("starknet");
|
|
18431
18445
|
|
|
18432
18446
|
// src/data/sensei.abi.json
|
|
18433
18447
|
var sensei_abi_default = [
|
|
@@ -20191,7 +20205,7 @@ var sensei_abi_default = [
|
|
|
20191
20205
|
];
|
|
20192
20206
|
|
|
20193
20207
|
// src/strategies/universal-adapters/vesu-adapter.ts
|
|
20194
|
-
var
|
|
20208
|
+
var import_starknet15 = require("starknet");
|
|
20195
20209
|
|
|
20196
20210
|
// src/strategies/universal-adapters/adapter-utils.ts
|
|
20197
20211
|
var SIMPLE_SANITIZER = ContractAddr.from("0x5a2e3ceb3da368b983a8717898427ab7b6daf04014b70f321e777f9aad940b4");
|
|
@@ -20213,7 +20227,7 @@ function toBigInt(value) {
|
|
|
20213
20227
|
}
|
|
20214
20228
|
|
|
20215
20229
|
// src/strategies/universal-adapters/baseAdapter.ts
|
|
20216
|
-
var
|
|
20230
|
+
var import_starknet14 = require("starknet");
|
|
20217
20231
|
var APYType = /* @__PURE__ */ ((APYType2) => {
|
|
20218
20232
|
APYType2["BASE"] = "base";
|
|
20219
20233
|
APYType2["REWARD"] = "reward";
|
|
@@ -20269,14 +20283,14 @@ var BaseAdapter = class extends CacheClass {
|
|
|
20269
20283
|
constructSimpleLeafData(params, sanitizer = SIMPLE_SANITIZER) {
|
|
20270
20284
|
const { id, target, method, packedArguments } = params;
|
|
20271
20285
|
return {
|
|
20272
|
-
id: BigInt(
|
|
20286
|
+
id: BigInt(import_starknet14.num.getDecimalString(import_starknet14.shortString.encodeShortString(id))),
|
|
20273
20287
|
readableId: id,
|
|
20274
20288
|
data: [
|
|
20275
20289
|
sanitizer.toBigInt(),
|
|
20276
20290
|
// sanitizer address
|
|
20277
20291
|
target.toBigInt(),
|
|
20278
20292
|
// contract
|
|
20279
|
-
toBigInt(
|
|
20293
|
+
toBigInt(import_starknet14.hash.getSelectorFromName(method)),
|
|
20280
20294
|
// method name
|
|
20281
20295
|
BigInt(packedArguments.length),
|
|
20282
20296
|
...packedArguments
|
|
@@ -27416,7 +27430,7 @@ function getVesuMultiplyParams(isIncrease, params) {
|
|
|
27416
27430
|
if (isIncrease) {
|
|
27417
27431
|
const _params2 = params;
|
|
27418
27432
|
return {
|
|
27419
|
-
action: new
|
|
27433
|
+
action: new import_starknet15.CairoCustomEnum({ IncreaseLever: {
|
|
27420
27434
|
pool_id: _params2.pool_id.toBigInt(),
|
|
27421
27435
|
collateral_asset: _params2.collateral_asset.toBigInt(),
|
|
27422
27436
|
debt_asset: _params2.debt_asset.toBigInt(),
|
|
@@ -27429,9 +27443,9 @@ function getVesuMultiplyParams(isIncrease, params) {
|
|
|
27429
27443
|
token1: route.pool_key.token1.toBigInt(),
|
|
27430
27444
|
fee: route.pool_key.fee,
|
|
27431
27445
|
tick_spacing: route.pool_key.tick_spacing,
|
|
27432
|
-
extension: BigInt(
|
|
27446
|
+
extension: BigInt(import_starknet15.num.hexToDecimalString(route.pool_key.extension))
|
|
27433
27447
|
},
|
|
27434
|
-
sqrt_ratio_limit:
|
|
27448
|
+
sqrt_ratio_limit: import_starknet15.uint256.bnToUint256(route.sqrt_ratio_limit.toWei()),
|
|
27435
27449
|
skip_ahead: BigInt(100)
|
|
27436
27450
|
})),
|
|
27437
27451
|
token_amount: {
|
|
@@ -27447,9 +27461,9 @@ function getVesuMultiplyParams(isIncrease, params) {
|
|
|
27447
27461
|
token1: route.pool_key.token1.toBigInt(),
|
|
27448
27462
|
fee: route.pool_key.fee,
|
|
27449
27463
|
tick_spacing: route.pool_key.tick_spacing,
|
|
27450
|
-
extension: BigInt(
|
|
27464
|
+
extension: BigInt(import_starknet15.num.hexToDecimalString(route.pool_key.extension))
|
|
27451
27465
|
},
|
|
27452
|
-
sqrt_ratio_limit:
|
|
27466
|
+
sqrt_ratio_limit: import_starknet15.uint256.bnToUint256(route.sqrt_ratio_limit.toWei()),
|
|
27453
27467
|
skip_ahead: BigInt(100)
|
|
27454
27468
|
})),
|
|
27455
27469
|
token_amount: {
|
|
@@ -27463,7 +27477,7 @@ function getVesuMultiplyParams(isIncrease, params) {
|
|
|
27463
27477
|
}
|
|
27464
27478
|
const _params = params;
|
|
27465
27479
|
return {
|
|
27466
|
-
action: new
|
|
27480
|
+
action: new import_starknet15.CairoCustomEnum({ DecreaseLever: {
|
|
27467
27481
|
pool_id: _params.pool_id.toBigInt(),
|
|
27468
27482
|
collateral_asset: _params.collateral_asset.toBigInt(),
|
|
27469
27483
|
debt_asset: _params.debt_asset.toBigInt(),
|
|
@@ -27479,7 +27493,7 @@ function getVesuMultiplyParams(isIncrease, params) {
|
|
|
27479
27493
|
tick_spacing: route.pool_key.tick_spacing,
|
|
27480
27494
|
extension: ContractAddr.from(route.pool_key.extension).toBigInt()
|
|
27481
27495
|
},
|
|
27482
|
-
sqrt_ratio_limit:
|
|
27496
|
+
sqrt_ratio_limit: import_starknet15.uint256.bnToUint256(route.sqrt_ratio_limit.toWei()),
|
|
27483
27497
|
skip_ahead: BigInt(route.skip_ahead.toWei())
|
|
27484
27498
|
})),
|
|
27485
27499
|
token_amount: {
|
|
@@ -27498,7 +27512,7 @@ function getVesuMultiplyParams(isIncrease, params) {
|
|
|
27498
27512
|
tick_spacing: route.pool_key.tick_spacing,
|
|
27499
27513
|
extension: ContractAddr.from(route.pool_key.extension).toBigInt()
|
|
27500
27514
|
},
|
|
27501
|
-
sqrt_ratio_limit:
|
|
27515
|
+
sqrt_ratio_limit: import_starknet15.uint256.bnToUint256(route.sqrt_ratio_limit.toWei()),
|
|
27502
27516
|
skip_ahead: BigInt(route.skip_ahead.toWei())
|
|
27503
27517
|
})),
|
|
27504
27518
|
token_amount: {
|
|
@@ -27516,7 +27530,25 @@ var VesuPools = {
|
|
|
27516
27530
|
Genesis: ContractAddr.from("0x4dc4f0ca6ea4961e4c8373265bfd5317678f4fe374d76f3fd7135f57763bf28"),
|
|
27517
27531
|
Re7xSTRK: ContractAddr.from("0x052fb52363939c3aa848f8f4ac28f0a51379f8d1b971d8444de25fbd77d8f161"),
|
|
27518
27532
|
Re7xBTC: ContractAddr.from("0x3a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf"),
|
|
27519
|
-
Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5")
|
|
27533
|
+
Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5"),
|
|
27534
|
+
Re7STRK: ContractAddr.from("0x01fcdacc1d8184eca7b472b5acbaf1500cec9d5683ca95fede8128b46c8f9cc2")
|
|
27535
|
+
};
|
|
27536
|
+
var VesuPoolMetadata = {
|
|
27537
|
+
[VesuPools.Genesis.address]: {
|
|
27538
|
+
name: "Genesis"
|
|
27539
|
+
},
|
|
27540
|
+
[VesuPools.Re7xSTRK.address]: {
|
|
27541
|
+
name: "Re7 xSTRK"
|
|
27542
|
+
},
|
|
27543
|
+
[VesuPools.Re7xBTC.address]: {
|
|
27544
|
+
name: "Re7 xBTC"
|
|
27545
|
+
},
|
|
27546
|
+
[VesuPools.Prime.address]: {
|
|
27547
|
+
name: "Prime"
|
|
27548
|
+
},
|
|
27549
|
+
[VesuPools.Re7STRK.address]: {
|
|
27550
|
+
name: "Re7 STRK"
|
|
27551
|
+
}
|
|
27520
27552
|
};
|
|
27521
27553
|
var extensionMap = {};
|
|
27522
27554
|
extensionMap[VesuPools.Re7xSTRK.address] = ContractAddr.from("0x04e06e04b8d624d039aa1c3ca8e0aa9e21dc1ccba1d88d0d650837159e0ee054");
|
|
@@ -27564,7 +27596,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27564
27596
|
amount_type: this.formatAmountTypeEnum(params.collateralAmount.amount_type),
|
|
27565
27597
|
denomination: this.formatAmountDenominationEnum(params.collateralAmount.denomination),
|
|
27566
27598
|
value: {
|
|
27567
|
-
abs:
|
|
27599
|
+
abs: import_starknet15.uint256.bnToUint256(params.collateralAmount.value.abs.toWei()),
|
|
27568
27600
|
is_negative: params.collateralAmount.value.abs.isZero() ? false : params.collateralAmount.value.is_negative
|
|
27569
27601
|
}
|
|
27570
27602
|
};
|
|
@@ -27573,7 +27605,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27573
27605
|
amount_type: this.formatAmountTypeEnum(params.debtAmount.amount_type),
|
|
27574
27606
|
denomination: this.formatAmountDenominationEnum(params.debtAmount.denomination),
|
|
27575
27607
|
value: {
|
|
27576
|
-
abs:
|
|
27608
|
+
abs: import_starknet15.uint256.bnToUint256(params.debtAmount.value.abs.toWei()),
|
|
27577
27609
|
is_negative: params.debtAmount.value.abs.isZero() ? false : params.debtAmount.value.is_negative
|
|
27578
27610
|
}
|
|
27579
27611
|
};
|
|
@@ -27600,7 +27632,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27600
27632
|
sanitizer: isV2 ? VESU_V2_MODIFY_POSITION_SANITIZER : SIMPLE_SANITIZER,
|
|
27601
27633
|
call: {
|
|
27602
27634
|
contractAddress: ContractAddr.from(contract.address),
|
|
27603
|
-
selector:
|
|
27635
|
+
selector: import_starknet15.hash.getSelectorFromName("modify_position"),
|
|
27604
27636
|
calldata: [
|
|
27605
27637
|
...call.calldata
|
|
27606
27638
|
]
|
|
@@ -27637,7 +27669,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27637
27669
|
}
|
|
27638
27670
|
const { isV2 } = getVesuSingletonAddress(this.config.poolId);
|
|
27639
27671
|
const VESU_MULTIPLY = isV2 ? this.VESU_MULTIPLY : this.VESU_MULTIPLY_V1;
|
|
27640
|
-
const multiplyContract = new
|
|
27672
|
+
const multiplyContract = new import_starknet15.Contract({ abi: vesu_multiple_abi_default, address: VESU_MULTIPLY.toString(), providerOrAccount: new import_starknet15.RpcProvider({ nodeUrl: "" }) });
|
|
27641
27673
|
const call = multiplyContract.populate("modify_lever", {
|
|
27642
27674
|
modify_lever_params: getVesuMultiplyParams(isIncrease, {
|
|
27643
27675
|
...multiplyParams,
|
|
@@ -27652,22 +27684,22 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27652
27684
|
sanitizer: SIMPLE_SANITIZER_V2,
|
|
27653
27685
|
call: {
|
|
27654
27686
|
contractAddress: VESU_MULTIPLY,
|
|
27655
|
-
selector:
|
|
27687
|
+
selector: import_starknet15.hash.getSelectorFromName("modify_lever"),
|
|
27656
27688
|
calldata: [
|
|
27657
27689
|
...call.calldata
|
|
27658
27690
|
]
|
|
27659
27691
|
}
|
|
27660
27692
|
};
|
|
27661
27693
|
};
|
|
27662
|
-
this.getVesuModifyDelegationAdapter = (id) => {
|
|
27694
|
+
this.getVesuModifyDelegationAdapter = (id, delegatee) => {
|
|
27663
27695
|
return () => {
|
|
27664
27696
|
const { addr: VESU_SINGLETON2, isV2 } = getVesuSingletonAddress(this.config.poolId);
|
|
27665
27697
|
const packedArguments = isV2 ? [
|
|
27666
|
-
toBigInt(
|
|
27698
|
+
toBigInt(delegatee.toString())
|
|
27667
27699
|
// v2
|
|
27668
27700
|
] : [
|
|
27669
27701
|
this.config.poolId.toBigInt(),
|
|
27670
|
-
toBigInt(
|
|
27702
|
+
toBigInt(delegatee.toString())
|
|
27671
27703
|
// v1
|
|
27672
27704
|
];
|
|
27673
27705
|
const output = this.constructSimpleLeafData({
|
|
@@ -27676,43 +27708,45 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27676
27708
|
method: "modify_delegation",
|
|
27677
27709
|
packedArguments
|
|
27678
27710
|
}, isV2 ? SIMPLE_SANITIZER_V2 : SIMPLE_SANITIZER_VESU_V1_DELEGATIONS);
|
|
27679
|
-
return { leaf: output, callConstructor: this.getVesuModifyDelegationCall.bind(this) };
|
|
27711
|
+
return { leaf: output, callConstructor: this.getVesuModifyDelegationCall(delegatee).bind(this) };
|
|
27680
27712
|
};
|
|
27681
27713
|
};
|
|
27682
|
-
this.getVesuModifyDelegationCall = (
|
|
27683
|
-
|
|
27684
|
-
|
|
27685
|
-
|
|
27686
|
-
|
|
27687
|
-
|
|
27688
|
-
|
|
27689
|
-
|
|
27690
|
-
|
|
27691
|
-
|
|
27692
|
-
|
|
27693
|
-
|
|
27694
|
-
|
|
27695
|
-
|
|
27696
|
-
|
|
27697
|
-
|
|
27698
|
-
|
|
27699
|
-
|
|
27700
|
-
|
|
27701
|
-
|
|
27714
|
+
this.getVesuModifyDelegationCall = (delegatee) => {
|
|
27715
|
+
return (params) => {
|
|
27716
|
+
const VESU_SINGLETON2 = getVesuSingletonAddress(this.config.poolId).addr;
|
|
27717
|
+
const { contract, isV2 } = this.getVesuSingletonContract(getMainnetConfig(), this.config.poolId);
|
|
27718
|
+
const call = contract.populate("modify_delegation", isV2 ? {
|
|
27719
|
+
delegatee: delegatee.toBigInt(),
|
|
27720
|
+
delegation: params.delegation
|
|
27721
|
+
} : {
|
|
27722
|
+
pool_id: this.config.poolId.toBigInt(),
|
|
27723
|
+
delegatee: delegatee.toBigInt(),
|
|
27724
|
+
delegation: params.delegation
|
|
27725
|
+
});
|
|
27726
|
+
return {
|
|
27727
|
+
sanitizer: isV2 ? SIMPLE_SANITIZER_V2 : SIMPLE_SANITIZER_VESU_V1_DELEGATIONS,
|
|
27728
|
+
call: {
|
|
27729
|
+
contractAddress: VESU_SINGLETON2,
|
|
27730
|
+
selector: import_starknet15.hash.getSelectorFromName("modify_delegation"),
|
|
27731
|
+
calldata: [
|
|
27732
|
+
...call.calldata
|
|
27733
|
+
]
|
|
27734
|
+
}
|
|
27735
|
+
};
|
|
27702
27736
|
};
|
|
27703
27737
|
};
|
|
27704
27738
|
this.getDefispringRewardsAdapter = (id) => {
|
|
27705
27739
|
return () => {
|
|
27706
27740
|
const packedArguments = [];
|
|
27707
27741
|
const output = {
|
|
27708
|
-
id: BigInt(
|
|
27742
|
+
id: BigInt(import_starknet15.num.getDecimalString(import_starknet15.shortString.encodeShortString(id))),
|
|
27709
27743
|
readableId: id,
|
|
27710
27744
|
data: [
|
|
27711
27745
|
SIMPLE_SANITIZER.toBigInt(),
|
|
27712
27746
|
// sanitizer address
|
|
27713
27747
|
VESU_REWARDS_CONTRACT.toBigInt(),
|
|
27714
27748
|
// contract
|
|
27715
|
-
toBigInt(
|
|
27749
|
+
toBigInt(import_starknet15.hash.getSelectorFromName("claim")),
|
|
27716
27750
|
// method name
|
|
27717
27751
|
BigInt(packedArguments.length),
|
|
27718
27752
|
...packedArguments
|
|
@@ -27726,11 +27760,11 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27726
27760
|
sanitizer: SIMPLE_SANITIZER,
|
|
27727
27761
|
call: {
|
|
27728
27762
|
contractAddress: VESU_REWARDS_CONTRACT,
|
|
27729
|
-
selector:
|
|
27763
|
+
selector: import_starknet15.hash.getSelectorFromName("claim"),
|
|
27730
27764
|
calldata: [
|
|
27731
27765
|
BigInt(params.amount.toWei()),
|
|
27732
27766
|
BigInt(params.proofs.length),
|
|
27733
|
-
...params.proofs.map((proof) => BigInt(
|
|
27767
|
+
...params.proofs.map((proof) => BigInt(import_starknet15.num.hexToDecimalString(proof)))
|
|
27734
27768
|
]
|
|
27735
27769
|
}
|
|
27736
27770
|
});
|
|
@@ -27760,18 +27794,18 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27760
27794
|
formatAmountTypeEnum(amountType) {
|
|
27761
27795
|
switch (amountType) {
|
|
27762
27796
|
case 0 /* Delta */:
|
|
27763
|
-
return new
|
|
27797
|
+
return new import_starknet15.CairoCustomEnum({ Delta: {} });
|
|
27764
27798
|
case 1 /* Target */:
|
|
27765
|
-
return new
|
|
27799
|
+
return new import_starknet15.CairoCustomEnum({ Target: {} });
|
|
27766
27800
|
}
|
|
27767
27801
|
throw new Error(`Unknown VesuAmountType: ${amountType}`);
|
|
27768
27802
|
}
|
|
27769
27803
|
formatAmountDenominationEnum(denomination) {
|
|
27770
27804
|
switch (denomination) {
|
|
27771
27805
|
case 0 /* Native */:
|
|
27772
|
-
return new
|
|
27806
|
+
return new import_starknet15.CairoCustomEnum({ Native: {} });
|
|
27773
27807
|
case 1 /* Assets */:
|
|
27774
|
-
return new
|
|
27808
|
+
return new import_starknet15.CairoCustomEnum({ Assets: {} });
|
|
27775
27809
|
}
|
|
27776
27810
|
throw new Error(`Unknown VesuAmountDenomination: ${denomination}`);
|
|
27777
27811
|
}
|
|
@@ -27779,7 +27813,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27779
27813
|
const { addr: VESU_SINGLETON2, isV2 } = getVesuSingletonAddress(poolId);
|
|
27780
27814
|
const ABI = isV2 ? vesu_pool_v2_abi_default : vesu_singleton_abi_default;
|
|
27781
27815
|
return {
|
|
27782
|
-
contract: new
|
|
27816
|
+
contract: new import_starknet15.Contract({ abi: ABI, address: VESU_SINGLETON2.address, providerOrAccount: config.provider }),
|
|
27783
27817
|
isV2
|
|
27784
27818
|
};
|
|
27785
27819
|
}
|
|
@@ -27790,7 +27824,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27790
27824
|
if (!extensionAddr) {
|
|
27791
27825
|
throw new Error("Extension address not found");
|
|
27792
27826
|
}
|
|
27793
|
-
const extensionContract = new
|
|
27827
|
+
const extensionContract = new import_starknet15.Contract({ abi: vesu_extension_abi_default, address: extensionAddr.address, providerOrAccount: config.provider });
|
|
27794
27828
|
const output2 = await extensionContract.call("debt_caps", [this.config.poolId.address, this.config.collateral.address.address, this.config.debt.address.address]);
|
|
27795
27829
|
logger.verbose(`${this.config.debt.symbol}::VesuAdapter::getDebtCap debt_cap: ${output2.toString()}`);
|
|
27796
27830
|
return Web3Number.fromWei(output2.toString(), this.config.debt.decimals);
|
|
@@ -27820,7 +27854,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27820
27854
|
if (!extensionAddr) {
|
|
27821
27855
|
throw new Error("Extension address not found");
|
|
27822
27856
|
}
|
|
27823
|
-
interestRateConfigContract = new
|
|
27857
|
+
interestRateConfigContract = new import_starknet15.Contract({ abi: vesu_extension_abi_default, address: extensionAddr.address, providerOrAccount: config.provider });
|
|
27824
27858
|
}
|
|
27825
27859
|
const _interestRateConfig = await interestRateConfigContract.call(
|
|
27826
27860
|
"interest_rate_config",
|
|
@@ -27901,12 +27935,12 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27901
27935
|
amount: collateralAmount,
|
|
27902
27936
|
token: this.config.collateral,
|
|
27903
27937
|
usdValue: collateralAmount.multipliedBy(token1Price.price).toNumber(),
|
|
27904
|
-
remarks:
|
|
27938
|
+
remarks: `Collateral - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
|
|
27905
27939
|
}, {
|
|
27906
27940
|
amount: debtAmount,
|
|
27907
27941
|
token: this.config.debt,
|
|
27908
27942
|
usdValue: debtAmount.multipliedBy(token2Price.price).toNumber(),
|
|
27909
|
-
remarks:
|
|
27943
|
+
remarks: `Debt - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
|
|
27910
27944
|
}];
|
|
27911
27945
|
this.setCache(CACHE_KEY, value, 6e4);
|
|
27912
27946
|
return value;
|
|
@@ -28193,7 +28227,7 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
|
|
|
28193
28227
|
this.address = metadata.address;
|
|
28194
28228
|
this.pricer = pricer;
|
|
28195
28229
|
this.metadata = metadata;
|
|
28196
|
-
this.contract = new
|
|
28230
|
+
this.contract = new import_starknet16.Contract({ abi: sensei_abi_default, address: this.address.address, providerOrAccount: this.config.provider });
|
|
28197
28231
|
if (metadata.depositTokens.length === 0) {
|
|
28198
28232
|
throw new Error("Deposit tokens are not defined in metadata");
|
|
28199
28233
|
}
|
|
@@ -28207,7 +28241,7 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
|
|
|
28207
28241
|
}
|
|
28208
28242
|
);
|
|
28209
28243
|
const amount = Web3Number.fromWei(
|
|
28210
|
-
|
|
28244
|
+
import_starknet16.uint256.uint256ToBN(result[1].estimated_size).toString(),
|
|
28211
28245
|
this.metadata.depositTokens[0].decimals
|
|
28212
28246
|
);
|
|
28213
28247
|
const blockNumber = typeof blockIdentifier === "number" || typeof blockIdentifier === "bigint" ? Number(blockIdentifier) : void 0;
|
|
@@ -28250,17 +28284,17 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
|
|
|
28250
28284
|
}
|
|
28251
28285
|
}
|
|
28252
28286
|
async depositCall(amountInfo, receiver) {
|
|
28253
|
-
const mainTokenContract = new
|
|
28287
|
+
const mainTokenContract = new import_starknet16.Contract({
|
|
28254
28288
|
abi: erc20_abi_default,
|
|
28255
28289
|
address: this.metadata.depositTokens[0].address.address,
|
|
28256
28290
|
providerOrAccount: this.config.provider
|
|
28257
28291
|
});
|
|
28258
28292
|
const call1 = mainTokenContract.populate("approve", [
|
|
28259
28293
|
this.address.address,
|
|
28260
|
-
|
|
28294
|
+
import_starknet16.uint256.bnToUint256(amountInfo.amount.toWei())
|
|
28261
28295
|
]);
|
|
28262
28296
|
const call2 = this.contract.populate("deposit", [
|
|
28263
|
-
|
|
28297
|
+
import_starknet16.uint256.bnToUint256(amountInfo.amount.toWei()),
|
|
28264
28298
|
receiver.address
|
|
28265
28299
|
]);
|
|
28266
28300
|
const calls = [call1, call2];
|
|
@@ -28268,7 +28302,7 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
|
|
|
28268
28302
|
}
|
|
28269
28303
|
async withdrawCall(amountInfo, receiver, owner) {
|
|
28270
28304
|
const call = this.contract.populate("withdraw", [
|
|
28271
|
-
|
|
28305
|
+
import_starknet16.uint256.bnToUint256(amountInfo.amount.toWei()),
|
|
28272
28306
|
receiver.address,
|
|
28273
28307
|
300
|
|
28274
28308
|
// 3% max slippage
|
|
@@ -28356,7 +28390,7 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
|
|
|
28356
28390
|
const { pools } = await VesuAdapter.getVesuPools();
|
|
28357
28391
|
const re7PoolId = VesuPools.Re7xSTRK;
|
|
28358
28392
|
const pool = pools.find(
|
|
28359
|
-
(p) => ContractAddr.from(
|
|
28393
|
+
(p) => ContractAddr.from(import_starknet16.num.getHexString(p.id)).eq(re7PoolId)
|
|
28360
28394
|
);
|
|
28361
28395
|
if (!pool) {
|
|
28362
28396
|
logger.warn(`${_SenseiVault.name}::netAPY - Re7 xSTRK pool not found`);
|
|
@@ -28588,7 +28622,7 @@ var SenseiStrategies = [
|
|
|
28588
28622
|
];
|
|
28589
28623
|
|
|
28590
28624
|
// src/strategies/universal-adapters/common-adapter.ts
|
|
28591
|
-
var
|
|
28625
|
+
var import_starknet17 = require("starknet");
|
|
28592
28626
|
var CommonAdapter = class extends BaseAdapter {
|
|
28593
28627
|
constructor(config) {
|
|
28594
28628
|
super();
|
|
@@ -28613,12 +28647,12 @@ var CommonAdapter = class extends BaseAdapter {
|
|
|
28613
28647
|
return { leaf, callConstructor: this.getFlashloanCall.bind(this) };
|
|
28614
28648
|
}
|
|
28615
28649
|
getFlashloanCall(params) {
|
|
28616
|
-
const uint256Amount =
|
|
28650
|
+
const uint256Amount = import_starknet17.uint256.bnToUint256(params.amount.toWei());
|
|
28617
28651
|
return {
|
|
28618
28652
|
sanitizer: SIMPLE_SANITIZER,
|
|
28619
28653
|
call: {
|
|
28620
28654
|
contractAddress: this.config.manager,
|
|
28621
|
-
selector:
|
|
28655
|
+
selector: import_starknet17.hash.getSelectorFromName("flash_loan"),
|
|
28622
28656
|
calldata: [
|
|
28623
28657
|
this.config.manager.toBigInt(),
|
|
28624
28658
|
// receiver
|
|
@@ -28652,12 +28686,12 @@ var CommonAdapter = class extends BaseAdapter {
|
|
|
28652
28686
|
}
|
|
28653
28687
|
getApproveCall(token, spender) {
|
|
28654
28688
|
return (params) => {
|
|
28655
|
-
const uint256Amount =
|
|
28689
|
+
const uint256Amount = import_starknet17.uint256.bnToUint256(params.amount.toWei());
|
|
28656
28690
|
return {
|
|
28657
28691
|
sanitizer: SIMPLE_SANITIZER,
|
|
28658
28692
|
call: {
|
|
28659
28693
|
contractAddress: token,
|
|
28660
|
-
selector:
|
|
28694
|
+
selector: import_starknet17.hash.getSelectorFromName("approve"),
|
|
28661
28695
|
calldata: [
|
|
28662
28696
|
spender.toBigInt(),
|
|
28663
28697
|
// spender
|
|
@@ -28683,12 +28717,12 @@ var CommonAdapter = class extends BaseAdapter {
|
|
|
28683
28717
|
}
|
|
28684
28718
|
getBringLiquidityCall() {
|
|
28685
28719
|
return (params) => {
|
|
28686
|
-
const uint256Amount =
|
|
28720
|
+
const uint256Amount = import_starknet17.uint256.bnToUint256(params.amount.toWei());
|
|
28687
28721
|
return {
|
|
28688
28722
|
sanitizer: SIMPLE_SANITIZER,
|
|
28689
28723
|
call: {
|
|
28690
28724
|
contractAddress: this.config.vaultAddress,
|
|
28691
|
-
selector:
|
|
28725
|
+
selector: import_starknet17.hash.getSelectorFromName("bring_liquidity"),
|
|
28692
28726
|
calldata: [
|
|
28693
28727
|
toBigInt(uint256Amount.low.toString()),
|
|
28694
28728
|
// amount low
|
|
@@ -28720,7 +28754,7 @@ var CommonAdapter = class extends BaseAdapter {
|
|
|
28720
28754
|
sanitizer: SIMPLE_SANITIZER,
|
|
28721
28755
|
call: {
|
|
28722
28756
|
contractAddress: isMiddleware ? AVNU_MIDDLEWARE : AVNU_EXCHANGE,
|
|
28723
|
-
selector:
|
|
28757
|
+
selector: import_starknet17.hash.getSelectorFromName("multi_route_swap"),
|
|
28724
28758
|
calldata: [
|
|
28725
28759
|
fromToken.toBigInt(),
|
|
28726
28760
|
// sell_token_address
|
|
@@ -28747,12 +28781,12 @@ var CommonAdapter = class extends BaseAdapter {
|
|
|
28747
28781
|
// unpack routes
|
|
28748
28782
|
BigInt(params.props.routes.length),
|
|
28749
28783
|
...params.props.routes.map((r) => [
|
|
28750
|
-
BigInt(
|
|
28751
|
-
BigInt(
|
|
28752
|
-
BigInt(
|
|
28784
|
+
BigInt(import_starknet17.num.hexToDecimalString(r.token_from)),
|
|
28785
|
+
BigInt(import_starknet17.num.hexToDecimalString(r.token_to)),
|
|
28786
|
+
BigInt(import_starknet17.num.hexToDecimalString(r.exchange_address)),
|
|
28753
28787
|
BigInt(r.percent),
|
|
28754
28788
|
BigInt(r.additional_swap_params.length),
|
|
28755
|
-
...r.additional_swap_params.map((p) => BigInt(
|
|
28789
|
+
...r.additional_swap_params.map((p) => BigInt(import_starknet17.num.hexToDecimalString(p)))
|
|
28756
28790
|
]).flat()
|
|
28757
28791
|
]
|
|
28758
28792
|
}
|
|
@@ -28762,7 +28796,7 @@ var CommonAdapter = class extends BaseAdapter {
|
|
|
28762
28796
|
};
|
|
28763
28797
|
|
|
28764
28798
|
// src/strategies/universal-strategy.tsx
|
|
28765
|
-
var
|
|
28799
|
+
var import_starknet18 = require("starknet");
|
|
28766
28800
|
|
|
28767
28801
|
// src/data/universal-vault.abi.json
|
|
28768
28802
|
var universal_vault_abi_default = [
|
|
@@ -30984,12 +31018,12 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
30984
31018
|
);
|
|
30985
31019
|
this.metadata = metadata;
|
|
30986
31020
|
this.address = metadata.address;
|
|
30987
|
-
this.contract = new
|
|
31021
|
+
this.contract = new import_starknet18.Contract({
|
|
30988
31022
|
abi: universal_vault_abi_default,
|
|
30989
31023
|
address: this.address.address,
|
|
30990
31024
|
providerOrAccount: this.config.provider
|
|
30991
31025
|
});
|
|
30992
|
-
this.managerContract = new
|
|
31026
|
+
this.managerContract = new import_starknet18.Contract({
|
|
30993
31027
|
abi: vault_manager_abi_default,
|
|
30994
31028
|
address: this.metadata.additionalInfo.manager.address,
|
|
30995
31029
|
providerOrAccount: this.config.provider
|
|
@@ -31043,17 +31077,17 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
31043
31077
|
amountInfo.tokenInfo.address.eq(this.asset().address),
|
|
31044
31078
|
"Deposit token mismatch"
|
|
31045
31079
|
);
|
|
31046
|
-
const assetContract = new
|
|
31080
|
+
const assetContract = new import_starknet18.Contract({
|
|
31047
31081
|
abi: universal_vault_abi_default,
|
|
31048
31082
|
address: this.asset().address.address,
|
|
31049
31083
|
providerOrAccount: this.config.provider
|
|
31050
31084
|
});
|
|
31051
31085
|
const call1 = assetContract.populate("approve", [
|
|
31052
31086
|
this.address.address,
|
|
31053
|
-
|
|
31087
|
+
import_starknet18.uint256.bnToUint256(amountInfo.amount.toWei())
|
|
31054
31088
|
]);
|
|
31055
31089
|
const call2 = this.contract.populate("deposit", [
|
|
31056
|
-
|
|
31090
|
+
import_starknet18.uint256.bnToUint256(amountInfo.amount.toWei()),
|
|
31057
31091
|
receiver.address
|
|
31058
31092
|
]);
|
|
31059
31093
|
return [call1, call2];
|
|
@@ -31063,9 +31097,9 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
31063
31097
|
amountInfo.tokenInfo.address.eq(this.asset().address),
|
|
31064
31098
|
"Withdraw token mismatch"
|
|
31065
31099
|
);
|
|
31066
|
-
const shares = await this.contract.call("convert_to_shares", [
|
|
31100
|
+
const shares = await this.contract.call("convert_to_shares", [import_starknet18.uint256.bnToUint256(amountInfo.amount.toWei())]);
|
|
31067
31101
|
const call = this.contract.populate("request_redeem", [
|
|
31068
|
-
|
|
31102
|
+
import_starknet18.uint256.bnToUint256(shares.toString()),
|
|
31069
31103
|
receiver.address,
|
|
31070
31104
|
owner.address
|
|
31071
31105
|
]);
|
|
@@ -31075,7 +31109,7 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
31075
31109
|
const shares = await this.contract.call("balanceOf", [user.address], { blockIdentifier });
|
|
31076
31110
|
const assets = await this.contract.call(
|
|
31077
31111
|
"convert_to_assets",
|
|
31078
|
-
[
|
|
31112
|
+
[import_starknet18.uint256.bnToUint256(shares)],
|
|
31079
31113
|
{ blockIdentifier }
|
|
31080
31114
|
);
|
|
31081
31115
|
const amount = Web3Number.fromWei(
|
|
@@ -31098,7 +31132,7 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
31098
31132
|
const vesuAdapters = this.getVesuAdapters();
|
|
31099
31133
|
const allVesuPools = await VesuAdapter.getVesuPools();
|
|
31100
31134
|
const pools = vesuAdapters.map((vesuAdapter) => {
|
|
31101
|
-
return allVesuPools.pools.find((p) => vesuAdapter.config.poolId.eqString(
|
|
31135
|
+
return allVesuPools.pools.find((p) => vesuAdapter.config.poolId.eqString(import_starknet18.num.getHexString(p.id)));
|
|
31102
31136
|
});
|
|
31103
31137
|
logger.verbose(`${this.metadata.name}::netAPY: vesu-pools: ${JSON.stringify(pools)}`);
|
|
31104
31138
|
if (pools.some((p) => !p)) {
|
|
@@ -31384,7 +31418,7 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
31384
31418
|
}];
|
|
31385
31419
|
}
|
|
31386
31420
|
getSetManagerCall(strategist, root = this.getMerkleRoot()) {
|
|
31387
|
-
return this.managerContract.populate("set_manage_root", [strategist.address,
|
|
31421
|
+
return this.managerContract.populate("set_manage_root", [strategist.address, import_starknet18.num.getHexString(root)]);
|
|
31388
31422
|
}
|
|
31389
31423
|
getManageCall(proofIds, manageCalls) {
|
|
31390
31424
|
assert(proofIds.length == manageCalls.length, "Proof IDs and Manage Calls length mismatch");
|
|
@@ -31568,7 +31602,7 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
31568
31602
|
callSet1 = [...temp];
|
|
31569
31603
|
}
|
|
31570
31604
|
const allActions = [...callSet1.map((i) => i.manageCall), ...callSet2.map((i) => i.manageCall)];
|
|
31571
|
-
const flashloanCalldata =
|
|
31605
|
+
const flashloanCalldata = import_starknet18.CallData.compile([
|
|
31572
31606
|
[...callSet1.map((i) => i.proofs), ...callSet2.map((i) => i.proofs)],
|
|
31573
31607
|
allActions.map((i) => i.sanitizer.address),
|
|
31574
31608
|
allActions.map((i) => i.call.contractAddress.address),
|
|
@@ -32076,7 +32110,7 @@ var UniversalStrategies = [
|
|
|
32076
32110
|
];
|
|
32077
32111
|
|
|
32078
32112
|
// src/strategies/universal-lst-muliplier-strategy.tsx
|
|
32079
|
-
var
|
|
32113
|
+
var import_starknet19 = require("starknet");
|
|
32080
32114
|
|
|
32081
32115
|
// src/utils/health-factor-math.ts
|
|
32082
32116
|
var HealthFactorMath = class {
|
|
@@ -32143,20 +32177,19 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
|
|
|
32143
32177
|
// todo support lending assets of underlying as well (like if xSTRK looping is not viable, simply supply STRK)
|
|
32144
32178
|
getVesuAdapters() {
|
|
32145
32179
|
const adapters = [];
|
|
32146
|
-
for (const
|
|
32147
|
-
const
|
|
32148
|
-
|
|
32149
|
-
|
|
32150
|
-
|
|
32151
|
-
|
|
32152
|
-
|
|
32153
|
-
|
|
32154
|
-
|
|
32155
|
-
|
|
32156
|
-
|
|
32157
|
-
|
|
32158
|
-
|
|
32159
|
-
}
|
|
32180
|
+
for (const borrowableInfo of this.metadata.additionalInfo.borrowable_assets) {
|
|
32181
|
+
const asset = borrowableInfo.token;
|
|
32182
|
+
const poolId = borrowableInfo.poolId;
|
|
32183
|
+
const vesuAdapter1 = new VesuAdapter({
|
|
32184
|
+
poolId,
|
|
32185
|
+
collateral: this.asset(),
|
|
32186
|
+
debt: asset,
|
|
32187
|
+
vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
|
|
32188
|
+
id: ""
|
|
32189
|
+
});
|
|
32190
|
+
vesuAdapter1.pricer = this.pricer;
|
|
32191
|
+
vesuAdapter1.networkConfig = this.config;
|
|
32192
|
+
adapters.push(vesuAdapter1);
|
|
32160
32193
|
}
|
|
32161
32194
|
return adapters;
|
|
32162
32195
|
}
|
|
@@ -32610,13 +32643,13 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
|
|
|
32610
32643
|
async getLSTExchangeRate() {
|
|
32611
32644
|
const vesuAdapter1 = this.getVesuSameTokenAdapter(this.metadata.additionalInfo.defaultPoolId);
|
|
32612
32645
|
const lstTokenInfo = vesuAdapter1.config.collateral;
|
|
32613
|
-
const lstABI = new
|
|
32646
|
+
const lstABI = new import_starknet19.Contract({
|
|
32614
32647
|
abi: erc4626_abi_default,
|
|
32615
32648
|
address: lstTokenInfo.address.address,
|
|
32616
32649
|
providerOrAccount: this.config.provider
|
|
32617
32650
|
});
|
|
32618
|
-
const price = await lstABI.call("convert_to_assets", [
|
|
32619
|
-
const exchangeRate = Number(
|
|
32651
|
+
const price = await lstABI.call("convert_to_assets", [import_starknet19.uint256.bnToUint256(new Web3Number(1, lstTokenInfo.decimals).toWei())]);
|
|
32652
|
+
const exchangeRate = Number(import_starknet19.uint256.uint256ToBN(price).toString()) / Math.pow(10, lstTokenInfo.decimals);
|
|
32620
32653
|
logger.verbose(`${this.getTag()}:: LST Exchange Rate: ${exchangeRate}`);
|
|
32621
32654
|
return exchangeRate;
|
|
32622
32655
|
}
|
|
@@ -32782,19 +32815,21 @@ function addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commo
|
|
|
32782
32815
|
id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, underlyingToken.symbol, poolId.toString()),
|
|
32783
32816
|
adapter: vesuAdapterLST
|
|
32784
32817
|
}]);
|
|
32785
|
-
const { isV2, addr:
|
|
32818
|
+
const { isV2, addr: poolAddr } = getVesuSingletonAddress(poolId);
|
|
32786
32819
|
const VESU_MULTIPLY = isV2 ? vesuAdapterLST.VESU_MULTIPLY : vesuAdapterLST.VESU_MULTIPLY_V1;
|
|
32787
32820
|
const leafIdApprove = getVesuGenericLegId(poolId.toString(), "multiple_approve" /* MULTIPLE_APPROVE */);
|
|
32788
32821
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, VESU_MULTIPLY, leafIdApprove).bind(commonAdapter));
|
|
32789
32822
|
const leafIdDelegationOn = getVesuGenericLegId(poolId.toString(), "switch_delegation_on" /* SWITCH_DELEGATION_ON */);
|
|
32790
|
-
vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOn).bind(vesuAdapterLST));
|
|
32823
|
+
vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOn, VESU_MULTIPLY).bind(vesuAdapterLST));
|
|
32791
32824
|
const leafIdDelegationOff = getVesuGenericLegId(poolId.toString(), "switch_delegation_off" /* SWITCH_DELEGATION_OFF */);
|
|
32792
|
-
vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOff).bind(vesuAdapterLST));
|
|
32825
|
+
vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOff, VESU_MULTIPLY).bind(vesuAdapterLST));
|
|
32793
32826
|
const multiplID = getVesuLegId("multiply_vesu" /* MULTIPLY_VESU */, underlyingToken.symbol, poolId.toString());
|
|
32794
32827
|
vaultSettings.leafAdapters.push(vesuAdapterLST.getMultiplyAdapter(multiplID).bind(vesuAdapterLST));
|
|
32828
|
+
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
|
|
32829
|
+
vaultSettings.leafAdapters.push(vesuAdapterLST.getModifyPosition.bind(vesuAdapterLST));
|
|
32795
32830
|
return vesuAdapterLST;
|
|
32796
32831
|
}
|
|
32797
|
-
function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId
|
|
32832
|
+
function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId) {
|
|
32798
32833
|
vaultSettings.leafAdapters = [];
|
|
32799
32834
|
const pool1 = vaultSettings.defaultPoolId;
|
|
32800
32835
|
if (!pool1.eq(defaultPoolId)) {
|
|
@@ -32813,10 +32848,11 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
|
|
|
32813
32848
|
id: "common_adapter" /* COMMON */,
|
|
32814
32849
|
adapter: commonAdapter
|
|
32815
32850
|
}]);
|
|
32816
|
-
|
|
32817
|
-
altSupportedPoolIds.map((poolId) => addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
|
|
32851
|
+
vaultSettings.borrowable_assets.map((borrowableAsset) => addVesuLeaves(borrowableAsset.poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
|
|
32818
32852
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, AVNU_EXCHANGE, "avnu_mul_approve_withdr" /* AVNU_MULTIPLY_APPROVE_WITHDRAW */).bind(commonAdapter));
|
|
32819
|
-
|
|
32853
|
+
const uniqueBorrowableAssets = [...new Set(vaultSettings.borrowable_assets.map((borrowableAsset) => borrowableAsset.token.symbol))];
|
|
32854
|
+
for (let borrowableAssetSymbol of uniqueBorrowableAssets) {
|
|
32855
|
+
const borrowableAsset = Global.getDefaultTokens().find((token) => token.symbol === borrowableAssetSymbol);
|
|
32820
32856
|
const debtAsset = borrowableAsset;
|
|
32821
32857
|
const approve_debt_token_id = getAvnuManageIDs("avnu_mul_approve_dep" /* AVNU_MULTIPLY_APPROVE_DEPOSIT */, debtAsset.symbol);
|
|
32822
32858
|
const swap_debt_token_id = getAvnuManageIDs("avnu_mul_swap_dep" /* AVNU_MULTIPLY_SWAP_DEPOSIT */, debtAsset.symbol);
|
|
@@ -32824,23 +32860,9 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
|
|
|
32824
32860
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(debtAsset.address, AVNU_EXCHANGE, approve_debt_token_id).bind(commonAdapter));
|
|
32825
32861
|
vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(debtAsset.address, lstToken.address, swap_debt_token_id, false).bind(commonAdapter));
|
|
32826
32862
|
vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(lstToken.address, debtAsset.address, swap_lst_token_id, false).bind(commonAdapter));
|
|
32827
|
-
const vesuAdapter = new VesuAdapter({
|
|
32828
|
-
poolId: pool1,
|
|
32829
|
-
collateral: lstToken,
|
|
32830
|
-
debt: debtAsset,
|
|
32831
|
-
vaultAllocator: vaultSettings.vaultAllocator,
|
|
32832
|
-
id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, debtAsset.symbol, pool1.toString())
|
|
32833
|
-
});
|
|
32834
|
-
const { isV2, addr: poolAddr } = getVesuSingletonAddress(pool1);
|
|
32835
|
-
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
|
|
32836
|
-
vaultSettings.leafAdapters.push(vesuAdapter.getModifyPosition.bind(vesuAdapter));
|
|
32837
|
-
if (borrowableAsset.address.eq(underlyingToken.address)) {
|
|
32838
|
-
continue;
|
|
32839
|
-
}
|
|
32840
32863
|
}
|
|
32841
32864
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, vaultSettings.vaultAddress, "approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */).bind(commonAdapter));
|
|
32842
32865
|
vaultSettings.leafAdapters.push(commonAdapter.getBringLiquidityAdapter("bring_liquidity" /* BRING_LIQUIDITY */).bind(commonAdapter));
|
|
32843
|
-
vaultSettings.leafAdapters.push(vesuAdapterLST.getDefispringRewardsAdapter("defispring_rewards" /* DEFISPRING_REWARDS */).bind(vesuAdapterLST));
|
|
32844
32866
|
const STRKToken = Global.getDefaultTokens().find((token) => token.symbol === "STRK");
|
|
32845
32867
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(STRKToken.address, AVNU_EXCHANGE, "approve_swap_token1" /* APPROVE_SWAP_TOKEN1 */).bind(commonAdapter));
|
|
32846
32868
|
vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, lstToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */, false).bind(commonAdapter));
|
|
@@ -32899,7 +32921,7 @@ var _riskFactor4 = [
|
|
|
32899
32921
|
{ type: "Technical Risk" /* TECHNICAL_RISK */, value: 1 /* STABLE_INFRASTRUCTURE */, weight: 25, reason: "Liquidation can only happen if vault is left un-monitored for weeks, which is highly unlikely. We actively monitor all services on a daily basis." },
|
|
32900
32922
|
{ type: "Depeg Risk" /* DEPEG_RISK */, value: 2 /* GENERALLY_STABLE */, weight: 25, reason: "Generally stable pegged assets" }
|
|
32901
32923
|
];
|
|
32902
|
-
var
|
|
32924
|
+
var btcBorrowableAssets = [
|
|
32903
32925
|
"WBTC",
|
|
32904
32926
|
"tBTC",
|
|
32905
32927
|
"LBTC",
|
|
@@ -32915,10 +32937,14 @@ var hyperxSTRK = {
|
|
|
32915
32937
|
adapters: [],
|
|
32916
32938
|
targetHealthFactor: 1.1,
|
|
32917
32939
|
minHealthFactor: 1.05,
|
|
32918
|
-
borrowable_assets:
|
|
32940
|
+
borrowable_assets: [
|
|
32941
|
+
...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Re7xSTRK })),
|
|
32942
|
+
...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Prime })),
|
|
32943
|
+
...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Re7STRK }))
|
|
32944
|
+
// v2, new alt for Re7xSTRK
|
|
32945
|
+
],
|
|
32919
32946
|
underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "STRK"),
|
|
32920
|
-
defaultPoolId: VesuPools.Re7xSTRK
|
|
32921
|
-
altSupportedPoolIds: [VesuPools.Prime]
|
|
32947
|
+
defaultPoolId: VesuPools.Re7xSTRK
|
|
32922
32948
|
};
|
|
32923
32949
|
var hyperxWBTC = {
|
|
32924
32950
|
vaultAddress: ContractAddr.from("0x2da9d0f96a46b453f55604313785dc866424240b1c6811d13bef594343db818"),
|
|
@@ -32930,10 +32956,14 @@ var hyperxWBTC = {
|
|
|
32930
32956
|
adapters: [],
|
|
32931
32957
|
targetHealthFactor: 1.1,
|
|
32932
32958
|
minHealthFactor: 1.05,
|
|
32933
|
-
borrowable_assets:
|
|
32959
|
+
borrowable_assets: [
|
|
32960
|
+
// allow all BTC flavours borrowing on Re7xBTC pool
|
|
32961
|
+
...btcBorrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)).map((token) => ({ token, poolId: VesuPools.Re7xBTC })),
|
|
32962
|
+
// allow only WBTC borrowing on Prime pool
|
|
32963
|
+
...Global.getDefaultTokens().filter((token) => token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Prime }))
|
|
32964
|
+
],
|
|
32934
32965
|
underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "WBTC"),
|
|
32935
32966
|
defaultPoolId: VesuPools.Re7xBTC,
|
|
32936
|
-
altSupportedPoolIds: [VesuPools.Prime],
|
|
32937
32967
|
redemptionRouter: ContractAddr.from("0x6ea649f402898f69baf775c1afdd08522c071c640b9c4460192070ec2b96417")
|
|
32938
32968
|
};
|
|
32939
32969
|
var hyperxtBTC = {
|
|
@@ -32946,10 +32976,11 @@ var hyperxtBTC = {
|
|
|
32946
32976
|
adapters: [],
|
|
32947
32977
|
targetHealthFactor: 1.1,
|
|
32948
32978
|
minHealthFactor: 1.05,
|
|
32949
|
-
borrowable_assets:
|
|
32979
|
+
borrowable_assets: [
|
|
32980
|
+
...Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
|
|
32981
|
+
],
|
|
32950
32982
|
underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "tBTC"),
|
|
32951
32983
|
defaultPoolId: VesuPools.Re7xBTC,
|
|
32952
|
-
altSupportedPoolIds: [],
|
|
32953
32984
|
redemptionRouter: ContractAddr.from("0x3de9c409d1e357e25778fb7a3e2e2393666956846a5c2caa607296fa8e76b5d")
|
|
32954
32985
|
};
|
|
32955
32986
|
var hyperxsBTC = {
|
|
@@ -32962,10 +32993,11 @@ var hyperxsBTC = {
|
|
|
32962
32993
|
adapters: [],
|
|
32963
32994
|
targetHealthFactor: 1.1,
|
|
32964
32995
|
minHealthFactor: 1.05,
|
|
32965
|
-
borrowable_assets:
|
|
32996
|
+
borrowable_assets: [
|
|
32997
|
+
...Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
|
|
32998
|
+
],
|
|
32966
32999
|
underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "solvBTC"),
|
|
32967
|
-
defaultPoolId: VesuPools.Re7xBTC
|
|
32968
|
-
altSupportedPoolIds: []
|
|
33000
|
+
defaultPoolId: VesuPools.Re7xBTC
|
|
32969
33001
|
};
|
|
32970
33002
|
var hyperxLBTC = {
|
|
32971
33003
|
vaultAddress: ContractAddr.from("0x64cf24d4883fe569926419a0569ab34497c6956a1a308fa883257f7486d7030"),
|
|
@@ -32977,10 +33009,11 @@ var hyperxLBTC = {
|
|
|
32977
33009
|
adapters: [],
|
|
32978
33010
|
targetHealthFactor: 1.1,
|
|
32979
33011
|
minHealthFactor: 1.05,
|
|
32980
|
-
borrowable_assets:
|
|
33012
|
+
borrowable_assets: [
|
|
33013
|
+
...Global.getDefaultTokens().filter((token) => token.symbol === "LBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
|
|
33014
|
+
],
|
|
32981
33015
|
underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "LBTC"),
|
|
32982
|
-
defaultPoolId: VesuPools.Re7xBTC
|
|
32983
|
-
altSupportedPoolIds: []
|
|
33016
|
+
defaultPoolId: VesuPools.Re7xBTC
|
|
32984
33017
|
};
|
|
32985
33018
|
function getInvestmentSteps(lstSymbol, underlyingSymbol) {
|
|
32986
33019
|
return [
|
|
@@ -33076,12 +33109,12 @@ var HYPER_LST_REDEMPTION_INFO = {
|
|
|
33076
33109
|
tab: "withdraw"
|
|
33077
33110
|
}]
|
|
33078
33111
|
};
|
|
33079
|
-
function getStrategySettings(lstSymbol, underlyingSymbol,
|
|
33112
|
+
function getStrategySettings(lstSymbol, underlyingSymbol, settings, isPreview = false) {
|
|
33080
33113
|
return {
|
|
33081
33114
|
id: `hyper_${lstSymbol.toLowerCase()}`,
|
|
33082
33115
|
name: `Hyper ${lstSymbol}`,
|
|
33083
33116
|
description: getDescription2(lstSymbol, underlyingSymbol),
|
|
33084
|
-
address:
|
|
33117
|
+
address: settings.vaultAddress,
|
|
33085
33118
|
launchBlock: 0,
|
|
33086
33119
|
type: "Other",
|
|
33087
33120
|
vaultType: {
|
|
@@ -33096,7 +33129,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
|
|
|
33096
33129
|
additionalInfo: getLooperSettings2(
|
|
33097
33130
|
lstSymbol,
|
|
33098
33131
|
underlyingSymbol,
|
|
33099
|
-
|
|
33132
|
+
settings,
|
|
33100
33133
|
lstSymbol === "xSTRK" ? VesuPools.Re7xSTRK : VesuPools.Re7xBTC
|
|
33101
33134
|
),
|
|
33102
33135
|
risk: {
|
|
@@ -33114,7 +33147,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
|
|
|
33114
33147
|
logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
|
|
33115
33148
|
},
|
|
33116
33149
|
settings: createHyperLSTSettings(lstSymbol, underlyingSymbol),
|
|
33117
|
-
contractDetails: getContractDetails(
|
|
33150
|
+
contractDetails: getContractDetails(settings),
|
|
33118
33151
|
faqs: getFAQs2(lstSymbol, underlyingSymbol),
|
|
33119
33152
|
investmentSteps: getInvestmentSteps(lstSymbol, underlyingSymbol),
|
|
33120
33153
|
isPreview,
|
|
@@ -33590,12 +33623,12 @@ var PricerRedis = class extends Pricer {
|
|
|
33590
33623
|
|
|
33591
33624
|
// src/node/deployer.ts
|
|
33592
33625
|
var import_assert = __toESM(require("assert"));
|
|
33593
|
-
var
|
|
33626
|
+
var import_starknet21 = require("starknet");
|
|
33594
33627
|
var import_fs2 = require("fs");
|
|
33595
33628
|
|
|
33596
33629
|
// src/utils/store.ts
|
|
33597
33630
|
var import_fs = __toESM(require("fs"));
|
|
33598
|
-
var
|
|
33631
|
+
var import_starknet20 = require("starknet");
|
|
33599
33632
|
var crypto2 = __toESM(require("crypto"));
|
|
33600
33633
|
|
|
33601
33634
|
// src/utils/encrypt.ts
|
|
@@ -33689,7 +33722,7 @@ var Store = class _Store {
|
|
|
33689
33722
|
}
|
|
33690
33723
|
logger.verbose(`Account loaded: ${accountKey} from network: ${this.config.network}`);
|
|
33691
33724
|
logger.verbose(`Address: ${data.address}`);
|
|
33692
|
-
const acc = new
|
|
33725
|
+
const acc = new import_starknet20.Account({
|
|
33693
33726
|
provider: this.config.provider,
|
|
33694
33727
|
address: data.address,
|
|
33695
33728
|
signer: data.pk,
|
|
@@ -33784,10 +33817,10 @@ function getAccount(accountKey, config, password = process.env.ACCOUNT_SECURE_PA
|
|
|
33784
33817
|
}
|
|
33785
33818
|
async function myDeclare(contract_name, package_name = "strkfarm", config, acc) {
|
|
33786
33819
|
const provider2 = config.provider;
|
|
33787
|
-
const compiledSierra =
|
|
33820
|
+
const compiledSierra = import_starknet21.json.parse(
|
|
33788
33821
|
(0, import_fs2.readFileSync)(`./target/release/${package_name}_${contract_name}.contract_class.json`).toString("ascii")
|
|
33789
33822
|
);
|
|
33790
|
-
const compiledCasm =
|
|
33823
|
+
const compiledCasm = import_starknet21.json.parse(
|
|
33791
33824
|
(0, import_fs2.readFileSync)(`./target/release/${package_name}_${contract_name}.compiled_contract_class.json`).toString("ascii")
|
|
33792
33825
|
);
|
|
33793
33826
|
const contracts = getContracts();
|
|
@@ -33795,7 +33828,7 @@ async function myDeclare(contract_name, package_name = "strkfarm", config, acc)
|
|
|
33795
33828
|
contract: compiledSierra,
|
|
33796
33829
|
casm: compiledCasm
|
|
33797
33830
|
};
|
|
33798
|
-
const result = (0,
|
|
33831
|
+
const result = (0, import_starknet21.extractContractHashes)(payload);
|
|
33799
33832
|
console.log("classhash:", result.classHash);
|
|
33800
33833
|
try {
|
|
33801
33834
|
const cls = await provider2.getClassByHash(result.classHash);
|
|
@@ -33813,7 +33846,7 @@ async function myDeclare(contract_name, package_name = "strkfarm", config, acc)
|
|
|
33813
33846
|
const tx = await acc.declareIfNot(payload);
|
|
33814
33847
|
console.log(`Declaring: ${contract_name}, tx:`, tx.transaction_hash);
|
|
33815
33848
|
await provider2.waitForTransaction(tx.transaction_hash, {
|
|
33816
|
-
successStates: [
|
|
33849
|
+
successStates: [import_starknet21.TransactionExecutionStatus.SUCCEEDED]
|
|
33817
33850
|
});
|
|
33818
33851
|
if (!contracts.class_hashes) {
|
|
33819
33852
|
contracts["class_hashes"] = {};
|
|
@@ -33837,7 +33870,7 @@ async function deployContract(contract_name, classHash, constructorData, config,
|
|
|
33837
33870
|
});
|
|
33838
33871
|
console.log("Deploy tx: ", tx.transaction_hash);
|
|
33839
33872
|
await provider2.waitForTransaction(tx.transaction_hash, {
|
|
33840
|
-
successStates: [
|
|
33873
|
+
successStates: [import_starknet21.TransactionExecutionStatus.SUCCEEDED]
|
|
33841
33874
|
});
|
|
33842
33875
|
const contracts = getContracts();
|
|
33843
33876
|
if (!contracts.contracts) {
|
|
@@ -33854,7 +33887,7 @@ async function prepareMultiDeployContracts(contracts, config, acc) {
|
|
|
33854
33887
|
for (const { contract_name, package_name, constructorData } of contracts) {
|
|
33855
33888
|
const declaredInfo = await myDeclare(contract_name, package_name, config, acc);
|
|
33856
33889
|
const classHash = declaredInfo.class_hash;
|
|
33857
|
-
const { calls, addresses } = new
|
|
33890
|
+
const { calls, addresses } = new import_starknet21.Deployer().buildDeployerCall({
|
|
33858
33891
|
classHash,
|
|
33859
33892
|
constructorCalldata: constructorData
|
|
33860
33893
|
}, acc.address);
|
|
@@ -33872,7 +33905,7 @@ async function prepareMultiDeployContracts(contracts, config, acc) {
|
|
|
33872
33905
|
}
|
|
33873
33906
|
async function executeDeployCalls(contractsInfo, acc, provider2) {
|
|
33874
33907
|
for (let contractInfo of contractsInfo) {
|
|
33875
|
-
(0, import_assert.default)(
|
|
33908
|
+
(0, import_assert.default)(import_starknet21.num.toHexString(contractInfo.call.contractAddress) == import_starknet21.num.toHexString(import_starknet21.constants.UDC.ADDRESS), "Must be pointed at UDC address");
|
|
33876
33909
|
}
|
|
33877
33910
|
const allCalls = contractsInfo.map((info) => info.call);
|
|
33878
33911
|
await executeTransactions(allCalls, acc, provider2, `Deploying contracts: ${contractsInfo.map((info) => info.contract_name).join(", ")}`);
|
|
@@ -33896,7 +33929,7 @@ async function executeTransactions(calls, acc, provider2, remarks) {
|
|
|
33896
33929
|
if (remarks)
|
|
33897
33930
|
console.log(`Remarks: ${remarks}`);
|
|
33898
33931
|
await provider2.waitForTransaction(tx.transaction_hash, {
|
|
33899
|
-
successStates: [
|
|
33932
|
+
successStates: [import_starknet21.TransactionExecutionStatus.SUCCEEDED]
|
|
33900
33933
|
});
|
|
33901
33934
|
console.log(`Transaction confirmed: ${tx.transaction_hash}`);
|
|
33902
33935
|
return tx;
|
|
@@ -33907,10 +33940,10 @@ async function myWaitForTransaction(transaction_hash, provider2, retry = 0) {
|
|
|
33907
33940
|
try {
|
|
33908
33941
|
const status = await provider2.getTransactionStatus(transaction_hash);
|
|
33909
33942
|
logger.verbose(`Transaction status: ${JSON.stringify(status.execution_status)}`);
|
|
33910
|
-
if (status.execution_status ==
|
|
33943
|
+
if (status.execution_status == import_starknet21.TransactionExecutionStatus.SUCCEEDED) {
|
|
33911
33944
|
return true;
|
|
33912
33945
|
}
|
|
33913
|
-
if (status.execution_status ==
|
|
33946
|
+
if (status.execution_status == import_starknet21.TransactionExecutionStatus.REVERTED) {
|
|
33914
33947
|
throw new Error(`Transaction reverted: ${transaction_hash}`);
|
|
33915
33948
|
}
|
|
33916
33949
|
if (retry > MAX_RETRIES) {
|
|
@@ -34003,6 +34036,7 @@ var deployer_default = Deployer;
|
|
|
34003
34036
|
VesuAdapter,
|
|
34004
34037
|
VesuAmountDenomination,
|
|
34005
34038
|
VesuAmountType,
|
|
34039
|
+
VesuPoolMetadata,
|
|
34006
34040
|
VesuPools,
|
|
34007
34041
|
VesuRebalance,
|
|
34008
34042
|
VesuRebalanceStrategies,
|