@strkfarm/sdk 1.0.53 → 1.0.55
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 +2093 -4
- package/dist/index.browser.mjs +2096 -4
- package/dist/index.d.ts +46 -4
- package/dist/index.js +2208 -112
- package/dist/index.mjs +2097 -4
- package/package.json +3 -3
- package/src/data/sensei.abi.json +1759 -0
- package/src/dataTypes/_bignumber.ts +15 -0
- package/src/interfaces/common.tsx +5 -2
- package/src/modules/avnu.ts +0 -1
- package/src/strategies/base-strategy.ts +27 -0
- package/src/strategies/ekubo-cl-vault.tsx +15 -3
- package/src/strategies/index.ts +1 -0
- package/src/strategies/sensei.ts +333 -0
- package/src/utils/index.ts +4 -0
|
@@ -17286,6 +17286,8 @@ var strkfarm_risk_engine = (() => {
|
|
|
17286
17286
|
Pricer: () => Pricer,
|
|
17287
17287
|
PricerFromApi: () => PricerFromApi,
|
|
17288
17288
|
RiskType: () => RiskType,
|
|
17289
|
+
SenseiStrategies: () => SenseiStrategies,
|
|
17290
|
+
SenseiVault: () => SenseiVault,
|
|
17289
17291
|
VesuRebalance: () => VesuRebalance,
|
|
17290
17292
|
VesuRebalanceStrategies: () => VesuRebalanceStrategies,
|
|
17291
17293
|
Web3Number: () => Web3Number,
|
|
@@ -19770,6 +19772,19 @@ var strkfarm_risk_engine = (() => {
|
|
|
19770
19772
|
}
|
|
19771
19773
|
return value.toFixed(this.maxToFixedDecimals());
|
|
19772
19774
|
}
|
|
19775
|
+
minimum(value) {
|
|
19776
|
+
const _value = new import_bignumber.default(value);
|
|
19777
|
+
const _valueMe = new import_bignumber.default(this.toString());
|
|
19778
|
+
const answer = _value.lessThanOrEqualTo(_valueMe) ? _value : _valueMe;
|
|
19779
|
+
return this.construct(answer.toString(), this.decimals);
|
|
19780
|
+
}
|
|
19781
|
+
maximum(value) {
|
|
19782
|
+
const _value = new import_bignumber.default(value);
|
|
19783
|
+
const _valueMe = new import_bignumber.default(this.toString());
|
|
19784
|
+
console.warn(`maximum: _value: ${_value.toString()}, _valueMe: ${_valueMe.toString()}`);
|
|
19785
|
+
const answer = _value.greaterThanOrEqualTo(_valueMe) ? _value : _valueMe;
|
|
19786
|
+
return this.construct(answer.toString(), this.decimals);
|
|
19787
|
+
}
|
|
19773
19788
|
};
|
|
19774
19789
|
import_bignumber.default.config({ DECIMAL_PLACES: 18, ROUNDING_MODE: import_bignumber.default.ROUND_DOWN });
|
|
19775
19790
|
_Web3Number.config({ DECIMAL_PLACES: 18, ROUNDING_MODE: import_bignumber.default.ROUND_DOWN });
|
|
@@ -38107,6 +38122,9 @@ var strkfarm_risk_engine = (() => {
|
|
|
38107
38122
|
throw new Error(message);
|
|
38108
38123
|
}
|
|
38109
38124
|
}
|
|
38125
|
+
function getTrovesEndpoint() {
|
|
38126
|
+
return process.env.TROVES_ENDPOINT || "https://app.troves.fi";
|
|
38127
|
+
}
|
|
38110
38128
|
|
|
38111
38129
|
// src/modules/avnu.ts
|
|
38112
38130
|
var AvnuWrapper = class _AvnuWrapper {
|
|
@@ -38132,7 +38150,6 @@ var strkfarm_risk_engine = (() => {
|
|
|
38132
38150
|
}
|
|
38133
38151
|
throw new Error("no quotes found");
|
|
38134
38152
|
}
|
|
38135
|
-
logger.verbose(`${_AvnuWrapper.name}: getQuotes => Found ${JSON.stringify(filteredQuotes[0])}`);
|
|
38136
38153
|
return filteredQuotes[0];
|
|
38137
38154
|
}
|
|
38138
38155
|
async getSwapInfo(quote, taker, integratorFeeBps, integratorFeeRecipient, minAmount) {
|
|
@@ -38198,6 +38215,7 @@ var strkfarm_risk_engine = (() => {
|
|
|
38198
38215
|
RiskType2["ORACLE_RISK"] = "Oracle Risk";
|
|
38199
38216
|
RiskType2["TECHNICAL_RISK"] = "Technical Risk";
|
|
38200
38217
|
RiskType2["COUNTERPARTY_RISK"] = "Counterparty Risk";
|
|
38218
|
+
RiskType2["DEPEG_RISK"] = "Depeg Risk";
|
|
38201
38219
|
return RiskType2;
|
|
38202
38220
|
})(RiskType || {});
|
|
38203
38221
|
var Network = /* @__PURE__ */ ((Network2) => {
|
|
@@ -38212,7 +38230,7 @@ var strkfarm_risk_engine = (() => {
|
|
|
38212
38230
|
FlowChartColors2["Purple"] = "#6e53dc";
|
|
38213
38231
|
return FlowChartColors2;
|
|
38214
38232
|
})(FlowChartColors || {});
|
|
38215
|
-
function getMainnetConfig(rpcUrl
|
|
38233
|
+
function getMainnetConfig(rpcUrl, blockIdentifier = "pending") {
|
|
38216
38234
|
return {
|
|
38217
38235
|
provider: new RpcProvider2({
|
|
38218
38236
|
nodeUrl: rpcUrl,
|
|
@@ -38240,6 +38258,8 @@ var strkfarm_risk_engine = (() => {
|
|
|
38240
38258
|
return "The risk of technical issues e.g. backend failure.";
|
|
38241
38259
|
case "Counterparty Risk" /* COUNTERPARTY_RISK */:
|
|
38242
38260
|
return "The risk of the counterparty defaulting e.g. bad debt on lending platforms.";
|
|
38261
|
+
case "Depeg Risk" /* DEPEG_RISK */:
|
|
38262
|
+
return "The risk of a token losing its peg to the underlying asset, leading to potential losses for holders.";
|
|
38243
38263
|
}
|
|
38244
38264
|
};
|
|
38245
38265
|
var getRiskColor = (risk) => {
|
|
@@ -39824,6 +39844,7 @@ var strkfarm_risk_engine = (() => {
|
|
|
39824
39844
|
// src/strategies/base-strategy.ts
|
|
39825
39845
|
var BaseStrategy = class {
|
|
39826
39846
|
constructor(config2) {
|
|
39847
|
+
this.cache = /* @__PURE__ */ new Map();
|
|
39827
39848
|
this.config = config2;
|
|
39828
39849
|
}
|
|
39829
39850
|
async getUserTVL(user) {
|
|
@@ -39838,6 +39859,23 @@ var strkfarm_risk_engine = (() => {
|
|
|
39838
39859
|
async withdrawCall(amountInfo, receiver, owner) {
|
|
39839
39860
|
throw new Error("Not implemented");
|
|
39840
39861
|
}
|
|
39862
|
+
setCache(key, data, ttl = 6e4) {
|
|
39863
|
+
const timestamp = Date.now();
|
|
39864
|
+
this.cache.set(key, { timestamp, ttl, data });
|
|
39865
|
+
}
|
|
39866
|
+
getCache(key) {
|
|
39867
|
+
const cachedData = this.cache.get(key);
|
|
39868
|
+
if (!cachedData || !this.isCacheValid(key)) {
|
|
39869
|
+
return null;
|
|
39870
|
+
}
|
|
39871
|
+
return cachedData.data;
|
|
39872
|
+
}
|
|
39873
|
+
isCacheValid(key) {
|
|
39874
|
+
const cachedData = this.cache.get(key);
|
|
39875
|
+
if (!cachedData) return false;
|
|
39876
|
+
const { timestamp, ttl } = cachedData;
|
|
39877
|
+
return Date.now() - timestamp <= ttl;
|
|
39878
|
+
}
|
|
39841
39879
|
};
|
|
39842
39880
|
|
|
39843
39881
|
// src/node/headless.browser.ts
|
|
@@ -52150,11 +52188,19 @@ var strkfarm_risk_engine = (() => {
|
|
|
52150
52188
|
uint256_exports.uint256ToBN(swapInfo1.token_from_amount).toString(),
|
|
52151
52189
|
18
|
|
52152
52190
|
// cause its always STRK?
|
|
52191
|
+
).minimum(
|
|
52192
|
+
postFeeAmount.toFixed(18)
|
|
52193
|
+
// cause always strk
|
|
52194
|
+
);
|
|
52195
|
+
swapInfo.token_from_amount = uint256_exports.bnToUint256(swap1Amount.toWei());
|
|
52196
|
+
swapInfo.token_to_min_amount = uint256_exports.bnToUint256(
|
|
52197
|
+
swap1Amount.multipliedBy(0).toWei()
|
|
52198
|
+
// placeholder
|
|
52153
52199
|
);
|
|
52154
52200
|
logger.verbose(
|
|
52155
52201
|
`${_EkuboCLVault.name}: harvest => swap1Amount: ${swap1Amount}`
|
|
52156
52202
|
);
|
|
52157
|
-
const remainingAmount = postFeeAmount.minus(swap1Amount);
|
|
52203
|
+
const remainingAmount = postFeeAmount.minus(swap1Amount).maximum(0);
|
|
52158
52204
|
logger.verbose(
|
|
52159
52205
|
`${_EkuboCLVault.name}: harvest => remainingAmount: ${remainingAmount}`
|
|
52160
52206
|
);
|
|
@@ -52194,7 +52240,12 @@ var strkfarm_risk_engine = (() => {
|
|
|
52194
52240
|
const _callsFinal = await this.rebalanceIter(
|
|
52195
52241
|
swapInfo,
|
|
52196
52242
|
acc,
|
|
52197
|
-
harvestEstimateCall
|
|
52243
|
+
harvestEstimateCall,
|
|
52244
|
+
claim.token.eq(poolKey.token0),
|
|
52245
|
+
0,
|
|
52246
|
+
0n,
|
|
52247
|
+
BigInt(postFeeAmount.toWei())
|
|
52248
|
+
// upper limit is the post fee amount
|
|
52198
52249
|
);
|
|
52199
52250
|
logger.verbose(
|
|
52200
52251
|
`${_EkuboCLVault.name}: harvest => _callsFinal: ${JSON.stringify(
|
|
@@ -52435,6 +52486,2044 @@ var strkfarm_risk_engine = (() => {
|
|
|
52435
52486
|
"Harvest and supply Defi Spring STRK rewards every week (Auto-compound)"
|
|
52436
52487
|
];
|
|
52437
52488
|
});
|
|
52489
|
+
|
|
52490
|
+
// src/data/sensei.abi.json
|
|
52491
|
+
var sensei_abi_default = [
|
|
52492
|
+
{
|
|
52493
|
+
type: "impl",
|
|
52494
|
+
name: "IStrategyCustomImpl",
|
|
52495
|
+
interface_name: "strkfarm::interfaces::ERC721Strategy::IStrategyCustom"
|
|
52496
|
+
},
|
|
52497
|
+
{
|
|
52498
|
+
type: "struct",
|
|
52499
|
+
name: "core::integer::u256",
|
|
52500
|
+
members: [
|
|
52501
|
+
{
|
|
52502
|
+
name: "low",
|
|
52503
|
+
type: "core::integer::u128"
|
|
52504
|
+
},
|
|
52505
|
+
{
|
|
52506
|
+
name: "high",
|
|
52507
|
+
type: "core::integer::u128"
|
|
52508
|
+
}
|
|
52509
|
+
]
|
|
52510
|
+
},
|
|
52511
|
+
{
|
|
52512
|
+
type: "struct",
|
|
52513
|
+
name: "strkfarm::interfaces::IEkuboDistributor::Claim",
|
|
52514
|
+
members: [
|
|
52515
|
+
{
|
|
52516
|
+
name: "id",
|
|
52517
|
+
type: "core::integer::u64"
|
|
52518
|
+
},
|
|
52519
|
+
{
|
|
52520
|
+
name: "claimee",
|
|
52521
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52522
|
+
},
|
|
52523
|
+
{
|
|
52524
|
+
name: "amount",
|
|
52525
|
+
type: "core::integer::u128"
|
|
52526
|
+
}
|
|
52527
|
+
]
|
|
52528
|
+
},
|
|
52529
|
+
{
|
|
52530
|
+
type: "struct",
|
|
52531
|
+
name: "core::array::Span::<core::felt252>",
|
|
52532
|
+
members: [
|
|
52533
|
+
{
|
|
52534
|
+
name: "snapshot",
|
|
52535
|
+
type: "@core::array::Array::<core::felt252>"
|
|
52536
|
+
}
|
|
52537
|
+
]
|
|
52538
|
+
},
|
|
52539
|
+
{
|
|
52540
|
+
type: "struct",
|
|
52541
|
+
name: "strkfarm::components::swap::Route",
|
|
52542
|
+
members: [
|
|
52543
|
+
{
|
|
52544
|
+
name: "token_from",
|
|
52545
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52546
|
+
},
|
|
52547
|
+
{
|
|
52548
|
+
name: "token_to",
|
|
52549
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52550
|
+
},
|
|
52551
|
+
{
|
|
52552
|
+
name: "exchange_address",
|
|
52553
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52554
|
+
},
|
|
52555
|
+
{
|
|
52556
|
+
name: "percent",
|
|
52557
|
+
type: "core::integer::u128"
|
|
52558
|
+
},
|
|
52559
|
+
{
|
|
52560
|
+
name: "additional_swap_params",
|
|
52561
|
+
type: "core::array::Array::<core::felt252>"
|
|
52562
|
+
}
|
|
52563
|
+
]
|
|
52564
|
+
},
|
|
52565
|
+
{
|
|
52566
|
+
type: "struct",
|
|
52567
|
+
name: "strkfarm::components::swap::AvnuMultiRouteSwap",
|
|
52568
|
+
members: [
|
|
52569
|
+
{
|
|
52570
|
+
name: "token_from_address",
|
|
52571
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52572
|
+
},
|
|
52573
|
+
{
|
|
52574
|
+
name: "token_from_amount",
|
|
52575
|
+
type: "core::integer::u256"
|
|
52576
|
+
},
|
|
52577
|
+
{
|
|
52578
|
+
name: "token_to_address",
|
|
52579
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52580
|
+
},
|
|
52581
|
+
{
|
|
52582
|
+
name: "token_to_amount",
|
|
52583
|
+
type: "core::integer::u256"
|
|
52584
|
+
},
|
|
52585
|
+
{
|
|
52586
|
+
name: "token_to_min_amount",
|
|
52587
|
+
type: "core::integer::u256"
|
|
52588
|
+
},
|
|
52589
|
+
{
|
|
52590
|
+
name: "beneficiary",
|
|
52591
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52592
|
+
},
|
|
52593
|
+
{
|
|
52594
|
+
name: "integrator_fee_amount_bps",
|
|
52595
|
+
type: "core::integer::u128"
|
|
52596
|
+
},
|
|
52597
|
+
{
|
|
52598
|
+
name: "integrator_fee_recipient",
|
|
52599
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52600
|
+
},
|
|
52601
|
+
{
|
|
52602
|
+
name: "routes",
|
|
52603
|
+
type: "core::array::Array::<strkfarm::components::swap::Route>"
|
|
52604
|
+
}
|
|
52605
|
+
]
|
|
52606
|
+
},
|
|
52607
|
+
{
|
|
52608
|
+
type: "struct",
|
|
52609
|
+
name: "strkfarm::interfaces::ERC721Strategy::Position",
|
|
52610
|
+
members: [
|
|
52611
|
+
{
|
|
52612
|
+
name: "acc1_supply_shares",
|
|
52613
|
+
type: "core::integer::u256"
|
|
52614
|
+
},
|
|
52615
|
+
{
|
|
52616
|
+
name: "acc1_borrow_shares",
|
|
52617
|
+
type: "core::integer::u256"
|
|
52618
|
+
},
|
|
52619
|
+
{
|
|
52620
|
+
name: "acc2_supply_shares",
|
|
52621
|
+
type: "core::integer::u256"
|
|
52622
|
+
},
|
|
52623
|
+
{
|
|
52624
|
+
name: "acc2_borrow_shares",
|
|
52625
|
+
type: "core::integer::u256"
|
|
52626
|
+
}
|
|
52627
|
+
]
|
|
52628
|
+
},
|
|
52629
|
+
{
|
|
52630
|
+
type: "enum",
|
|
52631
|
+
name: "core::bool",
|
|
52632
|
+
variants: [
|
|
52633
|
+
{
|
|
52634
|
+
name: "False",
|
|
52635
|
+
type: "()"
|
|
52636
|
+
},
|
|
52637
|
+
{
|
|
52638
|
+
name: "True",
|
|
52639
|
+
type: "()"
|
|
52640
|
+
}
|
|
52641
|
+
]
|
|
52642
|
+
},
|
|
52643
|
+
{
|
|
52644
|
+
type: "struct",
|
|
52645
|
+
name: "strkfarm::interfaces::ERC721Strategy::PositionDescription",
|
|
52646
|
+
members: [
|
|
52647
|
+
{
|
|
52648
|
+
name: "estimated_size",
|
|
52649
|
+
type: "core::integer::u256"
|
|
52650
|
+
},
|
|
52651
|
+
{
|
|
52652
|
+
name: "deposit1",
|
|
52653
|
+
type: "core::integer::u256"
|
|
52654
|
+
},
|
|
52655
|
+
{
|
|
52656
|
+
name: "borrow1",
|
|
52657
|
+
type: "core::integer::u256"
|
|
52658
|
+
},
|
|
52659
|
+
{
|
|
52660
|
+
name: "deposit2",
|
|
52661
|
+
type: "core::integer::u256"
|
|
52662
|
+
},
|
|
52663
|
+
{
|
|
52664
|
+
name: "borrow2",
|
|
52665
|
+
type: "core::integer::u256"
|
|
52666
|
+
}
|
|
52667
|
+
]
|
|
52668
|
+
},
|
|
52669
|
+
{
|
|
52670
|
+
type: "struct",
|
|
52671
|
+
name: "strkfarm::interfaces::oracle::IPriceOracleDispatcher",
|
|
52672
|
+
members: [
|
|
52673
|
+
{
|
|
52674
|
+
name: "contract_address",
|
|
52675
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52676
|
+
}
|
|
52677
|
+
]
|
|
52678
|
+
},
|
|
52679
|
+
{
|
|
52680
|
+
type: "struct",
|
|
52681
|
+
name: "ekubo::interfaces::core::ICoreDispatcher",
|
|
52682
|
+
members: [
|
|
52683
|
+
{
|
|
52684
|
+
name: "contract_address",
|
|
52685
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52686
|
+
}
|
|
52687
|
+
]
|
|
52688
|
+
},
|
|
52689
|
+
{
|
|
52690
|
+
type: "struct",
|
|
52691
|
+
name: "strkfarm::components::ekuboSwap::IRouterDispatcher",
|
|
52692
|
+
members: [
|
|
52693
|
+
{
|
|
52694
|
+
name: "contract_address",
|
|
52695
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52696
|
+
}
|
|
52697
|
+
]
|
|
52698
|
+
},
|
|
52699
|
+
{
|
|
52700
|
+
type: "struct",
|
|
52701
|
+
name: "strkfarm::components::ekuboSwap::EkuboSwapStruct",
|
|
52702
|
+
members: [
|
|
52703
|
+
{
|
|
52704
|
+
name: "core",
|
|
52705
|
+
type: "ekubo::interfaces::core::ICoreDispatcher"
|
|
52706
|
+
},
|
|
52707
|
+
{
|
|
52708
|
+
name: "router",
|
|
52709
|
+
type: "strkfarm::components::ekuboSwap::IRouterDispatcher"
|
|
52710
|
+
}
|
|
52711
|
+
]
|
|
52712
|
+
},
|
|
52713
|
+
{
|
|
52714
|
+
type: "struct",
|
|
52715
|
+
name: "ekubo::types::keys::PoolKey",
|
|
52716
|
+
members: [
|
|
52717
|
+
{
|
|
52718
|
+
name: "token0",
|
|
52719
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52720
|
+
},
|
|
52721
|
+
{
|
|
52722
|
+
name: "token1",
|
|
52723
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52724
|
+
},
|
|
52725
|
+
{
|
|
52726
|
+
name: "fee",
|
|
52727
|
+
type: "core::integer::u128"
|
|
52728
|
+
},
|
|
52729
|
+
{
|
|
52730
|
+
name: "tick_spacing",
|
|
52731
|
+
type: "core::integer::u128"
|
|
52732
|
+
},
|
|
52733
|
+
{
|
|
52734
|
+
name: "extension",
|
|
52735
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52736
|
+
}
|
|
52737
|
+
]
|
|
52738
|
+
},
|
|
52739
|
+
{
|
|
52740
|
+
type: "struct",
|
|
52741
|
+
name: "ekubo::interfaces::router::RouteNode",
|
|
52742
|
+
members: [
|
|
52743
|
+
{
|
|
52744
|
+
name: "pool_key",
|
|
52745
|
+
type: "ekubo::types::keys::PoolKey"
|
|
52746
|
+
},
|
|
52747
|
+
{
|
|
52748
|
+
name: "sqrt_ratio_limit",
|
|
52749
|
+
type: "core::integer::u256"
|
|
52750
|
+
},
|
|
52751
|
+
{
|
|
52752
|
+
name: "skip_ahead",
|
|
52753
|
+
type: "core::integer::u128"
|
|
52754
|
+
}
|
|
52755
|
+
]
|
|
52756
|
+
},
|
|
52757
|
+
{
|
|
52758
|
+
type: "struct",
|
|
52759
|
+
name: "strkfarm::interfaces::ERC721Strategy::Settings",
|
|
52760
|
+
members: [
|
|
52761
|
+
{
|
|
52762
|
+
name: "base_fee_percent",
|
|
52763
|
+
type: "core::integer::u128"
|
|
52764
|
+
},
|
|
52765
|
+
{
|
|
52766
|
+
name: "reward_fee_percent",
|
|
52767
|
+
type: "core::integer::u128"
|
|
52768
|
+
},
|
|
52769
|
+
{
|
|
52770
|
+
name: "fee_receiver",
|
|
52771
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52772
|
+
},
|
|
52773
|
+
{
|
|
52774
|
+
name: "min_health_factor",
|
|
52775
|
+
type: "core::integer::u32"
|
|
52776
|
+
},
|
|
52777
|
+
{
|
|
52778
|
+
name: "target_health_factor",
|
|
52779
|
+
type: "core::integer::u32"
|
|
52780
|
+
},
|
|
52781
|
+
{
|
|
52782
|
+
name: "coefs_sum1",
|
|
52783
|
+
type: "core::integer::u128"
|
|
52784
|
+
},
|
|
52785
|
+
{
|
|
52786
|
+
name: "coefs_sum2",
|
|
52787
|
+
type: "core::integer::u128"
|
|
52788
|
+
},
|
|
52789
|
+
{
|
|
52790
|
+
name: "oracle",
|
|
52791
|
+
type: "strkfarm::interfaces::oracle::IPriceOracleDispatcher"
|
|
52792
|
+
},
|
|
52793
|
+
{
|
|
52794
|
+
name: "ekubo_swap",
|
|
52795
|
+
type: "strkfarm::components::ekuboSwap::EkuboSwapStruct"
|
|
52796
|
+
},
|
|
52797
|
+
{
|
|
52798
|
+
name: "swap_routes1",
|
|
52799
|
+
type: "core::array::Array::<ekubo::interfaces::router::RouteNode>"
|
|
52800
|
+
},
|
|
52801
|
+
{
|
|
52802
|
+
name: "swap_routes2",
|
|
52803
|
+
type: "core::array::Array::<ekubo::interfaces::router::RouteNode>"
|
|
52804
|
+
},
|
|
52805
|
+
{
|
|
52806
|
+
name: "additional_shares_action_id",
|
|
52807
|
+
type: "core::integer::u8"
|
|
52808
|
+
}
|
|
52809
|
+
]
|
|
52810
|
+
},
|
|
52811
|
+
{
|
|
52812
|
+
type: "interface",
|
|
52813
|
+
name: "strkfarm::interfaces::ERC721Strategy::IStrategyCustom",
|
|
52814
|
+
items: [
|
|
52815
|
+
{
|
|
52816
|
+
type: "function",
|
|
52817
|
+
name: "deposit",
|
|
52818
|
+
inputs: [
|
|
52819
|
+
{
|
|
52820
|
+
name: "amount",
|
|
52821
|
+
type: "core::integer::u256"
|
|
52822
|
+
},
|
|
52823
|
+
{
|
|
52824
|
+
name: "receiver",
|
|
52825
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52826
|
+
}
|
|
52827
|
+
],
|
|
52828
|
+
outputs: [
|
|
52829
|
+
{
|
|
52830
|
+
type: "core::integer::u256"
|
|
52831
|
+
}
|
|
52832
|
+
],
|
|
52833
|
+
state_mutability: "external"
|
|
52834
|
+
},
|
|
52835
|
+
{
|
|
52836
|
+
type: "function",
|
|
52837
|
+
name: "health_factors",
|
|
52838
|
+
inputs: [],
|
|
52839
|
+
outputs: [
|
|
52840
|
+
{
|
|
52841
|
+
type: "(core::integer::u32, core::integer::u32)"
|
|
52842
|
+
}
|
|
52843
|
+
],
|
|
52844
|
+
state_mutability: "view"
|
|
52845
|
+
},
|
|
52846
|
+
{
|
|
52847
|
+
type: "function",
|
|
52848
|
+
name: "harvest",
|
|
52849
|
+
inputs: [
|
|
52850
|
+
{
|
|
52851
|
+
name: "protocol1_rewards_contract",
|
|
52852
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52853
|
+
},
|
|
52854
|
+
{
|
|
52855
|
+
name: "claim1",
|
|
52856
|
+
type: "strkfarm::interfaces::IEkuboDistributor::Claim"
|
|
52857
|
+
},
|
|
52858
|
+
{
|
|
52859
|
+
name: "proof1",
|
|
52860
|
+
type: "core::array::Span::<core::felt252>"
|
|
52861
|
+
},
|
|
52862
|
+
{
|
|
52863
|
+
name: "protocol2_rewards_contract",
|
|
52864
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52865
|
+
},
|
|
52866
|
+
{
|
|
52867
|
+
name: "claim2",
|
|
52868
|
+
type: "strkfarm::interfaces::IEkuboDistributor::Claim"
|
|
52869
|
+
},
|
|
52870
|
+
{
|
|
52871
|
+
name: "proof2",
|
|
52872
|
+
type: "core::array::Span::<core::felt252>"
|
|
52873
|
+
},
|
|
52874
|
+
{
|
|
52875
|
+
name: "swapInfo",
|
|
52876
|
+
type: "strkfarm::components::swap::AvnuMultiRouteSwap"
|
|
52877
|
+
}
|
|
52878
|
+
],
|
|
52879
|
+
outputs: [],
|
|
52880
|
+
state_mutability: "external"
|
|
52881
|
+
},
|
|
52882
|
+
{
|
|
52883
|
+
type: "function",
|
|
52884
|
+
name: "withdraw",
|
|
52885
|
+
inputs: [
|
|
52886
|
+
{
|
|
52887
|
+
name: "amount",
|
|
52888
|
+
type: "core::integer::u256"
|
|
52889
|
+
},
|
|
52890
|
+
{
|
|
52891
|
+
name: "receiver",
|
|
52892
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52893
|
+
},
|
|
52894
|
+
{
|
|
52895
|
+
name: "max_slippage_bps",
|
|
52896
|
+
type: "core::integer::u32"
|
|
52897
|
+
}
|
|
52898
|
+
],
|
|
52899
|
+
outputs: [],
|
|
52900
|
+
state_mutability: "external"
|
|
52901
|
+
},
|
|
52902
|
+
{
|
|
52903
|
+
type: "function",
|
|
52904
|
+
name: "get_all_shares",
|
|
52905
|
+
inputs: [],
|
|
52906
|
+
outputs: [
|
|
52907
|
+
{
|
|
52908
|
+
type: "strkfarm::interfaces::ERC721Strategy::Position"
|
|
52909
|
+
}
|
|
52910
|
+
],
|
|
52911
|
+
state_mutability: "view"
|
|
52912
|
+
},
|
|
52913
|
+
{
|
|
52914
|
+
type: "function",
|
|
52915
|
+
name: "rebalance",
|
|
52916
|
+
inputs: [
|
|
52917
|
+
{
|
|
52918
|
+
name: "amount",
|
|
52919
|
+
type: "core::integer::u256"
|
|
52920
|
+
},
|
|
52921
|
+
{
|
|
52922
|
+
name: "shouldRepay",
|
|
52923
|
+
type: "core::bool"
|
|
52924
|
+
}
|
|
52925
|
+
],
|
|
52926
|
+
outputs: [],
|
|
52927
|
+
state_mutability: "external"
|
|
52928
|
+
},
|
|
52929
|
+
{
|
|
52930
|
+
type: "function",
|
|
52931
|
+
name: "describe_position",
|
|
52932
|
+
inputs: [
|
|
52933
|
+
{
|
|
52934
|
+
name: "token_id",
|
|
52935
|
+
type: "core::felt252"
|
|
52936
|
+
}
|
|
52937
|
+
],
|
|
52938
|
+
outputs: [
|
|
52939
|
+
{
|
|
52940
|
+
type: "(strkfarm::interfaces::ERC721Strategy::Position, strkfarm::interfaces::ERC721Strategy::PositionDescription)"
|
|
52941
|
+
}
|
|
52942
|
+
],
|
|
52943
|
+
state_mutability: "view"
|
|
52944
|
+
},
|
|
52945
|
+
{
|
|
52946
|
+
type: "function",
|
|
52947
|
+
name: "set_settings",
|
|
52948
|
+
inputs: [
|
|
52949
|
+
{
|
|
52950
|
+
name: "settings",
|
|
52951
|
+
type: "strkfarm::interfaces::ERC721Strategy::Settings"
|
|
52952
|
+
}
|
|
52953
|
+
],
|
|
52954
|
+
outputs: [],
|
|
52955
|
+
state_mutability: "external"
|
|
52956
|
+
},
|
|
52957
|
+
{
|
|
52958
|
+
type: "function",
|
|
52959
|
+
name: "initialize",
|
|
52960
|
+
inputs: [],
|
|
52961
|
+
outputs: [],
|
|
52962
|
+
state_mutability: "external"
|
|
52963
|
+
}
|
|
52964
|
+
]
|
|
52965
|
+
},
|
|
52966
|
+
{
|
|
52967
|
+
type: "impl",
|
|
52968
|
+
name: "MMSettingsImpl",
|
|
52969
|
+
interface_name: "strkfarm::strats::dnmm_vesu::DeltaNeutralLoopingVesuXSTRK::IMMSettings"
|
|
52970
|
+
},
|
|
52971
|
+
{
|
|
52972
|
+
type: "struct",
|
|
52973
|
+
name: "strkfarm::components::endur::EndurSettings",
|
|
52974
|
+
members: [
|
|
52975
|
+
{
|
|
52976
|
+
name: "lst",
|
|
52977
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52978
|
+
}
|
|
52979
|
+
]
|
|
52980
|
+
},
|
|
52981
|
+
{
|
|
52982
|
+
type: "struct",
|
|
52983
|
+
name: "strkfarm::interfaces::IVesu::IStonDispatcher",
|
|
52984
|
+
members: [
|
|
52985
|
+
{
|
|
52986
|
+
name: "contract_address",
|
|
52987
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
52988
|
+
}
|
|
52989
|
+
]
|
|
52990
|
+
},
|
|
52991
|
+
{
|
|
52992
|
+
type: "struct",
|
|
52993
|
+
name: "strkfarm::components::vesu::vesuStruct",
|
|
52994
|
+
members: [
|
|
52995
|
+
{
|
|
52996
|
+
name: "singleton",
|
|
52997
|
+
type: "strkfarm::interfaces::IVesu::IStonDispatcher"
|
|
52998
|
+
},
|
|
52999
|
+
{
|
|
53000
|
+
name: "pool_id",
|
|
53001
|
+
type: "core::felt252"
|
|
53002
|
+
},
|
|
53003
|
+
{
|
|
53004
|
+
name: "debt",
|
|
53005
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53006
|
+
},
|
|
53007
|
+
{
|
|
53008
|
+
name: "col",
|
|
53009
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53010
|
+
},
|
|
53011
|
+
{
|
|
53012
|
+
name: "oracle",
|
|
53013
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53014
|
+
}
|
|
53015
|
+
]
|
|
53016
|
+
},
|
|
53017
|
+
{
|
|
53018
|
+
type: "interface",
|
|
53019
|
+
name: "strkfarm::strats::dnmm_vesu::DeltaNeutralLoopingVesuXSTRK::IMMSettings",
|
|
53020
|
+
items: [
|
|
53021
|
+
{
|
|
53022
|
+
type: "function",
|
|
53023
|
+
name: "set_mm_settings",
|
|
53024
|
+
inputs: [
|
|
53025
|
+
{
|
|
53026
|
+
name: "lend_settings1",
|
|
53027
|
+
type: "strkfarm::components::endur::EndurSettings"
|
|
53028
|
+
},
|
|
53029
|
+
{
|
|
53030
|
+
name: "lend_settings2",
|
|
53031
|
+
type: "strkfarm::components::vesu::vesuStruct"
|
|
53032
|
+
}
|
|
53033
|
+
],
|
|
53034
|
+
outputs: [],
|
|
53035
|
+
state_mutability: "external"
|
|
53036
|
+
}
|
|
53037
|
+
]
|
|
53038
|
+
},
|
|
53039
|
+
{
|
|
53040
|
+
type: "impl",
|
|
53041
|
+
name: "DNMMImpl",
|
|
53042
|
+
interface_name: "strkfarm::interfaces::ERC721Strategy::IStrategy"
|
|
53043
|
+
},
|
|
53044
|
+
{
|
|
53045
|
+
type: "struct",
|
|
53046
|
+
name: "strkfarm::interfaces::ERC721Strategy::StrategyConfig",
|
|
53047
|
+
members: [
|
|
53048
|
+
{
|
|
53049
|
+
name: "main_token",
|
|
53050
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53051
|
+
},
|
|
53052
|
+
{
|
|
53053
|
+
name: "main_offset",
|
|
53054
|
+
type: "core::integer::u128"
|
|
53055
|
+
},
|
|
53056
|
+
{
|
|
53057
|
+
name: "secondary_token",
|
|
53058
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53059
|
+
},
|
|
53060
|
+
{
|
|
53061
|
+
name: "secondary_offset",
|
|
53062
|
+
type: "core::integer::u128"
|
|
53063
|
+
}
|
|
53064
|
+
]
|
|
53065
|
+
},
|
|
53066
|
+
{
|
|
53067
|
+
type: "interface",
|
|
53068
|
+
name: "strkfarm::interfaces::ERC721Strategy::IStrategy",
|
|
53069
|
+
items: [
|
|
53070
|
+
{
|
|
53071
|
+
type: "function",
|
|
53072
|
+
name: "config",
|
|
53073
|
+
inputs: [],
|
|
53074
|
+
outputs: [
|
|
53075
|
+
{
|
|
53076
|
+
type: "strkfarm::interfaces::ERC721Strategy::StrategyConfig"
|
|
53077
|
+
}
|
|
53078
|
+
],
|
|
53079
|
+
state_mutability: "view"
|
|
53080
|
+
},
|
|
53081
|
+
{
|
|
53082
|
+
type: "function",
|
|
53083
|
+
name: "get_settings",
|
|
53084
|
+
inputs: [],
|
|
53085
|
+
outputs: [
|
|
53086
|
+
{
|
|
53087
|
+
type: "strkfarm::interfaces::ERC721Strategy::Settings"
|
|
53088
|
+
}
|
|
53089
|
+
],
|
|
53090
|
+
state_mutability: "view"
|
|
53091
|
+
}
|
|
53092
|
+
]
|
|
53093
|
+
},
|
|
53094
|
+
{
|
|
53095
|
+
type: "impl",
|
|
53096
|
+
name: "EkuboLockedImpl",
|
|
53097
|
+
interface_name: "ekubo::interfaces::core::ILocker"
|
|
53098
|
+
},
|
|
53099
|
+
{
|
|
53100
|
+
type: "interface",
|
|
53101
|
+
name: "ekubo::interfaces::core::ILocker",
|
|
53102
|
+
items: [
|
|
53103
|
+
{
|
|
53104
|
+
type: "function",
|
|
53105
|
+
name: "locked",
|
|
53106
|
+
inputs: [
|
|
53107
|
+
{
|
|
53108
|
+
name: "id",
|
|
53109
|
+
type: "core::integer::u32"
|
|
53110
|
+
},
|
|
53111
|
+
{
|
|
53112
|
+
name: "data",
|
|
53113
|
+
type: "core::array::Span::<core::felt252>"
|
|
53114
|
+
}
|
|
53115
|
+
],
|
|
53116
|
+
outputs: [
|
|
53117
|
+
{
|
|
53118
|
+
type: "core::array::Span::<core::felt252>"
|
|
53119
|
+
}
|
|
53120
|
+
],
|
|
53121
|
+
state_mutability: "external"
|
|
53122
|
+
}
|
|
53123
|
+
]
|
|
53124
|
+
},
|
|
53125
|
+
{
|
|
53126
|
+
type: "impl",
|
|
53127
|
+
name: "ERC721MixinImpl",
|
|
53128
|
+
interface_name: "openzeppelin_token::erc721::interface::ERC721ABI"
|
|
53129
|
+
},
|
|
53130
|
+
{
|
|
53131
|
+
type: "struct",
|
|
53132
|
+
name: "core::byte_array::ByteArray",
|
|
53133
|
+
members: [
|
|
53134
|
+
{
|
|
53135
|
+
name: "data",
|
|
53136
|
+
type: "core::array::Array::<core::bytes_31::bytes31>"
|
|
53137
|
+
},
|
|
53138
|
+
{
|
|
53139
|
+
name: "pending_word",
|
|
53140
|
+
type: "core::felt252"
|
|
53141
|
+
},
|
|
53142
|
+
{
|
|
53143
|
+
name: "pending_word_len",
|
|
53144
|
+
type: "core::integer::u32"
|
|
53145
|
+
}
|
|
53146
|
+
]
|
|
53147
|
+
},
|
|
53148
|
+
{
|
|
53149
|
+
type: "interface",
|
|
53150
|
+
name: "openzeppelin_token::erc721::interface::ERC721ABI",
|
|
53151
|
+
items: [
|
|
53152
|
+
{
|
|
53153
|
+
type: "function",
|
|
53154
|
+
name: "balance_of",
|
|
53155
|
+
inputs: [
|
|
53156
|
+
{
|
|
53157
|
+
name: "account",
|
|
53158
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53159
|
+
}
|
|
53160
|
+
],
|
|
53161
|
+
outputs: [
|
|
53162
|
+
{
|
|
53163
|
+
type: "core::integer::u256"
|
|
53164
|
+
}
|
|
53165
|
+
],
|
|
53166
|
+
state_mutability: "view"
|
|
53167
|
+
},
|
|
53168
|
+
{
|
|
53169
|
+
type: "function",
|
|
53170
|
+
name: "owner_of",
|
|
53171
|
+
inputs: [
|
|
53172
|
+
{
|
|
53173
|
+
name: "token_id",
|
|
53174
|
+
type: "core::integer::u256"
|
|
53175
|
+
}
|
|
53176
|
+
],
|
|
53177
|
+
outputs: [
|
|
53178
|
+
{
|
|
53179
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53180
|
+
}
|
|
53181
|
+
],
|
|
53182
|
+
state_mutability: "view"
|
|
53183
|
+
},
|
|
53184
|
+
{
|
|
53185
|
+
type: "function",
|
|
53186
|
+
name: "safe_transfer_from",
|
|
53187
|
+
inputs: [
|
|
53188
|
+
{
|
|
53189
|
+
name: "from",
|
|
53190
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53191
|
+
},
|
|
53192
|
+
{
|
|
53193
|
+
name: "to",
|
|
53194
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53195
|
+
},
|
|
53196
|
+
{
|
|
53197
|
+
name: "token_id",
|
|
53198
|
+
type: "core::integer::u256"
|
|
53199
|
+
},
|
|
53200
|
+
{
|
|
53201
|
+
name: "data",
|
|
53202
|
+
type: "core::array::Span::<core::felt252>"
|
|
53203
|
+
}
|
|
53204
|
+
],
|
|
53205
|
+
outputs: [],
|
|
53206
|
+
state_mutability: "external"
|
|
53207
|
+
},
|
|
53208
|
+
{
|
|
53209
|
+
type: "function",
|
|
53210
|
+
name: "transfer_from",
|
|
53211
|
+
inputs: [
|
|
53212
|
+
{
|
|
53213
|
+
name: "from",
|
|
53214
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53215
|
+
},
|
|
53216
|
+
{
|
|
53217
|
+
name: "to",
|
|
53218
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53219
|
+
},
|
|
53220
|
+
{
|
|
53221
|
+
name: "token_id",
|
|
53222
|
+
type: "core::integer::u256"
|
|
53223
|
+
}
|
|
53224
|
+
],
|
|
53225
|
+
outputs: [],
|
|
53226
|
+
state_mutability: "external"
|
|
53227
|
+
},
|
|
53228
|
+
{
|
|
53229
|
+
type: "function",
|
|
53230
|
+
name: "approve",
|
|
53231
|
+
inputs: [
|
|
53232
|
+
{
|
|
53233
|
+
name: "to",
|
|
53234
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53235
|
+
},
|
|
53236
|
+
{
|
|
53237
|
+
name: "token_id",
|
|
53238
|
+
type: "core::integer::u256"
|
|
53239
|
+
}
|
|
53240
|
+
],
|
|
53241
|
+
outputs: [],
|
|
53242
|
+
state_mutability: "external"
|
|
53243
|
+
},
|
|
53244
|
+
{
|
|
53245
|
+
type: "function",
|
|
53246
|
+
name: "set_approval_for_all",
|
|
53247
|
+
inputs: [
|
|
53248
|
+
{
|
|
53249
|
+
name: "operator",
|
|
53250
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53251
|
+
},
|
|
53252
|
+
{
|
|
53253
|
+
name: "approved",
|
|
53254
|
+
type: "core::bool"
|
|
53255
|
+
}
|
|
53256
|
+
],
|
|
53257
|
+
outputs: [],
|
|
53258
|
+
state_mutability: "external"
|
|
53259
|
+
},
|
|
53260
|
+
{
|
|
53261
|
+
type: "function",
|
|
53262
|
+
name: "get_approved",
|
|
53263
|
+
inputs: [
|
|
53264
|
+
{
|
|
53265
|
+
name: "token_id",
|
|
53266
|
+
type: "core::integer::u256"
|
|
53267
|
+
}
|
|
53268
|
+
],
|
|
53269
|
+
outputs: [
|
|
53270
|
+
{
|
|
53271
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53272
|
+
}
|
|
53273
|
+
],
|
|
53274
|
+
state_mutability: "view"
|
|
53275
|
+
},
|
|
53276
|
+
{
|
|
53277
|
+
type: "function",
|
|
53278
|
+
name: "is_approved_for_all",
|
|
53279
|
+
inputs: [
|
|
53280
|
+
{
|
|
53281
|
+
name: "owner",
|
|
53282
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53283
|
+
},
|
|
53284
|
+
{
|
|
53285
|
+
name: "operator",
|
|
53286
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53287
|
+
}
|
|
53288
|
+
],
|
|
53289
|
+
outputs: [
|
|
53290
|
+
{
|
|
53291
|
+
type: "core::bool"
|
|
53292
|
+
}
|
|
53293
|
+
],
|
|
53294
|
+
state_mutability: "view"
|
|
53295
|
+
},
|
|
53296
|
+
{
|
|
53297
|
+
type: "function",
|
|
53298
|
+
name: "supports_interface",
|
|
53299
|
+
inputs: [
|
|
53300
|
+
{
|
|
53301
|
+
name: "interface_id",
|
|
53302
|
+
type: "core::felt252"
|
|
53303
|
+
}
|
|
53304
|
+
],
|
|
53305
|
+
outputs: [
|
|
53306
|
+
{
|
|
53307
|
+
type: "core::bool"
|
|
53308
|
+
}
|
|
53309
|
+
],
|
|
53310
|
+
state_mutability: "view"
|
|
53311
|
+
},
|
|
53312
|
+
{
|
|
53313
|
+
type: "function",
|
|
53314
|
+
name: "name",
|
|
53315
|
+
inputs: [],
|
|
53316
|
+
outputs: [
|
|
53317
|
+
{
|
|
53318
|
+
type: "core::byte_array::ByteArray"
|
|
53319
|
+
}
|
|
53320
|
+
],
|
|
53321
|
+
state_mutability: "view"
|
|
53322
|
+
},
|
|
53323
|
+
{
|
|
53324
|
+
type: "function",
|
|
53325
|
+
name: "symbol",
|
|
53326
|
+
inputs: [],
|
|
53327
|
+
outputs: [
|
|
53328
|
+
{
|
|
53329
|
+
type: "core::byte_array::ByteArray"
|
|
53330
|
+
}
|
|
53331
|
+
],
|
|
53332
|
+
state_mutability: "view"
|
|
53333
|
+
},
|
|
53334
|
+
{
|
|
53335
|
+
type: "function",
|
|
53336
|
+
name: "token_uri",
|
|
53337
|
+
inputs: [
|
|
53338
|
+
{
|
|
53339
|
+
name: "token_id",
|
|
53340
|
+
type: "core::integer::u256"
|
|
53341
|
+
}
|
|
53342
|
+
],
|
|
53343
|
+
outputs: [
|
|
53344
|
+
{
|
|
53345
|
+
type: "core::byte_array::ByteArray"
|
|
53346
|
+
}
|
|
53347
|
+
],
|
|
53348
|
+
state_mutability: "view"
|
|
53349
|
+
},
|
|
53350
|
+
{
|
|
53351
|
+
type: "function",
|
|
53352
|
+
name: "balanceOf",
|
|
53353
|
+
inputs: [
|
|
53354
|
+
{
|
|
53355
|
+
name: "account",
|
|
53356
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53357
|
+
}
|
|
53358
|
+
],
|
|
53359
|
+
outputs: [
|
|
53360
|
+
{
|
|
53361
|
+
type: "core::integer::u256"
|
|
53362
|
+
}
|
|
53363
|
+
],
|
|
53364
|
+
state_mutability: "view"
|
|
53365
|
+
},
|
|
53366
|
+
{
|
|
53367
|
+
type: "function",
|
|
53368
|
+
name: "ownerOf",
|
|
53369
|
+
inputs: [
|
|
53370
|
+
{
|
|
53371
|
+
name: "tokenId",
|
|
53372
|
+
type: "core::integer::u256"
|
|
53373
|
+
}
|
|
53374
|
+
],
|
|
53375
|
+
outputs: [
|
|
53376
|
+
{
|
|
53377
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53378
|
+
}
|
|
53379
|
+
],
|
|
53380
|
+
state_mutability: "view"
|
|
53381
|
+
},
|
|
53382
|
+
{
|
|
53383
|
+
type: "function",
|
|
53384
|
+
name: "safeTransferFrom",
|
|
53385
|
+
inputs: [
|
|
53386
|
+
{
|
|
53387
|
+
name: "from",
|
|
53388
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53389
|
+
},
|
|
53390
|
+
{
|
|
53391
|
+
name: "to",
|
|
53392
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53393
|
+
},
|
|
53394
|
+
{
|
|
53395
|
+
name: "tokenId",
|
|
53396
|
+
type: "core::integer::u256"
|
|
53397
|
+
},
|
|
53398
|
+
{
|
|
53399
|
+
name: "data",
|
|
53400
|
+
type: "core::array::Span::<core::felt252>"
|
|
53401
|
+
}
|
|
53402
|
+
],
|
|
53403
|
+
outputs: [],
|
|
53404
|
+
state_mutability: "external"
|
|
53405
|
+
},
|
|
53406
|
+
{
|
|
53407
|
+
type: "function",
|
|
53408
|
+
name: "transferFrom",
|
|
53409
|
+
inputs: [
|
|
53410
|
+
{
|
|
53411
|
+
name: "from",
|
|
53412
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53413
|
+
},
|
|
53414
|
+
{
|
|
53415
|
+
name: "to",
|
|
53416
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53417
|
+
},
|
|
53418
|
+
{
|
|
53419
|
+
name: "tokenId",
|
|
53420
|
+
type: "core::integer::u256"
|
|
53421
|
+
}
|
|
53422
|
+
],
|
|
53423
|
+
outputs: [],
|
|
53424
|
+
state_mutability: "external"
|
|
53425
|
+
},
|
|
53426
|
+
{
|
|
53427
|
+
type: "function",
|
|
53428
|
+
name: "setApprovalForAll",
|
|
53429
|
+
inputs: [
|
|
53430
|
+
{
|
|
53431
|
+
name: "operator",
|
|
53432
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53433
|
+
},
|
|
53434
|
+
{
|
|
53435
|
+
name: "approved",
|
|
53436
|
+
type: "core::bool"
|
|
53437
|
+
}
|
|
53438
|
+
],
|
|
53439
|
+
outputs: [],
|
|
53440
|
+
state_mutability: "external"
|
|
53441
|
+
},
|
|
53442
|
+
{
|
|
53443
|
+
type: "function",
|
|
53444
|
+
name: "getApproved",
|
|
53445
|
+
inputs: [
|
|
53446
|
+
{
|
|
53447
|
+
name: "tokenId",
|
|
53448
|
+
type: "core::integer::u256"
|
|
53449
|
+
}
|
|
53450
|
+
],
|
|
53451
|
+
outputs: [
|
|
53452
|
+
{
|
|
53453
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53454
|
+
}
|
|
53455
|
+
],
|
|
53456
|
+
state_mutability: "view"
|
|
53457
|
+
},
|
|
53458
|
+
{
|
|
53459
|
+
type: "function",
|
|
53460
|
+
name: "isApprovedForAll",
|
|
53461
|
+
inputs: [
|
|
53462
|
+
{
|
|
53463
|
+
name: "owner",
|
|
53464
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53465
|
+
},
|
|
53466
|
+
{
|
|
53467
|
+
name: "operator",
|
|
53468
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53469
|
+
}
|
|
53470
|
+
],
|
|
53471
|
+
outputs: [
|
|
53472
|
+
{
|
|
53473
|
+
type: "core::bool"
|
|
53474
|
+
}
|
|
53475
|
+
],
|
|
53476
|
+
state_mutability: "view"
|
|
53477
|
+
},
|
|
53478
|
+
{
|
|
53479
|
+
type: "function",
|
|
53480
|
+
name: "tokenURI",
|
|
53481
|
+
inputs: [
|
|
53482
|
+
{
|
|
53483
|
+
name: "tokenId",
|
|
53484
|
+
type: "core::integer::u256"
|
|
53485
|
+
}
|
|
53486
|
+
],
|
|
53487
|
+
outputs: [
|
|
53488
|
+
{
|
|
53489
|
+
type: "core::byte_array::ByteArray"
|
|
53490
|
+
}
|
|
53491
|
+
],
|
|
53492
|
+
state_mutability: "view"
|
|
53493
|
+
}
|
|
53494
|
+
]
|
|
53495
|
+
},
|
|
53496
|
+
{
|
|
53497
|
+
type: "impl",
|
|
53498
|
+
name: "RewardShareImpl",
|
|
53499
|
+
interface_name: "strkfarm::components::harvester::reward_shares::IRewardShare"
|
|
53500
|
+
},
|
|
53501
|
+
{
|
|
53502
|
+
type: "struct",
|
|
53503
|
+
name: "strkfarm::components::harvester::reward_shares::UserRewardsInfo",
|
|
53504
|
+
members: [
|
|
53505
|
+
{
|
|
53506
|
+
name: "pending_round_points",
|
|
53507
|
+
type: "core::felt252"
|
|
53508
|
+
},
|
|
53509
|
+
{
|
|
53510
|
+
name: "shares_owned",
|
|
53511
|
+
type: "core::felt252"
|
|
53512
|
+
},
|
|
53513
|
+
{
|
|
53514
|
+
name: "block_number",
|
|
53515
|
+
type: "core::integer::u64"
|
|
53516
|
+
},
|
|
53517
|
+
{
|
|
53518
|
+
name: "index",
|
|
53519
|
+
type: "core::integer::u32"
|
|
53520
|
+
}
|
|
53521
|
+
]
|
|
53522
|
+
},
|
|
53523
|
+
{
|
|
53524
|
+
type: "struct",
|
|
53525
|
+
name: "strkfarm::components::harvester::reward_shares::RewardsInfo",
|
|
53526
|
+
members: [
|
|
53527
|
+
{
|
|
53528
|
+
name: "amount",
|
|
53529
|
+
type: "core::felt252"
|
|
53530
|
+
},
|
|
53531
|
+
{
|
|
53532
|
+
name: "shares",
|
|
53533
|
+
type: "core::felt252"
|
|
53534
|
+
},
|
|
53535
|
+
{
|
|
53536
|
+
name: "total_round_points",
|
|
53537
|
+
type: "core::felt252"
|
|
53538
|
+
},
|
|
53539
|
+
{
|
|
53540
|
+
name: "block_number",
|
|
53541
|
+
type: "core::integer::u64"
|
|
53542
|
+
}
|
|
53543
|
+
]
|
|
53544
|
+
},
|
|
53545
|
+
{
|
|
53546
|
+
type: "interface",
|
|
53547
|
+
name: "strkfarm::components::harvester::reward_shares::IRewardShare",
|
|
53548
|
+
items: [
|
|
53549
|
+
{
|
|
53550
|
+
type: "function",
|
|
53551
|
+
name: "get_user_reward_info",
|
|
53552
|
+
inputs: [
|
|
53553
|
+
{
|
|
53554
|
+
name: "user",
|
|
53555
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53556
|
+
}
|
|
53557
|
+
],
|
|
53558
|
+
outputs: [
|
|
53559
|
+
{
|
|
53560
|
+
type: "strkfarm::components::harvester::reward_shares::UserRewardsInfo"
|
|
53561
|
+
}
|
|
53562
|
+
],
|
|
53563
|
+
state_mutability: "view"
|
|
53564
|
+
},
|
|
53565
|
+
{
|
|
53566
|
+
type: "function",
|
|
53567
|
+
name: "get_rewards_info",
|
|
53568
|
+
inputs: [
|
|
53569
|
+
{
|
|
53570
|
+
name: "index",
|
|
53571
|
+
type: "core::integer::u32"
|
|
53572
|
+
}
|
|
53573
|
+
],
|
|
53574
|
+
outputs: [
|
|
53575
|
+
{
|
|
53576
|
+
type: "strkfarm::components::harvester::reward_shares::RewardsInfo"
|
|
53577
|
+
}
|
|
53578
|
+
],
|
|
53579
|
+
state_mutability: "view"
|
|
53580
|
+
},
|
|
53581
|
+
{
|
|
53582
|
+
type: "function",
|
|
53583
|
+
name: "get_total_rewards",
|
|
53584
|
+
inputs: [],
|
|
53585
|
+
outputs: [
|
|
53586
|
+
{
|
|
53587
|
+
type: "core::integer::u32"
|
|
53588
|
+
}
|
|
53589
|
+
],
|
|
53590
|
+
state_mutability: "view"
|
|
53591
|
+
},
|
|
53592
|
+
{
|
|
53593
|
+
type: "function",
|
|
53594
|
+
name: "get_total_unminted_shares",
|
|
53595
|
+
inputs: [],
|
|
53596
|
+
outputs: [
|
|
53597
|
+
{
|
|
53598
|
+
type: "core::felt252"
|
|
53599
|
+
}
|
|
53600
|
+
],
|
|
53601
|
+
state_mutability: "view"
|
|
53602
|
+
},
|
|
53603
|
+
{
|
|
53604
|
+
type: "function",
|
|
53605
|
+
name: "get_additional_shares",
|
|
53606
|
+
inputs: [
|
|
53607
|
+
{
|
|
53608
|
+
name: "user",
|
|
53609
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53610
|
+
}
|
|
53611
|
+
],
|
|
53612
|
+
outputs: [
|
|
53613
|
+
{
|
|
53614
|
+
type: "(core::felt252, core::integer::u64, core::felt252)"
|
|
53615
|
+
}
|
|
53616
|
+
],
|
|
53617
|
+
state_mutability: "view"
|
|
53618
|
+
}
|
|
53619
|
+
]
|
|
53620
|
+
},
|
|
53621
|
+
{
|
|
53622
|
+
type: "impl",
|
|
53623
|
+
name: "CommonCompImpl",
|
|
53624
|
+
interface_name: "strkfarm::interfaces::common::ICommon"
|
|
53625
|
+
},
|
|
53626
|
+
{
|
|
53627
|
+
type: "interface",
|
|
53628
|
+
name: "strkfarm::interfaces::common::ICommon",
|
|
53629
|
+
items: [
|
|
53630
|
+
{
|
|
53631
|
+
type: "function",
|
|
53632
|
+
name: "upgrade",
|
|
53633
|
+
inputs: [
|
|
53634
|
+
{
|
|
53635
|
+
name: "new_class",
|
|
53636
|
+
type: "core::starknet::class_hash::ClassHash"
|
|
53637
|
+
}
|
|
53638
|
+
],
|
|
53639
|
+
outputs: [],
|
|
53640
|
+
state_mutability: "external"
|
|
53641
|
+
},
|
|
53642
|
+
{
|
|
53643
|
+
type: "function",
|
|
53644
|
+
name: "pause",
|
|
53645
|
+
inputs: [],
|
|
53646
|
+
outputs: [],
|
|
53647
|
+
state_mutability: "external"
|
|
53648
|
+
},
|
|
53649
|
+
{
|
|
53650
|
+
type: "function",
|
|
53651
|
+
name: "unpause",
|
|
53652
|
+
inputs: [],
|
|
53653
|
+
outputs: [],
|
|
53654
|
+
state_mutability: "external"
|
|
53655
|
+
},
|
|
53656
|
+
{
|
|
53657
|
+
type: "function",
|
|
53658
|
+
name: "is_paused",
|
|
53659
|
+
inputs: [],
|
|
53660
|
+
outputs: [
|
|
53661
|
+
{
|
|
53662
|
+
type: "core::bool"
|
|
53663
|
+
}
|
|
53664
|
+
],
|
|
53665
|
+
state_mutability: "view"
|
|
53666
|
+
},
|
|
53667
|
+
{
|
|
53668
|
+
type: "function",
|
|
53669
|
+
name: "owner",
|
|
53670
|
+
inputs: [],
|
|
53671
|
+
outputs: [
|
|
53672
|
+
{
|
|
53673
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53674
|
+
}
|
|
53675
|
+
],
|
|
53676
|
+
state_mutability: "view"
|
|
53677
|
+
},
|
|
53678
|
+
{
|
|
53679
|
+
type: "function",
|
|
53680
|
+
name: "transfer_ownership",
|
|
53681
|
+
inputs: [
|
|
53682
|
+
{
|
|
53683
|
+
name: "new_owner",
|
|
53684
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53685
|
+
}
|
|
53686
|
+
],
|
|
53687
|
+
outputs: [],
|
|
53688
|
+
state_mutability: "external"
|
|
53689
|
+
},
|
|
53690
|
+
{
|
|
53691
|
+
type: "function",
|
|
53692
|
+
name: "renounce_ownership",
|
|
53693
|
+
inputs: [],
|
|
53694
|
+
outputs: [],
|
|
53695
|
+
state_mutability: "external"
|
|
53696
|
+
}
|
|
53697
|
+
]
|
|
53698
|
+
},
|
|
53699
|
+
{
|
|
53700
|
+
type: "constructor",
|
|
53701
|
+
name: "constructor",
|
|
53702
|
+
inputs: [
|
|
53703
|
+
{
|
|
53704
|
+
name: "name",
|
|
53705
|
+
type: "core::byte_array::ByteArray"
|
|
53706
|
+
},
|
|
53707
|
+
{
|
|
53708
|
+
name: "symbol",
|
|
53709
|
+
type: "core::byte_array::ByteArray"
|
|
53710
|
+
},
|
|
53711
|
+
{
|
|
53712
|
+
name: "base_uri",
|
|
53713
|
+
type: "core::byte_array::ByteArray"
|
|
53714
|
+
},
|
|
53715
|
+
{
|
|
53716
|
+
name: "owner",
|
|
53717
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53718
|
+
},
|
|
53719
|
+
{
|
|
53720
|
+
name: "main_token",
|
|
53721
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53722
|
+
},
|
|
53723
|
+
{
|
|
53724
|
+
name: "main_offset",
|
|
53725
|
+
type: "core::integer::u128"
|
|
53726
|
+
},
|
|
53727
|
+
{
|
|
53728
|
+
name: "secondary_token",
|
|
53729
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
53730
|
+
},
|
|
53731
|
+
{
|
|
53732
|
+
name: "secondary_offset",
|
|
53733
|
+
type: "core::integer::u128"
|
|
53734
|
+
},
|
|
53735
|
+
{
|
|
53736
|
+
name: "settings",
|
|
53737
|
+
type: "strkfarm::interfaces::ERC721Strategy::Settings"
|
|
53738
|
+
},
|
|
53739
|
+
{
|
|
53740
|
+
name: "lend_settings1",
|
|
53741
|
+
type: "strkfarm::components::endur::EndurSettings"
|
|
53742
|
+
},
|
|
53743
|
+
{
|
|
53744
|
+
name: "lend_settings2",
|
|
53745
|
+
type: "strkfarm::components::vesu::vesuStruct"
|
|
53746
|
+
}
|
|
53747
|
+
]
|
|
53748
|
+
},
|
|
53749
|
+
{
|
|
53750
|
+
type: "event",
|
|
53751
|
+
name: "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
|
|
53752
|
+
kind: "struct",
|
|
53753
|
+
members: [
|
|
53754
|
+
{
|
|
53755
|
+
name: "from",
|
|
53756
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
53757
|
+
kind: "key"
|
|
53758
|
+
},
|
|
53759
|
+
{
|
|
53760
|
+
name: "to",
|
|
53761
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
53762
|
+
kind: "key"
|
|
53763
|
+
},
|
|
53764
|
+
{
|
|
53765
|
+
name: "token_id",
|
|
53766
|
+
type: "core::integer::u256",
|
|
53767
|
+
kind: "key"
|
|
53768
|
+
}
|
|
53769
|
+
]
|
|
53770
|
+
},
|
|
53771
|
+
{
|
|
53772
|
+
type: "event",
|
|
53773
|
+
name: "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
|
|
53774
|
+
kind: "struct",
|
|
53775
|
+
members: [
|
|
53776
|
+
{
|
|
53777
|
+
name: "owner",
|
|
53778
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
53779
|
+
kind: "key"
|
|
53780
|
+
},
|
|
53781
|
+
{
|
|
53782
|
+
name: "approved",
|
|
53783
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
53784
|
+
kind: "key"
|
|
53785
|
+
},
|
|
53786
|
+
{
|
|
53787
|
+
name: "token_id",
|
|
53788
|
+
type: "core::integer::u256",
|
|
53789
|
+
kind: "key"
|
|
53790
|
+
}
|
|
53791
|
+
]
|
|
53792
|
+
},
|
|
53793
|
+
{
|
|
53794
|
+
type: "event",
|
|
53795
|
+
name: "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
|
|
53796
|
+
kind: "struct",
|
|
53797
|
+
members: [
|
|
53798
|
+
{
|
|
53799
|
+
name: "owner",
|
|
53800
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
53801
|
+
kind: "key"
|
|
53802
|
+
},
|
|
53803
|
+
{
|
|
53804
|
+
name: "operator",
|
|
53805
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
53806
|
+
kind: "key"
|
|
53807
|
+
},
|
|
53808
|
+
{
|
|
53809
|
+
name: "approved",
|
|
53810
|
+
type: "core::bool",
|
|
53811
|
+
kind: "data"
|
|
53812
|
+
}
|
|
53813
|
+
]
|
|
53814
|
+
},
|
|
53815
|
+
{
|
|
53816
|
+
type: "event",
|
|
53817
|
+
name: "openzeppelin_token::erc721::erc721::ERC721Component::Event",
|
|
53818
|
+
kind: "enum",
|
|
53819
|
+
variants: [
|
|
53820
|
+
{
|
|
53821
|
+
name: "Transfer",
|
|
53822
|
+
type: "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
|
|
53823
|
+
kind: "nested"
|
|
53824
|
+
},
|
|
53825
|
+
{
|
|
53826
|
+
name: "Approval",
|
|
53827
|
+
type: "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
|
|
53828
|
+
kind: "nested"
|
|
53829
|
+
},
|
|
53830
|
+
{
|
|
53831
|
+
name: "ApprovalForAll",
|
|
53832
|
+
type: "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
|
|
53833
|
+
kind: "nested"
|
|
53834
|
+
}
|
|
53835
|
+
]
|
|
53836
|
+
},
|
|
53837
|
+
{
|
|
53838
|
+
type: "event",
|
|
53839
|
+
name: "openzeppelin_introspection::src5::SRC5Component::Event",
|
|
53840
|
+
kind: "enum",
|
|
53841
|
+
variants: []
|
|
53842
|
+
},
|
|
53843
|
+
{
|
|
53844
|
+
type: "event",
|
|
53845
|
+
name: "openzeppelin_upgrades::upgradeable::UpgradeableComponent::Upgraded",
|
|
53846
|
+
kind: "struct",
|
|
53847
|
+
members: [
|
|
53848
|
+
{
|
|
53849
|
+
name: "class_hash",
|
|
53850
|
+
type: "core::starknet::class_hash::ClassHash",
|
|
53851
|
+
kind: "data"
|
|
53852
|
+
}
|
|
53853
|
+
]
|
|
53854
|
+
},
|
|
53855
|
+
{
|
|
53856
|
+
type: "event",
|
|
53857
|
+
name: "openzeppelin_upgrades::upgradeable::UpgradeableComponent::Event",
|
|
53858
|
+
kind: "enum",
|
|
53859
|
+
variants: [
|
|
53860
|
+
{
|
|
53861
|
+
name: "Upgraded",
|
|
53862
|
+
type: "openzeppelin_upgrades::upgradeable::UpgradeableComponent::Upgraded",
|
|
53863
|
+
kind: "nested"
|
|
53864
|
+
}
|
|
53865
|
+
]
|
|
53866
|
+
},
|
|
53867
|
+
{
|
|
53868
|
+
type: "event",
|
|
53869
|
+
name: "openzeppelin_security::pausable::PausableComponent::Paused",
|
|
53870
|
+
kind: "struct",
|
|
53871
|
+
members: [
|
|
53872
|
+
{
|
|
53873
|
+
name: "account",
|
|
53874
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
53875
|
+
kind: "data"
|
|
53876
|
+
}
|
|
53877
|
+
]
|
|
53878
|
+
},
|
|
53879
|
+
{
|
|
53880
|
+
type: "event",
|
|
53881
|
+
name: "openzeppelin_security::pausable::PausableComponent::Unpaused",
|
|
53882
|
+
kind: "struct",
|
|
53883
|
+
members: [
|
|
53884
|
+
{
|
|
53885
|
+
name: "account",
|
|
53886
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
53887
|
+
kind: "data"
|
|
53888
|
+
}
|
|
53889
|
+
]
|
|
53890
|
+
},
|
|
53891
|
+
{
|
|
53892
|
+
type: "event",
|
|
53893
|
+
name: "openzeppelin_security::pausable::PausableComponent::Event",
|
|
53894
|
+
kind: "enum",
|
|
53895
|
+
variants: [
|
|
53896
|
+
{
|
|
53897
|
+
name: "Paused",
|
|
53898
|
+
type: "openzeppelin_security::pausable::PausableComponent::Paused",
|
|
53899
|
+
kind: "nested"
|
|
53900
|
+
},
|
|
53901
|
+
{
|
|
53902
|
+
name: "Unpaused",
|
|
53903
|
+
type: "openzeppelin_security::pausable::PausableComponent::Unpaused",
|
|
53904
|
+
kind: "nested"
|
|
53905
|
+
}
|
|
53906
|
+
]
|
|
53907
|
+
},
|
|
53908
|
+
{
|
|
53909
|
+
type: "event",
|
|
53910
|
+
name: "openzeppelin_security::reentrancyguard::ReentrancyGuardComponent::Event",
|
|
53911
|
+
kind: "enum",
|
|
53912
|
+
variants: []
|
|
53913
|
+
},
|
|
53914
|
+
{
|
|
53915
|
+
type: "event",
|
|
53916
|
+
name: "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred",
|
|
53917
|
+
kind: "struct",
|
|
53918
|
+
members: [
|
|
53919
|
+
{
|
|
53920
|
+
name: "previous_owner",
|
|
53921
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
53922
|
+
kind: "key"
|
|
53923
|
+
},
|
|
53924
|
+
{
|
|
53925
|
+
name: "new_owner",
|
|
53926
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
53927
|
+
kind: "key"
|
|
53928
|
+
}
|
|
53929
|
+
]
|
|
53930
|
+
},
|
|
53931
|
+
{
|
|
53932
|
+
type: "event",
|
|
53933
|
+
name: "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted",
|
|
53934
|
+
kind: "struct",
|
|
53935
|
+
members: [
|
|
53936
|
+
{
|
|
53937
|
+
name: "previous_owner",
|
|
53938
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
53939
|
+
kind: "key"
|
|
53940
|
+
},
|
|
53941
|
+
{
|
|
53942
|
+
name: "new_owner",
|
|
53943
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
53944
|
+
kind: "key"
|
|
53945
|
+
}
|
|
53946
|
+
]
|
|
53947
|
+
},
|
|
53948
|
+
{
|
|
53949
|
+
type: "event",
|
|
53950
|
+
name: "openzeppelin_access::ownable::ownable::OwnableComponent::Event",
|
|
53951
|
+
kind: "enum",
|
|
53952
|
+
variants: [
|
|
53953
|
+
{
|
|
53954
|
+
name: "OwnershipTransferred",
|
|
53955
|
+
type: "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred",
|
|
53956
|
+
kind: "nested"
|
|
53957
|
+
},
|
|
53958
|
+
{
|
|
53959
|
+
name: "OwnershipTransferStarted",
|
|
53960
|
+
type: "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted",
|
|
53961
|
+
kind: "nested"
|
|
53962
|
+
}
|
|
53963
|
+
]
|
|
53964
|
+
},
|
|
53965
|
+
{
|
|
53966
|
+
type: "event",
|
|
53967
|
+
name: "strkfarm::components::common::CommonComp::Event",
|
|
53968
|
+
kind: "enum",
|
|
53969
|
+
variants: []
|
|
53970
|
+
},
|
|
53971
|
+
{
|
|
53972
|
+
type: "event",
|
|
53973
|
+
name: "strkfarm::components::harvester::reward_shares::RewardShareComponent::Rewards",
|
|
53974
|
+
kind: "struct",
|
|
53975
|
+
members: [
|
|
53976
|
+
{
|
|
53977
|
+
name: "index",
|
|
53978
|
+
type: "core::integer::u32",
|
|
53979
|
+
kind: "data"
|
|
53980
|
+
},
|
|
53981
|
+
{
|
|
53982
|
+
name: "info",
|
|
53983
|
+
type: "strkfarm::components::harvester::reward_shares::RewardsInfo",
|
|
53984
|
+
kind: "data"
|
|
53985
|
+
},
|
|
53986
|
+
{
|
|
53987
|
+
name: "total_reward_shares",
|
|
53988
|
+
type: "core::felt252",
|
|
53989
|
+
kind: "data"
|
|
53990
|
+
},
|
|
53991
|
+
{
|
|
53992
|
+
name: "timestamp",
|
|
53993
|
+
type: "core::integer::u64",
|
|
53994
|
+
kind: "data"
|
|
53995
|
+
}
|
|
53996
|
+
]
|
|
53997
|
+
},
|
|
53998
|
+
{
|
|
53999
|
+
type: "event",
|
|
54000
|
+
name: "strkfarm::components::harvester::reward_shares::RewardShareComponent::UserRewards",
|
|
54001
|
+
kind: "struct",
|
|
54002
|
+
members: [
|
|
54003
|
+
{
|
|
54004
|
+
name: "user",
|
|
54005
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
54006
|
+
kind: "key"
|
|
54007
|
+
},
|
|
54008
|
+
{
|
|
54009
|
+
name: "info",
|
|
54010
|
+
type: "strkfarm::components::harvester::reward_shares::UserRewardsInfo",
|
|
54011
|
+
kind: "data"
|
|
54012
|
+
},
|
|
54013
|
+
{
|
|
54014
|
+
name: "total_reward_shares",
|
|
54015
|
+
type: "core::felt252",
|
|
54016
|
+
kind: "data"
|
|
54017
|
+
},
|
|
54018
|
+
{
|
|
54019
|
+
name: "timestamp",
|
|
54020
|
+
type: "core::integer::u64",
|
|
54021
|
+
kind: "data"
|
|
54022
|
+
}
|
|
54023
|
+
]
|
|
54024
|
+
},
|
|
54025
|
+
{
|
|
54026
|
+
type: "event",
|
|
54027
|
+
name: "strkfarm::components::harvester::reward_shares::RewardShareComponent::Event",
|
|
54028
|
+
kind: "enum",
|
|
54029
|
+
variants: [
|
|
54030
|
+
{
|
|
54031
|
+
name: "Rewards",
|
|
54032
|
+
type: "strkfarm::components::harvester::reward_shares::RewardShareComponent::Rewards",
|
|
54033
|
+
kind: "nested"
|
|
54034
|
+
},
|
|
54035
|
+
{
|
|
54036
|
+
name: "UserRewards",
|
|
54037
|
+
type: "strkfarm::components::harvester::reward_shares::RewardShareComponent::UserRewards",
|
|
54038
|
+
kind: "nested"
|
|
54039
|
+
}
|
|
54040
|
+
]
|
|
54041
|
+
},
|
|
54042
|
+
{
|
|
54043
|
+
type: "event",
|
|
54044
|
+
name: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Deposit",
|
|
54045
|
+
kind: "struct",
|
|
54046
|
+
members: [
|
|
54047
|
+
{
|
|
54048
|
+
name: "sender",
|
|
54049
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
54050
|
+
kind: "key"
|
|
54051
|
+
},
|
|
54052
|
+
{
|
|
54053
|
+
name: "owner",
|
|
54054
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
54055
|
+
kind: "key"
|
|
54056
|
+
},
|
|
54057
|
+
{
|
|
54058
|
+
name: "assets",
|
|
54059
|
+
type: "core::integer::u256",
|
|
54060
|
+
kind: "data"
|
|
54061
|
+
},
|
|
54062
|
+
{
|
|
54063
|
+
name: "net_position",
|
|
54064
|
+
type: "strkfarm::interfaces::ERC721Strategy::Position",
|
|
54065
|
+
kind: "data"
|
|
54066
|
+
}
|
|
54067
|
+
]
|
|
54068
|
+
},
|
|
54069
|
+
{
|
|
54070
|
+
type: "event",
|
|
54071
|
+
name: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Withdraw",
|
|
54072
|
+
kind: "struct",
|
|
54073
|
+
members: [
|
|
54074
|
+
{
|
|
54075
|
+
name: "sender",
|
|
54076
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
54077
|
+
kind: "key"
|
|
54078
|
+
},
|
|
54079
|
+
{
|
|
54080
|
+
name: "receiver",
|
|
54081
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
54082
|
+
kind: "key"
|
|
54083
|
+
},
|
|
54084
|
+
{
|
|
54085
|
+
name: "owner",
|
|
54086
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
54087
|
+
kind: "key"
|
|
54088
|
+
},
|
|
54089
|
+
{
|
|
54090
|
+
name: "assets",
|
|
54091
|
+
type: "core::integer::u256",
|
|
54092
|
+
kind: "data"
|
|
54093
|
+
},
|
|
54094
|
+
{
|
|
54095
|
+
name: "net_position",
|
|
54096
|
+
type: "strkfarm::interfaces::ERC721Strategy::Position",
|
|
54097
|
+
kind: "data"
|
|
54098
|
+
}
|
|
54099
|
+
]
|
|
54100
|
+
},
|
|
54101
|
+
{
|
|
54102
|
+
type: "event",
|
|
54103
|
+
name: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Rebalance",
|
|
54104
|
+
kind: "struct",
|
|
54105
|
+
members: [
|
|
54106
|
+
{
|
|
54107
|
+
name: "caller",
|
|
54108
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
54109
|
+
kind: "key"
|
|
54110
|
+
},
|
|
54111
|
+
{
|
|
54112
|
+
name: "amount",
|
|
54113
|
+
type: "core::integer::u256",
|
|
54114
|
+
kind: "data"
|
|
54115
|
+
},
|
|
54116
|
+
{
|
|
54117
|
+
name: "shouldRepay",
|
|
54118
|
+
type: "core::bool",
|
|
54119
|
+
kind: "data"
|
|
54120
|
+
},
|
|
54121
|
+
{
|
|
54122
|
+
name: "pre_hf1",
|
|
54123
|
+
type: "core::integer::u32",
|
|
54124
|
+
kind: "data"
|
|
54125
|
+
},
|
|
54126
|
+
{
|
|
54127
|
+
name: "pre_hf2",
|
|
54128
|
+
type: "core::integer::u32",
|
|
54129
|
+
kind: "data"
|
|
54130
|
+
},
|
|
54131
|
+
{
|
|
54132
|
+
name: "hf1",
|
|
54133
|
+
type: "core::integer::u32",
|
|
54134
|
+
kind: "data"
|
|
54135
|
+
},
|
|
54136
|
+
{
|
|
54137
|
+
name: "hf2",
|
|
54138
|
+
type: "core::integer::u32",
|
|
54139
|
+
kind: "data"
|
|
54140
|
+
}
|
|
54141
|
+
]
|
|
54142
|
+
},
|
|
54143
|
+
{
|
|
54144
|
+
type: "event",
|
|
54145
|
+
name: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::ShareUpdate",
|
|
54146
|
+
kind: "struct",
|
|
54147
|
+
members: [
|
|
54148
|
+
{
|
|
54149
|
+
name: "token_id",
|
|
54150
|
+
type: "core::felt252",
|
|
54151
|
+
kind: "key"
|
|
54152
|
+
},
|
|
54153
|
+
{
|
|
54154
|
+
name: "action_id",
|
|
54155
|
+
type: "core::integer::u8",
|
|
54156
|
+
kind: "key"
|
|
54157
|
+
},
|
|
54158
|
+
{
|
|
54159
|
+
name: "user_shares",
|
|
54160
|
+
type: "core::felt252",
|
|
54161
|
+
kind: "data"
|
|
54162
|
+
},
|
|
54163
|
+
{
|
|
54164
|
+
name: "total_shares",
|
|
54165
|
+
type: "core::felt252",
|
|
54166
|
+
kind: "data"
|
|
54167
|
+
}
|
|
54168
|
+
]
|
|
54169
|
+
},
|
|
54170
|
+
{
|
|
54171
|
+
type: "event",
|
|
54172
|
+
name: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Event",
|
|
54173
|
+
kind: "enum",
|
|
54174
|
+
variants: [
|
|
54175
|
+
{
|
|
54176
|
+
name: "Deposit",
|
|
54177
|
+
type: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Deposit",
|
|
54178
|
+
kind: "nested"
|
|
54179
|
+
},
|
|
54180
|
+
{
|
|
54181
|
+
name: "Withdraw",
|
|
54182
|
+
type: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Withdraw",
|
|
54183
|
+
kind: "nested"
|
|
54184
|
+
},
|
|
54185
|
+
{
|
|
54186
|
+
name: "Rebalance",
|
|
54187
|
+
type: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Rebalance",
|
|
54188
|
+
kind: "nested"
|
|
54189
|
+
},
|
|
54190
|
+
{
|
|
54191
|
+
name: "ShareUpdate",
|
|
54192
|
+
type: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::ShareUpdate",
|
|
54193
|
+
kind: "nested"
|
|
54194
|
+
}
|
|
54195
|
+
]
|
|
54196
|
+
},
|
|
54197
|
+
{
|
|
54198
|
+
type: "event",
|
|
54199
|
+
name: "strkfarm::strats::dnmm_vesu::DeltaNeutralLoopingVesuXSTRK::Event",
|
|
54200
|
+
kind: "enum",
|
|
54201
|
+
variants: [
|
|
54202
|
+
{
|
|
54203
|
+
name: "ERC721Event",
|
|
54204
|
+
type: "openzeppelin_token::erc721::erc721::ERC721Component::Event",
|
|
54205
|
+
kind: "flat"
|
|
54206
|
+
},
|
|
54207
|
+
{
|
|
54208
|
+
name: "SRC5Event",
|
|
54209
|
+
type: "openzeppelin_introspection::src5::SRC5Component::Event",
|
|
54210
|
+
kind: "flat"
|
|
54211
|
+
},
|
|
54212
|
+
{
|
|
54213
|
+
name: "UpgradeableEvent",
|
|
54214
|
+
type: "openzeppelin_upgrades::upgradeable::UpgradeableComponent::Event",
|
|
54215
|
+
kind: "flat"
|
|
54216
|
+
},
|
|
54217
|
+
{
|
|
54218
|
+
name: "PausableEvent",
|
|
54219
|
+
type: "openzeppelin_security::pausable::PausableComponent::Event",
|
|
54220
|
+
kind: "flat"
|
|
54221
|
+
},
|
|
54222
|
+
{
|
|
54223
|
+
name: "ReentrancyGuardEvent",
|
|
54224
|
+
type: "openzeppelin_security::reentrancyguard::ReentrancyGuardComponent::Event",
|
|
54225
|
+
kind: "flat"
|
|
54226
|
+
},
|
|
54227
|
+
{
|
|
54228
|
+
name: "OwnableEvent",
|
|
54229
|
+
type: "openzeppelin_access::ownable::ownable::OwnableComponent::Event",
|
|
54230
|
+
kind: "flat"
|
|
54231
|
+
},
|
|
54232
|
+
{
|
|
54233
|
+
name: "CommonCompEvent",
|
|
54234
|
+
type: "strkfarm::components::common::CommonComp::Event",
|
|
54235
|
+
kind: "flat"
|
|
54236
|
+
},
|
|
54237
|
+
{
|
|
54238
|
+
name: "RewardShareEvent",
|
|
54239
|
+
type: "strkfarm::components::harvester::reward_shares::RewardShareComponent::Event",
|
|
54240
|
+
kind: "flat"
|
|
54241
|
+
},
|
|
54242
|
+
{
|
|
54243
|
+
name: "DeltaNeutralLoopingEvent",
|
|
54244
|
+
type: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Event",
|
|
54245
|
+
kind: "flat"
|
|
54246
|
+
}
|
|
54247
|
+
]
|
|
54248
|
+
}
|
|
54249
|
+
];
|
|
54250
|
+
|
|
54251
|
+
// src/strategies/sensei.ts
|
|
54252
|
+
var SenseiVault = class extends BaseStrategy {
|
|
54253
|
+
constructor(config2, pricer, metadata) {
|
|
54254
|
+
super(config2);
|
|
54255
|
+
this.getSettings = async () => {
|
|
54256
|
+
const settings2 = await this.contract.call("get_settings", []);
|
|
54257
|
+
logger.verbose("getSettings", settings2);
|
|
54258
|
+
return settings2;
|
|
54259
|
+
};
|
|
54260
|
+
this.address = metadata.address;
|
|
54261
|
+
this.pricer = pricer;
|
|
54262
|
+
this.metadata = metadata;
|
|
54263
|
+
this.contract = new Contract(sensei_abi_default, this.address.address, this.config.provider);
|
|
54264
|
+
if (metadata.depositTokens.length === 0) {
|
|
54265
|
+
throw new Error("Deposit tokens are not defined in metadata");
|
|
54266
|
+
}
|
|
54267
|
+
}
|
|
54268
|
+
async getUserTVL(user) {
|
|
54269
|
+
const result = await this.contract.call(
|
|
54270
|
+
"describe_position",
|
|
54271
|
+
[user.address]
|
|
54272
|
+
);
|
|
54273
|
+
const amount = Web3Number.fromWei(
|
|
54274
|
+
uint256_exports.uint256ToBN(result[1].estimated_size).toString(),
|
|
54275
|
+
this.metadata.depositTokens[0].decimals
|
|
54276
|
+
);
|
|
54277
|
+
const price = await this.pricer.getPrice(
|
|
54278
|
+
this.metadata.depositTokens[0].symbol
|
|
54279
|
+
);
|
|
54280
|
+
return {
|
|
54281
|
+
usdValue: Number(amount.toFixed(6)) * price.price,
|
|
54282
|
+
amount,
|
|
54283
|
+
tokenInfo: this.metadata.depositTokens[0]
|
|
54284
|
+
};
|
|
54285
|
+
}
|
|
54286
|
+
async getTVL() {
|
|
54287
|
+
try {
|
|
54288
|
+
const {
|
|
54289
|
+
collateralXSTRK,
|
|
54290
|
+
collateralUSDValue,
|
|
54291
|
+
debtSTRK,
|
|
54292
|
+
debtUSDValue,
|
|
54293
|
+
xSTRKPrice,
|
|
54294
|
+
collateralInSTRK
|
|
54295
|
+
} = await this.getPositionInfo();
|
|
54296
|
+
const usdValue = Number(collateralUSDValue.toFixed(6)) - Number(debtUSDValue.toFixed(6));
|
|
54297
|
+
return {
|
|
54298
|
+
usdValue,
|
|
54299
|
+
amount: new Web3Number(
|
|
54300
|
+
(collateralInSTRK - Number(debtSTRK.toFixed(6))).toFixed(6),
|
|
54301
|
+
collateralXSTRK.decimals
|
|
54302
|
+
),
|
|
54303
|
+
tokenInfo: this.metadata.depositTokens[0]
|
|
54304
|
+
};
|
|
54305
|
+
} catch (error2) {
|
|
54306
|
+
console.error("Error fetching TVL:", error2);
|
|
54307
|
+
return {
|
|
54308
|
+
usdValue: 0,
|
|
54309
|
+
amount: new Web3Number("0", this.metadata.depositTokens[0].decimals),
|
|
54310
|
+
tokenInfo: this.metadata.depositTokens[0]
|
|
54311
|
+
};
|
|
54312
|
+
}
|
|
54313
|
+
}
|
|
54314
|
+
async depositCall(amountInfo, receiver) {
|
|
54315
|
+
const mainTokenContract = new Contract(
|
|
54316
|
+
erc20_abi_default,
|
|
54317
|
+
this.metadata.depositTokens[0].address.address,
|
|
54318
|
+
this.config.provider
|
|
54319
|
+
);
|
|
54320
|
+
const call1 = mainTokenContract.populate("approve", [
|
|
54321
|
+
this.address.address,
|
|
54322
|
+
uint256_exports.bnToUint256(amountInfo.amount.toWei())
|
|
54323
|
+
]);
|
|
54324
|
+
const call2 = this.contract.populate("deposit", [
|
|
54325
|
+
uint256_exports.bnToUint256(amountInfo.amount.toWei()),
|
|
54326
|
+
receiver.address
|
|
54327
|
+
]);
|
|
54328
|
+
const calls = [call1, call2];
|
|
54329
|
+
return calls;
|
|
54330
|
+
}
|
|
54331
|
+
async withdrawCall(amountInfo, receiver, owner) {
|
|
54332
|
+
const call = this.contract.populate("withdraw", [
|
|
54333
|
+
uint256_exports.bnToUint256(amountInfo.amount.toWei()),
|
|
54334
|
+
receiver.address,
|
|
54335
|
+
300
|
|
54336
|
+
// 3% max slippage
|
|
54337
|
+
]);
|
|
54338
|
+
return [call];
|
|
54339
|
+
}
|
|
54340
|
+
async getPositionInfo() {
|
|
54341
|
+
const CACHE_KEY = "positionInfo";
|
|
54342
|
+
if (this.isCacheValid(CACHE_KEY)) {
|
|
54343
|
+
return this.getCache(CACHE_KEY);
|
|
54344
|
+
}
|
|
54345
|
+
const resp = await fetch(
|
|
54346
|
+
`${getTrovesEndpoint()}/vesu/positions?walletAddress=${this.address.address}`
|
|
54347
|
+
);
|
|
54348
|
+
const data = await resp.json();
|
|
54349
|
+
if (!data.data || data.data.length == 0) {
|
|
54350
|
+
throw new Error("No positions found");
|
|
54351
|
+
}
|
|
54352
|
+
const collateralXSTRK = Web3Number.fromWei(
|
|
54353
|
+
data.data[0].collateral.value,
|
|
54354
|
+
data.data[0].collateral.decimals
|
|
54355
|
+
);
|
|
54356
|
+
const collateralUSDValue = Web3Number.fromWei(
|
|
54357
|
+
data.data[0].collateral.usdPrice.value,
|
|
54358
|
+
data.data[0].collateral.usdPrice.decimals
|
|
54359
|
+
);
|
|
54360
|
+
const debtSTRK = Web3Number.fromWei(
|
|
54361
|
+
data.data[0].debt.value,
|
|
54362
|
+
data.data[0].debt.decimals
|
|
54363
|
+
);
|
|
54364
|
+
const debtUSDValue = Web3Number.fromWei(
|
|
54365
|
+
data.data[0].debt.usdPrice.value,
|
|
54366
|
+
data.data[0].debt.usdPrice.decimals
|
|
54367
|
+
);
|
|
54368
|
+
const xSTRKPrice = await this.getSecondaryTokenPriceRelativeToMain();
|
|
54369
|
+
const collateralInSTRK = Number(collateralXSTRK.toFixed(6)) * xSTRKPrice;
|
|
54370
|
+
const STRKUSDPrice = Number(debtUSDValue.toFixed(6)) / Number(debtSTRK.toFixed(6));
|
|
54371
|
+
const actualCollateralUSDValue = collateralInSTRK * STRKUSDPrice;
|
|
54372
|
+
const cacheData = {
|
|
54373
|
+
collateralXSTRK,
|
|
54374
|
+
collateralUSDValue: new Web3Number(
|
|
54375
|
+
actualCollateralUSDValue.toFixed(6),
|
|
54376
|
+
collateralUSDValue.decimals
|
|
54377
|
+
),
|
|
54378
|
+
debtSTRK,
|
|
54379
|
+
debtUSDValue,
|
|
54380
|
+
xSTRKPrice,
|
|
54381
|
+
collateralInSTRK
|
|
54382
|
+
};
|
|
54383
|
+
this.setCache(CACHE_KEY, cacheData);
|
|
54384
|
+
return cacheData;
|
|
54385
|
+
}
|
|
54386
|
+
async getSecondaryTokenPriceRelativeToMain(retry = 0) {
|
|
54387
|
+
const CACHE_KEY = "xSTRKPrice";
|
|
54388
|
+
if (this.isCacheValid(CACHE_KEY)) {
|
|
54389
|
+
return this.getCache(CACHE_KEY);
|
|
54390
|
+
}
|
|
54391
|
+
const params = {
|
|
54392
|
+
sellTokenAddress: this.metadata.additionalInfo.secondaryToken.address.address,
|
|
54393
|
+
buyTokenAddress: this.metadata.additionalInfo.mainToken.address.address,
|
|
54394
|
+
sellAmount: BigInt(new Web3Number("1", 18).toWei()),
|
|
54395
|
+
takerAddress: this.address.address
|
|
54396
|
+
};
|
|
54397
|
+
logger.verbose("getSecondaryTokenPriceRelativeToMain [1]", params);
|
|
54398
|
+
let avnu = new AvnuWrapper();
|
|
54399
|
+
const quote = await avnu.getQuotes(
|
|
54400
|
+
params.sellTokenAddress,
|
|
54401
|
+
params.buyTokenAddress,
|
|
54402
|
+
params.sellAmount?.toString() || "0",
|
|
54403
|
+
params.takerAddress
|
|
54404
|
+
);
|
|
54405
|
+
if (!quote) {
|
|
54406
|
+
throw new Error("No quotes found to compute secondary token price relative to main token");
|
|
54407
|
+
}
|
|
54408
|
+
const firstQuote = quote;
|
|
54409
|
+
const price = Number(
|
|
54410
|
+
Web3Number.fromWei(firstQuote.buyAmount.toString(), 18).toFixed(
|
|
54411
|
+
6
|
|
54412
|
+
)
|
|
54413
|
+
);
|
|
54414
|
+
logger.verbose("getSecondaryTokenPriceRelativeToMain [2]", price);
|
|
54415
|
+
this.setCache(CACHE_KEY, price);
|
|
54416
|
+
return price;
|
|
54417
|
+
}
|
|
54418
|
+
};
|
|
54419
|
+
var senseiDescription = `Deposit your {{token1}} to automatically loop your funds via Endur ({{token2}}) and Vesu to create a delta neutral position. This strategy is designed to maximize your yield on {{token1}}. Your position is automatically adjusted periodically to maintain a healthy health factor. You receive a NFT as representation for your stake on Troves. You can withdraw anytime by redeeming your NFT for {{token1}}.`;
|
|
54420
|
+
var vesuProtocol = {
|
|
54421
|
+
name: "Vesu",
|
|
54422
|
+
logo: "https://static-assets-8zct.onrender.com/integrations/vesu/logo.png"
|
|
54423
|
+
};
|
|
54424
|
+
var endurProtocol = {
|
|
54425
|
+
name: "Endur",
|
|
54426
|
+
logo: "https://app.endur.fi/logo.png"
|
|
54427
|
+
};
|
|
54428
|
+
var _riskFactor3 = [
|
|
54429
|
+
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25, reason: "Audited by CSC" },
|
|
54430
|
+
{ type: "Depeg Risk" /* DEPEG_RISK */, value: 0.25, weight: 25, reason: "Depending on prevailing market conditions and trading activity, xSTRK may lose its peg to the underlying asset." },
|
|
54431
|
+
{ type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 0.1, weight: 10, reason: "Liquidation risk is low due to the nature of the Re7 Pool on Vesu" },
|
|
54432
|
+
{ type: "Low Liquidity Risk" /* LOW_LIQUIDITY_RISK */, value: 0.5, weight: 50, reason: "xSTRK can be sometimes illiquid near true price" }
|
|
54433
|
+
];
|
|
54434
|
+
var FAQS = [
|
|
54435
|
+
{
|
|
54436
|
+
question: "What is xSTRK Sensei?",
|
|
54437
|
+
answer: "xSTRK Sensei is a leveraged looping strategy involving xSTRK and STRK. It uses xSTRK as collateral on Vesu, borrows STRK, and buys more xSTRK with it to create up to 4x leverage and boost yields."
|
|
54438
|
+
},
|
|
54439
|
+
{
|
|
54440
|
+
question: "What is the benefit of using xSTRK Sensei?",
|
|
54441
|
+
answer: "The strategy amplifies your xSTRK exposure and yield through leverage. It also helps you accumulate more Endur points faster."
|
|
54442
|
+
},
|
|
54443
|
+
{
|
|
54444
|
+
question: "What is the maximum leverage possible?",
|
|
54445
|
+
answer: "The strategy may allow up to ~4x leverage, depending on your collateral ratio and market conditions on Vesu. This strategy tries to maintain a health factor of 1.1 on Vesu"
|
|
54446
|
+
},
|
|
54447
|
+
{
|
|
54448
|
+
question: "Isn't 1.1 health factor risky?",
|
|
54449
|
+
answer: "Based on Re7's xSTRK pool configuration on Vesu, xSTRK uses STRK price as its oracle source. This means collateral and debt will always move in the same direction, making 1.1 HF safe. However, if debt increases too much (over months), liquidation may occur, which we try to avoid by actively monitoring the position."
|
|
54450
|
+
},
|
|
54451
|
+
{
|
|
54452
|
+
question: "Are there any risks involved?",
|
|
54453
|
+
answer: "Yes. The major risks are related to xSTRK's illiquidity and price volatility. During volatility or low liquidity, exiting a position can result in loss."
|
|
54454
|
+
},
|
|
54455
|
+
{
|
|
54456
|
+
question: "Does the position always grow?",
|
|
54457
|
+
answer: "No. While xSTRK's true value increases over time, its DEX price may not grow continuously and can fluctuate or move in discrete steps."
|
|
54458
|
+
},
|
|
54459
|
+
{
|
|
54460
|
+
question: "Can I lose money using this strategy?",
|
|
54461
|
+
answer: "Yes. If the xSTRK price drops sharply or becomes illiquid, you may face slippage or loss when trying to exit the looped position."
|
|
54462
|
+
},
|
|
54463
|
+
{
|
|
54464
|
+
question: "What affects the DEX price of xSTRK?",
|
|
54465
|
+
answer: "xSTRK's DEX price depends on supply, demand, and liquidity. Unlike its true value which grows steadily, the DEX price can fluctuate due to market activity."
|
|
54466
|
+
},
|
|
54467
|
+
{
|
|
54468
|
+
question: "Why is xSTRK considered illiquid?",
|
|
54469
|
+
answer: "Since xSTRK is a evolving LST with limited trading volume, sudden large trades can cause high slippage, making it harder to enter or exit positions efficiently. Such conditions normalize over time. Enter and exit positions with caution."
|
|
54470
|
+
},
|
|
54471
|
+
{
|
|
54472
|
+
question: "Do I earn Endur points on looped xSTRK?",
|
|
54473
|
+
answer: "Yes. All xSTRK in the looped position contributes to your Endur points, allowing you to farm points more effectively with leverage. Visit endur.fi/leaderboard to see your points."
|
|
54474
|
+
}
|
|
54475
|
+
];
|
|
54476
|
+
var SenseiStrategies = [
|
|
54477
|
+
{
|
|
54478
|
+
name: "xSTRK Sensei",
|
|
54479
|
+
description: highlightTextWithLinks(
|
|
54480
|
+
senseiDescription.replaceAll("{{token1}}", "STRK").replaceAll("{{token2}}", "xSTRK"),
|
|
54481
|
+
[{
|
|
54482
|
+
highlight: "Endur",
|
|
54483
|
+
link: "https://endur.fi"
|
|
54484
|
+
}, {
|
|
54485
|
+
highlight: "Vesu",
|
|
54486
|
+
link: "https://vesu.xyz"
|
|
54487
|
+
}, {
|
|
54488
|
+
highlight: "delta neutral position",
|
|
54489
|
+
link: "https://www.investopedia.com/terms/d/deltaneutral.asp"
|
|
54490
|
+
}]
|
|
54491
|
+
),
|
|
54492
|
+
address: ContractAddr.from(
|
|
54493
|
+
"0x7023a5cadc8a5db80e4f0fde6b330cbd3c17bbbf9cb145cbabd7bd5e6fb7b0b"
|
|
54494
|
+
),
|
|
54495
|
+
launchBlock: 1053811,
|
|
54496
|
+
type: "Other",
|
|
54497
|
+
depositTokens: [
|
|
54498
|
+
Global.getDefaultTokens().find((t) => t.symbol === "STRK")
|
|
54499
|
+
],
|
|
54500
|
+
protocols: [endurProtocol, vesuProtocol],
|
|
54501
|
+
maxTVL: new Web3Number("1500000", 18),
|
|
54502
|
+
risk: {
|
|
54503
|
+
riskFactor: _riskFactor3,
|
|
54504
|
+
netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
|
|
54505
|
+
notARisks: getNoRiskTags(_riskFactor3)
|
|
54506
|
+
},
|
|
54507
|
+
additionalInfo: {
|
|
54508
|
+
mainToken: Global.getDefaultTokens().find((t) => t.symbol === "STRK"),
|
|
54509
|
+
secondaryToken: Global.getDefaultTokens().find((t) => t.symbol === "xSTRK"),
|
|
54510
|
+
targetHfBps: 11e3,
|
|
54511
|
+
// 1.1 health factor
|
|
54512
|
+
feeBps: 2e3
|
|
54513
|
+
// 2% fee on profits
|
|
54514
|
+
},
|
|
54515
|
+
faqs: FAQS,
|
|
54516
|
+
contractDetails: [],
|
|
54517
|
+
investmentSteps: [
|
|
54518
|
+
"Swap STRK for xSTRK",
|
|
54519
|
+
"Deposit xSTRK to Vesu's Re7 xSTRK Pool",
|
|
54520
|
+
"Borrow STRK against your xSTRK collateral",
|
|
54521
|
+
"Buy more xSTRK with borrowed STRK",
|
|
54522
|
+
"Repeat the process to loop your position",
|
|
54523
|
+
"Claim DeFi spring (STRK) rewards weekly and reinvest"
|
|
54524
|
+
]
|
|
54525
|
+
}
|
|
54526
|
+
];
|
|
52438
54527
|
return __toCommonJS(index_browser_exports);
|
|
52439
54528
|
})();
|
|
52440
54529
|
/*! Bundled license information:
|